Hangsugárzók valós effektív terhelésének mérése mikrovezérlővel 1.

Ez az a dolog, ami miatt belekezdtem a mikróvezérlőkbe, ez adta a kezdőlökést.

A készülék egy prototípusa működés közben

A probléma alapjait ebben a korábbi cikkemben fejtegetem, és a végén az irodalomjegyzékben meg is osztom azt a BEAG szabadalmat, ami a mérés alapjául szolgál.

Nagyon tömören összefoglalva: A hangfrekvenciás végerősítők kimeneti teljesítményét szinusz jellel mérik, és annak effektív értékén számszerűsítik. Ebből az következik, hogy az erősítő a szinusz jel csúcsaiban ennek kétszeresét adja le, ezt nevezhetjük csúcsteljesítménynek. De nem a legenda szerinti “nagyon rövid időre ennyit ad le” csúcsteljesítmény, ugyanis a szinuszjel relatíve elég sokáig tartózkodik ebben a magasabb teljesítménytartományban. Ez a csúcsérték abból következik, hogy az erősítő feszültségkivezérlése itt éri el a maximumot, nem vezérelhető tovább. Ilyenkor a kimeneti feszültségérték majdnem a DC tápfeszültséggel egyezik, csupán olyan 1-3V-al kisebb attól, ami a kimenőtranzisztorok maradékfeszültsége. További vezérlőjel hatására az erősítő ezt a feszültségértéket tartja tovább, megvágja a jel csúcsait (klippel). (“nagyon rövid időre ennyit ad le” kimenőteljesítmény nem létezik, a vele fémjelzett legalább tízszeresen eltúlzott számérték szintúgy. Ahhoz, hogy a szinusz kétszeresét túllépjük, impedancia ejtés, vagy tápfeszültség emelés kell, és hogy rövid vagy hosszú időre az mindegy) Vegyünk példaként egy 100W szinuszos kimenőteljesítményű végfokot. A fentiek értelmében 200W-ig vezérelhető, de szinusz jel esetén 100W effektív teljesítményt ad le, ami a szinusz jel tulajdonságai miatt van csupán. Ha pl. háromszögjelet adnánk a bemenetre, és maximálisan kivezérelnénk (úgy, hogy a háromszög csúcsait még éppen ne vágja meg) akkor az effektív kimenőteljesítmény 67W lenne. Egyenletes amplitúdó-eloszlású zaj esetén szintén. Természetes eloszlású (haranggörbe) zajnál már csak kb 20W. A fenti különbségek a jel csúcstényezője, vagy akinek így ismerősebb crest-faktor jellemzője miatt vannak. Zene esetén elég változó adatokat kapunk, a régi kutatások szerint 20dB crest-faktorral lehet számolni, ami a 100W-os erősítő kimenetén csupán 2W effektív kimenőteljesítményt jelentene. És az a helyzet, hogy 60-as, 70-es évek zenéivel mérve ez az érték valós! Mai zenék esetén inkább a 10dB az irányadó, ami 20W effektív kimenőteljesítményt jelent. Prózai és egyes komolyzenei műveknél amúgy akár 30-40dB crest-faktor is előfordul, így ott tized wattokat kapunk! Nem akarom itt végigírni az egész elméleti alapozást, hiszen ezt már megtettem egyszer a linkelt cikkemben. Ami még fontos információ, hogy figyelembe kell venni a hangszóró lengőcsévéjének melegedési-visszahűlési tulajdonságait, hiszen elvégre pont ez okozza a problémát, ha a műsorjel olyan*1, hogy túlmelegszik tőle a cséve. És itt viszonylag lomha változásokat kell alapul venni, másodpercekben mérhető hőmérséklet-változások, több 10 másodperces beállási idők az új állandósult hőmérsékletre.

*1 és itt a pont; nem a nagyobb erősítő fogja leégetni a hangsugárzót, hanem a jel, ha a crest-faktora túl alacsony! Ez egy kisebb teljesítményű túlvezérelt, ezért klippelő erősítőnél hamar megvan.

A lényeg tehát, hogy kellene egy olyan mérőeszköz, ami a végfokozat kimenőjelén mér, mutatja a jel csúcsaiban jellemző kimeneti teljesítményszintet (azaz csúcsteljesítményt) és a nagy időállandóval átlagolt, a lengőcséve melegedési-hűlési tulajdonságával konzisztens átlagteljesítményt, mindezt folyamatosan, valós időben. A csúcs mérése azért hasznos, mert ezen látjuk, meddig vezéreltük a végfokot, a hosszú idejű átlag pedig azért, mert azon látjuk, hogy mennyire izzasztja meg a hangszóró lengőcsévéjét az adott műsorjellel/kivezérléssel az erősítőnk. A készülékünk tehát ezen értékeket jelezze ki, opcionálisan figyelmeztesse a kezelőt a túlterhelésre, szintén opcionálisan avatkozzon be, ha a kezelő ezt nem tenné meg (lekapcsolja egy relével a hangsugárzókat, vagy lecsillapítja annak bemenőjelét). A BEAG hangsugárzó-védő áramköre passzív kialakítású, és a hangdobozba került beépítésre. A beavatkozás relével történt: lekapcsolta a hangszórórendszert a végfokozatról és addig nem kapcsolta vissza, amíg a túlterhelés meg nem szűnt, ill egy biztonságos idő el nem telt, hogy a cséve valamelyest vissza tudjon hűlni. A mi esetünkben kissé necces lenne a passzív, vagy pontosabban a végfokozat jeléből táplált működés (bár elvben nem lehetetlen), ezért mindenképpen önálló tápellátású külön dobozolt készülékben gondolkodom, amit célszerűen fel lehet fűzni a végfokozat és a hangsugárzók közé, így mérni is tudja a jelet, és meg is tudja szakítani azt egy relével. Ha azonban a végfok bemenőjelét is átfűzzük rajta, akkor a mérés lehet továbbra is a végfok kimenetén, de a beavatkozás annak bemenőjelében történne, ami “némítás” helyett akár egy kulturált limiter funkcióban is megtestesülhetne. Természetesen külön dobozolás helyett akár a végfokozatba is beépíthető egyfajta integrált védelem részeként.

Analóg megvalósíthatóság

Az analóg megvalósítást, és magát a működést a következő ábrán tanulmányozhatjuk:

Elvi működés

Az ábra szerint a bemenőjelet egy un 4/4-es (mindkét bemenete előjeles 4 negyedsíkos) analóg szorzó mindkét bemenetére juttatjuk, így négyzetre emelő áramkört kapunk. A bemenőjel ebben az esetben előjeles, de a kimenet mindig pozitív értéktartományba esik. A szorzó kimenetén a pillanatnyi teljesítmény jelenik meg, ebből csúcsdetektálással lehetne csúcsértéket előállítani, ami az ábrán nincs feltüntetve. A szorzó kimenetét ezután egy RC aluláteresztő tagra vezetjük, ami egy simított átlagolást végez, lényegében egy adott időállandójú átlagolt effektív jelet állítunk elő. A lengőcséve egy közvetlen hőátadásos rendszert képez, így az egytárolós PT1 jelátviteli rendszer szerint működik, ezért mind a BEAG-féle megoldásban a közvetett fűtésű termisztor, mind pedig az itt az látható RC elsőrendű aluláteresztő szűrő teljesen analóg működésű vele. Az időállandó kb 10-30s közötti, pl. a BEAG által használt és konkrét gyártásba is került védelemben ez 25sec. (Az eredeti kapcsolásban az átlagteljesítmény mérését közvetett fűtésű termisztorral oldották meg, ennek katalógusadata a 25s) Azonban -ahogy ezt a BEAG szabadalomban is említik- fontos követelmény, hogy a mérőkészülék valamivel kisebb időállandóval átlagoljon, mint ahogy a hangszóró lengője melegszik, csakis így képes a túlterhelést előrejelezni, és időben beavatkozni. Azonban a túl rövid időállandó se jó, mert akkor műsorjel lüktetését nem simítja el, ami viszont indokolatlan beavatkozást idézhet elő, ha a jelben jön egy rövid idejű határozottabb taktus. Akkor korrekt a működés, ha a zene egyes részeiben szépen állandósult értékre áll be, és ha a zenében jön egy hangosabb vagy zsúfoltabb (pl. refrén), esetleg ritkítottabb (pl. kiállás) rész, akkor ezt kövesse le a jel, álljon be az új értékére, de az egyes részekben csak egy egész kicsit ingadozzon. Én jelenleg 10s időállandót használok, ami eddig nem tűnik rossz értéknek. Ugyanakkor a változtatható időállandó sem megoldhatatlan, a fenti ábrán pl. az ellenállást potméterrel helyettesítve kényünkre állítgathatjuk. Az analóg megvalósításnak a gyenge pontja, maga az analóg szorzó: Léteznek ugyan erre a feladatra funcionális IC-k, de ezek egyrészt kicsit drágák, másrészt többnyire csak egy dekád amplitúdó-tartományon belül kielégítő a pontosságuk.

Részben digitális megvalósíthatóság

Az analóg szorzó problémájára egy megoldás, ha digitalizáljuk a jelet, digitálisan szorzunk, majd visszakonvertáljuk analóg jellé:

Elvi megvalósítás digitális szorzóval

Ha ezt célszerűen egy mikrovezérlővel oldjuk meg, akkor a fenti ábra szerint az analóg RC tagon átvezetett jelet újra digitalizálunk és szoftveresen alakítjuk ki a funkcionális működést (kijelzés, relé vezérlés stb). Vegyük azonban észre, hogy a lánc egyetlen analóg elemét, az RC szűrőt is megvalósíthatnánk digitális úton!

Teljes digitális megvalósíthatóság

Az analóg RC tag helyett digitális szűrőt alkalmazva a teljes jelátviteli vonal megvalósítható digitálisan, egyetlen mikrovezérlőben szoftveresen. A digitális szűrő tekintetében a FIR típust lényegében kizárhatjuk, a 10s időállandó miatt ennek néhányszorosa kell kernelfüggvénynek, vagyis több 10s. Ilyen hosszú kernelt még tárolni se tudunk, nemhogy számolni vele! IIR szűrő esetén jobbak a kilátások, a fenti szűrő mindössze 2 együtthatóval megvalósítható, de újfent a túl alacsony törésponti frekvencia miatt ezek az együtthatók meglehetősen szélsőséges értéket vesznek fel (pl fs=48kHz és tau=10s esetén a0=0.0000020833312, b1=0.9999979166688) Ilyen (vagy néha még ennél is szélsőségesebb) együtthatókkal nehéz pontosan számolni, nem beszélve arról, hogy az implementációban csakis egészekkel szeretnénk dolgozni, nem akarunk float vagy double lebegőpontos típusokat. Elvben egyszerű (nem átfedős) átlagoló szűrővel is működhetne a mérés, ami azt jelenti, hogy pl. 10s-nyi bemenőjelet összegzünk, majd elosztjuk a minták számával. Ezután kijelzzük, és közben kezdjük begyűjteni a következő 10s mintát. A gond ezzel csak az, hogy 10s késéssel működik: mire kijelezné a műszer, addigra már meg is sült a cséve. Vegyük azonban észre, hogy ezzel az átlagolással egy nagyon korrekt átlagolás-alapú fs lekvantálást csinálunk, a magas (pl 48kHz) audió mintavétet lekvantálhatjuk pl. 10-20Hz-re, amire már könnyű egy sima IIR szűrőt alkalmazni. Ezzel egy kétlépcsős szűrési folyamatot alkalmazunk, ahol az első szűrőfokozat csak átlagolást csinál amivel lekvantálja a magas mintavételi frekvenciát egy kellemesen alacsonyra, majd a második szűrőfokozatra küldi, aminek ez már jól kezelhető jelfolyam kényelmes IIR együtthatókkal és az alacsony mintvétel miatt kapkodnia sem kell a számolgatással:

Teljes digitális megvalósítás kétlépcsős digitális szűréssel

Az ábrán látható mintavételi frekvenciák csak példák, a végleges megoldásban ettől lényegesen eltérők, de magyarázatra tökéletesen megfelel. 100kHz-en mintavételezünk, és ez jut a 1. szűrő bemenetére is. Ebből összegzünk 10000-et, majd a kapott értéket osztjuk 10000-rel, ez lesz a szűrő1 kimenete és egyben a szűrő2 bemenete. Itt 10Hz mintavételi frekveciát kapunk, vagyis másodpercenként csak 10-szer kell az IIR szűrőnek számolnia, így sebességprobléma nem lehet vele, ill a szűrőegyütthatók is kicsit kellemesebb értéket vesznek fel. (a fenti példa szerint a0=0,0099501662508, b1=0.9900498337492 lenne) Ezek az értékek -mint mondtam- még formálódnak, függnek a mikrovezérlőbe integrált ADC periféria képességeitől, az elvárt pontosságtól (ADC mintavételi bitmélység, kvantálási pontosság),  attól, hogy fixen beégetett paraméterek szerint működik majd a rendszer, vagy valamilyen szinten állíthatóak lesznek bizonyos paraméterek (pl. az átlagolás időállandója), hogy hány csatornán mérünk stb. Sajnos a mikrovezérlő saját ADC-je esetén ez utóbbi nem lehet kérdés, csakis egy audiósáv mérése lehetséges, de külső ADC alkalmazása esetén jobbak a lehetőségek, úgy akár a 4 sáv mérése is megvalósítható egyetlen ATmega-val, de az se mondható rossz megoldásnak, ha több mikrovezérlő dolgozik párhuzamosan, mindegyik csak egy-egy sávot mér, de az eredmény egy LCD kijelzőn jelenik meg.

Innen folytatjuk a második részben…