Hallo,
Ich habe eine Regelstrecke von einem anderen Programm in Matlab
transferiert und habe einen einfachen Regelkreis mit Simulink
aufgebaut,bestehend aus einem PID Regler und der bekannten Strecke.
Wenn man einen Einheitssprung auf die Strecke legt, ist die
Sprungantwort sinusförmig und klingt nur langsam ab gegen null...
Nun soll der PID Regler diesen Abklingvorgang beschleunigen und die
Amplitude verringern.
Wie stelle ich den Regeler optimal ein? Gibt es rechnerische
Einstellmöglichkeiten?
Vielen Dank im Voraus!
Natürlich gibt es rechnerische Verfahren zur Wahl der Reglerparameter.
Es stellt sich für die Einhaltung von Gütekriterien allerdings zuerst
die Frage was für eine Regelstrecke vorliegt. Ist es zum Beispiel eine
einfache lineare Eingrößenregelstrecke oder vielleicht eine zeitvariante
dynamisch-nichtlineare Regelstrecke. Erste wird einfach zu regeln sein.
Die zweite könnte durchaus sehr sehr kompliziert werden.
Hey,
Ziegler Nichols und andere Verfahren funktionieren hier nicht immer,
weil man keine Standardsprungantwort erhält...
Die Verfahren sind mir klar, aber diese kann man hier nicht anwenden.
Die Regelstrecke ist zeitinvariant und nichtlinear, wenn man einen
Sprung draufgibt (siehe erster Beitrag)!
Hat jemand Lösungsvorschläge?
Es wäre vielleicht hilfreich wenn du mal die Sprungantwort als Bild
postest.
Es ist schwer einen Lösungsvorschlag zu geben wenn man praktisch nichts
weiß.
Hilfreich wäre auch die Struktur der Regelstrecke.
Das ist genau die Frage, deswegen sollte man auf ein Bild warten oder
die Struktur der Strecke bekannt wird.
Sollte es wirklich nichtlinear sein, sind sowieso genauere Infos nötig
bevor eine Verfahren oder eine Herangehensweise angegeben werden kann.
Also auf dem bild sieht es aus wie ein PT2* System. --> Schwinglreis.
Wenn du sagst, dass da s^49 steht, würde das bedeuten, du hast 49
unabhängige Energiespeicher. Sicher, dass ihr die Identifizierung
richtig gemacht habt? könntest du vllt das verwendete Sprungsignal noch
mit in das scope aufnehmen?
Wenn es sich wie oben beschrieben um einen Einheitssprung handelt,
müsste da zumindest ein offset dasein.
Alex
sieh dir mal die poles und zeros im root-locus an und nimm nur die
dominanten poles und zeros. Da wird dann wohl nur noch eine 2te order TF
übrig bleiben.
Hallo,
du kannst mit Matlab die die Regelparameter vorgeben, simulieren und die
Antwort automatisch auswerten. Auf diese weise kannst du die Parameter
optimieren oder auch komplett abrastern. Dazu kannst du z.B. jeweils das
Maximum der Regelabweichung bestimmen und dies minimieren.
Wenn die Simulation allerdings sehr komplex ist kann das schon einige
Zeit dauern.
Wenn du das ganze anders berechnen willst musst du tief in die
Regeltheorie einsteigen und am besten auch mathematisch recht fit sein.
In der Praxis wird allerdings meiner Erfahrung nach mit den
Standardverfahren die Regelparameter abgeschätzt und anschließend durch
geschicktes Versuchen weiter optimiert.
Gruß Kai
Als Sprung habe ich den Einheitssprung verwendet. Leider bin ich immer
noch nicht zu einer Lösung gekommen.
Habe das Schwingungsverfahren nach Ziegler und Nicholes angewendet. Das
führte zu keinem sinnvollen Ergebnis.
Außerdem habe ich versucht, den Regler nach "Gefühl" einzustellen. Also
alle Parameter nacheinander einzustellen. Das hat leider auch nicht
funktioniert.
Das Problem ist, die Strecke ist so träge, dass Änderungen der Parameter
Kp, Tn und Tv zu keinen nennenswerten Verbesserungen führen.
Hat jemand noch einen Rat?
Ihr habt das System als Blackbox vor euch oder habt ihr nur die Daten?
Kannst du mal bitte ein matlabfile von den rohdaten mit anhängen?
Das Scope, das du oben gepostet hast, ist das die antwort des Systems
auf den Sprung?
Wenn du wirklich einen Einheitssprung auf das system gegeben hast, dann
müsste man das aber als Offset im Signal sehen. In dem Scope oben ist
das aber nicht vorhanden. Sicher, das es kein Impuls ist?
Alex
Bernd schrieb:> Hat jemand noch einen Rat?
bist du sicher dass du die Sprungantwort auch richtig machst? Das bild
sieht nämlich sehr komisch aus, weil es sich bei 0 einpendelt, d.h. ein
steady-state gain von 0.
Wenn du in die Transfer funktion s=0 einsetzt, was ergibt das ? 0 ?
Es handelt sich hierbei um einen ganz normalen Einheitssprung. Die
Regelstrecke liegt nur als Blackbox vor, da sie aus einem anderen
Programm konvertiert wurde.
Bei dem Model bzw. Regelstrecke handelt es sich um ein
Düngespritzfahrzeug mit einem Gestänge. Starkes Anfahren, Bremsvorgänge
und Unebenheiten im Boden führen zum Schwingen des Gestänges.
In den Anhang habe ich die Simulink Datei gepackt. Bin mir nicht sicher,
ob ihr die verwenden könnt...
Trotzdem danke
kannst du vllt die TF noch mit posten?
So wie der Regelkreis jetzt ist läuft es bei mir nicht, da mir scheinbar
die sachen für das Adams zeug fehlen. habt ihr da noch was an dem
rechner dranhängen, eine ADU Karte oder so?
es ist schon ungewöhnlich, dass die alle negativ sind, außerdem die
werte. x,xx* 10^96
das was ihr da habt, hört sich nach einem Feder-Masse System an. ich
bezweifle, dass die Daten, die ihr da bei der Identifikation bekommen
habt richtig sind.
Bernd schrieb:> Hier die TF
ich hab die mal in Matlab eingegeben (die multiplikatorzeichen * fehlen
usw. nicht gerade benutzerfreundlich)
Ich hab da eine instabile sprungantwort. auch im root locus sind
instabile poles und zeros.
Wenn du die TF als z.b. Gs=... und dann step(Gs), schon mal probiert?
(vielleicht hab ich beim multiplikatorzeichen einsetzen ja irgend etwas
gelöscht oder so)
Das bei der Sprungantwort keine Faustformelverfahren funktionieren ist
schon verständlich. Wenn ich davon ausgehe, dass der Eingangssprung
einen positiven Wert hatte dann ist hier klar nichtminimalphasiges
Verhalten sichtbar. Sowas ist immer unangenehm zu regeln. Anhand des
Bildes habe ich eine einfache Übertragungsfunktion gebaut welche deine
Übergangsfunktion nachbildet. Für die Regelung habe ich die
Ausgangsgröße einfach zurück geführt. Also keinen Regler verwendet. Das
Ergebnis ist im Bild, im Vergleich zu deiner Kurve, zu sehen. Das
kritische an der Stelle ist, dass die Rückführung positiv gewählt wurde
um der Nichtminimalphasigkeit entgegenzuwirken. Das sollte bei deinem
Modell ausgiebig getest werden, bevor an die praktische Umsetzung zu
denken.
Ich hoffe natürlich das diese sehr einfach Variante funktioniert :)
Sollte es funktionieren kann ich dir ja noch mein einfaches Modell
nennen.
Gruß Thomas