kazan içindeki suyun sıcaklık kontrolü

Başlatan mckmk03, 28 Ekim 2006, 10:36:36

mckmk03

iyi günler arkadaşlar , 1 m3 lük bi kazan içerisindeki suyun sıcaklığını kontrol etmek istiyorum.ısıtma işlemini rezistanslar ,suyun sıcaklığını ise lm35 ile okuyorum.
                 1 -  Ödev olduğu için kullandığım malzemeler düşük maliyetli.Sizce bu malzemelerle sonuca ulaşabilirmiyim.
                  2 - Bu işlem için nasıl bir kontrol formu uygulamam en iyisi olur . Yani sonuca en iyi nasıl ulaşırım.
                                           teşekkür ederim.iyi çalışmalar.

Logan

@mckmk03, 1m3 su tam olarak 1 ton eder.Bu suyun ısısını kontrol etmen için oldukça kuvvetli bir rezistans kullanmalısın.Bu tür ısı kontrollerinde en pratik yöntem PID kontrolüdür.PID kontrolünün çalışma prensibi ise basitçe şu şekilde anlatılabilir; ulaşılması istenilen ısıya gelmeden önce rezistanslar belli aralıklarla devreye alınıp çıkarılır.Bir nevi zaman kontrollü flip-flop gibi.İstenilen ısıya yaklaştıkça devrede kalma süresi azaltılır.Böyle yapılmasındaki amaç ısıyı minimum tölerans ile sabit tutabilmektir.Bir başka yol ise kuvvetli bir triyak kullanarak dimmer devresi yapmaktır.En garanti ve en stabil yöntem budur.Hatta bu yöntemle ısıyı belli aralıklarda belli derecelerle arttırıp azaltma şansın olabilir.Devrede kontaktör yerine triyak kullanman maliyet açısından senin yararınadır.Kolay gelsin.
İmza.

mckmk03

kazanın boyutunu değiştirebilirim.Boyut çok problem değil. 0.25 m3 (çeyrek ton) olabilir aslında.bu benim içinde uygun olur.rezistanslarıda buldum.220 v ile çalışıyolar ve bayağıda iyi ısı veriyorlar. bundan sonra sadece kontrol etmeye kaldı.
          PID ile nasıl yapılabilir.Yani resistans 220 V verince çalışıyor 0 V da duruyor.Yani çıkışlar ON/OFF . . .
       bildiğim kadar ile PID kontrol için çıkışların oransal olması gerekiyormuş.

Ziya

Isıtıcı olarak kullanacağın rezistansın ısı kapasitesi fazla olmayacağı için ulaşmak istediğin sıcaklığa ulaşınca ısıtıcıyı kapatman ve ısıtıcıda depolanan ısının suya aktarılmasında 1 ton su için 1 derece bile sıcaklığı artmayacaktır. Eğer arttırıyorsa istediğin sıcaklığa 1 derece kala ısıtıcıyı kapatırsın. Bu işlem rezistans belirli bir süre çalışırsa geçerli. Suyun sıcaklığını dengede tutmak için aktarman gereken ısıyı suyun sıcaklığından hesaplayıp, ısıtıcıyı ne kadar süre çalıştırman gerektiğini bularak yapabilirsin.

Suyun sıcaklığını hatasız ölçebilmen için ya suyu sürekli karıştırarak sıcaklığı tank içerisinde eşit dağıtacaksın, ya da birden fazla sıcklık sensörünü öyle bir yerlere yerleştireceksin ki okuduğun sıcaklık bilgilerinin ortalaması sana suyun ortalama sıcaklığını verecek. Tabi kaynama var ise oradan ölçüm alman hatalı olacaktır.
Bu günden sonra hiç kimse sarayda, divanda, meclislerde ve seyranda Türk dilinden başka dil kullanmaya. (13 Mayıs 1277) Karamanoğlu Mehmet Bey

Logan

@mckmk03, dediğin gibi PID kontrolün oransal olması gerekiyor haklısın. Benim anlatmak istediğim tabi ki tam anlamıyla bir PID kontrolü değil. Sadece flip-flop mantığı ile ısıyı en az kayıp ve tasarruf ile sabitlemeye çalışmaktır.Ne yapmak istediğini tam olarak anlatırsan daha çok yardımcı olabiliriz.Zira ben ısının minimum tölerans ile sabit kalabilmesi mantığını düşünüyorum.Zaten Ziya Hoca'da bunu açıkça belirtmiş ve birkaç sensör kullanmanı tavsiye etmiştir.Aslında homojen ısı sağlamak açısından en sağlıklı yöntemde budur.Yapmayı düşündüğün ısı projesinde tölerans ne derece önemlidir?Kolay gelsin.
İmza.

OG

Konuda tecrübeli arkadaşları yakalamışken ilgili bir soru sorayım. Benzer bir iş için 3 adet 12KW ısıtıcıyı kontrol etmem gerekiyor. Toplam 36KW olunca 163 A nominal akım ortaya çıkıyor. Rezistanslar soğuk iken bu akım daha da yukarılarda olacaktır.

Bu akımı nasıl bir yöntemle sürmem uygun olur. Buna uygun Triyak varmıdır, kontaktör mü kullanmam daha sağlıklı olur? Veya daha uygun bir yöntem varmıdır?
FORUMU İLGİLENDİREN KONULARA ÖM İLE CEVAP VERİLMEZ.

mckmk03

evet sıcaklığın eşit dağılması için suyu kazan içinde döndürmem gerek.Bunun için bi su pompası kullanmam gerek.Bu kısmını ekliyeceğim.sıcaklığın töleransı önemli.yani 1 yada 2 derece atlı ve ustundeki sıcaklıklar normal sayılabilir.
       artı-eksi 1 yada 2 derece tölerans ile set edilen değere ulaşmak için .....?
1 - set edilenden küçükse ısıt , buyukse ısıtma gibi bir kontrol şekli uygun değil.
2 - Isıtıcıya 1-0 ları sürekli göndermekte kontaktör için uygun olmayacak.

    böyle sistemler için nasıl bi kontrol şekli kullanabiliriz ki en iyi sonuca ulaşabilelim.

Klein

Ölçüm doğruluğu çok önemli ise.

1. Bir pervane ile suyu karıştırmalısın.
2. Ölçümü LM35 yerine PT100 ile yapmalısın
3. PT100 kazanın tabanından suyun en yüksek noktasına kadar uzanmalı. Böylece ortalama sıcaklığı görürsün.
4. İlla lm35 istersen birkaç tane kullanman faydalı olur.
5. Eğer birkaç tane kullanma şansın yoksa sensör kazanın üstüne daha yakın olsun.
6. PID de korkmanıza gerek yok çok basittir. On-Off ile  işiniz zor. Suyun seviyesi değişince, sisteminin termodinamiği değişir. Başta ısınma eğrisini çıkarıp ona göre on. off zamanlarını ayarlasın bile bir süre sonra , suyun azalması , ortam sıcaklığı , ortam basıncı gibi sebeplerden değişecektir.
7. PID için tek ihtiyacınız bir PID kodu ve Solid-State role. Normal role ile de yaparsın. ama kaliteli  ve yüksek kontak akımına sahip bir role olmalı.

void pidcalculate(void){ 
	pidcall=0;
	Pset=4;// float
	Iset=350;// float
	Dset=1;// float
	setval=90.0;// float


sabit=(1000.0/Pset); 

error=(setval-temperature)/10.0;
GAIN=sabit*error+50; // compute proportional portion and correct -50,0,50 GAIN to 0,50,100
if(GAIN>=100)goto windup; //output saturation test
if(GAIN<=0)goto windup;  

       if(Iset!=0){ 
               sum=sum+(error+olderror)/2;	  //compute integral of error
               GAIN=GAIN+((sabit*0.4)/Iset)*sum; //compute and add integral portion
                    }         
	      else sum=0;
		              

windup:GAIN=GAIN+((sabit*Dset)/0.4)*(error-olderror); //compute and add differential portion

if(GAIN>100) GAIN=100;	//control output saturation						   
if(GAIN<0) GAIN=0;

olderror=eror;
outval=GAIN; break;

}

/***************** 10 milisaniyede bir çağırılacak ****************/
				outcnt++;
				if(outcnt == 100) outcnt=0;
					if(outcnt > outval )heater=0;
					if(outcnt < outval )heater=1;
/********************************************************/

Klein

1-2 derece oldukça yüksek değerler. Önerilerimi dikkate alırsan 0.01- 0.02 derece hassasiyet ve doğrulukta  ile ölçüm yapabilirsin. Yukarıdaki pid kodu ile , doğru PID parametrelerini bulabilirseniz 0.1 derece doğrulukla su sıcaklığını kontrol edebilirsiniz(çok kez test edildi) . Daha iyi bir PID kodu ile 0.01 derece doğruluk yakalayabilirsiniz.

Logan

@OG, açıkçası beni fazla ilgilendirmez ama 3 adet 12 KW dediğine göre galiba 380 V ile besleyeceksin.Eğer 220 ile besleyeceksen kullanacağın sigorta ve sayacın oldukça kuvvetli olması gerekli.Benzer bir projeyi bende yapmıştım.Benim kullandığım rezistanslar ise 14 KW yani toplamda 42 KW idi.Fakat ben 380 ile besliyordum.Rezistansları kontrol ederken siemens'in 3x15 KW kontaktörlerinden kullandım.Gayet sağlıklı çalıştı. Devrenin sıcaklık kontrolünü ise @Klein'in yazdığı programa benzer bir program ile hallettim.2 adet JK termokupl kullanarak ısıyı sabit tutmaya çalıştım.Kontaktörler sesli çalıştıkları için yerine 80 A 600 V triyak kullanmayı düşündüm fakat endüktif yüklerde triyak kullanımının sağlıklı olmadığına dair bir bilgi aldım.Hemem hemen bütün büyük firmalarında bu sebepten dolayı triyak kullanmaktan kaçındıklarını da görünce bende vazgeçtim.Yine de en kısa zamanda kullanmayı düşünüyorum.Kolay gelsin.
İmza.

mckmk03

@Klein , kodlar için teşekkür ederim.  Başkasının yazdığı kodları anlamak biraz zor ve vakit alır. Kodları satır satır inceledim. ben anladığım kadarını anlatayım , yanlış anladığım noktalar olabilir.
 sistemin hatasını ve hata değişimlerini hesaplıyoruz. kazancın 0 ile 100 sınırları arasında değişimi için bir takım matematiksel hesaplamalarla GAIN 'i manupule ediyoruz. Daha sonra elde ettiğimiz GAIN değişkenini kontrol ederek örneğin GAIN = 20 ise 1 saniyenin %20 si kadar ON % 80 OFF olacak şekilde yada GAIN=70 ise  saniyenin  %70 i kadar ON ,%20 si kadar OFF şeklinde çıkışımı kontrol ediyorum.
      Bu kontrol çıkışımın her saniye içerisinde sürekli 1-0-1-0 olarak değişmesine sebep olacağından  kontaktörün ömrünün azalmasına neden olmazmı acaba.Bütçemin kısıtlılığından ucuz malzemeler kullanmaya dikkat ediyorum.

omenek

Carlo Gavazzi nin solid state roleleri butür uygulamalarda sıkça kullanılıyor ve sorunsuz çalışıyorlar bazı uygulamalarda 220  bazılarında 380v anahtarlıyor.220v beslemeli  2x4.5kw lık rezistanslar için ra4850 kullanılmış (480v / 50A).Kontrol sinyali 4...30v DC idi sanırım.Biraz araştırdım bu rolelerin 600v / 100A  olanlarıda var.Sözünü ettiğiniz uygulamalar için yeterli olacağını düşünüyorum.
  Eğer yüksek akımlı triyaklarla yapmayı düşünürseniz triyaka paralel yüksek akım kapasiteli bir varistörün indüktif yüklerden kaynaklanan problemleri butür uygulamalar için kesinlikle berteraf edebileceğini düşünüyorum.Kolay gelsin.
http://rapidshare.com/files/1000458/solid_role.rar

KAZIMUGUR

Okullarımızda statik fizik anlatılır.Oysa gerçek dünyada ne makro ne mikro düzeyde hiç bir şey statik değildir.
Bir sisteme enerji girmişse mutlaka bir şeyler olur.
Kazanlarda,özellikle yüksek güçlü ısıtıcı kullanılmışsa ayrıca karıştırıcıya gerek kalmaz(su veya onun gibi akışkan sıvılarda).Isıtıcıları "uygun" yere koymak yeterlidir.
Uygun yer "büyük kazanlarda" ısı kayıp yerlerine ve konveksiyon şartlarına göre seçilir.
Ufaklarda dipte ve genelde yatay oluşu yeterlidir(tortu payı bırakılmak koşulu ile).

PID kontrol ile bir yerlerde bunalmis arkadaşımız,teorik ve pratik güzel şeyler anlatmıştı.
Uygun kontrol , uygun sensör ,yeri ve sayısı vurgulandı.

Anahtarlamayı ister mekanik ister statik her neyle yaparsanız yapın ama asla emniyeti ihmal etmeyin(özellikle kapalı kazanlarda).Hatta her zamankinin 3 katı "katı" olun.
İnsan-zaman faktörünü düşünün.
Kazan patlaması tüp patlamasından çok fazla hasara yol açar.Tabliyeleri frizbi gibi kullandığını gördüm.

(yukarıdaki satırların çoğu yerçekimine tabi ortamlar için yazıldı)

Ek:Yer uygun ise ısıtıcının kademeli devreye alınıp-çıkartılması pratikte ucuz ve etkili bir kontrol sağlıyor.

diot

Benim başka bir düşüncem var. Şöyle açıklayayım.

1. ısı izelasyonu yapılmış bir depo ve bu depoya 2 adet boru bağlantısı biri en altta diğeri üstte.
2. Boyler benzeri bir ısıtıcı tankı (içinde rezistanslar var.) tank çıkışına ısı sensörü takılacak. tank girişine devridaim pompası ve pompa girişine bir ısı sensörü takılacak.
3. ısıtankı deponun altından aldığı suyu ısıtıp deponun üstünden içine akıtacak.
4 . Depoya bir adet otomatik hava purjörü bağlanacak.
5. Depoya soğuk su alttan girip kullanım suyu üstten alınacak(termosifonlardaki gibi)

kontrole gelince:
devridaim pompası giriş ve çıkış sıcaklıkları birbirine eşit ve istenen sıcaklığa gelinceye kadar resiztanslar devre girip çıkacak. devri daim pompası devamlı calışıp depo içindeki suyu ısıtıcıya basacak ve su devamlı ısınarak istenen devreye kadar ısıtılacak.


Not : Bir nevi Doğalgaz kombisi gibi düşünün.

picusta

Bu konuda hakkinda bi de kendi düsüncelerimi açiklayayim:

öncelikle Klein 'in kodunu biraz elestireyim :) :

örnekleme için 10 ms biraz kisa bir süre değil mi? Elimizdeki sistem ne de olsa çeyrek tonluk atalete sahip. fikrimce 1 s örnekleme bile yeter, bunu 500 ms yapalim.
Baska bi neden de bu algoritmayi çalistirmak için PIC'lerin yetmedigi. 10 ms'den daha kisa bir süre içinde floatlarla bi sürü hesaplama yapmasi gerekiyor, 4 bölme, 3 çarpma, 4 toplama, 1 de çikarma. 4MHz'de 16F PIC'in yapmasi için belki 100 ms'den fazla bir süre gerekebilir.
Kazim beyin dedigi gibi sensörün yerinin "uygun" olmasi, ile sivinin ortalama sicakligini tek sensör ile verir.
Kolaylik olsun diye sistemin "isotrope" olabilir (her yöne esit dagilimi): isiticiyi kazanin merkezine koy, böylece sadece tek eksende analizin yapilmasi gerekir.
Bu proje pedagojik yönden degerlendirilecek, hocayi ne yapildigi değil, nasil yapildigi ilgilendirecek.
Bu yüzden sistemi önce analiz etmelisin, isi yayilma diferansiyel eklemlerini çikartacaksin, böylece transfer fonksyonunu elde etmis olacaksin. Elde edecegin transfer fonksyonu gecikmeli 1. dereceden olmali.
Gecikme süresi sensörün isiticiya uzakligi ile bagintili olacak, zaman katsayisi ise suyun hacmi, termik kapasitesi, dis cephenin termik alisveris katsayisi, disardaki isi ile.
Sistemde test yaparak bu iki süreyi bulmalisin, daha sonra Ziegler - Nichols denilen PID ayarlamasini kolaylikla uygulayabilirsin. Bu 2 süreye göre sana P, I ve D parametrelerini verecektir.
Bu parametre hesaplamalarini kolaylikla programina koyabilirsin, böylece kullanici 2 süreyi girer ve parametreler çikar, daha da iyisi Bu süreleri otomatik olarak ölçmen.
Ayrica burda yapilan röle kontrolü aslinda PWM (herkes tarif etti ben söyleyeyim) ile ayni kapiya çikiyor (periyor uzun ama). Bang Bang kontrol diyorlar bi de buna.
Ayrica baska bir kontrol teknigi de bu rölenin açma kapama sayisini minimuma indirmek için bir algoritma, tabii buda "ripple"  ugruna oluyor.