Fırat DEVECİ

Güç Elektroniği ve Mikrodenetleyiciler

  • 1 ay önce, Fırat DEVECİ tarafından yazılmıştır.
  • 7 Yorum
  • 1.189 Kişi Okudu

Güç elektroniğinin ana omurgası, istenen gerilim, akım ya da güç değerinin, istenilen şekilde kontrol edilmesi ve yönetilebilmesini esas almaktadır. Bu kontroller 20-25 sene öncesine kadar analog kontrolcü entegreler temelinde yükselirken, günümüzde hemen hemen her yerde güç elektroniği mikrodenetleyiciler (ya da büyük abileri FPGA’ler) üzerinde yükselmektedir. Analog kontrolcülerin baskın olduğu güç elektroniğinde peki ne değişti de artık kontrolcülerin temelleri yavaş yavaş mikrodenetleyicilere doğru kaydı; bu sorunun cevabını ararken klasik güç elektroniği kontrolünü ele alarak, dijital PLL algoritması özelinde yaptığım test sonuçlarını sizlere aktarmak istiyorum.

Güç Elektroniğinin Temeli: ADC ve PWM/HRPWM
Güç elektroniğini dijital dünyaya taşıdığımızda, hepimizin üniversite yıllarından bileceği gibi kesikli yani örnek almalı bir uzaya geçiyoruz demektir. Bu da kesintisiz çalışan analog dünya konusunda elimizin zayıflaması anlamına gelmektedir. Buna karşın elde ettiğimiz esneklik, gizlilik, kolay adaptasyon sağlama ve varyasyonların sınırsızlığı ise elimizi oldukça güçlendiren bu özellikler, güç elektroniğinin son 15-20 senesinde mikrodenetleyiciler gelişimin neden hep çekirdeğinde olduğunu göstermektedir.Güç elektroniği için özelleştirilmiş mikrodenetleyicilerde iki çevre birimi bizim için kritik önemdedir: ADC ve PWM bloğu. Bunlardan ilki olan, analog dünyadan dijital dünyaya taşınmamızda rol üstlenici olan ADC’nin hızı ve çözünürlüğü, hem kontrol gecikmelerinin önüne geçmek hem de doğru değerleri ölçümlemek için çok önemlidir. Güç elektroniği için özelleşmiş bir denetleyicinin günümüzde 12bit çözünürlükte en az 3MSPS hızlarını yakalaması beklenir. Ölçüm adedi arttıkça bu hızın düşeceği doğal olarak ön görülse de artık işlemcilerde birden fazla ADC çekirdeğinin olması da önem arz etmektedir. Resonant converter hızlarının 100kHz ile 2MHz arasında gezindiğini düşündüğünüzde gelecekte 3MSPS hızlarının bile yetersiz olacağını söylemek yanlış olmaz.

Gelişen yarı iletken teknolojisinin (SiC ve GaN) getirdiği frekans/verim avantajından dolayı mikrodenetleyicilerin frekans ya da duty kontrolünü daha hassas yapabilmeleri için yüksek çözünürlüklü PWM bloklarına (HRPWM) ihtiyaç gün geçtikçe artmaktadır. Günümüzün modern denetleticileri, adları farklılık gösterse de, High Resolotion PWM bloklarını içlerinde barındırarak, yüksek çözünürlükleri bizlere sunmaktadırlar. Bu bloklar özellikle yüksek frekanslarda, işlemci çalışma frekanslarından bağımsız, çok yüksek çözünürlüğü bize sunarak, daha hassas kontroller yapabilmemize olanak sağlar.

Güç Elektroniğinin Olmazsa Olmazı: Hız, Yüksek Hız ve Daha Fazla Hız
Güç elektroniğinde kontrol hızı her şeydir! Analog kontrolcülerin bu kadar iyi olmalarının altında bu özellikleri yatar. Ölçüm ve sonuç arasındaki süre o kadar kısadır ki bu da kontrol kazançlarının çok yüksek olmasına yol açarak, değişime hassas, robust bir sistem oluştururlar. Mikrodenetleyicilerde ise aşağıdaki grafiği esas alırsak bazı gecikmeler söz konusudur.Yukarıdaki grafikte görüldüğü gibi, profesyonel bir kullanımda, mikrodenetleyicide PWM sayıcısına senkron bir ADC bulunur. PWM sayıcısı center aligned ve ADC’nin örnek aldığı noktalar PWM sayıcısının tepe ya da sıfır olduğu nokta seçilerek (ki bunun nedeni bobin akımına “turuncu” bakılırsa anlaşılacaktır) akımın ortalama değerleri ölçülür. ADC, PWM ile senkron halindedir ve PWM zaman sayıcısı her üst ve alt sayma noktasına geldiğinde ADC’yi tetikleyerek çevrim işlemlerini başlatır. Çevrim işleminin sonunda ise sonuçların hazır ve kullanılabilir olduğunu belirten bir kesme çekilir. ADC’nin çektiği kesmeden sonra ise işlemcide yapılması gereken kontrol algoritması işletilir ve PWM’in yeni duty ya da frekans değeri olarak sisteme cevap olarak sunulur. Tüm bunlar, denetleyiciden denetleyiciye değişse de, ister resonant ister motor kontrolcü yapalım aslolan temel işlemler bunlardır.

Bu işlemlerden de anlayacağımız üzere, sistemin ADC tarafından okunup, daha sonrasında algoritmanın işleme sokulup cevap verilinceye kadarki süre faz farkı olarak sisteme binecektir. ADC çevrim hızlarına çok müdahale edemediğimiz bu noktada, işlemcinin ve yazacağımız algoritmanın verimine bakarak cevabımızı geciktirip erkene çekebiliriz. Burada işlemcilerin FPU birimlerinin olup olmaması, saniyede işleyebildikleri komut sürelerinin hızları belirleyici olacaktır. Hızlı bir işlemci çıkışa çok daha hızlı sonuç verebilirken, kötü bir şekilde yazacağınız algoritma da işlemci ne denli hızlı olursa olsun kötü sonuçlar doğuracaktır.

Dijital PLL Algoritması
Mikrodenetleyicileri birbiri ile kıyaslamanın en güzel yollarından birisi gerçek algoritma sunarak çıkan sonucu görmektir. Bu anlamda işlemcileri test ederken benim kullandığım yegane algoritmalarımdan birisi Dijital PLL olmuştur. Dijital PLL, sisteme giren bir sinyale, frekans ve faz olarak kilitlenmesi anlamına gelmektedir. Özellikle şebeke ile çalışılan sistemler için çok önemli olan PLL işlemi için bir çok yöntem geliştirilmiştir. Bunlardan bir çoğu vektör kontrol temelli olup iyi sonuçlar vermektedir.

Hem Mikrodenetleyici testinde hem de tek faz şebekeler ile senkronlama çalışmalarımda sıkça kullandığım (tek faz sinyal için) SOGI-PLL algoritmasının temel blok diyagramını aşağıda görebilirsiniz.Çalıştığım bazı mikrodenetleyiciler FPU birimleri içermediğinden ben algoritmamı hem “integer” hem de “floating point” işlemlere uygun çalışacak şekilde geliştirdim. Algoritma hız testinde, her denetleyicide ADC çevrim hızları farklı olduğundan, ADC çevrim hızını dikkate almayıp sadece fonksiyon işletim süreleri özelinde inceleme yaptım.

Dijital PLL işlemi sırasında algoritmayı koşturduğumda 40Hz->70Hz değişim ve Dijital PLL sisteminin, giriş sinyaline kitlenmesi aşağıdaki gibi olmuştur. Mavi giriş sinyali, sarı ise PLL çıkışının sonucudur. 

Mikrodenetleyici Hızı Test Sonuçları
2021 yılı içerisinde yaşadığımız chip krizinde, elimizi kuvvetli tutabilmek için her bir denetleyici ayrı ayrı bilmenin önemini her ortamda dile getirdim. Mikrodenetleyici testi sırasında da bu yüzden piyasada tercih edilen 3 farklı firmayı ele almayı uygun gördüm. Firmaların ürünlerini ele alırken birbirine yakın özellikte denetleyicileri seçmeye özen gösterdim. Elbette her firmanın daha üst segmentte denetleyicileri bulunsa da fiyat/performans bağımlısı biri olarak, fiyatın ve bulunabilirliğin fazla olduğu işlemcilerle deneme yoluna gittim.Algoritmayı işlerken tüm işlemcilerde öncelikle center aligned 16kHz PWM frekansı oluşturdum. Daha sonrasında bu PWM’e kitli bir ADC senkronizasyonu yarattım. Dolayısı ile 32kHz (double PWM uptade) frekansa sahip bir ADC kesmesine sahip oldum. Bu kesmenin içerisinde de yazmış olduğum dijital PLL algoritmasını işleme aldım. Sonuç olarak elde ettiğim değerler aşağıdaki gibi oldu:

Integer Aritmatik Sonuçları (32-Bit Long)

PIC32MK (120MHz): 1.90us
STM32F334 (72MHz): 1.50us
STM32G431 (170MHz): 1.68us
TMS280049 (100MHz): 2.10us

Floating Point Aritmatik (FPU Aktif)

PIC32MK (120MHz): 4.00us
STM32F334 (72MHz): 4.00us
STM32G431 (170MHz): 2.80us
TMS280049 (100MHz): 2.40us

Datasheet Değerleri

PIC32MK: 198DMIPS @120MHz
STM32F334: 210DMIPS @72MHz
STM32G431: 213DMIPS @170MHz
TMS280049: 200MIPS @100MHz

Yukarıdaki sonuçlara bakacak olursak işlemci mimarilerinin ne kadar önemli olduğu görülür. Doğuş felsefeleri güç elektroniği olan DSP ve STM32G4 serilerinin testte benzer sonuç almaları oldukça doğal gözükse de işlemcinin mimarisi gereği elde ettiği sonucun çalışma frekansından bağımsız olduğu söylenebilir. Texas’ın TMS serisinin oldukça eski bir seri olduğu göz önüne alındığında diğer firmaların fiyat bazında değil ama performans bazında Texas’ı yakalamaları gerektiği söylenebilir.

Sonlandırırken…

Tabi ki mikrodenetleyici seçiminde hız ne kadar önemli olsa da, firma desteği, örnekler ele alındığında kullanıcılar farklı alanlara yönlenebilirler. Örnek vermem gerekirse, kişisel görüşüm olarak, Texas’ın CCS IDE’sinin, STM32’nin kullanıldığı Keil ve Microchip’in kullandığı MPLABX’den de çok geride ve gelişime açık olduğunu düşünüyorum. Bilgisayar programlamada başarılı olan IDE’lerin, konu mikrodenetleyici olduğunda, o kadar da başarılı olmadığını bir çok örnekte olduğu gibi maalesef burada da görüyoruz.

Dijital PLL algoritmasını maalesef açık kaynak kodlu yayınlayamıyorum yalnız aklınıza takılan soruları yorum kısmından ya da iletişim bölümünden bana iletebilirsiniz.
Herkese çalışmalarında başarılar dilerim.

  1. Mustafa Ç dedi ki:

    Yine değerli bir yazı olmuş hocam. Elinize sağlık. CCS gibi eclipse tabanlı IDE’leri ben de kullanışlı bulmuyorum.

  2. oben dedi ki:

    STM32G431 performans anlamında texas ile eşit fakat fiyat olarak daha makul görünüyor. fakat st işlemcilere olan yogun talep nedeniyle yüksek miktarda siparişlerde lead time texasa göre daha uzun diye biliyorum. bu sebeple bir beyaz eşya üreticisi atmel işlemci kullanıyordu 3-4 sene öncesinde bile.

  3. Mustafa Berkcan dedi ki:

    Hocam benim merak ettiğim kısım Matlab Simulink üzerinde oluşturduğunuz blokları nasıl yazılım diline döküyorsunuz. Yazılım kısmını yayınlamıyorsunuz anlıyorum peki geri beslemeli bir sistemi nasıl kodlanması gerekiyor ve nasıl ögrenmeliyiz bununla ilgili gömülü sistemlerde bir yazı yazarsanız çok yardımcı olcağını düşünüyorum. Matlab simulinkdeki close loop nasıl yazılımla kodlandığını ögrenmek istiyorum

    • Fırat DEVECİ dedi ki:

      Merhabalar Mustafa Bey,

      Blok diyagramlarını her zaman Matlab kullanarak oluşturmuyorum, hatta genellikle Matlab’e ihtiyaç duymuyorum. Burada işin ana temelini anlayıp en efektif kodu sizin yazmanız gerekiyor. Bu da çok fazla deneyerek ve proje yaparak oluyor.

  4. rtc dedi ki:

    Matlab Simulink Destekli – Gerçek Zamanlı Kontrol kitabından yararlanabilirsiniz Mustafa Berkcan…

  5. İskender Önem dedi ki:

    Merhaba hocam,
    Lisans son sınıftayım ve Dengesiz ve bozulmuş şebeke altında üç fazlı pll ile senkronize edilmesini araştırıyorum.
    PLL bloğunun çalışma mantığını anladım ancak PLL bölümündeki LP filtrenin PI ve Pk kontrol katsayılarını neye göre belirliyoruz anlayamadım. Bunu açıklayabilir misiniz? Veya araştırabileceğim bir kaynak var mıdır?

    • Fırat DEVECİ dedi ki:

      Bu kısım bildiğimiz PID kontrol kısmı, burada sisteminizin cevabına bakıp ona göre belirleme yapmalısınız. Bir iki denemede sonucu hemen bulabiliyorsunuz. Hesap yapmak isterseniz sistemi Matlab’e koyup, tepki cevaplarına bakmanızı öneririm.

Yorum Yazınız

error: Kopyalama Yasaktır, Eğer Bilgi İçeriğini Almak İstiyorsanız İletişim Bölümünden Yazara Ulaşın!