Test odamdaki ısıtıcı döngüsü ile nem verici döngüsü sürekli birbiriyle çakışıyor
Yapay zekâ tarafından English dilinden çevrildi ·
Bitirme projesi, küçük bir iklim odası (yaklaşık 0,5 m3). Tek bir ESP32 üzerinde iki döngü: hava sıcaklığı üzerinde bir PID, bir SSR üzerinden 150 W’lık ısıtıcıyı sürüyor; bağıl nem üzerinde ise aç/kapa kontrollü bir nem verici (ultrasonik, odaya sis veriyor) çalışıyor. Hedef değerler 25 C ve %60 BN.Her döngü tek başına düzgün çalışıyor. Birlikte çalıştırdığımda ise yaklaşık 6 dakikalık bir periyotla salınım yapıyorlar: ısıtıcı sıcaklığı yükseltiyor, BN düşüyor, nem verici devreye giriyor, sis havayı soğutuyor, PID daha sert sürüyor, BN yeniden düşüyor… Danışmanım döngülerin birbirine bağlı olduğunu ve “bunları ayrıştırmam” gerektiğini söylüyor ama nasıl yapacağımı anlatmadı; ayrıca nedenini de anlamak istiyorum.Her 5 saniyede bir her şey Hermetry’ye (temp_c, rh, heater_pct, humid_on) gönderiliyor. Panoda sıcaklık ve BN için birer grafiğim var, ama ayrı kartlarda olduklarında neyin neyi önceden tetiklediğini görmek zor.
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.
Yapay zekâ tarafından English dilinden çevrildi ·
Nem alıcıyı yalnızca ısıtıcı kapalıyken çalıştırabilir misiniz? Yani zaman dilimlemesi gibi, ikisini sırayla çalıştırmak.
Could you run the humidifier only when the heater is off? Like time-slice them.
Yapay zekâ tarafından English dilinden çevrildi ·
Bunu denedim, ısıtıcı beklediği her seferinde sıcaklık düşüyor ve durum daha kötü.
I tried that, the temperature sags every time the heater waits and it’s worse.
Yapay zekâ tarafından English dilinden çevrildi ·
Görmek kısmı için: dört anahtarın tamamını tek bir çizgi grafiğine koy; rh ve yüzdeler sağ eksende olsun. Hepsi ortak bir zaman ekseni paylaştığında faz ilişkisi hemen ortaya çıkar.
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.
Yapay zekâ tarafından English dilinden çevrildi ·
Ayarlama yaparken salınım genliğini okuyabilmeniz için açıklamadaki Values (min/max) seçeneğini de etkinleştirin.
And turn on Values in the legend (min/max) so you can read the swing amplitude off it while you tune.
Yapay zekâ tarafından English dilinden çevrildi ·
Yıllarca tam bu desene sahip soğuk zincir verilerine baktım. Bağlaşımınızın bir kısmı ölçülen değişkenin kendisinde: bağıl nem sıcaklığa bağlıdır. Isıtıcı hava sıcaklığını her 1 C artırdığında, o nem içeriğinde bağıl nem yaklaşık 3 ila 4 puan düşer; dolayısıyla nem döngünüz, havadan hiç su çıkmamış olsa bile ısıtıcıya tepki verir.Genellikle sorunu çözen iki değişiklik:1. Sıcaklıkla birlikte hareket etmeyen bir nem ölçüsünü kontrol edin: mutlak nem (g/m3) veya çiğ noktası. ESP32 üzerinde sıcaklık ve RH’den (Magnus formülü) hesaplayın ve nemlendiriciyi buna göre çalıştırın. Sabit sıcaklık set noktasında, 25 C’de %60 RH yaklaşık 13,8 g/m3 eder; bu da set noktanız olur.2. Hızları ayırın. Sıcaklık döngüsünü hızlı tutun ve nem döngüsünü en az 5 kat yavaş yapın (nemlendirici için minimum açık ve kapalı süre, diyelim her biri 60 s, ve yaklaşık 0,5 g/m3 ölü bant). Böylece sıcaklık döngüsü, nem döngüsü bir karar vermeden önce sisin soğutma etkisini emer.Kart için Megan’ın grafiği doğru olanı. Çizgi grafiğinin Series satırlarında rh ve humid_on değerlerini Value axis Right olarak ayarlayın, set noktalarınızda bir eşik çizgisi ekleyin ve yeni döngüyü izleyebilmeniz için abs_hum değerini beşinci anahtar olarak gönderin. Grafik ayarları Chart cards sayfasında.
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.
Yapay zekâ tarafından English dilinden çevrildi ·
Nemlendiriciyi mutlak nem moduna aldım, minimum 60 s açık/kapalı süresiyle; 3 saattir sabit: sıcaklık 0,3 C içinde, BN 2 % içinde. Her şey tek bir grafikte olduğu için, humid_on 1 olduğunda sisin sıcaklığa yaklaşık 20 s sonra etkisini de görebildim; bu doğrudan rapora girdi. Tabii ki yöneticim bir sonraki adım olarak çiğ noktası versiyonunu istiyor.
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.
- Bu konuyu yanıtlamak için giriş yapmış olmalısınız.
Sohbete katılın
Soru sormak ve yanıtlamak, yararlı gönderileri beğenmek ve sorununuzu çözen yanıtı işaretlemek için oturum açın. Her katkı puan ve seviye kazandırır.

