LabVIEWForum.de
PID Regelung Labview - Druckversion

+- LabVIEWForum.de (https://www.labviewforum.de)
+-- Forum: LabVIEW (/Forum-LabVIEW)
+--- Forum: LabVIEW Allgemein (/Forum-LabVIEW-Allgemein)
+--- Thema: PID Regelung Labview (/Thread-PID-Regelung-Labview)



PID Regelung Labview - Gesetzt - 10.07.2017 13:11

Hallo,

Ich möchte gerne versuchen über das simple_PID.vi von Labview eine Temperaturregelung zu realisieren. Die Temperatur wird dabei über den Druck im Behälter geregelt, der über Magnetventile eingestellt wird. Praktisch gebe ich einen Temperatursollwert vor und messe die Temperatur im Behälter. Daraus erhalte ich meinen Regeldifferenz. Aus dieser Regeldifferenz muss ich nun entscheiden wie stark ich den Druck ändern soll.

Genau hier fängt das Problem an. Wenn ich das simple_PID.vi richtig verstanden habe, so gebe ich dort Kp, Ki, Kd vor. Diese Parameter würde ich versuchen aus einer Sprungantwort abzuleiten. Ich kann den Druck im Bereich von 200-800 mbar vorgeben. Hier mein Verständnisproblem: Angenommen ich habe eine Regelabweichung von 5 Kelvin. Daraus würde mir mein Regler nun eine Stellgröße berechnen. Wie muss ich nun vorgehen um das ganze in einen Druck umzuwandeln(bzw. in die zu ändernde Druckdifferenz)? Ich weiß, dass wenn die Temperatur zu hoch ist, ich den Druck senken muss und andersherum.

Mit freundlichen Grüßen

Gesetzt


RE: PID Regelung Labview - GerdW - 10.07.2017 13:20

Hallo Gesetzt,

Zitat:Daraus würde mir mein Regler nun eine Stellgröße berechnen. Wie muss ich nun vorgehen um das ganze in einen Druck umzuwandeln(bzw. in die zu ändernde Druckdifferenz)?
Dafür gibt es (mindestens) zwei Wege:
1. Du parametrierst deinen PID-Regler so, dass er dir direkt den Stellwert ausgibt, in deinem Fall einen Druckwert zwischen 200 und 800mbar.
2. Du parametrierst deinen PID-Regler so, dass er dir "nur" 0-100% (oder -100…100% oder 0…10V oder irgendein anderes Standardsignal) ausgibst und rechnest dann dieses Standardsignal selbst in einen Stellwert um. Beispiel: 0%=200mbar, 100%=800mbar und dazwischen linear interpolieren…

Zitat:das simple_PID.vi von Labview
Sowas gibt es schon seit 10 Jahren nicht mehr! Die heißen jetzt "PID.vi" oder "PID_Advanced.vi"…

Also entweder dein "SimplePID" mal hier anhängen - oder die VIs aus dem PID-Toolkit verwenden. Die bieten nämlich schon sowas wie Stellbereichsbegrenzung, Sollwertbegrenzung, Funktionen zum Umrechnen von/in EngineeringUnits, etc.!


RE: PID Regelung Labview - Gesetzt - 12.07.2017 11:03

Hallo,

Vielen Dank schonmal. Das PID-Toolkit ist leider nicht vorhanden, würde es erstmal so probieren, falls man damit auch sinnvolle Ergebnisse für nicht allzu schwere Systeme erreichen kann?

Das Programm habe ich angehängt. Ich habe mittlerweile auch eine Sprungantwort aufgenommen. Das System besitzt quasi keine Totzeit. Kann ich daher das T-Summen-Regel anwenden? (https://de.wikipedia.org/wiki/Faustformelverfahren_(Automatisierungstechnik) )

Den Parameter T konnte ich schon bestimmen. Allerdings weiß ich nicht genau, wie ich auf mein Ks komme? Ist das einfach meine stationäre Temperatur? Oder muss ich das noch mit der Sprunghöhe verrechnen?

Mit freundlichen Grüßen

Gesetzt


RE: PID Regelung Labview - GerdW - 12.07.2017 11:32

Hallo Gesetzt,

die Verstärkung Ks ergibt sich aus delta(T)/delta(p): um wieviel ändert sich die Temperatur, wenn sich der Druck um 500mbar ändert?


RE: PID Regelung Labview - Gesetzt - 14.07.2017 10:54

Hallo Gerd,

Dazu noch eine Verständnisfrage. Wenn ich meine Regelabweichung e(t) direkt in K erfasse und mir nun über die Sprungantwort meine Regelparameter berechne, so komme ich für meine Stellgröße u(t) auf eine Einheit von mbar, da [Kp]=mbar/K. Woher weiß ich, dass dies nun mein direkter Stellwert ist, d.h. wenn u(t)=250, dann sende ich eben auch 250 mbar ans Gerät. Mein Problem ist: Ich hätte e(t) ja auch z.B. über einen relativen Fehler definieren können, aber aus der Sprungantwort bekomme ich ja trotzdem das selbe Kp.

Ich hoffe es ist verständlich wo mein Problem liegt. Ich habe ein Problem damit u(t) direkt zu interpretieren. Ist dies mein absoluter Wert? Oder die Differenz zum vorher eingestellten Druck?

Mit freundlichen Grüßen

Gesetzt


RE: PID Regelung Labview - GerdW - 14.07.2017 12:03

Hallo Gesetzt,

Zitat:Ich habe ein Problem damit u(t) direkt zu interpretieren.
Wieso? Der PID-Regler gibt einen Stellwert vor!

Zitat:Ist dies mein absoluter Wert? Oder die Differenz zum vorher eingestellten Druck?
Der PID-Regler gibt einen Stellwert vor - und nicht etwa die nötige Änderung des Stellwertes…

Zitat:Ich hätte e(t) ja auch z.B. über einen relativen Fehler definieren können, aber aus der Sprungantwort bekomme ich ja trotzdem das selbe Kp.
Wenn du e(t) selbst ausrechnest und das dem PID als EIngangsgröße gibst, dann ist der Sollwert eben 0 (Null, weil e ja null werden soll). Und dann bekommst du auch eine relative Stellgröße heraus.
(Sowas nutze ich z.B., wenn neben dem PID noch eine feed-forward-Struktur mitregelt…)