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: