Hi,
wieso möchtest du den zwei PID-Regler verwenden? Kombinier doch einfach die Sensoren via Komplementärfilter.
Naja, dann korigier doch den Code einfach auf +-180°. Sollte ja auch kein Problem sein
Gruß
Chris
Hi,
wieso möchtest du den zwei PID-Regler verwenden? Kombinier doch einfach die Sensoren via Komplementärfilter.
Naja, dann korigier doch den Code einfach auf +-180°. Sollte ja auch kein Problem sein
Gruß
Chris
Hmm, richtig. Das macht mehr Sinn.
Kann ich dann einfach die beiden PIDs für RPM nutzen und den Error des Kompass, je nach Richtung der Abweichung, auf den Error der RPM aufrechnen bzw. abziehen? (ggf. mit einem sinnvollen Faktor)
Ich hatte jetzt nicht erwartet, dass du den Code noch auf +-180° anpasst.Zur Veranschaulichung hat der erste Code gereicht.
Hi,
also du filterst die Signale und erhältst daraus dann einen Winkel. Diesen schickst du in den PID-Regler.
Ich würde die reinen Encoder-Daten für den D-Anteil des Reglers verwenden und den korrekten Winkel für den P und I Anteil. Oder du verwendest die Encoder-Daten für P & D und den Winkel für I. Da müsste man wohl experimentieren was am besten ist
Gruß
Chris
robvoi,
für diese Art von Regelungen nimmt man normalerweise eine Kaskaden-Regelung. Aber um Dir raten zu können, müsste ich erst wissen:
1. benutzt Du Deine bisherigen beiden Regler als getrennte Drehzahlregler (je einer pro Kette)?
2. welche Messwerte liefert der Kompass (den Winkel oder auch den cos und den sin des Winkels)?
3. kannst Du Vektorrechnung (Skalarprodukt, Vektorprodukt)?
Ciao,
mare_crisium
Die Idee, die Sensorwerte auf PI und D zu verteilen finde ich gut. Muss man dann mal testen.
@mare_crisium
Ja, je einer pro Kette. Ich hatte mal versucht, nur mit dem Error aus der Differenz der Drehzahlen zu arbeiten. Das hat aber nicht gut funktioniert.1. benutzt Du Deine bisherigen beiden Regler als getrennte Drehzahlregler (je einer pro Kette)?
Der Sensor ist eine 9DOF IMU.2. welche Messwerte liefert der Kompass (den Winkel oder auch den cos und den sin des Winkels)?
Ich nutze folgende Firmware zur Auswertung: https://dev.qu.tu-berlin.de/projects.../wiki/Tutorial
Da bekomme ich dann Yaw, Roll und Pitch raus. Bzw auch die Rohdaten, da ich ja direkt Zugriff auf die Sensoren habe.
Habe ich mich noch nicht mit beschäftigt. Wenn es keine sinnvolle simple Alternative gibt, kann man sich natürlich einarbeiten.3. kannst Du Vektorrechnung (Skalarprodukt, Vektorprodukt)?
Gruß
Robert
robvoi,
ok, es geht auch ohne Vektoren, aber die Erklärungen werden schwieriger. Es lohnt sich auf alle Fälle, wenn Du Dich mal damit beshäftigst.
Gut, dass Du die Regelung mit der Differenz der Drehzahlen schon probiert hast, das ist für's regeln der Geradeausfahrt in einer bestimmten Richtung besser geeignet. Bevor wir an die Sache mit der IMU gehen, wär's gut, wenn Du das nochmal probierst.
Ich schlage vor, die Regelung folgendermassen aufzubauen:
Es gibt wieder zwei Regler: Einer regelt den Mittelwert der Drehzahlen, der andere die Differenz. D.h. der erste regelt die Fahrgeschwindigkeit, der andere die Drehgeschwindigkeit (nennen wir das lieber Wendegeschwindigkeit, sonst verwechselt man's zu leicht mit der Drehgeschwindigkeit der Antriebsräder).
Die Stellgrössen der beiden Regler müssen aber noch umgerechnet werden, bevor sie an den Motorsteller weitergegeben werden. Der eine Motorsteller bekommt die Stellgrösse von Fahrt- plus der Stellgrösse des Wendegeschwindigkeitsregler, der andere bekommt die Stellgrösse des Fahr- minus der Stellgrösse des Wendegeschwindigkeits-Reglers.
Du wirst sehen, so klappt's.
Ciao,
mare_crisium
Super. So werde ich es mal probieren.
Es wird ein paar Tage dauern, da ich noch beim Umbau der Plattform bin. (und gestern den einen 5V Downstepper per Kurzschluss geröstet habe).
Ich melde mich dann, wenn die Tests durch sind.![]()
Hallo,
- So, langsam bin ich soweit. Ich habe die Fahrgeschwindigkeit zum Anfang mal fest gesetzt. Die Wendegeschwindigkeit regelt ein PID Regler. Bei den Werten experimentiere ich noch. Er kommt zwar irgendwann in eine Geradeausfahrt, fährt aber trotzdem schräg vom Startpunkt weg, da er schon schräg ist, bevor der Regler den Ausgleich schafft. Mal schauen ob das überhaupt anders möglich ist. Sollte aber machbar sein. Ohne Regler fährt er fasst geradeaus.
Eigentlich müsste der Regler ja erstmal überkompensieren, um die Schrägfahrt auszugleichen. Oder mache ich dass über die Positionsberechnung (x/y vom Startpunkt)?
- Gibt es Erfahrungswerte, wie oft man bei einem solchen Szenario den Regler die Geschwindigkeit anpassen lässt? Alle 10ms nachzuregeln macht ja auch keinen Sinn.
Gruß
Robert
Lesezeichen