Hi, ich arbeite gerade an einem Roboter, der nach dem Prinzip eines inversen Pendels aufgebaut ist und über einen PID-Regler gerade gehalten werden soll. Nicht zum draufstellen sondern der Roboter soll nur gerade stehen und als Weiterentwicklung fahren können. PID-Eingang ist der aktuelle Winkel, PID-Ausgang ist die PWM-Motorenleistung in Prozent. Ich habe schon einige Tage am Regler nach Faustformelverfahren herumprobiert, Ziegler-Nichols bringt mir leider bei einer Schwingperiode von 0.250s nur unbrauchbare I-Anteile. Aktuell bin ich bei P: 47, I: 5 und D: 0.03 Ich habe jedoch noch, egal wie ich die Parameter verändere, anscheinend noch eine periodische Schwingung drin. Die grüne Linie ist der aktuelle Winkel des Roboters, die blaue Linie die PWM-Motorleistung in Prozent und die rote Linie ist der interne I-Anteil des Reglers. Jeder Schritt in dem Diagramm entspricht 5ms, die verbleibende größere periodische Schwingung der grünen Linie hat also ungefähr auch eine Periode von ~0.250s. P-Anteil runter und I hoch hat leider auch nicht viel gebracht. In MATLAB habe ich alles schon recht gut simuliert und dort tritt das selbe Problem auf. Ich bin Informatiker und habe bis auf eine Vorlesung wo die ganze Theorie runtergebrochen wurde noch kaum Erfahrungen mit Regelungstechnik. Was hättet ihr für Vorschläge oder wie würdet ihr da dran gehen, um die Schwingung rauszubekommen? Der Roboter balanciert so schon ganz gut, fährt aber noch 10-20cm hin und her, was die im Diagramm zu erkennende Schwingung zu sein scheint. Beste Grüße
informatiker schrieb: > Hi, > Der Roboter balanciert so schon ganz gut, fährt aber noch 10-20cm hin > und her, was die im Diagramm zu erkennende Schwingung zu sein scheint. Dann mach doch mal den D-Anteil größer und den I-Anteil eventuell kleiner.
Mit nur einem Regler wirst du außerdem nicht hinkommen. Du regelst ja im Moment nur den Winkel. Welchen Grund soll er denn haben, auf der Stelle stehen zu bleiben?
keine Ahnung, ob es jetzt bei dir daran hängt, aber oft liegt seltsames Verhalten auch am Aufbau: Wie viel Spiel hast du in Lagerung, Kraftübertragung, Motor? Wie stark ausgeprägt sind Reibungseffekte? Ganz fies kann der Übergang von der Haft- zur Gleitreibung sein. Wie rauschfrei misst dein Sensor? @Stefan: Wenn er den Winkel regelt, darf er schon den Anspruch haben, dass der Winkel nicht schwingt. Alles andere kommt später Trotz allem was ich geschrieben habe, glaube ich, dass du recht hast, dass der I-Anteil in jedem Fall zu groß ist. Wenn man sich die Plots anschaut, sieht man dass der I-Anteil (rot) maximal ist, wenn das System gerade ausgeregelt wäre (grün == 0). Und bis das rote auf 0 runterintegriert wurde, ist der Winkelfehler schon zu stark negativ. mehr als raten können wir aber mit mehr infos auch nicht ;)
Ein bekanntes Problem bei Reglern mit I-Anteil ist, dass bei Haft-/Gleitreibung im System und auch bei grober Quantisierung eine Oszillieren um die Ruhelage zu beobachten ist. Lösungensansätze sind: - eine I-Abschaltung sobald die Regelabweichung sehr klein ist - Aufschalten eines hochfrequenten Sinus-Signals (Rechteck wirds auch tun) auf das PWM, wodurch das mechanische System permanent im Gleitzustand bleibt - Kompensation der Reibkraft durch Aufschalten der geschätzen Reibkraft auf die Stellgröße Aber nach meinen Erfahrungen nach bekommt man diese Probleme nie perfekt gelöst.
De PID ist das Breitschwert des Bastlers, das hat irgendwo seine Grenzen. Ich wuerd's in diesem Fall mit einem Zustandsregler mit Beobachter ersetzten.
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.