- 3D-Druck Einstieg und Tipps         
Ergebnis 1 bis 9 von 9

Thema: DC Motor PI-Regler Verständnisproblem

Hybrid-Darstellung

Vorheriger Beitrag Vorheriger Beitrag   Nächster Beitrag Nächster Beitrag
  1. #1
    Okay, ich werde es mal ausprobieren.

  2. #2
    Erfahrener Benutzer Robotik Einstein Avatar von Geistesblitz
    Registriert seit
    15.03.2011
    Ort
    Dresden
    Alter
    37
    Beiträge
    1.937
    Also du musst schon zwei Geschwindigkeiten miteinander vergleichen. Deine Istwerte würde ich vielleicht noch ein bisschen filtern, die sehen sehr verrauscht aus. Jedenfalls müsstest du deine Istwerte in mm/s umrechnen (geht meist über die Anordnung des Sensors) und dein Fehler wäre dann einfach e=Sollwert-Istwert. Musst eben nur drauf achten, dass die Umrechnung stimmt, dass es auch wirklich mm/s sind und nicht Löcher/Zeitschritt oder sowas (es sei denn, daraus ergibt sich direkt mm/s, was aber schon was von Zufall hätte).
    Wenn ich das richtig sehe, hast du für den Integratoranteil entweder den Verstärkungsfaktor Kp/Tn oder Ki, was deine Werte da sein sollen, weiß ich nicht, ist ohne den Zusammenhang im Code aber auch schwer zu sagen.

  3. #3
    Dass die Sachen, die ich vergleiche, gleich sein müssen ist verständlich. Der Codeschnipsel ist nur von http://www.rn-wissen.de/index.php/Regelungstechnik reinkopiert, da ging es auch nicht um konkrete Werte.
    Ich steige aber immer noch nicht ganz dahinter.

    Mal ein konkretes Beispiel:
    Ich gebe den Sollwert 120mm/s vor, jetzt messe ich an der Strecke z.B. 110mm/s, dann ergibt sich eine Abweichung von 10mm/s, soweit so gut.

    mit dem PI-Regler code:

    esum = esum + e;
    y = Kp * e + Ki * Ta * esum; mit Ta = 10ms, Kp = 5, Ki = 10 (fiktive Werte)
    dann erhalte nach dem ersten Durchgang (esum=0) eine Stellgröße von 50mm/s.

    Und diese Stellgröße muss ich jetzt in ein PWM-Signal umrechnen, oder?
    Bei der Sprungantwort kam ich bei 80% duty cycle auf 400mm/s, das entspricht einem Compare-Registerwert von 5988 bei 7485 Periodendauer, sprich ich muss pro 1mm/s ca. 15 zum compare-register addieren/subtrahieren.

    Mit dem oben errechneten y wäre die Stellgröße 50*15 = 750, und die addiere ich jetzt auf den aktuellen Registerwert drauf?

  4. #4
    Erfahrener Benutzer Robotik Einstein Avatar von Geistesblitz
    Registriert seit
    15.03.2011
    Ort
    Dresden
    Alter
    37
    Beiträge
    1.937
    Ah, ok, darüber habe ich auch schonmal mit einem Kommilitonen und einem Dozenten diskutiert, da ich der Meinung bin, dass die Reglerverstärkung eine Einheitenumwandlung vornehmen müsste, in deinem Fall von Geschwindigkeit zu Spannung.

    Nehmen wir mal an, der Motor steht und du gibst ganz plötzlich die Sollgeschwindigkeit 100mm/s vor, dann wird der Motor wahrscheinlich ganz langsam auf diesen Wert hinzulaufen. Hättest du einen reinen P-Regler, würde die Drehzahl allerdings nicht genau den Wert erreichen, denn wie du richtig herausgefunden hast, wäre dann ja die PWM 0. Ein P-Regler funktioniert nur mit einer bestimmten Regelabweichung. Diese kleine Regelabweichung mit Kp multipliziert würde dann nämlich genau die PWM hervorbringen, die zu dieser Drehzahl führt.

    Um dem Dilemma mit der bleibenden Regelabweichung zu entgehen nimmt man ja gerade erst den I-Anteil hinzu. Dieser Addiert ja den Fehler immer weiter auf, multipliziert den Summenfehler mit einem Faktor und rechnet dies auf das Stellsignal auf. Und dieser Anteil ändert sich erst dann nicht mehr, wenn der Fehler 0 bleibt. Somit lässt sich diese bleibende Regelabweichung beheben, allerdings auf Kosten der Dynamik (dafür gibts dann PID-Regler).

  5. #5
    Unregistriert
    Gast
    Danke für die Antwort. Da hatte ich einen kleinen Denkfehler, ich habe nämlich wie im ersten Post geschrieben die errechnete Stellgröße immer zur aktuellen Stellgröße dazuaddiert. Das hat
    zwar einigermaßen funktioniert, aber auch nicht wirklich toll.
    Durch den I-Anteil wird bei einer Regelabweichung von 0 die Stellgröße ja nicht 0, ok, funktioniert schon viel besser.

    Jetzt geht es noch um die richtige Parametrierung. Im Regelungstechnikartikel (http://www.rn-wissen.de/index.php/Regelungstechnik) ist immer die Rede von Verzugszeit Tu und Ausgleichszeit Tg,
    allerdings habe ich das doch nur bei einem System mit dieser S-förmigen Sprungantwort, also PT2 ?
    Unten im Artikel ist sogar ein Beispiel, das genau auf meinen Fall passt, jedoch verstehe ich nicht wie dort die Parameter ermittelt wurden. Der einzige Parameter, den ich aus meiner Sprungantwort lesen kann
    ist Ts = ~50ms, damit komm ich jetzt nicht wirklich weit.

Ähnliche Themen

  1. Nibobee - Frage zum Motor-Regler (motpid) der Standard-Lib
    Von cc_aero im Forum Sonstige Roboter- und artverwandte Modelle
    Antworten: 1
    Letzter Beitrag: 06.11.2012, 13:56
  2. Brushless Motor und Regler
    Von Gremlin im Forum Motoren
    Antworten: 1
    Letzter Beitrag: 23.02.2012, 20:45
  3. Suche Motor-Geschwindigkeits-Regler
    Von Hans87 im Forum Suche bestimmtes Bauteil bzw. Empfehlung
    Antworten: 1
    Letzter Beitrag: 11.09.2011, 01:08
  4. Brushless Regler oder Motor defekt?!
    Von Che Guevara im Forum Motoren
    Antworten: 6
    Letzter Beitrag: 27.08.2011, 01:43
  5. Stetiger Regler für Motor
    Von wolf3030 im Forum Controller- und Roboterboards von Conrad.de
    Antworten: 4
    Letzter Beitrag: 27.08.2008, 22:34

Berechtigungen

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

12V Akku bauen