interaktiver PID Regler

OP #2871792
Lesenswert?

Hallo Leute!
ich bin auf der Suche nach einem guten interaktiven PID Regler und einen 
guten Regelalgorithmus für einen inversen Pendel Robotor. Mit meinem 
normalen PID Regler komme ich nicht voran, der den Winkel als PWM 
regelt. Ich weiss nicht genau ob ich die Motordrehzahl oder 
Motorgeschwindigkeit regeln soll. Danke!
Angehängte Dateien:
OP #2872179
Lesenswert?

Motordrehzahl mit Encoder, Geschwindigkeit PWM , darin besteht der 
Unterschied.

Von interaktiven PID Regler habe ich gehört, aber wie die aussieht keine 
Ahnung.

Die Motoren werden mit ca. 15 V betrieben, 9V Block dient für die 
Controller und Bluetooth Stromversorgung. Die Motoren sind dafür genug 
stark und schnell.

Winkel erfasse ich mit Hilfe Kalman Filter aus dem 
Winkelgeschwindigkeitssensor (Gyro) und Beschleunigungssensor. Drehzahl 
aus dem Encoder.

Wie kriege ich die entsprechende Drehzahl die ich für den Winkelregler 
benötige.
Könnte es so sein: drehzahl=roboterhoehe* sin(winkel)  ?
Gast #2872186
Lesenswert?

Willy Rokey schrieb:
> Könnte es so sein: drehzahl=roboterhoehe* sin(winkel)  ?

Ganz bestimmt sogar!
Je höher der Roboter, desto schneller muss das Ding werden, sei froh, 
dass er nicht so hoch ist sonst bräuchtest F1-Motoren ...
Allerdings glaube ich hast Du die Temperaturabhängigkeit vergessen, die 
ist bei interaktiven Reglern enorm wichtig sonst werden sie träge!
OP #2872211
Lesenswert?

Alexander Vogel schrieb:
> Dein Ziel sollte ein Winkelregler sein.
>
> Stromregler -> Drehzahlregler -> Lage-/Winkelregler
>
> Je nachdem wie qualitativ hochwertig dein Drehzahlregler/Winkelregler
> ist kann man auch den Stromregler weglassen.

Stromregler bzw Kaskaderegler? dann muss ich den Strom über einen Shunt 
messen. Ich habe keine genauere Infos über meine Motoren. Offsets usw.
Gast #2873091
Lesenswert?

PID Regler duerften schon so seit 100Jahren Stand der Technik sein. Die 
koennen wir leider nicht mal eben so verbessern. :-)
Das man fuer soetwas gerne einen Kaskadenregler nimmt, also mehrere 
verschachtelte Regler um die Bestimmung der Regelparameter zu 
vereinfachen, hat man dir auch schon gesagt.

Alles was du noch machen musst ist die Regelparameter zu bestimmen. Das 
kann dir hier keiner abnehmen. Was du brauchst ist ein Buch oder eine 
Vorlesung ueber Regelungstechnik um die Prinzipien zu verstehen, und 
ausserdem laengeres rumfrickeln in der Praxis um danach ein Gefuehl fuer 
die erworbenen Grundlagen zu bekommen.

Olaf
#2873108
Lesenswert?

Willy Rokey schrieb:
> while(1){
>    getActuelWinkel();
>    PWM=PID(actuellWinkel);
>    Fahreroboter(PWM);
> }
>
> so sieht mein Algorithmus aus. Verbesserung??

Ist doch optimal!
Falls:
- irgendwo ein delay ist, um auf ein festes
  Zeitraster zu kommen (ansonsten ist
  wahrscheinlich deine Integration für die
  Katz, wenn du keinen Zeitabstand hast)
- getActuelWinkel() ok ist
- PID() ok ist
- Fahreroboter() ok ist
#2873691
Lesenswert?

Willy Rokey schrieb:

> Wie kriegt man Drehzahl? drehzahl = robbihöhe * sin(aktuellWinkel) ?
> noch dazu Konstanten? etwa Erdbeschleunigung?


Ich denke ehrlich gesagt nicht, dass die Flotte der auf den Hinterrädern 
balanzierenden Asuros das so kompliziert macht.

PID Regler, der die Motor-PWM aus dem Winkel ableitet.
Steht das Teil senkrecht, ist der Motor in Ruhe.
Sobald eine Winkelabweichung gemessen wird, werden die Motoren 
angeschmissen, damit die Räder wieder unter den Schwerpunkt fahren.
Welche konkrete Drehzahl das darstellt - interessiert wohl keine Sau. 
Hauptsache die Reglerantwort ist so, dass die Abweichung möglichst früh 
und ohne großartiges Überschwingen ausgeglichen wird.
Gast #2873793
Lesenswert?

> angeschmissen, damit die Räder wieder unter den Schwerpunkt fahren.
> Welche konkrete Drehzahl das darstellt - interessiert wohl keine Sau.

Da hast du natuerlich im Prinzip recht, aber ich denke das die 
Bestimmung der Reglerparameter einfacher ist wenn man es kaskadiert 
macht. Ausserdem koennte man auch fragen was denn der Sinn der ganzen 
Sache ist. Wenn der Roboter nicht nur still stehen soll, sondern sich 
auch mal bewegen moechte, dann wird man vielleicht eine bestimmte 
Geschwindigkeit vorgeben wollen?

> Drehzahl kriegt man mit viel Dreh und viel Zahl!

Hihi...auf jedenfall mit einer moeglichst hohen Aufloesung. Man will ja 
idealerweise im Stillstand gegen den Grenzwert von null regeln. Es lohnt 
im uebrigen mal einen echten Segway zu beobachten. Die wippen im 
Leerlauf immer leicht hin und her.

Olaf
#2873819
Lesenswert?

>while(1){
>   getActuelWinkel();
>   PWM=PID(actuellWinkel);
>   Fahreroboter(PWM);
>}

Hat als Schwachstelle den getActuelWinkel();. Da wird wahrscheinlich ein 
MIMS verwendet um mit 2 koordinaten die Schwerkraft zu messen. Was 
natuerlich Muell anzigt wenn die Achse beschleunigt. Denn dann treten 
Seitenkraefte auf, auch wenn der Winkel Null=senkrecht ist. Dh es wird 
ein Winkelfehler gemessen, wo keiner ist.
Allenfalls sollte man da zusaetzlich einen Winkelbeschleunigungsmesser 
einsetzen.
OP #2873824
Lesenswert?

Drei von Vier schrieb:
>>while(1){
>>   getActuelWinkel();
>>   PWM=PID(actuellWinkel);
>>   Fahreroboter(PWM);
>>}
>
> Hat als Schwachstelle den getActuelWinkel();. Da wird wahrscheinlich ein
> MIMS verwendet um mit 2 koordinaten die Schwerkraft zu messen. Was
> natuerlich Muell anzigt wenn die Achse beschleunigt. Denn dann treten
> Seitenkraefte auf, auch wenn der Winkel Null=senkrecht ist. Dh es wird
> ein Winkelfehler gemessen, wo keiner ist.
> Allenfalls sollte man da zusaetzlich einen Winkelbeschleunigungsmesser
> einsetzen.

Beschleunigungssensor und Gyroskope sind dabei.
Gast #2874403
Lesenswert?

Ein PID mit etwas rumprobieren tut nicht ... schade. Tja. Den 
Regelalgorithmus gibt's mit dem Modell. Bring mal ein Modell. Die 
Differentialgleichungen bitte. Erst mal das Koordinatensystem. Mit der 
Wahl des optimalen Koordinatensystems werden die Differentialgleichungen 
einfacher.

Wir sind mit einem Lagrageansatz zufrieden. Es muss kein Hamiltionian 
sein.
Sind die Nichtphysiker noch da ?
OP #2874439
Lesenswert?

Mit dem PID hab ich tausendmal rumprobiert. Immer durch den A r s c h.

Grad hab ich die DC -Motoren systemtheoretisch vereinfacht bescheibt. 
Ich weiss es nicht ob es mir was bringt.
Ich wusste längst das die Motoren PT1 Verhalten haben. Daher der PID 
Regler.

Drehzahl = Winkelgeschwindigkeit (Daten aus Gyroskope) ?? Ist das 
Richtig?
Die Einheiten stimmen nicht ganz. Drehzahl zahl/zeit. 
Winkelgeschwindigkeit winkel/zeit.
Angehängte Dateien:
OP #2874441
Lesenswert?

эл супертролль schrieb:
> Ein PID mit etwas rumprobieren tut nicht ... schade. Tja. Den
> Regelalgorithmus gibt's mit dem Modell. Bring mal ein Modell. Die
> Differentialgleichungen bitte.
Gewöhnliche Diff-Gleichung erste und zweite Ordnung habe ich gebildet.
> Wir sind mit einem Lagrageansatz zufrieden. Es muss kein Hamiltionian
> sein.
Ach komm tovarish! Davon will ich gar nichts wissen. :)
Gast #2874453
Lesenswert?

Ein DC Motor ? Hat unter anderem die Charakteristik, dass die Kennlinie 
Omega:=f(u) nicht durch Null geht. Man muss die Kommutatorspannung 
anlegen, dass er loslaeuft. dh in Null, welches selbst eine kleine 
hysterese haben muss, springt die Spannung um zwei mal die Kommutator 
Spannung. Die wird etwa ein Volt oder so sein. Weiter kam ich noch 
nicht, werd mir's aber anschauen
Persönliche Seite #2874548
Lesenswert?

Mein Bauchgefühl rebelliert. Willi ist am Arsch und kann auf der einen 
Seite keine vollständigen deutschen Sätze schreiben. Andererseits 
programmiert er PID Regler, kennt die Gravitationskonstante und schreibt 
die Dgl. für einen DC Motor mit Lastmoment einigermaßen korrekt auf. 
Weiterhin versteht er einige russische Vokabeln und kann sogar darauf 
adäquat antworten. Auch Lagrange oder Hamilton stoßen ihn nicht ab. 
Diverse Veröffentlichungen zum inversen Pendel kennt er bestimmt aus dem 
ff. Damit gibt es eigentlich nur zwei schlüssige Deutungen. Eine davon 
könnte Schizophrenie sein. Die andere ist jedoch wahrscheinlicher.
OP #2874997
Lesenswert?

Joe G. schrieb:
> Mein Bauchgefühl rebelliert. Willi ist am Arsch und kann auf der einen
> Seite keine vollständigen deutschen Sätze schreiben. Andererseits
> programmiert er PID Regler, kennt die Gravitationskonstante und schreibt
> die Dgl. für einen DC Motor mit Lastmoment einigermaßen korrekt auf.
> Weiterhin versteht er einige russische Vokabeln und kann sogar darauf
> adäquat antworten. Auch Lagrange oder Hamilton stoßen ihn nicht ab.
> Diverse Veröffentlichungen zum inversen Pendel kennt er bestimmt aus dem
> ff. Damit gibt es eigentlich nur zwei schlüssige Deutungen. Eine davon
> könnte Schizophrenie sein. Die andere ist jedoch wahrscheinlicher.

arbeitest du evtl bei bild zeitung?

Antwort schreiben

Bitte melde dich an, um einen Beitrag zu schreiben.

oder

Mit Google-Account einloggen

Die Registrierung ist kostenlos und dauert nur eine Minute.

Jetzt registrieren