PID-Regler & Z-Transformation

Gast #203819
Hi Folks,

bevor ich den totalen Hirnkollaps bekomme, frage ich das Fachpublikum
unter euch.
Es geht um einen diskreten PID-Regelalgorithmus für einen DSP. Den
rekursiven Rechenalgorithmus habe ich durch Anwendung der
Z-Transformation aus der additiven Darstellung ausgerechnet. Ist ja
soweit auch kein Problem:
Additive Form im Zeitbereich:

PID = KR * (1 + 1/TN*s + TV*s)

Soweit klar - einfache Addition der drei Regelfaktoren!

Jetzt ersetzte ich die Laplacevariable "s" mit "z" für das Integral
und Differential (Rückwärtsdifferenz und Billineare Transformation)
rechene alles aus.
Habe dann 3 konstante Koeffizienten mit den Zeitkonstanten TN, TV und
KR.
b0=KR*[T/2*TN+TV/T+1]
b1=KR*[T/2*TN-2*TV/T-1]
b2=KR*TV/T

Phänomen:
Schalte ich Integral und Differential (TN -> inf. & TV ->0) aus, kann
ich am Proportionalteil einstellen was ich will, die Sollwertabweichung
wird nicht P-verstärkt. Ist auch klar, wenn ich mir die Koeffizienten
anschaue. Ausgangspunkt war aber die additive Form des PID und da wird
P durchgeschleift und nach der Transformation ist sie weg!

Warum:
Wo zum Kuckuk ist meine einfache Proportionalverstärkung geblieben?
Warum ist die nicht mehr als separater Teil drin?

Danke euch
Alex

P.S. Zweeehundert Puls hab ich, bald ;-)
Gast
Gegen zu hohen Blutdruck sollen angeblich lange Meditationen auf
einesammen Berggipfeln helfen. :-)

Ich hab zwar auch irgendwann mal Z-Transformiert, aber das ist schon
aeh...watt laenger her. Mir stellen sich da mal ein paar Fragen.

1. Wieso glaubst du einfach Integral oder Differentialteil weglassen zu
koennen? Das wuerde vorraussetzen das die Koeffizienten wirklich
komplett je nach Anteil getrennt sind. Ich glaub das ist bei dir nicht
der Fall.

2. Warum ueberhaubt der komplizierte Weg mit der Z-Transformation? Du
kennst doch schon das Ergebniss naemlich den einfachen PID-Regler.
Wobei bei letzerem aber etwas noch nicht in deiner Gleichung steht.
Naemlich die Zeitkonstante deines Reglers. Es ist ja nicht egal und
beeinflusst deine Koeffizienten stark, wie oft du wirklich diese
Regelschleife durchlaeufst. Wenn du das so allgemein herleitest dann
muesstest du irgendwie auch diese Zeitkonstante beruecksichtigen.

3. In der Praxis wird dein Problem sowieso darin bestehen die
Koeffizienten des Reglers zu bestimmten. Das geht mit eine bisschen
Rechnung, viel Erfahrung und etwas try&error. Ich glaub mit hoeherer
Mathematik kommst man da normalweise nicht weiter weil du deine
Regelstrecke nicht gut genug beschreiben kannst.

Olaf
Gast
Lieber Himmel, ist das alles lange her ... (-:

Aber Du hast doch noch b0 = KR und b1 = -KR. Wenn ich das richtig in
Erinnerung habe, setzt Dir bei einem eingehenden Impuls von 1 das b0
einen Sprung auf KR und damit der beim nächsten Abtastpunkt wieder auf
null geht, kommt nach einem Takt eben der -KR-Sprung, der den ersten
wieder aufhebt.

Also entweder das hat sich im Laufe der Jahrtausende in meiner
Erinnerung vernebelt, oder Du hast vor lauter schwieriger Mathematik
vergessen, was Du da eigentlich rechnest ... (-;
Gast
@Olaf

zu 1.
Ist klar, in den Koeffizienten sind die PID Anteile vermischt. Sie
gewichten die Regeldifferenz zu den Abtastzeitpunkten
Regelgröße=[b0*aktueller Wert(ek)] + [b1*letzter Wert(ek_1)] +
[b2*vorletzter Wert(ek_2)].
Da meine Ausgangsform zur Berechnung aber die additive Form des
PID-Reglers ist, dürfte nach der Transformation auch nichts anderes
rauskommen als die PID Anteile, nur eben nun nach den Abtastzeitpunkten
(ek,ek_1,ek_2) sortiert.

zu 2.
Zeitkonstante ist T
Hab jetzt kurzerhand einen 0815-PID geschrieben, der alle Anteile
separat berechnet und anschließend addiert. Nur sieht der halt für ne
Diplomarbeit nicht gerade schick aus. Ist halt wirklich niedrigstes
Numeriklevel. Er hat aber einen Vorteil: ***ER FUNKTIONIERT***

zu 3.
ja try&error. Mein Mathebuch hole ich erst wieder zur Dokumentation
raus. Mit Rechnung wird es hier sowieso etwas schwierig, da es ein
zweistufiger PID-Kaskadenregler ist.


@Philipp

OK wo du recht hast, hast du recht. Habe meinen Fehler erkannt.

Danke
Alex

Antwort schreiben

Eine eigene Frage? Dieser Thread ist über 22 Jahre alt. Stell sie in einem eigenen Thread – dort lesen mehr Leute mit, und sie wird öfter und schneller beantwortet.

Neuen Thread starten

Eine Lösung, Ergänzung oder Rückmeldung zu diesem Thread? Dann antworte hier.

Formatierung
  • [c]C-Code[/c]
  • [code]Code in anderen Sprachen, ASCII-Zeichnungen[/code]
  • [math]Formel in LaTeX-Syntax[/math]
  • [[Titel]] – Link zu einem Artikel
  • Verweis auf einen anderen Beitrag: Rechtsklick auf dessen Beitrags-ID (#8078628), „Adresse kopieren“, in den Text einfügen

Mehr zur Formatierung

Längeren Sourcecode als Anhang, nicht in den Text. JPG nur für Fotos und Scans; Zeichnungen und Screenshots als PNG oder GIF. Siehe Bildformate.

Schon registriert? Anmelden

Wird nicht angezeigt. Wir schicken dir einen Link; sobald du damit bestätigst, erscheint dein Beitrag.

Mit dem Abschicken legst du einen kostenlosen Account an und erkennst die Nutzungsbedingungen und die Datenschutzerklärung an.