Guten Morgen liebe Leute
Ich bin gerade dabei, mithilfe eines Proportionalventils (stufenlos einstellbares Magnetventil) einen Wasserfluss auf eine gewünschte Ziel-Durchflussrate zu regeln. Das Wasser wird von einer Pumpe gefördert. Nach dem Ventil kann es zu mehr oder weniger fluidischem Widerstand kommen, dieser kann sich fortlaufend ändern.
Der Durchfluss wird gemessen und das Ventil dann via PI Regler angesteuert.
Grundsätzlich funktioniert das auch ganz gut, insbesondere wenn die Druckvehältnisse einigermassen konstant sind und sich der Widerstand nach dem Ventil nicht gross ändert. (Die Druckverhältnisse sind dem Regler nicht bekannt)
Ich habe aber festgestellt, dass sich das System bei ändernden Druckverhältnissen zT sehr instabil verhält, es kommt zu Sprüngen im Durchfluss welche dann sehr träge korrigiert werden.
Nachdem ich mir die Kennlinien von Proportionalventilen mal angeschaut habe, komme ich zu folgender Erklärung (siehe auch Anhang)
Wenn der Druck im System einigermassen konstant ist, bewege ich mich mit dem Regler mehr oder weniger auf einer dieser definierten QI Kennlinien (den Strom stelle ich über das PWM ein). Ich erziele mit einem defensiven Regler sehr gute und stabile Resultate.
Wenn sich der Druck im System ändert, kann ich innerhalb kurzer Zeit in vertikaler Richtung im Diagramm hin und her springen. Der Durchfluss ändert sich dann sofort und ich brauche eine grosse korrektur des Stroms um wieder bei der ursprünglichen Durchflussgeschwindigkeit zu landen.
Meine Frage erstmal:
Klingt das plausibel für euch?
Wie kann ich das Dilemma lösen, dass ich für den einen Fall mit einem defensiven regler gute resultate erziele, für den anderen fall aber viel zu langsam bin? Muss ich mit einem kompromiss leben wenn ich die Druckverhältnisse nicht kenne?
Hallo
Danke für die Antwort.
Ja, ich habe dieses Thema auch verfolgt, von mir aus gesehen sind es andere Probleme. Dort wird auf einen Eingangsdruck geregelt und daraus versucht auf konstaten Fluss zu schliessen, was wegen beschriebenen Gründen nicht möglich ist.
Ich versuche einen gemessenen Fluss auf einen Sollfluss zu regeln.
Auf die Pumpenart habe ich leider keinen Einfluss.
ich brauche eine grosse korrektur des Stroms um wieder bei der
ursprünglichen Durchflussgeschwindigkeit zu landen.
Da kommst du also mit einem zahmen PI Regler nicht mehr hinterher, du musst einen D-Anteil einführen, um schnell regieren zu können. Schnell reagieren können muss natürlich auch deine Leistungsstufe und das Propventil.
Genau! Das macht man mit einer Störgrößenaufschaltung. Also den Druck messen und auf die Stellgröße einen druckabhängigen Wert aufschalten. Wie hoch die Aufschaltung sein muss, muss man experimentell oder aus einem geeigneten Diagramm ermitteln.
Ich habe aber festgestellt, dass sich das System bei ändernden
Druckverhältnissen zT sehr instabil verhält, es kommt zu Sprüngen im
Durchfluss welche dann sehr träge korrigiert werden.
[...]
Meine Frage erstmal:
Klingt das plausibel für euch?
Wie kann ich das Dilemma lösen, dass ich für den einen Fall mit einem
defensiven regler gute resultate erziele, für den anderen fall aber viel
zu langsam bin? Muss ich mit einem kompromiss leben wenn ich die
Druckverhältnisse nicht kenne?
Das klingt sehr plausibel. Ich habe da auch eine Frage dazu:
Bei der Feuerwehr haben die wohl dasselbe Problem. Die haben da
so eine Art Luftsack bzw. Druckausgleich, der dann die Druckspitzen
glättet. Wäre das bei Dir möglich?
Also den Druck messen und auf die Stellgröße einen druckabhängigen Wert
aufschalten.
Bei der Hydraulik braucht man den Druck nicht messen, weil der sich quasi sofort auf den Durchfluss auswirkt. Je nach System und Sensor und "Steifigkeit" der Verrohrung kann man da allenfalls ein paar ms gewinnen.
Die haben da so eine Art Luftsack bzw. Druckausgleich
Ja, damit baut man eine "Feder" in das System ein und gibt dem System Zeit, nachzuregeln. Federn haben allerdings die unangenehme Eigenschaft, zu Schwingungen angeregt werden zu können.
Ich bin mir nicht sicher, ob das hier tatsächlich ein digitalelektronisches Problem ist. Eigentlich müsste es nach DSP, wo die Regelungstechnik in der Forenliste steht:
https://www.mikrocontroller.net/forum/dsp
Eigentlich müsste es reichen wenn du bei kleinen Abweichungen kleinere Regelschritte und bei einer größeren Abweichung eben größere Regelschritte für dein Ventil verwendest. So werden mit Annäherung an den Sollwert diese Schrittweiten immer geringer.
Wichtig ist das du aber ausreichend schnell misst, damit die Regelung nicht verspätet reagiert.
Außerdem helfen größere Leitungsdurchmesser die Druckveränderungen gering zu halten.
Beispiel: 1 Leitung 20mm Durchmesser 10 Meter länge und dann gibts dort 2 16mm Zapfstellen, die erste öffnet, der Druck bricht etwas zusammen und wenn dann die 2te noch öffnet ist der Druck fast komplett weg. Wenn man da eine 32mm Leitung nimmt dann bleibt der Druck viel höher und stabiler, da genug Wasser nach fließt.
Bei der Hydraulik braucht man den Druck nicht messen, weil der sich
quasi sofort auf den Durchfluss auswirkt.
Ja, die Druckänderung wirkt sich sofort auf den Durchfluß aus, aber der Durchfluss wird erst langsam über den den PI-Regler korrigiert. Das verhindert die Störgrößenaufschaltung, da sie sofort auf die Druckänderung reagiert. Im Idealfall ändert sich der Durchfluss nicht und der Regler muss nicht reagieren.
Eigentlich müsste es reichen wenn du bei kleinen Abweichungen kleinere
Regelschritte und bei einer größeren Abweichung eben größere
Regelschritte für dein Ventil verwendest. So werden mit Annäherung an
den Sollwert diese Schrittweiten immer geringer.
Wichtig ist das du aber ausreichend schnell misst, damit die Regelung
nicht verspätet reagiert.
Außerdem helfen größere Leitungsdurchmesser die Druckveränderungen
gering zu halten.
Beispiel: 1 Leitung 20mm Durchmesser 10 Meter länge und dann gibts dort
2 16mm Zapfstellen, die erste öffnet, der Druck bricht etwas zusammen
und wenn dann die 2te noch öffnet ist der Druck fast komplett weg. Wenn
man da eine 32mm Leitung nimmt dann bleibt der Druck viel höher und
stabiler, da genug Wasser nach fließt.
Es geht nicht um die Aufrechterhaltung eines konstanden Drucks, sondern um eine konstante Durchflussmenge bei unterschiedlichsten Situationen.
Und da spielen die unterschiedlichsten Grössen/Faktoren rein, gerade bei einem Fluid wie Wasser.
Nur als Beispiele:
Trägheit der Masse, Staudruck
Laminarer/turbulenter Widerstand
Steilheit und Dauer der Widerstandsänderung.
usw..
Liebe Leute
Danke erstmal für eure Feedbacks und anregungen.
Vorweg, in einem ersten Schritt geht es darum, das Optimum aus dem bestehenden System herauszuholen. Sprich ich habe keine andere Sensorik als das Flowmeter zur verfügung. Dazu konkret noch folgende Fragen:
Zur Zeit verwende ich wie gesagt einen PI regler, wobei der I anteil so pi mal Daumen 1/10 vom P anteil ausmacht. Sollte der D Anteil in einer ähnlichen Grössenordnung sein oder geht das einfach nur über ausprobieren?
Angenommen ich kann den Durchfluss ausreichend präziese und schnell messen, und zusätzlich kenne ich den Strom der durch das Ventil fliesst (da ich ja das PWM kenne). Dann kann ich ja im Prinzip daraus ableiten, auf welcher QI Kurve aus dieser gezeigten Kurvenschar ich mich befinde (auch hier angenommen dass mein System genügend steif ist und Druck und Flow direkt zusammenhängen). Wenn sich nun der durchfluss bei gleichem PWM ändert, heisst das dass ich mich nun auf einer andern QI Kurve befinde und den strom entsprechend korrigieren muss. Soweit sinnvoll?
Was mir nicht klar ist, wie ich diese information in einen PI(D) Regler reinpacke. Ist das ein weiterer Term der hinzukommt? Muss ich dazu alle Kennlinien welche ich dazu benötige irgendwo ablegen oder wie geht man sowas normalerweise an?
zu 1: Wenn man die Regelstrecke genau kennt, kann man die P- und I-Anteile berechnen. In deinem Fall ist die Strecke nicht bekannt, dh. man muss probieren (besonders wegen der Nichtlinearitäten).
zu 2: Ja, du kannst ableiten, auf welcher Kurve du dich befindest, am besten indem du den Druck misst. Wie du den Strom korrigierst, habe ich mit der Störgrößenaufschaltung beschrieben. Man verändert also nicht die Regelparameter, sondern schaltet einen zusätzlichen Strom auf (Strom ist die Stellgröße). Wie viel Strom, kann man wieder berechnen, aber in deinem Fall besser probieren.
Danke
Zu 1: Ich meine mal gelesen zu haben, dass I und D anteil in der grössenordnung 1/10 vom P anteil sein sollten. Ist das mehr ein richtwert um mal anzufangen oder sollte man sich mehr oder weniger daran halten aus welchen gründen auch immer.
Oder anders gefragt: Angenommen ich erziele mit P=500, I=50 und D=400 gute ergebnisse. Kann ich das dann ohne weiteres so umsetzen oder sollte ich vorsichtig sein da es bei fällen welche ich nicht untersucht habe grob daneben gehen kann da D nun relativ gross ist.
Zu 2. Also ich habe das noch nie gemacht und frage mich halt konkret wie man es umsetzt
Angenommen ich steuere mein ventil momentan mit 70% PWM an und messe dabei einen fluss von 10ml/sec
Im nächsten loop stelle ich fest dass ich bei 70% PWM noch 8ml/sec messe.
Ich würde dann also aufgrund der Information 8ml/sec und 70% abschätzen auf welcher QI Kurve ich mich befinde. Da die kurve hinterlegt ist weiss ich dann wie viel %PWM ich hinzufügen muss um wieder bei den 10ml/sec zu landen.
Ist es in etwa so wie der mechanismus zu funktionieren hat?
Zur Erklärung der Störgrößenaufschaltung ist in der Anlage der theoretische Regelkreis dargestellt. Die Regelstrecke ist symbolisch in F1 und F2 aufgeteilt, damit man den Eingriffspunkt der Störgröße einfügen kann. Wenn man jetzt diese Störgröße über Fk=1/F1 von dem Stellwert Ir des Reglers abzieht, wird die Störung vollständig kompensiert. Leider kennt man F1 und F2 nicht genau, so dass man Fk probieren muss.
zu 1: Bei genauer Kenntnis der Strecke kann man leicht den richtigen Regler berechnen. Aber bei irgendeiner Strecke können Faustformeln kein vernünftiges Ergebnis liefern.
Meistens hat jede Strecke eine dominierende Zeitverzögerung T1. Diese Verzögerung kann man mit dem I-Anteil vollständig komensieren über Tr=T1. Jetzt gibt es nur einen freien Parameter, den P-Anteil. Der bestimmt die Dämpfung des Regelkeises. Den probiert man einfach aus, bis die Regeleigenschaft gefällt. D sollte man erstmal weglassen und später testen, ob man die Regelung damit beschleunigen kann ohne sich ein Schwingen einzuhandeln.
zu 2: Ja, man kann das sicherlich über einen Table-Lookup machen. Das ist dann auch eine Störgrößenaufschaltung wie im Anhang. Der Block Fk schaut dann eben in die Tabelle, um den richtigen Korrekturstrom Ikorr zu bestimmen.
Ich habe aber festgestellt, dass sich das System bei ändernden
Druckverhältnissen zT sehr instabil verhält, es kommt zu Sprüngen im
Durchfluss
Das mag wohl an der Hysterese des Ventilmagneten liegen. Außerdem ist die Kennlinie alles andere als Linear, so dass sich die Eigenschaften der Strecke mit dem Durchfluss ändern. So ein simpler PID-Regler ist davon nicht begeistert, weil der auf feste Streckeneigenschaften parametriert ist.
Außerdem ist die Kennlinie alles andere als Linear...
So ein simpler PID-Regler ist davon nicht begeistert,
Stimmt! Eine lineare Strecke kann man dadurch erreichen, dass man einen Linearisierer vorschaltet - quasi eine inverse Abhängigkeit. Der Regler sieht dann eine lineare Strecke.
Zur Zeit verwende ich wie gesagt einen PI regler, wobei der I anteil
so pi mal Daumen 1/10 vom P anteil ausmacht. Sollte der D Anteil in
einer ähnlichen Grössenordnung sein oder geht das einfach nur über
ausprobieren?
Der Durchfluss wird gemessen und das Ventil dann via PI Regler
angesteuert.
OP möchte:
"..einen Wasserfluss auf eine gewünschte
Ziel-Durchflussrate zu regeln..."
Es gibt auch kein "stufenlos einstellbares Magnetventil". Ein Magnet ist ein- oder ausgeschaltet. Bei einem Kugelhahn ist die Öffnungscharakeristik zu beachten (Von null über elipsenförmig nach kreisrund).
Wenn möglich sollte er über den Durchflussmesser die Pumpe regeln. Kann auch über ein Rückströmventil zum Vorlauf/Vorlaufbehälter der Pumpe gehen.