- 3D-Druck Einstieg und Tipps         
Ergebnis 1 bis 10 von 20

Thema: PID + Kompass

Hybrid-Darstellung

Vorheriger Beitrag Vorheriger Beitrag   Nächster Beitrag Nächster Beitrag
  1. #1
    Benutzer Stammmitglied
    Registriert seit
    09.05.2012
    Beiträge
    57
    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.

  2. #2
    Erfahrener Benutzer Roboter Genie
    Registriert seit
    08.09.2007
    Ort
    Berlin
    Alter
    31
    Beiträge
    1.578
    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

  3. #3
    Erfahrener Benutzer Roboter-Spezialist
    Registriert seit
    08.12.2005
    Beiträge
    535
    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

  4. #4
    Benutzer Stammmitglied
    Registriert seit
    09.05.2012
    Beiträge
    57
    Die Idee, die Sensorwerte auf PI und D zu verteilen finde ich gut. Muss man dann mal testen.

    @mare_crisium
    1. benutzt Du Deine bisherigen beiden Regler als getrennte Drehzahlregler (je einer pro Kette)?
    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.

    2. welche Messwerte liefert der Kompass (den Winkel oder auch den cos und den sin des Winkels)?
    Der Sensor ist eine 9DOF IMU.
    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.

    3. kannst Du Vektorrechnung (Skalarprodukt, Vektorprodukt)?
    Habe ich mich noch nicht mit beschäftigt. Wenn es keine sinnvolle simple Alternative gibt, kann man sich natürlich einarbeiten.

    Gruß
    Robert

  5. #5
    Erfahrener Benutzer Roboter-Spezialist
    Registriert seit
    08.12.2005
    Beiträge
    535
    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

  6. #6
    Benutzer Stammmitglied
    Registriert seit
    09.05.2012
    Beiträge
    57
    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.

  7. #7
    Benutzer Stammmitglied
    Registriert seit
    09.05.2012
    Beiträge
    57
    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

  8. #8
    Erfahrener Benutzer Roboter-Spezialist
    Registriert seit
    08.12.2005
    Beiträge
    535
    Robvoi,

    prima, dass Du schon so weit bist .

    Fürs Einstellen der Regler werden Dir viele Leute alle möglichen Formeln vorschlagen (Ziegler-Nicols, Spungantwort auswerten usw.). Wenn's aber ohne alle Mathematik und zuverlässig gehen soll, dann gehst Du am Besten so vor:

    Zuerst bringst Du die Regelparameter in die Grundeinstellung: Kp = 1, Ki = 0 (oder Integrationszeit = unendlich, Kd = 0). Jetzt lässt Du den Regler laufen und beobachtest, ob er die Regelabweichung wegregelt oder zu schwingen anfängt. Wenn er die Regelabweichung nicht wegregelt, dann verdoppelst Du den Kp-Parameter. Wenn er zu Schwingen anfängt, dann nimmst Du den Kp um die Hälfte des letzten Schrittes herunter. Also, wenn der letzte Verdopplungschritt eine Vergrösserung von Kp um +8 war, dann stellst Du ihn jetzt um 4 kleiner ein. So machst Du das immer weiter, bis Du eine Einstellung von Kp findest, bei der der Regler gerade so nicht mehr schwingt.

    Dann beginnt dasselbe Spielchen mit Ki; nur darfst Du dabei Kp nicht verändern! Der Anfangswert ist Ki = 1. Wieder gucken, ob der Regler zu weit unter dem Sollwert bleibt (zu träge), oder schwingt (zu schnell). Ist er zu träge, dann Ki verdoppeln, ist er zu schnell, dann um die halbe letzte Schrittweite verkleinern. Auch diese Einstellerei ist beendet, wenn der Regler mit der gewünschten Geschwindigkeit und Genauigkeit den Sollwert erreicht, ohne zu lange zu schwingen. Ideal ist, wenn der Sollwert sehr genau erreicht wird und der Regler maximal einmal leicht überschwingt.

    Anschliessend kannst Du versuchen, den Kp-Wert noch ein bisschen hochzukitzeln ohne Ki dabei zu verändern. Das Rezept für die Verstellung ist wieder dasselbe, wenn's anfängt zu schwingen, den letzten Schritt von Kp halbieren und abziehen.

    Erst jetzt kommt Kd dran. Sehr oft braucht man gar keinen D-Anteil, um ein gutes Regelverhalten zu erreichen; im Gegenteil - sehr oft macht der D-Anteil eine Regelung eher instabil und nervös. Aber Ausprobieren kann nichts schaden: Die Methode ist wieder diesselbe: Kp und Ki werden nicht ver‰ndert, sondern nur Kd verdoppelt oder um die halbe Schrittweite verkleinert. Ziel ist wieder, Kd so einzustellen, dass der Regler den Sollwert erreicht und dabei nicht zu oft überschwingt (max. 1 bis 3 mal).

    Abschliessend kannst Du, wenn Du jetzt noch die Nerven und den Überblick hast, zuerst Kp, dann Ki nocheinmal nachzujustieren. Apropos Überblick: Es empfiehlt sich, die Grösse (mit Vorzeichen!) und das Ergebnis jedes Einstellschrittes zu notieren, sonst kommt man unweigerlich ins Schleudern.

    Wie oft der Regelalgorithmus laufen muss, musst Du auch ausprobieren. Wenn's Dein MC verträgt, lass' ihn ruhig erstmal mit 10ms laufen; Vergrössern kannst du das Intervall später immer noch.

    Ciao,

    mare_crisium

    P.S.: Schick' mir doch eine Nachricht mit Deiner Mailady, dann kann ich Dir auch Zeichnungen schicken - hier im Forum geht das nicht, weil ich immer Schwierigkeiten mit dem Upload-Limit bekomme.
    Geändert von mare_crisium (23.02.2013 um 08:45 Uhr)

Ähnliche Themen

  1. PID-Regler
    Von Che Guevara im Forum Basic-Programmierung (Bascom-Compiler)
    Antworten: 3
    Letzter Beitrag: 16.10.2009, 18:13
  2. PID Regler
    Von Martin. im Forum Software, Algorithmen und KI
    Antworten: 2
    Letzter Beitrag: 31.07.2008, 13:24
  3. PID Regler
    Von hacker im Forum Software, Algorithmen und KI
    Antworten: 12
    Letzter Beitrag: 27.05.2007, 17:47
  4. PID - Regler
    Von hacker im Forum Software, Algorithmen und KI
    Antworten: 6
    Letzter Beitrag: 04.06.2006, 19:38
  5. PID-Regler
    Von Distel im Forum Elektronik
    Antworten: 21
    Letzter Beitrag: 28.07.2004, 15:50

Berechtigungen

  • Neue Themen erstellen: Nein
  • Themen beantworten: Nein
  • Anhänge hochladen: Nein
  • Beiträge bearbeiten: Nein
  •  

Solar Speicher und Akkus Tests