Forum: Mikrocontroller und Digitale Elektronik veränderbare Regelstrecke


von Christian B. (boemmi)


Lesenswert?

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);

von Armin (Gast)


Lesenswert?

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

von Herr U. (mxvalentine)


Lesenswert?

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

von Christian B. (boemmi)


Lesenswert?

@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

von dr.schmock (Gast)


Lesenswert?

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

von Christian B. (boemmi)


Lesenswert?

@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 :)

von Armin (Gast)


Lesenswert?

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