- 12V Akku mit 280 Ah bauen         
Ergebnis 1 bis 10 von 10

Thema: Regelung für Heizwicklung "Overshot" - Gelöst!

  1. #1
    Erfahrener Benutzer Robotik Einstein Avatar von wkrug
    Registriert seit
    17.08.2006
    Ort
    Dietfurt
    Beiträge
    2.214

    Regelung für Heizwicklung "Overshot" - Gelöst!

    Anzeige

    LiFePo4 Akku selber bauen - Video
    Hallo Forumsteilnehmer,

    ich möchte einen Thermostat für eine kleine Heizwicklung ( 20W ) entwickeln.
    Die Schaltung wird von einem ATMEGA8 gesteuert, der die Heizwicklung via MOS FET mit PWM Signalen ansteuert.
    Als Messweraufnehmer dient ein Temperatursensor Typ LM335 der thermischen Kontakt mit der Heizwicklung hat.
    Die Schaltung ist im Prinzip fertig und funktioniert bis auf ein paar Kleinigkeiten schon gut.

    Nun zu meinem Problem:
    Beim ersten Start der Heizwicklung, kommt es zu einer Überhitzung der Heizwicklung ( Overshot ), weil der Temperatursensor erst ca. 4Sekunden später die aktuelle Temperatur der Heizwicklung mitkriegt. Die Temperatur schießt somit um 4...6°C über den eingestellten Temperaturpunkt hinaus.

    Wie kriegt man sowas in den Griff, ohne die Anheizleistung zu stark zu verringern ?
    Theoretisch sollte so etwas über eine Art Tendenzauswertung klappen, blos wie berechnet bzw. realisiert man sowas (wenn möglich ohne höhere Mathematik) und wie kriegt man das in den Microcontroller.

    Ich hätte auch gerne, das sich die Schaltung im Betrieb einschwingt und nicht ständig zwischen PWM Extremwerten hin und her pendelt, was sie zur Zeit gelegentlich tut.
    Die Temperaturabweichung beträgt dabei maximal 2°C.
    Wie kriegt man das mit der vorhandenen Schaltung am einfachsten hin.

    Zu den Rahmenbedingungen.
    Die Umgebungstemperatur kann zwischen -25 und +20°C liegen.
    Die Heiztemperatur (Wunschtemperatur) liegt im Bereich von 24...43°C.
    Die PWM lässt sich in 0,2% Schritten ( 512 Schritte ) einstellen.
    Die maximale Temperaturabweichung soll 1°C betragen.
    Die Auflösung des Sensorsystems ( Sensor + A/D Wandler ) beträgt 0,5°C.

    Ich bin jetzt nicht der Regeltechnik Crack und hab auch kein Hochschul Studium hinter mir, also bitte allgemein Verständlich antworten, wenn das möglich ist.

  2. #2
    Erfahrener Benutzer Roboter Experte
    Registriert seit
    17.02.2006
    Alter
    54
    Beiträge
    781
    Also, das Problem mit dem Overshoot kann man auf zwei Arten lösen:
    1. Softstart, also Temperatur langsam hochfahren, aber das willst du ja nicht.
    2. Brauchbaren Regler programmieren :P Ich weiß ja nicht wie die Regelung bisher funktioniert, vermutlich ein Integralregler, dann sollte man mal testweise noch einen Proportionalteil dazurechnen, d.h. du sagst dem Mikrocontroller "nimm den Temperaturunterschied der aktuellen Messung zur vorherigen, wenn sich die Temperatur verändert hat dann rechne das mal einen bestimmten Faktor und addiere das zum PWM-Wert". (Edit: Vorsicht mit dem Vorzeichen )
    Achso... Das Anheizen wird dadurch wahrscheinlich auch einen kleinen Tacken langsamer, dürfte aber nicht extrem stören.

    Es gibt hier auch einen Artikel zum Thema Regelungstechnik...

    Zu dem zweiten Hin-und-Herpendeln noch: Evtl. hat sich das erledigt, wenn der Regler auch vernünftig einschwingt.

  3. #3
    Erfahrener Benutzer Roboter Experte
    Registriert seit
    30.09.2006
    Beiträge
    734
    Hallo wkrug,
    wie dennis bin ich der Meinung, dass sich das Problem mit einem PI-Regler lösen lässt. Hierfür braucht man etwas Mathematik. Es lohnt sich nicht, ein vorhandenes Programm ohne Verständniss anzupassen. Bemüh mal die Suche nach "PID Regler", dort habe ich einen sehr guten (englischen) link gepostet, in dem eine Heizungsregelung diskutiert wird.

  4. #4
    Erfahrener Benutzer Robotik Einstein Avatar von wkrug
    Registriert seit
    17.08.2006
    Ort
    Dietfurt
    Beiträge
    2.214
    @dennisstrehl
    Die Regelung schaut bis jetzt so aus, das für den vorhandenenen Temperaturunterschied ein Inkrement errechnet wird.
    Dieses Inkrement wird dann einfach zum bestehenden Phasenwinkel dazuaddiert.
    Dieser Vorgang wird alle 35mS wiederholt.
    Bei Temperaturabweichungen unter 2°C wird diese Zeit auf 350ms verlängert.
    Also ich würd sagen das ist eine reine integrierende Regelung.
    Das funktioniert auch im Prinzip schon recht gut, nur durch die Verzögerung der Temperaturweiterleitung schießt das ganze Spiel über den eingestellten Sollwert hinaus. Auch wenn ich nach Erreichen des Sollwertes die Spannungszufuhr komplett abschalte ist im Heizsystem noch so viel Energie gespeichert, das es zu dieser Übertemperatur kommt.
    Sprich der Regler muss also schon im Vorfeld ahnen, das nun bald ein Temperatur Überschwinger zu erwarten ist und entsprechend darauf reagieren.
    Das es nicht ganz ohne Mathematik geht ist mir schon klar.
    Blos wenn Du mir jetzt ne 3 zeilige Formel um die Ohren haust ist mir damit auch nicht geholfen.

    Das was Du über den Proportionalanteil schreibst ist mir im Prinzip schon klar.
    Sobald aber die Heizung mal läuft habe ich keine Information mehr über die Umgebungstemperatur. Das heisst ein Proportionalanteil der bei -20°C noch OK ist, wird mir bei +15°C Umgebungstemperatur die Heizung hoffnungslos überhitzen. Es müsste sich also um einen Proportionalanteil der Temperaturdifferenz handeln, was ja dann trotzdem wieder ein integrierendes Verfahren wäre.

    Ausserdem ist die Spannung mit der die Heizung versorgt wird nicht 100% konstant und kann bist zu +/- 10% schwanken, was das Problem nicht unbedingt vereinfacht.

    Nun immer noch die Frage, wie komm ich denn auf vernünftige Regelparameter ? Vieleicht kann man da ja auch Experimentell was ermitteln ? Wie sollte ich da rangehen, ohne vorher ein Steuer und Regelungstechnik Studium abzuschließen ?

  5. #5
    Neuer Benutzer Öfters hier
    Registriert seit
    07.03.2007
    Beiträge
    27
    man kann doch locker einen 2-punktregler vorschalten per software

    wenn temp zu hoch abschalten, nur löst das nicht das problem warum der sensor es nur nach 4 sekunden mitbekommt

    das muss man lösen

  6. #6
    Erfahrener Benutzer Roboter Genie
    Registriert seit
    09.05.2006
    Beiträge
    1.178
    Mechanische Lösung:
    Heizung in Alublock/Kupfer setzen mitsamt dem Sensor,
    der Block puffert die Tempschwankung wie ein Kondensator,
    der Sensor bekommt das besser mit.

    Software:
    Soft-Start erst paar Sekunden nur mit wenig Leistung
    ausgehend vom ersten Messwert vor dem Start:
    Startschleife 10sekunden
    BSP.:
    10°C = 30%max
    20% = 40% max
    dann normale Programmschleife

    ..wie mans braucht

    Wenn aber dein Sensor einfach dermaßen träge ist, nützt auch die beste+schnellste (auf den Messwerten basierende) Software nichts.
    GrußundTschüß \/
    ~Jürgen

  7. #7
    Erfahrener Benutzer Roboter Experte
    Registriert seit
    17.02.2006
    Alter
    54
    Beiträge
    781
    > "Es müsste sich also um einen Proportionalanteil der Temperaturdifferenz handeln, was ja dann trotzdem wieder ein integrierendes Verfahren wäre."

    Nein... Man differenziert die Temperatur indem man die Temperaturdifferenz bildet, und das was man rausbekommt integriert man wieder durch das auf-den-PWM-Wert-draufaddieren. Beim Integralregler wird dagegen die Abweichung vom Sollwert gemessen und integriert. Würde man noch einen Differentialteil nutzen wollen, müsste man dafür 2x differenzieren und anschließend den Wert aufintegrieren. Direkt geht das meines Wissens nicht, wenn man mehrere Regler (Integral und Proportional) kombinieren will.

    Den dazugehörigen Regelparameter kann man experimentell bestimmen... Stell es beispielsweise so ein, dass wenn die Temperatur um 0,5°C steigt / sinkt, die Regelgröße um 5 Prozentpunkte verringert / erhöht wird. Wenn es in die richtige Richtung geht, kannste den Wert noch erhöhen.
    Im Regelungstechnik-Artikel gibt es ein paar mehr oder weniger einfache Designregeln... Das mit der Schwingungsmethode sieht noch relativ einfach aus.

    Zum Verständnis: Die beiden Regelteile arbeiten kurz vorm Erreichen der korrekten Temperatur gegeneinander, der Integralregler will die Heizleistung erhöhen, während der Proportionalregler dauernd die Heizleistung verringert, weil die Temperatur steigt. Dadurch wird die Heizleistung schon vor dem Erreichen der Solltemperatur verringert.
    Der Proportionalregler dient letztlich nur dazu, den Integralregler zu stabilisieren, die Endtemperatur wird weiterhin durch den Integralregler bestimmt.

  8. #8
    Erfahrener Benutzer Robotik Einstein Avatar von wkrug
    Registriert seit
    17.08.2006
    Ort
    Dietfurt
    Beiträge
    2.214
    Heute Nachmittag hab ich mal eine ausgedehnte Messsitzung gemacht und
    ich glaube ich hab jetzt eine recht brauchbare Lösung für mein Problem gefunden.

    Ich habe in die Regelung einen Proportionalanteil mit recht hohem Verstärkungsfaktor eingebaut.
    Allein dieser Regelzweig bringt mir die Regelung bis auf 3...4°C an den Wunschwert heran.
    Ab einem bestimmten PWM Wert greift eine integrierende Routine mit ein, die zum Proportionalanteil alle 100ms die PWM um 1 erhöht (weniger geht ja nicht), das sind rund 0,2%.
    Wird der Sollwert überschritten wird die PWM alle 100ms um 2 erniedrigt.

    Ergebnis:
    Die Schaltung startet jetzt mit der maximalen Leistung und weicht im Regelbetrieb nur noch um 1...1,5°C vom Sollwert ab.
    Ein Temperatur Overshot findet nicht mehr statt.

    Da die Genauigkeit der Messwerterfassung auch nur bei +/- 0,5°C liegt passt mir das so.

    Nimmt man die Regelzeit von 100ms zurück auf 35ms (kann man per Taststur eingeben) wird die Schaltung instabil, weil der integrierende Anteil die PWM zu schnell hochfährt.

    Ich möchte mich bei allen Bedanken, die mir hier geholfen haben, im Besonderen bei "dennisstrehl", der mich auf diese Lösung gebracht hat.

  9. #9
    Erfahrener Benutzer Robotik Visionär Avatar von oberallgeier
    Registriert seit
    01.09.2007
    Ort
    Oberallgäu
    Beiträge
    8.684
    Zitat Zitat von wkrug
    ... einem ... Wert greift eine integrierende Routine mit ein ... Wird der Sollwert überschritten wird ... erniedrigt ...
    Ich habe bei integrierenden Anteilen gute Erfahrung damit gemacht, dass um den Sollwert herum ein schmales Band bleibt, in dem der Integrierer wieder abgeschaltet wird. Das verhindert meistens das "Zittern" um den Nullpunkt bei integrierenden Anteilen - da das Stellwert-Increment meistens NICHT zum noch verbleibenden Abweichungs-Rest passt.
    Ciao sagt der JoeamBerg

  10. #10
    Erfahrener Benutzer Robotik Einstein Avatar von wkrug
    Registriert seit
    17.08.2006
    Ort
    Dietfurt
    Beiträge
    2.214
    dass um den Sollwert herum ein schmales Band bleibt
    Diese Idee hatte ich auch schon.
    Da aber die Heizleistung auch von der Umgebungstemperatur abhängig ist, ich zu diesem Zweck aber nicht noch einen Sensor einbauen will, muß das Band dann doch etwas breiter sein, als ich mir das wünschen würde.
    Ich glaub ich hab aber jetzt einen Kompromiss gefunden mit dem ich gut leben kann.

Berechtigungen

  • Neue Themen erstellen: Nein
  • Themen beantworten: Nein
  • Anhänge hochladen: Nein
  • Beiträge bearbeiten: Nein
  •  

12V Akku bauen