PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : Anti-Windup beim PID



Che Guevara
01.07.2011, 17:54
Hallo,

für einen PID-Regler brauche ich einen Anti-Windup beim I-Anteil, jedoch habe ich überhaupt keine Ahnung, wie ich diesen dimensionieren soll? Ich programmiere in Bascom und dachte mir das folgendermaßen:


if _yaw_ki_sum > xx then
_yaw_ki_sum = xx
endif
if _yaw_ki_sum < -xx then
_yaw_ki_sum = -xx
endif
...

Sollte ich das ganze einfach mal durch ausprobieren versuchen, oder habt ihr einen Tip, zumindest was die Größenordnung angeht?

Gruß
Chris

Besserwessi
01.07.2011, 18:12
Die Grenzwerte für den Integralteil kann man oft probieren. Also erstmal etwas größer stellen und merken wie weit es wirklich geht. Ein anderer Ansatzpunkt ist es abzuschätzen wie groß die bleibende Abweichung ohne den Integralanteil wird. Viel mehr als um den Restfehler zu kompensieren braucht man nicht.

Ein anderer Ansatzpunkt für Anti Windup ist es die Erhöhung des Integralteils auszusetzen, wenn der Stellwert in die Sättigung geht. Das ist die wohl einfachste Form, und kommt ohne anzupassende Parameter aus. Eventuell kann man sich auch noch mit dem Integrateil zurückhalten für ein kurze Zeit nachdem man in der Sättigung war.

Che Guevara
01.07.2011, 20:54
Hm ok, ich werds mal probieren! Vielleicht komme ich ja auf den richtigen Wert, mit der neuen Funke ist das gaaanz einfach :D
Bei der Sättigungs-Lösung habe ich eine Frage:
Wie erkenne ich den, wann der Stellwert in die Sättigung geht? Wenn ich abfrage, ob er immer größer wird, funktionierts nicht, weil dann jede Steuerung als Sättigung gilt! Also müsste ich eine best. "Geschwindigkeit" des Wachsens des Integralteils vorgeben oder den alten Wert vom neuen Subtrahieren, welcher dann als "Sättigungsgrenze" gilt, oder nicht?

Vielen Dank & Gruß
Chris

021aet04
01.07.2011, 21:38
So sollte es funktionieren:

wenn "Istwert" > "Sättigung"
dann "I-Anteil" - 1

Wobei "Sättigung" ein von dir gewählter Wert ist. Du ziehst vom I-Anteil einen bestimmten Wert ab (z.B. 1 ) bis der Istwert unter der Sättigung ist.
Das gleiche kannst du dann für einen negativen Wert nehmen (vom Prinzip) nur musst du dann einen Wert zum I-Anteil dazuzählen

MfG Hannes

Che Guevara
01.07.2011, 23:29
Ja, aber darin steckt doch genau das von mir genannte Problem: Der Wert Sättigung muss wieder ermittelt werden! Da mir aber niemand irgendwelche Anhaltspunkte geben kann, gehe ich davon aus, dass es keine praktibale Lösung zur ungefähren Bestimmung für mich als Bastler gibt... Trotzdem danke für eure Bemühungen.
Gruß
Chris

BoGe-Ro
02.07.2011, 08:55
In der Sättigung bist du, wenn eine "gewollte" Vergrößerung des Stellorgans aufgrund seiner eigenen Grenzen zu keiner physikalischen Vergrößerung mehr führt - und natürlich umgekehrt.

Als Beispiel:
Wenn du eine Heizung mit 8-bit PWM ansteuerst, sind Werte>255 rechnerisch mögliche Ergebnisse, erzeugen an der Heizung selber aber keine größere Leistung.
Ähnlich bei einem Servo - wenn die servotechnisch kürzeste Ansteuerdauer 1ms beträgt, ist dort die Sättigungsgrenze. Ein Unterschreiten würde keine weitere Verdrehbewegung auslösen.

In meiner PID-Regelung habe ich vor dem Integrieren des Fehlers den aktuellen Stellwert betrachtet - und nur integriert, wenn der Ausgang noch nicht in den Sättigungsbereichen ist.


Gruß BoGe-Ro

oberallgeier
02.07.2011, 10:03
Hi Che,
... irgendwelche Anhaltspunkte ... zur ungefähren Bestimmung für mich als Bastler ...Du kannst Dir einiges Wissen zur Regelungstechnik hier (klick) (http://www.rn-wissen.de/index.php/Regelungstechnik) aneignen. Je nachdem wie gut du grad drauf bist kannst Du dabei mehr oder weniger lesen - weniger ist in diesem Fall praktisch immer mehr, weil es halt ein sehr trockener Stoff ist. ABER es werden im Abschnitt 7 (http://www.rn-wissen.de/index.php/Regelungstechnik#Dimensionierung_des_Reglers) verschiedene Methoden zur Reglerauslegung beschrieben - z.T. recht praktische Hinweise, wie ein Regler dimensioniert werden kann. Das ist natürlich auch trockener Stoff - aber man kommt da schon durch. Ich habe nach diesen Regeln meinen Regler gut hinbekommen.

Sinn macht es (für mich), sich das Ganze mal konkret vor Augen zu führen. Dazu hatte ich mir z.B. diese Skizze gemacht, in der auch manche meiner verwendeten Werte stehen. So könnte der Überblick besser werden (Einzelheiten z.B. hier) (https://www.roboternetz.de/community/showthread.php?37518-Linie-Folgen&p=357670&viewfull=1#post357670).

......http://oberallgeier.ob.funpic.de/regel-notiz.jpg

Viel Erfolg

Che Guevara
03.07.2011, 09:01
Also den Artikel über Regelungstechnik kenne ich selbstverständlich, hat mir schon oft geholfen :) Werde ihn mir nochmal zu Gemüte führen und falls ich noch Fragen habe, melde ich mich nochmal! Jetzt muss ich erstmal für die Klausur lernen....

Vielen Dank & Gruß
Chris