Efektif değer hesaplamanın basit yolu

Başlatan Zoroaster, 31 Ekim 2016, 20:53:49

muhittin_kaplan

Kaç basamağı kaale alacağız bu arada. 00.00 yaparsam 56bin de ulaşıyor


CLR

20ms'de 64 sample alsak, bir sample zamanı yaklaşık 300us
cihaz açıldıktan veya adc okumaya başladıktan sonra

50000 * 300us = 15 000 000us = 15sn sonra doğru efektif değere ulaşıyor. Bu değer pek efektif değil ama sonrasında düzgün olduğunu farz edelim yani
response'ına bakalım.

Normal rms hesaplarken 16 sample'da sonuca erişebiliyoruz, sqrt'siz ise 50000 sample'da
sqrt'li(normal) rms için 17. sample'ı , sqrt'siz içinde 50001'yi hesaplayalım. Okunan adc değeri 50 olsun.

Ve= 7.34;  // eski rms değerini doğru kabul ettik ve 50001. sample 50 okundu
	Ve= (((50 * 50 / Ve) + (Ve * 16383)) / 16384);
	
	printf("NoSqrt Rms Value\t: %f\n" , Ve);


NoSqrt Rms Value: 7.36
Gerçek rms value : 14.035

Efektif hesaplıyor ama algoritmanın kendisi pek efektif değil gibi duruyor. Ve bu algoritmanın response inanılmaz yavaş.
Knowledge and Experience are Power

Zoroaster

#32
Elma armut kıyaslaması yok ortada. Elma nerde Armut nerde?

Alıntı YapEfektif hesaplıyor ama algoritmanın kendisi pek efektif değil gibi duruyor. Ve bu algoritmanın response inanılmaz yavaş.

Bu algoritmayı koda döker bir de display takarsanız cihaz son derece kıpraşmasız efektif değer gösterir. Bu algoritmada katsayıları bu amaçla yüksek tuttum. Panoya takarsınız ve panoda stabil bir değer görürsünüz. Amaç da buydu zaten.

Aslında algoritma RC filitre içeriyor ve response time RC değerinin yüksek olmasından kaynaklanıyor.

Ana mantığı 2 derece filitrelerle donatıp response time'ı inanılmaz küçültebilirim. Fakat o zaman algoritmayı burdaki gibi bedava veremem.

Ben sadece ufkunuzu genişletmek istedim.

Alıntı YapNormal rms hesaplarken 16 sample'da sonuca erişebiliyoruz, sqrt'siz ise 50000 sample'da
sqrt'li(normal) rms için 17. sample'ı , sqrt'siz içinde 50001'yi hesaplayalım. Okunan adc değeri 50 olsun....

Normal RMS hesabı diye bir şey yok. O bir matematik teknik. O bir aldatmaca.


Efektif değeri klasik formülle hesaplayan bir program yazın. ADC den ölçüm yapıp sonucu versin.

Deneme amaçlı olarak sin(x) sinyali kullanın.

Nasıl sonuç mükemmel değil mi.

Şimdi de sin(x)+3sin(3x) için aynı programı kullanın ve sonucu hesaplatın.

Sonuç nasıl?
Seytan deliginden kacti.

FxDev

#33
Alıntı yapılan: Zoroaster - 02 Kasım 2016, 16:28:37
...
Peki AC 50Hz ile ark kaynağı yapan makinanın elektrod akımının efektif değerini ölçmek istiyorum. Hadi bakalım MCU ile efektif değeri ölçecek bir kod yazıverin.

Cıks. Biz bu yukarıdakini yapanı bekliyoruz. Artık bedava olur olmaz bilemem.

Şimdi kaçaklara oynamayalım; tepki süresi bu kadar yavaş olursa aşağıdaki sinyalin RMS'ini nasıl hesaplayacağız? Bunları ben iddia etmedim iki şeyi de siz iddia ettiniz. Ben ikisini de yapmanızı bekliyorum. Yoksa boş beleş bir iddia der kaale almam bu formülü.

Forumda bazı bağnaz kişiler tarafından engellenip, atıldım. Tüm bu bağnaz kişilere rağmen Atatürkçülüğü sonuna kadar savunacağım; onlar da bağnazlıklarında boğulacaklar. Haberleşme için: info[at]firatdeveci.com / ©firatdeveci.com - ße Different Everytime!

mihri

Bu şekilde kimsenin ufku genişlemez...

RC filtreyi modelleyip Z dönüşümünü alarak mı algoritmayı çıkardın? eğer öyleyse bu işlemleri açıklayıp paylaşırsan forumun ruhuna daha uygun olur...
"Eppur si muove!"

Zoroaster

#35
Kuyuya taşı attım. Benden bu kadar.

Birisi forumda bana şöyle demişti. "Her yiğidin bi yoğurt yiyişi vardır. Ben yoğurdu böyle yiyiyorum."

Ben de deneyim bakalım bu yiyiş tarzı iyimiymiş.

Bu arada,  algoritmanın nereden geldiğini bulacak adamı gerçekten tebrik ederim.


Seytan deliginden kacti.

mihri

Alıntı yapılan: Zoroaster - 02 Kasım 2016, 16:51:42

Ana mantığı 2 derece filitrelerle donatıp response time'ı inanılmaz küçültebilirim. Fakat o zaman algoritmayı burdaki gibi bedava veremem.


Bende bedavaya uğraşmam bununla :)
"Eppur si muove!"

Zoroaster

Seytan deliginden kacti.

CLR

Verdiğin örnek mantıklı değil  , mesela elinde 1mhz'e(sin (x)) kadar ölçebilen bir frekans ölçer varken 3mhz'i (sin (3x)) doğru ölçsün istiyorsun.
 
Knowledge and Experience are Power

Zoroaster

Alıntı yapılan: CLR - 02 Kasım 2016, 17:33:35
Verdiğin örnek mantıklı değil  , mesela elinde 1mhz'e(sin (x)) kadar ölçebilen bir frekans ölçer varken 3mhz'i (sin (3x)) doğru ölçsün istiyorsun.


Hayır elimizde 3Mhz'e kadar ölçebilen frekansmetre var ve senden 3Mhz'e akadar olan sinyalleri ölçsün istiyorum.

Efektif değer hesaplayan rutinininle önce 3sin(3x) i hesapla sonra da sin(x) + 3sin(3x) i hesapla.
Seytan deliginden kacti.

Zoroaster

#40
Alıntı yapılan: FxDev - 02 Kasım 2016, 17:08:40
Yoksa boş beleş bir iddia der kaale almam bu formülü.

Umrumda değil.

Algoritmanın çıkış noktasını bulmaya çalışacaklar için bir kaç ip ucunu vereyim.

1) Bir sinyalin efektif değerini bulmak demek, bu sinyalin yapacağı işe eşdeğer iş yapan DC voltajınn değerini bulmak demektir.

2) Tamdalga doğrultucu dahi yapsanız AC sinyaller doğrultulduğunda rıpıl oluşur.

3) Bu rıpılın genliğini büyük değerli RC filitre ile çok küçültebilirsiniz.

4) Eğer RC filitreleme ile rıpıl genliğini düşürmek amacıyla RC çarpanını büyük tutarsanız RC filitrenin zaman sabiti basamak cevabını yavaşlatır.
Seytan deliginden kacti.

FxDev

#41
@Zoroaster hâlâ aşağıdaki gibi bir şeklin RMS'ini sizin algoritmanız nasıl oluyor da hızlı bir şekilde buluyor kavrayamadım? Klasik RMS'ten avantajının aşağıdaki şekildeki gibi hızlı tepkilere cevap vereceğini söylediniz, hatta ve hatta kaynak akımı dediniz, çözümünü bekliyoruz.

Forumda bazı bağnaz kişiler tarafından engellenip, atıldım. Tüm bu bağnaz kişilere rağmen Atatürkçülüğü sonuna kadar savunacağım; onlar da bağnazlıklarında boğulacaklar. Haberleşme için: info[at]firatdeveci.com / ©firatdeveci.com - ße Different Everytime!

Zoroaster

Neyi anlamadın mesela?  MCUnun ADC'si var. ADC girişine ıvır zıvır devre ekledin ve grafikteki sinyali girdin. Efektif değeri nasıl hesaplayacaksın?

Al işte algoritmayı verdim o algoritma ile hesapla.

Neresini anlamadın?
Seytan deliginden kacti.

FxDev

İterasyonla çok vakit kaybı oluyor. Şebeke sinyalini düşünelim, 10ms yarım dalga olsun 1 ms çöküntü oluştu. 20us ADC int gelsin, iterasyon 100bin cycle sonra sonuç veriyor hızlı değil. Bunu anlamıyorum.
Forumda bazı bağnaz kişiler tarafından engellenip, atıldım. Tüm bu bağnaz kişilere rağmen Atatürkçülüğü sonuna kadar savunacağım; onlar da bağnazlıklarında boğulacaklar. Haberleşme için: info[at]firatdeveci.com / ©firatdeveci.com - ße Different Everytime!

Zoroaster

#44
Üç kağıtçı seni. Şebekenin dalga şekli sinüstür diyorsun en kötü ihtimalle  atıyorsun bir zero cross dedector

Sıfır noktasını yakalıyorsun bakıyorsun + alternasdasın örnek alıyorsun sonra bir sıfır daha geliyuor gene örnekler alıyorsun sonra bir sıfır daha geliyor tekrar + alternans oldu diyorsun sonra tamam 1 tam peryod için verileri topladım bunların karelerini alır toplar terim sayısına böler karekök alır ve efektif değeri hesaplarım diyorsun.

Yada zero cross kullanmadan sinyalin değerlerinin işaretine bakarak alternanslar burda başladı burda bitti diyorsun. PEryodu yakalıyorsun. Ama bak hep sinyalin sinüs olduğu varsayımı var.

Eeee bu ne perhiz ne lahana turşusu? Daha en baştan sinüs dalga için hesap yapmaya karar verdin. Bir alternansda iki sıfır vardır kabülü yaptın.  Peki dalga şeklin kargacık burgacık bir şeyse ne olacak? Sinyalin peryodu nerde başlıyor nerde bitiyor nasıl bileceksin?

Yada  DC üzerine binmiş bir sinüs sinyal hiç sıfırı kesmeyip salınıyorsa nasıl efektif değer hesaplayacaksın?

İşte bu durumda şöyle yaparsın.

Sinyalimin peryodunu bilmiyorsam efektif değeri sonsuza dek hesaplarsın yani 10 .. 20 terim gibi sample değerleri ile değil her aldığın sample'ı efektif değer hesabında kullanırsın.

Mesela True RMS voltmeter her türlü sinyalin efektif değerini ölçebiliyor bunu nasıl yapabiliyor?

Benim algritmaya çamur atmak yerine kağıt kalem alıp biraz kafa yorun.

Kubilay ne diyordu? Okulda hocalarınız sizi şartlandırıyor halbuki ben olaylara geniş alandan bakıyorum.

Aynı durum var. Efektif değer hesaplama için çok şartlanmışsınız.

Algoritma yavaş çalışıyor falan diyorsunuz da ben onu süper hızlı olsun cevabı çok hızlı olsun diye yazmadım.

Eğer gerçekten algorritma ilginizi çektiyse ve hızlı versiyonu lazım olursa mail atın yeter. Sözleşme metnini yollarım.

Yahu yapmayın etmeyin acaip basit bir algoritma. At gözlüklerinizi çıkarıp atın geniş açıdan bakın. Algoritmayı sizler de hızlandırabilirsiniz.

En azından algoritma neden sağır onun sebenini siz bulun. Aslında bir sürü ip ucu verdim.

Mesela kaynak akımı gibi iğrenç bir akımın efektif değerini nasıl hesaplayacaksın. Verdiğim algoritma tıkır tıkır hesaplar.
Güzel algolar istersen bende mevcut.

STM için acaip algoritmalarım var. Mis gibin asm kokuyor üstelik.

Seytan deliginden kacti.