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
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.
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.
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.
>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.
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.
> 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.
> 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
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.
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.
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)?
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.
>> Allenfalls ist noch nicht aufgefallen dass der Regler noch >> einen zusaetzlichen Parameter benoetigt Das musst du genauer erklären.
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
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.