Ich bin gerade dabei einen Regler für eine Art Heizung zu realisieren. Dabei gibt es noch einige Probleme (Temperaturmessung und Ansteuerung der Heizpatronen), jedoch möchte ich hier mal danach fragen, wie ich die Reglerparameter ermitteln kann. Einen funktionierenden PI Regler habe ich einentlich schon, jedoch muß ich noch die geeigneten Parameter (also K_p und K_i) ermitteln. Mein Problem liegt eigentlich darin, daß ich nicht genau weiß, wie ich eine Sprungantwort der Regelstrecke aufnehmen soll. Das System ist nämlich EXTREM träge. Die Heizpatronen befinden sich in einem Metallblock, und ich möchte die Temperatur in direkter Umgebung des Blocks regeln. Ich kann nicht die Heizpatronen einfach anstellen (24Volt/ 70Watt), und warten bis sich die Temperatur irgendeinem Endwert annähert, da dann die ganze Sache zu heiß werden würde. Meine maximale Temperatur die ich regeln möchte beträgt 80 Grad. Kann ich dann zum Ermitteln der Sprungantwort die Patrone einfach mit einem Bruchteil der vorgesehenen Spannung ermitteln und dann daraus meine Reglerparameter ableiten? Gruß, Stefan
Hallo, was ich nicht verstehe ... Wenn die Heizung 70W hat, dann sollte sie permanent 70W können. Wenn Du das Umfeld auf 80Grad regelst, können die Patronen nicht überhitzen, es sei denn, der Wärmeübergangswiderstand ist so hoch, das sich die Temperatur an der Basis um die Patrone auf zB 300Grad aufheizt, und außen am Block sind noch 20Grad. Eigentlich regelt Du die Temperatur im Umfeld der Patronen. Wie hoch darf die Temperatur der Patronen den werden? Es ist schwer, sich dein Problem vorzustellen!
OK, es ist offenbar tatsächlich etwas schwer sich mein Problem vorzustellen. Also nochmal: ich habe einen Metallblock, in dem sich eine Bohrung befindet, in die eine sog. Heizpatrone hineingesteckt wird. Wird nun eine Spannung an die Heizpatrone angelegt, so erhitzt sich der Metallblock und soll durch Wärmeabstrahlung die Luft in einem kleinen Raum erhitzen. Das Problem ist nun folgendes: Wenn ich die Heizpatrone nun anschalte (24 und 70 W) und etwas warte, so wird der Metallblock bald eine Temperatur von ~200 Grad haben, und die Luft wahrscheinlich auch bald über 80 Grad betragen. Mit was für einer Ansteuerungsart man das regelt, weiß ich auch nicht genau. Ich habe mir überlegt es mit PWM zu machen, anstatt normal aus und an zu schalten. Nur weiß ich nun nicht genau, wie ich meine Regelparameter für meinen PI Regler bestimmen kann. Ich hoffe das Problem ist nun klarer geworden, ansonsten einfach nochmal nachfragen. Gruß, Stefan
Hi! Damit du ein Gefühl für das ganze bekommst solltest du einfach Delta T je Zeiteiheit(zb.1s) für einen bestimmten PWM-Wert bestimmen. Kp eventuell nicht zu hoch dafür Ki um so höher. Da du scheinbar kein Überschwingen haben möchtest,Tsoll zur Ki-Berechnung etwas absenken (0,5-2°C), dann setzt das Abregeln eher ein. Das muss man einfach austesten. MFG Uwe
Hi, und wenn Du erstmal die Ausgangstemperatur misst, daraus die nötige Temperaturdifferenz berechnest und aus der Masse des Blocks und der Wärmekapazität die nötige Energie ? Dann kannst Du die Patronen mit zb 50% Leistung ( PWM ) entsprechend lange anschalten und bist schon mal fast am Ziel. Danach kann dann ja Deine Regelung einsetzen... Gruß Klaus
Also ne Saune wird´s nicht. Ich glaube da würde es mit 70 Watt auch etwas kühl oder eng werden. Je nachdem. Was sind LWL Stecker? Stefan
Hier noch eine Zusammenfassung der Regelstrategie. Für den Hausgebrauch eigentlich immer ausreichend.. Viel Glück Klaus
Danke erstmal für eure Tipps. Ich bin immer noch mit dem Regler beschäftig. 1) Ich frage mich gerade, was für eine Abtastzeit wohl sinnvoll wäre. Habt ihr da Erfahrungswerte oder wißt ihr ob sich die "optimale" Abtastzeit berechnen oder experimentell bestimmen läßt? 2) Ich habe den Eindruck daß ein derart träges System ziemlich zu Schwingungen neigt. Zum einen ist ja ein zu hoher K_p Faktor (proportionale Verstärkung) für Schwingungen verantwortlich. Ich habe mir jedoch auch folgendes überlegt: mein I-Anteil wird ständig aufsummiert (aufintegriert). Wenn nun irgendwann mein Sollwert erreicht ist, habe ich den Eindruck, daß sich da mit der Zeit eine recht beträchtliche Summe gebildet hat, die dann erstmal wieder "abgebaut" werden muß. Das hat zur Folge, daß obwohl meine Regelabweichung bereits negativ ist, der Block immernoch beheizt wird. Ist es deshalb sinnvoll, den I-Anteil zu begrenzen? Gruß, Stefan
Hallo, normalerweise addiert man die rechnerrischen Werte den P+I+D. Das heißt, schwingt dein Wert über durch Durchaufsummieren des I, dann muß der P schon wieder anfangen, in die andere Richtung zu wollen und macht die Stellgröße kleiner ... Sascha
@ Stefan Zur Abtatstzeit: Als Faustformal kann man sagen, dass man grob ein 10el - 20el der Zeitkonstante tau des Systems nehmen kann (die Zeit, die dein System braucht, um auf 63% der Endtemperatur zu gelangen).
@ Sascha: Ja, ich verstehe was du meinst. Bei mir werden die Größen auch alles aufsummiert. Hier ist mein (im Moment noch PI-) Regler: // Regelabweichung e_k berechnen: e_k = temp_soll - temp_ist; // P-Anteil: u_p = (int) (e_k * k_p); // I_Anteil: u_i += (int) (e_k * k_i); // gesamte Stellgröße: u_ges = u_i + u_p; // Stellgrößenbegrenzung: if (u_ges > 255) u_ges = 255; else if (u_ges < 0) u_ges = 0; // Pulsbreite setzen (wegen Mosfet Treiber (-> Invertierung) // wird von 255 (-> 100% PWM) abgezogen): OCR0 = (int) (255 - u_ges); Nun ist es so. Meine Stellgröße wird begrenzt, da mehr als 100% PWM (also Gleichstrom 24 V) ja keinen Sinn ergeben. Während u_p jedes mal neu berechnet wird, summiert sich u_i ja auf. Irgendwann, wenn die Regelabweichung e_k negativ geworden ist, ist u_p ebenfalls sofort negativ, u_i muß aber erstmal "dezimiert" werden, ehe es negativ wird. Und das dauert seine Zeit. Weißt du was ich meine? Stefan
ok, das ist richtig, das Verhalten ist nun Einstellungssache. Stell Dir vor, Du machst den P richtig groß( theoretisch), dann würde die kleinste Abweichung vom Soll so einen großen negativen Wert berechnen, das der I gar nicht auffällt. Ein korrekt regelender Regler schwingt ein wenig über und findet sich dann beim Soll. Man kann aber den Regler auch justieren, so daß er sich wie eine PT1-Strecke verhält(e-Funktion). Das liegt allein an der Parametrierung. Dein Ansatz ist richtig. Um nun den Regler korrekt einzustellen kannst Du seitenweiße Berechnungen machen oder Du nimmst zB die Ansätze von Ziegler-Nichols. Also: Du stellt nur den P so ein, das der Regler anfängt zu schwingen. Dann schaust Du dir die Schwingfrequenz an. Und nun nimmst Du die Faktoren vno Ziegler-Nichols und berechnest deine neuen Werte für P (ausgehend vom letzten eingestellten Wert) und I (Ausgeheng von der Schwingfrequenz). Dann sollte dein Reglel gut arbeiten. Wie die Regelfunktion aussehen soll, bestimmst allein Du. Nur mit diesen Faktoren kann man halt so optimieren, wie es in der Allgemeinheit korrekt ist. Ein stabiler schneller Regler. Und was am meinsten Spaß macht, die Parameter händisch zu finden. Schwierig nur, da man gerade bei Temperatur eine Menge Zeit mitbringen muß. Ich muß Dieselregler, Spannungsregler usw. einstellen, da ist die Reaktion sehr schnell zu sehen und ich kann reagieren, bei Temperaturregelung muß man halt Zeit haben. Ich habe hier mal ein direktes Beispiel, das auch die Wiederholzeit der Routine beinhaltet. Somit hast Du eine genaue Darstellung deines Integrators ergebnis= K( Verstärkung propor)*e(Regelabweichung) + K(Verstärkung integral)*T0(Ausführungszeit)/TI(Integrierzeit)* (e(Regelabweichung)+e(Regelabweichung vorher)/2 Dies ist eine mathematische Möglichkeit, es digital zu machen ... Im Anhang eine kleine Hilfe
Hallo Sascha, vielen Dank für deine ausführliche Hilfestellung. Ich habe mir die Parameter bereits mit den Ziegler Nichols Methoden bestimmt, jedoch nicht mittels der Dauerschwing Methode (und kritischer Verstärkung), sondern mittels der Sprungantwort. Meine Paramter wurden dann wie folgt berechnet: Verstärkung: k_p = 0,5*T_t = 0,5*85s = 43 Verzugszeit: T_i = (0,5*(T_t)^2*k_s)/(T*1,2) = 210 s*°C Erklärung der Größen: T_t=85s: Totzeit k_s=51°C: statischer Endwert T=743s: Zeit bis zum Erreichen von 0,63*k_s Die Formeln oben sind zum Berechnen der Parameter eines PID Reglers. Den D-Anteil habe ich aber bisher noch nicht drin, ich weiß auch nicht ob ich den brauche... Es gibt auch Formeln für einen PI Regler, da hätte ich jedoch eine Verstörkung von k_p=3,33*T_t=283 rausbekommen, was mir etwas viel vorkam... Wie du bereits richtig erkannt hast, ist das nervige die Zeit. Das System ist halt extrem träge, der Metallblock braucht immer weigkeiten zum Aufheizen und vor allem auchzum wieder abkühlen... Sascha, was ist in deiner Formel genau die Ausführungszeit T_0? Ist das die Zeit mit der ich abtaste? Stefan
Ja, T0 entspricht der Ausführungszeit, zB. 2ms, wenn der Integrator alle 2 ms besucht wird und gerechnet wird. Diese Formel habe ich einem sogenannten SPAC-Modul entsnommen. Dieses Modul ist ein Mehrfachregler und wird auf den Backplane einer Mitshubishi-SPS geklemmt. Somit kann eine SPS schnelle Regelvorgänge verwalten. Die Formel sollte auch ins 'normale' Leben übertragbar sein. Ich denke, es aber weitere mathematische Modelle Modelle zur Ermittlung des PID ... Sascha
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.