Zaslal: čt říjen 01 2015, 16:27 Předmět: Efektivní (střední) hodnota ze signálu o neznámé frekvenci
Tohle bude asi trapný dotaz narážející na krátery ve znalostech ohledně zpracování signálu, ale rád bych si v tom udělal jasno
Mám několik zdrojů signálu, které mají stejnou frekvencí (přesněji jde o napětí získáné ze senzorů, snímacích rezistorů, převodů z transformátoru apod měřící proud v jedné smyčce). Jenomže tu frekvenci neznám, ale vím, že signál může být i stejnosměrný nebo dosahovat maximální hodnoty frekvence - řekněme konkrétně 100kHz. Další zjednodušení předpokládá, že se perioda v delším čase (jednotky sekund) nemění. Signál může být libovolně komplexní (obdelník, harmonický...).
Otázka zní jak přes MCUčko, které nějak získá vzorky (z interního nebo externího AD) vypočítat efektivní hodnotu. Je vztah RMS = √(∑ (V1^2 + ... + Vn^2) / n), kde Vx jsou jednotlivé vzorky a n je jejich celkový počet.
Jak určit počet vzorků a jakou frekvencí by měli být vzorky vzorkovány, aby pro signál nabývající frekvence od 0 do max. frekvence dal algoritmus rozumné přesné hodnoty rms? Existuje jiná cesta?
Příklad: ARM mcu, co má 12bitový převodník a umí vzorkovat 1Mhz(T=1us). Vzorkuju celou jednu vteřinu, abych pokryl výpočet rms ze signálu o frekvenci 0 až 100kHz, takže pro maximum 100kHz (T=10us) bych měl mít 10 vzorků. Budu mít v každém případě po vteřině vzorkování 1 000 000 vzorků o 16bitech (12 bitů převedu do 16bitové integeru). Když zanedbám nějaké zarovnání v datové paměti, tak zaberu 16 * 1 000 000 = 2 kB paměti. Krapec overkill ne? Je nějaký trik, jak to zjednodušit (průměrování, plovoucí okno). Bude nutné získat pro mcu informaci o frekvenci signálu, aby stanovil kolik period změří?
Určitě je řešení v použití specialních integrovaných obvodů, co na svém výstupu (analogově nebo digitálně) dávají RMS se slušnou přesností, ale jsou pěkně drahé (800kHz za 1000Kč), ale ušetřily by mi spoustu starostí
EDIT: Viz dále. Z původního zadání počítající s vypisováním efektivní hodnoty se vyklubala střední hodnota
Naposledy upravil Wolfik dne út říjen 06 2015, 17:24, celkově upraveno 2 krát.
Pak si to musíš spočítat, jestli strávit desítky hodin laděním softu (vyplatí se pro velký série) nebo koupil speciální IO (pro kusovku). _________________ Pro moje oslovení klidně použijte jméno Zdeněk
Správně navržené zapojení je jako recept na dobré jídlo.
Můžete vynechat půlku ingrediencí, nebo přidat jiné,
ale jste si jistí, že vám to bude chutnat[?]
On ten soft nemusí být nějaká hrůza:
* umocňovat vzorky
* vypočítat střední hodnotu N-vzorek (inspirace)
* vypočítat odmocninu, třeba tabulkou a lineární interpolací
Založen: Jul 21, 2006 Příspěvky: 25741 Bydliště: skoro Brno
Zaslal: čt říjen 01 2015, 20:39 Předmět:
Nedávno jsme tady vedli debatu o memristoru - tohle je podle mě krásnej příklad kontrastu analogová/digitální technika a příklad jeho aplikace, kde by se dal krásně použít. _________________ Pro moje oslovení klidně použijte jméno Zdeněk
Správně navržené zapojení je jako recept na dobré jídlo.
Můžete vynechat půlku ingrediencí, nebo přidat jiné,
ale jste si jistí, že vám to bude chutnat[?]
Založen: Sep 19, 2007 Příspěvky: 3698 Bydliště: Praha
Zaslal: po říjen 05 2015, 16:25 Předmět:
Longin napsal(a):
... že signál může být i stejnosměrný nebo dosahovat maximální hodnoty frekvence - řekněme konkrétně 100kHz...Vzorkuju celou jednu vteřinu, abych pokryl výpočet rms ze signálu o frekvenci 0 až 100kHz, takže pro maximum 100kHz (T=10us) bych měl mít 10 vzorků. Budu mít v každém případě po vteřině vzorkování 1 000 000 vzorků o 16bitech (12 bitů převedu do 16bitové integeru). Když zanedbám nějaké zarovnání v datové paměti, tak zaberu 16 * 1 000 000 = 2 kB paměti.
1) Potřebná paměť by byla 2MB (ne kB), pokud předpokládám, že MCU nestíhá mezi vzorky počítat druhou mocninu a sčítat.
2) Je třeba stanovit dolní frekvenci, něco - 100 kHz ne 0 - 100 kHz. To určí dobu vzorkování. Čistě ss složka na to nemá vliv. Takže doba vzorkování 1s by odpovídala dolní hranici 1, Hz abychom zachytili celou periodu.
3) Teď nevím jak to dokázat, ale intuitivně si myslím, že pokud bychom vzorkovali náhodně, tak můžeme vzorkovat i s nižší frekvencí než je 1 MHz. Statisticky by to mělo dát efektivní hodnotu. Když uděláme 100 tis. vzorků náhodně rozložených v čase 1 s, troufám si říct, že i tu sinusovku na 100 kHz celkem přesně navzorkujeme. Nejde o to zrekonstruovat ze vzorků původní průběh, ale trefit se do co největšího počtu různých fází signálu. Pokud se použije MCU s 32 bitovou floating point ALU, tak by se mělo stihnout za 10 µs udělat druhou mocninu a součet; dokonce možná i bez té ALU.
Založen: Jul 21, 2006 Příspěvky: 25741 Bydliště: skoro Brno
Zaslal: út říjen 06 2015, 14:24 Předmět:
Myslím, že ta Tvoje myšlenka v bodu 3 - t.j. metoda Monte Carlo - ten původní plán úplně pohřbí, to je skoro téma na diplomovou práci... _________________ Pro moje oslovení klidně použijte jméno Zdeněk
Správně navržené zapojení je jako recept na dobré jídlo.
Můžete vynechat půlku ingrediencí, nebo přidat jiné,
ale jste si jistí, že vám to bude chutnat[?]
Problém se týkal univerzálního měřáku pro několik senzorů proudu s hall-effectem (galvanicky oddělené), který měřily stejný zdroj. Šlo ověřování přesnosti při různých teplotách (do 125 °C), čiže tu bylo určité omezení v součástkové základně (průmyslovejch 85°C versus 120°C a trošku výš).
Vedlo to na rozdělení problému, kdy modul se senzorama se bude strkat do teplotní komory a z něho povedou dráty k modulu s mcučkem, který bude na displej zobrazovat měřené hodnoty se senzorů resp. posílat do počítače a další zpracování.
Narážel jsem na senzory, co měli analogový výstup (většinou napětový výstup typicky 0-Vcc senzoru), protože u digitálního výstupu (typicky I2C, SPI, UART) jsou ty senzory většinou jenom pro DC.
V zadání stálo, že budeme měřit efektivní hodnoty. Jak poznamenal ZdenekHQ, jedná se o kusovku pro jednu firmu, takže ideální by bylo použtí rms-to-dc integráčů, protože jsou dělané do 125°C a SW pro mcu by byl čistě o automatizaci a nemusel bych se babrat se zpracováním signálu, integritou signálu a dat mezi drahými převodníky (nároky na rozlišení a teploty) a mcučkem, který není pár cenťáků vedle od výstupu senzoru.
Jenomže před chvílí jsem se dozvěděl, že primární cíl je stejnosměrná oblast a v případě střídavého signálu (ss + st složka) nás zajímá střední hodnota, i když původní rozkaz byla efektivní hodnota . Tedy to, co by naměřil multimetr na stejnosměrným rozsahu. (dělat diplomku pro firmu je občas jako kecat s holkou, co neví, co chce )
Takže původní problém se krapec mění. Teď zkoumám řešení v průměrování vzorků nebo použití integračních převodníků nebo jiný způsob...
Nemůžete odesílat nové téma do tohoto fóra. Nemůžete odpovídat na témata v tomto fóru. Nemůžete upravovat své příspěvky v tomto fóru. Nemůžete mazat své příspěvky v tomto fóru. Nemůžete hlasovat v tomto fóru. Nemůžete připojovat soubory k příspěvkům Můžete stahovat a prohlížet přiložené soubory
Informace na portálu Elektro bastlírny jsou prezentovány za účelem vzdělání čtenářů a rozšíření zájmu o elektroniku. Autoři článků na serveru neberou žádnou zodpovědnost za škody vzniklé těmito zapojeními. Rovněž neberou žádnou odpovědnost za případnou újmu na zdraví vzniklou úrazem elektrickým proudem. Autoři a správci těchto stránek nepřejímají záruku za správnost zveřejněných materiálů. Předkládané informace a zapojení jsou zveřejněny bez ohledu na případné patenty třetích osob. Nároky na odškodnění na základě změn, chyb nebo vynechání jsou zásadně vyloučeny. Všechny registrované nebo jiné obchodní známky zde použité jsou majetkem jejich vlastníků. Uvedením nejsou zpochybněna z toho vyplývající vlastnická práva. Použití konstrukcí v rozporu se zákonem je přísně zakázáno. Vzhledem k tomu, že původ předkládaných materiálů nelze žádným způsobem dohledat, nelze je použít pro komerční účely! Tento nekomerční server nemá z uvedených zapojení či konstrukcí žádný zisk. Nezodpovídáme za pravost předkládaných materiálů třetími osobami a jejich původ. V případě, že zjistíte porušení autorského práva či jiné nesrovnalosti, kontaktujte administrátory na diskuzním fóru EB.