True RMS'de periyot konusu

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

hasankara

Senin ölçtüğün akım değerinden çıkardığın offset değerinin, 3 aşağı 5 yukarı diye limitleyebildiğin hareketli hali. Hareket katarken filtreleyerek bunu sağlıyor. Window size ise filtrenin katsayısını belirliyor. Değişkenler static olmalı ve her yeni gelen veri ile güncellenmesi sağlanmaktadır.

Zoroaster

Ortalama alip bunu alinan samplelardan cikartma isi de nerden cikti simdi?

Giristen 0 Amp akarken ADC den okudugunuz deger ofsettir. Bunu okudugunu tum ADC degerlerinden cikartip karelerin toplaminin...... islemini yapacaksin.
Seytan deliginden kacti.

Mucit23

Selamlar

@iboibo İlgin için teşekkürler. Sorunu çözdüm gibi.

@Zoroaster düzgün bir sonuç alamıyorum o şekilde. İlk başta dediğin gibi yaptım, Girişten akım akmıyorken okuduğum değeri örneklerden çıkarıyordum. Fakat yarım dalga sinüste olduğu gibi ofseti kaymış sinyallerde sorunlu çalışıyordu. Bu şekilde onuda çözdüm sanırım.

Şimdi DC Ofseti basitçe değerlerin ortalamasını alarak hesapladım. RMS'den önce bu değeri örneklerden çıkardım. Şimdi gayet tutarlı sonuçlar alıyorum.

Hesabım aşağıdaki gibi.
float calc_rms_current(void)
{
   uint16_t i=0;
	 uint32_t isum=0;
	 int32_t dc_ofset=0;
	 int32_t iadc=0;
	 float irms=0,rms_current;
	  
	 for(i=0;i<500;i++)
	 {
	   dc_ofset+=ADCReadings[i*2+1];
	 }
	 
	 dc_ofset = dc_ofset /500;
	 
	 for(i=0;i<500;i++)
	 {
	   iadc = ADCReadings[i*2+1]-dc_ofset;
		 isum += iadc * iadc;
	 }
	 
	 irms = sqrt((float)isum / 500.0);
	
	 rms_current=(irms*7.85) / 798.00;  //Akım değerini oranlıyoruz. 
	 return rms_current;
}


Birkaç örnek vermek gerekirse

Ölçü aletim 0,551A ölçerken Ben 0,558A ölçüyorum
Ölçü aletim 2.785A ölçerken Ben 2.783A ölçüyorum. (Hatalı ölçüm yaptığım yarım dalga akım sinyali var)
Ölçü aletim 4.12A ölçerken Ben 4,192A ölçüyorum.
Ölçü aletim 7,85A ölçerken Ben 7,9821A ölçüyorum.

Daha yüksek akımlarda denemedim. Ama akım arttıkça biraz hata oranım artıyor. Yinede kabul edilebilir sonuçlar ama belki dahada iyileştirme yapılabilir. 

Bu sonuçlar nasıl hocam sizce?

Zoroaster

Sensoru falan devre disi birakip sinyal jenaratorunden sinyale 1.65v ofset ekleyip "ADC"ye gir. RMS degeri hesapla.
Dalga seklini ucgen yap bir daha hesapla. Bu sekilde deney yapip bir kere hesap rutinlerinde hata olmadigindan %100 emin ol.

Verilerine bakip hesaplamak icin zamanim yok. Sinyalin ortalama degerini alarak ofset bulma isi mantigima hic yatmadi.

Seytan deliginden kacti.

cetin1990

#79
Sinyalin ortalama degerini alarak ofset bulma isi gayet stabil çalışıyor. Yalnız çerçeveyi kısa tutmak gerek. Ve birden fazla çerçeve gerekli. 10 saniyelik sinyalimiz olsun. Bunu 80ms dilimler halinde adım adım işleriz.

Çerçeve niçin gerekli? Çünkü DC offset her yerde uzun süre boyunca sabit olmayabiliyor. Kendi çerçevesinde bakılıp gerekirse düzeltilmesi gerekir.

devrecii

Yanlız bu şekilde doğru akım  ölçeceksen hata verir bilgine.

Önceki sayfada çizdiğim gibi.

Ripple sallantıları olan dc akımı düşün önceki sayfada verdim.

AC ' de bu şekilde de olur.

Bu bilgi geçsin eğer sallantılı doğru akım ölçülecekse daha önce sayfadaki izdüşüm olayını unutmayınız.

Mucit23

Hocam Doğru akım için belki ayrı bir algoritma yazılabilir. Ölçü aletlerinde de AC-DC kademesi var sonuçta. Benim cihaz DC ölçmeyecek o yüzden ekstra bir önlem almaya gerek yok gibi.


@Zoroaster En son dediğini yapacağım. Onun için Labaratuvara gitmem lazım bende frekans jeneratörü yok.


Bir sorum daha olacak. ACS711 Akım sensörü çıkışının tam sıfır geçişini tespit etmem gerekiyor. Bunu normalde ACS711 çıkışına Fet girişli bir opamp ile bir komparatör bağlayarak yaptım. Komparatörün - Girişine iki adet Gerilim Bölücü dirençle VCC/2 verdim. Bu sayede 0 geçişlerini komparatör çıkışını izleyerek tespit edebildim. 0,8A ve üzerinde iyi çalışıyor fakat düşük akımlarda Pek doğru çalışmıyor. Düşük akımlarda aldığım kare dalganın doluluk oranı %50 den farklı bir değere gidiyor. Dolayısıyla problem oluşuyor. Bunu daha farklı nasıl yapabilirim önerisi olan varmı?

devrecii

Analog watchdog deneyebilirsin.