www.mikrocontroller.net

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


Autor: Daniel T. (Gast)
Datum:

Bewertung
0 lesenswert
nicht 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.

Autor: Daniel T. (Gast)
Datum:

Bewertung
0 lesenswert
nicht 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.

Autor: Michael (Gast)
Datum:

Bewertung
0 lesenswert
nicht 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.

Autor: Daniel T. (Gast)
Datum:

Bewertung
0 lesenswert
nicht 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... :(

Autor: Daniel T. (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Entschuldigung Kd hat das invertierte Vorzeichen von Kp.

Autor: Remote One (remote1)
Datum:
Angehängte Dateien:

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

Autor: Daniel T. (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hallo remote1,

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


Daniel

Autor: Daniel T. (Gast)
Datum:

Bewertung
0 lesenswert
nicht 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?

Autor: Remote One (remote1)
Datum:

Bewertung
0 lesenswert
nicht 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.

Autor: Christoph Gradl (christoph_gradl)
Datum:

Bewertung
0 lesenswert
nicht 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

Autor: kjk (Gast)
Datum:

Bewertung
0 lesenswert
nicht 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.

Autor: Andi ... (xaos)
Datum:

Bewertung
0 lesenswert
nicht 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"..

Autor: blabla (Gast)
Datum:

Bewertung
0 lesenswert
nicht 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.

Autor: Daniel T. (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hallo an alle,

habe jetzt auch meinen Fehler gefunden.


Danke an alle für die Hilfe. ;)

Lg

Daniel

Autor: blabla (Gast)
Datum:

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

Autor: Bernd (Gast)
Datum:

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

Autor: Theo (Gast)
Datum:

Bewertung
0 lesenswert
nicht 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!

Autor: Christoph Gradl (christoph_gradl)
Datum:

Bewertung
0 lesenswert
nicht 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

Autor: Theo (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Okay, danke erstmal.

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

Autor: Christoph Gradl (christoph_gradl)
Datum:

Bewertung
0 lesenswert
nicht 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...

Kapitel 5 (Seite 67)

mfg
Christoph

Autor: Thomas B. (detritus)
Datum:

Bewertung
0 lesenswert
nicht 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.

Autor: Theo (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Jo, macht Sinn. Dankeschön!

Antwort schreiben

Die Angabe einer E-Mail-Adresse ist freiwillig. Wenn Sie automatisch per E-Mail über Antworten auf Ihren Beitrag informiert werden möchten, melden Sie sich bitte an.

Wichtige Regeln - erst lesen, dann posten!

  • Groß- und Kleinschreibung verwenden
  • Längeren Sourcecode nicht im Text einfügen, sondern als Dateianhang

Formatierung (mehr Informationen...)

  • [c]C-Code[/c]
  • [avrasm]AVR-Assembler-Code[/avrasm]
  • [code]Code in anderen Sprachen, ASCII-Zeichnungen[/code]
  • [math]Formel in LaTeX-Syntax[/math]
  • [[Titel]] - Link zu Artikel
  • Verweis auf anderen Beitrag einfügen: Rechtsklick auf Beitragstitel,
    "Adresse kopieren", und in den Text einfügen




Bild automatisch verkleinern, falls nötig
Bitte das JPG-Format nur für Fotos und Scans verwenden!
Zeichnungen und Screenshots im PNG- oder
GIF-Format hochladen. Siehe Bildformate.
Hinweis: der ursprüngliche Beitrag ist mehr als 6 Monate alt.
Bitte hier nur auf die ursprüngliche Frage antworten,
für neue Fragen einen neuen Beitrag erstellen.

Mit dem Abschicken bestätigst du, die Nutzungsbedingungen anzuerkennen.