TIA Ungenaueigkeit PID-Regelbaustein S7-1200

Stromtom

Level-1
Beiträge
38
Reaktionspunkte
0
Zuviel Werbung?
-> Hier kostenlos registrieren
Hallo,

Ich bin momentan ein wenig ratlos bzw. steh ich aufm Schlauch was die Parametrierung vom PID- Regelbaustein PID_TEMP (V1.1) der S7-1200 betrifft. Habe leider noch nie was damit gemacht und keine Erfahrung damit.

Folgender Fall:

Ich möchte einen Temperaturregler für einen Lagertank verwirklichen. In Verwendung ist eine S7-1200 und der PID_TEMP (FB1132) Baustein. Aufgerufen wird dieser über einen Weckalarm OB (10ms).
Der Lagertank hat ein Volumen von 100l und ist dauerhaft zu 75% gefüllt (kein Austausch des Inhalts). Geheizt wird dieser über eine el. Heizmatte unter der Tankisolation, gekühlt über eine Kühlschlange direkt im Tank.
Den Tank um 0,1°C aufzuheizen dauert ca. 5 Minuten. Den Tank um 0,1°C abzukühlen ca. 1 Minute. Die eingestellte Solltemperatur sind 22,0°C. Diese sollten +/- 0,5° genau gehalten werden.
Ein Nachheizen bzw. Nachkühlen findet nicht statt da sobald die Heizung/Kühlwasserpumpe aus sind die Temperaturen nicht mehr weiter steigen bzw. fallen.

In meinem Fall schaukelt die Ist-Temperatur ständig zwischen 23,3 °C und 19,6° C. Bei erreichen der Solltemperatur (22°C) gibt der PID Regler weiterhin einen Heiz bzw. Kühlbefehl ab und überfährt den Sollwert.
Erst bei erreichen der 23,3° bzw. 19,6°C gibt der Baustein für kurze Zeit keinen Befehl mehr ab. Dann "invertiert" er und regelt die Temperatur in die andere Richtung.
Geht dann immer so hin und her...(23,3...19,6°C...23,3....19,6°)
Anfangs habe ich gemeint es liegt an den Zeiten der PWM-Begrenzung in den PID Parametern. Ich habe damit schon gespielt, daß hat aber nichts gebracht.
Erstoptimierung Heizen/Kühlen und Nachoptimierung vom Regelbaustein wurden von mir bereits mehrfach durchgeführt. Angeblich erfolgreich bzw.ohne Fehlermeldung.

Hat jemand einen guten Rat für mich? Bin schon am überlegen ob ich nicht auf einen Jumo Regler umbauen soll.

Anbei noch einen Screenshot von den PID-Parametern (Einschaltzeit Kühlen ist mittlerweile auf 240s geändert.)

Anhang anzeigen PID-Parameter.pdf

Gruß,
Thomas
 
Auf den ersten Blick sehe ich eine scheinbare Diskrepanz zwischen Deinen Angaben und Deinen Reglerparametern:
Wenn die Kühlung 0,1° pro Minute schafft und Du eine Mindesteinschaltzeit von 5 Minuten vorgibst...
Was für Schaltelemente hast Du denn für die Heizung/Kühlung? Welcher Art ist die Kühlung?
Das Verhalten des Ausgangs scheint mir auf den ersten Blick normal. Du hast einen PI-Regler konfiguriert. Dessen Ausgang wird beim ersten Aufheizen auf jeden Fall das beschriebene Verhalten zeigen. Um eine manuelle Korrektur der Regelparameter wirst Du nicht herumkommen. Ohne D-Anteil kommst Du vermutlich in ein sich selbst verstärkendes Pendeln.
Ob ein Jumo das aus dem Stand hinkriegt wage ich auch zu bezweifeln.

PS: Leider kann ich Dir nicht wirklich unter die Arme greifen, weil ich nix mit den Möglichkeiten der S7 zu tun habe.
Die PWM-Begrenzungen dürften vor allem für die SChaltelemente wichtig sein. Eine Kühlpunpe im Sekundentakt zu schalten ist wohl wenig sinnvoll.
Die Proportionalverstärkung auf beiden Seiten scheint mir jedenfalls etwas niedrig angesetzt. Wenn ich mich nicht irre, bringen erst 100° Differenz den Reglerausgang auf 100%. Will heißen, Du regelst komplett über den I-Anteil.
 
Zuletzt bearbeitet:
Zuviel Werbung?
-> Hier kostenlos registrieren
Weckalarm OB (10ms) <---> Abtastzeit PID-Algorithmus 1s ==> Beisst sich das nicht ?

Beim S7 300/400 Classik (in unserer Anwendung) wurde der Regler im 100ms OB aufgerufen und in den Parametern auch diese 100ms angegeben.
 
Die Mindesteinschaltzeit vom Kühlen habe ich heute Vormittag auf 180s runter gestellt. Dürfte also maximal eine Fehler von 0,3 °C ausmachen ( Bei 300s sinds 0,5°C) Denke ich zumindest:confused:
Hat aber leider nicht viel gebracht.
Bei der Heizmatte handelt es sich um eine Silikon-Heizmatte für 24VDC. Diese wird direkt vom Reglerausgang über ein Relais angesteuert.
Die Kühlschleife (befindet sich direkt im zu kühlendem Medium) wird von Kühlwasser (+10°C) durchströmt. Der Reglerausgang schaltet über ein Relais die Pumpe vom Kühlwasser.

Welche PID-Parameter soll ich versuchsweise mal verstellen bzw. was bringt was ?:oops:
 
Zuviel Werbung?
-> Hier kostenlos registrieren
Also so wie du deine Aufgabenstellung beschreibst ist es eigentlich Blödsinn überhaupt einen PID Regler zu verwenden.
Das ist ein ganz ordinärer 3-Punkt Regler, also spricht 3-4 Vergleicher, büschen Setzen Rücksetzen und fertich.
 
> Der Lagertank hat ein Volumen von 100l und ist dauerhaft zu 75% gefüllt
wird dort drin eigentlich gerührt? oder ist die Temperatur oben genau so wie ganz unten ?

> ein ganz ordinärer 3-Punkt Regler
@MSB
gibt es einen, sagen wir mal, Selbstlernalgorithmus ? (auto-optimizer) ;)
 
Zuviel Werbung?
-> Hier kostenlos registrieren
Wie ist das eigentlich mit den Störgrößen?
Wodurch wird der Tank aus einem Gleichgewicht gebracht?
Von der Auslegung her scheinst Du mehr Kühl- als Heizleistung zu haben.
 
Mir sehen die Screenshots nicht so aus, als ob die Parameter von der Optimierung übernommen wurden, dafür sind die berechneten Werte zu glatt, und außerdem gleiche Parameter für Heizen und Kühlen sind nach deinen Angaben eher unwahrscheinlich.
Hast du vielleicht die Bausteinparameter im Programm mit Konstanten beschaltet?

Was ich festgestellt habe, berechnet die Optimierung die Reglerparameter so, dass es zu einem leicht gedämpften Überschwingen kommt. Prinzipiell wird dadurch meistens der Sollwert schneller erreicht, wenn allerdings wie in deinem Fall das Abkühlen länger dauert, dann ist es ggf. sinnvoller, auf den Sollwert ohne Überschwingen einzuregeln. Theoretisch würde dann überhaupt kein Kühlaggregat benötigt.

Wenn du schon Werte aufnimmst, dann auch die Parameter die zu einer Temperaturstrecke gehören. D.h. Totzeit, Zeitkonstante und die Streckenverstärkung.
 
Zur Mindestschaltzeit:
Für die Heizung würde ich wohl eine Mindesteinschaltzeit von 10s und eine Mindestausschaltzeit von 5s annehmen. Wenn bei der Kühlung die Pumpe geschaltet wird, würde ich dabei ~60/30s als Anfangsannahme hernehmen. Bei einem Ventil die Zeiten wie bei der Heizung.

Kein Nachheizen/Nachkühlen finde ich sehr blauäugig. Nachheizen ist der Effekt des Wärmeausgleichs der in der Heizmatte und Behälterwandung gespeicherten Wärme. Nachkühlen der Effekt des Wärmeausgleichs von dem jetzt stehenden, aber noch kalten Kühlmedium. Beide Effekte kannst Du garnicht verhindern.
 
Zuviel Werbung?
-> Hier kostenlos registrieren
Zitat von Senator42

Der Lagertank hat ein Volumen von 100l und ist dauerhaft zu 75% gefüllt
wird dort drin eigentlich gerührt? oder ist die Temperatur oben genau so wie ganz unten ?


Nein, der Lagertank wird nicht gerührt. Der Temperaturfühler ist über eine Tauchhülse seitlich in mittlerer höhe in den Tank eingebracht. Es wird also mit Sicherheit im Tank eine Temperaturschichtung stattfinden.


Zitat von weißnix_

Wie ist das eigentlich mit den Störgrößen?
Wodurch wird der Tank aus einem Gleichgewicht gebracht?
Von der Auslegung her scheinst Du mehr Kühl- als Heizleistung zu haben.

Störgrößen sind in meinem Fall die Raumtemperatur (liegt meistens um die 23-25°C) und da es sich um einen Gärtank handelt die entstehende Wärme bei der Gärung.
Die Kühlleistung ist bei mir wesentlich größer als die Heizleistung. Tank wird für überwiegend zwei Solltemperaturbereiche genutzt 20-24°C oder 8-11°C je nach Programm bzw. Inhalt vom Tank.


Ich hab mich mal schlau gemacht wie es bei anderen vergleichbaren Tanks gemacht wird. Es wir häufig nur ein Dreipunktregler wie von MSB bereits angesprochen verwendet.
Werde wohl diese Richtung weiter verfolgen.
 
In dem Fall würde ich schon bei PID bleiben, jedoch zwei komplett getrennte Regler aufsetzen.
Zum einen benötigst Du zum anstoßen der Gärung eine leichte Heizung. Wenn der Gärprozess läuft wird auf kühlen umgeschaltet. Dadurch vermeidest Du das Pendeln zwischen Heizen und kühlen, was Energie kostet. Zum anderen lassen sich zwei einzelne Regler besser optimieren als ein Kombiregler.
Natürlich geht auch der Dreipunktregler - alles hängt an der geforderten Genauigkeit.
 
@Stromtom
weißnix weiss anscheinend doch. Ich finde, er wei"ß"t schon auf die wesentlichen Probleme hin ...

... Wenn die Kühlung 0,1° pro Minute schafft und Du eine Mindesteinschaltzeit von 5 Minuten vorgibst ...
... Du hast einen PI-Regler konfiguriert. ...
... Ohne D-Anteil kommst Du vermutlich in ein sich selbst verstärkendes Pendeln. ...
... Wodurch wird der Tank aus einem Gleichgewicht gebracht? ...
Was macht denn Dein Tankinhalt, wenn Du weder kühlst noch heizt? Es liest sich so, als würde der Tank durch Deinen Regler aus dem Gleichgewicht gebracht werden.
Ist ja auch kein Wunder, wenn man den D-Anteil schlabbert und dem Regler durch eine Mindesteinschaltzeit von 5 Minuten die Handschellen anlegt.
Leider werden Regler bevorzugt so erklärt, dass man hinterher den I-Anteil für den wichtigsten und den D-Anteil für den unwichtigsten, wenn nicht sogar für überflüssig hält.
Schon beim Lesen Deines Problems war mir klar, dass der D-Anteil nicht passt. weißnix untertreibt m.E., wenn er schreibt, "Ohne D-Anteil kommst Du vermutlich in ein sich selbst verstärkendes Pendeln" - ich möchte behaupten, nicht "vermutlich", sondern mit Sicherheit!
Wenn Du - aus welchen Gründen auch immer - so lange Mindesteinschaltzeiten benötigst, hätte ich Bedenken, ob ein PID-Regler das Mittel der Wahl sein kann/muss.
Warum sind Kühlen UND Heizen erforderlich? Um jahreszeitliche Schwankungen der AussenTemperatur ausgleichen zu können und weil die SollTemperatur des Tankinhalts in der Grössenordnung der UmgebungsTemperatur liegt? Ich vermute mal, dass der Regler über längere Perioden mit "nur-kühlen und pausieren" bzw. mit "nur-heizen und pausieren" auskommen würde, wenn nicht ein aufschaukelnder Regler sich ständig selbst ausbremsen müsste.

Aha, inzwischen sind schon einige Fragen beantwortet worden ... sie waren für mich nicht sichtbar, während ich schrieb ... musst sie mir nicht noch mal erklären ;o)
 
Zuletzt bearbeitet:
@Onkel Dagobert

Verstehe ich das richtig? Für eine solche Temperaturregelung predigt ihr die Verwendung des D-Anteils?
Heinileini, kannst du deine recht eindringliche Behauptung auch irgendwie erklären?

Ja genau - Du hast das absolut richtig verstanden - und auch Du magst mir das anscheinend nicht so recht glauben.
Nein, ich fürchte, das kann ich nicht erklären. Das gehört in die Kategorie "Das kann man nicht beschreiben - das muss man erleben!".
Aber ich freue mich, dass Du meine Behauptung als "recht eindringlich" empfunden hast - denn genau das war mein Anliegen.
Ich habe über die Jahre (seit ca. 1974) immer wieder genau diese Erfahrung gemacht, dass nämlich der D-Anteil bzw. seine Auswirkung völlig falsch (meine ganz persönliche Meinung - zugegeben) eingeschätzt und (warum eigentlich?) sehr gerne ignoriert wird.
Mein "AhaErlebnis" hatte ich damals durch die Tietze-Schenk-Interpretation des PID-Reglers und eine recht anschauliche Anwendung, mit der ich für das Mathematische Institut der RUB (Prof. Dr. Günter Ewald) zu tun hatte.
 
Hallo Heinileini,

zu deinen interessanten Ausführungen fallen mir sehr viele Fragen ein. Die Frage zu den unterschiedlichen Interpretationen eines PID-Reglers verkneife ich mir, das würde sicherlich zu weit führen. Ich möchte deine unfassende Hilfsbereitschaft schließlich auch nicht überstrapazieren. Aber vielleicht könntest du das angesprochene "anschauliche Beispiel" mal ganz kurz erläutern?
 
Zuletzt bearbeitet:
Zuviel Werbung?
-> Hier kostenlos registrieren
Die Kühlleistung ist bei mir wesentlich größer als die Heizleistung.
Somit 2x verschiedenes Verhalten der Regelstrecken

.. zwei Solltemperaturbereiche genutzt 20-24°C oder 8-11°C je nach Programm bzw. Inhalt vom Tank...
Wie ist das Streckenverhalten bei den unterschiedlichen Temperaturbereichen?
Evtl. verschiedene Parametersätze sinnvoll?

...jedoch zwei komplett getrennte Regler aufsetzen...
Reglersequenz wäre jetzt auch mein Ansatz - ggfs. sogar unterschiedliche für die jeweiligen Programme (falls nötig/sinnvoll).

Über das Streckenverhalten ist bislang wenig Info gekommen - ein entsprechender D-Anteil (der jeweiligen Regler jeweils anders) könnte idT notwendig sein.
 
Zuletzt bearbeitet:
der P Anteil regelt : ( Soll-Ist ) * Verstärkung; Der Istwert wird dabei immer "daneben" liegen.
der D Anteil : macht am Anfang das ganze etwas "schneller".
der I Anteil : regelt die fehlende Differenz am Ende ganz aus (wenns gut läuft)

der D Anteil hat nichts mit komplexen Regelstrecken zu tun.

zum schwingen bekommt man das ganze indem der P-Anteil zu hoch ist, warscheinlich auch beim D und I
Ein Allheilmittelrezept habe ich jetzt auch nicht.
Bisher immer so gemacht:
- D, I auf 0 (also abgeschaltet)
- P auf 1,5,10 bis es schwingt , dann runter
- dann D dazu
- dann I dazu

Die Idee für Heizen und Kühlen separate Regler zu verwenden, damit kann ich mich auch anfreunden.
 
der D Anteil : macht am Anfang das ganze etwas "schneller".

Der D-Anteil wirkt schnellen Änderungen entgegen! D.h. sinkt in einem Heizregelkreis schnell die Isttemperatur, wird der D-Anteil schnell Heizleistung zugeben.
Steigt die Temperatur, nimmt der D-Anteil Heizleistung weg. Dadurch reduziert sich bei richtiger Anwendung das Überschwingen bei maßvoller Verlängerung der Ausregelzeit.

Für die Anwendung kommt in meinen Augen der PID nur sinnvoll zum Einsatz, wenn die geforderte Genauigkeit tatsächlich kein Scherz ist. In der realen Anwendung halte ich den Zwei (drei)-Punktregler für ausreichend.
 
Zuletzt bearbeitet:
Zurück
Oben