PETTaLS Flat Panel Speaker Simulation Software

@EarthTonesElectronics @homeswinghome , Dave/Christian - Can either or both of you please provide a table/ list csv etc for the missing paramaters of each of the exciters you've tested - Dayton have lots of N/A's in their specs

It would be much appreciated
Thanks
Eucy
The parameters that I use in my model aren't quite the same as the typical T/S parameters, but I can derive the T/S parameters from what I do use. My model just uses the mechanical impedance terms, while T/S is electrical admittance terms derived from the mechanical impedance terms. I also came up with a few new terms that I need to name and fit into the T/S framework cohesively. I'm working on that right now and am writing a paper about it, so I'll share that here when it's finished.
 
  • Like
Reactions: Eucyblues99
@EarthTonesElectronics @homeswinghome , Dave/Christian - Can either or both of you please provide a table/ list csv etc for the missing paramaters of each of the exciters you've tested - Dayton have lots of N/A's in their specs

It would be much appreciated
Thanks
Eucy
Hello Eucy
Below is what I have collected.
The document is available on the DML Github page

@Veleric : Eric, I think you have also impedance measurements from REW. Could you post it to me please that I insert them?

Christian
 

Attachments

An exciter has 2 moving masses, the voice coil and the magnet. Between them the spider and force based on the current and the magnet. There are 2 resonant system depending the voice coil or the magnet is fixed. In the Xcite specification both frequencies and parameters are specified.
The plots before show the fixed voice coil situation.
Generally I am more considering the fixed magnet situation, probably as an heritage of the impedance simulation of a cone loudspeaker but also because my final use of an exciter is with a fixed magnet.
This might explain I haven't understand the parameters you gave in post 205...

Have you also considered the fixed magnet situation?
Oh, I understand what you're asking now. Yes, the parameters for the fixed magnet situation are included in these models, e.g. the resonance information for the voice coil. I don't have a good way of actually simulating that situation in my software right now, because I don't have an option for "no plate," and if I make a really, really light and thin plate that is effectively no plate, it's got like a million modes and the simulation won't run. I'll work on integrating a "no plate" option as well, because this would probably be helpful.
 
Oh, I understand what you're asking now. Yes, the parameters for the fixed magnet situation are included in these models, e.g. the resonance information for the voice coil.
Hello Dave,
Good! If you see an interest to develop a thin plate or a no plate situation, that fine. I wouldn't put it in my wish list. The discussion about the exciters is an opportunity for us to know more about them (see Eucy's question).
In parallel I found different papers about more advanced models than the Thiele and Small. Interesting. Some of them are easy implementable in the FDM script (Wright for the electrical side, Novak for the frequency dependent damping).
If I can come back to my wish list: an open topic for me is the open back response. I have implemented an approach which makes sense regarding my directivity tests... but is it correct?
Christian
 
Thanks - it's very helpful - I looked at the Xcite data - it is more comprehensive but unfortunately seem to lack Impedance and Phase plots/data - or did I miss them??
Hello Eucy
In the Xcite specifications, the impedance curves are with the SPL plot. They provide the fixed magnet and the fixed coil curve impedance. The phase is not provided... but I don't see what do to with it...
In fact currently, I don't have a clear idea of what I expect as specifications for an exciter. I remains in the opinion of a high BL, a not too large diameter (ie 25mm) for a full range application, a low mass and a low inductance. It is part of my expectations from a simulation tool to feed different exciters and see what is the difference.
As I am collecting those characteristics, I have updated the file with the specifications of 2 Xcite models.
Having a look to the values... The 25mm DAEX25FHE, DAEX25VT and XT25 are pretty similar in BL, voice coil mass and resonance. What makes the difference is the damping of the Xcite is higher. I don't know if it makes a difference at the end...

@EarthTonesElectronics
Dave, this leads me that it might be interesting the simulation tool can support a model of exciter based on the T/S model for a first approach (ie the Xcite) and a more sophisticated model for a more accurate simulation. So maybe a custom external text file so that everybody can enter his values ?

Christian
 
  • Like
Reactions: Eucyblues99
I don't remember if it was reported (or if I have a local problem...) : under Linux/Ubuntu, in 1.4.2 impulse, impedance and velocity are empty (not updated at the end of the simulation?). There is in fact a similar problem in 1.4 where the impulse plot is not updated.
Ok, I'm compiling a new version today, so I'll look into it and make sure it's working!
 
  • Like
Reactions: homeswinghome
In writing my paper on exciter modeling, I realized that I wasn't incorporating the coupling between the voice coil mass and the mode impedances completely. I fixed this and have already uploaded the new version 1.5 (just Windows for right now, but I'll do Linux and Mac later today). The results of this aren't terribly significant for dense materials like acrylic, as seen in the graphs below, but for light materials like EPS it's pretty impactful and causes a significant decrease in SPL at higher frequencies. These simulations were done with a DAEX25VT-4, which doesn't even have a particularly heavy voice coil. (In each case, the blue line is the new version)

1747320617865.png
 
In writing my paper on exciter modeling, I realized that I wasn't incorporating the coupling between the voice coil mass and the mode impedances completely.
Hello Dave,
The HF roll off by the voice coil mass is predicted in the papers about DML theory. It impacts mainly as you show the light material which have a lower mechanical impedance. In practice, there is a roll off but in my opinion not as clear as a low pass. It seems more complicated maybe above 7 or 8k. The area inside the voice coil ring has its own modes which change the overall response. See the tentative from Steve to mitigate the peak we have generally in the 10k without completely erasing the benefit of the SPL from this area.
It might be the simulation is pessimistic then.
Thinking loud : some modes specific to the inner ring area might make a compensation?
You are right about the 25VT mass. It is announced at 1.75g in the specifications where a 25FHE or a XT25 are said around 1.6g. In any case lower than a 30/32mm model.
Christian
PS : sorry to focus on the HF, this modification seems to make the simulation more realistic in the 2 to 8k which is of course excellent!
 
Last edited:
Ok, I'm compiling a new version today, so I'll look into it and make sure it's working!
Just uploaded the Linux installer for v1.5, so let me know if this one works for you. I installed it and everything was working fine (besides the line colors, which start with yellow on Linux - ugh!). My old Ubuntu virtual machine mysteriously disappeared from my computer when Windows updated, so I had to reinstall everything. The new version was installing to slightly different paths because of that, but it's not too difficult to figure out.
 
Just uploaded the Linux installer for v1.5, so let me know if this one works for you.
Hello Dave,
Download and launch of the app after the path update are OK. The MATLAB run time R2025a was installed.
... but the plot issue remains. The impulse, velocity and impedance plots are blank. Seems the problem has occurred since 1.4.2 with the change in the GUI (tabs).See 1st picture below.
...but maybe here is a clue : the simulation was up to 5k. The 2nd picture is up to 20k, the plots are displayed!
... an other clue :
Below is the content of the terminal at the end of the simulation up to 5k (no action from the GUI from run button push to this message)

PS : more observations
  • running a new 5k simulation after the 20k one, the problem seems remaining (error message and plots impulse, impedance, velocity not blank but not updated from the previous simulation.
  • running then a 2k simulation... the plots are updated!
It is also correct if I launch a simulation up to 2k just at launching the app!
Like if PETTals likes simulation up to 2k or 20k but not 5k! ;-).

Setting up environment variables
---
LD_LIBRARY_PATH is .:/usr/local/MATLAB/MATLAB_Runtime/R2025a//runtime/glnxa64:/usr/local/MATLAB/MATLAB_Runtime/R2025a//bin/glnxa64:/usr/local/MATLAB/MATLAB_Runtime/R2025a//sys/os/glnxa64:/usr/local/MATLAB/MATLAB_Runtime/R2025a//sys/opengl/lib/glnxa64
Error using spectrogram
Expected X to be non-NaN.

Error in spectrogram (line 186)

Error in PETTaLS_Free/RunButtonPushed (line 384)

Error in appdesigner.internal.service.AppManagementService/executeCallback (line 13)

Error in matlab.apps.AppBase>@(source,event)executeCallback(ams,app,callback,requiresEventData,event) (line 54)

Error using appdesservices.internal.interfaces.model.AbstractModel/executeUserCallback (line 282)
Error while evaluating Button PrivateButtonPushedFcn.

1747384657115.png

1747385572973.png
 
Last edited:
@EarthTonesElectronics
Dave,
As I was comparing my FDM script outputs to PETTaLs and with the released of PETTaLS v1.5, I compared the outputs of PETTaLS different versions. There are more differences than I thought.
Below are the overlays of the FR and impedance output in 1.4, 1.4.2 and 1.5 for an acrylic 300x420x2mm panel with CCCC boundary conditions and a DAEX25VT at 0.37/0.37 with a fixed magnet.
I came to CCCC configuration because even if it is not what could make a panel for music it appears to be the best configuration for comparisons so I am in the idea to build a test panel similar to that.
To come back to PETTaLS versions, I didn't have in mind the differences in the 1 to 5k range between them.
  • v1.4.2 introduced a deep a bit above 2k and a change in the impedance curve. The increase due to the inductance seems more realistic but with a strange flat area from about 1.5k to 2.5k. The blue vertical line was moved up.
  • In v1.5 this range 1.5/2.5k in the impedance seems more realistic.
  • In addition to the HF roll off, v1.5 modifies the FR in the 1.5/5k range which is now less smooth. It increases also the dip just below 1k.

There is probably no general interest you explain the changes themselves but I think we would be interested if you could share how it converges to your own measurements.

From the comparison of the FDM script to PETTaLS, it comes the impedance peak values and the mean SPL level from the script are for some reasons wrong but there is a pretty good agreement on the frequencies of the peaks of the impedance, the surface shape of the main peaks and on the SPL curve. Both agree on the dip just below 1k even if the valley from FDM is closer to v1.4/1.4.2 and on a not that smooth SPL in the 1.5/5k range as shown by v1.5. The script doesn't show the same shape of dip above 2k but "something happens".

I am curious now of practical results in parallel to that.

Christian

1747396583195.png


1747396781466.png
 

Attachments

  • 1747396119382.png
    1747396119382.png
    103.6 KB · Views: 5
Hello Dave,
Download and launch of the app after the path update are OK. The MATLAB run time R2025a was installed.
... but the plot issue remains. The impulse, velocity and impedance plots are blank. Seems the problem has occurred since 1.4.2 with the change in the GUI (tabs).See 1st picture below.
...but maybe here is a clue : the simulation was up to 5k. The 2nd picture is up to 20k, the plots are displayed!
... an other clue :
Below is the content of the terminal at the end of the simulation up to 5k (no action from the GUI from run button push to this message)

PS : more observations
  • running a new 5k simulation after the 20k one, the problem seems remaining (error message and plots impulse, impedance, velocity not blank but not updated from the previous simulation.
  • running then a 2k simulation... the plots are updated!
It is also correct if I launch a simulation up to 2k just at launching the app!
Like if PETTals likes simulation up to 2k or 20k but not 5k! ;-).



View attachment 1461136
View attachment 1461137
Oh, good catch. I actually caught this bug a while ago but forgot to update it in the github version. There are certain frequency limits that give a NaN SPL for the highest frequency point, so I can easily fix that, and I'll upload a fixed version later today (still v1.5).
 
  • Like
Reactions: homeswinghome
As I was comparing my FDM script outputs to PETTaLs and with the released of PETTaLS v1.5, I compared the outputs of PETTaLS different versions. There are more differences than I thought.
Below are the overlays of the FR and impedance output in 1.4, 1.4.2 and 1.5 for an acrylic 300x420x2mm panel with CCCC boundary conditions and a DAEX25VT at 0.37/0.37 with a fixed magnet.
I came to CCCC configuration because even if it is not what could make a panel for music it appears to be the best configuration for comparisons so I am in the idea to build a test panel similar to that.
To come back to PETTaLS versions, I didn't have in mind the differences in the 1 to 5k range between them.
  • v1.4.2 introduced a deep a bit above 2k and a change in the impedance curve. The increase due to the inductance seems more realistic but with a strange flat area from about 1.5k to 2.5k. The blue vertical line was moved up.
  • In v1.5 this range 1.5/2.5k in the impedance seems more realistic.
  • In addition to the HF roll off, v1.5 modifies the FR in the 1.5/5k range which is now less smooth. It increases also the dip just below 1k.

There is probably no general interest you explain the changes themselves but I think we would be interested if you could share how it converges to your own measurements.

From the comparison of the FDM script to PETTaLS, it comes the impedance peak values and the mean SPL level from the script are for some reasons wrong but there is a pretty good agreement on the frequencies of the peaks of the impedance, the surface shape of the main peaks and on the SPL curve. Both agree on the dip just below 1k even if the valley from FDM is closer to v1.4/1.4.2 and on a not that smooth SPL in the 1.5/5k range as shown by v1.5. The script doesn't show the same shape of dip above 2k but "something happens".
Because you're using the 25VT-4, my guess is that the change from v1.4 to v1.4.2 comes from the fact that I apparently fixed some parameters related to that exciter specifically (just checking the release notes). It was mostly the ring size that I fixed, I think, but it also looks like the voice coil impedance was updated.

Moving to v1.5, the voice coil mass was missing a coupling variable in my code, and after I fixed this, the "something happens" is happening. Tough to describe exactly what's going on there - it's not as simple as a low-pass filter - but I can tell that the simulations are matching experiments much better in the frequency ranges above 2k now.

For example, here's a comparison between the published SPL for the 32VBDS exciter (the biggest, heaviest one) from Dayton and my simulation. They used 1/2" foam core board with an unspecified location - I used 1/2" XPS with (0.37,0.37), so it's not an exact comparison, but not too far off. The general roll-off trend is the same.

1747407595866.png
 
  • Like
Reactions: homeswinghome
Here's something else fun - I was able to derive almost everything I needed for the Xcite models from the datasheets. Plugging the parameters into my models, the simulations come out very close to the published SPL curves. I'm not sure I totally understood how the panel was set up, but they're very close nonetheless. I think the panel vibration area was slightly smaller than written, probably due to a clamped area at the edges, which probably explains the differences at low frequencies.

1747431961030.png
 
  • Like
Reactions: Veleric
Here's something else fun - I was able to derive almost everything I needed for the Xcite models from the datasheets. Plugging the parameters into my models, the simulations come out very close to the published SPL curves.
That's really excellent Dave! From your previous post about the Dayton example, I was thinking also to the Xcite. It confirms also the Xcite specifications are pretty good.
Among the few remaining differences :
  • there is a peak in the Xcite plots below 200Hz.
  • the dip at 1k is more severe in the simulation
  • the 19 to 32mm models show the peak I mentioned before above 10k which identified coming from the central area.
I'm not sure I totally understood how the panel was set up, but they're very close nonetheless. I think the panel vibration area was slightly smaller than written, probably due to a clamped area at the edges, which probably explains the differences at low frequencies.
With Eric, comparing FDM script to FEM we had a similar question. When the boundary conditions are implemented in the simulation at the equation level, it is the same as if the clamped area was external. It makes sense it is here the external dimensions of the panel. My FDM script works in the same way. Implementing the clamp condition reduces the panel size by adding fixed points.

Something I don't see in the Xcite specifications is the magnet condition: free or fixed?

The panel is about 0,39x0,78m with the exciter at 0.35/0.5. On which dimension did you assume the 0.35?

Christian
 
I think the panel vibration area was slightly smaller than written, probably due to a clamped area at the edges, which probably explains the differences at low frequencies.
It makes sense it is here the external dimensions of the panel. My FDM script works in the same way. Implementing the clamp condition reduces the panel size by adding fixed points.
I suppose it is possible, but I would really be surprised if they included the clamped region at the edges as part of the "panel area". I wonder if there is anyone who could answer that question? (haha).

Christian, in the FDM script, is there a reason that you don't create a clamped boundary simply by forcing the first derivative(s) of the panel deflection to be zero at the edges, rather than adding fixed points?

Eric