(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 http://www.linear.com/company/software.jsp 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]