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

Thema: Asuro: Linienfolger mit PD-Regler

Baum-Darstellung

Vorheriger Beitrag Vorheriger Beitrag   Nächster Beitrag Nächster Beitrag
  1. #11
    Erfahrener Benutzer Roboter Experte
    Registriert seit
    15.05.2005
    Beiträge
    734
    Fortsetzung:
    Heute geht es darum, wie das bisherige Wissen in einen Code umsetzt wird.

    Hierzu eine Zusammenstellung der Formeln. Wer eine Herleitung der Formeln will, kann sich im WWW informieren, es gibt darüber genügend Literatur.

    Begriffsdefinitionen:
    • W = Sollwert
      X = Istwert
      Xw = Regelabweichung
      Y = Stellgrösse
      Yp = P-Anteil von Y
      Yi = I-Anteil von Y
      Yd = D-Anteil von Y
      Kp = Proportionalbeiwert
      Ki = Integrierbeiwert
      Kd = Differenzierbeiwert
      dt = Taktzeit des Reglers
    Formeln zur Berechnung:
    • Xw = W - X
      Yp = Kp * Xw
      Yi = Ki * (Isum + Xw * dt)
      Isum:
      ist die Summe aller vergangenen (Xw * dt) Berechnungen
      Yd = Kd * (Xw - Xwalt)/dt
      Xwalt:
      ist der Xw-Wert des letzten Zyklus

      Y = Yp + Yi + Yd

    Zum besseren Verständnis habe ich in das Blockschaltbild die benützten Kürzel eingetragen (siehe Bild). Der Regler ist jetzt detailierter dargestellt.
    Der Sollwert W ist in unserem Fall Null. Der Istwert X ist der ausgelesene Wert des Liniensensors. Die berechnete Stellgrösse Y ist die Korrektur, die auf den PWM-Wert zur Ausregelung gebracht wird. Man hat die Wahl, entweder die Stellgrösse Y je zur Hälfte im entgegengesetzten Sinn auf beide Motore zu geben oder nur einen Motor zu verlangsamen oder zu beschleunigen. Auf das Vorzeichen muss geachtet werden, sonst regelt er nicht aus.

    So, jetzt kann mit dem Programmieren losgelegt werden! Wer will es selbst versuchen?
    Mit den Parametern aus dem letzten Beitrag hat man alles, was man dazu braucht.
    Kp = 3; Ki = 10; Kd = 0.225;
    dt = 0.0016


    Während Ihr inzwischen fleissig programmiert, werde ich mein vorläufiges Programm noch auf Vordermann bringen, um es hier reinstellen zu können.

    Tipps:
    Mit etwas Geschick kann man auf floating point verzichten und man kommt mit Integer aus.
    Sorgfalt ist geboten um Überläufe zu verhindern.
    Beim D-Anteil kommt prinzipbedingt ein sehr hoher Wert in der Berechnung vor. Die Weitergabe an den PWM-Wert muss begrenzt werden, aber der Rest darf nicht verworfen werden, sonst stimmt das Verhalten nicht mehr.

    Waste

    Fortsetzung folgt
    Miniaturansichten angehängter Grafiken Miniaturansichten angehängter Grafiken loop_870.gif  

Berechtigungen

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

LiFePO4 Speicher Test