Some Speaker Box SPICE Models:

(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.

SpeakerSpiceModels.zip

 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]

 

Hosted by www.Geocities.ws

1