vivaultra
15.06.2010, 11:08
Hallo Leute,
ich hab einen mini Segway gebaut, welcher mit Atmega8ern, Gyros und einem ACC sensor arbeitet. Daraus errechne ich einen Winkel. Wenn er gerade steht Winkel 0. Die Daten kann ich mir via XBEE modul an den PC senden lassen.
Desweiteren hab ich eine Variable 'Sollwinkel'. Wenn ich vorwärts fahren will gebe ich z.B. 1° vor. Dies versucht er dann zu halten und fährt dementsprechend vorwärts.
Aus Winkel und Sollwinkel werden mittels PID Regler die sollreaktion für die Motoren errechnet und via I2C dorthin versendet(8 Bit zahl; -127(rückwärts) bis 128(vorwärts))
Jetzt hab ich gestern noch kurzerhand die Encoder an die Hauptplatine, nicht Motorregler(da dies leider nicht ohne weiteres möglich war) angeschlossen.
Mein Ziel ist es, dass wenn ich gerade stehen will er immer wieder auf den Ursprungsort zurückfahren will. Er zählt auch schon ganz gut. Aber ich habe dabei folgendes Problem:
Und zwar ich habe via P/PD Regler probiert, dass er, wenn er vom Nullpunkt in die eine Richtung abweicht, den Sollwinkel etwas auf die andere Seite zu setzen. Dadurch kommt es ja leider zu einer sehr schnellen Winkeländerung für den PID regler, der die Motorgeschwindigkeit errechnet. Und er schaukelt sich auf, anstatt zu dämpfen. Damit fährt immer weiter vom urprung weg bis die Motoren auf max laufen und kippt dann um. Hat jemand von euch eine bessere idee, anstatt mit dem sollwinkel zu arbeiten? Oder kennt jemand von euch ein projekt, wo dies schoneinmal gemacht wurde??
vielen dank
Andi
ich hab einen mini Segway gebaut, welcher mit Atmega8ern, Gyros und einem ACC sensor arbeitet. Daraus errechne ich einen Winkel. Wenn er gerade steht Winkel 0. Die Daten kann ich mir via XBEE modul an den PC senden lassen.
Desweiteren hab ich eine Variable 'Sollwinkel'. Wenn ich vorwärts fahren will gebe ich z.B. 1° vor. Dies versucht er dann zu halten und fährt dementsprechend vorwärts.
Aus Winkel und Sollwinkel werden mittels PID Regler die sollreaktion für die Motoren errechnet und via I2C dorthin versendet(8 Bit zahl; -127(rückwärts) bis 128(vorwärts))
Jetzt hab ich gestern noch kurzerhand die Encoder an die Hauptplatine, nicht Motorregler(da dies leider nicht ohne weiteres möglich war) angeschlossen.
Mein Ziel ist es, dass wenn ich gerade stehen will er immer wieder auf den Ursprungsort zurückfahren will. Er zählt auch schon ganz gut. Aber ich habe dabei folgendes Problem:
Und zwar ich habe via P/PD Regler probiert, dass er, wenn er vom Nullpunkt in die eine Richtung abweicht, den Sollwinkel etwas auf die andere Seite zu setzen. Dadurch kommt es ja leider zu einer sehr schnellen Winkeländerung für den PID regler, der die Motorgeschwindigkeit errechnet. Und er schaukelt sich auf, anstatt zu dämpfen. Damit fährt immer weiter vom urprung weg bis die Motoren auf max laufen und kippt dann um. Hat jemand von euch eine bessere idee, anstatt mit dem sollwinkel zu arbeiten? Oder kennt jemand von euch ein projekt, wo dies schoneinmal gemacht wurde??
vielen dank
Andi