TIA PID-Regler Startprobleme

schwimmer

Level-3
Beiträge
1.051
Reaktionspunkte
308
Zuviel Werbung?
-> Hier kostenlos registrieren
Hallo Forum,
ich habe in Problem mit dem TO_PID_TempContrl.
TIA V17.1 Upd 7
CPU 1515F-2 PN (6ES7 515-2FM02-0AB0) FW2.9
Der PID-Regler ist eingerichtet und optimiert, soweit macht er was er soll und regelt mir meine Temperatur während des Prozesses wie es sein sollte.
Jetzt kommt es sporadisch vor, dass er einmalig sehr stark über das Ziel hinausschießt. Sollwert bei 1.250°C und erst bei 1.350°C fängt er an runter zu regeln, im Normallfall startet er bei 1.248°C.
Der Regler steht ständig im Automatikbetrieb und wenn er inaktiv ist, gebe ich einen Sollwert von 0 und einen Istwert von 100% vor.
Ich sehe noch nicht wann dies passiert, vermute aber der Effekt tritt auf wenn die CPU aus war oder aber größere Änderungen am Projekt übertragen werden.
Hatte jemand schon einmal diesen Fall oder kann sich jemand einen Reim darauf machen?
 
Der Regler steht ständig im Automatikbetrieb und wenn er inaktiv ist, gebe ich einen Sollwert von 0 und einen Istwert von 100% vor.
:unsure: Was machst Du mit Soll- und Ist-Wert, wenn der Regler "aktiviert" wird?
Der Istwert sollte doch eigentlich immer unmanipuliert an den Regler geleitet werden können.
Wäre es nicht sinnvoller, den realen Istwert auch als Sollwert an den Regler zu geben, wenn der Regler "inaktiv" sein soll?

Jetzt kommt es sporadisch vor, dass er einmalig sehr stark über das Ziel hinausschießt. Sollwert bei 1.250°C und erst bei 1.350°C fängt er an runter zu regeln, im Normallfall startet er bei 1.248°C.
Tritt dieses über das Ziel hinausschiessen auf, wenn der Regler längere Zeit "inaktiv" war und dann aktiviert wird?
Baut der I-Anteil einen Wert auf, den der Regler nicht so schnell ausregeln kann, nachdem der Regler aktiviert wurde?
 
Zuviel Werbung?
-> Hier kostenlos registrieren
Den Regler aktiv zu halten wenn er nicht gebraucht wird ist nicht optimal, da dann ja der I-Anteil berechnet wird und volllaufen kann. Wenn man beim Regler einschalten das gleiche Verhalten haben möchte wie bei einem Sollwertwechsel muss vor dem Einschalten des Reglers der Sollwert und der Manual Wert gesetzt werden (Bei Standard Temperaturregelung Sollwert auf Ist-Temperatur und Manual Wert auf 0 (energielos)) und erst nach dem Einschalten des Reglers der neue Sollwert gesetzt werden. Istwert immer auf dem Regler 1:1 belassen.
 
Tritt dieses über das Ziel hinausschiessen auf, wenn der Regler längere Zeit "inaktiv" war und dann aktiviert wird?
Es konnte noch keine Ursache festgestellt werden wann dieser Effekt auftritt. Bisher vermute ich ein Stopp der CPU, entweder durch Übertragen des Projektes oder durch Hauptschalter aus. Das ist aber nicht reproduzierbar. Längere Zeit "inaktiv" wäre allerdings auch denkbar.
Wenn der Regler inaktiv ist, dann gebe ich als Sollwert 0°C vor und für den Istwert den maximalen Inputwert vor (etwas weniger als der parametrierte Max-Wert damit keine Fehlermeldung kommt). Dann fährt der Regler ja zu und dann gebe ich Soll und Istwert auf die gewünschten Werte wenn der Regler aktiv werden soll.
Der Regler steht bei mir eigentlich immer im AutomatikModus, auf Manual schalte ich ihn eigentlich nie. Während der Regelung habe ich auch keine Sollwertsprünge sondern ich fahre immer an einen festen Sollwert heran und halte diesen dann.
 
Im Normalfall startest Du den PiD also mit -100% I-Anteil, nach CPU Stop jedoch mit 0% I.
Ich würde denken, der I geht in der langsamen Aufheizphase dann im 2. Fall zu hoch, was dann zum Overshot führt.
Wenn Du das Ansteuerverfahren wie beschrieben immer definoert von 0 startest, wirst Du den PID neu abstimmen müssen

Mir war so, als ob der PID ein Hochlaufen des I Anteils unterbinden kann - jedoch sind die Auswirkungen je nch Implementtion verschieden.


Ps: anti windup heisst das, kam grad nicht drauf. Es gibt aber nmA verschiedene Implementationen, kA wie Siemens das macht.

Oscat begrenzt den I ungefähr so:
MinOut<= I + P <=maxOut

PPS
ICh tippe also auf zwei Ursachen
1. Nichtabschalten des Reglers
2. Mind. Falscher I Wert, vermutlich komplette Abstimmungverforderlich
 
Zuletzt bearbeitet:
Zuviel Werbung?
-> Hier kostenlos registrieren
Das komplette Ändern der Soll und Istwerte von Aussen während der Regler eingeschaltet ist halte ich nicht für gut, da der Regler ja immer von Zyklus von Zyklus die Differenzen rechnet. Da kann sich dann der proportional Anteil sehr stark verändern. Wenn Sollwert 0 und Istwert zuerst sehr hoch ist und dann abrupt gewechselt wird bekommt der Proportional Anteil einen sehr hohen Wert. und dann kann es späters ein, dass er dann über den Sollwert hinausschiesst.
 
Nein es werden alle Änderungen gerechnet als Differenz zur letzten Soll- Istwert Abweichung wenn du also den Istwert um 100 änderst und hast einen P-Anteil (Gain von 0,1) dann ändert der Stellwert um 10.
 
Zuviel Werbung?
-> Hier kostenlos registrieren
Werde das mal so ausprobieren.
Regler inaktiv setzen wenn er nicht benötigt wird mit Sollwert = Istwert und der Istwert wird immer aktuell gehalten.
Wenn der Regler benötigt wird, dann setze ich ihn auf Automatik-Mode und gebe den Sollwert frei.
Wird zwar etwas dauern aber wenn ich dazu neue Erkenntnisse habe, gebe ich ein Feedback.
Danke für eure Info´s
 
Nein. Der Sollwert wird aktuell gehalten. Damit ein Regler stoßfrei eingeschaltet werden kann, muss Soll=Ist nachgeführt werden.
Zusätzlich muss allerdings, je nachdem was geregelt wird, der Regler auch noch gesetzt werden.

Soll=Ist gewährleistet lediglich, dass der Regler beim Einschalten keinen Sprung produziert.
Er startet allerdings mit Stellgröße 0, weil die Nachführung eine Regeldifferenz von 0 erzwingt.

Wenn die Stellgröße wirklich 0 ist, passt das.
Schaltest du allerdings auf eine Stellgröße.von z.B. 60% auf und führst den Sollwert nach, geht bzw. steht der Regler auf Stellgröße 0.
Die Stellgröße muss also im Regelfall gesetzt werden, wenn man den Regler einschaltet.
 
Ich kenne es eher so, dass der Regler in Zeiten, in denen er inaktiv ist, in den Handmodus-gesetzt wird und der händische Stellwert an den Hand-Eingabewert des Reglers übergeben wird. Dann gibt es beim Umschalten in den Regelbetrieb keinen Stoß im Stellwert.
 
Zuviel Werbung?
-> Hier kostenlos registrieren
Also in diesem speziellen Fall, habe ich keine Sollwertsprünge während des Aufheizvorganges. Der Sollwert wird vorgegeben, dann wird aufgeheizt und die Temperatur eine Zeit X gehalten.
Da der Aufheizvorgang recht lang (ca. 250s) ist, habe ich am Anfang immer die sehr große Differenz zwischen Ist- und Sollwert.
 
Zurück
Oben