Analog Servo Sub

Status
This old topic is closed. If you want to reopen this topic, contact a moderator using the "Report Post" button.
After talking about my servo sub project in another thread (http://www.diyaudio.com/forums/subw...-gain-servo-controlled-woofer-controller.html ) 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 :)

System setup:
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.

Measurement tools:
Oscilloscope: Picoscope 3224 (12-bit)
Multimeter: Fluke87
Measurement mic: My own with Linkwitz mod. (calibrated)
Software: REW V5,01 Beta 17

Modelling software:
Speaker: Unibox 408
Electronics: Proteus


Figure1.png
Figure 1. The servo circuit with a graph simulating the response from the accelerometer input to the amplifier output.

Figure 2.png
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.png
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” :D.

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

The accelerometer
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.

Testing
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.png
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.

Step 1.
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.png
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??

Step 2.
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.png
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.png
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.

Step 3.
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.png
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.png
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:
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.png
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.png
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.png
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.png
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?
 
THD measurements

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
32.png
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.

Armand
 
Administrator
Joined 2004
Paid Member
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.
 
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*.

Ben
*and I've never seen a waterfall display say more to me!
 
Last edited:
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?

-Charlie
 
Last edited:
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?snip
-Charlie

... because of a logical fallacy.

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.

Ben
 
Last edited:
First congrats on a functional MFB woofer system, and taking the time to perform meaningful measurements.

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??

I’m not sure what REW is doing to the response below 20Hz, but is doesn’t look reasonable to me.
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.


Step 3.
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.

It’s not clear to me if you are applying the input signal to R1 and any gain from U1 is included in the measurement or is signal fed into R3 with output from U1 disconnected. If applied to R1, you would need to set the gain of U1 to 1x to get open loop gain. You could also apply the input to the feedback input, R4, once the accelerometer signal from U2 had been disconnected.

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”.
Very interesting….you must be exciting a suspension rocking mode.

The following picture is as above, but measured with microphone. 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.

The main discrepancy between the mic and accelerometer is the 2nd harmonic.
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! :up:


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.
 

Attachments

  • DIYservo_01.jpg
    DIYservo_01.jpg
    122.6 KB · Views: 2,269
  • Burst.jpg
    Burst.jpg
    21.3 KB · Views: 2,183
Last edited:
snip

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! :up:
snip

Yup - we all love your good work! And you are lucky to have an informed person like Bolserst critique your posts.

Or you might consider a smaller capacitor (or other intervention) to cut down the loop gain at that point, depending on the Nyquist status of phase and gain. Better to end up a good stable system than to shoot for the moon and miss it. Quite a balancing act where the ups-and-downs are so dramatic.

After all these years of having speakers not in a feedback loop, any modest improvement is a big step forward. Unless we are talking about electrostatics, ahem, ahem, getting speaker distortion comparable to amp distortion is a hopeless effort. But then current amp distortion is way below perceptible levels while speaker distortion is not.

Ben
 
"Loop gain" should really be something that R8-R9 adjusts (replacing the two resistors with a pot). Thus the pot would control the amount of input from the accelerometer into the amp, instead of being fixed. The term refers to the amount of control exercised by the accelerometer feedback loop, not the gain of the whole amp.

In practice, you have the input level control pot (input_gain, 10k). But more logical to control the feedback loop rather than the input level (or both).

Do I have that right?

Ben
 
Last edited:
"Loop gain" should really be something that R8-R9 adjusts (replacing the two resistors with a pot). Thus the pot would control the amount of input from the accelerometer into the amp, instead of being fixed. The term refers to the amount of control exercised by the accelerometer feedback loop, not the gain of the whole amp.

In practice, you have the input level control pot (input_gain, 10k). But more logical to control the feedback loop rather than the input level (or both).

Do I have that right?

Loop Gain is the gain around the feedback loop path. Generally to measure it you break the loop at the red X in the figure and inject signal at "Input" and measure resulting "Output". Loop Gain in dB would then be 20*log(Output/Input). Since it is the total gain around the loop that matters, you can adjust the gain of opamp U2 with R8-R9 as you suggest. But it is just as valid to set the loop gain by adjusting the gain of opamps U3A, U3B, or the poweramp LM3886 for the matter. All that matters is the total gain. In practice it is best to divide the gain between the stages in a manner that maximizes headroom and S/N ratio.

The only stage whose gain should not be considered is that of the input buffer U1, since it is not inside of the the feedback loop.

Wait a minute! I thought you were using a current feedback amplifier instead of a voltage feedback amp. Let's think this over :scratch1:
That measurement was "open loop", so no motional feedback was used in that test case.
 

Attachments

  • Loop.jpg
    Loop.jpg
    196.8 KB · Views: 897
Last edited:
snip Since it is the total gain around the loop that matters, you can adjust the gain of opamp U2 with R8-R9 as you suggest. But it is just as valid to set the loop gain by adjusting the gain of opamps U3A, U3B, or the poweramp LM3886 for the matter. All that matters is the total gain. In practice it is best to divide the gain between the stages in a manner that maximizes headroom and S/N ratio.

The only stage whose gain should not be considered is that of the input buffer U1, since it is not inside of the the feedback loop.


That measurement was "open loop", so no motional feedback was used in that test case.
We're getting lost in terminology. I think we are looking for something called "the feedback fraction" or something like that. Sometimes (but not here), the gain of the sub-assembly represents what we are interested in and we look at the difference between with-accelerometer-feedback and without-accelerometer-feedback.

You want to know, "how much negative feedback are you using from the accelerometer?" And the next steps are to adjust the amount of feedback and phase, where troublesome. So working on R8-9 makes sense - even though in a purely disputative sense you could argue about it.

Ben
 
We're getting lost in terminology. I think we are looking for something called "the feedback fraction" or something like that
In feedback or control analysis Loop gain = β AOL (feedback fraction x open loop gain)

The feedback fraction(β) is a useful term to use in amplifier design as it is the fraction of the voltage output that is fed back to the input. But the term is troublesome to use in MF woofer design where the "output" is SPL and the feedback signal is "voltage". Talking in terms of loop gain tends to make more sense.

You want to know, "how much negative feedback are you using from the accelerometer?" And the next steps are to adjust the amount of feedback and phase, where troublesome. So working on R8-9 makes sense - even though in a purely disputative sense you could argue about it.
I wasn't trying to be argumentative. Rather, I was attempting to point out that doubling(or halving) the gain of U2 with R8-R9 will change the loop gain, phase, SPL, distortion etc exactly the same as if U3A or U3B gain had been doubled(or halved) instead.
 
Status
This old topic is closed. If you want to reopen this topic, contact a moderator using the "Report Post" button.