Halo zusammen, ich implementiere gerade einen PID-Positionsregler: Eingang: Encoder-Position, Ausgang: Pwm, Strecke: Linearmotor+Last Wenn die Soll-Position nicht überschritten darf, muss man dann die I-Summe löschen wenn die Ist_Pos == (Soll_Pos-epsilon)? Solange die I-Summe >0 => Pwm >0, dann muss die Ist_Pos überschwingen und wieder Zurück, dieses Überschwingen ist unerlaubt. oder kann man das nur durch die PID-Parameter einstellen?
Hallo, Streckenidentifikation dann Reglerstruktur wählen dann Regler parametrieren (nach gewählter Reglerverhalten wie überschwingung, unterschwingung, ist Fehler bei T gleich unendlich erlaubt) dann Regler optimieren bis das gewünschte verhalten erreicht ist. Meiner Meinung nach: Überschwingung kann man durch den Reglerstruktur und Parametrierung raus bekommen. I-Summe löschen wird nicht helfen: - macht dein Regler nicht linear - motor braucht Zeit um sich anzuhalten, Masse hat Traegheit - Eventuell brauchst du Haltekraft so dass deine Position nicht weggeht. Würde ich aber nicht mit PID (oder I Teil) machen sondern irgendwie anders
Ok,Ich habe gedacht dass wenn die Soll-Position erreicht wird, geht das PID_OUT zu Null. Jetzt prüfe ich dauernd ob die Soll-Pos erreicht ist, wenn ja dann setze ich die Pwm auf Null und ist die Fahrt fertig. Wie macht man das normalerweise? auch so: soll/Ist-Pos Vergleich und abrupt die PWM löschen? oder was anders? Eine andere Idee ist ein Bremsweg zu führen, und da mit einer minimalen PWM zu fahren bis die Soll-Pos erreicht wird, muss ich noch testen.
Ein gut eingestellter PID-Regler schwingt nicht über. Hast du die Reglerparameter schon einem "Feintuning" unterzogen? Franz schrieb: > Jetzt prüfe ich dauernd ob die Soll-Pos erreicht ist, wenn ja dann setze > ich die Pwm auf Null und ist die Fahrt fertig. Das hat dann nichts mehr mit einem PID-Regler zu tun. Und es würde nur funktionieren, wenn die Masse oder die Geschwindigkeit deiner Strecke 0 wären. (Denn wenn die kinetische Energie im Moment der PWM-Abschaltung ungleich 0 ist, fährt die Strecke einfach weiter, bis die kinetische Energie in Dämpfung verheizt wurde) Franz schrieb: > Wie macht man das normalerweise? Ich würde eine kaskadierte Regelung aus 2 oder 3 PID-Reglern aufbauen. Der äußerste Regler regelt auf die Position. Seine Stellgröße ist die Führungsgröße eines Geschwindigkeitsreglers (mittlerer Regler). Die Stellgröße des Geschwindigkeitsreglers ist die Führungsgröße eines Beschleunigungsreglers, der die Kraft des Linearmotors regelt. Das funktioniert gut; erfordert aber noch mehr Geschick beim Einstellen der einzelnen Regler. Wenn es nicht auf optimale Performance beim Erreichen der Soll-Position ankommt, probiere es mit einem Regler. Wichtig ist aber, dass dieser auch negative Stellgrößen an den Linearmotor ausgeben kann, um rechtzeitig bremsen zu können.
Franz schrieb: > Ok,Ich habe gedacht dass wenn die Soll-Position erreicht wird, geht das > PID_OUT zu Null. Das wäre ein reiner P Regler.
Der Andere schrieb: > Das wäre ein reiner P Regler. Das wäre ein heuristischer Regler mit nicht-linearer Übertragungsfunktion. Ein P-Regler könnte (bis auf einen statischen Lagefehler) wahrscheinlich die Position einregeln.
Traubensaft .. schrieb: > Ein gut eingestellter PID-Regler schwingt nicht über. Hast du die > Reglerparameter schon einem "Feintuning" unterzogen? Das verstehe immer nicht: PID Ausgang ist die Summe von P-, D-, und I-Anteil. Wenn die Soll-Pos erreicht ist dann sind P und D Anteile gleich Null, da sie nur vom Fehler abhängig sind. Der I-Anteil ist aber größer Null weil er von der Summe aller vorherigen Fehler abhängig ist: I-Anteil > 0 => Pid_Out > 0 => Act_pos geht dann über die Soll_Pos Wie soll es dann nur dem PID alleine an der Soll_Pos anhalten?
Weshalb sollte der I Anteil bei Fehler=Null gleich Null sein ? Eine Trivialst Temperaturregelung zB hat die Hauptarbeit der Regelung dem I-Anteil angehaengt, der haelt die Temperatur auf ungleich Null. Denn P=0.
Zwölf M. schrieb: > Eine Trivialst Temperaturregelung... Ja bei einer Temperaturregelung kann ich noch verstehen, die Soll-Temperatur muss gehalten werden. Bei einem DC Motor nicht, wenn die Soll-Pos erreicht ist, dann muss die Spannung weg (Pid_Out = 0).
Traubensaft .. schrieb: > Der Andere schrieb: >> Das wäre ein reiner P Regler. > > Das wäre ein heuristischer Regler mit nicht-linearer > Übertragungsfunktion. Ein P-Regler könnte (bis auf einen statischen > Lagefehler) wahrscheinlich die Position einregeln. Falsch, ein Regler dessen Ausgangswert 0 ist wenn sein Eingangswert 0 ist ist ein reiner P Regler. Und nichts anderes habe ich gesagt, bitte schau dir auch das Zitat an auf das sich meine Aussage bezieht.
Der Andere schrieb: > ein Regler dessen Ausgangswert 0 ist wenn sein Eingangswert 0 ist ist > ein reiner P Regler. Ja, aber nur wenn er bei einem auftretenden Regelfeher die PWM wieder anschaltet. Das hatte der TE aber scheinbar nicht vor. Ich bin mir sicher, dass es mit der Einführung von Bedingungen keine bessere Regelung wird. Entweder das Einstellen des PID reicht aus, oder der TE sollte eine kaskadierte Regelung aufbauen.
> Ja bei einer Temperaturregelung kann ich noch verstehen, die
Soll-Temperatur muss gehalten werden. Bei einem DC Motor nicht, wenn die
Soll-Pos erreicht ist, dann muss die Spannung weg (Pid_Out = 0).
Nur wenn kein Drehmoment ansteht.
Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.