Bu yazıdan önce FOC yazımı okumanızı öneririm.
Yıldız bağlı motorumuzun sargılarına aşağıdaki gibi 3 ayrı anahtar üzerinden V bara voltajının uyguladığını varsayayın. a, b, c anahtarları sırasıyla gerilimlerini üretir.
Şekil 1
2 konumlu a, b, c anahtarlarının 0 ve 1 durumlarına ilişkin ,
,
faz voltajlarını ve va, vb, vc bobin voltaj degerlerini hesaplayıp tabloda göstererelim.
Örneğin a=0 b=0 c=1 durumu için den va, vb ve vc yi hesaplayalım.
(Motor endüktanslarını R direnci gibi düşünürseniz her bir dirençde düşen gerilimi hesaplamanız yeterlidir.)
a=0, b=0 ve c=1 için ,
,
a,b,c nin tüm 0 ve 1 değerleri için değerlerini hesaplarsak aşağıdaki tabloyu oluşturabiliriz.
Tablodaki verileri uygun sıraya koyarak 3 fazlı voltajlar elde etmeye çalışalım.
Her 60 derecede bir segment değişmekte ve voltajlarda +/- artışı olmaktadır. Örneğin a fazını ele alalım
Vektörleri diyagrama yerleştirirsek
a, b, c anahtarları ile elde edilen 8 vektörden 2'si sıfır boyutlu vektördür ve merkezdedir. Diğer 6 vektör 60 derecelik açılarla grafiğe yerleştirilmiştir.
Her 60 derecede bir sektör değiştirilerek elde edilen ve pozitif yönde sıralamaları ,
,
,
,
,
vektörleri sırayla kullanarak 60 derecelik sıçramalar yapan döner vektör üretiriz.
Sıçrayarak daireyi 6 hamlede tamamlayan döner vektör yerine düzgün dairesel hareket yaparak dönen bir vektör üretmek istersek ne yapacağız?
Yazımın başından buraya kadar olan kısımlarda kafanızda hiç soru kalmasın. Gerekiyorsa tekrar tekrar okuyun.
SVPWM gerçekten büyülü bir işlem.
Başlıyoruz.
FOC tekniğinde motora uygulanacak Va, Vb ve Vc voltajlarını hesaplamıştık.
Bunları PWM modülasyonuna tabii tutup motora uygulayabiliriz. Bu durumda yaptığımız işlemin adı Sinüs modülasyondur. Bu modülasyonu zaten biliyoruz.
Sinüs modülasyonunda her bir faz için üreteceğimiz voltajın tepe değeri V/2 besleme gerilimi kadar olabilir. V/2 sıfır ekseni alınırsa V değeri Vmax, 0 değeri de -Vmax olacaktır.
Şekil 5 de V6 ve V4 komşu iki vektördür (adjacent vectors). Aynı şekilde V5 ve V4 de komşudur.
FOC konusunda hatırlarsanız Valfa ve Vbeta voltajlarını kullanarak Va, Vb, Vc olmak üzere 3 faz voltajlarını hesaplamıştık. Va, Vb ve VC yi kullanmadan da Alfa Beta eksen takımındaki Valfa ve Vbeta voltajlarını kullanarak altı bölgenin her birini sadece 2 voltajla ifade edebiliriz. Alfa Beta eksen takımı 90 derece iken daireyi oluşturan komşu vektörlerle 6 ayrı 60 derecelik eksen takımları oluşturabiliriz.
Şekil 1'deki anahtarlama yapısından dolayı altıgenin köşelerine yerleşmiş iki komşu vektörün de modülü aynıdır. Ancak aralarında 60 derece açı bulunmaktadır Örneğin V5 vektörünün açısı -90 derece iken V4 vektörü -30 derece açıya sahiptir.
Şekil 6
V vektorumuz V4_V6 bölgesinde ise;
V vektorumuz V6_V2 bölgesinde ise;
V vektorumuz V2_V3 bölgesinde ise;
V vektorumuz V3_V1 bölgesinde ise;
V vektorumuz V1_V5 bölgesinde ise;
V vektorumuz V5_V4 bölgesinde ise;
Açılımları yaparsak;
4-6 Sektorlerinde;
6-2 Sektorlerinde;
2-3 Sektorlerinde;
3-1 Sektorlerinde;
1-5 Sektorlerinde;
5-4 Sektorlerinde;
Şekil 7
Şekil 7' de MCU'nun 3 ayrı pwm çıkışından alınan a, b, c sinyallerine bakalım. V4 ve V6 nın görüldüğü zaman aralığına dikkat kesilelim.
V4 aralığında a=1, b=0, c=0 dır. Biraz sonra V6 bölgesine gelindiğinde a=1, b=1, c=0 olmaktadır. Zaten ilgili aralığı taa başından beri bu ikili sayılarla isimlendirmiştik. Üstelik 1 olan bit ilgili anahtarın ON olup V voltajı vermesi anlamına da geliyordu. (Bakınız Şekil 2)
O halde V4 ve V6 vektörleri arasında kalan herhangi bir vektör PWM sinyalimizde V4 ve V6'ya ait sürelerin değiştirilmesi ile belirlenebilir.
Şekil 8 de komşu vektörlerinin pwm sinyalimizle alakası görülmektedir.
Şekil 8
Eger motorumuza animasyondaki gibi yaklaşık bir kaç Hz gibi cok dusuk frekansda pwm sinyali uygulanmış olsaydık motor mili 0 dereceden 60 dereceye, 60 dereceden 0 dereceye zıplamak suretiyle sağa sola 60 derecelik dönüşler yapacaktı.
Eğer pwm frekansını çok artırırsak bu durumda artık motor mili voltajdaki bu değişimleri takip edemeyecek ve 30 derecelik ara açıda kalacaktı. Eğer V4 ve V6 nın süreleri ile oynarsak bu kez motor mili 0..60 derece aralığında istenen bir yere konumlanacaktır.
Şekil 9'da 60 derecelik ana vektörlere ait pwm sinyalleri görülmektedir.
Şekil 9
Şsekil 10'da PWM registerlerine yüklenecek zamanlama parametreleri görülmektedir.
Şekil 10
Merkeze göre simetrik pwmde peryod registerine yüklenecek değerin 2 katı değerde peryod oluşur.
Merkeze göre sağdaki ve soldaki zamanlama değerleri ilgili voltaj için Ton süresini belirler.
V4 voltajı T1/2 ile, V6 voltajı ise T2/2 ile üretilir. T=T0+T1+T2 olduğuna göre
Şekil 10'dan
PWM1=T0/4+T1/2+T2/2
PWM2=T0/4+T2/2
PWM3=T0/4 olacaktır.
0..360 derecelik alanda herhangi bir açıya konumlanacak döner alan vektörümüzün Alfa ve Beta eksenlerinde almış olduğu voltaj değerlerinden yola çıkarak pwm registerlerine yüklenecek değerlerin hesaplanışı;
1) Bahse konu açıyı kapsayan iki komşu vektör bulunacak (Kaçıncı segmentteyiz tespit edilecek) Bunun için Valfa ve Vbeta dan yola çıkarak FOC konusunda nasıl hesaplanacağı açıklanmış Va, Vb, Vc üç faz voltajlarını hesaplayıp sinyallerin pozitif durumlarına 1, negatif durumlarına 0 dersek Va,Vb, Vc 3 bitlik sayı oluşturur. Bu sayının alacağı değerler 0..7 aralığındadır ve doğrudan ilgili sektörün numarasını verir. (Şekil 2 deki tabloda pozitif ve negatif değer alan voltajlarda anahtarların 1/0 olarak almış olduğu değerlere ve de sektör numarasına bakın. Not: 000 ve 111 ayni anlama gelir.)
2) Valfa ve Vbeta değerlerinden yararlanarak, 60 derecelik iki vektörün modülü hesaplanacak. (Şekil 6)
3) 6 adet PWM paterninden ilgili patern seçilecek. (Şekil 9)
4) 3 adet PWM kanalına yüklenecek parametreler hesaplanacak.
Şekil 11'de pwm kanallarına yüklenen değerler grafiğe dökülmüştür.
Aşağıdaki scop görüntüsü STSPIN32F0 kiti üzerindeki uygulamadan alınmıştır.
Kırmızı, yeşil ve mavi grafikler PWM çıkışlarındaki sinyalin 1K, 100n ile filitrelenmesi ile kavuniçi mor ve gri grafikler ise scopta A-B, B-C ve C-A matematiksel işlemleri ile elde edilmiştir.
Devam edecek.