Universal Havya Kontrolcüsü Tasarımı

JBC havya ucu patenti:

21645 eklentisine bak
1 ve 2, 9 numaralı ısıtıcı spiral elemana bağlanıyor. 1 ve 3 uca yakın kısımda (8) birleşerek bir tc meydana getiriyor.


C245 ucun kesit görüntüsü:
21646 eklentisine bak
bir fırsat bulduğumda HX711 ile sıcaklık/adc tablosunu çıkaracağım @Atak 'da yardım ederse HX711 ile bitiririz projeyi.
 
PID algoritmasını float veya double olarak işleyeceksin, PID'in de float veya double'ı taşırması mümkün değil.
okuduğumuz değer noktalı sayı almıyor float çalışssak'da noktalı değer almayacağız.
noktalı sayıyada 24bit adc'de ihtiyacımız kalmıyor havya ucu oda sıcaklığındayken dahi üflesem adc aşşağı doğru iniyor yeterli hassasiyete hatta fazlasına sahibiz şuan tek sorunumuz 80milisaniyede 1 okuma yapıyoruz daha hızlısını yaparsak aynı sayı dönmeye başlıyor.

gelen sayıyı saklayacak bir değişken bakıyorum bana int64 güzel geldi.
 
PID işlemi tam sayılarla yapılacak bir işlem değil. Kayan nokta kullanman şart.
 
PID işlemi tam sayılarla yapılacak bir işlem değil. Kayan nokta kullanman şart.
işler karıştı.
PID otuput value evet noktalı olarak işlem yapıyor.
ama sıcakık okumayı tam sayı ile de yapabiliriz ben bunun için değişken tavsiyesi istedim çünkü set değerimiz her zaman tam sayı olacak.
 
termokupl entegresinden okunan değeri saklamak için neden ara bir değişken kullanıyorsun anlamadım. Ama illa saklamak istiyorsan, 24 bitlik bir sayıyı 32 bit bir değişkende saklayabilirsin. 64 bit değişkene gerek yok.
 
termokupl entegresinden okunan değeri saklamak için neden ara bir değişken kullanıyorsun anlamadım. Ama illa saklamak istiyorsan, 24 bitlik bir sayıyı 32 bit bir değişkende saklayabilirsin. 64 bit değişkene gerek yok.
yine ortalama alcam abi.
 
Boyle bir zorunluluk yok.

Tum filitreleme islemlerimde asla floating point islem yapmiyorum. Q notasyonu kullaniyorum.

Neticede Q notasyonu da ondalıklı bir notasyon. Tek fark, noktanın yeri sabit.
 
Ama sonucta float sayi degil. Dolayisi ile fpu unitesi olmayan islemcilerde hantal float fonksyonlar gerekmiyor.
 
Ama sonucta float sayi degil. Dolayisi ile fpu unitesi olmayan islemcilerde hantal float fonksyinlar gerekmiyor.

Burada önemli olan float ve fixed point arasındaki fark değil. Önemli olan. tam sayılarla PID yapılamaz. Ondalıklı sayılar mutlaka gerekli olur, bu float da olabilir fixed point da.
 
Fark eder.

Eger degiskeni int tanimliyorsam o sayi integerder ki Q notasyonunda degiskenler integerdir.

Float tanimliyorsan da floatdur ve artik tum hesaplamalar fp olur..
 
Burada önemli olan float ve fixed point arasındaki fark değil. Önemli olan. tam sayılarla PID yapılamaz. Ondalıklı sayılar mutlaka gerekli olur, bu float da olabilir fixed point da.
ben PID'yi ON/OFF olarak baz alıp oluşturdum yani röle ile yapmaya çalışmış gibi olduk;

örn set 225:
real sıcaklık = 226 = mos pwm val->0
real sıcaklık = 224 = mos pwm val->max set pwm val

yani algoritma aslında 65bin ile 0 arasında sıcaklık değeine göre güç ayarı yapmalı ama ben öyle yapmadım.
 
Fark eder.

Eger degiskeni int tanimliyorsam o sayi integerder ki Q notasyonunda degiskenler integerdir.

Float tanimliyorsan da floatdur ve artik tum hesaplamalar fp olur..

Farklı şeylerden bahsediyoruz. Ama neticede olay anlaşıldı diye düşünüyorum.
 
ben PID'yi ON/OFF olarak baz alıp oluşturdum yani röle ile yapmaya çalışmış gibi olduk;

örn set 225:
real sıcaklık = 226 = mos pwm val->0
real sıcaklık = 224 = mos pwm val->max set pwm val

yani algoritma aslında 65bin ile 0 arasında sıcaklık değeine göre güç ayarı yapmalı ama ben öyle yapmadım.

Düz mantık kontrol ile PID farklı şeyler. Eğer sadece sıcaklık ölçüp olması gereken değerin altında mı üstünde mi olduğuna göre rezistansa power veriyorsan bu PID olmuyor. Bunda artık rezistansa uyguladığın güce göre ya çok overshoot/undershoot olur, veya çok yavaş tepki verir.

PID in özelliği, hem minimum overshoot/undershoot olacak, hem de çok hızlı bir şekilde ayarlanan değere gelecek.
 
Düz mantık kontrol ile PID farklı şeyler. Eğer sadece sıcaklık ölçüp olması gereken değerin altında mı üstünde mi olduğuna göre rezistansa power veriyorsan bu PID olmuyor. Bunda artık rezistansa uyguladığın güce göre ya çok overshoot/undershoot olur, veya çok yavaş tepki verir.

PID in özelliği, hem minimum overshoot/undershoot olacak, hem de çok hızlı bir şekilde ayarlanan değere gelecek.
şuan oluşturduğum algoirtma ile hem aç kapa hemde ara değer ayarlama yapabilriz.

ama okumayı tam oturtmadan pid ile haşır neşir olunca sorun 2ye katlanıyor.
birşey yanlış gidince sorun nerde diye geri dönüyorsun.
 
Burada uygulanacak PID algoritmasında algoritmanın dikkate alması gereken ve işi karmaşıklaştıran bir detay var. Bu da undershoot ve overshoot durumlarında kontrol sinyalinin etkisinin farklı olması. Yani Hatanın 0'dan büyük veya küçük olmasına göre farklı çalışmalı. Çünkü PWM kontrol ile ısıtma hızını kontrol edebilsek de soğuma hızını kontrol edemiyoruz. Soğuma hızını etkileyen etkenler kontrol döngümüzün kontrol edebileceği etkenlerin dışında.
ben PID'yi ON/OFF olarak baz alıp oluşturdum yani röle ile yapmaya çalışmış gibi olduk;

örn set 225:
real sıcaklık = 226 = mos pwm val->0
real sıcaklık = 224 = mos pwm val->max set pwm val

yani algoritma aslında 65bin ile 0 arasında sıcaklık değeine göre güç ayarı yapmalı ama ben öyle yapmadım.
Şimdi PWM ve sıcaklık okumaya odaklanmalısın. Bunu hallettikten sonra PID kontrol denemelerinin etkilerini görmek için seri monitörden çekeceğin veriyi grafikleştirebilirsin. Parametrelerin etkilerini gözünle görmüş olursun ve deneme yanılmayla da ilerleyebilirsin. Harici termometre ile bunu etkili şekilde yapmak pek mümkün değil.
Bu şekilde uygulayacağın algoritmadan çabucak geri besleme alır debugging yapabilirsin.
 
Burada uygulanacak PID algoritmasında algoritmanın dikkate alması gereken ve işi karmaşıklaştıran bir detay var. Bu da undershoot ve overshoot durumlarında kontrol sinyalinin etkisinin farklı olması. Yani Hatanın 0'dan büyük veya küçük olmasına göre farklı çalışmalı. Çünkü PWM kontrol ile ısıtma hızını kontrol edebilsek de soğuma hızını kontrol edemiyoruz. Soğuma hızını etkileyen etkenler kontrol döngümüzün kontrol edebileceği etkenlerin dışında.

Şimdi PWM ve sıcaklık okumaya odaklanmalısın. Bunu hallettikten sonra PID kontrol denemelerinin etkilerini görmek için seri monitörden çekeceğin veriyi grafikleştirebilirsin. Parametrelerin etkilerini gözünle görmüş olursun ve deneme yanılmayla da ilerleyebilirsin. Harici termometre ile bunu etkili şekilde yapmak pek mümkün değil.
Bu şekilde uygulayacağın algoritmadan çabucak geri besleme alır debugging yapabilirsin.
boş zamanımda yanlış ilerlediğim için şuan çok kısıtlı biz zamanda ilerlemeye çalışıyorum ondan yavaşladı proje.

sıcaklık okuduktab sonra zor olanı bitirmiş oluyoruz 3 5 farklı pid algoritması atarız ortaya karıştırıp güzrl birşey çıkarırız ben şuan sapma tespiti yapıyorum sadece pid denemez tam ama çok küçük müdahaleler ile tam anlamıyla pid yaparak çalışır
 

Çevrimiçi personel

Forum istatistikleri

Konular
6,953
Mesajlar
118,778
Üyeler
2,824
Son üye
selocan32

Son kaynaklar

Son profil mesajları

hakan8470 wrote on Dede's profile.
1717172721760.png
Dedecim bu gul mu karanfil mi? Gerci ne farkeder onu da anlamam. Gerci bunun anlamini da bilmem :gulus2:
Lyewor_ wrote on hakan8470's profile.
Takip edilmeye başlanmışım :D ❤️
Merhaba elektronik tutsakları...
Lyewor_ wrote on taydin's profile.
Merhabalar. Elektrik laboratuvarınız varsa bunun hakkında bir konunuz var mı acaba? Sizin laboratuvarınızı merak ettim de :)
Lyewor_ wrote on taydin's profile.
Merhabalar forumda yeniyim! Bir sorum olacaktı lcr meterler hakkında. Hem bobini ölçen hemde bobin direnci ölçen bir lcr meter var mı acaba?
Back
Top