Forum: Digitale Signalverarbeitung / DSP / Machine Learning Temp-Regelung - Streckenidentifizierung und Parametrierung PI-Regler


von Thomas L. (sps-tom)


Lesenswert?

Hallo,

ich möchte einen PI-Regler zur Temperaturregelung verwenden.
Aus der Sprungantwort konnte ich mit dem Wendetangentenverfahren
Tu = 1 min und Tg = 56 min ablesen.
Als Eingangssignal meiner Sprungantwort habe ich 24% Einschaltdauer 
meines PWM-Signals verwendet. Bei 24% Stellgröße erhalte ich meine 
gewünschte Temperatur von 100°C, die einer Regelgröße von 1000 
entspricht.
Die Stellgröße liegt zwischen 0 und 10000. Bei 24% habe ich somit einen 
Regler-Ausgangswert von 2400 (Einschaltdauer: 24% * 10s = 2,4s).
Die Verstärkung Ks der Regelstrecke berechnet sich zu 1000/2400 = 0,417 
(eine Führungsgröße von 2400 erzeugt eine Regelgröße von 1000, also 
100°C).

Mit der Einstellregel nach Chien, Hrones und Reswich berechne ich für 
den aperiodischen Grenzfall
Kr = (0,35/Ks) * (Tg/Tu) = (0,35/0,417) * (56/1) = 47
Tn = 1,2 * Tg = 1,2 * 56 min = 67 min = 4032 s

Kr kann ich direkt für den Regler verwenden, die Zeitkonstante Ki 
berechnet sich zu
Ki = Kr/Tn = 47/4032s = 0,012/s

Kr und Ki lege ich an meinen Regler als Kp und Ki.

Die Ausgangsgröße berechnet sich zu
Y = IN * Kp + IN * KI x DeltaT + I_alt

mit IN = Führungsgröße - Regelgröße = Regelabweichung
DeltaT = Zeit seit dem letzten Aufruf des Reglers
I_alt = I-Anteil bei vorhergehendem Aufruf

Meine Abtastzeit beträgt 2 min, also 120 s.

Leider funktioniert mein Regler nicht, der Endwert wird nicht erreicht. 
Bei etwa 80° (Regelgröße 800) bleibt die Temperatur relativ konstant und 
"kriecht" dann nur noch in Richtung 100°C.

Weiß jemand, wo hier der Fehler liegt?
Ist möglicherweise Ks der Regelstrecke falsch ermittelt? Ich habe den 
absoluten Betrag Regelgröße/Stellgröße ermittelt, ist hier die 
Streckenverstärkung am Arbeitspunkt zu ermitteln (Delta T/Delta 
Stellgröße)?

Die Heizung nähere ich mit einem PT2-Verhalten an, auch wenn Tu sehr 
klein ist.

Für konstruktive Rückmeldungen wäre ich dankbar.

: Verschoben durch Admin
von A. S. (rava)


Lesenswert?

also ich kenn jetzt diese Verfahren nicht und weiß auch nicht, ob du 
deine Strecke richtig modelliert hast, aaaber:


wenn du einen I-Anteil im Regler hast, sollte das System eigentlich 
stationär genau sein, d.h. den Endwert erreichen.

Wie sind denn deine Stellgrößen, sobald dir das Ergebnis nicht gefällt?


Dass die Heizung ein lineares System ist, ist nur geraten, oder? 
Vielleicht fährst du ja mit der Stellgröße in die Begrenzung - aus 
welchem Grund auch immer?

Kannst du keinen genaueren Blick auf die Werte werfen?

von Otto (Gast)


Lesenswert?

Wenn deine Abtastzeit 120s beträgt, dann musst du gezwungenermaßen einen 
diskreten Regler entwerfen.

von C Programmierer (Gast)


Lesenswert?

Die eine Zeitkonstate ist halb so groß wie die Abtastzeit. Diese würde 
ich einfach ignorieren und die Strecke zu einem Sytem 1. Ordnung 
vereinfachen.

Das Tg sieht für mich in dem wiki-Eintrag etwas größer als die 
Zeitkonstante eines PT1-Glieds aus. Probier doch einfach mal Tn auf etwa 
80% von Tg zu stellen, in diesem Fall also auf etwa 45 Minuten, damit 
wäre die Zeitkonstante deiner Strecke in der Überragungsfunktion 
gekürzt.

Das Kp kannst du anschließend (theoretisch) "beliebig" hoch stellen. 
Angemessen wäre hierbei m.E. das Kp so hoch zu stellen, dass bei der 
abgekühlten Temperatur ein Sollwertsprung auf deine Gewünschte 
Temperatur dazu führen würde, dass der Regler in den ersten Minuten 
seinen (fast) vollen Ausgangswert hat (z.B. 9000).

Falls das ganze klappt und du es noch optimieren willst, kannst du den 
Regler noch schärfer einstellen, indem du das Kp höher stellst, (z.B. 
verdoppeln oder verdreifachen) und statt eines Sollwertsprungs den 
Sollwert durch eine Rampe in einer geeigneten Zeit nach oben fahren 
lässt.

von Klaus Günter (Gast)


Lesenswert?

Parameterindentifikation würde ich mit dem IV4-Verfahren machen... Das 
dürfte aber recht schwer für dich werden es zu implementieren!

von Willi (Gast)


Lesenswert?

Ist zwar schon Ewigkeiten her aber das Ks dürfte falsch berechnet sein.
Die 100°C müssen noch um den Offset reduziert werden es sei denn dein 
Ausgangstemperaturwert liegt bei 0°C (gemeint ist die Temperatur bei 
Einschalten der Heizung)

Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.