Hallo,
bei der linearisierten Beschreibung eines invertierten Pendels bin ich
auf die Übertragungsform Gs=1/(T^2*s^2-1) gekommen.
Wenn ich jetzt vor das ganze einen PID-Tr Regler setze mit Eingang, der
Regeldifferenz, so entsteht die Gesamtübertragungsfunktion
G=Gr*Gs/(1+Gr*Gs)
Nun habe ich für Gr=(Ki/s+Kp*Kd*s)/(Tr*s) mit s erweitert und nach ein
bisschen rumgerechne (T^2*s^2-1) mit Ki, Kp, und Kd kompensiert. Dabei
ist Kp=0. Obwohl die Übertragungsfunktion gekürzt ein PT2 Glied ergibt
ist die Matlab Simulation instabil. Warum stimmen Theorie und Praxis
nicht überein?
(Wenn ich "nach Gefühl" die Regelparameter Ki, Kp und Kd setzte, so ist
auch die Simulation stabil.
Mich wundert, warum sich das so schön rauskürzt und im Endeffekt nicht
mit der Simulation übereinstimmt.
Vielleicht kann mir jemand von euch diesbezüglich auf die Sprünge
helfen? Wäre sehr dankbar.
Nachtrag: Ich habe es auch schon die Strecke in 2 PT1 Glieder
aufgeteilt, und die positive Polstelle mit einem PD-Tr Regler
kopmpensiert. Auch hier ist das System instabil.
Da hab ich nur eine Vermutung, aber möglicherweise ist die
Linearisierung da (in dem Bereich, indem sich das Pendel bewegt) nicht
mehr zulässig? Ist ja schließlich nur eine Annäherung.
Habe ich vergessen zu schreiben... ich habe es sowohl mit dem
linearisierten als auch mit dem "realen" System simuliert. Auch
eventuelle Flüchtigkeitsfehler durch ein Minus habe ich überprüft und
mit umgekehrten Vorzeichen überprüft. Immer instabil.
Interessant ist es zum Beispiel wenn man den PD-Tr Regler berechnet.
Dabei hat Ki das invertierte Vorzeichen von Kd. Dies scheint ja bereits
ein Widerspruch zu sein. Aber es kommt nunmal mathematisch raus... :(
So da bin ich wieder,
danke nochmal an remote1.
In dem Protokoll findet man die Vorgehensweise für einen
"fortgeschrittenen Regler". Meine angegebe Strecke gehört da ja doch
eher zu den Grundlagen der Regelungstechnik. Deshalb wundert mich, dass
bei einer so einfachen Regelstrecke die mathematik nicht mit der Praxis
übereinstimmt. Ich weiß leider nicht wo ich einen Fehler gemacht habe.
Hat keiner eine Idee was hier nicht stimmt?
Daniel T. schrieb:> Hat keiner eine Idee was hier nicht stimmt?
Dann gib doch einfach mal mehr input.
Wie sehen die Parameter deiner Übertragungsfunktion Gs aus?
Was ist dein Regelziel (Geschwindigkeit, prozentuales Überschwingen,
etc...)?
Wie sieht deine Matlab Simulation aus?
Gib uns doch einfach mal alles was du hast, sonst kann dir keiner
helfen.
Hallo Daniel,
wenn ich es richtig verstanden habe, möchtest du aus Gs=1/(T^2*s^2-1)
den Nenner rauskürzen mit Gr. Du hast in Gs einen positiven und einen
negativen Pol, d.h. die Strecke ist instabil. Du darfst nicht mit Gr
instabile Pole wegkürzen. So habe ich es mal gelernt. Dies fällt unter
die "Interne Stabilität".
Wie sollst du Gr bestimmen?
Parameter wären sehr hilfreich!
mfg,
Christoph
Pole "kürzen" geht nur mathematisch, weil man da den exakt selben Wert
kürzen kann. Jedoch darf man Pole nicht kürzen, auch wenn man in der
theoretischen Formel scheinbar das selbe dastehen hat.
Ein Pol auf diese Weise aufzuheben funktioniert praktisch niemals.
kjk schrieb:> Pole "kürzen" geht nur mathematisch, weil man da den exakt selben Wert> kürzen kann. Jedoch darf man Pole nicht kürzen, auch wenn man in der> theoretischen Formel scheinbar das selbe dastehen hat.>> Ein Pol auf diese Weise aufzuheben funktioniert praktisch niemals.
exakt da liegt das problem.
praktisch hilft man sich indem man ggf. pole in der linken halbebene
"kürzt" bzw. ergänzt und dadurch die auf der rechten seite
"verschiebt"..
Hi,
also ich kann nur soviel zu deinem Problem sagen. Man kann zwar mit der
klassischen Regelung ein instabiles System regeln, doch das ist mehr als
gefährlich. Denn wenn sich die Streckenparameter ändern mit der Zeit,
kann der Regler dieses nichtmehr kompensieren und das System wird wieder
instabil.
Die einzige möglichkeit ein instabiles System einiger massen in den
Griff zu bekommen ist mit der Zustandsregelung.
Solltest dich vieleicht da mal reinarbeiten und es damit versuchen.
Ich habe das gleiche Problem wie der TO.
Gs(s)=1/(Ts^2*s^2-1)
Gr(s)=(Ki/s+Kp+Kd*s)/(Tr*s-1)
Go(s)=Gr(s)*Gs(s)
Gw(s)=Go(s)/(1+Go(s))=1/(1+1/Go(s))
mit
Ki = -1/(2*theta*T)
Kp = 0
Kd = Ts^2/(2*theta*T)
Tr = T/(2*theta)
kommt man auf
Go(s) = 1/(T^2*s^2+2*theta*T*s)
und
Gw(s) = 1/(T^2*s^2+2*theta*T*s+1)
In der Simulation ist das System mit theta = 1, T = 1 und Ts = 1 leider
instabil.
Sieht jemand den Fehler? Danke!
Hallo,
du kürzt einen Pol auf der rechten Halbebene weg, daass führt zu deiner
instabilen Simulation. -> Löse den Doppelbruch bei Gr auf und setze Ki,
Kp und Kd ein -> dann sieht man die Kürzung.
Eine Möglichkeit wäre Kp != 0 zu wählen, jedoch muss dieses gesondert
geprüft werden, ob es auf ein stabiles Regelgesetz führt.
Habe leider keine Simulation durchgeführt, hoffe jedoch ich kann dir
weiterhlefen.
Bei weiteren Fragen einfach posten!
mfg
Christoph
Theo schrieb:> Okay, danke erstmal.>> Aber warum ist Kürzen bei einer Übertragungsfunktion nicht erlaubt?
Ist es schon, man sollte nur keine Pole in RECHTEN Halbebene
kompensieren (kürzen). Grund: Verändern sich die Streckenparameter
(Wärme, Alterung, ...) kann sich der Pol ein wenig verschieben und nicht
mehr auf die Nullstelle des Reglers passen. Damit wird die geregelte
Strecke wieder instabil.
Für eine Strecke wie hier (ein stabiler, ein instabiler Pol) würde man
eher den STABILEN Pol kompensieren und einen weiteren Reglerpol weit in
die linke Halbebene setzen. Danach analytisch berechnen, ab welcher
Reglerverstärkung das geregelte System stabil wird, also der instabile
Pol in die linke Halbebene gewandert ist.