Deftige meetopstelling voor luisprekerparameters

... is weten!

Moderator: Beheerdersteam

Gebruikersavatar
Pjotr
Berichten: 36743
Lid geworden op: do 26 aug 2004, 18:34
Locatie: bollenstreek

Re: Deftige meetopstelling voor luisprekerparameters

Bericht door Pjotr »

'Tis wat je er mee wilt. 3-assige grafiekjes zijn leuk voor een globale trend maar verder niet makkelijk numeriek af te lezen. Aan een waaier van 2-D grafiekjes heb je dan meer
Gebruikersavatar
OWC
Ook commercieel actief
Berichten: 3854
Lid geworden op: wo 02 mei 2018, 14:53
Locatie: West Friesland
Contacteer:

Re: Deftige meetopstelling voor luisprekerparameters

Bericht door OWC »

Ronkel schreef: di 19 nov 2024, 15:12
OWC schreef: di 12 nov 2024, 22:28
Je kunt dit doen in een grafiek met 3-assen, als een soort waterval grafiek.

Ben ook ergens een paper tegengekomen die dit doet.
Dat maakt het alleen wel weer lastig om dit dan OOK weer te plotten als functie van maximale uitwijking.
En als we toch bezig zijn, moet je de temperatuur ook meenemen.
De stijfheid verandert namelijk ook iets vs temperatuur (zeker bij kleine speaker aka mini drivers)
In plaats van dit alles helemaal te plotten in meer-assige grafieken zou je de data misschien ook kunnen omzetten in een metric die frequentieafhankelijkheid en één die temperatuurafhankelijkheid weergeeft.
Uber alles omvattende metrics zijn altijd een beetje lastig, omdat je context verliest en je ergens wegingen moet gaan toepassen.

Om maar direct een voorbeeld te geven, Klippel zelf geeft de excursion aan bij 82% BL en 75% Cms.
Het is echter wel zo dat een goede BL een stuk belangrijker is dan stijfheid, ook volgens Klippel.

Dus zonder context zou iemand al snel kunnen concluderen dat bijvoorbeeld twee speakers gelijk presteren omdat ze dezelfde "limiet" zouden hebben.
De een bij 82% BL de ander bij 75% Cms.
Die conclusie is echter niet juist, al helemaal bij een mid-woofer die laag en midden moet weergeven.

Met temperatuur wordt dit ook lastig.
Je wilt namelijk niet alleen weten hoeveel bepaalde parameters veranderen, maar ook hoe snel.
In een ideale wereld zou je natuurlijk willen dat alles mooi netjes blijft.
In de praktijk hebben we die luxe echter niet doordat we het moeten doen met wat er verkrijgbaar is, of omdat we gewoon tegen de wetten van behoud van ellende aanlopen.

Een goed voorbeeld van behoud van ellende is trouwens de stijfheid.
Deze stijfheid zorgt er namelijk ook voor bij vooral overhung systemen, de VC niet keihard tegen pool klapt.
Dus op een gegeven moment is de waarde en het gedrag van de spider een constraint.
Tenzij je dan weer voor een andere motor en speaker frame gaat, om vervolgens het hele riedeltje opnieuw te gaan doen.

Oplossingen zoals Kartesian doet, werken ook.
De vraag is alleen dan weer hoeveel dat klankmatig oplevert tov de kosten.
Plus je raakt in een kip-ei discussie over wat minder erg is; eerst weinig vervorming en plotseling heel veel, of gelijkmatig meer vervorming?
In een gebied waar het menselijk gehoor toch al niet heel gevoelig is.

Anyway, ik dwaal een beetje af, maar het is vooral bedoelt om aan te geven dat het niet makkelijk is om bepaalde metrics te creëren die meerdere variabelen samenvatten.

Dat gezegd hebbende, vind ik wel dat de presentatie van Klippel zelf alles behalve ideaal is.
Juist omdat de relatieve veranderingen belangrijker zijn dan de absolute.
Gebruikersavatar
Inventor
Berichten: 75
Lid geworden op: do 30 nov 2023, 19:54
Locatie: Delft

Re: Deftige meetopstelling voor luisprekerparameters

Bericht door Inventor »

Hahaha, jij bent wel heel schitterend aan 't hobbyen, Jurgen! Dit is nog eens hoog niveau thuisknutselwerk.
Super gave meetopstelling; tof dat je zo enthousiast je (duidelijk beschreven) natuurkundige/werktuigbouwkundige modelleringen deelt. =D>
En die bonnetjes-printer is een kers op de taart! :lol:

Hier geniet ik van.
Pieter
Gebruikersavatar
timpert
Berichten: 2438
Lid geworden op: ma 08 jun 2015, 15:09
Locatie: 026

Re: Deftige meetopstelling voor luisprekerparameters

Bericht door timpert »

De laatste maanden was de klad er een beetje in gekomen, maar de vele positieve reacties op de demo van gisteren stimuleren enorm om weer verder te gaan. Op de agenda staan nu:
  1. Allereerst natuurlijk het verder verbeteren van de huidige set niet-lineaire metingen, want het gaat nog niet meteen goed bij elke willekeurige driver die ik er in stop
  2. Daarna overgaan op de "full dynamic" methode, warabij je de driver niet uitstuurt met een tweetoons signaal zoals ik nu doe, maar met een representatief muzieksignaal en daaruit proberen het gedrag in kaart te brengen
  3. Passieve membranen karakteriseren.
Voor dat laatste had @Henkjan een uitstekend setje spullen in de stoel gelegd, bestaande uit twee stuks Tang Band W5-2053 woofertjes en twee bijpassende passieve membranen. Die heb ik van 'm overgenomen.
PXL_20250209_111952576[2].jpg
Uiteraard heb ik meteen even de T&S parameters bepaald, en gelukkig heb ik het bonnetje bewaard :-)

De door mij gemeten parameters leken in eerste instantie nogal af te wijken van de op de TB website gegeven parameters:
Screenshot 2025-02-09 124508.png
Screenshot 2025-02-09 124508.png (10.08 KiB) 820 keer bekeken
Onder "TB nieuw" staat de info uit de huidige datasheet. Het verschil in Mms en BL valt meteen op. Ik kwam op internet (bij Parts Express) ook nog een datasheet tegen die andere waarden vermeldt, die staan in "TB oud". Dat komt al een stuk dichter bij wat ik meet, en gezien de drivers hagelnieuw zijn, zal Cms nog wel wat toenemen. Maar toch zit er iets niet goed: als ik op basis van de nieuwe datasheet de resonantiefrequentie bereken uit de opgegeven waarden voor Cms en Mms, dan kom ik uit op 38,7 Hz en niet op 35 Hz. Als ik datzelfde doe met de oude datasheet, dan kom ik uit op 36,2 Hz.

Dus dit onderstreept alweer waarom je moet meten wat je hebt en niet klakkeloos de datasheet aannemen, want het lijkt erop dat TB de (gepubliceerde) getallen van de driver stilletjes heeft veranderd. Met de beperkte set metingen die ik heb gedaan is dat nu de tweede keer dat ik zoiets tegenkom. Ook is er een onverklaarde discrepantie (met name in de nieuwe data) tussen Fs, Cms en Mms.
Gebruikersavatar
satefan
Berichten: 4124
Lid geworden op: za 30 jan 2010, 20:11
Locatie: Lelystad

Re: Deftige meetopstelling voor luisprekerparameters

Bericht door satefan »

Wat een geweldig project! Wat ik erg kon waarderen was de opening in de ochtend waarbij je zeer duidelijk uitlegde hoe een driver nu eigenlijk werkt (Voor sommigen gesneden koek, maar om het zo helder gepresenteerd te krijgen.), en wat je doelstellingen zijn met het project.

Zou je een pdf van de slides hier kunnen delen? Ik zou het graag nog een keer nalezen.

Mocht je ooit de moed verzamelen om de setup weer mee te nemen dan zou ik wel graag eens de Purifi drivers willen meten op deze manier.

Groet!

Satefan
Gebruikersavatar
Henkjan
Beheerder / Site Admin
Berichten: 33820
Lid geworden op: do 01 jan 1970, 1:00
Locatie: Berkel en Rodenrijs
Contacteer:

Re: Deftige meetopstelling voor luisprekerparameters

Bericht door Henkjan »

ik had dat setje al een tijdje liggen, dus niet gek dat het beter overeen komt met de oude set.
Gebruikersavatar
timpert
Berichten: 2438
Lid geworden op: ma 08 jun 2015, 15:09
Locatie: 026

Re: Deftige meetopstelling voor luisprekerparameters

Bericht door timpert »

En dan is nog steeds de vraag of het product is veranderd, of alleen de datasheet. De getallen in de sheet kloppen niet helemaal met elkaar, en dat is erger in de nieuwe sheet dan in de oude.
Gebruikersavatar
timpert
Berichten: 2438
Lid geworden op: ma 08 jun 2015, 15:09
Locatie: 026

Re: Deftige meetopstelling voor luisprekerparameters

Bericht door timpert »

satefan schreef: zo 09 feb 2025, 13:00
Purifi
Stiekem hoopte ik gisteren op een loslopend exemplaar te stuiten, maar uiteindelijk kwam ik ook zonder extra driver om te testen al tijd tekort om ook rustig langs alle andere creaties te gaan. Maar het staat zeker op mijn wensenlijst om een Purifi te testen. Eerst moet daarvoor de opstelling nog wat beter werken.

Ik kan de presentatie als pdf delen, alleen staat die lokaal op de meet PC, en die zit nog ik de kist. Als ik 'm er weer uit heb plop ik 'm hier neer.
Gebruikersavatar
satefan
Berichten: 4124
Lid geworden op: za 30 jan 2010, 20:11
Locatie: Lelystad

Re: Deftige meetopstelling voor luisprekerparameters

Bericht door satefan »

Ik stel graag een van de Purifi drivers ter beschikking! Er lopen er hier nog een paar in het wild rond :-)
Gebruikersavatar
timpert
Berichten: 2438
Lid geworden op: ma 08 jun 2015, 15:09
Locatie: 026

Re: Deftige meetopstelling voor luisprekerparameters

Bericht door timpert »

Het zou erg leuk zijn om tzt zo'n driver te testen. Zal niet op heel korte termijn gebeuren want ik moet eerst een paar andere klussen klaren voordat ik de opstelling weer uit de kratten kan halen. Maar ik stuur uiteraard een update als de boel weer werkt.
gans
Berichten: 9
Lid geworden op: zo 28 dec 2008, 15:26

Re: Deftige meetopstelling voor luisprekerparameters

Bericht door gans »

Sorry, Timpert, for posting here, but I think the Dayton solution fits the title well.
The solution isn't identical to Klippel's, but it's also interesting. To my surprise, it's even patented.

Here are the links to the DAYTON DATS LA
https://www.daytonaudio.com/product/209 ... r-analyzer
https://www.daytonaudio.com/images/reso ... 272301.pdf

Regards
Heinrich
Gebruikersavatar
markbakk
Berichten: 5698
Lid geworden op: wo 15 sep 2010, 21:27
Locatie: Arnhem

Re: Deftige meetopstelling voor luisprekerparameters

Bericht door markbakk »

Well, I don’t see no laser interferometry in the Dayton solution for starters… nope, Jurgen is on another league here!
JanRSmit
Berichten: 220
Lid geworden op: za 16 mar 2019, 7:49

Re: Deftige meetopstelling voor luisprekerparameters

Bericht door JanRSmit »

satefan schreef: zo 09 feb 2025, 20:00
Ik stel graag een van de Purifi drivers ter beschikking! Er lopen er hier nog een paar in het wild rond :-)
Zekers te weten 8)
gans
Berichten: 9
Lid geworden op: zo 28 dec 2008, 15:26

Re: Deftige meetopstelling voor luisprekerparameters

Bericht door gans »

I don't want to and can't deny that to a former colleague. I have to take my hat off to the solution he presents here.
Nevertheless, the Dayton LA solution— or the solutions mentioned by Dayton in their patent— is probably more suitable for replication by the average DIYer.

Regards
Heinrich
Gebruikersavatar
timpert
Berichten: 2438
Lid geworden op: ma 08 jun 2015, 15:09
Locatie: 026

Re: Deftige meetopstelling voor luisprekerparameters

Bericht door timpert »

Ik heb door drukte (combinatie van een flinke cursus en veel werk) een hele tijd niets met de opstelling kunnen doen, na Enschede heeft de opstelling al die tijd in kratten gezeten. Maar binnenkort ga ik weer verder met iets verbeterde hardware en een andere software aanpak. Vanwege de zeer diverse afkomst van de meethardware moest ik door aardig wat hoepels springen om de boel werkend te krijgen (en te houden), en dat werkte al die tijd niet lekker samen met iPython zoals die in de Spyder omgeving wordt gebruikt. Ik heb de lab-PC een flinke upgrade gegeven (meer geheugen, snellere CPU, grotere SSD), en ik ben van ontwikkelomgeving veranderd van Spyder naar Pycharm. Die laatste draait de programma's in een "normale" Python interpreter. Dat levert snelheid en stabiliteit op, maar het kost wat gebruiksgemak. En uiteraard is het overhevelen geen gevalletje copy-paste, maar de belangrijkste componenten werken weer.

De Dayton aanpak is zeker interessant, het is in feite een niet-lineaire uitbreiding op de added mass methode. Die heeft uiteraard dezelfde problemen als de "klassieke" added mass methode, maar werkt met veel eenvoudigere hardware. Het is zeker de moeite waard om te kijken wat er in die richting te doen is. Vooral de test voor defecten "rub and buzz" is heel nuttig, en dat heb ik er nog niet in zitten.
Gebruikersavatar
timpert
Berichten: 2438
Lid geworden op: ma 08 jun 2015, 15:09
Locatie: 026

Re: Deftige meetopstelling voor luisprekerparameters

Bericht door timpert »

De boel heeft even achter de rododendrons gelegen, deels vanwege drukte en deels omdat mijn stroomshunt wat kuren had. Het bleek dat ik per ongeluk de + en - van de versterkeruitgang had omgewisseld, waardoor de shunt in plaats van aan de "koude" kant aan de "warme" kant zat en zo'n grote common mode spanning vond de instrumentatieversterker niet leuk. Maar met de nieuwe stroomsensor is dat probleem helemaal de wereld uit, en de shunt doet het inmiddels ook weer.

Een verder probleem bleef toch de dataverwerking: met een "sparse multitone" signaal kon ik heel aardig de lineaire T&S parameters bepalen (zie hier en met een tweetoons signaal lukte het zowaar om een beeld te krijgen van de niet-lineaire eigenschappen van de driver (zie hier).

Beide methoden leunen zwaar op de mogelijkheid om exacte frequenties uit de gemeten signalen te "vissen", maar voor het meten van parameters aan de hand van een arbitrair signaal met heel veel frequentiecomponenten is dat niet meer te doen. Ik heb dus gespeeld met de mogelijkheid om aan de hand van gemeten signalen de coëfficiënten van de in deze post gegeven differentiaalvergelijkingen direct te fitten. Met SciPy gaat dat niet meer, de boel loopt volledig vast. Maar PyTorch (dat vanaf de grond is opgebouwd voor AI, dus modellen met heel veel parameters en heel veel trainingsdata) kan dat klusje prima aan, en zeker nu ik een bescheiden GPU in mijn lab PC heb (een RTX A1000). De klus is nu het minimaliseren van de vergelijkingen:

[LaTeX]\begin{cases}

BL(x)\cdot i(t)+\frac{1}{2}\frac{dL_e(x)}{dx}\cdot i(t)^2 - K_m(x) x-R_m\frac{dx}{dt}-M_m\frac{d^2 x}{dt^2} = 0 \\

u(t) - R_e\cdot i(t) - L_e(x)\cdot\frac{di(t)}{dt} - i(t)\cdot\frac{dL_e(x)}{dx}\cdot\frac{dx}{dt} - BL(x)\cdot \frac{dx}{dt} = 0

\end{cases}[/LaTeX]

waarbij je "gewoon" de gemeten signalen en hun afgeleiden invult en vervolgens de modelparameters tweakt zodat de daadwerkelijke uitkomst (het residu) zo dicht mogelijk bij nul komt. Dat lukt natuurlijk nooit helemaal, vanwege de onvermijdelijke meetfouten, ruis en onvolkomenheid van het model. Maar het voordeel van deze aanpak is: als je het signaal klein houdt en BL, Kms en Le constant houdt, is het model vanzelf een lineair model, maar als je ze x-afhankelijkheid geeft in de vorm van een polynoom gaat het boeltje automagisch over in een niet-lineair model, zonder daarbij de werkwijze te hoeven veranderen. Het nadeel is dat het een flinke rekenklus is. Elke iteratie (epoch) worden de parameters een heel klein beetje aangepast in de richting van dalende residu. Mijn model stabiliseert pas na 40000 epochs, waarbij 1 epoch zo'n 100 miljoen (!) floating point berekeningen bevat, in totaal fiets je dus even 4 biljoen (!) FP64 berekeningen door om tot resultaat te komen. En toch lukt het om dat op de GPU te doen in minder tijd dan het me kost om een espresso te maken. Natuurlijk is er nog veel te optimaliseren, maar het eerste resultaat is binnen.

En inderdaad, als ik bij lage amplitude meet krijg ik vrij aardig de al eerder gemeten kleinsignaal parameters, maar bij groot signaal verandert de situatie. Allereerst de genormaliseerde resultaten voor BL(x), Rms (x), Le(x) en Kms(x):
Figure_1.png
Verder zie ik een flinke reductie van de stijfheid van de ophanging bij groot signaal, ook in de rustpositie. Een fenomeen dat ik hier ook al had vastgesteld, en wat zich bij mijn Kartesian woofertje manifesteert als een reductie van de effectieve Kms met 25 %. Dat betekent inderdaad dat effectief gezien de ophanging zo'n 25% slapper wordt wanneer de uitslag groot wordt. De gemeten Vas neemt toe van 4,35 liter naar 5,8 liter.

Resumerend: aan de hand van een bescheiden signaalamplitude kan ik de lineaire parameters van het model bepalen, maar met precies dezelfde aanpak kan ik bij grotere amplitude de niet-lineaire parameters bepalen. Daarbij kan het signaal van alles zijn, ik gebruik nu een sparse multitone signaal maar dat kan evengoed een muziekfragment zijn. Dit is een belangrijke stap naar de "full dynamic" methode, en geeft weer moed!

Ook ben ik bezig de gebruikersinterface grafisch te maken zodat de boel flexibeler en gebruikersvriendelijker wordt. Ik heb dus weer genoeg om handen om uit de criminaliteit te blijven...
Gebruikersavatar
Shadow
Berichten: 20398
Lid geworden op: vr 28 jan 2011, 20:56
Locatie: Vlissingen

Re: Deftige meetopstelling voor luisprekerparameters

Bericht door Shadow »

Dat kun je stellen! Respect hoor
Gebruikersavatar
timpert
Berichten: 2438
Lid geworden op: ma 08 jun 2015, 15:09
Locatie: 026

Re: Deftige meetopstelling voor luisprekerparameters

Bericht door timpert »

Ik moet even een oepsje delen. Het meten begint altijd met het instellen van de versterking, zodanig dat de maximale amplitude van de functiegenerator (20 V P-P) de versterker net niet overstuurt. Daarvoor moet de versterking tussen 5x en 5,5 x worden ingesteld, en vervolgens gaat dit stukje code ervoor zorgen dat er ook daadwerkelijk geen oversturing plaatsvindt:

CODE: Selecteer alles

pp_amplitude = min(20, 2*sig_crest*vrms/gain)
Dit zorgt ervoor dat de pp amplitude die de functiegenerator produceert resulteert in de gewenste RMS spanning aan de luidsprekerklemmen, maar nooit hoger dan de grens van de generator kan worden ingesteld. Bovenstaande code is juist. Echter, ik had in eerste instantie dit ingetikt:

CODE: Selecteer alles

pp_amplitude = max(20, 2*sig_crest*vrms/gain)
en dat stelt altijd minimaal de hoogste amplitude in die de opstelling kan produceren, oftewel iets meer dan 100 V piek-piek. Thermisch kan het Kartesian woofertje dat nog wel aan (de crestfactor van het signaal is ongeveer vier, dus het gemiddelde vermogen is minder dan 20 Watt), maar mechanisch werd het arme ding aardig op de proef gesteld. Ik heb het signaal opgeslagen zodat ik het later nog zou kunnen analyseren, en uit mijn Pytorch "brute force" fit kwam het volgende plaatje:
Figure_1.png
Dit, dames en heren, is hoe een bijna-dood-ervaring van een miniwoofer eruit ziet. Het ding leeft nog, maar zoiets moet ik niet te vaak doen.

Mijn eerste gedachte bij de opzwieper links van Km en Rm, en de toch wat opmerkelijke vorm van Rm was dat het een gevalletje overfitten was, dus dat je te veel parameters aan de data aan het fitten bent waardoor ze niet meer strak bepaald zijn. Maar toch, we kijken naar een model met circa 50 parameters en 500.000 datapunten voor spanning, stroom en uitwijking, dus overfitten lijkt me onwaarschijnlijk. Wat zie ik dan dan wel?

Negatieve x is wanneer de spreekspoel de magneet in getrokken wordt. De magneet is niet geventileerd, dus de spoel ondervindt aardig wat luchtwrijving. Vandaar ook de vrij lage Qms. Op een gegeven moment komt de hele spreekspoel echter van achteren voorbij de poolplaat, waardoor lucht ineens wat makkelijker erlangs stroomt: omdat er geen spoel meer in de luchtspleet zit wordt het kanaal waardoor de lucht stroomt breder. Dat verklaart de verlaagde Rm tussen x = -5 mm en x = -10 mm. Maar dan loopt de spoel plots tegen de mechanische limiet aan, bij deze speaker is het niet de spoel die tegen de achterste poolplaat aan knalt, maar de lijmrand van de spider die de luchtspleet raakt.

De hierna volgende beelden kunnen als schokkend worden ervaren.

In rust zien spider en spoel er zo uit:
spider_rust.jpg
Niks geks, een vrij normale overhung situatie, waarbij de drager van de spoel lang genoeg is om de spreekspoel een eind voorbij xmax naar achteren te laten bewegen, dus als de speaker aan z'n mechanische limiet komt is de spreekspoel helemaal uit de luchtspleet. De lijmrand waarmee de spider aan de drager/conus zit is ook goed te zien. Als ik de conus nu naar binnen druk, dan is te zien dat de spider de korf raakt en tegelijkertijd de lijmrand tegen de rand van de luchtspleet aankomt. Omdat de lijmrand enigszins schuimt vindt er wat demping plaats, en is het te verwachten dat Km en Rm daar omhoog schieten, en dat BL sterk is afgenomen. Dat is ook precies wat we in de meting zien.
spider_achter.jpg
De andere kant op heeft de ophanging alle ruimte, en kan de spreekspoel royaal uit de luchtspleet komen. Km varieert niet zo veel, maar Rm zakt flink in: de luchtweerstand langs de spreekspoel is grotendeels weggevallen. In onderstaande plaatje is de glimmende poolkern dan ook goed zichtbaar, ook goed te zien is hoe die voorbij de voorste poolplaat steekt.
spider_voor.jpg
Omdat alle bewegende delen nu uit de luchtspleet zijn verwijderd ondervinden ze een stuk minder luchtweerstand: Rm is wederom flink gezakt, maar in tegenstelling tot eerst komt die niet meer terug omdat de spreekspoel nergens tegenaan komt. Km blijft ook laag, dus die kant op heeft de ophanging nog steeds ruimte wanneer de spreekspoel zo'n 13 mm(!) naar voren is gekomen.

De opgegeven absoluut maximale uitslag is +/- 11,5 mm. Deze meting ging daar overheen, en geeft daarmee aan dat een (potentieel destructief) foutje snel gemaakt is. Gelukkig leeft het woofertje nog, maar als ik mijn referentiedriver heel wil houden moet ik dit niet nog een keer doen. Wel is het leerzaam om te zien hoe de driver zich gedraagt bij extreme uitslag, en wellicht dat dit soort data ook kan helpen bij het opsporen van mechanische overbelasting van de driver in DSP gestuurde actieve speakers.

Ik ga de komende tijd eens onderzoeken hoe ik tijdens de meting limieten kan bewaken voor de uitslag en de temperatuur van de spreekspoel. Het hele doel van deze opstelling is niet-destructief meten...
Gebruikersavatar
Pjotr
Berichten: 36743
Lid geworden op: do 26 aug 2004, 18:34
Locatie: bollenstreek

Re: Deftige meetopstelling voor luisprekerparameters

Bericht door Pjotr »

timpert schreef: vr 29 aug 2025, 15:12
Ik ga de komende tijd eens onderzoeken hoe ik tijdens de meting limieten kan bewaken voor de uitslag en de temperatuur van de spreekspoel. Het hele doel van deze opstelling is niet-destructief meten...
Auw... Dat lijkt mij niet onverstandig want de top speakers zijn hier maximaal gevoelig voor en bezitten zelf nauwelijks een rem/beveiliging tegen tegen dit soort mishandeling. Maar die zitten wel in de categorie "boven in de boom" qua kostprijs!
Gebruikersavatar
markbakk
Berichten: 5698
Lid geworden op: wo 15 sep 2010, 21:27
Locatie: Arnhem

Re: Deftige meetopstelling voor luisprekerparameters

Bericht door markbakk »

Ik vind dit echt prachtig. Respect! En ook de analyse van de oeps. Klippel mag wel uitkijken.
hidjedewitje
Berichten: 15
Lid geworden op: ma 05 mei 2025, 13:44

Re: Deftige meetopstelling voor luisprekerparameters

Bericht door hidjedewitje »

Heel gaaf project! Ik ben zelf ook van plan om min of meer deze richting op te gaan (nonlineaire systeem identificatie op basis van voltage,current,displacement en temperatuur).
Ik ben al best wel een tijdje bezig met het modeleer gedeelte bezig, maar het is toch ook wel leuk om zelf die parameters te kunnen schatten en te kijken of alles nu wel echt klopt ;)

Ik had zelf nog wat opmerkingen en vraagjes
Een verder probleem bleef toch de dataverwerking: met een "sparse multitone" signaal kon ik heel aardig de lineaire T&S parameters bepalen (zie hier en met een tweetoons signaal lukte het zowaar om een beeld te krijgen van de niet-lineaire eigenschappen van de driver (zie hier).
Met systeem identificatie krijg je eigenlijk een optimalizatie probleem. Uit die algoritmes krijg je vaak wel een antwoord maar dat is helaas niet altijd het antwoord waar je naar opzoek bent (ondanks dat de input-output mapping wel zou kunnen kloppen).

Er zijn wel criteria om te checken of je parameter schatting consistent is (dat wil zeggen, als je meer data er naar toe gooit, dan convergeren de geschatte parameters naar de ECHTE parameters) voor lineaire systemen. Een van die criteria is "persistency of excitation" wat aangeeft of je signaal rijk genoeg is aan veranderingen om alle parameters te schatten. Als je white-noise, PRBS gebruikt zit je eigenlijk altijd wel goed. Als je een multisine wilt gebruiken zou ik minimaal evenveel sines als het aantal parameters dat je wilt schatten gebruiken. Om dan twee tonen te pakken vind ik wat ambitieus, maar wel gaaf dat de ADAM optimizer alsnog een aardige oplossing vind!

Voor non-lineaire systeem identificatie is het wat lastiger want daar bestaat die criteria niet. Toch wil je zo veel mogelijk van de state-space "bewandelen". Anders worden de parameters die niet bereikt worden in de data niet zo goed geschat en kan je er ook weer echt onzin uit krijgen. De persistency of excitation aanname is ook eentje die Klippel eigenlijk altijd maakt, maar nooit verifieerd.
Ik ga de komende tijd eens onderzoeken hoe ik tijdens de meting limieten kan bewaken voor de uitslag en de temperatuur van de spreekspoel. Het hele doel van deze opstelling is niet-destructief meten...
Wat je kan doen je signaal zo kiezen dat je net onder Fs begint en stopt onder de cone break up frequentie en dan lin of log spaced sines kiezen en allemaal even hard. Met dit signaal kan je simuleren op het lineaire model en dan de maximale displacement er uit trekken (en eventueel temperature als je dat in je model hebt gestopt). Als temperatuur het probleem is kan je alles attenuaten, als displacement het probleem is can je een HPF toevoegen en de kantel frequentie omhoogschroeven (displacement gaat namelijk redelijk hard als je richting <Fs gaat).

Als je dan maximaal exciteerd krijg je de hoogste SNR en wat ik verwacht de beste schatting.


Verder ben ik erg beniewd over een aantal dingen:
1. Je model parametrizatie
2. Afschatting van de initial condition
3. Je validatie van je model

1. Je model parametrizatie
Hoe parametrizeer je de gedistribueerde parameters (zoals eddy-current losses, creep, enclosure stiffness, en air load)? Meestal wordt hier een lumped schatting van gemaakt, zoals LR_i model, maar dan krijg je identificatie problemen omdat de waarden van LR2 en LR3 verwisselbaar zijn. Je zal hier dus niet een uniek optimum in kunnen vinden (wellicht wel met constraint optimization, maar ik weet niet precies hoe dat werkt in pytorch).

Tevens parametrizeer je nu Rms(x) als functie van displacement. De verliezen die in Rms zitten zijn de akoestische verliezen door turbulente flow en mechanische verliezen in de suspension. Die akoestische verliezen zijn proportioneel aan de volume-velocity --> piston velocity (en dus niet alleen displacement)! Wellicht dat displacement ook een rol speelt als je VOLLEDIG uit de airgap gaat, maar ik ga er eigenlijk altijd vanuit dat het vollume van de VC en VC-former redelijk constant is over displacement. Ik vroeg me af of je hier rekening mee gehouden had.

Wat voor vorm geef je nu alle functies trouwens? Polynomen? Rms kan je daarmee bijvoorbeeld niet goed afschatten omdat die meestal een soort absolute waarde vorm heeft.

2. Afschatting van de initial condition

Hoe pak je dit aan? Ik kan me voorstellen dat je dit op 0 zet, maar niet alle optimizers gaan hier evengoed me om.
Als je SGD pakt, en dus batching gebruikt, dan knipt je je dataset in stukjes en klopt de IC dus niet meer.

3. Je validatie van je model
Je hebt nu heel erg mooi de large signal parameters afgeschat, maar kloppen ze ook?
Je kan nu redelijk eenvoudig kijken of ze ook kloppen door een nieuwe meting te doen en hetzelfde signaal in je model te stoppen en kijken wat het verschil is!

Klippel geeft in hun FLSI documentatie een aantal criteria hoe je je model fit kan kwantificeren: https://klippel.de/manuals/docs/transdu ... ml#results

Ik ben erg benieuwd naar je absolute error, NRMSE, en je best-fit rate.
Gebruikersavatar
Shadow
Berichten: 20398
Lid geworden op: vr 28 jan 2011, 20:56
Locatie: Vlissingen

Re: Deftige meetopstelling voor luisprekerparameters

Bericht door Shadow »

Welkom, lekker binnenkomen zo :shock:
Gebruikersavatar
timpert
Berichten: 2438
Lid geworden op: ma 08 jun 2015, 15:09
Locatie: 026

Re: Deftige meetopstelling voor luisprekerparameters

Bericht door timpert »

Zo, je eerste bericht op het forum & je gaat helemaal los meteen! Leuk! Ik ga er even een paar punten uit liften, de rest moet even wachten.
Als je een multisine wilt gebruiken zou ik minimaal evenveel sines als het aantal parameters dat je wilt schatten gebruiken.
Hoe het sparse multitone signaal wordt bepaald kan je hier lezen, aan de eis van minimaal 1 frequentie per parameter is ruimschoots voldaan. Het lineaire model bestaat uit slechts 7 parameters, waarvan je er 6 bepaalt uit de modelfit (Mms, Cms, Rms, BL, Re en Le) en de zevende hanteer je de liniaal voor (Sd). Als je de niet-lineariteit van bijvoorbeeld Bl, Le, Cms en Rms wil doen komt daar per parameter nog de orde van het polynoom bij. Voor een 6e orde polynoom en 4 niet-lineaire grootheden zit het totaal aantal parameters dus op de 30. Nog steeds geen probleem dus bij een sparse multitone conform IEC 60268-22. Zeker omdat de individuele frequenties logaritmisch zijn verdeeld, krijg je een aardige dekking van de state space.

Bij het tweetoons experiment heb ik geen numerieke fit gebruikt, daar bepaalde ik het niet lineaire gedrag aan de hand van de intermodulatieproducten. Hoe dat werkt zie je hier en hier. Een verdere verfijning vind je hier.

De ontwikkeling van deze opstelling is een wisselwerking van tijd maken, hardware programmeren en zorgen dat het een en ander fysisch een beetje aardig in elkaar steekt. Dit zijn mijn eerste stappen met Pytorch, dus de metrics waar jij naar informeert heb ik nog niet. Ik ben allang blij dat ik de signalen zodanig kan preconditioneren dat de boel een beetje aardig convergeert naar geloofwaardige waarden. Met name het x-signaal heeft wat ruis, en die wordt problematisch bij differentiëren omdat de afgeleiden opblazen. Goed filteren zonder "echte" info uit het signaal te gooien is dus essentieel, ik gebruik nu Gaussische filtering maar ik heb nog wat moeite om te bepalen of ik niet te sterk filter en zo wezenlijke info weggooi.

Wordt dus vervolgd. Maar het project is qua code inmiddels zo'n soepzooi geworden dat ik vooral hard moet nadenken over hoe een goede splitsing te maken tussen het acquisitiedeel (dus het werken met de opstelling, het opnemen van signalen en de real-time beveiliging) en de postprocessing. Ik denk dat ik er twee verschillende programma's van maak: eentje om de meting te besturen (voorzien van een grafische interface), en een paar losse programma's voor postprocessing die ik dan eventueel bij goed resultaat kan combineren.
hidjedewitje
Berichten: 15
Lid geworden op: ma 05 mei 2025, 13:44

Re: Deftige meetopstelling voor luisprekerparameters

Bericht door hidjedewitje »

Welkom, lekker binnenkomen zo :shock:
Jij ook goede avond haha ;)
Hoe het sparse multitone signaal wordt bepaald kan je hier lezen, aan de eis van minimaal 1 frequentie per parameter is ruimschoots voldaan. Het lineaire model bestaat uit slechts 7 parameters, waarvan je er 6 bepaalt uit de modelfit (Mms, Cms, Rms, BL, Re en Le) en de zevende hanteer je de liniaal voor (Sd).
Top! Dan heb ik niks gezegd.
Tevens is de Sd niet zo eenvoudig af te schatten uit data omdat je hier dus zo'n identificeerbaarheids probleem krijgt (kastje gedraagt zich als een veer, air load als een massa die zijn niet af te scheiden van de suspension stijfheid). Al is dat dus wel een beetje afhankelijk hoe je dat parametriseerd.
Voor een 6e orde polynoom en 4 niet-lineaire grootheden zit het totaal aantal parameters dus op de 30.
Eens, als je meerdere nonlineariteiten wilt schatten dan explodeert het wel snel met polynomen. Bijvoorbeeld BL(x,i,T) en niet alleen BL(x).

De ontwikkeling van deze opstelling is een wisselwerking van tijd maken, hardware programmeren en zorgen dat het een en ander fysisch een beetje aardig in elkaar steekt. Dit zijn mijn eerste stappen met Pytorch, dus de metrics waar jij naar informeert heb ik nog niet. Ik ben allang blij dat ik de signalen zodanig kan preconditioneren dat de boel een beetje aardig convergeert naar geloofwaardige waarden. Met name het x-signaal heeft wat ruis, en die wordt problematisch bij differentiëren omdat de afgeleiden opblazen. Goed filteren zonder "echte" info uit het signaal te gooien is dus essentieel, ik gebruik nu Gaussische filtering maar ik heb nog wat moeite om te bepalen of ik niet te sterk filter en zo wezenlijke info weggooi.
Dat gevalletje van tijd kan ik mij helemaal in vinden. Al vraag ik me nu wel af hoe die afschatting nu wordt gedaan. Voor zo ver ik weet gebeurt dat meestal op basis van prediction-error methoden. I.e. Doe een simulatie met een simulatie model, vergelijk met data, minimaliseer het verschil door de parameters aan te passen (dit kan ook prima in pytorch door je state-space op te stellen met torch.nn.Param() ). Op die manier hoef je ook minder preconditioning te doen zoals differentieren.
Wordt dus vervolgd. Maar het project is qua code inmiddels zo'n soepzooi geworden dat ik vooral hard moet nadenken over hoe een goede splitsing te maken tussen het acquisitiedeel (dus het werken met de opstelling, het opnemen van signalen en de real-time beveiliging) en de postprocessing. Ik denk dat ik er twee verschillende programma's van maak: eentje om de meting te besturen (voorzien van een grafische interface), en een paar losse programma's voor postprocessing die ik dan eventueel bij goed resultaat kan combineren.
Dat is bij mij helaas niet anders, maar vanwege tijdsdruk is dat fixen ook een beetje uitgesteld :( .
In principe is het probleem wel goed op te splitsen in acquisitie, identificatie en visualisatie.
gans
Berichten: 9
Lid geworden op: zo 28 dec 2008, 15:26

Re: Deftige meetopstelling voor luisprekerparameters

Bericht door gans »

Do you need an additional reference object?
From my experiments with the DATS-LA, I have one Visaton AL-130 measured with Klippel by Andreas Dausend.
Regards Heinrich
Plaats reactie