Heizungsregelkreis und Befeuchterregelkreis in meiner Testkammer kämpfen ständig gegeneinander
Von English mit KI übersetzt ·
Abschlussarbeit, kleine Klimakammer (etwa 0,5 m3). Zwei Regelkreise auf einem ESP32: ein PID-Regler auf die Lufttemperatur, der über ein SSR eine 150-W-Heizung ansteuert, und ein Zweipunkt-Befeuchter (Ultraschall, Nebel in die Kammer) auf die relative Luftfeuchte. Sollwerte 25 °C und 60 %rF.Jeder Regelkreis für sich funktioniert. Zusammen schwingen sie mit einer Periode von etwa 6 Minuten: Die Heizung treibt die Temperatur nach oben, die relative Feuchte fällt, der Befeuchter schaltet sich ein, der Nebel kühlt die Luft ab, der PID-Regler gibt mehr Leistung, die Feuchte fällt erneut … Mein Betreuer sagt, die Regelkreise seien gekoppelt und ich solle sie „entkoppeln“, hat aber nicht erklärt, wie, und ich möchte außerdem verstehen, warum.Alle Daten gehen alle 5 s an Hermetry (temp_c, rh, heater_pct, humid_on). Ich habe zwei Diagramme auf dem Dashboard, eines für Temperatur und eines für Feuchte, aber es ist schwer zu erkennen, was was auslöst, wenn sie auf getrennten Karten liegen.
Final year project, small climate chamber (about 0.5 m3). Two loops on one ESP32: a PID on air temperature driving a 150 W heater through an SSR, and an on/off humidifier (ultrasonic, mist into the chamber) on relative humidity. Setpoints 25 C and 60 %RH.
Each loop on its own behaves. Together, they oscillate with a period of about 6 minutes: heater pushes temp up, RH drops, humidifier kicks in, the mist cools the air, the PID pushes harder, RH drops again… my supervisor says the loops are coupled and to „decouple them“ but didn’t say how, and I’d also like to understand why.
Everything goes to Hermetry (temp_c, rh, heater_pct, humid_on) once every 5 s. I have two charts on the board, one for temperature and one for RH, but it’s hard to see what leads what when they’re on separate cards.
Von English mit KI übersetzt ·
Könnten Sie den Befeuchter nur dann betreiben, wenn die Heizung aus ist? Also zeitlich abwechselnd, Time-Slicing sozusagen.
Could you run the humidifier only when the heater is off? Like time-slice them.
Von English mit KI übersetzt ·
Ich habe das ausprobiert, die Temperatur bricht jedes Mal ein, wenn die Heizung wartet, und es wird schlimmer.
I tried that, the temperature sags every time the heater waits and it’s worse.
Von English mit KI übersetzt ·
Zum Sichtbarmachen: Lege alle vier Schlüssel in ein einziges Liniendiagramm, rh und die Prozentwerte auf die rechte Achse. Die Phasenbeziehung springt ins Auge, sobald sie eine gemeinsame Zeitachse teilen.
For the seeing part: put all four keys on one line chart, rh and the percentages on the right axis. The phase relationship jumps out once they share a time axis.
Von English mit KI übersetzt ·
Aktivieren Sie außerdem in der Legende Values (min/max), damit Sie beim Abstimmen die Schwingungsamplitude ablesen können.
And turn on Values in the legend (min/max) so you can read the swing amplitude off it while you tune.
Von English mit KI übersetzt ·
Ich habe jahrelang Kühlkettendaten mit genau diesem Muster analysiert. Ein Teil Ihrer Kopplung liegt in der Messgröße selbst, denn die relative Feuchte hängt von der Temperatur ab. Jedes Mal, wenn die Heizung die Lufttemperatur um 1 C erhöht, sinkt die relative Feuchte bei gleichem Feuchtegehalt um etwa 3 bis 4 Punkte. Ihre Feuchteregelung reagiert daher auf die Heizung, auch wenn keinerlei Wasser aus der Luft entwichen ist.Zwei Änderungen, die das meist lösen:1. Regeln Sie eine Feuchtegröße, die sich nicht mit der Temperatur verändert: absolute Feuchte (g/m3) oder Taupunkt. Berechnen Sie sie auf dem ESP32 aus Temperatur und RH (Magnus-Formel) und steuern Sie den Befeuchter darauf. Bei festem Temperatur-Sollwert entsprechen 60 %RH bei 25 C etwa 13,8 g/m3, und das wird Ihr Sollwert.2. Trennen Sie die Geschwindigkeiten. Halten Sie die Temperaturregelung schnell und machen Sie die Feuchteregelung mindestens 5-mal langsamer (eine Mindestein- und Mindestausschaltzeit für den Befeuchter, etwa je 60 s, und ein Totband von etwa 0,5 g/m3). Dann nimmt die Temperaturregelung die Abkühlung durch den Nebel auf, bevor die Feuchteregelung entscheidet.Für das Board ist das Diagramm von Megan das richtige. Stellen Sie in den Series-Zeilen des Liniendiagramms rh und humid_on auf Value axis Right, fügen Sie eine Schwellenlinie bei Ihren Sollwerten hinzu und senden Sie abs_hum als fünften Schlüssel, damit Sie die neue Schleife beobachten können. Die Diagrammeinstellungen finden Sie unter Chart cards.
I spent years staring at cold chain data with exactly this pattern. Part of your coupling sits in the measured variable itself, because RH depends on temperature. Every time the heater raises the air temperature by 1 C, RH at that moisture content drops by roughly 3 to 4 points, so your humidity loop reacts to the heater even when no water has left the air.
Two changes that usually settle it:
1. Control a humidity measure that doesn’t move with temperature: absolute humidity (g/m3) or dew point. Compute it on the ESP32 from temp and RH (Magnus formula) and run the humidifier on that. At a fixed temp setpoint, 60 %RH at 25 C is about 13.8 g/m3, so that becomes your setpoint.
2. Separate the speeds. Keep the temperature loop fast and make the humidity loop at least 5 times slower (a minimum on time and off time for the humidifier, say 60 s each, and a deadband of about 0.5 g/m3). Then the temperature loop absorbs the mist’s cooling before the humidity loop decides anything.
For the board, Megan’s chart is the right one. In the line chart’s Series rows set rh and humid_on to Value axis Right, add a threshold line at your setpoints, and send abs_hum as a fifth key so you can watch the new loop. Chart settings are on Chart cards.
Von English mit KI übersetzt ·
Ich habe den Befeuchter auf absolute Luftfeuchtigkeit umgestellt, mit einer Mindestein-/Ausschaltzeit von 60 s, und seitdem läuft es seit 3 Stunden stabil: Temperatur innerhalb 0,3 C, RF innerhalb 2 %. Da alles in einem Diagramm zu sehen war, konnte ich außerdem erkennen, dass der Nebel etwa 20 s nach dem Wechsel von humid_on auf 1 die Temperatur beeinflusst hat; das ist direkt in den Bericht eingeflossen. Mein Vorgesetzter möchte natürlich als Nächstes die Taupunkt-Version.
Switched the humidifier to absolute humidity with a 60 s minimum on/off and it’s been flat for 3 hours: temp within 0.3 C, RH within 2 %. With everything on one chart I could also see the mist hit the temperature about 20 s after humid_on went to 1, which went straight into the report. My supervisor wants the dew point version next, of course.
- Du musst angemeldet sein, um auf dieses Thema antworten zu können.
Mitdiskutieren
Melde dich an, um Fragen zu stellen und zu beantworten, hilfreiche Beiträge mit „Gefällt mir“ zu markieren und die Antwort zu kennzeichnen, die dein Problem gelöst hat. Jeder Beitrag bringt Punkte und Stufen.

