Forum: Mikrocontroller und Digitale Elektronik Problem bei Praktischer Verwendung des PID-Regler bei Temperaturregelung.


Announcement: there is an English version of this forum on EmbDev.net. Posts you create there will be displayed on Mikrocontroller.net and EmbDev.net.
von Shang L. (shang_l)


Bewertung
0 lesenswert
nicht lesenswert
Hallo Zusammen!

Ich habe eine Frage über langsam Regelungssystem:

Ich habe hier ein Kühlaggregate, um die Temperatur durch einen 
PID-Regler in Simulink zu regeln. d.h. der Simulink-PID-Regler regelt 
das Kühlaggregate und dadurch kontrolliert die Flüssigkeitstemperatur. 
Durch die Flüssigkeit wird die Temperatur eines Zylinders kontrolliert. 
Die Eingangsgröße des PID-Reglers ist die Differenz zwischen idealer 
Zylinkdertemperatur und gemessenen Zylindertemperatur. Gleichzeitig ist 
die Reaktionszeit des Kühlaggregates ziemlich langsam. Das bedeutet, Es 
gibt immer etwas große Überversorgung bzw. Überheizung oder Überkühlung 
durch die Regelung. Folgend sind mein Lösungsversuch.


Die Parameters durch die <Auto-tune> Funktion in Simulink ist nicht 
geeignet für die Regelung. Ich habe auch durch Ziegler-Nicols-Methode 
die Parameter ausgerechnet, aber der Regelungsprozess ist noch nicht 
gut(Es gibt große Überschwingung). Nach der gemessenen Daten habe ich 
gefunden, dass die große und viele Überschwingung die Regelungszeit 
stark verlangsamt. Deshalb habe ich den Parameter Kp vergrößert(bis 
Grenzwert), um die Regelungszeit zu beschleunigen und verkleinert den 
Parameter Ki auf einen sehr kleinen Wert(Aber das verlangsamt die 
Regelungszeit), dann gibt es nur einmal Überschwingung und die 
Regelungszeit ist totally ein bisschen besser.

Aber über den Parameter Kd was soll ich machen? Ober habet ihr relative 
Erfahrungen über die Parameter, um die Regelungszeit zu verbessern?

Vielen Dank!
Shang

: Bearbeitet durch User
von Kolja L. (kolja82)


Bewertung
0 lesenswert
nicht lesenswert
Ich rate mal:

Der Regler regelt zu schnell für das langsame Stellglied (Kühlaggregat).
Miss mal, wie lange es dauert, bis sich nach dem Einschalten des 
Aggregates eine konstante Temperatur eingestellt hat.

Beitrag #5747239 wurde vom Autor gelöscht.
von Shang L. (shang_l)


Bewertung
0 lesenswert
nicht lesenswert
Kolja L. schrieb:
> Ich rate mal:
>
> Der Regler regelt zu schnell für das langsame Stellglied (Kühlaggregat).
> Miss mal, wie lange es dauert, bis sich nach dem Einschalten des
> Aggregates eine konstante Temperatur eingestellt hat.

Dank erstmal!

Ich glaube auch! deshalb habe ich den Parameter Ki von 0.0918 auf 0.0295
eingestellt. und Es gibt nur einmal Überschwingung in der Regelung. Aber
gleichzeitig verlangsamt die Regelung.

Die Regelungszeit dauert abhängig von der unterschiedlichen
Zylinderserwärmung. Bei größter Erwärmung dauert etwa 300-400 Sekunden
bis die Temperatur auf idealen Wert erreicht.

Leider ist Stabilität und Geschwindigkeit immer ein Konflikt in
PID-Regler...

: Bearbeitet durch User
von Wolfgang (Gast)


Bewertung
0 lesenswert
nicht lesenswert
Shang L. schrieb:
> Das bedeutet, Es gibt immer etwas große Überversorgung bzw. Überheizung
> oder Überkühlung durch die Regelung.

Dann ist deine Verstärkung zu groß, dein System ist nicht linear oder du 
hast keinen PID-Regler.

von Kolja L. (kolja82)


Bewertung
-1 lesenswert
nicht lesenswert
Shang L. schrieb:
> Die Regelungszeit dauert abhängig von der unterschiedlichen
> Zylinderserwärmung. Bei größter Erwärmung dauert etwa 300-400 Sekunden
> bis die Temperatur auf idealen Wert erreicht.

Das ist die Sprungantwort, bzw deren Zeit.
Schneller kann das System nicht reagieren.
Zumindest nicht, wenn die Regelabweichung so groß ist.

Aber wahrscheinlich muss es das ja auch gar nicht.

Wie sieht dein System in Ganzen aus und was sind die Störgrößen?

Ich rate wieder:
Du willst bestimmte Temperaturen anfahren und konstant halten.
Deine Störgröße ist nur der Kälteverlust zur Umgebung.
Dann brauchst du eigentlich keine Regelung, sondern eine Steuerung.

P.S. An welcher Uni bist du?

von Entwiggler (Gast)


Bewertung
2 lesenswert
nicht lesenswert
Kolja L. schrieb:
> Ich rate wieder:
> Du willst bestimmte Temperaturen anfahren und konstant halten.
> Deine Störgröße ist nur der Kälteverlust zur Umgebung.
> Dann brauchst du eigentlich keine Regelung, sondern eine Steuerung.

Bitte was?

von Heinz (Gast)


Bewertung
0 lesenswert
nicht lesenswert
Hallo,

Hast du dich mit Anti-Windup beschäftigt[1]? Deine Problembeschreibung 
hört sich nach Windup an. Durch die Anti-Windup Maßnahme kann der 
I-Anteil größer sein ohne das Schwingen auftritt.
Zum Starten in das Thema: [2]
Falls das Stellglied sehr langsam ist, kannst du dich mit dem Prinzip 
des Smith Predictor [3] beschäftigen.
Viel Erfolg
Heinz


[1] https://en.wikipedia.org/wiki/PID_controller#Integral_windup
[2] 
https://stackoverflow.com/questions/18654853/simulink-pid-controller-difference-between-back-calculation-and-clamping-for
[3] https://en.wikipedia.org/wiki/Smith_predictor

von Shang L. (shang_l)


Bewertung
0 lesenswert
nicht lesenswert
> Wie sieht dein System in Ganzen aus und was sind die Störgrößen?
> P.S. An welcher Uni bist du?

Hallo!

Der Zylinder wird von einem Heizer mit unterschiedlicher 
Erwärmungsleistung aufgeheizt. Aber die Temperatur des Zylinders muss 
durch die Kühlung der Flüssigkeit immer konstant halten. Ich glaube, die 
Störgröße ist die gemessene Temperatur aus Sensor.

Ich bin am KIT.

von Shang L. (shang_l)


Bewertung
0 lesenswert
nicht lesenswert
Heinz schrieb:
> Hallo,
>
> Hast du dich mit Anti-Windup beschäftigt[1]? Deine Problembeschreibung
> hört sich nach Windup an. Durch die Anti-Windup Maßnahme kann der
> I-Anteil größer sein ohne das Schwingen auftritt.
> Zum Starten in das Thema: [2]
> Falls das Stellglied sehr langsam ist, kannst du dich mit dem Prinzip
> des Smith Predictor [3] beschäftigen.
> Viel Erfolg
> Heinz

Danke Schön!

Ich habe Anti-Windup eingesetzt, aber ich habe nur mit back calculation 
durchgeführt, nächstmal versuche ich mit clamping.

Jetzt habe ich den I-Parameter sehr klein eingestellt. Die gesamte 
Regelungszeit wird verkürzt, obwohl die Integration verlangsamt. Deshalb 
glaube ich, dass die Überschwingung den großen Einfluss habt. Aber über 
D-Parameter habe ich keine Ahnung zu tun..

von B. P. (skorpionx)


Angehängte Dateien:

Bewertung
0 lesenswert
nicht lesenswert
Ähnliches Problem habe ich beim Heizungsmischer. Ich musste zeitliche
Verzögerung zwischen Impuls für Stellmotor und die Temperatur
berücksichtigen.Ich habe eine Warte zeit eingebaut.Mein Soft für
den Mischer habe ich als Textdatei eingefügt. Ursprünglich habe
ich den Soft in Assembler geschrieben und das ist neue
(noch nicht getestete...) Version in „C“.
Du muss den Abtastzyklus vom Regler mit richtigen Zeit einstellen.

von Bolgon J. Bratsch (Gast)


Bewertung
0 lesenswert
nicht lesenswert
Ein PID ist leider von vorneweg unpassend zur Heizungsregelung.
Welche Beitraege muessen auf das Stellglied wirken ?
- p = Fehler * P-Verstaerkung
- i = integrierter Fehler * I-Verstaerkung
- V = Vorwaertssteuerung = Heizbedarf abhaengig von der 
Temperatur-Umgebung.

Wobei der Letzte, der wichtigste ist. Ohne den Letzten muss man warten 
bis der Integrator alles Uebernommen hat. Dann ist der P auf Null.

Der letzte Anteil kann man aus einer interpolierten Tabelle oder aus 
einem gefitteten Polynom ziehen.  Welche Stellglied Einstellung 
benoetigt man fuer 30 Grad, fuer 40 Grad, fuer 50 Grad.

von F. F. (foldi)


Bewertung
-1 lesenswert
nicht lesenswert
Ich bin eher der Meinung, dass ein langsames System viel schneller 
geregelt werden muss.
Je träger ein System reagiert, um so früher muss ich mit der Regelung 
beginnen.
Als Beispiel: regel ich bei 3 Grad Abweichung, muss ich vielleicht schon 
bei einem Grad regeln.

von B. P. (skorpionx)


Bewertung
1 lesenswert
nicht lesenswert
F. F. schrieb:
> Ich bin eher der Meinung, dass ein langsames System viel schneller
> geregelt werden muss.

Nein.

von TestX (Gast)


Bewertung
0 lesenswert
nicht lesenswert
@TO

durch was für ein Modell hast du die Strecke approximiert ? PT1 oder PT2 
... ich vermute hier fast ein PT2 Verhalten, da Kompressor -> 
Flüssigkeit -> Zylinder. Einen I Anteil brauchst du fast nicht in der 
Regelung..der nervt nur.
Wie hast du die SamplingRate im Simulink konfiguriert ? Bei einem so 
langsamen Modell reicht wahrscheinlich 1s ...

Ist das ganze eine Laboaraufgabe oder im Rahmen einer HiWi/StuMi 
Tätigkeit ? Wenn letzteres wäre StateSpaceControl oder FuzzyControl der 
bessere Ansatz.

von Mike (Gast)


Bewertung
0 lesenswert
nicht lesenswert
F. F. schrieb:
> Ich bin eher der Meinung, dass ein langsames System viel schneller
> geregelt werden muss.
> Je träger ein System reagiert, um so früher muss ich mit der Regelung
> beginnen.
> Als Beispiel: regel ich bei 3 Grad Abweichung, muss ich vielleicht schon
> bei einem Grad regeln.

Was redest du für ein Unfug? Wie willst du denn ein langsames System 
viel schneller regeln? Wenn du eine Totzeit drin hast, hast du nunmal 
eine Totzeit drin und die kannst du nicht einfach eliminieren. Du machst 
die Regelung auch nicht besser, wenn du einfach schneller regelst.

Wenn du es nicht glaubst, dann besorg dir einen langen Duschschlauch und 
geh duschen. Ehe du gemerkt hast, dass du die Temperatur nachregeln 
musst, hast du dich schon verbrennt.

Da hilft nur der Smith Predictor.

von Homer (Gast)


Bewertung
0 lesenswert
nicht lesenswert
klassischer PID ist für Strecken mit grosser Tot- oder Verzugszeit eher 
ungeeignet. Für eine brauchbar schnelle Regelung einer solchen Strecke 
ist die Verwendung eines PPT1-Basisreglers mit parametervariantem 
I-Anteil für den arbeitspunktabhängigen Stellgrössenbedarf sehr gut 
brauchbar. Dazu wird der I-Anteil nach jeder Stellgrössenänderung auf 
den neuen Zielwert resettet, für den neuen Sollwert und dann die 
Verstärkung mindestens über Zeit (Verzugszeit der Strecke) hochgezogen. 
Sollte die Strecke noch nichtlinear sein, so lassen sich auch noch 
arbeitspunktabhängige Parameter hinzufügen. Diese Struktur erspart einem 
auch die Sollwertformung.

Grüsse
Homer

von max123 (Gast)


Bewertung
0 lesenswert
nicht lesenswert
Hallo,
1.
Wie schnell ist die Aufheizung und wie schnell ist
die Abkühlung. (Temperatur pro Zeit)?
Lösung:Tabelle
2.
Den Sollwert über einen Tiefpass laufen lassen. Siehe
Das macht man häufig bei Regler mit Betragsoptimum.

3.
Den I-Anteil würde ich zuerst auf 0 setzen.

von Shang L. (shang_l)


Bewertung
0 lesenswert
nicht lesenswert
Danke schön!

Ich werde damit versucht!

von Experte (Gast)


Bewertung
0 lesenswert
nicht lesenswert
Erfahrung aus der Praxis: Die realen Kühl- und Heizsystem sind stark 
nicht-linear. Wenn man das einigermaßen linearisiert, klappt's viel 
besser.

von Shang L. (shang_l)


Bewertung
0 lesenswert
nicht lesenswert
TestX schrieb:
> @TO
>
> durch was für ein Modell hast du die Strecke approximiert ? PT1 oder PT2
> ... ich vermute hier fast ein PT2 Verhalten, da Kompressor ->
> Flüssigkeit -> Zylinder. Einen I Anteil brauchst du fast nicht in der
> Regelung..der nervt nur.
> Wie hast du die SamplingRate im Simulink konfiguriert ? Bei einem so
> langsamen Modell reicht wahrscheinlich 1s ...
>
> Ist das ganze eine Laboaraufgabe oder im Rahmen einer HiWi/StuMi
> Tätigkeit ? Wenn letzteres wäre StateSpaceControl oder FuzzyControl der
> bessere Ansatz.

Danke für die Hilfe!

Jetzt ist der I-Parameter auf 0.0295. Falls er 0 ist, gibt es wirklich 
keine Überschwingung mehr, aber die Regelungszeit ist noch sehr 
langsam...

Ich werde mit Sampling-Rate auf 1s versuchen. hoffe es ist besser.
Das ist eine Laboraufgabe.

von Shang L. (shang_l)


Bewertung
0 lesenswert
nicht lesenswert
max123 schrieb:
> Hallo,
> 1.
> Wie schnell ist die Aufheizung und wie schnell ist
> die Abkühlung. (Temperatur pro Zeit)?
> Lösung:Tabelle
> 2.
> Den Sollwert über einen Tiefpass laufen lassen. Siehe
> Das macht man häufig bei Regler mit Betragsoptimum.
>
> 3.
> Den I-Anteil würde ich zuerst auf 0 setzen.

Danke erstmal!

Das Kühlaggregate ist langsam, nach meiner Beobachtung ist die 
Aufheizung etwa 0.08 Celsuisgrad(bei großer Leistung) pro Sekunde.

Falls I-Anteil 0 ist, ist die Regelung noch langsam..

Beitrag #5748189 wurde vom Autor gelöscht.
von Shang L. (shang_l)


Bewertung
0 lesenswert
nicht lesenswert
Experte schrieb:
> Erfahrung aus der Praxis: Die realen Kühl- und Heizsystem sind stark
> nicht-linear. Wenn man das einigermaßen linearisiert, klappt's viel
> besser.

Vielen dank!

Aber haben Sie noch Vorschläge über die Linearisierung für das 
Kühlsystem?

von Kolja L. (kolja82)


Bewertung
0 lesenswert
nicht lesenswert
Die Theorie ist bei mir schon länger her, aber der I Anteil sollte 
nichts mit der Regel Geschwindigkeit zu tun haben. I verringert den 
Drift über die Zeit.

von Shang L. (shang_l)


Bewertung
0 lesenswert
nicht lesenswert
TestX schrieb:
> @TO
>
> durch was für ein Modell hast du die Strecke approximiert ? PT1 oder PT2
> ... ich vermute hier fast ein PT2 Verhalten, da Kompressor ->
> Flüssigkeit -> Zylinder. Einen I Anteil brauchst du fast nicht in der
> Regelung..der nervt nur.
> Wie hast du die SamplingRate im Simulink konfiguriert ? Bei einem so
> langsamen Modell reicht wahrscheinlich 1s ...
>
> Ist das ganze eine Laboaraufgabe oder im Rahmen einer HiWi/StuMi
> Tätigkeit ? Wenn letzteres wäre StateSpaceControl oder FuzzyControl der
> bessere Ansatz.

By the way, Das Plant was ich simuliere, ist ein PT1 Glied.

von Shang L. (shang_l)


Bewertung
0 lesenswert
nicht lesenswert
Kolja L. schrieb:
> Die Theorie ist bei mir schon länger her, aber der I Anteil sollte
> nichts mit der Regel Geschwindigkeit zu tun haben. I verringert den
> Drift über die Zeit.

Ja richtig, aber nach meiner Beobachtung, nach der Verkleinerung des 
I-Parameters hat die Regelgeschwindigkeit wirklich verbessert. Weil die 
Überschwingung wird unterdrückt.

Bei meinem Kühlaggregate hat die Überschwingung großen Einfluss auf 
Regelungsgeschwindigkeit. Weil Das Kühlaggregate langsam reflektiert und 
die Überschwingung führt zur größeren Überheizung oder Überkühlung.

von Kolja L. (kolja82)


Bewertung
0 lesenswert
nicht lesenswert
So ein langsames System darf gar nicht überschwingen.

Antwort schreiben

Die Angabe einer E-Mail-Adresse ist freiwillig. Wenn Sie automatisch per E-Mail über Antworten auf Ihren Beitrag informiert werden möchten, melden Sie sich bitte an.

Wichtige Regeln - erst lesen, dann posten!

  • Groß- und Kleinschreibung verwenden
  • Längeren Sourcecode nicht im Text einfügen, sondern als Dateianhang

Formatierung (mehr Informationen...)

  • [c]C-Code[/c]
  • [code]Code in anderen Sprachen, ASCII-Zeichnungen[/code]
  • [math]Formel in LaTeX-Syntax[/math]
  • [[Titel]] - Link zu Artikel
  • Verweis auf anderen Beitrag einfügen: Rechtsklick auf Beitragstitel,
    "Adresse kopieren", und in den Text einfügen




Bild automatisch verkleinern, falls nötig
Bitte das JPG-Format nur für Fotos und Scans verwenden!
Zeichnungen und Screenshots im PNG- oder
GIF-Format hochladen. Siehe Bildformate.
Hinweis: der ursprüngliche Beitrag ist mehr als 6 Monate alt.
Bitte hier nur auf die ursprüngliche Frage antworten,
für neue Fragen einen neuen Beitrag erstellen.

Mit dem Abschicken bestätigst du, die Nutzungsbedingungen anzuerkennen.