kıyılmış ac akım hesabı ?

Başlatan ilhan_mkp, 26 Haziran 2011, 15:51:17

ilhan_mkp

arkadaşlar tristörle ac gerili belli açılarla kıyarak bir yükü kontrol ettiğimi düşünelim ve yükün direnci ısı vb sebeplerle değişsin bu şartlarda sürekli yükün üzerinden sabit akım geçirmek istiyorum diyelimki ilk tetikleyi 30 derecede yaptım ve 50a akım geçti ama ben 40 amper akım geçmesini istiyorum burada tetikleme açısını hesaplamak için nasıl bir yol izlemem gerekiyor.

saykıl bazında düzeltme yaparsam iyibir sonuç alabilirmiyim

bu konuda bir miktar matematik desdeğine ihtiyacım var

Klein

Linear olmayan veya bizim kontrolümüz dışımızdaki parametreler ile değişen sistemlerde geri besleme almadan kontrol yapmak çok zor hatta çoğu zaman imkansız.
Eğer sistem linear işliyorsa mümkün. ama linear değilse ve biz linearizasyon eğrisini bilmiyorsak imkansız.

Sorunuzdan anladığım kadarıyla  sizin geribesleme için bir akım ölçeriniz var. 

Eğer sistem linear ise  ( ac kıyıcı kullandığınıza göre linear değil)   basit oranlama ile yapılabilir. 
toplam periyot 20ms   siz  10ms verdiğinizde   40A geçiyorsa  5ms de 20A geçecektir.

Ama sizin sisteminizde bu işlemez.
Eğer kontrol etmek istediğiniz asıl parametre akım değil de örneğin motorun hızı veya rezistans sıcaklığı gibi birşey ise yapılacak en iyi şey PID kullanmak.  Kontrol edeceğimiz parametre sadece akım ise  yine en iyi yol PID.

PID kullanmadan da mümkün.  Ama bunun için bazı şartların olması gerekir.
1- Geriliminiz tam sinüs olmalı.
2- Yükünüz tam rezistif olmalı ve  akım ile gerilim arasında faz farkı oluşturmamalı.

Bu şartlar altında  hesaplama ile tutturulabilir. Ancak benim matematiğim de bu hesaplamalar için biraz zayıf. Yapmak istesem de çoook fazla uğraşacağım kesin.

Peki projeyi ben yapıyor olsaydım böyle bir kontrol yöntemi kullanır mıydım? Kesinlikle hayır!  Yapacağım şey PID olurdu. 

F.T

selamlar.
bence akımı set noktası olarak girip tetikleme noktasını bu set noktasına göre otomatik hesaplatırsanız daha iyi bir sonuca ulaşırsınız.akım set 40 amper ise ölçülen akım düşük ise  tetiklemeyi arttır. akım set noktasından ölçülen akım yüksek ise tetikleme noktasını düşür gibi.regüle edebilirsiniz.
Hakk şerleri hayr eyler Zannetme ki gayr eyler Ârif anı seyreyler Mevlâ görelim neyler Neylerse güzel eyler.

ilhan_mkp

Alıntı yapılan: ferittt - 26 Haziran 2011, 17:14:36
selamlar.
bence akımı set noktası olarak girip tetikleme noktasını bu set noktasına göre otomatik hesaplatırsanız daha iyi bir sonuca ulaşırsınız.akım set 40 amper ise ölçülen akım düşük ise  tetiklemeyi arttır. akım set noktasından ölçülen akım yüksek ise tetikleme noktasını düşür gibi.regüle edebilirsiniz.

mantık buna benzer olacak ama ne kadar artırıp azaltacağız sabit bir değerde artırırsak zaten zaten 10 saykıl kadar tetikleme yapacağım sete oturmaz her alternans için hesaplarsam çıkıştan set değerine daha yakın değerler alırım diye düşünüyorum benim asıl öğrenmek istediğim nokta sinüs sinyallerde lineer bir oran yok diye biliyorum çıkışa göre açıyı hesaplayabilmem için gerekli olan yöntem

ilhan_mkp

Alıntı yapılan: Klein - 26 Haziran 2011, 16:50:20
Linear olmayan veya bizim kontrolümüz dışımızdaki parametreler ile değişen sistemlerde geri besleme almadan kontrol yapmak çok zor hatta çoğu zaman imkansız.
Eğer sistem linear işliyorsa mümkün. ama linear değilse ve biz linearizasyon eğrisini bilmiyorsak imkansız.

Sorunuzdan anladığım kadarıyla  sizin geribesleme için bir akım ölçeriniz var. 

Eğer sistem linear ise  ( ac kıyıcı kullandığınıza göre linear değil)   basit oranlama ile yapılabilir. 
toplam periyot 20ms   siz  10ms verdiğinizde   40A geçiyorsa  5ms de 20A geçecektir.

Ama sizin sisteminizde bu işlemez.
Eğer kontrol etmek istediğiniz asıl parametre akım değil de örneğin motorun hızı veya rezistans sıcaklığı gibi birşey ise yapılacak en iyi şey PID kullanmak.  Kontrol edeceğimiz parametre sadece akım ise  yine en iyi yol PID.

PID kullanmadan da mümkün.  Ama bunun için bazı şartların olması gerekir.
1- Geriliminiz tam sinüs olmalı.
2- Yükünüz tam rezistif olmalı ve  akım ile gerilim arasında faz farkı oluşturmamalı.

Bu şartlar altında  hesaplama ile tutturulabilir. Ancak benim matematiğim de bu hesaplamalar için biraz zayıf. Yapmak istesem de çoook fazla uğraşacağım kesin.

Peki projeyi ben yapıyor olsaydım böyle bir kontrol yöntemi kullanır mıydım? Kesinlikle hayır!  Yapacağım şey PID olurdu.

üstadım cevabınız için çok teşekkür ederim kontrol etmek istediğim akım
pid uygulanabilir tabi sizde benim aşamadığım sinüs eğrisinin lineer olmayışını vurgulamışsınız
daha önce büyük ihtimalle bu forumda bu konuyla ilgili bir yazı okumuştum şimdi bulamıyorum
yanlış hatırlamıyorsam sinüs eğrisinin alanı üzerinden işlem yapılan bir yöntemdi ama tam emin değilim

Klein

Alıntı yapılan: ilhan_mkp - 26 Haziran 2011, 17:32:54
Alıntı yapılan: ferittt - 26 Haziran 2011, 17:14:36
selamlar.
bence akımı set noktası olarak girip tetikleme noktasını bu set noktasına göre otomatik hesaplatırsanız daha iyi bir sonuca ulaşırsınız.akım set 40 amper ise ölçülen akım düşük ise  tetiklemeyi arttır. akım set noktasından ölçülen akım yüksek ise tetikleme noktasını düşür gibi.regüle edebilirsiniz.

mantık buna benzer olacak ama ne kadar artırıp azaltacağız sabit bir değerde artırırsak zaten zaten 10 saykıl kadar tetikleme yapacağım sete oturmaz her alternans için hesaplarsam çıkıştan set değerine daha yakın değerler alırım diye düşünüyorum benim asıl öğrenmek istediğim nokta sinüs sinyallerde lineer bir oran yok diye biliyorum çıkışa göre açıyı hesaplayabilmem için gerekli olan yöntem

PID de zaten bunu yapıyor.
Bence hiç yan yollara sapma. Direk PID'ye dal. Böylece PID işini de çözmüş olursun.  Kontrol işinde ufkun açılır.
Hatta ilk denemeleri sadece P kontrol ile yapabilirsin. Tam değeri alamazsın çoğunlukla istediğin değerin biraz altında kalır. Ama PID mantığını kavraman açısından P kontrolü kavraman önemli.

Çok basit bir algoritma vereceğim. bunu bir dene sonuçları gör.  Yük değiştikçe yüke göre çıkışını otomatik ayarlayacak.
Parametreler:
K :  P sabiti.
set: almak istediğimiz akım.
feedback: sensörden okuduğumuz akım.
error: set değerimiz ile  ile okuduğumuz değerin farkı.  set-feedback

Diyelim ki  kıyıcı ontrolün 0-100 arasında. 0 iken tam kapalı, 100 iken tam açık.
Maksimum basabildiğin akım ise  100A. Yani tam açıkken 100A basabiliyoruz.
eğer istediğimiz akım 100a ve ölçtüğümüz akım 0 ise  error değerimiz 100 olacak.
bu durumda  tam akım basmalıyız. Yani kontrolörümüze 100 değeri vermeliyiz.
bunun için error*K maksimum 100 olmalı. bu da bize K değerinin en yüksek ne olacağını verir.
Eğer  max akımımız 50 olsaydı  50A için kontrolöre 100 değeri vermek için K değerimizin sınırı 2 olacaktı.
Demekki K değerine 0 ve 2  arasında bir değer verebiliriz.

bu karışık olduysa şöyle basitleştirelim:
max K = max kontrol değeri / max set değeri


void pcalc(void){ 
K= xx // bu değeri Max K değerinin yarısı kadar alıp bir dene.  daha sonra artırıp azaltarak  sonuçları izle. 
error = set - feedback;
gain=K*error;
if(gain>100) Gain=100;	

kontrol = gain;					   
}


Bu kod yük değişimlerinde  değerinisabit tutacaktır. Sen  set değerine 40 yazdığında 40 olmayacak biraz farklı olacak ama sabit tutacak.
yani set değerine 40 yazdın ama  ölçtüğün değer 35  yük değişse de 35 değerini koruyacak.
Bu yöntemibir dene , Çıkışakımını sabit tutmayı başardıktan sonra  nasıl tam değeri elde edeceğin üzerine konuşalım.

ilhan_mkp

Alıntı yapılan: Klein - 26 Haziran 2011, 18:10:48
Alıntı yapılan: ilhan_mkp - 26 Haziran 2011, 17:32:54
Alıntı yapılan: ferittt - 26 Haziran 2011, 17:14:36
selamlar.
bence akımı set noktası olarak girip tetikleme noktasını bu set noktasına göre otomatik hesaplatırsanız daha iyi bir sonuca ulaşırsınız.akım set 40 amper ise ölçülen akım düşük ise  tetiklemeyi arttır. akım set noktasından ölçülen akım yüksek ise tetikleme noktasını düşür gibi.regüle edebilirsiniz.

mantık buna benzer olacak ama ne kadar artırıp azaltacağız sabit bir değerde artırırsak zaten zaten 10 saykıl kadar tetikleme yapacağım sete oturmaz her alternans için hesaplarsam çıkıştan set değerine daha yakın değerler alırım diye düşünüyorum benim asıl öğrenmek istediğim nokta sinüs sinyallerde lineer bir oran yok diye biliyorum çıkışa göre açıyı hesaplayabilmem için gerekli olan yöntem

PID de zaten bunu yapıyor.
Bence hiç yan yollara sapma. Direk PID'ye dal. Böylece PID işini de çözmüş olursun.  Kontrol işinde ufkun açılır.
Hatta ilk denemeleri sadece P kontrol ile yapabilirsin. Tam değeri alamazsın çoğunlukla istediğin değerin biraz altında kalır. Ama PID mantığını kavraman açısından P kontrolü kavraman önemli.

Çok basit bir algoritma vereceğim. bunu bir dene sonuçları gör.  Yük değiştikçe yüke göre çıkışını otomatik ayarlayacak.
Parametreler:
K :  P sabiti.
set: almak istediğimiz akım.
feedback: sensörden okuduğumuz akım.
error: set değerimiz ile  ile okuduğumuz değerin farkı.  set-feedback

Diyelim ki  kıyıcı ontrolün 0-100 arasında. 0 iken tam kapalı, 100 iken tam açık.
Maksimum basabildiğin akım ise  100A. Yani tam açıkken 100A basabiliyoruz.
eğer istediğimiz akım 100a ve ölçtüğümüz akım 0 ise  error değerimiz 100 olacak.
bu durumda  tam akım basmalıyız. Yani kontrolörümüze 100 değeri vermeliyiz.
bunun için error*K maksimum 100 olmalı. bu da bize K değerinin en yüksek ne olacağını verir.
Eğer  max akımımız 50 olsaydı  50A için kontrolöre 100 değeri vermek için K değerimizin sınırı 2 olacaktı.
Demekki K değerine 0 ve 2  arasında bir değer verebiliriz.

bu karışık olduysa şöyle basitleştirelim:
max K = max kontrol değeri / max set değeri


void pcalc(void){ 
K= xx // bu değeri Max K değerinin yarısı kadar alıp bir dene.  daha sonra artırıp azaltarak  sonuçları izle. 
error = set - feedback;
gain=K*error;
if(gain>100) Gain=100;	

kontrol = gain;					   
}


Bu kod yük değişimlerinde  değerinisabit tutacaktır. Sen  set değerine 40 yazdığında 40 olmayacak biraz farklı olacak ama sabit tutacak.
yani set değerine 40 yazdın ama  ölçtüğün değer 35  yük değişse de 35 değerini koruyacak.
Bu yöntemibir dene , Çıkışakımını sabit tutmayı başardıktan sonra  nasıl tam değeri elde edeceğin üzerine konuşalım.


pid üzerine baya kaynak okudum ne demek istediğinizi sanırım anladım şu an deneme yapamayacağım bu soru bir ön hazırlık safhası aslında dediğiniz gibi düz bir eğri sağlarsa ufak düzeltmelerle iş görür hale gelebilir tabi bu akımlar ka seviyesinde örnekleri küçük verdim ilk denemeler altta çıkarsa iyi olur :D

z

Bu sakat bir proje. Dort islem matematigi ile ustesinden gelinemez.

1) Herseyden once akim sensorunuzden gelen sinyali ADC ile olctugunuzde yapilan islem, akimin o anki ani degerini olcmekten ibaret. Ani degeri bilmek  fayda saglamaz.
Yani bu akim degerine bakipda yukten su kadar akim akiyormus denemez. Bu nedenle kiyilmis gerilimin neden oldugu garip akim seklinin efektif degeri hesaplamak gerekir.

2) Tetik acisinin degisimi, kiyilmis gerilimin efektif degerini dogrusal olarak etkilemez. Bu da bir diger sorun. Dolayisi ile PID cikisindaki bilgi, dogrudan tetik acisini belirleyemez.

Bir diger sorun da, sistemin kontrol cevriminde kullanilacak sample alma zamaninin 10ms gibi yuksek olmasi.

Eger yuk zamanla degismeseydi, tetik acisi ile akim arasindaki trigonemetrik baginti, biraz ugrasla elde edilebilirdi. Fakat burda amac kapali cevrimli bir sistem elde etmek.
Ihtiyac duyulan matematigin altindan kalkamayacaksan yazilimini hic yapamazsin. Zaten bu sistem, lisans egitiminin sinirlarini asiyor.



Bana e^st de diyebilirsiniz.   www.cncdesigner.com

ilhan_mkp

Alıntı yapılan: bunalmis - 26 Haziran 2011, 19:54:02
Bu sakat bir proje. Dort islem matematigi ile ustesinden gelinemez.

1) Herseyden once akim sensorunuzden gelen sinyali ADC ile olctugunuzde yapilan islem, akimin o anki ani degerini olcmekten ibaret. Ani degeri bilmek  fayda saglamaz.
Yani bu akim degerine bakipda yukten su kadar akim akiyormus denemez. Bu nedenle kiyilmis gerilimin neden oldugu garip akim seklinin efektif degeri hesaplamak gerekir.

2) Tetik acisinin degisimi, kiyilmis gerilimin efektif degerini dogrusal olarak etkilemez. Bu da bir diger sorun. Dolayisi ile PID cikisindaki bilgi, dogrudan tetik acisini belirleyemez.

Bir diger sorun da, sistemin kontrol cevriminde kullanilacak sample alma zamaninin 10ms gibi yuksek olmasi.

Eger yuk zamanla degismeseydi, tetik acisi ile akim arasindaki trigonemetrik baginti, biraz ugrasla elde edilebilirdi. Fakat burda amac kapali cevrimli bir sistem elde etmek.
Ihtiyac duyulan matematigin altindan kalkamayacaksan yazilimini hic yapamazsin. Zaten bu sistem, lisans egitiminin sinirlarini asiyor.


hocam ilk önce cevabınız için teşekkür ederim
aslında elimizde çalışan geri beslemeli sistemler var ama çok kararlı değiller
evet matamatiğim negatif değerlerde ama ekibimizde matmatiği mükemmel ama nerede kullanacağını bilmeyen yol gösterildiğinde harika iş çıkaran arkadaş var
bu çıkış akımını sabit tutabilmek için önerebileceğiniz bir yöntem varmi acaba illaki benim düündüğüm mantik olmasi şart değil

Klein

#9
Alıntı Yap
2) Tetik acisinin degisimi, kiyilmis gerilimin efektif degerini dogrusal olarak etkilemez. Bu da bir diger sorun. Dolayisi ile PID cikisindaki bilgi, dogrudan tetik acisini belirleyemez.
Tetik açısının değişimi  efektif gerilimini dogrusal olarak etkilemez. Doğru. Bunu düşünmemiştim.
Bu durumda faz kyıcı yerine AC PWM kıyıcı kullanılarak yapılabileceğini düşünüyorum. Bu konudaki yorumunuz nedir. Yine birşeyi atlıyor olabilir miyim?

Not: tabi geribesleme ve örnekleme zamanı sorunu çözülmüşse.


Ekleme:
Tetik açısının değişimi  efektif gerilimini dogrusal olarak etkilemez. Doğru. Bunu düşünmemiştim.

Demiştim ama , kafamda yerli yerine oturmayan birşeyler var. Kontrol değerimizin çıkışa etkisinin doğrusal olmaması ile , çıkışımızın doğrusal olup , bu çıkışın yüke etkisinin doğrusal olmaması sanki aynı şeymiş gibi Geliyor bana.

Örneğin:
Bir hava klepesini kontrol ediyoruz.  PID çıkış değerimizin klepe açısınıa etkisi doğrusal. Ama klepe açısının hava debisine etkisi doğrusal değil.
ya da
klepe açısının hava debisine etkisi doğrusal , ama PID çıkışımızın klepe açısına etkisi doğrusal değil.

Bu örneklerle , üzerinde konuştuğumuz konu temelde aynı gibi geliyor.
Sizce fark nedir? fark yoksa , buradam klepenin kontrolünün de PID ile yapılamayacağı anlamını mı çıkarmalıyım. 


ilhan_mkp

#10
şimdi arkadaşlar şöyle bişi nasıl sonuş verir

ilk önce tam priyotta misalen 10 saykıl tetikleyip saykıl bazında akımın ortala değeri alıp sonra bu on değerin ortalamasını alıp max çalışma akmını bulsam


Alan = pi.r2 . x / 360    x=açı daire diliminin alanını bulsam linkteki bağıntıya dayanarak bunu söylüyorum


ilk tetikleme değerimizi üstteki formüllere dayanarak max akımla oranlasam(yaklaşık değer ile başlaya bilmek için)
akımı tetikleme süresi kadar ortalamadeğerini alsam
aldığımız geri besleme sonucunda hata kadar tetikleme açımızı değiştirip geri besleme için örnk zamanı olrakta yeni tetikleme zamanımızı kullansam


örnekleme süresi sorun yaratırmı(değişken olduğundan)
en önemlisi alan açı ilişkisiyle lineer sonuç alma şansım varmı
saçmalamış olabilirim böyle bişi varsa özür dilerim
[img]

Klein

AKım ölçümü için true-rms yöntemini kulanabilirsin. . Bunun çok sorun olacağını sanmam. Ama en az 1 alternans hatta mümkünse birkaç periyot boyunca örnek alman ve öçüm doğruluğu için oldukça hızlı örnek alman gerek.
P, PI ve PID kontrol yönteminin işe yarayıp yaramayacağı konusunda bunalmış hocam kafamı karıştırdı. Gelecek cevabı görmeden net birşey söyleyemiyorum.

ilhan_mkp

Alıntı yapılan: Klein - 26 Haziran 2011, 22:24:39
AKım ölçümü için true-rms yöntemini kulanabilirsin. . Bunun çok sorun olacağını sanmam. Ama en az 1 alternans hatta mümkünse birkaç periyot boyunca örnek alman ve öçüm doğruluğu için oldukça hızlı örnek alman gerek.
P, PI ve PID kontrol yönteminin işe yarayıp yaramayacağı konusunda bunalmış hocam kafamı karıştırdı. Gelecek cevabı görmeden net birşey söyleyemiyorum.

üstat akımı kıyılmış bir saykıl için ortalama değer alırsan daha doğru olur set değeri sadece akım değil aynı zamanda saykıl adedi atıyorum adam 1 saykıl girdi seti

z

#13
Eger dogrusallik yoksa sorun buyuk.

y=f(x) gibi bir fonksiyonumuz olsun.   eger x=x1 icin y=y1 oluyorsa

x=2*x1 icin y=2f(x1) oluyorsa bu sistem lineerdir.

Simdi bir servo sistemle  hava klepesinin acisini degistirdigimizi varsayalim. (Gerci punomatik sistemlerden anlamam ama yorum yapalim)

servo girisin  0..10V degisimi lineer olarak klepede 0..90 derecelik degisime neden olsun.

Klepe acisi ile vananin akis yolunda ayarlanan kesitin degisim dogrusal değil. *(Hesaplamadim ama oyle oldugunu varsaydim). Bu durumda servo giris degeri ile kesit dogrusal olmayacagindan bu vana dogrusal sistemlerde kullanilamaz.

Fakat klepe acisini degistirmek yerine surgulu bir vanada surgunun pozisyonu degistirilerek vananin yolu ustundeki kesit servo girisi ile dogru orantili yapilabilir.
Mekanigi  kafamda sekillendiremesemde mekanik yapi ile oynanarak klepe acisi ile debi arasinda lineer bir degisim elde edilen vana tasarimi yapilabilir.

Ote yandan cikisin girise orani sabit olan bir sistem illede dogrusal sistemlerle yapilacak diye bir sart yok.

Mesela  kaskat bagli iki sistemden birincisi y=2(x*x) digeri g=1/x seklinde dogrusal olmayan sistemler oldugu halde bu sistem y*g=2*x*x/x=2x gibi dogrusal bir sistem olabilir.

Asil konumuza donersek;

Tetik acisi ile cikis voltaji arasindaki lineer olmayan baginti, tablo yada gercek zamanli  hesap yoluyla dogrusal olacak sekle sokulabilir.

Ornegin

10v cikis icin aci 170 derece
20v cikis icin aci 165 derece
30v cikis icin aci 150 derece gibi bir tablo olusturulursa tabloda gezinmemizi saglayan index degeri ile cikis voltaji arasinda lineer bir baginti kurulmus olur.

Bu durumda PID cikisi dogrudan aciyi değil tabloda indexi yurutur.

Bu durumda, PID ile surulen sistem dogrusal davraniyorsa yani bu sisteme 10v verdigimizde atiyorum 1A, 20v verdigimizde 2A akim degisikligi oluyorsa  PID kullanilabilir.
Eger kontrol edilen sistem dogrusal davranmiyorsa gene burada bir tablodan yararlanilabilir. (Daha once hic boyle bir uygulama yapmadim yapmaya ugrasacagimi da sanmiyorum)

Bana e^st de diyebilirsiniz.   www.cncdesigner.com

Klein

Hocam!
Dün siz bu mesajı yazdıktan sonra biraz düşündüm ama aklıma hiç yatmadı.  Teorinizin iyi olduğunu biliyorum ama yine de deneme yanılma metodu ile kendi gözlerimle görüp ikna olayım istedim. oturup PID döngüsü yazdım.
Kıyıcı çıkış gerilimi için bir lookup tablo yaptım.  Oldukça da saçma bir eğri çıkarttım.
Bu tabloyu kullanarak PID simülasyonu yaptım.

http://hotfile.com/dl/122360545/c60e798/PID_TEST_PRJ.rar.html

Önce lookup indeksini 100E kadar artırıp ,  faz açısının çıkış gerilimine etkisini bir görün. Tamam bu hiç doğrusal değil derseniz , pid operasyonunu başlatın.  değer değiştirmek için edit üzerinde enter tuşuna basmak gerek.

Uygulamayı gördükten sonra tekrar konuşalım. Benim mi atladığım bir şey var? sizin mi?