Efektif değer hesaplamanın basit yolu

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

JOKERAS

Yav Zoro Usta,yazda bitsin bu çile:)
Hala seni ve FxDev'i bekliyoruz.Hani Şu Flayback,bobin,smps konulu odada.
Odadaki arkadaşlar sizi beklemekten sıkıldı,Tavla oynuyorlar dersi kaynatıyorlar.
Bende kızıyorum onlara,Tavla oynayacağınıza Satranç oynayında Kafanız çalışsın diye.
Ama dinleyen kim?:)


Zoroaster

$$\frac{v^2}{vef}$$ değerini low pass filitreye girip, filitreden çıkan sinyale veff deyip bunu iterasyon haline getirirseniz efektif değeri hesaplamış olursunuz.

Response time kötü diyenlere, aman kullanmayın işinizden olursunuz, sizi kandırıyor, ben kül yutmam diyenlere belki sen beğendirirsin.

Fakat bütün dünya bu algoritmayı çok beğeniyor biliyormuydunuz? Bi bizim forumda bir iki kişi beğenemedi hatta birisi RobinHood'luğa soyunup
aman ha bu adam sizi kandırıyor ben sizi uyarıyorum diye geleceğe mesaj bile bıraktı.

Evet arkadaşlar bu algoritmayı çok çok çok ünlü bir lineer çip üreticisinin üretimini yaptığı analog efektif değer ölçen çipin çalışma presibinden ortaya çıkarttım. Yani Zoroasterin
işkembeden salladığı bir algoritma değil.


Benim yaptığım tek şey,  çipin analog devrelerinin yaptığı işi ayrıklaştırıp web sitemde ve forum sayfamızda yayınlamak sadece.

Kim bu çok çok çok ünlü firma derseniz Lineer Technology.
Seytan deliginden kacti.

frederic


JOKERAS

Ters köşe olmak,Top kaleye giderken olduğun yerde çakılıp kalmak bu.
Bu algoritmayı Linear Tecnology geliştirmişse laf yok,çok çok iyidir.Ama Zoro geliştirmişse
Berbattır Nokta:)

X-Fi

Hiç şaşırmadım zaten Bülent hoca böyle bir algoritmayı kendi başına bulup geliştiremezdi.

Olay tamamen kişiselleşmiş bende kötü polis olayım o zaman :)
http://www.coskunergan.dev/    (Yürümekle varılmaz, lakin varanlar yürüyenlerdir.)

fatih6761

@Cemre. hocam uniform random data ve linear increasing amplitude ( t*sin(t) ) de yanıt nasıl sizin metodun?

[latex]V_{eff}[n+1] = \frac{1}{2n} \left( (2n-1) \cdot V_{eff}[n] + \frac{v_{in}^2[n]}{V_{eff}[n]} \right)[/latex]
şeklinde bir metodla deneyebildiğim bütün dalga şekilleri ve frekanslarda truerms le neredeyse aynı yanıtı aldım.

Yani settling time olarak normal kareli köklü rms hesabından farksız çıkıyor sonuç.

Daha da ötesi @ferdem hocamın matlab testine de bu formülü koyunca trueRMS hesabıyla birebir aynı sonucu aldım.

Hatta öyle ki trueRMS ile bu hesabın grafiği üst üste bindiğinden tek çizgi gibi gözüküyor.

@Zoroaster hocam pratikte kullanımı olur mu sizce bu formülün performans açısından ?  :)

Zoroaster

#126
Zoroaster ne yaptı biliyormusunuz Lineer Technology'nin analog olarak yapamayacağı bir filitreyi RC filitre yerine yerine koymak oldu.

Hala Zoroasterin  yayınlamayıp şu anda kendine sakladığı filitreleme algoritması ile ilgilenen varmı?

Dünya devi analog firmaları, analog devrelerle benim bu filitremi yapamaz.

Bu iddiamı tartışmak isteyen varmı?

@fatih6761 pratikte çok güvenerek kullanabilirsin tabiki.

Yapılan iş gene efektif değer hesabı.

Tabiki bu yöntem filitre esasına dayandığından ve çok uzun moving averaj yaptığından sinyaldeki ani değişimin çıkışa yansıması zaman alır. Bu ölçü aletleri için güzel bir özelik olmasına rağmen sinyalin bir sonraki peryodunda efektif değerdeki değişime bakarak ne bileyim tristörün faz açısını belirleyecekseniz bu yöntem bu uygulamada işinize yaramaz tabiki.

Fakat bu, yöntemin efektif değer ölçmediği anlamına gelmez.

@fatih6761 Bir benzerlik görebiliyormusun?   http://www.cncdesigner.com/wordpress/?p=3591


Seytan deliginden kacti.

Cemre.

#127
@fatih6761 Hocam uniform random data için matlab'da bir kısayol var mı? Ben daha o kadar takla attıramıyorum bu merete :D

Lineer artış için bir sorun yok gibi gözüküyor.

Cemre.

#128
@Zoroaster Hocam. Üşengeçliği bırakıp verdiğim kodu formülize ettim. Bir de ne göreyim. Sizin formülün birebir aynısı  :o

[latex]V_{RMS}(n)=\frac {V_{RMS}(n-1)\times(2\times Sample-1)}{2\times Sample}+\frac{V^2(n)}{2\times Sample \times V_{RMS}(n-1)}[/latex]

Bunu bir de birinci dereceden RC filtreden geçirdikmiydi, fişek gibi oluyor. Onun formülasyonunu da @Zoroaster hocam verdi zaten.

Sample değeri için örnek isterseniz,
50Hz sinus için 20kHz örnekleme aldığımızı varsayalım. Sinyalin her bir tam peryodundan 400 sample alacağız demektir. Sample = 400 diyip 50hz sinüs'ü hesaba sokunca ikinci 400'de şak diye veriyor sonucu. Tabi bunlarında hepsi hata yapmadığım koşullarda geçerlidir.

Konu benim açımdan faydalı bir hale dönüştü.

fatih6761

@Zoroaster hocam sizin moving average algoritmasını siz yazmadan 5dk önce hatırlayıp bakmıştım ancak anlamadığım tek nokta var.
Moving average da (n-1) ile çarpıp eski toplamı elde ediyoruz ve yeni değeri toplama ekleyip n e bölüyoruz.
Ancak burada n-1 yerine n-1/2 ile çarpıyor olup hatasız değerler elde etmem kafama takıldı.

@Cemre. hocam rand(1000, 1) derseniz [0, 1] aralığında 1000 elemanlı random bir vektör verir. Bunu periodicity ve response time için sormuştum özellikle.

Cemre.


Zoroaster

#131
Alıntı yapılan: fatih6761 - 04 Kasım 2016, 21:29:30
@Zoroaster hocam sizin moving average algoritmasını siz yazmadan 5dk önce hatırlayıp bakmıştım ancak anlamadığım tek nokta var.
Moving average da (n-1) ile çarpıp eski toplamı elde ediyoruz ve yeni değeri toplama ekleyip n e bölüyoruz.
Ancak burada n-1 yerine n-1/2 ile çarpıyor olup hatasız değerler elde etmem kafama takıldı.

Moving average demissem çok aldırma onun da türevleri var. Aslen yaptığımız şey 1 dereceden filitrenin parametreleriyle oynamak.

Bizi ilgilendiren öyle ya da böyle filitreye uygulanan sinyal nereye gidiyor?

Tabiki efektif değere.

Çünkü $$Vef=\frac{V^2}{Vef}$$ eşitliğini yakalamaya çalışıyoruz.

Öyle bir V DC sinyali arıyoruz ki bunun karesi giriş sinyalimizin efektif değerinin karesi olsun.

Bunu bulduğumuzda Giriş sinyalinin efektif değerine eşit DC geriimi bulmuş oluyoruz. İşte bu arayışın tanımı da zaten efektif değer tanımın ta kendisi.

Seytan deliginden kacti.

FxDev

#132
En sonunda baklayı çıkardın Z!Öncelikle geç yazdığım için kusura bakma, sansürlerden anca kurtulabildim.

Çok uzatmaya gerek yok benim açımdan olayı özetleyeyim:

1) Algoritmanın anlık değişikliklere çok uygun olmadığını kabul edildi en sonunda!
2) LTC'nin RMS to DC entegrelerinin formülüzasyonlarına benziyor yapılar, bu konuda bir ara ilgili araştırmayı özel olarak yapacağım. O yüzden alkışı Lineer'e gönderiyorum. Robin Hood'luğu bırakıyorum. Dolayısı ile Lineer'den uyarladığın algoritman düzgün sonuç veriyor! Bu konuda da yiğidin hakkını yiğide veriyoruz! @Zoroaster 'i tebrik ediyoruz.
3) Hız olayı benim için çok önemli olduğundan bu algoritma maalesef hala işime yaramıyor.
4) Bunun yanında kaydırmalı ve çok fazla örnekli (0,5saniyede, 50us'de bir örnekli) RMS değeri hesabının da yaklaşık sonuçlar verebileceğini düşünüyorum, hesaplamadım, boş zamanımda deneyip sonucu karşılaştırmalı vermeye çalışırım.
5) Formülün en büyük problemi hala bölmeler olarak gözüküyor. Bu şekilde küçük işlemcilerde kullanılması zor.
6) Bu formülü @Zoroaster'in dediği gibi ölçümcülere öneririm, endüstride çoğu uygulamada formül yavaş kalır. Yavaş kalmasının altında nedenler var, yavaş olmazsa bu sefer değerler çok oynayacaktır dediği gibi.
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

En azından şu iddianın da kanıtını bekliyorum.

Birileri efektif değer hesabında frekansı ya da peryodu bilmeye gerek yok diyordu?

İspat lütfen.

Şebekenin saf sinüs olduğu varsayımı ile efektif değerinin Vm/Kök2 olduğunu gösterilmesini bekliyorum.

Yalnız bu ispatın peryodun bilinmeden yapılmasını istiyorum.

Genel konuştum fakat sorunun sahibi kendisini çok biliyor.

Bakalım üstüne alınacak mı?
Seytan deliginden kacti.

ferdem

Benim ters düştüğüm nokta şurası oldu:
RMS değer hesabı için, kavramın tanımı uyarınca gözlem süresi boyunca alınan tüm örnek(V^2) değerlerinin ortalaması alınmalıdır, "cumulative average".
Sizin öneri V^2 lerin ortalamasını almak yerine bu değerleri bir "lowpass" filtreye sokuyor. Burada "lowpass"(LP) filtreyi "recursive" gerçeklemenin pratikliği ve karekök içermemesi avantaj olarak görülüyor ancak "settling time","ripple" gibi dezavantajlar da beraberinde geliyor. Doğru seçilmiş bir köşe frekansı ile çok kullanışlı olduğu yerler olabilir, o kısma yorumum yok.

Alıntı YapŞebekenin saf sinüs olduğu varsayımı ile efektif değerinin Vm/Kök2 olduğunu gösterilmesini bekliyorum.

Yalnız bu ispatın peryodun bilinmeden yapılmasını istiyorum.
Frekansı bilmeyeceğiz ancak yeterince sık ve yeterince uzun(>10xperiyot süresi gibi) örnek alma garantisi vermelisin. Böylece yeterince uzun örnek alındığında sinüzoidal bir işaretin RMS değerinin Vp/kok(2) ye yakınsadığını gösterebiliriz.
V=A*cos(2pi*x*t) olsun, x bilmediğimiz frekans.
Vrms^2=(1/T) integral (0 dan T ye) A^2*cos^2(2*pi*x*t)
            =(1/T) integral (0 dan T ye) A^2*(0.5+0.5*cos(4*pi*x*t))
=(1/T)*A^2*T/2 + (1/T) integral (0 dan T ye) 0.5*cos(4*pi*x*t)
T arttıkça sağdaki integralin 0 a gittiği görülür ve geriye (1/T)*A^2*T/2 den A^2/2 kalır. Buradan da sinüzoidal bir işaretin RMS değerinin A^2/kok(2) ye yakınsadığı görülür.

Başlık bana faydalı oldu, teşekkür ediyorum.