INFO: Dieses Forum nutzt Cookies...
Cookies sind für den Betrieb des Forums unverzichtbar. Mit der Nutzung des Forums erklärst Du dich damit einverstanden, dass wir Cookies verwenden.

Es wird in jedem Fall ein Cookie gesetzt um diesen Hinweis nicht mehr zu erhalten. Desweiteren setzen wir Google Adsense und Google Analytics ein.

Antwort schreiben 
 
Themabewertung:
  • 0 Bewertungen - 0 im Durchschnitt
  • 1
  • 2
  • 3
  • 4
  • 5
PID-Einstellungen für Self-balance Bot
03.07.2016, 16:59
Beitrag #1
PID-Einstellungen für Self-balance Bot
Hallo zusammen. Ich habe mir einen Rover gebaut der auch auf den Hinterrädern fahren können soll. Um das zu realisieren habe ich einen MPU6050-Sensor verbaut und nuzet für die Winkelbestimmung einen Kalmanfilter. Das Balancieren klappt zum Teil auch schon bereits, ist aber noch weit ab von perfekt. Funktionieren tut das bisher nur auf einem weichen Teppich, er zittert aber noch sehr stark. Wenn ich den Rover auf einer glatten Oberfläche balancieren lassen möchte, kippt er nach kurzer Zeit um. Das ganze ist auf die PID-Einstellungen zurück zu führen. Ich weiss in etwa was die P, I und D machen, weiss aber nicht wie ich bei dem Tuning vorgehen soll.
Ausserdem wrd der Motorregler, ein 298N, teilweise sehr schnell warm, jenachdem welche Werte ich verwende. Optimalerweise sollte dieser Regler natürlich nicht all zu heiss werden.
Um die Motoren drehen zu lassen spricht man den Regler an, mit einem Wert zwischen 0 und 255. Das habe ich auch als Regelstrecke für den PID-Controller angegeben. Allerdings fangen die Motoren erst ab einem Wert von etwa 60 an zu drehen. Sollte ich daher die Regelstrecke auf 60 bis 255 begrenzen? Könnt ihr mir einige Tipps zum Tuning geben? Hier ein kurzes Video um sich ein Bild zu machen:
https://www.youtube.com/watch?v=p9cAsranxmc
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren
05.07.2016, 07:34
Beitrag #2
RE: PID-Einstellungen für Self-balance Bot
Erfahrungen mit PID Regler hab ich keine, Self Balancing auch nicht.
Weil aber sich keiner hier äußert, Versuch ich mal ein Gedankenspiel.

Gleichstrom-Motoren haben die Eigenschaft, das sie erst ab einer bestimmten Spannung anlaufen.
Wenn man die Spannung dann reduziert, drehen sie sich entsprechend langsamer, wie gewollt.

Vielleicht im Programm bei Start kurz auf > 60 steuern und dann erst runterregeln?
Bei Richtungsänderung noch etwas mehr Spannung geben und / oder etwas länger?

Oder ist gar eine Drehzahlrückmeldung erforderlich?

Binatone
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren
05.07.2016, 16:52
Beitrag #3
RE: PID-Einstellungen für Self-balance Bot
Hey!

Ich wollte vor kurzem auch so einen Roboter bauen, leider hatte ich keinen Erfolg.

Das Tuning von dem Roboter ist wie Lötzinnerhitzer geschrieben hat mit den 3 Potis warscheinlich gut zu lösen. Der P-Faktor wird am höchsten sein, D ist beim Balancieren auch wichtig, aber dennoch gering halten, weil der sehr schnell hochregelt (P-Anteil/Zeit -> wenn Zeit = 0,001s: P-Anteil * 1000) . I-Faktor kann man noch zur Verbesserung hinzufügen, wäre fürs reine Ausbalancieren am Platz nicht nötig.
Ich weiß nicht wie dein PID-Regler aussieht aber vielleicht hilft dir das Tutorial weiter und verbessert das Regelverhalten -> (mit Anti-Reset-Windup, D-Kick, ...) <-.

Soweit ich mich erinnere steht im Datenblattvom L298 (oder ich habe es sonst wo gelesen), dass der IC generell wärmer wird und somit auch ein Kühlkörper vorgeschlagen wird.

Wenn die Motoren erst ab 60 drehen, würde ich die Reglestrecke max. auf 30-255 setzten, nicht aber zu hoch. Weil wenn sich der Motor einmal dreht, ändern die Werte <60 schon etwas.

(05.07.2016 07:34)Binatone schrieb:  ...
Gleichstrom-Motoren haben die Eigenschaft, das sie erst ab einer bestimmten Spannung anlaufen.
Wenn man die Spannung dann reduziert, drehen sie sich entsprechend langsamer, wie gewollt.

Vielleicht im Programm bei Start kurz auf > 60 steuern und dann erst runterregeln?
Bei Richtungsänderung noch etwas mehr Spannung geben und / oder etwas länger?

Oder ist gar eine Drehzahlrückmeldung erforderlich?

Binatone

Das mit dem Anlaufen der Gleichstommotoren ist glaube ich nicht nötig, da der Regler sowieso so aufgebaut sein soll, dass er bei Errors (bzw. dieser "Start") übersteuert.
Außerdem ist schwer zu definieren was man als "Start" bezeichnet. Wenn er von 0 auf -1° kippt, soll er positiv (gegengesetzt) "starten" oder doch erst bei 2°, wo dann der Regler aber dann z.B. schon über 60 ist? Kann dann dazu führen, dass er um 0° stark zittert.
Bei der Drehzahlmessung stimm ich dir zu, das hilft denke ich sehr viel (bei meinem Projekt war Drehzahlmessung geplant, jedoch war dann ein Sensor kapput und ich hab es ohne versucht).

(05.07.2016 07:58)Lötzinnerhitzer schrieb:  steuerst Du die Motoren einzeln an?
(ist im Video schlecht zu erkennen),
wenn "Nein" gibt es sicherlich ein Problem mit den Toleranzen der Motoren untereinander
zeige doch bitte einmal die Schaltung (Fritzing reicht aus)

ggf. folgendes probieren:
3x Poti über analogen Eingang einlesen und damit die PID-Werte "einstellbar" machen; spart Zeit in der Testphase.
nach funktionierender "Abstimmung" kannst Du die Werte dann fest programmieren.

Die Toleranz sollte kein Problem darstellen, im schlimmsten Fall macht er kleine Kreise beim balancieren, fällt am Schluss denke ich wenig ins Gewicht ob er sich wirklich ausbalanciert.
Das mit den Potis finde ich gut Smile

Ich denke am besten wäre es, den Regler statt von Winkel auf PWM umstellen auf Winkel zu Weg bzw. Umdrehungen. Dazu ist dann halt Drehzahlmessung (z.B. Encoder-Scheibe mit IR Sensor, was bei den Motoren gibt) nötig.

Vielleicht hilft es auch, indem man das Kippen von 0° "träge" macht, d.h. der Schwerpunkt sollte weiter oben sein. Vielleicht einmal die Batterie oben montieren. Sollte dazu führen, dass er anfangs (von 0°) langsamer kippt, dafür bei steigenden Winkel immer schneller.

mfg Scheams
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren
06.10.2016, 13:42
Beitrag #4
RE: PID-Einstellungen für Self-balance Bot
Hi. Leider lese ich deinen Beitrag erst jetzt, ich hatte das Projekt vorerst auf Eis gelegt, und greife es jetzt wieder auf. Danke für deinen Post, da sind einige gute Ideen dabei, die mich weiterbirngen dürften. Ich aktualisiere diesen Post sobald ich wieder Fortschritte machen werde Smile
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren
Antwort schreiben 


Gehe zu:


Benutzer, die gerade dieses Thema anschauen: 1 Gast/Gäste