El lazo del calefactor y el lazo del humidificador de mi cámara de pruebas no paran de pelearse
Traducido del English por IA ·
Proyecto de fin de carrera, pequeña cámara climática (unos 0,5 m3). Dos lazos en un mismo ESP32: un PID sobre la temperatura del aire que controla un calefactor de 150 W a través de un SSR, y un humidificador on/off (ultrasónico, niebla dentro de la cámara) sobre la humedad relativa. Consignas de 25 C y 60 %HR.Cada lazo por separado funciona bien. Juntos, oscilan con un período de unos 6 minutos: el calefactor sube la temperatura, la HR baja, el humidificador se activa, la niebla enfría el aire, el PID empuja con más fuerza, la HR vuelve a bajar… Mi tutor dice que los lazos están acoplados y que hay que «desacoplarlos», pero no explicó cómo, y además me gustaría entender por qué.Todo se envía a Hermetry (temp_c, rh, heater_pct, humid_on) cada 5 s. Tengo dos gráficas en el panel, una para la temperatura y otra para la HR, pero es difícil ver qué precede a qué cuando están en tarjetas separadas.
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.
Traducido del English por IA ·
¿Podría hacer funcionar el humidificador solo cuando la calefacción esté apagada? Es decir, alternarlos por división de tiempo.
Could you run the humidifier only when the heater is off? Like time-slice them.
Traducido del English por IA ·
Lo probé, la temperatura baja cada vez que el calentador espera y empeora.
I tried that, the temperature sags every time the heater waits and it’s worse.
Traducido del English por IA ·
Para la parte de visualizarlo: pon las cuatro claves en un solo gráfico de líneas, rh y los porcentajes en el eje derecho. La relación de fase salta a la vista en cuanto comparten un eje de tiempo.
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.
Traducido del English por IA ·
Y active Values en la leyenda (min/max) para poder leer la amplitud de las oscilaciones mientras ajusta.
And turn on Values in the legend (min/max) so you can read the swing amplitude off it while you tune.
Traducido del English por IA ·
Pasé años analizando datos de cadena de frío con exactamente este patrón. Parte de tu acoplamiento está en la propia variable medida, porque la HR depende de la temperatura. Cada vez que el calentador sube la temperatura del aire 1 C, la HR a esa misma humedad absoluta baja unos 3 a 4 puntos; por eso tu bucle de humedad reacciona al calentador aunque no haya salido agua del aire.Dos cambios que normalmente lo resuelven:1. Controla una medida de humedad que no cambie con la temperatura: humedad absoluta (g/m3) o punto de rocío. Calcúlala en el ESP32 a partir de la temperatura y la HR (fórmula de Magnus) y haz funcionar el humidificador con ese valor. Con un setpoint de temperatura fijo, 60 %HR a 25 C equivalen a unos 13,8 g/m3, así que ese será tu setpoint.2. Separa las velocidades. Mantén el bucle de temperatura rápido y haz que el de humedad sea al menos 5 veces más lento (un tiempo mínimo de encendido y apagado para el humidificador, por ejemplo 60 s cada uno, y una banda muerta de unos 0,5 g/m3). Así, el bucle de temperatura absorberá el enfriamiento de la niebla antes de que el bucle de humedad tome cualquier decisión.Para la placa, el gráfico de Megan es el adecuado. En las filas Series del gráfico de líneas, configura rh y humid_on en Value axis Right, añade una línea de umbral en tus setpoints y envía abs_hum como quinta clave para poder vigilar el nuevo bucle. La configuración de los gráficos está en 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.
Traducido del English por IA ·
Cambié el humidificador a humedad absoluta con un mínimo de 60 s de encendido/apagado y lleva estable 3 horas: temperatura dentro de 0,3 C, HR dentro de 2 %. Con todo en un mismo gráfico también pude ver que la niebla afectaba la temperatura unos 20 s después de que humid_on pasara a 1, y eso fue directo al informe. Mi supervisor quiere, por supuesto, la versión con punto de rocío a continuación.
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.
- Debes estar registrado para responder a este debate.
Únete a la conversación
Inicia sesión para preguntar y responder, dar me gusta a las publicaciones útiles y marcar la respuesta que resolvió tu problema. Cada aportación suma puntos y niveles.

