(Added models for two different drivers sharing same closed box, or
ported box. 10/12/2005, AFP)
(Corrected an error with 2 driver series and parallel versions, which was exaggerating the excursion differences between woofers. 10/13/2005, AFP)
(Made the excursion plots to display peak values rather than RMS. Note that excursion
is for open space to achive the SPL which is calculated for infinite baffle. In other words if the AcousticOutput curve shows 90db, it is for infinite baffle load with 2.828V drive level.
But the excursion level is the peak value for 2 times 2.828V drive level, which achieves 90db at full space. 10/13/2005, AFP)
You can download from the below link some SPICe models for a couple of speaker boxes.
I have used LTspice/SwitcherCADIII (SwCADIII) which is a free SPICE program avaliable from www.linear.com to generate the SPICE nets that models some of speaker boxs. The above linked zip file contains .ASC files that can be opened up by SwCadIII and will display the circuit model in GUI. The zip file also contains .NET files which have SPICE NETlists of the circuits, so that they can be used by other SPICE models, but I haven't tried these with any SPICE program other than SwCADIII. The flow of the nodes and commands in NETList files will not necessarily follow logicly, because I have been using the GUI editor. There is also a .PLT file for each .ASC file; these contain the plotting definitions and when run under SWCadII, automatically displays a plot view with three panes: one is the impedance (V(In)/I(Re)), the other is cone excursion in mm's and the last one is sensitivity plot into 2pi (infinite baffle) radiation. Group delay of the system also is displayed in this sensitivy plot, which can be switched to show phase of the system. One caution, the excursion plot shows required excursion to 4pi (open space) to reach the sensitivities shown in the sentivity plot. So the excursion displayed is twice what is needed for infinite baffle radiation.
The SPICE circuit models are prepared based on the book "Intro. to Electroacoustics and Audio Amplifier Design" by Marshall Leach, Jr, and his JAES article "Computer-Aided Electroacoustic Design with SPICE" .
Some Notes Common to All Models:
There are four sections of the circuits: the first is the electrical
section, the second is mechanical, third is acoustic and fourth is some
arbitrary circuit elements used to do the necessary conversions and transforms
to get to the acoustic SPL values to be displayed. The electrical section is
driven with Vin, an AC source of 2.828Volts, which is 1Watt into the standard
8ohm load. There is an Rsource resistance with 0.1ohm value in series to the
voltage source Vin. This is added there to count for the any additional series
resistance like DCR of xover inductors, cable resistance, amplifier source
resistance, and etc.
The frequency span of the simulation is determined by the ".ac oct 20 10
2000" SPICE directive, which means the simulation will be ran from from 10Hz to
2000Hz with 20 frequency points per octave , which can be changed however
wished.
In the files, there is a section of multiple ".param ..." directives.
These are where the driver (and box) parameters are to be entered (edited
actually). One important note is that all of these are in MKS units, i.e. enter
meters for length, m3 for volume and kg for mass. There is also a section with
a commment "Calculated parameters"; you should not be editting this unless you
know the model is wrong :), which if you find something like that please let me
know at [email protected]. Some models also contain a section with
".measure ..." directives. These are calculated values that are printed to the
SPICE log file after running the simulation. Things like Fc and Qtc of closed
box are printed out this way. You need to look at the log file to see the
results of these. I don't exactly know why, but SwCADII was printing values in
decibels to the log file, so I did some conversion hacking in those places in
the .Measure directives. For instance the length of a port in ported box is
displayed in decibels in the log file, but it is actually in cm's. (I know this
is against the MKS convention I used...)
Adding a ".step ..." SPICE directive parameters can be easily stepped
through to see how the response changes over a range of values of a parameter.
One immediate example is stepping the box volume of a closed box model by
adding the following directive:
.step param Vb 10e-3 20e-3 5e-3
This makes the Vb to have a value starting with 10.0lts and ending at 20.0lts
with 5.0lts step increments. This will cause three simultaneous curves to be
plotted; one for each value of Vb stepped.
The following SPICE models exists in the zip file:
Infinite Baffle (InfiniteBaffle.asc):
This is a model of a driver on an infinite baffle, nothing fancy, but
being simple it provides a good example on the workings of the SPICe modelling.
Closed Box (ClosedBox.asc):
This adds a closed box to the infinite baffle version. Vb is the box
volume, RairLeak is supposed to model any air leak loss in the box. This
resistor is required to exist even if with a very high value, otherwise SPiCE
run will fail. There is a Qmc parameter also that can be entered, but it is by
default a calculated parameter as the way it is in the file. Qmc is for the Q
of the box, i.e. how lossy is it with the filling and wall movements etc. A
high Qmc means a very low loss box, but Qmc shouldn't have a value above
QmcMax, which is also a calculated spice parameter in there.
Fc and Qtc can be found at the log file after running the simulation.
Closed Box, 2 Parallel Drivers(ClosedBox2DriversParallel.asc):
This is a closed box which has two different drivers wired in parallel.
It allows to observe what happens in terms of each drivers excursion and etc,
when the drivers differ in their T/S parameters but work in to the same box.
Closed Box, 2 Drivers in Series(ClosedBox2DriversSeries.asc):
Same as above but drivers are connected in series.
Ported Box (PortedBox.asc):
This models a ported box. Boc volume (Vb), box tuning frequency (Fb), box Q
(QL) and radius of port (RadP) are needed to be edited along with the T/S
parameters of the driver being used. There is also a distance from port center
to woofer center parameter, assuming port and woofer is on the same baffle.
This parameter is used in modelling the mutual acoustic radiation load between
port and woofer. kwUp and kpUw dependent current sources use this parameter to
model the mutual radiation.
The required port length is printed out in the log file in cm's.
Ported Box, 2 Parallel Drivers(PortedBox2DriversParallel.asc):
This is a ported box which has two different drivers wired in parallel.
It allows to observe what happens in terms of each drivers excursion and etc,
when the drivers differ in their T/S parameters but work in to the same box.
Ported Box, 2 Drivers in Series(PortedBox2DriversSeries.asc):
Same as above but drivers are connected in series.
Ported Box 2 (PortedBox2.asc):
This model is same as PortedBox.asc, with the exception that instead of
taking in a box tuning frequency as input, it takes in port length as input and
then gives out the box tuning at the end of a run in the log file.
Ported Box 2- 2 Parallel Drivers(PortedBox2DriversParallel2.asc):
Same as above, i.e. takes in port length as input parameter, but with two
different drivers wired in parallel.
Ported Box 2- 2 Drivers in Series(PortedBox2DriversSeries2.asc):
Same as above but drivers are connected in series.
MAPD Box (MAPDBox.asc):
This is an attempt to model a Multichamber Aperiodic Progressive Damping
(MAPD) box design, which I came across at
www.northcreekmusic.com/MAPD1.htm. There are parameters for first
chamber which the driver operates into directly (Vb1, RairLeak1, Qmc1) and also
parameters for the second chamber that is connected to the first chamber via
the resistive vent (Vb2, RairLeak2, Qmc2). These box parameters are similar to
the closed box box parameters. In additional to these, there are parameters for
the resistive vent, a.k.a "Variovent". These parameters are the acoustic
resistance of variaovent (RVarVent), radius of variovent (RadVarVent)and length
of variovent (LVarVent). The real problem is coming up with a correct value for
RVarVent. A VarioVent is avaliable manufactured by ScanSpeak commercially, but
I couldn't find any specs on the acoustic resistance of it.
Most back chambered (a.k.a dual-chamber) tweeters are MAPD loaded. They
have a chamber right behind the tweeter dome. This chamber is connected to the
back chamber via a vent on the pole piece, which is usually filled with some
flow resistive fiber or foam. The model accounts for acoustic mass of the vent
also from its length and radius. By playing with the input parameters, you can
generate impedance and frequency response curves that look like most tweeters
have; from dual humped impedance peaks to asymmetrical impeadance peaks widened
to right.
Dual Chamber Ported Box (DualChamberPorted.asc):
I recently came across this loading at Roman Bednerak's desing
"Bandit". As explained in this
link, it consists of two chambers that are both ported to outside, and
a third port that connects each chamber. In the SPICe model, Vb1 corresponds to
the first chamber where driver operates, and Vb2 to the other chamber. Box
tuning of first chamber is the parameter Fb1, and box tuning of the second
chamber is Fb2. Fb1 and Fb2 are the box tuning of these chambers when they are
not connected with the third port, i.e. the port that connects the two chambers
is closed. In the spice model, port1 is the port that opens chamber1 to baffle,
port2 is the port that connects the two chambers, and port3 is the port that
opens chamber2 to baffle. This numbering seems unintiutive, but I started that
way and didn't want to change later. Again note that port2 is NOT the port that
opens box 2 to outside world, port3 is the one that opens box 2 to outside
world. In addition to the parameters such as Vb1, Vb2, Fb1, Fb2, the dimensions
of port2 which is the port that connects the two chambers from inside needs to
be edited. I chose it this way because I didn't see a third well defined port
tuning frequency that can be used to determine the dimensions of port2. The
required port lengths for port1 and port3 are printed out in the log file after
a run.
I am not sure how accurate the circuit model is, I haven't tried any and
compared. If you see anything wrong with the model I would appreciate if you
could let me know at [email protected]. In any case I think the model looks
like a good start and give allow experimental excercise to see how different
box designs behave.
Dual Chamber Ported Box 2 (DualChamberPorted2.as):
This is same as DualChamberPorted.asc, with the exception that instead of
Fb1, and Fb2 as input, length of port1 and port3 are entered directly.
October 12, 2005
Ahmet Feyz Pirimoglu,
[email protected]