Temperaturregelung elektr. beheizter Behälter - Pulsweitenmodulation, etc.

Begonnen von Vaninger, 24. August 2011, 20:34:24

Vorheriges Thema - Nächstes Thema

0 Mitglieder und 1 Gast betrachten dieses Thema.

Vaninger

Liebes Oscat Forum,

ich beheize die Maischpfanne meiner kleinen Hobbybrauerei mit sechs 1 kW Kochplatten, von denen jeweils zwei über ein Halbleiterrelais geschaltet werden. Da mein System mit der bisherigen Programmierung durch die Masse der Kochplatten und auch des eigentlichen Edelstahlbehälters zum Überheizen neigt, würde ich hier gerne mit der Oscat-Bibliothek ein besser geeignetes Regelverfahren entwickeln und hoffe hier auf eure Hilfe und Anregungen.

Im Anhang findet ihr hierzu eine erste Grafik, die den Aufheizvorgang sowie das Überschwingen der Temperatur zeigt.
Folgendes wurde gemacht:
Knapp über 43 °C wurde die Heizung mit 100% eingeschaltet, bei 60°C wurde die Heizung abgeschaltet.

Danach ergab sich durch die gespeicherte Wärme der Kochplatten ein Überschwingen von ca. 4,5 °C. Demnach hätte bei diesen Bedingungen die Heizung bereits bei 55,5 °C abgeschaltet werden müssen, um eine Solltemperatur von 60°C zu erreichen. Die Abschalttemperaturdifferenz variert durch die Wärmeverluste leider je nach Behälterinhalt und der Temperatur des Inhalts, wodurch diese nur schwer als Parameter benutzt werden kann. 

So ähnlich funktioniert die jetzige Regelung auch. Zur Zeit wird 3 °C vor Solltemperatur die Heizung ausgeschaltet, danach gibt es eine 7 minütige Auszeit der Heizung, in der sich die gespeicherte Restwärme auf den Behälterinhalt überträgt und danach wird mittels Pulsweitenmodulation bis zum Sollwert getaktet. Leider kommt es hier teilweise auch noch zu Überschwingern der Isttemperatur, da scheinbar zu viel Wärme in den nun wieder erhitzten Kochplatten vorhanden ist.

Habe jetzt schon mal mit der Oscat Bibliothek und den FT_PID sowie dem CTRL_PWM experimentiert, leider komme ich mit diesen Bausteinen nicht so richtig klar, da der PWM Baustein auch bei kleinen Regelabweichungen fast immer an ist und kaum taktet.

Hat sonst jemand eine gute Idee, wie ich das Verhalten (Nachheizen) der Kochplatten in Abhängigkeit von Behälterinhalt und der Temperatur des Inhalts bestimmen könnte und dadurch die Abschaltzeit/temperaturdifferenz der Heizung bestimmen könnte? Eventuell durch die Bestimmung der Masse der Kochplatten?
Oder hat schon mal jemand eine ähnliche Regelung aufgebaut?

Vielen Dank für eure Antworten.

Grüße
Daniel








[gelöscht durch Administrator]

Fussel0804

Hi,

Dein Problem verstehe ich und ich bin der meinung, ich hab ne lösung für Dich.

Nutze Den CTRL_PID
Der ausschlaggebende Punkt, um Richtig zu Regeln ist die Vorhaltzeit des Reglers.
In deiner Kurve hast du im Mittelbereich eine Temperatursteigung von ca 1°C in 100 Sekunden
Ab dem Punkt des ausschaltens Steigt die Temperatur für ca 1000 Sekunden weiter an.

D.h. der Regler muss mit einer gewissen Vorhaltzeit (ca 200-1000 Sekunden) Rechnen und quasi über diese Zeit in die "Zukunft" rechnen und daher auch schon vor erreichen des Sollwertes aktiv in den Regelprozess eingreifen.
Mit dieser Zeit musst du "spielen".

ACT: ISTWERT
SET: Sollwert
KP: positiver Wert (kann ich dir aber keinen Wert nennen)
TV: 200-1000 Sekunden
LL: 0.0
LH: 1.0

Versuche es mal und berichte, was passiert.

Gruß Stefan

Vaninger

Hallo Stefan,

danke für die Antwort. Sehe ich es richtig, dass du den I-Anteil, also die Nachstellzeit, mit 0 ansetzen würdest?

Danke!

Gruß
Daniel

Fussel0804

Hi,
mit nachstellzeit habe ich noch nicht gearbeitet.
Aber nehme einfach 0 an.

shooter

besser in english
Die heizkorper durfen viel ofter geschaltet werden.
Also du hast drei relais dazu. benutz die dan auch.

erstmal schalte eine gruppe ab wenn du weist die rest haltet die temperatur.
dan die nachste wenn es knap wird.

Weil du die temperatur moglichst schnell erreigen wolst, schaltet alles ein bis eine berechnung vom anstieg sagt das du die soll erreichst. dan schalte alles ab.
wenn die soll erreicht ist, dan starte den PID regler mit eine schaltfrequenz von 10 sekunden und abhangig von differenz mit eine zeit in sekunden.

Ich glaube aber das die heizkorper viel zu heiss werden fur den kessel, also ich wurde die auch mit PWM ansteuern, aber wieviel soll gemessen werden. hange mal eine tempfuhler zwissen die heizung und den kessel.