ADC İle akım ölçümü

Başlatan mihri, 30 Eylül 2016, 10:22:59

mihri



Yukarıdaki dalga şekli buck konverter'ın olsun. Frekansı 40Khz. PWM kontrolü ve ADC ile ölçümü aynı mikroişlemci ile yapılıyor olsun.

Metot 1: Duty değeri değiştikçe mikroişlemci ADC ölçümü için Duty dğerinin tam ortasında ADC ölçümünü başlatan tetiklemeyi oluşturması gerekiyor.

Metot 2: Her periyotun başında ADC ölçümü otomatik olarak tetiklenmesi gerekiyor ve periyot sonuna kadar ölçüm otomatik yapılmalı.

Soru şu dijital güç kaynaklarında akım ölçümü  hangi metot ile oluyor bunların dışında bir yöntem mi kullanılıyor?

Metot 1 ve Metot 2 yi yapabilecek işlemci var mıdır bildiğiniz kullandığınız?

Lütfen böyle uygulama yapmış olan arkadaşlar yorum yapsın!
"Eppur si muove!"

PROTECH_

Neden 40khz lik  bir frekansta akım değerini ölçmek istiyorsun ?

Peak akımımı ölçmek amacın?
Multi-Core ,RTX,ThreadX, FreeRTOS, MODBUS  RTOS - Electronic-Hardware -- BERLIN

batigol

DC-DC dönüştürücülerde akım modu kontrolde çoğunlukla "peak current mode control" tercih ediliyor. Çoğu firmanın bu amaçla ürettici dsc'lerde pwm modülünün bu işlem için ekstra donanımı var. Aşağıdaki dökümanlar sorunuzu yanıtlar diye düşünüyorum.

http://www.ti.com/lit/an/sprabu2/sprabu2.pdf

http://www.ti.com/lit/an/sprabe7a/sprabe7a.pdf

http://microchip.wikidot.com/pwr3201:buck-converter-peak-current-mode

http://www.nxp.com/files/microcontrollers/doc/app_note/AN4716.pdf?fasp=1&WT_TYPE=Application%20Notes&WT_VENDOR=FREESCALE&WT_FILE_FORMAT=pdf&WT_ASSET=Documentation&fileExt=.pdf

kralsam

Karşılaştığım ve uygulanabilir yöntemler:
1. Yöntem(basit ve ucuz): Akım ölçme süresi çok önemli değilse(PID kontrol ile bir sonraki periyod da müdehale etmek gerekmiyorsa), seri direnç ve kondansatör ile Low pass filtre yapılıp (-sample-hold gibi çalışır-) çıkışı ADC ye girilip ortalama gerilim ölçülür ve akıma dönüştürülür.
2. Yöntem: 1 yada 2 sinyal periyodu örneklenmek istenen parça sıklığınca bir ADC ile fifo edilir(Ör: 16 örnek ile 2 periyod bakılacaksa 32 li fifo ya Tsinyal/16 hızda örneklenir), sonra ortalaması hesaplanır. İhtiyaç varsa RMS de hasaplanabilir. Ama çoğu işlemcide işlem gücü yemez.(Çoğu uygulama için gereksiz)

İyi çalışmalar.


z



Yeterli işlem gücün ve hızlı ADC varsa 2. yöntem en iyisi.
Ortada ölçüm yapmak basitlik getirir. Eğer yükün düşük endüktanslı değilse 1. yöntem iyidir.
Yükün yüksek endüktanslı ise akımı nerde okursan oku.
Bana e^st de diyebilirsiniz.   www.cncdesigner.com

mihri

ADC'ye gelen akım sinyalini kapasitör ile filtrelemek istemiyorum. Pic18 serisindeki işlemcilerle her iki metodu da yapmak mümkün değil onu biliyorum. DSPIC ya da STM32 serisi mikrolarla yapılabilir mi? Esas amacım hem akımın RMS değerini görmek hemde kısa devre durumunda koruma sağlayabilmek.

Metot 1 de 40Ksps hızında ADC yetiyor. Metot 2 de ise 4Msps ADC gerekiyor.

Mikroların (STM32, DSPIC, Ti ...) ADC modlarını araştırsam elbette öğrenirim ama sayfalarca dokümanı okuyup örnek uygulamalar yapıp vakit harcamam lazım özellikle STM32'nin ADC Timer modları çok karışık. Böyle bir uygulama yapmış biri olupta işlemci örneği verirse çok makbule geçer.
"Eppur si muove!"

PROTECH_

pic18 ilede yapabilirsin.

Low pass filtreden geçirip değerin ortlamasını ölçüp RMS hesaplarsın.
Kısa devre kısmında  DAC + Comparator kullanabilirsin veya direkt comparator girisini kullan.

Arm  olmadan bu iş olmaz diye düşünme

pic12 ile bile yaparım bu işi ;)
Multi-Core ,RTX,ThreadX, FreeRTOS, MODBUS  RTOS - Electronic-Hardware -- BERLIN

mert3162

Alıntı yapılan: PROTECH_ - 30 Eylül 2016, 15:01:00
pic18 ilede yapabilirsin.

Low pass filtreden geçirip değerin ortlamasını ölçüp RMS hesaplarsın.
Kısa devre kısmında  DAC + Comparator kullanabilirsin veya direkt comparator girisini kullan.

Arm  olmadan bu iş olmaz diye düşünme

pic12 ile bile yaparım bu işi ;)

Hocam aynısını @kralsam da önermişti ama arkadaşımız bu tarz bir çalışma istemiyor.

Konuyu takipteyim.

@kralsam in ikinci metoduda çok iyi bence denenebilir.
|^^^^^^^^^^^^\ ||\
|__PICPROJE.ORG __
||'""|""\___
| _____________ l | |__|__|___| )
(@!)!(@)"""""**|(@) (@)****|(@)---------

 Üstadlarım nonstradam & Logan

z

STM32F103C8 ile 1. yöntemi hiç sorunsuz  4 ayrı yük için senkronize uygulayabiliyorum.

40Khz için 12.5 us den önce 4 ayrı PID vs işletip Timer update eventinden önce timer registerleri yüklemiş oluyorum.

40 Khz için 100lerce örnek alma ve hesap işi biraz zor. Acaip işlemci gücü ve çok hızlı adc gerektirir.

TI DSC serisi, ARM serisi ile 1. yöntemde hiç sorun yok.


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

mihri

#9
Peki Duty değiştiği zaman ADC okumasını Duty değerinin tam ortasına getirmek için her duty değişiminde ADC'yi tetikleyen timer'ı mı güncelliyorsun?

Timer'in gelişmiş modlarında bu işlemi otomatik yapan mekanizma yok mu?

Bazı işlemcilerde motor kontrol yada Full bridge half bridge modlarında bazi işlemler bu amaç için otomatik yapılıyor böyle bi mod mu kullandın?
"Eppur si muove!"

z

PWM bir kaç şekilde üretilir. Edge align modunu centered mod seçersen timer sana tam orta noktada event üretir. Bununla ister ADC'yi başlatırsın ister interrupt rutinine girersin.
Bana e^st de diyebilirsiniz.   www.cncdesigner.com

mihri

STM32F103C8 center aligned modda PWM üretiyor o zaman. Timer'ı initialize ettiğin kod bloğunu paylaşabilirmisin?
"Eppur si muove!"

Voltajcı

Konuyu takipteyim, 2 aydır uğraşıyorum. AC akım ölçmek için ACS712, Opampla türev devreleri vs. deniyorum

z

Alıntı yapılan: mihri - 30 Eylül 2016, 17:35:10
STM32F103C8 center aligned modda PWM üretiyor o zaman. Timer'ı initialize ettiğin kod bloğunu paylaşabilirmisin?

Benim kodları boş ver C'de bir sürü örnek vardır.

Kodlarım hep asm. Timer cloğu bir yerde,  init rutini bir başka yerde takip etmen çok zor olur .....
Bana e^st de diyebilirsiniz.   www.cncdesigner.com

mihri

En azından register isimleriyle pseudo kod yazabilir misin?
"Eppur si muove!"