Hallo, ich brauche für die Auslegung eines Reglers einer (eher unscheinbaren) Regelstrecke Hilfe (Regelalgorithmus verbessern / Konzeption). Regelstrecke: Gefäß--------------x--------Proppeller |-> Lagerung Balken befindet sich im Ungleichgewicht, so dass der Propeller immer nach oben den Schub liefert, um in die Waagerechte zu kommen. Das Gefäß kann während dem Betrieb entleert werden - nicht schnell (d.h. sprunghaft). Strecke(s) = 5,5 / s^2 Strecke im Laplace-Bereich entpuppt sich als eine mit doppelten I-Anteil: -> es wird hübsch schwingen -> PD-Regler(ATMEGA 16) -> ein I-Anteil weniger => ohne Änderung (Entleerung des Gefäßes bei Betrieb) der Strecke klappt das ja soweit ganz gut, es ist eine langsame Strecke, d.h. nach ca. 45sec. ist Sollwert aus Ruhelage erreicht. Mein Problem: wenn sich jetzt das Gefäß entleert, ändert sich meine Regelstrecke(Massenträgheitsmoment) und meine Regler-Parameter taugen dann nichts mehr, und es schwingt erbärmlich. Wie bekomme ich den zweiten und letzten I-Anteil weg (wenn überhaupt)? Wie könnte eine adaptive Regelung aussehen? (Habe da bisher nur im Dunkeln gestocht) Oder gibts noch andere Konzepte/Ideen? Algorithmus: y = aktueller Wert yalt = letzter Wert, damit immer Energie dem Balken zugeführt wird, d.h. es wird PD(Differenz) zu Null und die Stellgröße verbleibt in yalt Differenz = Soll - Ist; y = yalt + PD(Differnz); yalt = y; PWM(y);
bitte die Strecke nochmal beschreiben. Ist das eine Wippe? Wie sieht das Gefäß aus? Wann und wie fließt etwas rein/raus? Und: was soll geregelt werden? Die Wippe in die Waagerechte? Und: was ist Eingangsgröße, was Ausgangsgröße? Im besten Fall: Kannst du evtl eine Ableitung MESSEN? also beispielsweise Geschwindigkeit statt Ort? Dadurch könnte die Regelung leichter realisierbar werden. Oder man baut mit den Zusatzdaten eine Kaskade auf...
So ^^ ich komm aus der Betriebstechnik, wir haben immer verschiedene Regler genommen, sozusagen 3 Stufen die immer feiner worden. als Beispiel wenn du 10 mm im ungleichgewicht bist, dann fährt du mit 5mm pro sek wenn du 5 mm im ungleichgewicht bist, dann mit 3 mm und wenn du nurnoch 2 mm im ungleichgewicht bist dann justierst du nurnoch mit 1mm pro sek nach ;) dadurch näherst du dich zum Schluss wesentlich feiner an in dem Fall die Balance, und verhinderst ein überschwingen ^^ Grüße Flrian
@Armin, alle: also einen PD-Regler habe ich schon soweit im Betrieb, nur das schwingen beim Entleeren (-> veränderl. Massenträgheitsmoment) stört mich. Die Strecke ist eine Wippe im Ungleich Gewicht. Um in die Waagerechte zu kommen, muss der Propeller die Wippe runterdrücken. Das Gefäß hat unten im Boden eine Öffnung (Loch,d=12mm), Füllung ca. 180-200g Softairkugeln. Darunter befindet sich eine bewegl. Platte mit gleicher Öffnung, die sich mit einem Servo verschieben lässt. Eingangsgröße: Winkeländerung der Wippe mit Poti (Spannungsteiler -> ADC(10bit)) Ausgangsgröße des Reglers: PWM 16bit, 50Hz -> Strecke ist sowie so schnarchlangsam (vielleicht ist auch das der Fehler???) Stellgröße genau genommen ist der Schub. PWM -> FET -> Motor -> Propeller -> Schub Winkeklsoll-> PD-Regler -> PWM/.../Schub -> Wippe |(-) | |_____ADC(U_Poti)__________________| @ Florian P. sowas in der Art habe ich schon gemacht (versucht), und den Regler bei näherkommen des Sollwertes sanfter werden lassen. Leider bisher ohne Erfolg. Dieser verflixte 2te I-Anteil versaut das. Habe ich so im Gefühl, weil der Regler immer genau dann langsamer wird, wenn er den höchsten Punkt beim Überschwingen erreicht. (blöde Phasenverschiebung; Totzeit!?!) Toll, wäre es jetzt, wenn der Regler nachdem Überschwingen, zügig aber dennoch sanft, auf das Soll steuert. Ich habe in dem Versuch den P und den D Anteil immer weiter verringert. Wenn ich in die Strecke noch einen D-Anteil reinfrickeln könnte, müsste es theoretisch stabil laufen, da dann alle I-Anteil geplättet sind. Ich könnte noch die Drehzahl am Motor über einen Impuls messen und berechnen. Grüße Boemmi
Hallo. Ich glaube, der bleibende I-Anteil ist nicht das Problem. Hast du schon versucht, die Regelgeschwindigkeit des PD-Reglers zu verändern? Die Formel des Reglers ist ja
Bei einem bestimmten k_R ist der Regler zu schnell und es beginnt ein Überschwingen. Anschaulich ausgedrückt: Wenn die Masse des Gefäßes sinkt, müsste auch der Propeller weniger heftige Reaktionen zeigen, um nicht überzuschwingen. Also müsste man k_R kleiner machen. Das wäre jetzt meine spontane Interpretation. Mein Vorschlag wäre nun, die Funktion PD() anzupassen, und schauen was passiert. Du kannst ja mal auf die Schnelle einen Test machen, indem du einfach die eine Zeile wie folgt veränderst y = yalt + PD(0.5 * Differenz); Ich hoffe es hilft
@dr.schmock: Deinen Vorschlag habe ich schon mal vor Wochen ausprobiert. Wenn der P-Anteil winzig ist, schwingt nichts. Egal ob das Gefäß jetzt voll oder leer ist. Nur dann dauert es ewig, bis das Soll erreicht ist. Die Nachregelzeit ist einfach zu groß; es sieht so aus als würde man manuell regeln. Um das Problem noch genauer zu beschreiben: Ich hätte gerne eine relativ kurze Nachstellzeit über den gesamten Gewichtsverlust des Gefäßes. Wie gesagt einen Regler für eine nicht-veränderliche Strecke auszulegen kann ich ja. (Nur ich bin irgendwie unfähig, eine veränderbare Strecke zu regeln bzw. es fehlt mir da ein Konzept.) Habe auch schon im Netz nach diesem Fall gesucht und auch das ein oder andere Regelungstechnische Buch zur Hand genommen. Die schweigen sich aber meistens über veränderbare Strecken aus. Ein P-Anteil von 1 ist schon viel zu groß, die Werte hierfür bewegen sich zwischen 1/2 bis 1/8. Der D-Anteil kann um einiges größer gewählt werden: 2 bis 8 I-Anteil ist sowie so nicht von Nöten; habe schon genug in der Strecke :]. Ich hätte noch eine Idee: Ich berechne durch die Servostellung den Gewichtsverlust d. Gefäßes, und anhand dessen kann ich meine neuen Regelparameter bestimmen. ABER wie verändere ich dann die einzelnen Parameter. Da befinde ich mich ja dann doch wieder im Blindflug (try-and-error). ahhhh :)
kannst du die Servoeinstellung messen? Dann hättest du ein System mit mehreren Eingangsgrößen (MISO) Falls nicht, handelt es sich um eine Störgröße. Eine andere Möglichkeit, "Veränderliche" Regelstrecken zu beschreiben ist mir auch nicht bekannt.
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.