LabVIEWForum.de
"Schleifenübergreifende" PID Regelung - Druckversion

+- LabVIEWForum.de (https://www.labviewforum.de)
+-- Forum: LabVIEW (/Forum-LabVIEW)
+--- Forum: LabVIEW Allgemein (/Forum-LabVIEW-Allgemein)
+--- Thema: "Schleifenübergreifende" PID Regelung (/Thread-Schleifenuebergreifende-PID-Regelung)



"Schleifenübergreifende" PID Regelung - ugarcia - 15.06.2010 10:21

Hallo,

Zuerst einmal eine kurze Problembeschreibung:
Bei meinem Versuchstand befindet sich ein Durchflussmessgerät zwischen zwei Pumpen. Die Pumpen werden mit einem NI 6009 gesteuert.
Das Durchflußmessgerät gibt mir über die Differenz von Impulsen jede Sekunde einen Wert an (Ergebnis kommt durch eine eigene While Schleife zustande).

In weiterer Folge will ich eine Reglung aufbauen d.h. ich gebe einen Sollvolumenstrom vor und vergleiche ihn mit dem Istvolumenstrom.
Realisiert soll das ganze mit einem PID-Regler werden. Dazu hab ich ein sub-vi runtergeladen (das übliche simple pid) allerdings hab ich noch gar keine Erfahrung mit PIDs
bzw. weiß ich nicht ob das über die Schleifen hinweg mit meinem Aufbau funktionieren kann.
Wenn ich dass Programm starte und ich habe noch keinen Sollwert vorgegeben fährt mir z.B. die Pumpe nämlich schon hoch und dann wieder ab (Dreiecksform) - auch bei verschiedenen Eingaben für p,i,d...

Anbei ist das VI (LV 2009)...

Danke für Eure Hilfe
ugarcia


"Schleifenübergreifende" PID Regelung - Y-P - 15.06.2010 20:38

Dein SubVI fehlt noch.

Gruß Markus


"Schleifenübergreifende" PID Regelung - ugarcia - 16.06.2010 07:14

Schon da....

Wichtig ist auch noch dass die Schleifen unterschiedlich schnell sein sollen - d.h. der Sollwert soll kontinuierlich mit dem Istwert der jede Sekunde berechnet wird geregelt werden...

LG

[attachment=27155]
Lv09_img2


"Schleifenübergreifende" PID Regelung - Y-P - 16.06.2010 07:23

Vorab schon mal: Bitte VI-Version mit angeben. Rulez
Ich hab's jetzt mal für Dich gemacht.

Gruß Markus


"Schleifenübergreifende" PID Regelung - ugarcia - 16.06.2010 07:59

Steht im ersten Post....


"Schleifenübergreifende" PID Regelung - Lucki - 16.06.2010 09:27

Hab mirs mal kurz angesehen. Es wird nur alle 1 sec gesampled. Demgegenüber ist die Regelstrecke vermutlich sehr schnell, d.h bei Änderung der Motordrehzahl reagiert die Durchflußgeschwindigeit quasi sofort. Die Übergangsfunktion der Reglstrecke hätte dann bis zum nächsten Abtastpunkt ihren stationären Zustand bereits erreicht. Das ist ungewöhnlich, ich blicke da im Moment nicht durch, wie man eine Regelung mit einer so niedrigen Abtastrate im Verhätnis zur Reaktionszeit des Systems überhaupt noch machen kann.
Der PID-Regler scheint einen Fehler zu enthalten: Bei der Berechnung des I-Anteil muß dt als Faktor mit eingehen (so wie bei beim D-Anteil das dt als Quotient). Das scheint vergessen worden zu sein.
Die Verzögerung von 10 ms im Regeler kann ich auch nicht nachvollziehen, das Updating solte doch so schnell wir möglich geschehen.


"Schleifenübergreifende" PID Regelung - jg - 16.06.2010 10:20

Offtopic2
' schrieb:Steht im ersten Post....
Das langt aber lauf LVF-Regeln nicht. Bitte bei jedem VI-Upload angeben.
http://www.LabVIEWforum.de/LV-Version-hoch...d39s-t7949.html

Gruß, Jens


"Schleifenübergreifende" PID Regelung - ugarcia - 16.06.2010 13:03

' schrieb:Der PID-Regler scheint einen Fehler zu enthalten: Bei der Berechnung des I-Anteil muß dt als Faktor mit eingehen (so wie bei beim D-Anteil das dt als Quotient). Das scheint vergessen worden zu sein.
Die Verzögerung von 10 ms im Regeler kann ich auch nicht nachvollziehen, das Updating solte doch so schnell wir möglich geschehen.
Das ist ja eigentlich damit gelöst oder (also den dt Faktor meine ich):

err = sp-pv;
errsum = err + errsum;
prop = p*err;
integ = i*errsum;
deriv = d*((err-olderr)/(newtime-oldtime));

laut http://www.rn-wissen.de/index.php/Regelungstechnik glaube ich zumindest...

lg
ug


LV 2009


"Schleifenübergreifende" PID Regelung - Lucki - 16.06.2010 13:47

Dann vergleich doch mal selbst Deinen PID-Regler mit dem von LabVIEW aus der Beispielsammlung. (Der war allerdings nur bis zu Version 7 mit dabei, jetzt hast Du gefälligst das Addon kaufen, wenn Du so etwas brauchst)
Lv82_img[attachment=27172]
Wie ich im Laufe meines Berufslebens festgestellt habe, muß man unterscheiden zwischen "Universitäts-Reglern" ( oder "Professoralen Regler", "Lehrbuch-Reglern") und "Industriereglern". Beide sind gleich stabil, aber bei den erstgenannten erhält man nie ein überschwingungsfreies Verhalten.
Der Unterschied: Bei den professoralen Reglern wird der D-Wert aus dem Errorsignal gebildet (so wie auch der P- und I-Anteil). Bei dem Industrieregler hingegen wird er direkt aus der Prozess-Ausgangsvariablen gebildet. Jeder Student, der einen Regler bauen muß, muß erst mal diese Erfahrung machen, daß es so nicht geht wie es überall gelehrt wird. (und auch NI hat sich der professoralen Richtung angeschlossen)
Was ich bei Dir unbedingt als erstes ändern würde: Flußmessung nicht mit Impulszählung, sondern auf Basis von Periodendauermessung dieser Impulse. Damit könntes Du z.B eine Abtastrate von 10 ms statt 1 s erzielen, und damit ließe sich vernünftig regeln.