PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : balancierender Roboter



kehrblech
02.06.2008, 20:28
Hallo,

ich versuche gerade einen balancierenden Roboter zu bauen(ich weiß, das Thema gab es schon oft, habe auch schon danach gesucht, aber nichts gefunden was ich verstehe)
Zuerst soll "nur" ein Stab balanciert werden, der auf einer beweglichen Platform montiert ist. Der Winkel wird mit einem Poti gemessen.
Jetzt habe ich das Problem,das ich den Regler nicht programmieren kann.
Der Stab bleibt manchmal nur 2 Sekunden stehen, manchmal auch schon 30, jedenfalls fällt er früher pder später um.
Wie funktioniert ein guter Regler?

Gruß
Jan

rideyourstyle
02.06.2008, 20:55
Vielleicht hilft es dir, wenn du weisst, dass so ein Stab auch inverses Pendel genannt wird. Es gibt einige gute Videos in der Röhre. Ich hab da einmal etwas von einem Fuzzi Regler gelesen... Könnte aber schwierig werden...

sehreilig
02.06.2008, 21:01
Hallo, ich habe etwas Erfahrung in Regeltechnik, habe aber dieses spezielle Problem bisher nicht bearbeitet.
1. Wenn der Stab stillsteht, ist alles gut, fängt er an, sich zu bewegen, dann wirds Ernst: das spricht für einen D-Regler (die Veränderungsgeschwindigkeit macht das Signal)bzw. einen hohen D-Anteil, d.h. die Vorhaltezeit ist groß.
2. Die Frage für mich ist, wie genau dein technologischer Aufbau ist, z.B. auf welche Weise du den Teller verstellst, wie du die bisherige Regelung bewerkstelligst.

Ich würde den Regler zunächst analog in OP-Technik aufbauen, weil damit sehr schnelle Regler auf einfache Weise aufgebaut werden können.

Grüße von Jens

RP6conrad
02.06.2008, 21:56
Ganz schone Auftrag !!
Beim jeden Regelproblem komt erst die basisfrage :
Was ist zu reglen ? In diesen Fall soll ich sagen : Winkel von Stab muss 0° sein (Vertical). Daneben soll auch die position von das bewegliche Plattform wahrscheinlich begrenzt sein.
Was ist das Stellglied ?
Eigenlich die Geschwindigkeit von Platform ? Falsch ! In diesen Fall muss die Beschleunigung von Platform geregelt werden !! Das bedeutet das dieses Platform doch eher dynamisch sein muss. Auch soll eine analoge Beschleunigungsregelung moglich sein, in beide Richtungen !!.
Um das ganse nicht zu zwierig zu machen, soll ich eine relatif lange Stabe nemen, und das Massenpunkt so hoch wie moglich. Das macht dan die Bewegung von Stabe langsamer.
Als erste sollst du eine P-Regler programmieren : die Winkel von Stab multipliziert mit eine "konstante" gibt dan die grossen von Stellglied :
Winkel*konstante = Beschleunigung
Jetzt musst du die richtige werte von diese konstante finden : das Platform ist zu Traege zum korrigeren : konstante erhohen ; Das ganze fangt an zu oscillieren : konstante kleiner machen.
Zweite Schritt : D-Anteil. Das ist etwas schwieriger. Dieses Anteil bezieht sich auf die Aenderung von Position der Stabe in eine bestimmte Zeitstrecke. Dazu berechnet man folgendes : (Actuelle pos - Alte pos Stabe). Die Zeit zwischen beide Messungen sollst du immer gleich halten (100 mS?). Dabei kommt dan wieder eine "konstante", und das produkt einfach addieren bei das P-anteil. Auch diese konstante muss dan wieder optimiert werden...
Und so weiter mit das I-anteil....

kehrblech
03.06.2008, 11:40
Die Platform läuft auf Schienen. Sie wird über eine Kette von einem feststehendem Motor angetrieben.
Ich habe bisher immer den Winkel der Stange direkt in eine bestimmte Geschwindigkeit umgesetzt und gleichzeitig den Soll-Winkel verändert, wenn die Platform sich von der Mitte entfernt hat(damit sie nicht an das Ende der Schiene kommt), außerdem habe ich auch schon die Geschwindigkeit des Stabes mit eingerechnet, alle 20ms wurde der Unterschied zwischen alter und neuer Position berechnet.

Was ist das Stellglied ?
Eigenlich die Geschwindigkeit von Platform ? Falsch ! In diesen Fall muss die Beschleunigung von Platform geregelt werden !!
Genau das werde ich jetzt erstmal probieren. Wie kann ich denn dabei dafür sorgen, dass der Stab in der Mitte der Schiene bleibt?

sehreilig
03.06.2008, 18:43
Ein Stellglied ist, wie der Name schon sagt, eine baugruppe, also keine physikalische Größe. Die Strellgröße wird auch nicht geregelt, sondern sie ist diejenige Größe, die gemäß dem Regelaufgabe die Regelgröße nachstellt, dies ist die zu regelnde Größe, hier der Winkel der zu balancierenden Stange.

Der Regelablauf könnte m.Ansicht nach so beschrieben werden:

Der Sollwert ist 90 Grad (Stab senkrecht)
Wird der Winkel kleiner, muss der Motor (=Stellglied) nach rechts drehen,
wird der Winkel größer, muss der Motor nach links drehen (links, bzw. rechts kann natürlich hier vertauscht sein).
Ist der Winkel 90 Grad steht der Motor.

Die Reglereinstellung scheint nicht einfach zu sein.
Aus meinem Verständnis müsste ein hoher D-Anteil vorhanden sein, weil dieser Anteil die Veränderungsgeschwindigkeit des Fehlerwinkels auswertet und entsprechend flott eingreifen dürfte
Es gibt im INet zahlreiche Veröffentlichungen zu dem Thema unter dem Stichwort "Inverses Pendel" bzw. "invertiertes Pendel", die ich allerdings nicht kenne.
Inzwischen finde ich das Problem auch so interessant, dass ich den Versuch auch einmal wagen werde.

Viel Erfolg, ich bin an deinen weiteren Erfahrungen und Fragen interessiert.

Grüße von Jens

kehrblech
03.06.2008, 19:43
Der Sollwert ist 90 Grad (Stab senkrecht)
Wird der Winkel kleiner, muss der Motor (=Stellglied) nach rechts drehen,
wird der Winkel größer, muss der Motor nach links drehen (links, bzw. rechts kann natürlich hier vertauscht sein).
Ist der Winkel 90 Grad steht der Motor.
Genau das habe ich als erstes versucht. Der Stab bleibt stehen, aber die Platform kommt recht schnell an das Ende der Schiene, dort fällt der Stab dann um, weil es nicht mehr weiter geht.
Als zweites habe ich versucht den Soll-Winkel in Bezug zur Position der Platform zu ändern(wenn die Platform am linken Ende ist, soll der Stab etwas nach rechts geneigt sein, damit er wieder in die Mitte kommt).
Das geht eine Zeitlang gut, aber es schaukelt sich auf und dann kommt irgendwann auch das Ende der Schiene.
Dann hab ich ausgerchnet wo sich der Stab in X Sekunden befinden wird, wenn die Platform ihre Geschwindigkeit nicht ändert und daraus den Soll-Winkel berechnet. Das ging bis jetzt am besten, schaukelt sich aber auch auf.
Jetzt werde ich es mal mit ein paar Reglern ausprobieren.

Gruß
Jan

oberallgeier
03.06.2008, 22:25
... Ist der Winkel 90 Grad steht der Motor ...Eben nicht. Warum nicht? Weil:
... Genau das habe ich als erstes versucht. Der Stab bleibt stehen, aber die Platform kommt recht schnell an das Ende der Schiene, dort fällt der Stab dann um, weil es nicht mehr weiter geht... Der Pendel muss überschwingen - und gedämpft werden. Sonst gehts eben so schief wie beschrieben. Der Stab braucht das Überschwingen um beim Regeln die Grundplatte wieder in die alte Position zu bringen. Ich vermute, dass die Reglerverstärkung mit steigender Auslenkung der Grundplatte größer werden muss, wenn die nur eine endliche Bewegungsmöglichkeit hat. Mit der größeren Verstärkung steigt ja auch die Neigung zum Überschwingen. Der aperiodische Grenzfall findet in diesem Beispiel wohl nur in einer eher engen Umgebung der Grundstellung des Stützpunktes statt.

Es ist wirklich eine hübsche Aufgabe - die würde mich (auch) ziemlich reizen.

Aber es gibt doch recht viele Beispiele hier im Forum dazu.

sehreilig
04.06.2008, 08:28
M.A nach muss ein zweiter Regelkreis her:
der erste kümmert sich um den Winkel, und der scheint ja bereits zu funktionieren.
Der zweite hat folgende Aufgabe:
Regelgröße: Stellung der Plattform.
Ist die Plattform außerhab der Mittenstellung, wird diese rückgestellt.
Als Regler scheint mir hier ein PI-Regler geeignet (ohne D-Anteil, sonst würde der Bewegung der Plattform zum Auspendeln zu sehr entgegengestellt), evtl. sogar ohne I-Anteil, denn eine bleibende Regelabweichung ist hier zu akzeptieren. Der I-Anteil bzw. der P-Anteil sollten so bemessen sein, dass die Bewegung der Plattfm zum Auspendeln nicht wesentlich entgegengewirkt wird.
Falls es so funktionieren würde, befände sich die Plattform im zeitlichen Mittel in Mittenposition, kann sich aber zwischendurch ein ganzes Stück herausbewegen.

Um das Ganze zu beruhigen könntest du oben am Stab eine Masse anbringen - aber daran hast du auch sicher schon gedacht.
Gruß Jens

kehrblech
04.06.2008, 12:14
M.A nach muss ein zweiter Regelkreis her
Das dürfte stimmen, aber wie berechnet sich die Geschwindigkeit des Motors aus zwei verschiedenen Reglern?
Angenommen die Platform befindet sich rechts vom Mittelpunkt, der Stab ist leicht nach rechts geneigt. Der Regler, der den Winkel des Stabes ausgleicht, läßt den Motor nach rechts laufen, um den Stab aufzufangen, der andere Regler will den Motor nach links laufen lassen, um die Platform wieder in die Mitte zu bekommen?

Um das Ganze zu beruhigen könntest du oben am Stab eine Masse anbringen - aber daran hast du auch sicher schon gedacht.
Ja, ein Gewicht ist schon oben am Stab angebracht.

Gruß
Jan

sehreilig
05.06.2008, 20:46
Hallo,
da hab ich auch schon drüber nachgedacht.
Eigentlich müssten sich die Ausgleichbewegungen für den Stab im Mittel ausgleichen, d.h letztendlich bewegt er sich um seinen Ausgangspunkt herum. Da dies aber nicht der Fall ist, gibt es irgend "Ungenauigkeiten" im system. Die tatsächliche Bewegung der Plattform in eine bestimmte Richtung müsste sich durch die Verstellung des Sollwertes für den Winkel des Stabes weitgehend ausgleichen lassen. Dies würde ich einmal ausprobieren.
Der zweite Regler müsste nur ganz verhalten nachstellen. Wenn sich die Plattform nach dem justieren des richtigen Sollwertes z.B. in 3 min. an ihren Endwert bewegt, so muss der Regler entsprechend langsam die Plattform zurückfahren.
Ich würde beide Stellsignale für den Motor der Plattform auf ein Additionsglied legen, und wie oben bemerkt ein P-Regler nehmen, dessen Verstärkung nicht allzu groß ist. Das Signal des Reglers für das Auspendeln müsste die Verstellung der Plattform eigentlich automatisch ausgleichen. Kann sein, dass dadurch jedoch die Tendenz zum Schwingen stark vergößert wird. Dürfte alles recht knifflich werden.
Ich hab das alles noch nicht ausprobiert und bin gespannt, ob es bei dir klappt.
Falls du ein kleines Filmchen als Anregung drehen, könntest würde ich mich sehr darüber freunen
Ich überlege, den Pendel auf einen RP6 zu stellen, aber das dauert noch eine Weile.
Viel Erfolg, Grüße von Jens

RP6conrad
05.06.2008, 21:34
Da habe ich eine andere Meinung. Die erste Regler soll nur die Stabe auf 90° halten. Die zweite Regler soll diese 90° Soll positionen anpassen and die mittelwert von stand platform : platform in der mitte, soll = 90°. Platform an linke position : soll wert = 92°. Platform an der rechte positon : sollwert = 88°.
Wen die erste Regler functioniert, soll das platform dan sowieso wiederum in die richtige Richtung fahren.

kehrblech
06.06.2008, 13:22
@sehreilig:

Kann sein, dass dadurch jedoch die Tendenz zum Schwingen stark vergößert wird.
Sehr stark sogar. Das war einer der ersten Versuche, das Pendel kommt dann sehr schnell an das Ende der Strecke.

Falls du ein kleines Filmchen als Anregung drehen, könntest würde ich mich sehr darüber freunen
Das geht leider nicht, ich habe keine Kamera.

@RP6conrad:
Als ersten Regler sollte ich einen PID-Regler nehmen, als zweiten einen P-Regler?
Vielleicht wäre es einfacher den zweiten Regler erstmal wegzulassen und einen 2-Rad-Roboter zu bauen, weil es dort kein Ende von irgendeiner Schiene gibt?

Gruß
Jan

RP6conrad
06.06.2008, 19:01
Mit eine zwei rad roboter functioniert die Trick mit den potmeter nicht mehr ! Da musst du mindestens ein 3 oder 4 rad robby nehmen. Die zwei rad-roboter (Segway) benotigen eien ganse menge von sensoren um die winkel mit die ebenen zu messen (beschleunigung und gyro sensoren). Zweite regler soll ich auch mit eine P-regler anfangen.

kehrblech
06.06.2008, 19:52
Mit eine zwei rad roboter functioniert die Trick mit den potmeter nicht mehr !
Ja, ich wollte dann ein IR-Abstandssensor nehmen und den Abstand zum Boden messen, aber die Idee den Roboter mit 3 oder 4 Rädern zu bauen ist natürlich noch viel besser. Werde ich mal bauen.

Gruß
Jan

kehrblech
10.06.2008, 13:10
Hallo,

es funktioniert jetzt!
Mit einem PID-Regler und einem P-Regler für die Soll-Winkel-Bestimmung.
Ich habe jetzt doch keinen neuen Roboter gebaut.
Vielen Dank für eure Hilfe!

Gruß
Jan

oberallgeier
10.06.2008, 13:39
Gibts vielleicht ein Video? Zumindest ein Bild? Bitte.

kehrblech
10.06.2008, 14:19
Video kann ich nicht machen, aber ein Bild wird es schon geben.
Ich schreibe dann hier einen Link rein.

Gruß
Jan

sehreilig
10.06.2008, 15:02
es funktioniert jetzt!
Mit einem PID-Regler und einem P-Regler für die Soll-Winkel-Bestimmung.

Herzlichen Glückwunsch.
Bist du so nett und sagst noch etwas genauer, wie du es gelöst hast: welche Aufgaben haben die beiden Regler übernommen und was steuern sie jeweils an? Vielleicht auch, wie du die korrekte Einstellung der reglerparameter gefunden hast.
Danke schon mal
Grüße von Jens

kehrblech
10.06.2008, 16:09
Hallo,

der PID-Regler steuert den Motor an. Er sorgt dafür, dass das Pendel nicht umkippt. Der P-Regler verändert den Soll-Winkel des Stabes, abhängig von der Position der Plattform, damit der Stab ungefähr in der Mitte bleibt.
Die Regelgrößen habe ich durch einfaches Ausprobieren herausgefunden, dazu habe ich ein kleines Programm auf dem Computer geschrieben, mit dem man die Werte verändern und an den Roboter schicken kann.

Gruß
Jan

sehreilig
10.06.2008, 17:10
Danke für die schnelle Antwort.
Sehe ich es richtig, wenn du es nach dem Ansatz von RP6conrad gemacht hast:

. Die erste Regler soll nur die Stabe auf 90° halten. Die zweite Regler soll diese 90° Soll positionen anpassen and die mittelwert von stand platform : platform in der mitte, soll = 90°. Platform an linke position : soll wert = 92°. Platform an der rechte positon : sollwert = 88°.

Sehr schön, so werde ich es dann auch versuchen, wenns so weit ist.

Grüße von Jens

kehrblech
14.06.2008, 13:29
Hallo,

hat etwas länger mit den Bildern gedauert, aber hier sind die jetzt:Bilder (http://www.ftcommunity.de/categories.php?cat_id=1347&page=3)

Sehe ich es richtig, wenn du es nach dem Ansatz von RP6conrad gemacht hast
Das siehst du richtig.

Gruß
Jan

sehreilig
14.06.2008, 16:28
Danke für die Bilder - sehr sehr schön gemacht. Herzlichen Glückwunsch für die Lösung.
da bin ich mal gespannt, ob wir es hier auch hinbekommen.

Zum Video: vielleicht kennst du ja jemanden mit so einem mordenen handy -mit Video-Funktion, wär wirklich schön.

grüße von Jens