Forum: Mikrocontroller und Digitale Elektronik PID - Heizungsregelung - Abkühlen vs Aufheizen


von Martin Kiepfer (Gast)


Angehängte Dateien:

Lesenswert?

Hallo zusammen,

für ein spezielles Messinstrument muss ich die Temperatur von 
Heizwiderständen auf eine konstante Temperatur regeln. Die 
Wärmekapazität des Systems ist für eine klassische Heizungsregelung sehr 
schnell und die Wärmekapazität des Systems relativ gering. Die 
Regelparameter der PID-Regelung wurden aus der Sprungantwort berechnet 
und sind grundsätzlich bereits ausreichend schnell. Die Sprungantwort 
wurde bisher über einen positiven Sprung (0 auf 100% 
Heizungsaussteuerung) aufgenommen.

Mein Problem ist nun aber, dass die Regelung speziell bei sinkenden 
Änderungen der Solltemperatur sehr viel langsamer nachregelt als bei 
steigenden. Das ist grundsätzlich auch verständlich, dass ich ja nur 
heizen und nicht kühlen kann. Bei sinkenden Temperaturen schwinkt die 
Regelung daher etwas über und das würde ich gerne optimieren.

Meinem Versändnis nach ist das größte Problem, dass ich nicht kühlen 
kann und die Regelung daher zwangsläufig mehr überschwingt.
Hat jemand von euch eine Idee, ob man solche Regelung grundsätzlich 
anders auslegen kann oder ob es Möglichkeiten gibt so eine 
Heizungsregelung weiter zu optimieren?

Danke schonmal

von kyrk.5 (Gast)


Lesenswert?

Hallo,

ich glaube dein Problem ist dass du dein System mit ein Positiven 
Sprungantwort identifiziert hast. Dadurch sieht du nur die Parameters 
die beim Heizen spielen. Wenn du dein System auch mit Abkühlen 
identifiziert, siehst du vermutlich ganz andere Werte. Sprich die Werte 
die wegen passiver kühlen kommen.

Die 2 Identifikationswerte würde dann natürlich auch 2 PID 
Parametersätze bilden.

Leider kann ich dir keine komplette Lösung geben nur Ideen. Aber ich 
meine du brauchtest einen PID Regler der zwischen 2 Parametersätzen 
schalten kann, je nach dem ob du aktiv Wärme einführst oder passiv Wärme 
verlierst. (Vorausgesetzt du möchtest weiterhin mit einer PID Regler 
arbeiten).

So ein umschalten würde dann dazu führen dass du in beide Zustände 
optimal regulieren kannst.

von Guest (Gast)


Lesenswert?

Hast du wirklich einen D Anteil benutzt? Halte ich hier für unnötig und 
macht den Regler nur komplizierter und im schlimmsten Fall instabil.

Zu deinem Problem, hast du den Integralanteil begrenzt? Es könnte sein 
dass dieser zu stark anwächst und es dann zu lange dauert bis er wieder 
abgebaut ist.

von Martin Kiepfer (Gast)


Lesenswert?

Danke für die schnelle Antwort und deine Ideen.

Die Sprungantwort vom Abkühlen aufzunehmen klingt plausibel. Allerdings 
vermute ich, dass das Umschalten sich nich so einfach implementieren 
lässt. Selbst beim Heizen gibt es ein kleines Überschwingen, weil die 
Temperatur kurz über die Zieltemperatur hinaus geht.
Ich werde mal versuchen den Regler rein auf die Abkühlungskurve 
auszulegen. Vielleicht ist das Einregeln ja immer noch schnell genug.

von Mr. Meeseeks look at me (Gast)


Lesenswert?

>Selbst beim Heizen gibt es ein kleines Überschwingen

je nach Ansatz ist das Überschwingen normal und in Kauf genommen, führen 
die dafür verantwortlichen Parameter zu einem schnelleren 
"Erst-Erreichen" des Sollwertes.
Ein anderer Ansatz ist, wenn man wirklich eine Punktlandung 
will/braucht.
Dann setzt man Parameter ein, die das System langsamer werden lassen. 
Könnte bei
>>für ein spezielles Messinstrument
sinnvoll sein. Das müsstest du selbst eroieren.

von Lothar M. (Firma: Titel) (lkmiller) (Moderator) Benutzerseite


Lesenswert?

Martin Kiepfer schrieb:
> Ich werde mal versuchen den Regler rein auf die Abkühlungskurve auszulegen.
Du solltest dabei aber auch die maximale Raumtemperatur berücksichtigen. 
Oder diese messen, um die Reglerparameter anzupassen.
Denn sonst wird dein Regler u.U. im Winter und im Kühlschrank toll 
funktionieren, aber im Sommer bei 30°C Umgebungstemperatur wieder 
schwingen, weil die Abkühlung wieder wesentlich länger dauert.

von pumuggl (Gast)


Lesenswert?

> eroieren

Es ist immer noch: eruieren.

Ansonsten halt einen kleinen Luefter an das Dingens schrauben.
Und bei negativen Stellwerten entsprechend anfahren.

Beitrag #6043297 wurde von einem Moderator gelöscht.
von Olaf (Gast)


Lesenswert?

> Hat jemand von euch eine Idee, ob man solche Regelung grundsätzlich
> anders auslegen kann oder ob es Möglichkeiten gibt so eine
> Heizungsregelung weiter zu optimieren?

Wie du schon richtig erkannt hast ist heizen und abkuehlen etwas 
unterschiedliches.

1. Versuch den Temperaturfuehler nahe an dein Heizelement zu bringen 
damit deine Totzeit klein wird.

2. Dein System wird sich beim dauerhaften einschalten der Heizung auf 
eine Endtemperatur einstellen. Dir wird auffallen das sich eine 
Temperatur die 80% dieser Endtemperatur betraegt wesentlich besser 
regeln laesst als eine die nur 10% ist. Daher empfiehlt es sich das 
Heizelement so auszulegen das es nicht extrem ueberdimensioniert ist.

3. Den unteren Bereich kannst du dann in den Griff bekommen in dem du 
mit mehreren Parametersaetzen fuer den PID-Regler arbeitest je nach dem 
wo du hin willst.

4. Versuche Extremfaelle wie 10% der Maximaltemperatur zu vermeiden. 
Geht das nicht dann musst du vielleicht wirklich ueber einen aktive 
Kuehlung nachdenken.

5. Linearisieren!

Olaf

von Lurchi (Gast)


Lesenswert?

Auch wenn heizen und abkühlen an sich verschieden sind, sollten sich die 
PID Parameter nicht wirklich unterscheiden. Gerade im kleinen Bereich 
ist die Wärmeleitung recht linear. Je nach Art der Heizung sollte man 
die Steuerung linearisieren, also nicht die Spannung vorgeben, sondern 
wirklich die Leistung.

An der Grenze ist auch der Anti-windup Teil wichtig. Wenn der 
Differential Teil richtig bestimmt ist hilft der schon für eine 
schnellere Reglung und kann das überschwingen reduzieren. An der Grenze 
(Heizung erreicht auch ganz aus) kann eine etwas trägere Auslegung ggf. 
günstiger sein als schnell mit Überschwingern.

von Wolfgang (Gast)


Lesenswert?

Lurchi schrieb:
> Auch wenn heizen und abkühlen an sich verschieden sind, sollten sich die
> PID Parameter nicht wirklich unterscheiden.

Immerhin wird ein positives Steuersignal des Reglers in eine positive 
Heizleistung umgesetzt und ein negatives in Heizleistung 0. Es sind also 
je nach Sprungrichtung ganz unterschiedliche Verstärkungen im System 
vorhanden. Das sollte sich doch wohl in den PID-Parametern 
widerspiegeln.

von Martin Kiepfer (Gast)


Lesenswert?

Den Wind-up habe ich berücksichtigt. Ich habe den I-Anteils auf positive 
Werte begrenzt um derartige Effekte komplett zu eliminieren.

Bei meinem System sind die Zeitkonstanten zwischen Heizen und Abkühlen 
leider gravierend anders. Das Umschalten zwischen den beiden 
Parametersätzen ist mir immernoch nicht ganz klar.
Ist das wirklich praktikabel?
Ausgehend von welchen Bedingungen soll die Umschaltung stattfinden? In 
jeder Regelschleife abhängig von der Regelabweichung (bei positiven 
PID-Heizen bei negativen PID-Abkühlen)?

von Pandur S. (jetztnicht)


Lesenswert?

Allenfalls ist noch nicht aufgefallen dass der Regler noch einen 
zusaetzlichen Parameter benoetigt. Das waere den Steuerungsparameter, 
welcher besagt welche Heizleistung du benoetigst, um das System auf der 
Temperatur zu halten. Dieser Wert ist nur von der Temperaturdifferenz 
zur Ungebung abhaengig. Zu diesem Wert zaehlst du die PID Werte hinzu.

von Martin (Gast)


Lesenswert?

>> Allenfalls ist noch nicht aufgefallen dass der Regler noch
>> einen zusaetzlichen Parameter benoetigt
Das musst du genauer erklären.

von Pandur S. (jetztnicht)


Lesenswert?

Bei genauerer Betrachtung eines PID bei Heizungsregelungen faellt auf, 
dass der P schliesslich auf Null geht und der I die Heizung uebernimmt. 
Man laesst also den I die Arbeit machen, was Zeit bedeutet.
Dabei ist dieser Wert, welcher der I Anteil bringt eine Funktion der 
Differenz von Heiztemperatur zu Umgebungstemperatur. Diesen Wert kann 
man in eine Steuerfunktion einfliessen lassen :

Stellglied = Steuerfunktion(T)+ P + I + D
mit
P = p-faktor * Fehler
I = I + i-faktor * Fehler
D = ..

Und macht den Regler schneller, da der I Anteil nicht erst muehsam 
aufintegrieren muss.

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.