View Single Post
Old 12th August 2009, 07:41 PM   #5
andy_c is offline andy_c  United States
Banned
 
Join Date: Apr 2003
Quote:
Originally posted by f4ier
Leach's Computer-Aided Electroacoustic Design with SPICE should give you an idea. Have a look at his site for other material as well; particularly the article regarding lossy voice-coils.

Remember that these models are only valid up to frequencies just before cone breakup. Moreover, these are small-signal models.

Enjoy
This is kind of a fun subject. I thought I'd post an LTspice simulation of a closed-box subwoofer just to illustrate the technique. The simulation makes use of the techniques in Leach's paper as specified above (but does not use the nifty model for lossy voice coil inductance from his other article). The model explicitly shows the three sections of the circuit: electrical, mechanical and acoustical. It uses the parameters of a Dayton "Titanic" 15" sub in a 3 cubic foot closed-box system. The box is assumed lossless, just for illustrative purposes. The simulation doesn't attempt to look at vented boxes, so it would need to be modified for that.

The simulation is for two systems that are identical in every way except that one circuit includes the effects of a (lossless) voice coil inductance and the other neglects the inductance. The driver parameters are entered via the SPICE ".param" directives in the lower-left column. From these parameters, CMS, MMS and RMS are calculated. The box volume in cubic feet is entered using the "VBcuft" parameter, which is set equal to 3 in this case.

A few LTspice quirks are worth mentioning here. If one uses current-controlled sources (CCCS "F" source or CCVS "H" source), one must provide an independent voltage source of value zero Volts to sense the current. A positive current means it's going into the positive terminal of this zero-Volt source. The "F" or "H" source must specify the reference designator of this voltage source in its "value" field. See for example the H1 and H2 sources. These implement e=BLu and f=BLi respectively. Voltage source V2 senses i and V3 senses u. Also note how V2 and V3 are referenced in the "value" fields of H1 and H2 respectively, along with the BL product. Here's one thing to beware of. If you copy a circuit containing a current-controlled source, the "value" fields are not "fixed up" to reflect the voltage source in the new, copied circuit. Rather, they reference the original voltage sources. So if you do such a copy, you'll need to "fix up" these reference designators manually.

Looking at the lower circuit, current source F6 senses the velocity of the cone, while C6 integrates it to get displacement, and scales the displacement to units of mm. Current source F2 senses the volume velocity, which is differentiated using L3. The value of L3 is chosen by using equation 4.17 from Beranek, which is for a piston in an infinite baffle. The pressure in this equation is scaled to an RMS value, then divided by 2e-5 N/m2 and the off-axis angle is set to zero. The distance used is one meter, and the result neglects the excess phase from the propagation velocity of sound and the corresponding distance. The distance can be changed via the "dist" parameter. If the voltage applied to the voice coil is 2.83 Volts RMS (4 Volts peak), the voltage measured at out1, when expressed in dB, corresponds to the dB SPL using the normal convention of specifying sensitivity. That is why the voltage sources specify a value of 4. To get displacement in mm, the left axis of the graph of the voltage at out2 must be displayed in linear form, rather than dB. These same considerations apply for out3 and out4 in the upper circuit.

If you want to see the calculated values of CMS, MMS and RMS, you'll need to switch over to operating point analysis. Run the simulation and do a View, SPICE error log. The computed values of these will show up, courtesy of the ".measure" directives on the lower right. In order for the operating point analysis to succeed, I had to place a large resistance in parallel with the capacitors having value CAB (C2 and C4). Right-click on these and you'll see they're set to 1e12 Ohms.

Of course, programs like WinISD can get all these data and much more, with less effort. But SPICE offers lots of flexibility and power if you want to get fancy and look at things these programs can't. This example wasn't meant to be comprehensive, just to illustrate the concept of how to set the problem up.

Edit: Oh yeah, one thing I forgot to mention. All driver parameters are in MKS units to minimize confusion and chance of error. So for example, the units of SD are square meters, not the square cm usually seen.
Attached Files
File Type: zip titanic_sub_example.zip (2.0 KB, 60 views)
  Reply With Quote