Forum: Digitale Signalverarbeitung / DSP / Machine Learning Regler für Strecke 1/(T^2*s^2-1)


von Daniel T. (Gast)


Lesenswert?

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.

von Daniel T. (Gast)


Lesenswert?

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.

von Michael (Gast)


Lesenswert?

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.

von Daniel T. (Gast)


Lesenswert?

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... :(

von Daniel T. (Gast)


Lesenswert?

Entschuldigung Kd hat das invertierte Vorzeichen von Kp.

von Remote O. (remote1)


Angehängte Dateien:

Lesenswert?

Ich hab auch schon mal ein inverses Pendel geregelt. Evtl hilft dir da 
mein Protokoll weiter. Schau's dir einfach mal an.

von Daniel T. (Gast)


Lesenswert?

Hallo remote1,

danke für deine Hilfe! Werd mir das dieses Wochende mal angucken.


Daniel

von Daniel T. (Gast)


Lesenswert?

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?

von Remote O. (remote1)


Lesenswert?

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.

von Christoph G. (christoph_gradl)


Lesenswert?

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

von kjk (Gast)


Lesenswert?

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.

von TestX .. (xaos)


Lesenswert?

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"..

von blabla (Gast)


Lesenswert?

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.

von Daniel T. (Gast)


Lesenswert?

Hallo an alle,

habe jetzt auch meinen Fehler gefunden.


Danke an alle für die Hilfe. ;)

Lg

Daniel

von blabla (Gast)


Lesenswert?

wo lag denn dein fehler??
war der fehler das der pol in der rechten halbebene nicht kompensiert 
wurde??

von Bernd (Gast)


Lesenswert?

Der Fehler war, dass er Pole gegen Nullstellen gekürzt hat. Das ist nach 
systemtheoretischen Definitionen nicht möglich.

von Theo (Gast)


Lesenswert?

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!

von Christoph G. (christoph_gradl)


Lesenswert?

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

von Theo (Gast)


Lesenswert?

Okay, danke erstmal.

Aber warum ist Kürzen bei einer Übertragungsfunktion nicht erlaubt?

von Christoph G. (christoph_gradl)


Lesenswert?

Da diese beiden Übertragungsfunktionen nicht in einem Block (z.B. 
Simulink) realisiert werden. Bei einer realen Strecke ist ja dies auch 
nicht möglich!

Weitere Information:
http://regpro.mechatronik.uni-linz.ac.at/downloads/aut2/Skripten/aut2voWS2009.pdf

Kapitel 5 (Seite 67)

mfg
Christoph

von Thomas B. (detritus)


Lesenswert?

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.

von Theo (Gast)


Lesenswert?

Jo, macht Sinn. Dankeschön!

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
Noch kein Account? Hier anmelden.