Fórum témák

» Több friss téma
Fórum » Hőfokszabályozás LEDnek
Lapozás: OK   1 / 1
(#) Lozsa hozzászólása Feb 22, 2013 /
 
Készült egy búvárlámpa amelynek a hőfokszabályozását szeretném tökéletesíteni.

Tömören: 40wattos led van belül az alu lámpatesten, mely kivezeti a hőt a lámpatest szélére. Onnan pedig a víz a hőcserélő (rosszabb esetben a levegő).

A szabályzóköröm egy led driverre épül amit egy pic 12-es hajt meg pwm jellel (erősség szabályozás). Egy NTC van a led mellé téve közvetlenül, amit a PIC A/D-n feldolgoz.

Adott tehát a programban 2 változóm:
1. homerseklet (a mért hőmérséklet 20 fokon ~200 a regiszter értéke, 100 fokon ~80)
2. pwm_duty (kitöltési tényező 0-250-ig)

A lényeg, hogy a lámpa ne melegedhessen túl (pl. ha szárazföldön bekapcsolva marad). Vagyis Tmax a házon 60 fok. Így Tmax a leden kb 80 fok. Erre a 80 ra kellene szabályozni a lámpát, hogy ezt ne lépje túl. vagyis a Mért hőmérséklet függvényében folyamatosan növelni ill. csökkenteni kell a pwm_duty-t.

Sokféle módon próbáltam már megoldani. A gond, hogy nagyon nagy a hiszterézise a felmelegedésnek. Bekapcsolás után 20 másodperccel már 100 fok a led. Viszont ha hirtelen visszaveszem a teljesítményt akkor:
1. majdnem elalszik a lámpa mire kezd jó lenni a hőmérséklet
2. van egy pár másodperces túlfutása a hőnek

Persze egészen más a bemelegedése is vízben mint a levegőn. Ez is bonyolítja a helyzetet...
Programozó vagyok, de nem ilyesmi a területem. Jöhet nyugodtan pszeudokódos algoritmus is.

Még mielőtt azt mondanátok, hogy * a lámpa konstrukciója, megjegyzem két éve használom gond nélkül, csak eddig egy nagyon primitív módon volt megoldva a szabályozás, és emiatt sokszor indokolatlanul alacsony teljesítményen ment a lámpa.
A hozzászólás módosítva: Feb 23, 2013
(#) kokozo válasza Lozsa hozzászólására (») Feb 22, 2013 /
 
Hello PID-et próbáltál már? Bővebben: Link
(#) mgy válasza Lozsa hozzászólására (») Feb 23, 2013 /
 
Szia !
Én a túlfutást az alábbi programmal oldottam meg.
12f675 esetén 3 láb kell. Egy AD szenzor, egy AD potméter, és a teljesítménykapcsoló FET.
Üdv mgy
A hozzászólás módosítva: Feb 23, 2013

pidpic.txt
    
(#) Lozsa válasza kokozo hozzászólására (») Feb 23, 2013 /
 
Köszi az ötleteket. Nem ismertem ezt a PID módszert, de a saját ki agyamból is hasonlóra jutottam. Mindenesetre jól jött az információ, mert megerősített.
Örömmel jelentem tökéletes a szabályzásom. 2 fokon belül tartja ha már beállt, és kb 1 perc alatt stabilizálódik.
A kódom lényege, jhogy ha túl van a limiten és még növekszik akkor csökkentjük az eltérés értékével. Ha már csökkenésben van akkor viszont csak az eltérés harmadával.

Íme a kód:

  1. if (Temp<limit)                                         //Ha Melegebb... (NTC fordított!)
  2.                 {
  3.                         diff=limit-Temp;
  4.                         if (LastTemp>=Temp)                     //Ha növekedés volt
  5.                         {
  6.                                 if (diff<=CCPR1L) CCPR1L-=diff;
  7.                                 else CCPR1L=0
  8.                         }
  9.                         else if ((diff/3)<=CCPR1L) CCPR1L-=(diff/3);
  10.                                 else CCPR1L=0;
  11.                 }
  12.                
  13.                 if (Temp>limit)                                         //Ha hidegebb... (NTC fordított!)
  14.                 {
  15.                         diff=Temp-limit;
  16.                         if (LastTemp>=Temp)                     //Ha növekedés volt
  17.                         {
  18.                                 if ((CCPR1L+(diff/3))>=249) CCPR1L=249;
  19.                                 else CCPR1L+=(diff/3)
  20.                         }
  21.                         else if ((CCPR1L+diff)>=249) CCPR1L=249;
  22.                                 else CCPR1L+=diff;
  23.                 }
Következő: »»   1 / 1
Bejelentkezés

Belépés

Hirdetés
Lapoda.hu     XDT.hu     HEStore.hu
Az oldalon sütiket használunk a helyes működéshez. Bővebb információt az adatvédelmi szabályzatban olvashatsz. Megértettem