LabVIEWForum.de - PID-PWM-Temperatur-Regler

LabVIEWForum.de

Normale Version: PID-PWM-Temperatur-Regler
Du siehst gerade eine vereinfachte Darstellung unserer Inhalte. Normale Ansicht mit richtiger Formatierung.
Guten Tag zusammen,

ich bin blutiger LabView Anfänger und soll im Rahmen meiner Masterarbeit für einen von mir entworfenen Teststand u. A. eine Temperaturregelung in LabView aufbauen. Erst einmal hoffe ich, dass ich hier im richtigen Bereich gelandet bin, falls dies nicht der Fall sein sollte, gebt mir bitte Bescheid.

Den Teststand, den ich soweit erfolgreich in LabView umgesetzt habe, umfasst Mass Flow Controller, Druckmessumformer, Magnetventile sowie ein paar Pt100. Ich habe in meinem Schaltschrank eine SPS von Vipa verbaut, mit der ich über SP7 eine Verbindung zu den oben genannten Aktoren aufbauen kann. Das Lesen dieser Aktoren stellt damit auch kein Problem dar.

Aktuell verzweifel ich jedoch an der oben genannten Temperaturregelung: Grundsätzlich ist das System so aufgebaut, dass ich um einen Schlauch ein Heizband gewickelt und das ganze schön isoliert habe. Kurz vor Schlauchende befindet sich ein Kreuzstück, an dem ein Druckmessumformer sowie ein Pt100 integriert ist. Über das Pt100 erfasse ich die Isttemperatur der Luft, die durch den Schlauch strömt. Ein weiteres Pt100 ist im Heizband integriert und kontrolliert dessen maximale Temperatur.

Um die Lufttemperatur auf einen definierten Sollwert zu halten bzw. zu erwärmen, möchte ich in LabView einen PID-Regler nutzen. Das Ausgangssignal möchte ich in ein PWM-Signal umwandeln, mit dem ich das Heizband letzten Endes steuere. Bei Überschreiten einer maximalen Heizbandtemperatur (erfasst von dem zweiten Pt100), soll das PWM-Signal aussetzen.

Ein VI, dass das PID-Signal in Abh. einer einstellbaren Periode in ein PWM-Signal umwandelt, habe ich bereits in einem anderen Forum gefunden.

Könnt ihr mir helfen?

Liebe Grüße
Niels
Hallo Niels,

Zitat:Um die Lufttemperatur auf einen definierten Sollwert zu halten bzw. zu erwärmen, möchte ich in LabView einen PID-Regler nutzen. Das Ausgangssignal möchte ich in ein PWM-Signal umwandeln, mit dem ich das Heizband letzten Endes steuere. Bei Überschreiten einer maximalen Heizbandtemperatur (erfasst von dem zweiten Pt100), soll das PWM-Signal aussetzen.
Nimm den AdvancedPID aus der Steuer/Regel-Palette: Ist-/Solltemperatur anschließen, vernünftige PID-Gains einstellen, Ausgang auf 0-100% festlegen - fertig…
Der zweite PT100 kann benutzt werden, um den PID an/aus zu schalten, die manuelle Vorgabe wird im "aus"-Fall (Temperatur zu hoch) auf 0% gesetzt.

Ist natürlich vereinfacht dargestellt, deshalb noch ein paar Stichpunkte:
- Du musst die PID-Gains vorher gut bestimmen (Ziegler-Nichols, etc.)!
- So ein Heizschlauch kann eine thermische Trägheit besitzen, die den PID "stören" könnte. Evtl. musst du den PID eher langsam einstellen oder mit dem D-Gain experimentieren.
- Wenn die Trägheit zu groß ist, könnte es auch helfen, mit einer zusätzlichen Vorsteuerung ("feed forward") neben dem PID zu arbeiten! Diese Vorsteuerung könnte auch das nichtlineare Verhalten deiner Regelstrecke berücksichtigen, z.B. beim Wärmeübergang vom Schlauch auf die Luft bei unterschiedlichen Massenströmen (oder evtl. verschiedenen Gasmischungen?): PID-Regler sind vorrangig für lineare Regelstrecken gemacht - oder man fängt mit Gain-Scheduling an, welches NI auch mit entsprechenden Funktionen in der PID-Palette unterstützt…
- Wie schnell ist dein PWM? (Welche Grundfrequenz wird verwendet?)
- Hast du im System "PC mit LabVIEW" <-> SPS <-> PWM-Ausgabe noch irgendwelche spürbaren Latenzen bei der Datenübertragung? Das kommt dann noch auf die thermische Trägheit oben drauf und kann dein Regelverhalten (negativ) beeinflussen…
- Wenn der zweite PT100 eine zu hohe Temperatur meldet, sollte man evtl. mit einer Hysterese arbeiten, bevor man die Heizung wieder zuschaltet…

Beispiel mit Vorsteuerung ("Bias"), Gainscheduling ("PID GAIN") und ein paar zusätzlichen Gimmicks, aber hier ohne PWM-Generierung:
[attachment=62063]
Zitat:PID-Regler sind vorrangig für lineare Regelstrecken gemacht

Für nicht-lineare Systeme benutze ich gern Fuzzy-Regler. Die VI's und den Fuzzy System Designer gibt's auch im LabVIEW.

Gruß Holger
Referenz-URLs