PID Termostatik VALF KONTROLU

Başlatan AKAY989, 19 Haziran 2021, 00:52:18

AKAY989

Herkese merhaba, iyi calismalar.
Arkadaslar termostatik valfleri biliyorsunuzdur,
setlenen sicakliga gore sicaklik setine gelene kadar
termostatik pid controller'i rolelerinden gelen (motorun donme yonu degisimi icin sadece arti eksi yer degistiriyor)
acik komutu suresi, kapali komutu suresi ve kapali kalma suresine gore calisir.

CCS C 18F4520 ile calisiyorum. Analog sicaklik olcumlerimde sorun yok.
Bir cikmaza girdim ve yardiminiza ihtiyacim var.
Simdi sade bir dille valfi saat yonunde veya saat yonunun tersinde kumanda eden 2 rolemiz var
ve bu roleler mikrodenetleyicimizden komut aliyor.
Biz bu rolelerin setlenen sicaklik degerine gelene kadar kademe kademe bellir araliklarla acip kapatmasini istiyoruz.

Ornegin
Sicaklik setimiz= 25 derece
Mevcut sicaklik = 20 derece

Valfin istenilen sicakliga getirmesi icin kademeli olarak sicak suyu acmasi gerekiyor.
bunun icin valfinaktifsuresi adinda bir degisken atadik
vakfinaktifsuresi = 5 sn dedik
yani 5 sn acacak
sicaklik set degerine geldi mi?
gelmedi
5 sn bekleyecek
sonra tekrar 5 sn daha acacak

simdi mantik olarak bunu programa dokemiyorum
ds1307 veya timer0 kullandigimizi var sayalim
bizim icin onemli olan sadece saniye

valfinaktifsuresi 5 sn desek
2.sn de
baslama = ( (sn x 2) x valfinaktifsuresi ) =  20

bitis   = ( baslama  + valfinaktifsuresi ) = 20+5 = 25

buna gore if ler veya if else ler ile 20-25 araliginda valfimizi calistirabilir

sn surekli degistigi icin etkili bir secim olmuyor tabii..

akliniza gelen cozum onerisi sunabilecek arkadaslar varsa memnun olurum

AKAY989

sorunu cozdum sayilir
baslama = sn      * valfaktifsure
bitis  = baslama + valfaktifsure

ornegin sn 5 diyelim, tabii artmaya devam ediyor :)
valfin aktif kalma suresini 5 sn olarak girdik

baslama = 5    *  5 = 25
bitis  = 25  +  5 = 30
25-30 sn arasinda aktif olacak
daha sonra
30-35 arasi pasif
35-40 arasi aktif
kodu buna gore if else ler ile duzenleyebilirsiniz.
ekstra yardim edecek olan varsa cozum onerilerine acigim.