PID Regler gibt nur die Grenzen des Outputs aus. (An und Aus)
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!
11.01.2016, 15:09 (Dieser Beitrag wurde zuletzt bearbeitet: 11.01.2016 15:21 von ThoMey.)
PID Regler gibt nur die Grenzen des Outputs aus. (An und Aus)
Hallo zusammen,
ich habe ein kleines Problem mit einem PID Regler. Und zwar dreht es sich um Folgendes:
Einer unserer Schmelzöfen (nur rund 1kg Schmelzvolumen) soll über LabView gesteuert werden. Dazu nehme ich verschiedene Messwerte auf, unter anderem über ein Thermoelement die Temperatur in dem Schmelztiegel, welche die „Prozess Variable“ ist. Diese wird mit 100 Hz gemessen.
Als „Output“ wird über ein NI 9263 Modul eine Spannung zwischen 0 und 10 Volt generiert.
Die Werte für den PID-Regler sind inzwischen zufriedenstellend. Der Ofen regelt also zügig auch bei Eingriffen von außen.
Da ich mir aber ebenfalls die „IST-Werte“ der Spannung anzeigen lasse, ist mir aufgefallen, dass der Ofen letzten Endes nur „AN“ und „AUS“ kennt. LabView sendet nur die Signale 0 Volt und 10 Volt.
Ich habe bereits gelesen, dass bei trägen Systemen (trifft ja auf den Anwendungsfall zu) „der Regler zu schnell ist und in den Output läuft“. Nun kann ich zwar manuell die Outputgrenzen festlegen, und so beispielsweise verhindern, dass der Ofen ausschaltet. Lösen tut es mein Problem dennoch nicht.
Meiner Meinung nach müsste der Regler ja in der Lage sein, eine Spannung von z.B. 5 Volt zu liefern.
Weiß also jemand einen Rat, wie ich das beschriebene Problem lösen kann?
Das .vi hänge ich mal an...
Vielen Dank im Voraus,
ThoMey
Hinzu kommt noch, dass ich mir einen Soll-IST-Vergleich anzeigen lasse. Dabei ist mir aufgefallen, dass der Ist-Wert dem tatsächlichen Wert hinterhinkt. Die Ursache ist mir ebenfalls ein Rätsel...
11.01.2016, 15:56 (Dieser Beitrag wurde zuletzt bearbeitet: 11.01.2016 16:06 von GerdW.)
RE: PID Regler gibt nur die Grenzen des Outputs aus. (An und Aus)
Hallo Thorben,
du verwendest zuviele ExpressVIs und DDT-Drähte…
- Dein "DAQ Assistent" liest 100 Samples mit einer Samplerate von 100Hz -er benötigt also 1s, bis er Werte liefert. Verzögerungen gefallen einem PID überhaupt nicht!
- Von den 100 Samples verwendet der PID nur eines (Coercion Dot!). Welches benutzt er? Ist das sinnvoll?
- Dein "Istwert" für den Vergleich bestimmst du mit einem Median. Ist das sinnvoll?
- Dein PID verwendet die Standardwerte für range (-100…100) und gains (1/0.01/0). Sind die alle (genau so mit ihren aktuellen Werten) sinnvoll?
- Für einige Anzeigen verwendest du die Funktion "WDT:XY Wert lesen", um von 100 gelesenen Samples eines für die Anzeige zu verwenden. Ist das sinnvoll?
Hast du deinen Regelalgorithmus wirklich gut durchdacht?
Zitat:Ich habe bereits gelesen, dass bei trägen Systemen (trifft ja auf den Anwendungsfall zu) „der Regler zu schnell ist und in den Output läuft“. Nun kann ich zwar manuell die Outputgrenzen festlegen, und so beispielsweise verhindern, dass der Ofen ausschaltet. Lösen tut es mein Problem dennoch nicht.
Genau dafür gibt es ja Reglerparameter, die man anpassen kann…
Was bringt es dir, 5V auszugeben, wenn der Ofen nur an/aus (0/10V) versteht?
Wie sieht die Heizungssteuerung aus? Ist dort nur ein einfaches Relais vorhanden oder ein PWM-fähiges SSR (o.ä.)? Oder kann die Heizungssteuerung mit einem 0…10V-Standardsignal umgehen?
RE: PID Regler gibt nur die Grenzen des Outputs aus. (An und Aus)
Wenn ich das VI richtig interpretiere, dann führst du den Analog-Ausgang physikalisch (also per Kabel) wieder auf einen Analog-Eingang, um ihn dann anzuzeigen. Wieso verwendest du nicht direkt den AO-Wert des PID-Reglers?
Da deine Loop (zwecks der DAQ-Assi-Einstellungen) nur mit 1 Sekunde Loop-Time läuft, sind natürlich zeitliche Unterschiede zwischen dem Ausgang des PID und der "Rückmessung" zu erklären.
Gruß, Jens
Wer die erhabene Weisheit der Mathematik tadelt, nährt sich von Verwirrung. (Leonardo da Vinci)
!! BITTE !! stellt mir keine Fragen über PM, dafür ist das Forum da - andere haben vielleicht auch Interesse an der Antwort!
RE: PID Regler gibt nur die Grenzen des Outputs aus. (An und Aus)
Hallo Gerd, vielen Dank für deine schnelle Antwort. Ich bin jetzt eher noch Anfänger, verstehe also nicht alles von deinen Vorschlägen/ Anregungen. Also Stück für Stück:
Zitat:du verwendest zuviele ExpressVIs und DDT-Drähte…
Wie kann ich das denn vermeiden?
Zitat:- Dein "DAQ Assistent" liest 100 Samples mit einer Samplerate von 100Hz -er benötigt also 1s, bis er Werte liefert. Verzögerungen gefallen einem PID überhaupt nicht!
Wie kann ich denn die Zeit verkürzen, die für das Lesen eines Wertes benötigt wird? Also wenn ich mit 100 Hz oder mit 20 Hz messe kommt es doch aufs selbe heraus. Es braucht immer eine Sekunde-oder habe ich da einen Denkfehler?
Zitat:Von den 100 Samples verwendet der PID nur eines (Coercion Dot!). Welches benutzt er? Ist das sinnvoll?
Welches Sample er letzten Endes nutzt weiß ich nicht. Es ist aber einen Versuch wert, die Frequenz mal zu ändern.
Zitat:Dein "Istwert" für den Vergleich bestimmst du mit einem Median. Ist das sinnvoll?
Dass ich den Ist-Wert mit einem Median bestimme, kommt aus einem Tutorial bei youtube, dessen Quelle mir vertrauenswürdig erschien, auch wenn der Anwendungsfall ein anderer ist.
Hier mal der Link dazu: https://www.youtube.com/watch?v=YnFlpxKVMTQ
Nicht so gut?
Zitat:Dein PID verwendet die Standardwerte für range (-100…100) und gains (1/0.01/0). Sind die alle (genau so mit ihren aktuellen Werten) sinnvoll?
Der PID verwendet tatsächlich nicht die Standardwerte. Im angehängten Screenshot sind die Werte, mit denen der Regler arbeitet, zu sehen: Outputrange zwischen 0 und 10; (Kc=19,5; Ti=0,05; Td=0,04)
Zitat:Für einige Anzeigen verwendest du die Funktion "WDT:XY Wert lesen", um von 100 gelesenen Samples eines für die Anzeige zu verwenden. Ist das sinnvoll
Die Funktion „WDT:XY Wert lesen“ habe ich bislang immer verwendet und keine schlechten Erfahrungen mit gemacht. Was könnte ich denn da noch verwenden?
Zitat:Wie sieht die Heizungssteuerung aus? Ist dort nur ein einfaches Relais vorhanden oder ein PWM-fähiges SSR (o.ä.)? Oder kann die Heizungssteuerung mit einem 0…10V-Standardsignal umgehen?
Der Ofen bzw. die Heizungssteuerung kann definitiv mit einem 0-10V Signal umgehen.
Vielen Dank für eure Hilfe!
Gruß, Thorben.
11.01.2016, 16:59 (Dieser Beitrag wurde zuletzt bearbeitet: 11.01.2016 17:00 von GerdW.)
RE: PID Regler gibt nur die Grenzen des Outputs aus. (An und Aus)
Hallo Thorben,
Zitat:Wie kann ich das denn vermeiden?
Indem du ExpressVIs vermeidest…
Schau dir die Links in meiner Signatur an.
Grundsätzlich: man sollte wissen, mit welchen Daten man hantiert. Bei einem DDT-Draht weiß man das nur selten…
Zitat:Wie kann ich denn die Zeit verkürzen, die für das Lesen eines Wertes benötigt wird? … Es braucht immer eine Sekunde-oder habe ich da einen Denkfehler?
Ja, du hast einen Denkfehler.
Zeit = Anzahl Samples / Samplerate.
Zitat:Welches Sample er letzten Endes nutzt weiß ich nicht. Es ist aber einen Versuch wert, die Frequenz mal zu ändern.
Du solltest aber wissen, welches Sample benutzt wird!
Und ändern solltest du sowohl die Frequenz als auch die Sampleanzahl…
Zitat:Dass ich den Ist-Wert mit einem Median bestimme
Der Median ist der mittlere Wert einer sortierten Menge, nicht der Mittelwert…
Zitat:Die Funktion „WDT:XY Wert lesen“ habe ich bislang immer verwendet und keine schlechten Erfahrungen mit gemacht. Was könnte ich denn da noch verwenden?
Solange du mit DDT arbeitest, kannst du den DDT-Draht direkt an deinen Indicator anschließen…
Zitat:Der Ofen bzw. die Heizungssteuerung kann definitiv mit einem 0-10V Signal umgehen.
Und wie geht er damit um? Wie wird das Signal in Heizleistung umgesetzt?
RE: PID Regler gibt nur die Grenzen des Outputs aus. (An und Aus)
Hallo Jens,
die Rückmessung bezog sich auf die Temperaturwerte. Das runde Anzeigeinstrument (unten links im Screenshot) zeigt den Temperaturwert mit einer zeitlichen Verzögerung gegenüber dem Wert, der in dem Diagramm zu sehen ist. Und das, obwohl es sich um den identischen Wert aus der gleichen Quelle handelt.
Ich beziehe meine Information über den IST-Wert Strom und IST-Wert Spannung (die beiden anderen Diagramme) von der Platine des Ofens. Das war ein Schritt, den ich vor der Regelung in Angriff genommen hatte und existiert deshalb noch. Durch diese Art den Messwert zu lesen habe ich noch die Möglichkeit offen, direkt und ohne Umrechnung an den Wert der Leistung zu kommen.
Gruß, Thorben
12.01.2016, 13:26 (Dieser Beitrag wurde zuletzt bearbeitet: 12.01.2016 13:29 von GerdW.)
RE: PID Regler gibt nur die Grenzen des Outputs aus. (An und Aus)
Hallo Thorben,
Zitat:Das runde Anzeigeinstrument (unten links im Screenshot) zeigt den Temperaturwert mit einer zeitlichen Verzögerung gegenüber dem Wert, der in dem Diagramm zu sehen ist. Und das, obwohl es sich um den identischen Wert aus der gleichen Quelle handelt.
Das Rundinstrument zeigt einmal deine Sollwertvorgabe und einmal den Median von 100 Samples, die mit 100S/s Samplerate gemessen wurden. Wie kommst du auf die Aussage "aus der gleichen Quelle"?
Nächstes Problem, welches sich aus der Verwendung von ExpressVIs und DDT ergibt:
Du verwendest hier den Point-by-Point-Median mit einer Size von 100 Samples und schließt den an einen DDT-Draht an. Dummerweise ergibt das einen Coercion Dot - und die haben eine Bedeutung! Kennst du dessen Bedeutung? Weißt du um die Auswirkungen eines Coercion Dots, insbesondere in diesem Fall? Zum Glück findest du das alles in der LabVIEW-Hilfe…
Und ja, das ist die Ursache für deine "Verzögerung", die du bei dieser Anzeige beobachtest!
RE: PID Regler gibt nur die Grenzen des Outputs aus. (An und Aus)
Hallo zusammen,
erst einmal vielen Dank für eure Hilfe. Mein Regler läuft und regelt wie gewünscht. Zum Ziel hat letzten Endes geführt, dass ich statt der anfänglichen 100 Samples (bei einer Messrate von 100 Hz) jetzt nur noch 2 Samples lesen lasse. Der Regler ist jetzt nicht mehr träge und regelt zügig und sehr genau. (Falls jemanden die Werte für P, I und D-Anteil speziell für eine Schmelze interessieren-kontaktiert mich gerne.)
Da ich die Werte der Temperatur (ist ja meine Prozessvariable) jedoch zum Auswerten auch dokumentiere, habe ich nun das Problem, dass ich pro Sekunde nur zwei Messwerte dokumentieren kann. Ich benötige jedoch eine hohe Frequenz (100 Hz sind gewünscht) zum Schreiben der Werrte!
Daher habe ich das Signal des Thermoelements gesplittet. In der Messbox (NI 9211) kann ich die Drahtenden zwar noch mit einem anderen Kanal verbinden, jedoch ist die Samplerate und Sampleanzahl durch die Regelung bereits festgelegt.
Nun zur Frage: Ist es möglich, auf zwei verschiedenen Kanälen von ein und derselben Messbox eine unterschiedliche Anzahl an Samples lesen zu lassen?
Oder muss ich eine weitere Messbox zur Messung der Temperatur mit 100 Samples bereitstellen?
Thorben
18.01.2016, 09:41 (Dieser Beitrag wurde zuletzt bearbeitet: 18.01.2016 11:45 von jg.)
RE: PID Regler gibt nur die Grenzen des Outputs aus. (An und Aus)
Die Lösung ist IMHO ganz einfach:
Lies mit 100 Hz immer 50 Samples ein und speichere Sie ab. Davon nimmst du den ersten/letzten/Median oder Mittelwert als Ist-Wert für deinen PID.
RE: PID Regler gibt nur die Grenzen des Outputs aus. (An und Aus)
Hallo Thorben,
Zitat:habe ich nun das Problem, dass ich pro Sekunde nur zwei Messwerte dokumentieren kann. Ich benötige jedoch eine hohe Frequenz (100 Hz sind gewünscht) zum Schreiben der Werrte!
Dann lese die Temperatur doch einfach mit 100Hz ein! Dem PID-Regler kannst du doch bequem weniger Werte davon mitteilen ("Dezimieren" nennt sich der Vorgang)!
- Zum Dezimieren bietet sich z.B. ein Mittelwert an ( finde ich besser als den bisher verwendeten Median). Oder man nimmt einfach nur jeden x-ten Wert…
- Ich würde die Temperatur mit 100Hz einlesen und je 10Samples abfragen (= Iterationszeit von 0.1s). Alle 10 gelesenen Samples werden gespeichert, der Mittelwert davon geht zum PID als Istwert…