Forum: Digitale Signalverarbeitung / DSP / Machine Learning Balancierender Roboter ähnlich Segway - Reglerfeintuning


von informatiker (Gast)


Angehängte Dateien:

Lesenswert?

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

von Davis (Gast)


Lesenswert?

Vielleicht kannst du dir hier etwas 
abgucken:Beitrag "Mein erster Segway ist fertig"

von Stefan N. (stefan_n)


Lesenswert?

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.

von Stefan N. (stefan_n)


Lesenswert?

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?

von A. S. (rava)


Lesenswert?

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

von Weinga U. (weinga-unity)


Lesenswert?

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.

von Purzel H. (hacky)


Lesenswert?

De PID ist das Breitschwert des Bastlers, das hat irgendwo seine 
Grenzen. Ich wuerd's in diesem Fall mit einem Zustandsregler mit 
Beobachter ersetzten.

von frischling (Gast)


Lesenswert?

@Hacky :

Wie sähe sowas aus ?

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.