True RMS'de periyot konusu

Başlatan Mucit23, 30 Kasım 2017, 21:33:43

OptimusPrime

https://www.sparkfun.com/datasheets/BreakoutBoards/0712.pdf

sayfa 12deki application 4 devresini mi kurdun?

sensorun beslemesinde veya yukununn uzerinde 20mV gurultu olabilir mi?
https://donanimveyazilim.wordpress.com || Cihân-ârâ cihân içredir ârâyı bilmezler, O mâhîler ki deryâ içredir deryâyı bilmezler ||

Mucit23

Hocam şuanda Acs711 ile deneme yapıyorum  besleme 7805+3.3v ldo ile yapılıyor. LDO çıkışındaki gürültüyü bi kontrol edeyim. Devrede ise çıkışta herhangi bir opamp vs kullanmadım. RC filtreden geçirip adc ye giriyorum

hasankara

MCU nun Vref- girişi ile filtre kondansatörünün bağlantısını doğrudan yapmayı deneyebilirsin. Eğer mcu Avss referans olarak kullanıyorsa Avss ile Gnd arasına 0R direnç bağlayıp RC kondansatörünü Avss ile bağlanması şeklinden bahsediyorum.

Mucit23

Aynı gürültü beslemede de var. Aslında çok da önemli değil çünkü sadece çok düşük akımlarda ölçümü mü etkiliyor. Ama onun için birkaç önlem alacağım. Benim True RMS ile ilgili daha büyük bir sıkıntım var. Akım hesabıyla ilgili.

Farklı yüklerde cihazı test edip aldığım ölçümleri analiz ediyorum. Yük olarak saç kurutma makinası ile bir deneme yaptım. Saç kurutma makinası yarı hızda çalışıyorken ACS711 çıkışında aşağıdaki sinyali görüyorum.

Sanırım içerideki bir takım diyotlardan dolayı böyle bir akım çekiliyor.

Elimde akımı ölçmek için bir tane Multimetre birde Dijital Wattmetre var. Multimetre TrueRMS değil.

Böyle bir sinyalde Multimetre ve Wattmetre 2.70A civarı bir akım ölçerken Benim hesaplarım 3,43A civari bir sonuç veriyor. Fakat Sinyal Periyodik tam sinüs olursa Bende Ölçü aleti ve Multimetre ile aynı akım değerlerini ölçebiliyorum. Sinyal Periyodik bir sinyal olmasına rağmen neden böyle farklı bir sonuç alıyorum. Yarım dalga olarak çekilen yüklerde bu şekilde sonuçlar çıkıyor.

True RMS hesapları için ACS711 çıkışını 40ms yani 50 Hz için düşünürsek iki periyot boyunca 500 Adet örnek alıyorum. Bu örnekleri True RMS hesabına sokuyorum. Yanlış olan nedir?

hasankara

ACS hangi aralıkta ölçüm yapıyor? Model uzantısı ney?

Mucit23


hasankara

Osilaskop 227mv ölçmüş. Acs 90 mv/A parametresinden hesap yapınca 227/90 = 2,52 amper çıkıyor. Sen nasıl 3,43 buluyorsun?

Mucit23

Yöntemim yanlış olabilir. Çünkü bir tek periyodik tam sinüs sinyallerde düzgün çalışıyor.

float calc_rms_current(void)
{
   uint32_t itoplam=0;
   uint16_t i=0;
	 signed int raw_idata=0;
	 float iadc=0,irms=0;
	
	 for(i=0;i<500;i++)
	 {
		 raw_idata=(signed)ADCReadings[i*2+1] - 2048 + iadc_ofset;
	   itoplam+=raw_idata*raw_idata;  //Ölçümlerin karesini aliyoruz. 
	 }
	 iadc=sqrt((float)itoplam/500.0);
	 irms=(iadc*7.85) / 798.00; 
	 return irms;
}


500 Adet örneğin ilk başta 2048 ofseti çıkarıp daha sonra karelerini alıp topluyorum. Daha sonra 500'e bölüp kareköklerini alıyorum. Son olarak basitçe bir oranlama yapıyorum. 

Dediğim gibi tam sinüs sinyallerde oldukça abul edilebilir sınırlar içerisinde akım doğru sonuç alıyorum. Ama sinyal tam sinüs olursa bu hesap doğru çalışmıyor.

devrecii

Büyük ihtimalle ölçüm süren 40ms değil sonraki tepe noktasını kesiyor.

Yukarıdaki osiloskop görüntüsüne;

İşlemcinin bir pini Adc başladığı an set yapsın değerler alınıp bittiğinde reset yapsın ve bunu osiloskopun diğer kanalına versin,  resmi çekip yayınlayabilirsen bizde görmüş oluruz hatayı.   


frederic

Bu tarz ölçümler de hesabı direk 50hz üzerinden yapmak sıkıntı, ben yaptığım uygulamada şebekenin frekans salınımına karşı, sistemi 20-100Hz arası otomatik adaptasyonlu yazmıştım.

Mucit23

Hocam ADC'yi Timer ile tetikliyorum. Timer her 80uS'de ADC yi tetikliyor. 500 Adet örnek alınca DMA TC kesmesi ile örnek alma işleminin tamamlandığını anlayıp RMS hesaplarını yapıyorum. Tabi Arka Planda Timer ADC ve DMA üçlüsü örnek almaya devam ediyor. Toplam Süre 40ms oluyor.(500x80uS=40mS). Çünkü DMA TC kesmesi 40ms aralıklarla oluşuyor. Buda 50Hz için 2T demek.

Benim Anlamadığım nokta şu. Sinyal Periyodik bir sinyal. Biz ölçümü nereden başlatırsak başlatalım sonuç olarak hep gelip aynı yerde sonlanacak. Bunu daha önce yine bu başlıkta konuşmuştuk.

Ölçümlerde Doğru yöntem nasıl olmalı peki?

hasankara

Real Time Data Monitoring yapma şansın var mı? Bir de "(iadc*7.85) / 798.00" burada ki katsayı tepeden tepeye tüm aralıkta doğru sonuç verdiğine emin misin?

Erol YILMAZ

#42
@Mucit23,

Sabit periyot araliklarla ornek aliyorsan alacagin ornek sayisi sinyal periyodu ile iliskili olmali.

Aksi halde misal 49 hz icin tam alternans ornekleri almamis oluyorsun.

Mucit23

Alıntı yapılan: hasankara - 13 Aralık 2017, 10:37:30
Real Time Data Monitoring yapma şansın var mı? Bir de "(iadc*7.85) / 798.00" burada ki katsayı tepeden tepeye tüm aralıkta doğru sonuç verdiğine emin misin?

0,5A ve üstünde doğru sonuç veriyor. Fakat 0,5A ve Altında sapma çok oluyor. Oda sensörle ilgili bir durum diye düşünüyorum. Real Time Data Monitoring derken tam olarak nasıl birşey istiyorsunuz? Şuanda Güncel verileri görüntülemek için Uart Kullanıyorum. Uart ile verileri alıp terminalde görüntülüyorum.

Alıntı yapılan: Allegro - 13 Aralık 2017, 10:58:48
@Mucit23,

Sabit periyot araliklarla ornek aliyorsan alacagin ornek sayisi sinyal periyodu ile iliskili olmali.

Aksi halde misal 49 hz icin tam alternans ornekleri almamis oluyorsun.

Hocam Arka planda bağımsız olarak sürekli örnek alınması sorun yaratıyor olabilir mi? Acaba Örnek Alma işlemini Sıfır geçişlerinden tetik alarak mı yapmak gerekir?

Çünkü Ben RMS hesaplarını yaparken bir yandan yeniden örnek alınıyor.

Şöyle bir yol izlesem belki iyileştirebilirim sonucu.

Timeri Başlat ve 500 Adet örnek alınmasını bekle,
Örneklerin Hepsi alındımı Timeri Durdur.
RMS hesaplarını yap,
Tekrar Timeri başlat ve başa dön.

Hala yanlış olanı tam olarak anlayamadım.

Zoroaster

#44
Oncelikle sensor de dahil olmak uzere akim olcme devresinin ADC girisine kadar olan kisminin semasini gormek lazim.

Yarim dalga sinyalini gorunce suphelendim. Sinyalin ADCye ulasmadan once sanki seri kapasitorden geciyor gibi geldi bana.

Scopunu da DC kuplaja al.
Seytan deliginden kacti.