Heyho!
Nun hab' ich die letzten drei Wochen an der verflixten Regelung gebastelt und bekomme es alleine nicht hin. Auch die Kontaktaufnahme zu zwei Professoren der Regeltechnik brachte außer einer recht netten EInstellanleitung leider keine neuen Erkenntnisse. Darum frage ich nun euch...
Da mein Problem ohne Regelstrecke wohl kaum nachzubauen ist spare ich mir anfänglich mal das VI und werde die Geschichte beschreiben. Später können ja Teile folgen, wenn es um Einzelheiten geht...
Hier worum es geht:
Ich habe einen Thermostaten - den hier (aber ohne das schicke Farbdisplay
):
Huber . Inzwischen kann ich ihn mit vollen 9600 baud mit Stellbefehlen von -1000 bis 1000 füttern entsprechend 100.0% Kühlen bis Heizen. Das Suv-VI läuft auch ganz gut, dazu am Schluß noch eine Frage.
Nun lese ich in einem weiteren VI eine Temperatur am Pumpenausgang des kleinen Huber. Die kann ich mittlerweile mit 2000 Hz ganz guz erfassen und mache mir da 2 schöne Mittelwerte pro Sekunde draus - ca. +/- 0.0005 K. Diesen Wert gebe ich in den LV-PID Regler als Messgröße. Den Stellbereich habe ich mit -1000 bis 1000 eingestellt, weil dann der P-Anteil feiner zu stellen ist. Der Ausgangswert geht als Integer dann ins sub-VI für den Huber und das mit knappen 600 ms je Durchgang.
Ich würde die Regelstrecke nach reichlich Internetrecherche als PT2I einschätzen - strenggenommen höher aber die Elektronik nehme ich mal als "prompt" an. Dann bleibt PTI für das Heizbad und das zweite P für die paar Sekunden, die der Heizstab braucht um auf Temperatur zu kommen bzw. der Kompressor, um Druck aufzubauen.
Nun das Problem:
Der Ausgang schwingt bei P's ab 500 mit etwa 5-6 Hz
. Nicht erschrecken, 500 müßten "normalerweise" AFAIK 0,5 entsprechen, wenn man normiert. Dabei ist diese Schwingung gar keine per se erzwungene, da man deutlich das übergeordnete Verhalten des Thermostaten erkennt. Der P der Reglers reagiert aber mit +/- 1 in der Stellgröße drauf und so kommt es zu 5-10 mK Amplitude. Der Huber drückt einiges mehr pro Sekunde
. Interessanterweise bringen auch geringste (hohe) I's oder kleine D's das System total aus dem Trott. Dabei habe ich das Eingangssignal sogar mal über 2-3 Werte geglättet und es immer mitgeplottet - sieht absolut sauber aus, ebenso das dT/dt. Meine Befürchtung ist nun, das diese 5 sek genau die sind, die das Fluid aus dem Pott bis zum Fühler braucht und dann die Zeit, bis dieser sich angepasst hat (momentan noch 2 mm PT200). Aber wie kann man das im Regler berücksichtigen?
Oder wäre es gar schlauer mit Fuzzy zu arbeiten? Ich habe ihn im LV-Menü aber über den findet man rein gar nichts. Und selbst wenn bliebe die Frage, wie man schnell eine geeignete Matrix erstellt. Die erste mit "zu kalt" "etwas zu kalt" etc. geht schnell aber ich muß auch die Änderungsgeschwindigkeit der Temperatur damit zusammenbringen, wie der Thermostat reagiert. Dazu könnte man ihn mal mit 10, 20, 30...% Heizen und kühlen lassen und die Kurven auswerten. Vielleicht habt ihr da nen interessanten Literaturhinweis oder gar Tipps?!
Ja, zu guter letzt die Versprochene "direkte" LV-Frage: Ich habe wie gesagt den Thermo als Sub-VI und die A/D-Karte als Sub-VI. In der Mitte sitzt das Main-VI mit dem PID drin, was beide Sub-VIs anstößt. Aber warum kann die A/D nicht schon den nächsten Wert lesen während der Thermo gerade den letzten verarbeitet? Der kann 30,40 Werte pro Sekunde verdauen, also warum wartet das Haupt-VI bis er fertig ist? Da gibt es doch bestimmt irgendeine Parallelisierung via Rahmen o.Ä., stimmt's? Wenn später noch die Auswertung der weiteren Temperaturen dazu kommt bleibt das VI sonst stehen und es wäre doch schade, wenn die A/D nur alls 2 sek mal ihre 1000 Werte abholt
Ich hoffe, ihr habt schonmal "geregelt" und könnt mir TIpps geben?
Liebe Grüße,
Dennis