Hallo zusammen, wir haben in einer kleinen Gruppe die Aufgabe, ein inverses Pendel nach dem Aufschwingvorgang in der senkrechten Position zu stabilisieren. Das inverse Pendel ist frei drehbar an einer Linearachse befestigt und soll nur mit Hilfe der Fahrbewegungen der Linearachse zunächst aufgeschwungen und dann auf 12 Uhr stabilisiert werden. Der Pendelwinkel kann über einen Inkrementalgeber eingelesen werden. Der Aufschwingvorgang selbst funktioniert schon gut und ist mit Hilfe einer Sinusfunktion umgesetzt, sodass sich das Pendel langsam und definiert aufschwingt. Unser Problem ist jedoch die Stabilisierung in der Senkrechten (bei uns Pi bzw. -Pi). Nachdem wir den Ansatz über einen LQ-Regler verworfen hatten, gab uns unser Dozent den Tipp, einen nichtlinearen P-Regler zu verwenden. Bislang sind aber alle Versuche der Stabilisierung gescheitert. Wir versuchen dies zunächst folgendermaßen: Wir halten das Pendel auf 12 Uhr fest und lassen dies los, um so den Regler einstellen zu können. Das "Abfangen" wäre dann der nächste Schritt. Unseren Regler haben wir wie folgt implementiert: X_Ist = this->Drehgeber->GetCounterValue(); //Istwert vom Drehgeber (0=6 Uhr ; Pi/-Pi=12 Uhr) e_Abw = W_Soll - X_Ist; //Regelabweichung efkt = fabs_(e_Abw); //Absolutwert der Regelabweichung Y_Stell = pow_(Kp *efkt, exp_x)*(e_Abw/efkt) * -1; //Stellwert Regler Die Pow_-Funktion ist dabei unsere nichtlineare Funktion x^n, "x" (Kp*efkt) ist dabei die Regelabweichung multipliziert mit dem Verstärkungsfaktor Kp und "n" (exp_x) ein fester Wert, mit dem wir herumexperimentiert haben. Der Ausdruck nach der ersten Klammer bestimmt alleine die Fahrtrichtung des Schlittens. Für Tipps und Vorschläge für die Lösung unseres Problems wäre ich sehr dankbar. Viele Grüße Daniel
:
Bearbeitet durch User
Was hat das ++ in einer Regelung zu suchen? Und auf einem PeeCee wird das nie und nimmer funktionieren, oder was für ein RT-OS verwendet Ihr? Gruss Chregu
Daniel L. schrieb: > (0=6 Uhr ; Pi/-Pi=12 Uhr) Da würde ich mir mal ein paar Gedanken dazu machen...
Also das ist schon arg komisch, dass ihr das nicht stabilisiert bekommt. Die obere Ruhelage ist instabil. Da linearisiert man dann eben die Modellgleichungen um den Arbeitspunkt (obere Ruhelage) und entwirft dann einen linearen Regler. Den Regler kann man in der Wurzelortskurve oder anhand des offenen Kreises entwerfen. Ich glaube bei mir im Praktikum war es damals ein PI-Regler. Zeig mal das Modell. Was habt ihr für einen Beobachter verwendet für den LQ-Regler?
Einer schrieb: > Daniel L. schrieb: >> (0=6 Uhr ; Pi/-Pi=12 Uhr) > > Da würde ich mir mal ein paar Gedanken dazu machen... Worauf möchtest Du konkret hinaus? Das einzige, was mir gerade dazu einfallen würde, wäre die Regelabweichung, die durch die Skalierung von 2Pi auf den gesamten Kreisumfang selbst bei größeren Winkeln nie besonders groß ist und der Regler dementsprechend spät reagiert - nur kann man darauf ja über die Verstärkung Kp Einfluss nehmen. Den Sollwert setzen wir abhängig davon, in welche Richtung das Pendel den Höchstpunkt überschreitet entweder auf Pi oder -Pi (was aber noch keine Rolle spielt, solange wir versuchen, das Pendel einfach zu stabilisieren, nachdem wir dieses oben loslassen). Ein anderer Punkt wäre natürlich: Solange die Abweichung <1 ist, wird der Stellwert durch die Potenz verkleinert, ist er jedoch >1, wächst der Stellwert je nach eingestellter Potenz rasant an. @christian_m280: Wir machen das Ganze mit einer Beckhoff-Steuerung sowie TwinCat und Visual Studio. Das ermöglicht die Isolierung von CPU-Cores für unsere Regelaufgabe. @kyblord: Bei dem LQ-Regler sind wir leider schon daran gescheitert, diesen in Code umzusetzen - der Ansatz hierfür fehlt schlichtweg. Was den oben angesprochenen nichtlinearen P-Regler angeht, so haben wir diesen wie oben gezeigt implementiert und versucht, uns über Variation von "Kp" und "n" an gute Werte heranzutasten. Aber entweder war die Reaktion des Reglers zu langsam oder aber der Schlitten fing an zu rattern. Bisher also alles sehr bescheiden, leider.
Naja. Den Fehler nichtlinear auf das Stellglied umzusetzen ergibt ja noch viele Moeglichkeiten. Ich wuerd mal beginnen die systematisch durchzuprobieren, allerdings mit dem Messen der Antwort dazu. Wie varhalten sich Fehler und Stellgroesse ueber die Zeit fuer die verschiedenene Funktionen mit verschiedenen Parametern.
Hier würde ich nicht fragen. Die schaffen es nicht mal, die Ruheposition ruhig zu halten, aber besser als nix. https://www.youtube.com/watch?v=fTK37EZzruk
udok schrieb: > Hier würde ich nicht fragen. Die schaffen es nicht mal, > die Ruheposition ruhig zu halten, aber besser als nix. Du meinst das knattern oder das zyklische Verfahren um x cm? Zweites könnte auch ein gewolltes positionieren sein.
N. M. schrieb: >> Hier würde ich nicht fragen. Die schaffen es nicht mal, >> die Ruheposition ruhig zu halten, aber besser als nix. > > Du meinst das knattern oder das zyklische Verfahren um x cm? Zweites > könnte auch ein gewolltes positionieren sein. Ja. Die Ruheposition sollte auch immer in die Mitte fahren, sonst kann das System nicht mehr auskorrigieren. Aber die Hardware ist ein paar Klassen schlechter als die aus dem ersten Video.
Rumprobieren kannst du noch lange. Ohne Modell kann man keinen vernünftigen Regler entwerfen. Zeig mal ein Bild vom Aufbau. Ich nehme an es ist ein Stab gelenkig gelagert auf einem Linearschlitten der über einen Riemen/Kugelgewindetrieb von einem Motor angetrieben wird?
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.