Ich muss ein einfaches PI Regler zusammenbasteln. Es geht um ein Heizofen und die Regelung der Temperatur mit der Leistung. Ich habe jetzt die Messkurve aufgenommen und alle wichtige Werte laut https://controls.engin.umich.edu/wiki/index.php/PIDTuningClassical ermittelt. Nun habe ich ein Denkfehler. Falls e(t), also der Unterschied zwischen Ist und Soll zu NUll wird, geht der Steuerungssignal eben auf Null? Nehmen wir an, ich benutze einfach die P Regelung, dann ist u(t)=K*0=0. Das macht aber keinen Sinn, oder? Verstehe ich irgendwas falsch? Ist u(t) irgendwie nur der Korrekturwert?
Du erreichst auch mit einem reinen P-Regler nicht den Sollwert. Der hat praktisch immer eine bleibende Regelabweichung. Stell dir vor, die Stellgröße ist die Heizleistung. Sei jetzt der Raum auf Solltemperatur aufgewärmt, ist die Heizleistung, wie du festgestellt hast, null und der Raum kühlt ab. Damit steigt langsam die Heizleistung, da sich eine Abweichung zwischen Soll und Ist einstellt. Solange die Heizleistung gering ist, kühlt der Raum weiter ab. Dadurch steigt die Leistung. Irgendwann ist der Punkt erreicht, an dem Heizleistung und Wärmeverlust sich ausgleichen. An dem Punkt bleibt der Regler dann stehen. Der I-Anteil sorgt dafür, dass bei einer Differenz von null die Stellgröße nicht (immer) auch null ist. Wir befinden uns an dem Punkt, auf den der reine P-Regler regelt (unter der Solltemperatur). Jetzt wird ein I-Anteil dazugeschaltet. Der Integrator sieht die Differenz und läuft deswegen langsam hoch. Er erhöht also zusätzlich die Heizleistung, bis irgendwann die Solltemperatur erreicht ist. Dann liegt am Integrator ein Eingangswert von null an und er bleibt bei der eingestellten Heizleistung stehen.
Danke, ich denke mein Denkfehler lag am Integrator. Was passiert wenn die Abweichung negativ ist, also Sollwert>Istwert. Dann ist U(t), unter Umständen auch negativ (bei reinem P Regler sowieso). Aber ich kann ja die Heizleistung nicht negativ Stellen. Soll ich in diesem Fall die Heizleisutng einfach auf NUll stellen? Wie werden solche Fälle behandelt?
Hallo, ich definiere mal negative Heizleistung als Kühler, aber das schafft ein Brenner nicht. Somit bleibt nur nicht Heizen, z.B. im Sommer bei 30°C über die Fenster etc.
Alles klar, es geht um ein Induktionsofen die bis 1800 °C aufheizt. Ich denke ich werde bei negative u(t) die Leistung schrittweise, proportional zu u(t) verringern
>Aber ich kann ja die Heizleistung nicht negativ Stellen. Soll >ich in diesem Fall die Heizleisutng einfach auf NUll stellen? >Wie werden solche Fälle behandelt? Du machst dir zuviel und zu abwegige Gedanken. Der P-Anteil kann bedingt durch die Art der Strecke nicht negativ werden (es gibt keine Kühlung bei dir). Also muß deine Software den P-Anteil auf einen Minimalwert von 0 begrenzen. Der I-Anteil wird bei soll>ist negativ werden. Das soll er auch. Er verringert die Stellgröße. Also wird U durch den I-Anteil verkleinert, bis soll<=ist. Einfach mal den P und I Anteil überdenken. Alos U nicht auf Null setzen, wenn soll>ist. Damit baust du einen Zweipunktregler und keinen PI-Regler.
pit schrieb: > Alos U nicht auf Null setzen, wenn soll>ist. > Damit baust du einen Zweipunktregler und keinen PI-Regler. Nein nein, ich meinte, falls U(t)<0 dann Leistung=0,oder besser Leistung=Leistung*0.9 um Temperatursprünge zu vermeiden
pit schrieb: >>Aber ich kann ja die Heizleistung nicht negativ Stellen. Soll >>ich in diesem Fall die Heizleisutng einfach auf NUll stellen? >>Wie werden solche Fälle behandelt? > > Du machst dir zuviel und zu abwegige Gedanken. Absolut nicht. Die Tatsache, dass ein üblicher Ofen zwar heizen, aber nicht kühlen kann, ist der Grund dafür, dass die übliche lineare Regelungstheorie strenggenommen nicht angewendet werden darf. Die Zeitkonstanten für Anstieg und Abfall sind nämlich deutlich unterschiedlich. Wie solche Fälle normalerweise behandelt werden, weiss ich leider auch nicht. Ich würde den Regler auf minimales Überschwingen hin auslegen.
> Wie solche Fälle normalerweise behandelt werden, weiss ich > leider auch nicht. Man sorgt dafuer das die maximale moegliche Heizleistung nicht zu weit von der benoetigten Heizleistung entfernt ist. Wenn man wie in diesem Falle auf 1800Grad heizen will dann dimensioniert man die Heizung so das sie bei 100%ED vielleicht 2000-2200Grad schafft. Will man denselben Ofen jedoch auch auf 100Grad regeln dann wird es schon sportlicher. Ich hab in so einem Fall schonmal unterschiedliche Parameter je nach Temperaturbereich verwendet. Olaf
Der sinnvolle Ansatz bei einer Heizung ist die Abhaengigkeit der Heizleistung zur Umgebungstemperatur aufzunehmen, und das Stellglied so anzusteuern. Denn sonst muss der Integrator erst mal an diesen Punkt hinfahren. Dem ueberlagert man dann den Regler.
Andere haben ja schon geschrieben, dass bei einer Heizung eine negative Stellgröße nicht sinnvoll ist. Es gibt aber natürlich Anwendungsfälle, in denen die Stellgröße negativ werden muss. Eine Heizung (auch eine Ofenheizung) ist normalerweise ziemlich genügsam, was die Regelung betrifft. Ich würde sagen, dass in den meisten Fällen ein Hystereseregler ausreicht. Wenn man einen PI-Regler nutzen will, muss man sich zumindest keine großen Gedanken machen über die genauen Parameter machen.
>Die Tatsache, dass ein üblicher Ofen zwar heizen, aber nicht >kühlen kann, ist der Grund dafür, dass die übliche lineare >Regelungstheorie strenggenommen nicht angewendet werden darf. Wer bei einer Heizung (und noch dazu bei mehr als 1000 Grad) ans Kühlen denkt, um eine Regelung zu entwerfen, der macht irgendwas falsch. Normal reicht ein Zweipunktregler aus. Selbst die Hytereese ergibt sich aus der lahmen Strecke. PI ist Luxus, den man sich leisten kann. Zumal ein PI-Regler in Software obereasy zu realisieren ist. Auch eine Begrenzung des I-Anteils ist da sehr, sehr einfach. Auch ein Einsatzpunkt des I-Anteils nur um kleine Temperaturdifferenzen herum ist locker zu implementieren.
Verdammt, ich brauche wieder Hilfe. Anbei die Kurve, die ich aufgenommen habe. Für diese Messung habe ich die Heizleistung um 1% erhöht (die Leistung lässt sich zwischen 0 und 100% auswählen) und gewartet. Kp sollte dann sein * Kp= (1%/115°C)*(1331/7) für P-Teil ergibt sich der Wert von 1.04. Das Macht aber keinen Sinn. Falls die Temperaturdifferenz 100 °C ist, soll die Leistung doch nicht über 100% gehen. Hab ich irgendwas vergessen? * https://controls.engin.umich.edu/wiki/index.php/PIDTuningClassical
Böser K. schrieb: > Das Macht aber keinen Sinn. Falls die Temperaturdifferenz 100 °C ist, > soll die Leistung doch nicht über 100% gehen. du wirst immer wieder den Fall haben, dass dein Regeler einen Wert ermittelt, der physikalisch nicht möglich ist. Genauso wie dein Ofen nicht aktiv kühlen kann, kann er auch keine Heizleistung von über 100% erbringen. Also wirst du bei der Ausgabe der gewünschten Heizleistung dann eben auf einen Bereich 0..100 beschränken müssen. Dein PID Regler weiss nichts von Physik. Für den ist ein Stellwert von 104 einfach nur eine Zahl und nicht mehr. Für den Regler macht es keinen Unterschied, ob er eine Prozentzahl errechnet, oder die Anzahl Briketts, die nachgelegt werden sollen. Zahl ist Zahl
1 | stellWert = ...... PI Gleichung |
2 | |
3 | // auf physikalisch moegliche Werte eingrenzen
|
4 | if( stellWert < 0 ) |
5 | stellWert = 0; |
6 | if( stellWert > 100 ) |
7 | stellWert = 100; |
8 | |
9 | output_to_Oven( stellWert ); |
Karl H. schrieb: > Stellwert von 104 einfach nur > eine Zahl Na ja, es liegt nicht daran dass die Zahl größer als 104% ist, ehe daran, dass bei 10% Leistung die Temperatur schon weit über 1000 °C geht :D Selbst bei e(t) = 1°C wird ein sprung von 1% berechnet, das ist ja mega viel. Und keiner Weiss genau, wie hoch die Temperatur bei 100% Sprung geht, das ist ein experimenteller "Eigenbau" in einer Uni-Labor Übrigens, ich habe den Graph vergessen, hier ist es. Für diese Messung wurde die Leistung von 2.4% auf 3.4% erhöht
Böser K. schrieb: > Karl H. schrieb: >> Stellwert von 104 einfach nur >> eine Zahl > > Na ja, es liegt nicht daran dass die Zahl größer als 104% ist, ehe > daran, dass bei 10% Leistung die Temperatur schon weit über 1000 °C > geht :D Aber du hast immer noch eine Regelabweichung von 100° Also heizt der Regler. Der Ofen wird wärmer, die Regelabweichung wird geringer und der P Anteil nimmt dann seinen Einfluss immer mehr zurück. Du scheinst zu übersehen, dass sich das ganze ja auch in der Zeit entwickelt. Das ganze ist ein dynamischer Prozess! Alle t Zeiteinheiten bewertet der Regler die Situation anhand der Messgröße und der damit verbundenen Regelabweichung neu. Du fährst ja dein Auto auch nicht dauernd mit komplett durchgedrücktem Gaspedal. Das machst du beim Anfahren und beim Beschleunigen. Aber wenn die Zielgeschwindigkeit 80km/h in Reichweite kommt, nimmst du das Gaspedal wieder zurück. Und das machst du deshalb, weil du ja so schnell wie möglich die 80 erreichen willst. Also gibst du zum Beschleunigen soviel Gas, wie nur geht und nimmst das Gas erst dann zurück, wenn du schon 'in der Nähe' der 80 bist.
> Und keiner Weiss genau, wie hoch die Temperatur bei 100% Sprung geht, > das ist ein experimenteller "Eigenbau" in einer Uni-Labor Noch ein kleiner Punkt. Bei vielen Oefen gibt es eine definierte maximale Anstiegsgeschwindigkeit der Temperatur an die man sich halten sollte wenn der Ofen alt werden soll. Aber bei einem experementellen Eigenbau koennt ihr da ja notfalls neu bauen. :-) Olaf
Die Frage bleibt, ist die Regelung durch eine PI-Regler vorgegeben, muss der Ofen hochgenau die Temperatur halten oder hast du einfach Interesse an dem Thema? Wenn alle drei Antworten 'nein' sind, empfehle ich weiterhin einen Hysterese-/Zweipunktregler. Der ist deutlich einfacher und für normale Heizanwendungen ausreichend.
Dussel schrieb: > Der ist deutlich einfacher Was jetzt nicht heißt, dass ein PI-Regler übermäßig schwierig ist. Aber um Vorteil gegenüber einem Zweipunktregler zu haben, muss man schon ein bisschen Aufwand treiben, um passende Parameter zu finden.
Du solltest auch die Zeiten im Auge behalten. Ist Dein Ofen 10 Min. lang etwas im Saldo, so sollte sich der I-Teil nicht gleich auf 588% aufsummieren. Beim Heizen von Massen passiert oft sogar im 10-Minuten-Bereich nichts. Das ist aber kein Grund, für den Integrator, kalte Füße zu bekommen. Natürlich reagiert ein "kalter" Ofen im ersten Moment. Das gibt sich aber sehr schnell. Derlei kann man am besten "sehen", indem man sich die beteiligten Werte in einer Tabelle auflistet. Natürlich zusammen mit der "echten" Zeit.
Dussel schrieb: > Die Frage bleibt, ist die Regelung durch eine PI-Regler vorgegeben, muss > der Ofen hochgenau die Temperatur halten oder hast du einfach Interesse > an dem Thema? Das ist meine Projektarbeit:) Mein Betreuer hat gesagt, ich soll das alles mit PI-Regelung realisiern. Mein Vorschlag wäre einfach: Falls Tist<Tsoll Leistung=Leistung+PositivSlope, Falls Tis>Tsoll Leistung=Leistung-NegativSlope Wobei Pos/Neg Slopes Temperaturabhängig sein können. Aber der Betreuer will unbedingt PI.
Ein PI-Regler, bei dem der I-Anteil bei 0,00000000001 liegt ist immer noch ein PI-Regler und kein P-Regler.
Böser K. schrieb: > Aber der Betreuer will unbedingt PI. Na dann künstel nicht lang rum. Wirf deinen ermittelten Wert in den Regler, das Ki setzt du erst mal auf 0 und dann lässt den den mal heizen. Die Fragestellung lautet zu diesem Zeitpunkt dann noch NICHT, ob die Zieltemperatur erricht wird, sondern die Fragstellung lautet: beginnt die Temperatur zu schwingen (der P Regler schiesst dann übers Ziel hinaus, drosselt zu sehr, die Temperatur fällt zu weit, der Regeler heizt wieder volle Kanne, die Temperatur steigt wieder, etc. etc.). Wenn die Temperatur schwingt, dann gehst du mit dem Kp kleiner, bis es nicht mehr schwingt. Wenn es von anfang an nicht schwingt, dann kannst du versuchen das Kp größer zu machen, bis Schwingen einsetzt. Das erste Ziel ist es also, das Kp so einzustellen, dass keine Schwingneigung vorhanden ist. Und erst dann, wenn du das erreicht hast, erst dann wird Ki erstmals ungleich 0. Dann sollte sich der Regler dann auch an die Zieltemperatur herantasten. Je größer das Ki, desto schneller. Aber auch hier: wenn danach die Temperatur schwingt, dann hast du es übertrieben und dein Ki ist zu groß. Du wirst dabei etwas auf den ersten Blick erstaunliches feststellen: Wenn der Regler sauber auf der Zieltemperatur sizt, dann ist der P-Anteil im Regler 0 und nur noch der I-Anteil hält das System auf dem Vorgabewert.
Ja, das hab ich auch vor. Nur hat keiner das System mit der Leistung über 15% betrieben (entspricht ca 1500 °C). Mal sehen was der Betreuer von meinen Werten hält. Ich will das Labor nicht verbrennen:)
Böser K. schrieb: > Ja, das hab ich auch vor. > Nur hat keiner das System mit der Leistung über 15% betrieben > (entspricht ca 1500 °C). Vergiss diesen Zusammenhang. Dein Regler belässt es ja nicht bei 15% auf Dauer.
Auch mit einem kleinen I Anteil änder sich das Verhalten gegenüber dem reinen Proportionalregler. Ein kleiner I Anteil macht den Regler halt besonders langsam, halt also sogar großen Einfluss. In den Fällen von Heizung ganz aus oder ganz an verlässt man den linearen Bereich für den der PI Regler gemacht ist. Um zu verhindern das der I Anteil in den Zeiten zu groß wird, gibt es verschiende Strategien (Anti Windup). In der einfachsten Form wird einfach der I Anteil nicht weiter verändert wenn das Stellglied die Sättigung ( 0 oder 100%) erreicht hat. Es gibt da auch noch leicht bessere Versionen. Die Zeitkonstanten (für die mehr oder weniger exponentielle Annäherung an den Endwert) für Heizen und Abkühlen des ungeregelten Systems sind übrigens trotzdem praktisch gleich. Nnur kann man im Bereich Heizen nachregeln, so dass es mit Regelung dann schneller wird als das freie Abkühlen. Je nach Ofen hängt die Zeitkonstante ggf. von der Temperatur ab und es wird bei höherer Temperatur meist schneller. Für die Auslegung des Reglers gibt es Einstellregeln, sowohl für den PI als auch den PID Fall. Das geht oft über die Aufnahme der Sprungfunktion.
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.
