LabVIEWForum.de - Ausgang eines PID Reglers plotten

LabVIEWForum.de

Normale Version: Ausgang eines PID Reglers plotten
Du siehst gerade eine vereinfachte Darstellung unserer Inhalte. Normale Ansicht mit richtiger Formatierung.
Hallo Community,

im Rahmen meine BA möchte ich Ausgangssignale eines PID Reglers und verschiedenen Übertragungsfunktionen nach einem vorgegebenem Sollwert plotten. Das funktioniert auch nur der PID Regler bereitet mir schon länger Sorgen.
Ich erzeuge den Sollwertverlauf in der Case-Struktur. Er ist insgesamt 11sek lang und springt nach 1sek von 0 auf 1 und nach 6sek von 1 auf 0 zurück.
Den Schleifendruchlauf der While-Schleife habe ich auf 10ms gesetzt und die Loop-Time ebenfalls. Ich rechne die Loop-Time durch 1000 um von der Einheit msek auf sek zu kommen.
Dann sollte der PID Regler doch pro Schleifendurchlauf einen Wert ausgeben. Leider schwingt der Ausgangsplott immer zwischen 0 und einem Wert.
Irgendwo habe ich einen Denkfehler oder ich weiß es nicht besser2hands, arbeite erst seit einer Woche mit LabVIEW. Daher die Frage wie kann ich den Ausgang eines PID Reglers auf eine Zeitachse plotten lassen? Wäre froh wenn mir jemand weiterhelfen kann.

Viele Grüße
Nikolai
Hallo nik,

Zitat:Irgendwo habe ich einen Denkfehler
Wieso glaubst du, der Ausgabewert deines PID sollte gleich wieder als pv zurückgeführt werden?
Wie sieht denn deine Strecke aus? Wo kommen deine echten Messwerte her?
Hallo GerdW,

Der Regler ist Teil eines Governor in einer BHKW-Modellierung in der nachträglich Anti-Windup Methoden implementiert werden. Das Modell exestiert bereits in Simulink und Labview ohne Erweiterungen. In Simulink wurden die neuen Methoden ausgelegt und sollen nun in LabVIEW übertragen werden. Das Verhalten muss das Gleiche sein.
Mein Ansatz um das zu testen, erstmal nur das Verhalten der geänderten Bausteine einzeln vergleichen bevor das ganze Modell verglichen wird. Auch um Zwischenergebnisse zeigen zukönnen. Dafür wird der Regler nur mit Stellgrößenbeschränkung ohne Strecke im geschlossenen Regelkreis betrachtet, da Windup nur im geschlossen Regelkreis auftritt.

In meinem Ausgangssignal ist ab dem Rücksprung meines Sollwertes jeder zweite Wert 0. Das passt nicht zum eigentlichen Verhalten des Reglers und mein Verdacht ist, dass es vielleicht etwas mit der zeitlichen Synchroniserung der Schleife und des Reglers zu tun haben könnte.

Viele Grüße
Nikolai
Hallo Nik,

das Zeit-Konzept von LabVIEW ist ein anderes als bei simulink: simulink versucht möglichst genau das echte Zeitverhalten zu simulieren. LabVIEW dagegen verwendet die Zeit eher wie ein zusätzliches Messsignal: wenn deine Schleife mit 10ms iteriert, dann wird der PID eben mit 10ms den Output berechnen. Wenn die Schleife aber mit 14ms iteriert, du aber weiterhin 10ms vorgibst, passt die Berechnung nicht mehr...

Zum Verhalten des PID: wenn der pv zwischen 0 und 1 springt, wird auch der Output zwischen min und max hinundher springen...
Hallo GerdW,

vielen Dank schonmal für deine Infos und Anregungen. Leider ist mir noch nicht ganz klar warum der Regler zu schwingen beginnt...seis drum. Ich habe den Regler mit den dazugehörigen Strecken implementiert, jetzt ist der Ausgang stabil. Ja der Vergleich zwischen Simulink und LabVIEW ist etwas kompliziert, deswegen ist im nächsten Schritt angedacht, das Modell in LabVIEW mit Regel-&Simulationsschleifen aufzubauen.

Viele Grüße
Nikolai
Hallo Nik,

Zitat:Leider ist mir noch nicht ganz klar warum der Regler zu schwingen beginnt.
Wenn der pv zwischen 0% und 100% hin- und herspringt, wird der Output des PID eben auch zwischen seinen Extremwerten springen, um den Sollwert wieder einzustellen…
Referenz-URLs