INHOUDSOPGAWE:
- Stap 1: Inleiding
- Stap 2: PID -gebaseerde beheerstelsel
- Stap 3: Selfbalanserende robot
- Stap 4: Ontwerp van robot
- Stap 5: Projekkomponente
- Stap 6: Struktuur van die robot
- Stap 7: Kode
- Stap 8: Gevolgtrekking
- Stap 9: Spesiale dank
Video: Selfbalanserende robot met behulp van PID -algoritme (STM MC): 9 stappe
2024 Outeur: John Day | [email protected]. Laas verander: 2024-01-30 07:27
Onlangs is baie werk gedoen aan die selfbalansering van voorwerpe. Die konsep van selfbalansering het begin met die balansering van omgekeerde slinger. Hierdie konsep het ook uitgebrei tot die ontwerp van vliegtuie. In hierdie projek het ons 'n klein model van selfbalanserende robot ontwerp met behulp van die PID (proporsioneel, integraal, afgeleide) algoritme. Sedertdien is hierdie metode die nuwe gesig van die industriële prosesbeheerstelsels. Hierdie verslag hersien die metodes wat betrokke is by die selfbalansering van voorwerpe. Hierdie projek is uitgevoer as 'n semesterprojek om die verband tussen PID en die doeltreffendheid van verskillende industriële prosesse te verstaan. Hier fokus ons slegs op 'n kort oorsig oor die doeltreffendheid en toepassing van die PID -beheer. Hierdie artikel is ontwikkel deur 'n kort inleiding te gee tot beheerstelsels en verwante terminologieë, benewens die motiverings vir die projek. Eksperimentering en waarnemings is geneem, meriete en nadele beskryf, met 'n einde aan toekomstige verbeterings. 'N Model van selfbalanserende robot is ontwikkel om die effektiwiteit van PID in die wêreld van beheerstelsel te verstaan. Deur 'n paar streng toetse en eksperimente, is die meriete en nadele van die PID -beheerstelsel ontdek. Daar is gevind dat ten spyte van die vele voordele van PID -beheer teenoor vorige metodes, hierdie stelsel steeds baie verbeterings verg. Daar word gehoop dat die leser 'n goeie begrip kry van die belangrikheid van selfbalansering, die effektiwiteit en tekortkominge van PID -beheer
Stap 1: Inleiding
Met die koms van rekenaars en die industrialisering van prosesse, is daar in die geskiedenis van die mens nog altyd navorsing gedoen om maniere te ontwikkel om prosesse te verfyn en nog belangriker om dit outomaties met behulp van masjiene te beheer. Die doel is om die betrokkenheid van die mens by hierdie prosesse te verminder en sodoende die fout in hierdie prosesse te verminder. Daarom is die veld van 'Control System Engineering' ontwikkel. Beheerstelselingenieurswese kan gedefinieer word as om verskillende metodes te gebruik om die werking van 'n proses of die handhawing van 'n konstante en voorkeuromgewing, of dit nou handmatig of outomaties is, te beheer.
'N Eenvoudige voorbeeld kan wees om die temperatuur in 'n kamer te beheer. Handmatige beheer beteken die teenwoordigheid van 'n persoon op 'n webwerf wat die huidige toestande (sensor) nagaan, dit vergelyk met die gewenste waarde (verwerking) en die nodige stappe doen om die gewenste waarde (aktuator) te verkry. Die probleem met hierdie metode is dat dit nie baie betroubaar is nie, aangesien 'n persoon geneig is tot foute of nalatigheid in sy werk. 'N Ander probleem is ook dat die tempo van die proses wat deur die aandrywer geïnisieer is, nie altyd uniform is nie, wat beteken dat dit soms vinniger kan gebeur as wat nodig is, of dat dit soms stadig kan wees. Die oplossing van hierdie probleem was om 'n mikrobeheerder te gebruik om die stelsel te beheer. Die mikrobeheerder is
geprogrammeer om die proses te beheer, volgens gegewe spesifikasies, gekoppel in 'n stroombaan (sal later bespreek word), voer die gewenste waarde of toestande en beheer die proses om die gewenste waarde te handhaaf. Die voordeel van hierdie proses is dat geen menslike ingryping in hierdie proses nodig is nie. Die tempo van die proses is ook eenvormig
Basiese beheerstelsel
Die vorige diagram toon 'n baie vereenvoudigde weergawe van 'n beheerstelsel. Die mikrobeheerder is die kern van enige beheerstelsel. Dit is 'n baie belangrike komponent, daarom moet die keuse van die keuse noukeurig gemaak word op grond van die vereistes van die stelsel. Die mikrobeheerder ontvang 'n insette van die gebruiker. Hierdie invoer bepaal die gewenste toestand van die stelsel. Die mikrobeheerder ontvang ook 'n terugvoerinvoer van die sensor. Hierdie sensor is gekoppel aan die uitset van die stelsel, waarvan die inligting na die invoer teruggevoer word. Die mikroverwerker, gebaseer op sy programmering, voer verskillende berekeninge uit en gee 'n uitset aan die aktuator. Die aandrywer, gebaseer op die uitset, beheer die aanleg om die toestande te probeer handhaaf. 'N Voorbeeld kan 'n motorbestuurder wees wat 'n motor bestuur, waar die motorbestuurder die aandrywer is en die motor die aanleg is. Die motor draai dus teen 'n gegewe spoed. Die gekoppelde sensor lees die toestand van die plant op die oomblik en voer dit terug na die mikrobeheerder. Die mikrobeheerder vergelyk weer, maak berekeninge en herhaal die siklus homself. Hierdie proses is herhalend en eindeloos, waardeur die mikrobeheerder die gewenste toestande handhaaf
Stap 2: PID -gebaseerde beheerstelsel
Die PID -algoritme is 'n doeltreffende metode om 'n beheerstelsel te ontwerp.
Definisie
PID staan vir Proportional, Integral and Derivative. In hierdie algoritme is die insetsel die foutsein wat ontvang word. En die volgende vergelyking word toegepas op die foutsein
U (t) = Kp ∗ e (t) + Kd ∗ d/dt (e (t)) + Ki ∗ integraal (e (t)) (1.1)
Kort verduideliking
Soos in die bostaande vergelyking gesien kan word, word die integraal en afgeleide van die foutseine bereken, vermenigvuldig met hul onderskeie konstantes en saam met die konstante Kp vermenigvuldig met e (t). Die uitset word dan na die aandrywer gevoer wat die stelsel laat werk. Kom ons kyk nou na elke deel van die funksie om die beurt. Hierdie funksie beïnvloed direk die stygingstyd, daaltyd, piek oor skiet, vestigingstyd en bestendige toestandfout.
• Proporsionele deel: Die proporsionele deel verminder die styg tyd en verminder die steady state fout. Dit beteken dat die stelsel minder tyd sal neem om sy piekwaarde te bereik, en wanneer dit in sy bestendige toestand is, is die steady state -fout laag. Dit verhoog egter die piek -oorskryding.
• Afgeleide deel: Die afgeleide deel verminder die oorskot en die vestigingstyd. Dit beteken dat die verbygaande toestand van die stelsel meer gedemp word. Die stelsel sal ook binne 'n korter tyd sy bestendige toestand bereik. Dit het egter geen invloed op die stygingstyd of die steady state -fout nie.
• Integrale deel: die integrale deel verminder die stygingstyd en elimineer die steady state -fout heeltemal. Dit verhoog egter die piek -oorskryding en die vestigingstyd.
• Tuning: 'n Goeie beheerstelsel het 'n lae stygingstyd, 'n vestigingstyd, 'n piek -oorskryding en 'n bestendige toestand. Daarom moet die Kp, Kd, Ki fyn ingestel word om die bydrae van bogenoemde faktore aan te pas om 'n goeie beheerstelsel te verkry.
Figuur is aangeheg wat die effek toon van die verandering van verskillende parameters in die PID -algoritme.
Stap 3: Selfbalanserende robot
'N Selfbalanserende robot is 'n tweelaagse robot met meer lae.
Die robot sal homself probeer balanseer met die toepassing van enige ongelyke krag (e). Dit balanseer homself deur krag uit te oefen teen die gevolg van die kragte op die robot.
Selfmetingsmetodes
Daar is vier metodes vir selfbalansering van robotte. Dit is soos volg:
Selfbalanseer met behulp van twee IR -kantelsensor
Dit is die moeilikste manier om die robot te balanseer, aangesien dit baie minder hardeware en 'n relatief maklike algoritme benodig. In hierdie benadering word twee gekantelde IR -sensors gebruik om die afstand tussen die grond en die robot te meet. Op grond van die berekende afstand, kan PID gebruik word om die motors aan te dryf om die robot daarvolgens te balanseer. Een nadeel van hierdie metode is dat die IR -sensor 'n paar metings kan misloop. 'N Ander probleem is dat 'n onderbreking en lusse nodig is vir die berekening van die afstand, wat die tydskompleksiteit van die algoritme vergroot. Daarom is hierdie metode om die robot te balanseer nie baie effektief nie.
Selfbalansering met behulp van versnellingsmeter
Versnellingsmeter gee ons die versnelling van die liggaam in 3 asse. Versnelling gerig op die y-as (opwaarts) en x-as (vorentoe) gee ons die maatstaf om die gravitasierigting te bereken en dus die hellingshoek te bereken. Die hoek word soos volg bereken:
θ = arctan (Ay/Ax) (1.2)
Die nadeel van die gebruik van hierdie metode is dat die horisontale versnelling tydens die beweging van die robot ook bygevoeg sal word tot die metings wat 'n hoëfrekwensie -geraas is. Daarom sal die hellingshoek onakkuraat wees.
Selfbalansering met behulp van 'n gyroscoop
'N Gyroscoop word gebruik om die angelsnelhede langs die drie as te bereken. Die hellingshoek word verkry met behulp van die volgende vergelyking.
(p (i) = θp (i − 1) + 1/6 (vali − 3 + 2vali − 2 + 2vali − 1 + vali) (1.3)
Een groot nadeel van die gebruik van die gyroscoop is dat dit 'n klein DC -voorspanning het, wat 'n lae frekwensie -geraas is, en binne 'n paar keer is die teruggekeerde waardes heeltemal verkeerd. Dit sal na integrasie die nulpunt laat wegdryf. As gevolg hiervan, bly die robot 'n geruime tyd in sy vertikale posisie en val hy om sodra die drif kom.
Selfbalansering met behulp van beide versnellingsmeter en gyroscoop
Soos hierbo bespreek, sal die gebruik van slegs versnellingsmeter of gyroscoop ons nie die regte hellingshoek gee nie. Om dit te verduidelik, word beide versnellingsmeter en gyroscoop gebruik. Albei is ingebed in MPU6050. Hierin verkry ons die data van beide en versmelt dit dan deur Kalman -filter of komplementêre filter te gebruik.
• Kalman -filter: Die Kalman -filter bereken die beste skatting van die toestand van 'n dinamiese stelsel uit raserige metings, en verminder die gemiddelde kwadraatfout van die skatting. Dit werk in twee fases, voorspelling en regstelling, gegewe die diskrete stogastiese vergelykings wat die stelseldinamika beskryf. Dit is egter 'n baie komplekse algoritme om veral op 'n beperkte hardeware van 'n mikrobeheerder te implementeer.
• Komplementêre filter: Hierdie algoritme gebruik hoofsaaklik die data wat uit die gyroscoop verkry is en integreer dit mettertyd om die hellingshoek te kry. Dit gebruik ook 'n klein hoeveelheid versnellingsmeters. Aanvullende filtreerders verminder die hoë frekwensie geraas van die versnellingsmeter en die lae frekwensie geraas van die gyroscoop en versmelt dit dan om die beste akkurate hellingshoek te gee.
Stap 4: Ontwerp van robot
Ons het 'n selfbalanserende robot ontwerp met 'n proporsionele afgeleide kontroleerder geïmplementeer deur 'n komplimentêre filter vir MPU6050. Hierdie klein model van selfbalanserende robot illustreer ons die bruikbaarheid van beheerstelsels in selfbalansering van robotte.
Stelselimplementering:
Die stelsel is 'n selfbalanserende robot. Dit word geïmplementeer met behulp van PID Controller, 'n proporsionele integrale afgeleide kontroleerder. Ons balanseer die robot deur sy wiele in die rigting van sy val te ry. Deur dit te probeer, probeer ons om die swaartepunt van die robot bo die spilpunt te hou. Om die wiele in die rigting van sy val te dryf, moet ons weet waar die robot val en die spoed waarmee hy val. Hierdie data word verkry met behulp van MPU6050 met 'n versnellingsmeter en 'n gyroscoop. MPU6050 meet die hellingshoek en gee sy uitvoer aan die mikro-kontroleerder. MPU6050 is gekoppel aan die STM Board deur middel van I2C. In I2C is een draad vir die horlosie wat SCL genoem word. Die ander een is vir die data -oordrag, wat SDA is. Hierin word meester -slawe -kommunikasie gebruik. Beginadres en eindadres word gespesifiseer om te weet waar die data begin en waar dit eindig. Ons het die komplimentêre filter hier geïmplementeer vir MPU6050, wat 'n wiskundige filter is om die uitsette van versnellingsmeter en gyroscoop saam te voeg. Nadat die data van MPU6050 verkry is, sal die mikrobeheerder berekeninge uitvoer om te weet waar dit val. Op grond van die berekeninge, sal die STM-mikrobeheerder die motorbestuurder opdragte gee om die voertuie in die valrigting te ry, wat die robot sal balanseer.
Stap 5: Projekkomponente
Die volgende komponente is gebruik in die selfbalanserende robotprojek:
STM32F407
'N Mikrokontroleerder ontwerp deur ST Microelectronics. Dit werk op die ARM Cortex-M Architecture.
Motorbestuurder L298N
Hierdie IC word gebruik om die motor te laat loop. Dit kry twee eksterne insette. Een van die mikrobeheerder wat 'n PWM -sein aan hom verskaf. Deur die breedte van die pols aan te pas, kan die motorsnelheid aangepas word. Die tweede ingang is die spanningsbron wat benodig word om die motor aan te dryf, wat in ons geval 'n 12V -battery is.
DC motor
'N GS -motor werk op 'n GS -toevoer. In hierdie eksperiment werk die GS -motor met behulp van die optokoppelaars wat aan die motorbestuurder gekoppel is. Om die motor te bestuur, het ons die Motor Drive L298N gebruik.
MPU6050
MPU6050 word gebruik om inligting te kry oor waar die robot val. Dit meet die hellingshoek ten opsigte van die nulpunt wat die posisie van die MPU6050 is wanneer die program begin loop.
Die MPU6050 het 'n 3-as versnellingsmeter en 'n 3-as gyroscoop. Die versnellingsmeter meet versnelling langs die drie asse en die gyroscoop meet hoeksnelheid om die drie asse. Om die uitset te kombineer, moet ons die geluide van beide uitfiltreer. Om die geluide uit te skakel, het ons Kalman en komplimentêre filter. Ons het 'n komplimentêre filter in ons projek geïmplementeer.
Opto Couple 4N35
'N Optokoppelaar is 'n toestel wat gebruik word om die laagspannings- en die hoogspanningsgedeelte van die stroombaan te isoleer. Soos die naam aandui, werk dit op die basis van lig. As die laagspanningsgedeelte 'n sein kry, stroom die hoogspanningsgedeelte
Stap 6: Struktuur van die robot
Die struktuur van die robot word soos volg verduidelik:
Fisiese struktuur
Die selfbalanserende robot bestaan uit twee lae wat bestaan uit deursigtige plastiekglas. Die besonderhede van twee lae word hieronder gegee:
Eerste laag
In die onderste deel van die eerste laag het ons 'n sel geplaas om die STM -bord aan te dryf. Daar is ook twee motors van 4 volt aan elke kant geplaas met bande gekoppel sodat die robot kan beweeg. In die boonste deel van die eerste laag is twee batterye van 4 volt elk (8 volt totaal) en motorbestuurder IC (L298N) geplaas vir die werking van motors.
Tweede laag
In die boonste laag van die robot het ons die STM -bord op Perf Board geplaas. Op die boonste laag word nog 'n ekstra bord van 4 opto -koppelaars geplaas. Gyroscoop word ook van die onderkant op die boonste laag van die robot geplaas. Beide komponente word in die middelste deel geplaas sodat die swaartepunt so laag as moontlik gehou word.
Swaartepunt van robot
Die swaartepunt word so laag as moontlik gehou. Vir hierdie doel het ons swaar batterye op die onderste laag geplaas en ligte komponente soos STM -bord en optokoppelaars op die boonste laag.
Stap 7: Kode
Kode is saamgestel op Atollic TrueStudio. STM studio is vir ontfoutingsdoeleindes gebruik.
Stap 8: Gevolgtrekking
Na baie eksperimentering en waarneming, kom ons uiteindelik tot die punt waar ons ons resultate saamvat en bespreek hoe ver ons daarin geslaag het om die effektiwiteit van die stelsel te implementeer en uit te werk.
Algemene oorsig
Tydens die eksperiment is die snelheid van die motor suksesvol beheer met behulp van die PID -algoritme. Die kromme is egter nie juis 'n gladde reguit lyn nie. Daar is baie redes daarvoor:
• Die sensor, alhoewel dit aan 'n lae -passfilter gekoppel is, bied nog steeds sekere eindpunte; dit is te wyte aan die nie -lineêre weerstande en 'n paar onvermydelike redes vir die analoog elektronika.
• Die motor draai nie glad onder klein spanning of PWM nie. Dit bied rukke wat 'n paar verkeerde waardes aan die stelsel kan veroorsaak.
• As gevolg van wankel, kan die sensor 'n paar splete mis wat hoër waardes bied. • 'n Ander groot rede vir foute kan die kernklokfrekwensie van die STM -mikrobeheerder wees. Hierdie model van STM -mikrobeheerder bied 'n kernklok van 168MHz. Alhoewel hierdie probleem in hierdie projek hanteer is, is daar 'n algemene idee oor hierdie model dat dit nie presies so 'n hoë frekwensie bied nie.
Die oop lussnelheid bied 'n baie gladde lyn met slegs 'n paar onverwagte waardes. Die PID -algoritme werk ook goed en bied 'n baie lae vestigingstyd van die motor. Die motor se PID -algoritme is onder verskillende spannings getoets en die verwysingsnelheid konstant gehou. Die spanningsverandering verander nie die snelheid van die motor nie, wat toon dat die PID -algoritme goed werk
Effektiwiteit
Hier bespreek ons die effektiwiteit van die PID -beheerder wat ons tydens die eksperimentering waargeneem het.
Eenvoudige implementering
Ons het in die afdeling vir eksperimente en waarnemings gesien dat 'n PID -beheerder baie maklik is om te implementeer. Dit benodig slegs drie parameters of konstantes om 'n spoedbeheerstelsel te hê
Ongeëwenaarde doeltreffendheid vir lineêre stelsels
Lineêre PID -kontroleerder is die doeltreffendste in die familie beheerders omdat die logika baie eenvoudig is en die toepassing wydverspreid is in geval van lineêre of redelik lineêre toepassings.
Beperkings
Ons het in die opsomming verduidelik oor die beperkings van hierdie stelsel. Hier bespreek ons 'n paar daarvan wat ons waargeneem het.
Seleksie van konstante
Ons het gesien dat, hoewel 'n PID -beheerder maklik is om te implementeer, dit steeds 'n groot nadeel van die stelsel is dat die stap om die waarde van konstantes te kies, moeisaam is; aangesien 'n mens moeilike berekeninge moet maak. Die ander manier is die tref -en -toets -metode, maar dit is ook nie effektief nie.
Konstante is nie altyd konstant nie
Die eksperimentele resultate het getoon dat die PID -kontroleerder vir dieselfde waardes van die PID -konstantes vir verskillende waardes van die verwysingsnelheid vir die motor nie werk nie. Vir verskillende snelhede moes die konstantes anders gekies word en dit verhoog die berekeningskoste eksponensieel.
Nie -lineêr
Die PID -beheerder wat in ons geval gebruik word, is lineêr, daarom kan dit slegs op lineêre stelsels toegepas word. Vir nie-lineêre stelsels moet die kontroleerder anders geïmplementeer word. Alhoewel daar verskillende nie -lineêre metodes van PID beskikbaar is, moet meer parameters gekies word. Dit maak die stelsel weer ongewens as gevolg van hoë berekeningskoste.
Aanvanklike druk nodig
Ons het in die eksperimentgedeelte getoon dat die PWM wat deur die PID verskaf word vir 'n redelik klein verwysingssnelheid waar die fout in die begin redelik klein is, so klein is dat dit nie die vereiste aanvangskoppel vir die motor genereer nie. In sommige proewe loop die motor dus nie, of in ander proewe bied dit 'n groot oorskryding en 'n langer afrekeningstyd.
Stap 9: Spesiale dank
Spesiale dank aan my groeplede wat my deur hierdie projek gehelp het.
Ek sal die skakel na die video binnekort oplaai.
Ek hoop dat u hierdie instruksies interessant vind.
Dit is Tahir Ul Haq van UET wat afteken. Cheers !!!
Aanbeveel:
Selfbalanserende robot - PID -beheeralgoritme: 3 stappe
Selfbalanserende robot - PID -beheeralgoritme: Hierdie projek is bedink omdat ek belangstel om meer te wete te kom oor beheeralgoritmes en hoe om funksionele PID -lusse effektief te implementeer. Die projek is nog in die ontwikkelingsfase, aangesien 'n Bluetooth -module nog nie bygevoeg moet word nie
Selfbalanserende robot van Magicbit: 6 stappe
Selfbalanserende robot van Magicbit: Hierdie tutoriaal wys hoe u 'n selfbalanserende robot kan maak met behulp van Magicbit dev -bord. Ons gebruik magicbit as die ontwikkelingsbord in hierdie projek wat op ESP32 gebaseer is. Daarom kan enige ESP32 -ontwikkelingsbord in hierdie projek gebruik word
Beheer oor die hele wêreld met behulp van internet met behulp van Arduino: 4 stappe
Beheer oor die hele wêreld met behulp van internet met behulp van Arduino: Hallo, ek is Rithik. Ons gaan 'n internetbeheerde LED maak met u telefoon. Ons gaan sagteware soos Arduino IDE en Blynk gebruik. Dit is eenvoudig, en as u daarin geslaag het, kan u soveel elektroniese komponente beheer as wat u wil
Monitor versnelling met behulp van Raspberry Pi en AIS328DQTR met behulp van Python: 6 stappe
Monitering van versnelling met behulp van Raspberry Pi en AIS328DQTR Gebruik van Python: Versnelling is eindig, volgens ek volgens sommige wette van die fisika.- Terry Riley 'n Jagluiperd gebruik ongelooflike versnelling en vinnige spoedveranderinge wanneer hy jaag. Die vinnigste wesens aan wal gebruik af en toe sy hoogste tempo om prooi te vang. Die
Die skep van 'n op afstand beheerde Arduino-selfbalanserende robot: B-robot EVO: 8 stappe
Die skep van 'n op afstand beheerde Arduino-selfbalanserende robot: B-robot EVO: ------------------------------------ -------------- UPDATE: daar is 'n nuwe en verbeterde weergawe van hierdie robot hier: die B-robot EVO, met nuwe funksies! ------------ -------------------------------------- Hoe werk dit? B-ROBOT EVO is op afstand beheer