LabVIEWForum.de
PID Frage - Druckversion

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

Seiten: 1 2


PID Frage - gottfried - 25.11.2008 18:45

Hallo

das ist einfach der GeneralPIDsimulator. Wieso geht die Prozessvariable zuerst nach unten? Der Output steigt doch? Meine Applikation mach dasselbe, das stört aber.

Das Problem ist nicht sosehr das es beim Starten den "Schlenkerer" macht, vielmehr stört der bei einem Restart ganz gealtig. Im wesentlichen zielt daher die Frage auch nach dem "Aufheben" des Zustandes eines VIs für einen Restart des Programmes.

Bitte um Nachhilfe

Danke

Gottfried
Version 8.6


PID Frage - kpa - 26.11.2008 09:16

Hallo,

wenn Du VI's in einer früheren Version hochlädst können mehr Leute antworten.

In Version 8.5 könnt ich mir Dein VI anschauen.

kpa


PID Frage - chrissyPu - 26.11.2008 09:52

Hi,

hab die Toolbox nicht, daher hilft mir das VI auch nicht, aber... ich könnte mir vorstellen, dass das ganze was mit Anfangsbedingungen zu tun hat, sprich Dein I-Glied im PID irgendwas komisches mit den nicht-definierten Werten für t<0 macht... Vielleicht lässt sich das mit dem D-Anteil ein bisschen pushen... Insgesamt sieht die Antwort eh ein bisschen merkwürdig aus, wenn ich das richtig verstehe und output der tatsächliche Output des Prozesses ist und die Process variable die Stellgröße... Output müsste nämlich bei funktionierendem Regler in Höhe der Stellgröße sein und nicht irgendwo drunter...

Wenn es andersrum ist und output der Ausgang des Reglers (sprich Stellgröße) ist und Process Variable das, was aus dem Prozess raus kommt musst Du Dir Deinen Prozess nochmal anschauen, wie der so ist und dann die Reglerparameter entsprechend abstimmen... Dann hängts nämlich nicht wirklich am Regler sondern an der schlechten Anpassung auf die Regelstrecke... Stichwort zum Suchen wäre Ziegler-Nicholas für einfache Fälle des Prozesses...

Grüße,

ch


PID Frage - Lucki - 26.11.2008 13:44

Da ich mich viel mit Regelungen beschäftigt habe, fühle mich eigentlich zur Beantwortung der Frage aufgerufen. Habe aber den Toolkit nicht. Wenn Dir niemand befriedigend antwortet und Dir das die Mühe wert ist, dann müßtest Du mal die Blockschaltbilder der beiden Sub-VIs als Graphiken posten, dann könnte ich evtl. helfen.


PID Frage - BerndDasBrot - 26.11.2008 16:17

' schrieb:Hallo

das ist einfach der GeneralPIDsimulator. Wieso geht die Prozessvariable zuerst nach unten? Der Output steigt doch? Meine Applikation mach dasselbe, das stört aber.

Das Problem ist nicht sosehr das es beim Starten den "Schlenkerer" macht, vielmehr stört der bei einem Restart ganz gealtig. Im wesentlichen zielt daher die Frage auch nach dem "Aufheben" des Zustandes eines VIs für einen Restart des Programmes.

Bitte um Nachhilfe

Danke

Gottfried
Version 8.6

Hallo Gottfried

Im Prinzip geht es darum, dass der Stellwert (Output) am Anfang zu tief ist, deshalb sinkt der Istwert (Prozessvariable). Der PID-Regler "merkt" das und erhöht danach den Stellwert solange, bis der Istwert OK ist.

Meist wird dann ein höherer Startwert für den Output verwendet, damit es dieses Ausbrechen nicht gibt.

Zu Beginn der Regelung sollte also der Output nicht 0 sein!

Gruss, BDB


PID Frage - gottfried - 27.11.2008 11:21

' schrieb:Hallo Gottfried

Im Prinzip geht es darum, dass der Stellwert (Output) am Anfang zu tief ist, deshalb sinkt der Istwert (Prozessvariable). Der PID-Regler "merkt" das und erhöht danach den Stellwert solange, bis der Istwert OK ist.

Meist wird dann ein höherer Startwert für den Output verwendet, damit es dieses Ausbrechen nicht gibt.

Zu Beginn der Regelung sollte also der Output nicht 0 sein!

Gruss, BDB

Ich finde aber nirgends eine Möglichkeit den Output (Stellvariable) zu initialisieren....

Bitte um Hilfe

Gottfried


PID Frage - BerndDasBrot - 27.11.2008 13:50

Hallo Gottfried

Ich kann Dein VI nicht lesen, wegen der Version.

Versuche doch mal verschieden Werte für den D-Faktor (derivative Time). Der Regler wird dadurch sensibler und reagiert schneller. Der Nachteil ist, dass die Neigung zum Schwingen erhöht wird, was nicht erwünscht ist.
Wenn es zu stark schwingt, muss ein kleinerer D-Faktor gewählt werden.

Die Faktoren P und I würde ich erstmal nicht verändern.

Du musst eben die Faktoren P, I und D an Dein Regelsystem anpassen, dass ist etwas mühsam.

Versuch das mal und gib' Bescheid.

Gruss, BDB


PID Frage - Bruno - 01.12.2008 10:54

Hallo Gottfried,
IMHO hast Du einen Regler mit sehr großem I Anteil, der auch zum Schwingen neigt, wenn Du das Beispiel weiter laufen lässt. Also P etwas rauf, nicht zuviel sonnst wird es instabiel, max. 0,5 oder so. I kleiner, z.B. 0,08.
Außerdem ist Dein Regler bei einer Stellgröße von ca. 32 ausgeregelt. Du hast es viel einfacher, wenn Du von Deiner Stellgröße den Offset abziehst, also Dein Regler bei MV = 0 ausgeregelt ist.
Ich hoffe ich konnte Dir helfen,
Gruß
Bruno


PID Frage - Lucki - 01.12.2008 13:47

' schrieb:IMHO hast Du einen Regler mit sehr großem I Anteil, der auch zum Schwingen neigt, wenn Du das Beispiel weiter laufen lässt.
Das sieht aber gar nicht nach Schwingneigung aus, denn man sieht ja, wie sich der Istwert im späteren Verlauf ohne jedes Überschwingen dem Sollwert nähert. Einen solchen Verdacht, daß der Istwert auf einmal wieder zu zappeln beginen, halte ich nicht für begründbar. Und wenn es so wäre, dann wäre das Gottfried wohl als Erstem aufgefallen und er hätte es hier gesagt.
Was wesentlich zur Klärung beitragen könnte: Dieses Ausschlagen in die falsche Richtung, tritt das nur beim Einschalten auf, oder hat man das bei jedem Sollwertsprung? Das mal zu untersuchen dürfte doch kein Problem sein.


PID Frage - rolfk - 07.12.2008 22:19

' schrieb:Ich finde aber nirgends eine Möglichkeit den Output (Stellvariable) zu initialisieren....

Bitte um Hilfe

Gottfried

Schon mal das PID VI genauer angeschaut? Da hat es einen Boolean Eingang "reinitilize (F)". Der ist default ausgeschaltet. Sollte man aber beim ersten Aufruf mit True verbinden um den internen Speicher mit der Prozess Variablen zu initialisieren. Ansonsten nimmt er den letzten abgespeicherten Wert als Startwert. Das ist beim ersten Mal laufen lassen halt immer Null.

Rolf Kalbermatter