Wenn dein Problem oder deine Frage geklärt worden ist, markiere den Beitrag als "Lösung",
indem du auf den "Lösung" Button rechts unter dem entsprechenden Beitrag klickst. Vielen Dank!
25.11.2008, 18:45 (Dieser Beitrag wurde zuletzt bearbeitet: 25.11.2008 19:33 von gottfried.)
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.
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...
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.
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!
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....
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.
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
Labview 2009 englisch / RT / FPGA / Control Design und Simulation
cRIO Diadem-Forum.de
01.12.2008, 13:47 (Dieser Beitrag wurde zuletzt bearbeitet: 01.12.2008 13:47 von Lucki.)
' 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.
07.12.2008, 22:19 (Dieser Beitrag wurde zuletzt bearbeitet: 07.12.2008 22:20 von rolfk.)
' 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.