- SPWM (Sinüzoidal Darbe Genişlik Modülasyonu) nedir?
- SPWM İnvertör Nasıl Çalışır?
- SPWM İnvertörü Oluşturmak için Gerekli Bileşenler
- SPWM Inverter Devre Yapısı
- SPWM Inverter için Arduino Programı
- TL494 PWM Çevirici Devresinin Test Edilmesi
Şebekeden AC beslemesi almanın mümkün olmadığı yerlerde genellikle inverter devrelerine ihtiyaç duyulur. DC gücünü AC gücüne dönüştürmek için bir invertör devresi kullanılır ve Saf Sinüs İnvertörleri veya Modifiye Kare Dalga İnvertörler olmak üzere iki türe ayrılabilir . Bu saf sinüs dalgalı inverterler, modifiye edilmiş kare dalga inverterlerin ucuz olduğu yerlerde çok pahalıdır. Burada farklı inverter türleri hakkında daha fazla bilgi edinin.
Önceki bir makalede, modifiye bir kare dalga invertörün nasıl yapılmayacağını, bununla ilgili sorunları ele alarak göstermiştim. Bu yüzden bu yazıda, Arduino kullanarak basit bir saf sinüs dalgası invertörü yapacağım ve devrenin çalışma prensibini açıklayacağım.
Bu devreyi yapıyorsanız, lütfen bu devrenin geri besleme, aşırı akım koruması, kısa devre koruması ve sıcaklık koruması olmadığını unutmayın. Bu nedenle, bu devre yalnızca eğitim amaçlı olarak oluşturulmuş ve gösterilmiştir ve bu tür bir devrenin ticari cihazlar için kurulması ve kullanılması kesinlikle önerilmez. Ancak gerekirse bunları devrenize ekleyebilirsiniz, yaygın olarak kullanılan koruma devreleri gibi.
Aşırı Gerilim Koruması, Aşırı Akım Koruması, Ters Polarite Koruması, Kısa Devre Koruması, Çalışırken Değiştirilebilen kontrolör vb. Daha önce tartışılmıştır.
DİKKAT: Bu tür bir devre yapıyorsanız, lütfen girişe giden anahtarlama sinyali tarafından üretilen yüksek voltaj ve voltaj yükselmelerine karşı ekstra dikkatli olun.
SPWM (Sinüzoidal Darbe Genişlik Modülasyonu) nedir?
Adından da anlaşılacağı gibi, SPWM açılımı S inusoidal p Ulse W likli M odulation. Zaten bildiğiniz gibi, bir PWM sinyali, aynı zamanda görev döngüsü olarak da bilinen, darbenin frekansının yanı sıra açma ve kapama süresini değiştirebileceğimiz bir sinyaldir. PWM hakkında daha fazla bilgi edinmek isterseniz buradan okuyabilirsiniz. Böylece, görev döngüsünü değiştirerek, darbenin ortalama voltajını değiştiririz. Aşağıdaki resim gösteriyor ki-
0 - 5V arasında değişen ve % 100 görev döngüsüne sahip bir PWM sinyalini düşünürsek, ortalama 5V çıkış voltajı elde edeceğiz, yine aynı sinyali % 50'lik bir görev döngüsü ile ele alırsak, 2.5V'luk çıkış voltajını alın ve % 25'lik görev döngüsü için bunun yarısıdır. Bu, PWM sinyalinin temel ilkesini özetliyor ve SPWM sinyalinin temel ilkesini anlamaya geçebiliriz.
Bir sinüs voltajı, esasen zamanla büyüklüğünü değiştiren bir analoji voltajıdır ve PWM dalgasının görev döngüsünü sürekli değiştirerek bir sinüs dalgasının bu davranışını yeniden oluşturabiliriz, aşağıdaki görüntü bunu göstermektedir.
Aşağıdaki şemaya bakarsanız, transformatörün çıkışına bağlı bir kondansatör olduğunu göreceksiniz. Bu kondansatör sorumludur AC sinyal yumuşatma gelen taşıyıcı frekansı.
Kullanılan giriş sinyali, giriş sinyaline ve yüke göre kapasitörü şarj edecek ve boşaltacaktır . Çok yüksek frekanslı bir SPWM sinyali kullandığımız için, % 1 gibi çok küçük bir görev döngüsüne sahip olacak , bu% 1 görev döngüsü kapasitörü biraz şarj edecek, sonraki görev döngüsü% 5 olacak , bu tekrar şarj olacak kondansatör biraz daha fazla, sonraki puls % 10'luk bir görev döngüsüne sahip olacak ve kondansatör biraz daha fazla şarj edecek, % 100'lük bir görev döngüsüne ulaşana kadar sinyali uygulayacağız ve oradan aşağı ineceğiz % 1'e. Bu , çıkışta bir sinüs dalgası gibi çok düzgün bir eğri oluşturacaktır.. Böylece, girişte görev döngüsünün uygun değerlerini sağlayarak, çıkışta çok sinüzoidal bir dalgaya sahip olacağız.
SPWM İnvertör Nasıl Çalışır?
Yukarıdaki görüntü, SPWM invertörün ana sürüş bölümünü göstermektedir ve görebileceğiniz gibi, bu devrenin transformatörünü çalıştırmak, istenmeyen anahtarlama gürültüsünü azaltmak ve MOSFET'i korumak için yarım köprü konfigürasyonunda iki N-kanallı MOSFET kullandık. MOSFET'lere paralel 1N5819 diyot kullandık. Kapı bölümünde oluşan herhangi bir zararlı sıçramayı azaltmak için , 1N4148 diyotlara paralel 4,7 ohm dirençleri kullandık. Son olarak, BD139 ve BD 140 transistörleri bir push-pull konfigürasyonunda yapılandırılmıştır MOSFET'in kapısını sürmek için, çünkü bu MOSFET çok yüksek bir geçit kapasitesine sahiptir ve düzgün bir şekilde açılması için tabanda minimum 10V gerektirir. Push-Pull amplifikatörlerin çalışması hakkında daha fazla bilgiyi burada bulabilirsiniz.
Devrenin çalışma prensibini daha iyi anlamak için, onu MOSFET'in bu bölümünün AÇIK olduğu bir noktaya indirdik. MOSFET akım üzerindeyken, önce transformatörden akar ve daha sonra MOSFET tarafından topraklanır, böylece akımın aktığı yönde bir Manyetik akı da indüklenecek ve transformatörün çekirdeği manyetik akıyı geçecektir. Sekonder sargıda ve çıkışta sinüzoidal sinyalin pozitif yarı döngüsünü alacağız.
Bir sonraki döngüde devrenin alt kısmı devrenin üst kısmındadır, bu yüzden üst kısmı kaldırdım, şimdi akım ters yönde akıyor ve bu yönde manyetik bir akı oluşturuyor, böylece tersine dönüyor çekirdekteki manyetik akının yönü. MOSFET'in çalışması hakkında daha fazla bilgiyi burada bulabilirsiniz.
Şimdi, bir transformatörün manyetik akı değişiklikleriyle çalıştığını hepimiz biliyoruz. Dolayısıyla, her iki MOSFET'i açıp kapatmak, biri diğerine ters çevrilmiş ve bunu saniyede 50 kez yapmak, transformatörün çekirdeği içinde güzel bir salınımlı manyetik akı oluşturacak ve değişen manyetik akı, ikincil bobinde bir voltaj oluşturacaktır. faraday yasası ile biliyoruz. Temel invertör böyle çalışır.
Bu projede kullanılan eksiksiz SPWM inverter devresi aşağıda verilmiştir.
SPWM İnvertörü Oluşturmak için Gerekli Bileşenler
Sl. Yok hayır |
Parçalar |
Tür |
Miktar |
1 |
Atmega328P |
IC |
1 |
2 |
IRFZ44N |
Mosfet |
2 |
3 |
BD139 |
Transistör |
2 |
4 |
BD140 |
Transistör |
2 |
5 |
22pF |
Kondansatör |
2 |
6 |
10.000,% 1 |
Direnç |
1 |
7 |
16 MHz |
Kristal |
1 |
8 |
0.1 uF |
Kondansatör |
3 |
9 |
4.7R |
Direnç |
2 |
10 |
1N4148 |
Diyot |
2 |
11 |
LM7805 |
Voltaj regülatörü |
1 |
12 |
200 uF, 16V |
Kondansatör |
1 |
13 |
47 uF, 16V |
Kondansatör |
1 |
14 |
2.2 uF, 400V |
Kondansatör |
1 |
SPWM Inverter Devre Yapısı
Bu gösteri için devre, şematik yardımıyla Veroboard üzerinde inşa edilmiştir, Transformatörün çıkışında, bağlantıdan büyük miktarda akım geçecektir, bu nedenle bağlantı köprülerinin mümkün olduğunca kalın olması gerekir.
SPWM Inverter için Arduino Programı
Devam etmeden ve kodu anlamaya başlamadan önce, temelleri temizleyelim. Yukarıdaki çalışma prensibinden, PWM sinyalinin çıkışta nasıl görüneceğini öğrendiniz , şimdi soru Arduino'nun çıkış pinlerinde bu kadar değişken bir dalgayı nasıl oluşturabiliriz.
Değişen PWM sinyali olmak için, kullanacağız 16 bit Timer1 ile 1 bir ön derecelendirici ayarı bize verecektir her sayım için 1600/16000000 = 0,1 ms zaman biz bir sinüs dalgası tek bir yarım döngüsü düşünülürse Bu, dalganın bir buçuk döngüsüne tam olarak 100 kez uyuyor. Basit bir ifadeyle, sinüs dalgamızı 200 kez örnekleyebileceğiz.
Sonra, sinüs dalgamızı 200 parçaya bölmemiz ve değerlerini genlik korelasyonu ile hesaplamamız gerekiyor. Daha sonra, bu değerleri sayaç limitiyle çarparak zamanlayıcı sayaç değerlerine dönüştürmeliyiz. Son olarak, bu değerleri tezgaha beslemek için bir arama tablosuna koymalıyız ve sinüs dalgamızı alacağız.
İşleri biraz daha basitleştirmek için Kurt Hutten tarafından yapılan GitHub'dan çok iyi yazılmış bir SPWM kodu kullanıyorum.
Kod çok basit, gerekli başlık dosyalarını ekleyerek programımıza başlıyoruz
#include #include
Daha sonra, zamanlayıcı sayacı değerlerini alacağımız iki arama tablomuz var.
int lookUp1 = {50, 100, 151, 201, 250, 300, 349, 398, 446, 494, 542, 589, 635, 681, 726, 771, 814, 857, 899, 940, 981, 1020, 1058, 1095, 1131, 1166, 1200, 1233, 1264, 1294, 1323, 1351, 1377, 1402, 1426, 1448, 1468, 1488, 1505, 1522, 1536, 1550, 1561, 1572, 1580, 1587, 1593, 1597, 1599, 1600, 1599, 1597, 1593, 1587, 1580, 1572, 1561, 1550, 1536, 1522, 1505, 1488, 1468, 1448, 1426, 1402, 1377, 1351, 1323, 1294, 1264, 1233, 1200, 1166, 1131, 1095, 1058, 1020, 981, 940, 899, 857, 814, 771, 726, 681, 635, 589, 542, 494, 446, 398, 349, 300, 250, 201, 151, 100, 50, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,0, 0, 0}; int lookUp2 = {0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 50, 100, 151, 201, 250, 300, 349, 398, 446, 494, 542, 589, 635, 681, 726, 771, 814, 857, 899, 940, 981, 1020, 1058, 1095, 1131, 1166, 1200, 1233, 1264, 1294, 1323, 1351, 1377, 1402, 1426, 1448, 1468, 1488, 1505, 1522, 1536, 1550, 1561, 1572, 1580, 1587, 1593, 1597, 1599, 1600, 1599, 1597, 1593, 1587, 1580, 1572, 1561, 1550, 1536, 1522, 1505, 1488, 1468, 1448, 1426, 1402, 1377, 1351, 1323, 1294, 1264, 1233, 1200, 1166, 1131, 1095, 1058, 1020, 981, 940, 899, 857, 814, 771, 726, 681, 635, 589, 542, 494, 446, 398, 349, 300, 250,201, 151, 100, 50, 0};
Ardından, kurulum bölümünde, zamanlayıcı sayacı kontrol kayıtlarını her birinde net olacak şekilde başlatıyoruz. Daha fazla bilgi için, atmega328 IC'nin veri sayfasını incelemeniz gerekir.
TCCR1A = 0b10100010; / * Eşleşmede 10 net, compA için BOTTOM'a ayarlandı. Eşleşmede 10 net, compB için BOTTOM'a ayarlayın. 00 10 WGM1 1: 0 dalga formu 15 için. * / TCCR1B = 0b00011001; / * 000 11 WGM1 3: 2 dalga formu için 15. 001 sayaçta ön ölçek yok. * / TIMSK1 = 0b00000001; / * 0000000 1 TOV1 İşaret kesmeyi etkinleştirme. * /
Bundan sonra, girdi yakalama yazmacını önceden tanımlanmış 16000 değeriyle başlatıyoruz, çünkü bu tam olarak 200 örnek oluşturmamıza yardımcı olacaktır.
ICR1 = 1600; // 50Hz sinüs dalgası döngüsü başına 200 alt bölüm için 100KHz anahtarlama frekansı için 16MHz kristal için dönem.
Ardından, işlevi çağırarak küresel kesintileri etkinleştiririz, sei ();
Son olarak Arduino pin 9 ve 10'u çıkış olarak ayarladık
DDRB = 0b00000110; // PB1 ve PB2'yi çıktı olarak ayarlayın.
Bu, kurulum işlevinin sonunu gösterir.
Kodun döngü bölümü, bir zamanlayıcı sayacı kesintiye dayalı program olduğundan boş kalır.
boşluk döngüsü () {; /*Hiçbir şey yapma…. sonsuza dek!*/}
Daha sonra, timer1 taşma vektörünü tanımladık, bu kesme işlevi, timer1 taştığında ve bir kesme oluşturduğunda bir çağrı alır.
ISR (TIMER1_OVF_vect) {
Daha sonra, bazı yerel değişkenleri statik değişkenler olarak ilan ediyoruz ve değerleri yakalama ve karşılaştırma direncine beslemeye başladık.
statik int num; statik karakter trigonometri; // her dönem görev döngüsünü değiştirin. OCR1A = lookUp1; OCR1B = lookUp2;
Son olarak, sonraki değerleri yakalamaya beslemek ve bu kodun sonunu işaret eden dirençleri karşılaştırmak için sayacı önceden artırıyoruz.
eğer (++ num> = 200) {// Artırma öncesi num sonra 200'ün altında olup olmadığını kontrol edin. num = 0; // Numarayı sıfırla. trig = trig ^ 0b00000001; digitalWrite (13, trigonometri); }
TL494 PWM Çevirici Devresinin Test Edilmesi
Devreyi test etmek için aşağıdaki kurulum kullanılır.
- 12V kurşun asit batarya.
- 6-0-6 kademe ve 12-0-12 kademe olan bir transformatör
- Yük olarak 100 W akkor ampul
- Meco 108B + TRMS Multimetre
- Meco 450B + TRMS Multimetre
Arduino'dan Çıkış Sinyali:
Kodu yükledikten sonra. Aşağıdaki görüntüye benzeyen Arduino'nun iki pininden çıkış SPWM sinyalini ölçtüm,
Biraz yakınlaştırırsak, PWM dalgasının sürekli değişen görev döngüsünü görebiliriz.
Daha sonra, aşağıdaki görüntü transformatörden gelen çıkış sinyalini göstermektedir.
İdeal durumda SPWM Çevirici Devresi:
Yukarıdaki görüntüden de görebileceğiniz gibi, bu devre ideal çalışırken yaklaşık 13W çeker.
Yüksüz Çıkış Voltajı:
İnvertör devresinin çıkış voltajı yukarıda gösterilmiştir, bu çıkışta herhangi bir yük bağlanmadan çıkan voltajdır.
Giriş Gücü Tüketimi:
Yukarıdaki görüntü, 40W'lık bir yük bağlandığında tüketilen giriş gücünü göstermektedir.
Çıkış Gücü Tüketimi:
Yukarıdaki görüntü bu devre tarafından tüketilen çıkış gücünü göstermektedir (yük 40W akkor ampuldür)
Bununla devrenin test kısmını tamamlıyoruz. Bir gösteri için aşağıdaki videoya göz atabilirsiniz. Umarım bu makaleyi beğenmişsinizdir ve SPWM ve uygulama teknikleri hakkında biraz bilgi edindiniz. Okumaya devam edin, öğrenmeye devam edin, inşa etmeye devam edin, sizi bir sonraki projede göreceğim.