LINUSBot - lijn volgeling Robot - met PID controle
LINUSBot - PID controleDit is een aanvulling op de eerste "instructables" van de LINUSBot (lijn na robot).
Nu de robot de controle van verplaatsingen gedaan door een PID-regelaar heeft, evenredige, integraal en afgeleide bepalen. Dit maakt de bewegingen in de bochten veel soepeler en tijdens de rechte stukken, het kan ontwikkelen sneller, maximale snelheid te bereiken.
PID control biedt de robot een "leren", waardoor de robot te ontwikkelen beter bochten en rechte circuit.
Nu, een korte inleiding en overzicht van PID controle.
Kortom, dit type controller voert de volgende bewerkingen:
1 - proportionele controle:
Deze controler vermenigvuldigt de huidige "error" door een constante Kp.
De "error" is het verschil tussen de werkelijke output en de gewenste output en wordt gevoed terug in het systeem, dwz:
De werkelijke output wordt afgetrokken van de output gewenst (de set point), zodat de fout is berekend. Deze fout wordt ingevoegd in de PID-regelaar als invoer, en de PID-regelaar (berekening de voorwaarden P, I en D), opdrachten van het systeem te elimineren deze fout.
Waardoor winst nodig om dicht bij de gewenste output signaal als snel mogelijk en met de beste stabiliteit.
2 - integraal controle:
De term die integraal vermenigvuldigt de huidige fout en de duur door een constante Ki, waardoor een opsomming van al die informatie.
De integraal termijn wanneer toegevoegd aan de proportionele termijn; versnelt het proces van het bereiken van de stationaire toestand van het systeem, naast het verstrekken van een signaal dichter naar de gewenste output. Met andere woorden, het elimineert ook (of op zijn minst proberen om te elimineren) de resterende fout, aankomst sneller tot het gewenste resultaat.
3 - afgeleide controle:
De afgeleide term, zorgt ervoor dat de mate van verandering van de fout signaal worden vermenigvuldigd met een constante Kd. De intentie is het voorspellen van de fout en dus het verlagen van het tempo waarin fouten produceert wijzigingen in het systeem.
Wij kunnen deze drie voorwaarden samen gebruiken om een PID-regelaar, of hun variaçãoes, zoals:
P-controller (soms gebruikt):
In dit geval is het gebruik van kleine waarden van de constante Kp is de beste manier om de gewenste waarde, maar de controle traag (dat duurt het om naar de gewenste waarde). Als u de waarde van Kp verhogen kan een overschreden optreden.
PI-controller (meest gebruikte):
Het verwijdert het resterende gedeelte van de fout in het geval van de stationaire toestand (verbetering van voorbijgaande reactie), maar in dit geval moet u wellicht meer overschrijding en ook inversie staat, voorkomende systeem trilling en instabiliteit te veroorzaken, het systeem kan worden overdreven gedempte, of onder-gedempt of oscillerende.
Dit type besturingselement maakt het systeem trager. Met grotere waarden van Ki, u kunt het verlaten van het systeem sneller, echter verhoogt de overschrijding en de marge van de stabiliteit van uw systeem verlagen.
PD-controller (zelden gebruikt):
Gebruikt voor het verminderen van de magnetude van de overschrijding van de systemen met integraal-controller en verbetering van de stabiliteit van het systeem. Maar afgeleide controllers versterkt de ruis fout term en het systeemproces unstable kunt achterlaten. De PD-controller vermindert de tijd tot de gewenste waarde aanzienlijk... voor dat de afgeleide winst Kd hoog moet. Dit vermindert de tijd van de controle, maar verhoogt de bandbreedte van het systeem, waardoor het systeem gevoelig voor lawaai.
PID-regelaar (soms gebruikt):
Met behulp van PID (combinatie van PI + PD), kunnen we verwijderen van de verhouding tussen de systeem fouten en verlagen de reactietijd met een redelijke reactie transistória (zonder trillingen of instabiliteit).
Deze studie kan worden gevonden op:
http://www.YouTube.com/watch?v=wbmEUi2p-na
http://en.wikipedia.org/wiki/PID_controller
Dit is de eenvoudige manier van tenuitvoerlegging van een PID via software:
previous_error = 0
integraal = 0
Start:
fout = setpoint - measured_value
integraal = integraal + fout * dt
afgeleide = (fout - previous_error) /dt
uitvoer = Kp * fout + Ki * integraal + Kd * afgeleide
previous_error = fout
wait(DT)
goto start
In de "LINUSBot" ontwerp werd gebruikt de volgende parameters:
KP = 1/20
Ki = 1/10000
KD = 3/2
De volledige code voor Arduino kan worden gedownload van de link:
http://www.4shared.com/file/iPVAVCwy/LINUSBot_9_3pi_modelo_PID.html
Bekijk de video en Bekijk de resultaten.
Tot ziens in het volgende project.
Dank u
Andere projecten: