|28th July 2013, 06:00 PM||#1|
Join Date: Aug 2005
Analog Servo Sub
After talking about my servo sub project in another thread (Low distortion, DSP based high gain servo controlled woofer controller. ) I decided to start my own. Mostly because I don’t want to clutter his thread with my project, but also so I can present my system and my results in one place. Hopefully this will make it easier for you to give me feedback on what I have done, what I have done wrong and what I can do to improve the system. Please don’t hesitate to be critical. I don’t know much about feedback systems and while it seems I have had some success with the things I have done so far I am sure there are things I should change.
This project started 5 years ago(!) following an article I read in audioXpress 6/06 by Art and Jac Brown. It was put on the shelf until recently when I was inspired by David’s DSP servo efforts in the thread above. Later I have also acquired an article written by Bill Waslo in audioXpress 12/06. He manages to explain how to build and test a servo sub without going into difficult math. The latter suits me particularly well
Woofer: PEERLESS XXLS 12” (830845) in a 135 liter (4.77ft³) sealed box.
Accelerometer: ACH-01-03. Calibrated to 9.6mV/g @ 1kHz
Amplifier: DC coupled LM3886 with +-29V rails
Sound card: M-Audio Audiophile
Pre-filter: MiniDSP 2x8
Servo circuit: My own. See schematic.
Oscilloscope: Picoscope 3224 (12-bit)
Measurement mic: My own with Linkwitz mod. (calibrated)
Software: REW V5,01 Beta 17
Speaker: Unibox 408
Figure 1. The servo circuit with a graph simulating the response from the accelerometer input to the amplifier output.
Figure 2. The accelerometer mounting. It is glued with 2-component epoxy under the dust cap. Note the 4gram counterweight on the opposite side.
Figure 3. The accelerometer cable comes out between the voice coil wires
The servo circuit.
This is mainly built following Brown’s suggestions.
Input buffer (U1)
A 7400Hz LP filter takes away some of the high frequency noise from the “MiniDSP 2x8” I use as pre-filter and EQ. U1 also serves as input gain adjustment and DC-offset adjustment. The MAX427 has low drift and noise and is unity gain stable.
Accelerometer input (U2)
R6 is needed for negative bias of the accelerometer. C2 and R7 form a 2.1Hz HP filter and prevent the slow DC changes that occur in the accelerometer from entering the servo. R9 and R8 give a gain of 9.4. The accelerometers sensitivity of 9.6mV/g will then be amplified to 90,24mV/g. The op-amp’s rail voltage is +-15V and the OPA637 can swing to about +-13V. Maximum g-force before clipping is then 13V/(90.24mV/g)= 144g. The OPA637 is probably overkill but it was in by box and it’s nice to be on the safe side
Summing amp (U3:A)
The accelerometer signal and the music signal is summed at the positive input of this op-amp. Note that the accelerometer is mounted so that an outwards (positive) motion of the woofer gives a negative signal here. This op-amp also serves as loop gain adjustment with R5 and LOOPGAIN1. I can have up to 32dB gain here. It is now at 29dB.
LP filter and output amp (U3:B)
R10 and C3 form a 4.3Hz LP filter. It attenuates high frequencies and helps shape the phase response so that the accelerometer feedback is inverted (180deg) at the target frequency. I wanted the target frequency to be in the lower part of the woofer frequency band because it is there we have most distortion. In my case this is now at 39Hz. This is a critical area of the servo circuit and this filter has to be shaped to suit the particular woofer/box. I have tried a couple of things here but this is what is working best for now. Both articles I have linked to earlier have more information about this. This op-amp also has a loop gain adjustment with R11 and LOOPGAIN2 of up to 25.8dB. With mine set to 18.5dB (pot at 2k) the system starts to oscillate at 2560Hz and increases fast in intensity at 2480Hz. At 17dB (pot at 1.63k)the system is just stable and I measured all-time best of 0.95% THD at 20Hz with 18.5V RMS on the speaker terminals. The last potmeter (AMP_SHUTDOWN) serves as a quick way of turning off and on the output amplifier when doing adjustments or if things goes “tits-up” .
The output amplifier.
After struggling with low frequency oscillations (1-3Hz) with a standard Rotel amplifier I decided to get rid of the extra 90 degree phase shift that occurs in all standard amplifiers that have a DC blocking capacitor on the input. I also wanted an amplifier without too much power that could rip my woofer apart during testing. I have therefore built a DC coupled LM3886 chip amp with adjustable rail voltages from +-16V to +-29V I can use during testing. Without the extra phase shift I got rid of the low frequency oscillations and its capable of 19V RMS output
This is glued with two component epoxy just on top of the voice as showed on the picture. The weight is about 4 grams and a 4 gram Norwegian coin is glued on the opposite side as a counter weight to avoid wrong balance in the cone.
G-force and SPL calculations:
With 100W power at 100Hz the X-Max is estimated to be 1.9mm in my box. The SPL @ 1 m is then 107dB from a 12” woofer. ( SPL = 20*LOG( (1.18/0.00002) * (0.0466m^2*0.0019m/1.41) * (2*3.1416*100Hz^2) ) = 107dB ) The g-force is then 76g ( g = 4*PI^2*100Hz^2*0.0019m/9.81 =76g ) and the “weight” of the accelerometer at that force will be: 4gram * 76g = 304 grams. This would create a bending force that could make the voice coil crash into the magnet.
First thing to test is open loop response to see what I had to work with. I used REW for this and set it up to sweep from 2Hz to 5kHz in 20 seconds. I made sure that the soundcard and filters included in the signal path was corrected for gain and phase errors with a calibration file. REW has a procedure for this. Here is the results of a loopback with correction active.
Figure 4. Measured loopback response with -5dB FS output in REW. Output is from the servo circuit’s input amp with gain set to 0dB. The gain and phase error in the soundcard and servo input amp is corrected with a calibration file so we have 0 gain and -2,9 deg. phase from 2Hz to 20kHz. The black dotted line show the gain correction, and we can see that the 7400Hz input filter has been corrected for. I don’t know why REW insists on correct the phase to -2.9 and not 0 but it is not critical. REW is also calibrated so that -5dB FS output signal is 0dB in the charts. -5dB FS on my soundcard is 989mV RMS. Now that the levels are calibrated and verified I can measure the open loop response.
First I measure the response of only the subwoofer. To get the true phase response of only the woofer I must have a DC coupled amplifier and must omit the HP filter in the accelerometer input and feed the accelerometer directly into the soundcard. Note that this can be somewhat risky because the output of the accelerometer can have a small negative bias and the electrolytic capacitor on the soundcard will have wrong bias. I have addressed this by using a -6V regulator to feed the negative bias of the accelerometer and the output signal from the accelerometer is 0V
Figure 5. This is the gain and phase response of the woofer with feedback directly from accelerometer. This plot does not contain any other gain or phase elements other than the DC coupled LM3886, the woofer/box itself and the raw inverted accelerometer output. Top graph is phase. Sweep 12s @ -21 dB FS. I ran this at different levels with the same result. The actual g-force can be calculated by knowing that 0dB on the chart is the same as -5dB FS which is 989mV. From the plot we see that 30Hz is at -31dB. The RMS voltage is then 10^(-31/20)= 28mV. My sensor is calibrated to 9,6mV/g and the RMS g-force is then 31,6/9,6= 2,9g
From this test I was surprised to see that the phase will never cross the forbidden 0 degrees or 360 degrees. In theory it should be possible with infinite loop gain??
Now I want to see how only the HP filter of the accelerometer op-amp affects the loop response. The input to the soundcard is now connected to the output of the accelerometer amplifier. The output from the soundcard is still connected directly to the amplifier (trough the input buffer U1).
Figure 6. The blue plot show how the accelerometer filter affects the phase at low frequencies. REW does not let me measure down to DC, but to predict the phase close to DC I have the following theory: We must assume that the woofer itself will approach 180 degree phase shift at DC (remember the accelerometer is inverted) and then the accelerometer capacitor gives us another 90 degrees more phase offset and end up on -90 degrees.
Figure 7. This is the SPL from the test. Green is with accelerometer amp. The green graph is actually 20dB higher because of the accelerometer amp, but I have offset it to better see the difference in output.
Now it’s time to connect the rest of the servo circuit and see what kind of margins we have. The signal that was driving the amplifier directly earlier is now fed into the summing amplifier (U3:A) through resistor R3. (Just as it will be in normal operation). The input to the soundcard is as in step 2 fed by the accelerometer amplifier (U1). The accelerometer is NOT connected to the summing amp.
Figure 8. This is the total open loop response. Gain increased until just below oscillation. Sweep done at -40dB FS. That is 35dB lower than the reference level so I have offset the curve +35dB in REW afterwards to easier interpret the plot. The loop gain is +35dB @ 21Hz. From 30 to 50Hz it is +38,5dB and at 100Hz it is +33dB
We can see that the forbidden phase of 360 degrees where the system will oscillate happens when the gain is at 0 which makes sense because the system is now adjusted up to the verge of oscillation. From the plot we can see that this happens at 3640Hz. I don’t know why the (measured) oscillation in my case occurs at 2470Hz and not 3640Hz but it I guess some strange things happen in this area.
But keeping loop gain this high is of course pushing the limits and I adjusted it down 8,5dB.
Figure 9. Loop gain adjusted down 8,5 dB.
All testing was done with this loop gain setting. I will post the results in another post
Last edited by Armand; 29th July 2013 at 07:46 AM.
|28th July 2013, 06:17 PM||#2|
Join Date: Aug 2005
Measurements and testing
It’s now time to see if the system is stable if subjected to different kinds of torture.
Test 1. Tapping the cone/surround with a finger
Light tapping around the surround has different effect. Somewhere nothing happens while other areas create a moderate “backfire”. Light tapping on the cone feels different at different areas. At some areas it is like tapping a rock, while other areas are “soft” and makes the cone move easy inwards as if it was really light. Some areas create a moderate “backfire”. A harder tapping feels the same but never makes the woofer “go wild”
Test 2. Moving, rocking and kicking the cabinet.
This is no problem at all. Even violent treatment has no effect.
Test 3. Subjecting the woofer to a sweep from 2 to 20kHz
A very slow sweep from 10Hz to 3000Hz at about 1V RMS did not create any problems. A faster sweep up to 20kHz also was not a problem either
Test 4. A 8,2ms (122Hz) 24V peak square pulse.
Figure 10. Blue line is input, red is measured directly on the accelerometer output. It looks fine except for some ripple. For example 1.786kHz ripple I have selected.
Figure 11. This at a greater timespan. Measured directly on the accelerometer output with the same input signal. We can see the 12,4Hz oscillations.
Figure 12. This at an even greater timespan. Measured directly on the accelerometer output with the same input signal. I have here applied a 1Hz filter in the oscilloscope software to better see the curve. We can see that there is a 2.99mV P-P oscillation at 0.2165Hz. After the accelerometer input capacitor and all the gain stages, this ends up to a 0.8V peak measured on the speaker terminals as seen in the blue curve below
Figure 13. This is the signal that is sent to the amplifier. The first negative is at -56,9mV, and times a gain of 26 in the power amplifier this gives me -811mV on the speaker terminal and I can see the cone moving a couple of mm.
So to sum this up.
The 12-13Hz oscillation is not so much of a problem as this is only a problem after big single pulses and is also below hearing at that amplitude.
My main concern now is the slow changing voltage after a pulse. I can also see a tendency that DC voltage builds up when playing a test tone loud for a while. 1-2 volts. Maybe a DC-servo is needed?
|28th July 2013, 06:49 PM||#3|
Join Date: Aug 2005
I have done some tests with THD measuremets with the feedback taken from both accelerometer and a microphone at a distance of about 5cm (2") from the cone. All test are done with 18V RMS on the speaker terminals measured with mulitimeter.
First, 20Hz without servo feedback
We can see that this is pretty useless but this is within the X-max of the woofer. As you can see we have almost the same same sound level at 40 and 60 Hz. And while 80 and 100Hz is lower remember the sound curve of the ear that is much more senistive for 100Hz that 20 Hz. See linkwitz site for more information about this: Woofer measurements
Now this is with the servo circuit active. The measurement is taken from the accelerometer
14 MF accel.png
We can see that the situation is quite different.
The following picture is as above, but measured with microphone.
20 MF mic.png
The distortion is a bit higher than with the accelerometer. This is partly because of room reflections, as I can see this figure rises when the mic is further away from the cone. But there is of course other things in play too.
Last I want to show a 50 Hz toneburst. The maximum peak amplitude is here 25V
30 50Hz burst.png
I also have tons of more measuremts at other frequencies in a word document you can have if you want. Just send me a PM with email as the document is to big for upload here (1.7MB)
I have *still* not listened to music on this sub so impressions will have tom come later. I am planning to build a blind test device where I can switch between to amplifiers playing the same signal. Both EQ'ed to the exact same frequency response and level through two MiniDSP devices.
*Any* feedback about what I have done so far is welcome.
|28th July 2013, 07:31 PM||#4|
Join Date: Oct 2004
Location: Gulf Coast
Blog Entries: 4
Nice work! Very interesting the difference in the mic and accelerometer readings. You have a good roll-off of harmonics on the mic. 3rd maybe just a tiny bit higher than ideal, but a vast improvement over the non-servo. Looks well worth the effort.
Glad to see that that servo doesn't go wild with outside stimulus.
Take the Speaker Voltage Test!
|28th July 2013, 08:53 PM||#6|
Super-wonderful to see so much good information and presented so clearly too. Good to see such progress. Thanks.
A few comments:
1. Not clear what "loop gain" means in the age of giant gain ICs. i think the interesting spec for your system is gain with and without the accelerometer circuit and looking at that across the freq spectrum. Is that the 39 dB you mentioned?
2. Likewise, not clear what a tone burst test means for a system with limited bandwidth, like a woofer. But, it can be very very informative (sometimes better than anything else) for MF work, like with a pulse or square wave (also undefinable for a woofer). Your tone burst signal is odd in that it isn't a square envelope. The only interpretable elements are the on-set and stopping motion of the cone. These show small under-motion at the start and over-motion (AKA ringing) at the end, although not clear what demands are being made of the driver in light of the non-square envelope. I'd love to see a square tone burst signal and with and without the MF.
Just eyeballing the mic results for a square wave whose freq is chosen to sit inside a "times 10" and "divided by 10" woofing band can be very informative, with and without MF. Guess that's what I'd think is the best picture you could give us, even better than a tone burst*.
*and I've never seen a waterfall display say more to me!
HiFi aspirations since 1957. Currently working on motional feedback again.
Last edited by bentoronto; 28th July 2013 at 09:08 PM.
|29th July 2013, 02:00 AM||#8|
Join Date: Mar 2007
Looking at post #3, why do you think that you are getting such different 2nd and 3rd order distortion levels as measured by the accelerometer and the microphone when the system is active?
In any case, excellent reduction in distortion! I would love to build something like this myself, and I happen to have an ACH-01-03 at my disposal. Thanks for sharing!
Also, one question - do you trim out the DC offset of the LM3886 by hand or do you just leave it as is?
Last edited by CharlieLaub; 29th July 2013 at 02:04 AM.
|29th July 2013, 12:12 PM||#9|
With the accelerometer viewpoint, you are looking at a feedback loop seeking to enhance the total system linearity as seen by the accelerometer. In an amp's feedback, you are seeking to enhance the linearity as seen by a resistor or other passive/stable component.
Certainly NOT the case here, but if you had a really distorted accelerometer, you still could get fabulous-looking results when looking at the accelerometer viewpoint when feedback is applied.
For sure, OK to look at the accelerometer/system output instead of the mic. Much more feasible in the course of R&D than trying to fuss with acoustics. But ultimately, the mic is the criterion of performance.
HiFi aspirations since 1957. Currently working on motional feedback again.
Last edited by bentoronto; 29th July 2013 at 12:17 PM.
|29th July 2013, 09:16 PM||#10|
Join Date: Jun 2005
Location: Fort Worth, Texas
First congrats on a functional MFB woofer system, and taking the time to perform meaningful measurements.
Could there possibly be some crosstalk in your soundcard contaminating the results?
Looking at your Figure 5. the open loop woofer response should not slope off and then bounce back. The open loop phase at DC should approach 180degrees(0 degrees in your case since the accelerometer response is inverted. I attached an overlay to your plot with modeling for your woofer and enclosure to show what you should be measuring similar to. The oscillation at low frequency is your confirmation that the phase does continue wrap up as plotted in the overlay, rather than jump back down to -180 like your measurements are showing.
Were you using your modified WM-61A, or the other Brand-X microphone(which has some 2nd harmonic issues)?
Also, how was the woofer oriented? Was the box set on the floor with the cone firing upward? Or sideways.
If upward, you might try sideways to see if 2nd harmonic comes down any.
I agree with Bentoronto that it would be more meaningful to look at response to tone bursts with square rather than cosine envelopes when evaluating transient behavior. It makes it much more obvious if there is overshoot at onset or ringing in the decay.
The only other suggested I would have is to try a larger accelerometer coupling capacitor(C2) to gain a bit more phase margin at your low frequency oscillation region.
Keep up the good work!
Oh, I forgot to ask...does the response discontinuity at 150hz show up in the the open loop microphone response? or is it only in the accelerometer response.
Last edited by bolserst; 29th July 2013 at 09:20 PM. Reason: follow up question
|Thread Tools||Search this Thread|
|Thread||Thread Starter||Forum||Replies||Last Post|
|To servo or not to Servo..||ReSiStAnCe||Chip Amps||16||23rd July 2014 12:46 PM|
|Analog solution for E-MU 1212m without its analog board||ceteras||Digital Line Level||0||14th July 2013 10:14 AM|
|For sale: Ultra Analog DAC, Ultra Analog AES20, HDCD filter||mihow2007||Swap Meet||2||30th November 2012 02:05 AM|
|Possible to convert servo amp to non-servo?||mfaughn||Subwoofers||8||19th September 2011 06:46 PM|
|HDMI to analog, or multiple analog channel mixer||TAYLOR1337||Digital Source||1||12th September 2011 09:17 PM|
|New To Site?||Need Help?|