Implementierung eines digitalen PID-Reglers

Ich versuche, einen PID-Controller in der z-Domäne zu implementieren. Was ich bisher getan habe, ist einige Werte von gefunden K P , K ich , Und K D die im Zeitbereich arbeiten. Ich habe einige Informationen gefunden, wie man diese Werte in die z-Domäne übersetzt , aber wenn ich die neue Simulation mit dem digitalen PID-Regler ausführe, scheint es nicht mehr zu funktionieren.

Zu Ihrer Information, die K P , K ich , Und K D Werte, die ich habe, sind 0,25, 0,6, 0,005, und als ich diese in die kanonische Form (in der z-Domäne) konvertierte, hatte ich A 0 = 500,25 , A 1 = 1000.25 Und A 2 = 500 . (gebraucht T = 10 6 . Wenn ich diese beiden Dinge zeichne (mit einem sinusförmigen Eingang), sind die Ausgänge unterschiedlich und ich kann nicht ganz herausfinden, wo ich damit falsch liege.

BEARBEITEN: Ich denke, als direktere Frage, wie kann ich Zeitbereichsparameter nehmen K P , K ich , Und K D und das in eine digitale/z-Domänen-Differenzgleichung für einen Mikrocontroller umwandeln? TIA

Bei einer einfachen Inspektion können wir sofort erkennen, dass mit Ihren Ki- und Kd-Werten eindeutig etwas nicht stimmt, da die Einheiten keinen Sinn ergeben. Ki ist in Frequenzeinheiten und Kd in Zeiteinheiten. Dimensionslos, wie Sie es zeigen, ist eindeutig falsch und kann daher möglicherweise nicht sinnvoll in die Z-Domäne konvertiert werden.
@OlinLathrop Ich kann sehen, woher Sie kommen, aber dies sind Formeln, die ich über den Wikibooks-Link erhalten habe. Gibt es andere Möglichkeiten, wie ich meine Zeitdomäne in z umwandeln kann?
Lassen Sie uns diese Diskussion im Chat @OlinLathrop fortsetzen
@OlinLathrop, ich denke, Ihr Chat funktioniert, wenn nicht, können wir einen anderen Weg finden, um zu kommunizieren. Kommentare hier sind nicht die produktivsten.
@Kortuk: Ich bin deinem Link gefolgt und auf eine Chat-Seite gelangt. Es hatte Blöcke für Dinge, die Sie gesagt haben und die ich gesagt habe, aber kein Text wurde ausgefüllt. Der Chat hat bei mir noch nie funktioniert.
@OlinLathrop, hast du vielleicht Skype? Ich kann Ihnen meine Kontaktinformationen per E-Mail senden (ich kann Ihre E-Mail von Ihrem Konto als Mod abrufen und dies vermeidet die öffentliche Weitergabe privater Kontaktdaten im Forum)
@OlinLathrop, wenn Sie eine Methode zum Chatten haben, die ich vorschlagen kann, kann ich wahrscheinlich die meisten Optionen installieren.

Antworten (2)

Da Sie Ihre Frage geändert haben, hier meine zweite Antwort:

Sie haben Ihre Koeffizienten K P , K ich Und K P . Die Übertragungsfunktion ist D ( z ) = K P + K ich T 2 [ z + 1 z 1 ] + K D [ z 1 T z ] = A 0 + A 1 z 1 + A 2 z 2 1 + B 1 z 1 + B 2 z 2 . Wenn Sie die beiden Seiten der Gleichung vergleichen, werden Sie feststellen, dass Sie alles berechnen können, was Sie brauchen. Ich nehme an, Sie haben sich bereits entschieden K P , K ich , K P Und T entweder durch Messung oder aus den Anforderungen.

  1. Berechnen Sie die Koeffizienten

    • A 0 = K P + K ich T 2 + K D T
    • A 1 = K P + K ich T 2 2 K D T
    • A 2 = K D T
    • B 1 = 1
    • B 2 = 0
  2. Negative Exponenten für z bedeuten grundsätzlich eine Verschiebung. Die Ausgabe ist

    j [ N ] = X [ N ] A 0 + X [ N 1 ] A 1 + X [ N 2 ] A 2 + j [ N 1 ]

Der Index N ist der aktuelle Wert, N 1 der vorherige und so weiter.

Sie sind von einer Größenordnung. A 2 = K D T T = K D A 2 = 0,005 500 = 10 5 und nicht dein) T = 10 6 Ihre Werte müssen also angepasst werden.

Ups, ich glaube ich wollte schreiben 10 10 6 .
@suzu Hat das den Fehler verursacht?