LabVIEWForum.de - PID Regelung für Luftmassenstrom

LabVIEWForum.de

Normale Version: PID Regelung für Luftmassenstrom
Du siehst gerade eine vereinfachte Darstellung unserer Inhalte. Normale Ansicht mit richtiger Formatierung.
Seiten: 1 2
Hallo Leute, das ist mein erster Beitrag hier. Bisher hat mir die Suchoption schon viel Arbeit erspart :rolleyes:Aber jetzt brauch ich doch nochmal eure Hilfe.
Meine Aufgabe besteht darin ein Stromventil anzusteuern und zu regeln. Als Input dient ein Promass Massenstrommessgerät.
Angeschlossen sind die Geräte über die FieldPoint Schnittstelle. Einmal über das AnalogInput Modul und einmal über das Analog Output Modul.
Als Input kommen 4-20mA rein, und gesteuert wird ebenfalls über die Stromstärke (3,5 - 20mA).
Das Auslesen und Steuern funktioniert soweit gut und ohne Probleme.
Schwierigkeiten bereitet mir die Regelung mittels PID Regler. Wobei der I und D Anteil erst einmal außen vorgelassen werden. Um das Programm erst einmal zum Laufen zu kriegen benutze ich im Moment nur den P-Regler.
Der Sollwert wird in kg/h eingegeben, der Istwert wird ebenfalls in kg/h umgerechnet. Der Stellwert schwankt zwischen 4-20mA.

Mein Problem ist nun, dass der P-Regler nie den voreingestellten Sollwert erreicht! Im Bild ist ein Verstärkungsfaktor von 0.0028 und ein Sollwert von 2kg/h eingestellt. Daraufhin bekomme ich einen Output von 0.0056mA. Das einzige was der Regler also macht, ist den Output auf Sollwert*Verstärkungsfaktor einzustellen.
Bis dahin fleißt kein Massenstrom. Vergrößert man den Sollwert, so öffnet das Ventil, und der Regler regelt wild hin und her ohne je den Sollwert zu erreichen.
Woran kann das liegen? Eigentlich sollte er doch lediglich den Regelfehler verstärken (sprich die Differenz von Sollwert und Istwert). Dies tut er aber nicht. Vergrößert man den K-Faktor, so öffnet er das Ventil komplett und schließt es danach wieder komplett.

Ich hoffe einer von euch findet den Fehler im VI ... Bis Montag muss ich das nämlich zum laufen bringen =(

Grüße aus Berlin

mr.moe


ach ja...die vi's sind version 8.2
ich hab nicht viel Ahnung von PID-Reglern, aber: schau doch mal im Example Finder, da gibts ein ganz gutes Beispiel, dass die Zusammenhänge verdeutlicht, vielleicht hilft dir das auch schon weiter ...
Hallo mr.moe,

an Deinem Regler hast Du keine Übertragungskonstante K sondern eine Integrationszeit Ti.

Stell mal Deine Integrationszeit hoch ein (probier mal 1000) , dann ist der Einfluss vom I-Anteil weg.

Wie ist denn das Streckenverhalten? Hast Du die Sprungantwort der Strecke ausgewertet?

kpa
Der Example Finder hilft mir bei diesem spezifischem Problem leider nicht weiter. Wie der Regler integriert wird ist ja bekannt.

Das VI im obigen Beitrag ist auch nur zum testen der generellen Regelfunktion. Das eigentlich Programm beherbergt mehrere Regelkreise und ist dementsprechend auch komplizierter aufgebaut. Aber um die PID Parameter zu finden, und zu schauen, ob überhaupt alles richtig angeschlossen ist und funktioniert reicht dieses kleine Programm ja vollkommen.
Den einen Regler konnte ich gestern Abend auch schon einstellen. Da galt es nur die Parameter feiner einzustellen.

Beim zweiten Regler funktioniert aber irgendwie keine einzige Variante! Jedesmal schwingt der Output dermaßen stark, dass das Ventil komplett auf/zu geht. Ich habe die charts unten mal hochgeladen.
Wenn der K Faktor des P-Reglers zu klein wird macht er nichts mehr, wird er zu groß schwingt er wie in den Diagrammen zu sehen, und ist der Wert irgendwo dazwischen schwingt er ebenfalls, dann erreicht er allerdings den Sollwert nicht und schließt das Ventil vorher schon wieder.
Daher fällt mir gerade keine Möglichkeit ein die Schwingung irgendwie zu verringern Mellow

@kpa: Die Integrationskonstante hab ich hochgestellt. Beeinflusst hat das die Strecke jedoch nicht. Als Antwort bekomm ich immer noch die aufgezeichnete Schwingung des Ist-Werts.

gruß
mr.moe
Hallo mr.moe,

wie ist denn das Streckenverhalten? Hast Du die Sprungantwort der Strecke ausgewertet?

Ist die Strecke mit P-,I-, D-Regler oder Kombinationen überhaupt regelbar? Wenn nicht brauchst Du einen Vorfilter.
(Aber erstmal Sprungantwort auswerten)

kpa
' schrieb:Mein Problem ist nun, dass der P-Regler nie den voreingestellten Sollwert erreicht! Im Bild ist ein Verstärkungsfaktor von 0.0028 und ein Sollwert von 2kg/h eingestellt. Daraufhin bekomme ich einen Output von 0.0056mA. Das einzige was der Regler also macht, ist den Output auf Sollwert*Verstärkungsfaktor einzustellen.

Hallo mr.moe

Beim P-Regler gibt es eine sogenannte "bleibende Regelabweichung". Deswegen kann der P-Regler den Sollwert nicht erreichen.

Du brauchst einen I-Anteil (mal versuchen mit 0.1).

Im Wikipedia ist der PID Regler übrigens gut beschrieben.

Gruss, BDB
' schrieb:Hallo mr.moe

Beim P-Regler gibt es eine sogenannte "bleibende Regelabweichung". Deswegen kann der P-Regler den Sollwert nicht erreichen.

Du brauchst einen I-Anteil (mal versuchen mit 0.1).

Im Wikipedia ist der PID Regler übrigens gut beschrieben.

Gruss, BDB

Hallo, der bleibende Regelfehler ist bekannt. Nur hätte ich nie gedacht, dass dieser so hoch ist und damit so eine große Auswirkung hat.

Meine Regler funktionieren nun eigentlich gut. Das Problem lag darin, dass ich zu Anfang nur den P-Anteil benutzt habe. Ich weiß nicht, ob das an der Regelstrecke oder am PID Toolkit selbst liegt, jedenfalls hat die Ventilregelung so nicht funktioniert. Nimmt man gleich zu Beginn den I-Anteil hinzu, so regelt der Regler nach einer gewissen Feinjustierung zufällig die Fehler raus! Den D-Anteil brauchte ich dann aber erst im Anschluss hinzuzufügen.

Danke für eure bisherigen Antworten!
Jetzt gibt es doch noch ein Problem mit dem Regler Big Grin
Und zwar kann man dem PID Regler entweder manuell einen Wert vorgeben (automode = FALSE) oder man lässt ihn den Sollwert automatisch einstellen/regeln (automode = TRUE).

Das Problem ist nun, dass ich jedesmal wenn er automatisch einen Wert einstellen soll, erst den automode auf FALSE stellen muss und anschließend wieder auf TRUE. Woran kann das liegen? Solange P und I Regleranteil eingeschaltet sind dürfte das doch egal sein und er müsste sofort regeln oder?
Ich hab die Paramter in den Anhang gepackt...

gruß moe
' schrieb:Jetzt gibt es doch noch ein Problem mit dem Regler Big Grin
Und zwar kann man dem PID Regler entweder manuell einen Wert vorgeben (automode = FALSE) oder man lässt ihn den Sollwert automatisch einstellen/regeln (automode = TRUE).

Das Problem ist nun, dass ich jedesmal wenn er automatisch einen Wert einstellen soll, erst den automode auf FALSE stellen muss und anschließend wieder auf TRUE. Woran kann das liegen? Solange P und I Regleranteil eingeschaltet sind dürfte das doch egal sein und er müsste sofort regeln oder?
Ich hab die Paramter in den Anhang gepackt...

gruß moe

Der Regler ist eingeschaltet, solange Auto = true ist. Wenn Auto = false ist, wird der Eingang "manual control" auf den output durchgeschaltet. Es gibt dann keine (automatische) Regelung mehr.

Wenn der Sollwert verändert wird, sollte also bei Auto = true geregelt werden. Ich habe mal ein Beispiel angehängt.

Gruss, BDB

PS: LV ist Version 8.2.1
' schrieb:Der Regler ist eingeschaltet, solange Auto = true ist. Wenn Auto = false ist, wird der Eingang "manual control" auf den output durchgeschaltet. Es gibt dann keine (automatische) Regelung mehr.

Wenn der Sollwert verändert wird, sollte also bei Auto = true geregelt werden. Ich habe mal ein Beispiel angehängt.

Gruss, BDB

PS: LV ist Version 8.2.1

Das ist mir ja bekannt. Und es wäre schön, wenn er dann einfach regeln würde. Aber wird der Sollwert verändert, reagiert der Regler überhaupt nicht auf die Eingabe, auch wenn auto=true ist. Ich muss dann immer erst auto=false einstellen, und anschließend wieder auf auto=true damit er die Veränderung bemerkt und regelt.
Also Regler aus, Regler an, und er regelt =) ...ist halt nur sehr nervig das jedesmal zu machen...

gruß moe
Seiten: 1 2
Referenz-URLs