DC Servo question...

Status
This old topic is closed. If you want to reopen this topic, contact a moderator using the "Report Post" button.
Hi Tom,

A new day and some new insights as well...

The initial calculation is right, for the cap filtered input an applied step would be down to 0.67% after 2.25s with the 0.45s (f-3dB=0.35Hz) time constant: u=u0*exp(-t/t0). I implemented that in the sim (with post filter off):
The integrator crosses its 0dB-point when have |X(C)|==R, but the servo OLG hits 0dB way up in frequency, scaled by the gain loss in the signal amp stage. In our circuit the gain in the signal amp for the servo is 2k/115k==17.4m. Thereore the integrator RC is then 0.45s*17.4m==7.8ms, giving 35.6k with a 220nF cap. Simmed it (signal gain) and it fits, -3dB@0.35Hz, -6dB/oct slope. Simmed the response to a 100mV input step, which also gave 2.1mV after 2.25s which is that 0.7% number, referred to the 300mV output step. So far so good...

Looking at the AC feedthrough, with the 1st order integrator we can get only -20dB/dec. roll-off, 0.35Hz to 20Hz is a 1.76 decades span, giving (x20) only -35dB feedtrough attenuation. Simmed it, fits. I might argue that when using a good op-amp for the servo the distortion of it should be quite insignificant, at low frequencies (20Hz is usually close to the dominant pole where a precision op-amp will have some 120dB OLG or more).

I added the postfilter, using the 0.35Hz corner freq as well, which would leave 45 deg phase margin (with the integrator eating its constant 90 deg and the post filter another 45 deg at that freq). Sim showed now the expected feedthrough 40dB/dec slope and it was 70dB down at 20Hz now, as expected. CLG plot had a +3.3dB ripple (which was also visible in the feedthrough), step response with -49mV undershoot (16% of 300mV) and signifacant ringing.

Next I tried with 60 deg margin, the post filter then adds 30 deg shift which means its corner must be 1/tan(30deg)=1.73 times above the integrator, giving it a 0.6Hz break freq. Now I got -65db AC feedthrough at 20Hz with no ripple in that plot, +2.3dB ripple in the signal gain plot, and the step response took 1.0s to come down to 2.1mV and showed -19mV undershoot which was settling completely after 5 seconds.

Finally I went to 2nd order RC, by adding a pre filter to the servo, as the signal amp's output is a low impedance node and thus a reasonable place for it. To keep the 60 deg margin each of these filters has to add only 15 deg which placing their corners 3.73 times higher. I chose x4 (1.3Hz), using 22uF caps this means 5.6k resistors. I got no significant changes in the step and CLG response plots, but the AC was now -80dB at 20Hz and sported the 3rd order, -60dB/dec slope. Final component values were: 5k6, 22u for the pre/post filters; 33k, 220n for the integrator RCs; and 110k for the injection resistor (and 1k, 2k for the main feeback).

If we scaled all frequencies down to 1/10th we could reach -100dB at the cost of a tenfold settling time. In the appnote for paralleling LM3886s I find an integrator R*C of 1 second (looks like a typical rule-of-thumb choice) which comes out to be be a corner freq for the CLG of 0.016Hz as the main amp gives 1/10 attenuation inside the servo loop. This corner equates to about 3 decades spacing to 20Hz, AC being thus down there at -60dB. But it gives rather slow servo action, effective R*C of 0.1Hz, that is almost five times slower than our circuit (which struggles with large cap values and high component count).

Something strange remains. Most of these AC feedhrough graphs showed some kind of notch in the 1kHz region, above that to go upward again but to flatten out at a certain level (at -35dB or so). I suspect either a wrong sim hookup to get these plots or some sim error (which I sometimes get with MicroSim), I'll try to port that to LTSpice and see if this behaviour is consistent. If so, I'll have to look closer what this is about. And, I forgot to check the CLG phase angle at 20Hz. When I get to fix that all, I'll post the plots.

Regards, Klaus
 
Thanks, Klaus.

I still don't understand why we would need the servo to respond so quickly. And what does an input cap have to do with it? Sorry for being so "dense".

I also wonder, regarding the AC injected by the servo loop, how low is "low-enough"? I read, once, somewhere in diyaudio.com, where someone was stating some sort of "ideal" as being -110 dB at 20 Hz, if I recall correctly. But I don't know if they were being serious, or were simply playing "devil's advocate", or something like that.

Anyway, I tried your last component values, with +/-22v supplies, in LT-Spice:

I used the "Test Version" schematic topology that I posted earlier, so I could plot the servo's FB_LEVEL before it was mixed with the inner-loop's feedback. In the frequency domain, I got about -75.6 dB at 20 Hz, for the FB_LEVEL. (I didn't see any notch around 1 kHz, unless I looked at the Test Version's FB buffer opamp's output.) I used LT1115 for the amp and LT1097 for the integrator (and test-version's buffer), although it should make almost no difference, here.

In the time domain, I see that the feedback and output levels hit their targets, the first time, after about 0.8 second. Then after the overshoot, they settle to their target values at roughly the 2-second mark. Also, the peaks of the integrator output were only at about 18v (4v "safety margin" for 22v supply).

So it seemed like maybe the response could be slowed down a little, if the overshoot could be eliminated, possibly resulting in a little less AC in the feedback. I tried it for a few iterations, but couldn't improve it by very much.

I have noted that lowering the pre-filter's RC (or raising the integrator RC or the injection resistor's R) can eliminate the overshoot. So I (eventually) changed the injection resistor to 120k, the integrator R to 47k, and the pre-filter R to 4.7k. The overshoot was basically gone, then. The integrator output peaks were about 19.7v (not enough margin for 22v psu??). But, the FB_LEVEL at 20 Hz only improved from about -75.6 dB to about -76.25 dB. However, everything gets within 1% of its target voltage within about 1.7 seconds, IIRC. So there's probably a little more room for improvement, if you are wanting 0.7% by 2.25 seconds.

Note, also, that raising the FB injection resistor's value always does better than raising the post-filter's R value, for reducing the AC in the feedback. So, lowering the post-filter's R (and increasing its C), and raising the injection R by the same amount, should always give an improvement in the level of the injected AC.

Earlier (last night), I was working on a similar DC Servo design, but for a power amplifier (using TI.com's OPA541 E model, gain of 21), assuming 60v p-p maximum output. I found that IF I was willing to wait for about 7 seconds for 90% correction of a 300 mV (max) output offset, and allowed about 1% max overshoot, then I could have -110.5 dB FB_LEVEL at 20 Hz!

But, adapting that to your "0.7% by 2.25-seconds" spec, I was only able to get about -81 dB FB_LEVEL at 20 Hz (and maybe hadn't QUITE met the spec, yet).

(Is -81 dB low-enough? Testing with a 10 Hz sine signal, 60v p-p, with about 27 seconds simulation, with max timestep=1/(1000xfreq), the THD of the output was exactly the SAME as it was with the servo loop's output and input NOT connected. However, I used 20 harmonics and also looked at LT-SPice's data for the magnitude and phase of each harmonic. There were some differences, there: Looking at the "Normalized Components" (i.e. fundamental's magnitude = 1.0), all even-order harmonics had lower magnitudes WITH the servo connected, as did the 3rd harmonic. But the higher-order odd harmonics (5th and higher) had LARGER magnitudes with the servo connected. Phase angles were also significantly different, for both even and odd harmonics from 3rd on up. I don't know how significant the differences might be, since we are talking about, for example, a 5th harmonic with mag 1.082e-09 and phase -171.08 deg without the servo, versus mag 2.589e-09 and phase -63.05 deg with the servo. And the higher-order ones had smaller differences in magnitude. [And, this was at 10 Hz, as a sort-of worst case. It should be better, for higher frequencies.])

HOWEVER, adding an "ac cancellation" stage (as Glen Kleinschmidt had mentioned), between the integrator and the post-filter, enabled me to get it to a FB_LEVEL of about -91 dB at 20 Hz. [Note that that design is actually not finished yet, with still a little too much overshoot. So the -90 dB figure might still change.]

For the ac-cancellation stage, I used three more opamps (which gives a total of 2 dual opamp ICs for the servo loop): a buffer, then a series-CR high-pass filter with the same time-constant as the integrator, then a unity-gain inverter, then a non-inverting summing amplifier, to sum the integrator's output with the unity-gain inverter output, to try to "cancel-out" the AC.

In both cases, I had used 10k and 499 Ohms for the gain-setting resistors for the OPA541. I had an 8-Ohm load with signal and ground cables each having 2400 nH and .096 Ohms in series (about 8 feet of some wire). I used a 30v 0-p max output sine and assumed a maximum 300 mV DC output offset (too low?). OPA541 psu was +/-35v. Opamps' psu was +/-22v. The servo feedback injection resistor ended up being 590k! (And it was 604k in the version without the ac-canceller, which also had slightly-different integrator and prefilter RC values.) The prefilter was 140k (for lowest offset with input grounded) with 2.2uF paralleled to ground (slightly too much, maybe). Integrator RC was 143k and 220 nF MKP. Post-filter was 2.8k with 11uF to ground (probably 5x 2.2 uF polyester paralleled; otherwise, 2x 22uF electrolytic in series).

The ac-cancellation stage, inserted between integrator output and post-filter input, had an opamp unity-gain buffer/follower, then 2.2u in series with 14.3k, followed by an inverting opamp with 14.3k FB R (w/10 pF in parallel) and 7k from + to gnd. Then the summing amp used 4x 10k resistors, with 47 pF in parallel with the FB R.

That's all, for now. Thanks again, Klaus!

- Tom Gootee

http://www.fullnet.com/~tomg/index.html
 
Hi Tom,

The input RC I just took as some starting point for a reasonable signal phase roll-off at LF. In some sense a DC-servo, besides removing output offsets, works like an input cap without actually having one in the signal path (still with caps in the signal path but with very reduced impact).

This AC cancellation stuff seems a bit controversial to me, adding several op-amps might not give too much net improvements in signal quality. That would have to be proven with real circuits (as I feel the typical op-amp models might be a bit weak at distortion issues).

I'll try to recreate your findings in LTSpice as soon as I find the time.

Aside: I've already had my share of problems using servos with IC instrumentation amps, when connecting a servo's output directly to the REF input (with INA103's, e.g.). There the output impedance charateristic degraded the AC perfomance (CMRR and distortion) of the INA quite seriously... I fell back to inject the corrective signal at the front end.

After all, I think we had (and still have) a very fruitful discussion to which you gave the main input. Thank you!

EDIT: thx for the link, I just flew about it... surely intersting comment from some senior designers...

-Klaus
 
Hi Klaus,

KSTR said:
Hi Tom,

The input RC I just took as some starting point for a reasonable signal phase roll-off at LF. In some sense a DC-servo, besides removing output offsets, works like an input cap without actually having one in the signal path (still with caps in the signal path but with very reduced impact).

OK. So, then, what reasons might there be for NOT increasing the correction-time for a DC Servo? Or, rather, is there some reason that we SHOULD limit it to <= about 2.25 seconds? Or can we go to 5 or even 10 seconds, without any problems? (Because that would make it much easier to minimize the "re-injected AC" problem.)

KSTR said:

This AC cancellation stuff seems a bit controversial to me, adding several op-amps might not give too much net improvements in signal quality. That would have to be proven with real circuits (as I feel the typical op-amp models might be a bit weak at distortion issues).

I understand. And I have not ever built one, yet, although Glen Kleinschmidt apparently has built some that way. Maybe he will comment, here, again, on that.

But, if the correction time can be extended, we shouldn't need the ac cancellation stage.

KSTR said:

I'll try to recreate your findings in LTSpice as soon as I find the time.

No time pressure. No worries. It's just interesting. And I am learning a lot.

But, anything we can add, here, will be archived, and might help someone else, in the future.

KSTR said:

Aside: I've already had my share of problems using servos with IC instrumentation amps, when connecting a servo's output directly to the REF input (with INA103's, e.g.). There the output impedance charateristic degraded the AC perfomance (CMRR and distortion) of the INA quite seriously... I fell back to inject the corrective signal at the front end.

Oh! What fun! :)

KSTR said:

After all, I think we had (and still have) a very fruitful discussion to which you gave the main input. Thank you!

Yes, this discussion has been quite fruitful, and should also benefit future DC Servo designers.

Thanks. But your and others' contributions have been at least as significant as mine.

KSTR said:

EDIT: thx for the link, I just flew about it... surely intersting comment from some senior designers...

-Klaus

Yes, although it was just a bit frustrating to see that so many were not realizing how small the re-injected AC could be, with a large-ratio resistive divider and a reasonable limit for the maximum correctable offset (and good choices for the integrator's and filters' time-constants). I hope this thread can help, with that.

------------------------

So, I have only a few remaining questions, for everyone:

-----------

1. Can we make the DC Servo's offset correction take more time, without any penalty? i.e. What would be a reasonable MAXIMUM correction time?

If something like 7 to 8 seconds for 90% correction is acceptable, then we should be able to virtually eliminate any possibility of re-injected AC causing any distortion, since we will be able to get it to be down by at least 110 dB or so, at 20 Hz.

-----------

2. What WOULD be a good goal, for the levels of the re-injected AC, at low frequencies (where they are largest)?

Do we really need to be at -110 dB at 10 Hz? Or is -110 dB at 20 Hz "good enough"? Or is -80 dB at 20 Hz OK? Or is it good-enough when Spice shows zero additional THD, due to the re-injected AC?

-----------

3. What is a good way to estimate the value that we should set, for use in the DC Servo Design process, for the Maximum Correctable Offset? Or can we just say something like "60 mV for a preamp" and "300 mV for a power amp".

It seems like it should vary with the power rails' voltages, also; maybe something like "1% of half the difference between the two supply rails"? Or what? Is there any "rule of thumb"?

Or maybe it needs to be evaluated on a case-by-case basis, if it is to be minimized so that the design can be optimized for minimum re-injected AC.

-----------

Thanks again, Klaus!


- Tom Gootee

http://www.fullnet.com/~tomg/index.html

-
 

GK

Disabled Account
Joined 2006
AndrewT said:
Hi Glen,
Tom & I discussed this point and we came to an agreement that the DC null should be done cold. Then the DC servo corrects for warm up drift.
Are you in agreement with this or do you implement this differently?
ref, posts 19, 20 &29.


OK, I only skimmed through the thread, so I missed that bit.
This thread seems to be growing at an expotential rate.....
If I get the time in the future I'll draw up / post my AC cancellation DC servo.

Cheers,
Glen
 
What is the significance of having a peak in a DC-Servo'd amplifier's closed-loop frequency-response magnitude, at very low frequency? For example: 1.8 dB extra at 160 mHz, falling back to 26.35 dB (i.e. flat again) by about 700 mHz (and, on the other side, rolling off to 0 dB at 2.7 mHz (20 dB per decade), as phase transitions smoothly from 0 deg at 1 Hz to about -0.875 deg at 575 mHz and then to almost 90 deg at 1 mHz.).

Could this cause any problems?

I think that the pre-filter before the servo's integrator is causing this. But I don't know any other way of preventing the integrator from saturating (trying to exceed the power-supply limit), while still getting a reasonably-fast response and good AC rejection.

I did see an interesting appnote about integrators, at analog.com (AN-357), but didn't find a solution, there, yet.

------------- More DC Servo developments:

I have been experimenting (in LT-Spice) with using second-order passive pre-filters and post-filters for the non-inverting integrator in a DC Servo, in a non-inverting power chipamp circuit. (Actually, so far, I've just been using two cascaded RC lowpass filters, for each filter.)

Even with a relatively-fast servo response, giving 90% correction within 3 seconds, and zero overshoot, I have been able to get the AC level in the servo's feedback down to under -110 dB at 10 Hz:

AC Level in DC Servo's Feedback:

0.1 Hz: -3.88 dB
1 Hz: -40.9 dB
10 Hz: -110.8 dB
20 Hz: -134 dB
100 Hz: -190 dB

So, for example, with a 20 Hz sine signal and about 60v p-p output into 8 ohms, the gain-of-21 (10k and 499 Ohms) chipamp's negative input would have about 2.9 V p-p on it. And the servo's feedback would be injecting only about 0.55 uV (microvolt) p-p of 20 Hz into the 2.9V p-p inner-loop feedback signal. And, with the two second-order low-pass filters in addition to the integrator, the servo's injected feedback is almost in phase with the inner-loop's feedback (although that shouldn't even matter, with such low levels of AC being fed back).

I will try to post more, as I get time to work on it.

- Tom Gootee

http://www.fullnet.com/~tomg/index.html
 
Hi Tom,
removed the op275 line (blank line remains).
The sim runs. :cool:
I see the non flat response.
I tried the Klaus method and got competely lost.

I recall Dr Cherry offering a compensation method @ low frequency that used pairs of caps/resistors in the feedback loop that extended the very LF response down below audio. I think he showed that this too peaked slightly but if my memory is correct he said that by moving the peak down to about 1.6Hz, it is inaudible.
You are talking another decade below his suggestion.

How do I run the time display.
I want to see the effect of a step DC input.
Can this then be altered to show how the servo would track a slow ramping DC input? This would mimic an actual power amp as it warms up.
 
Hi Andrew,

You can model a ramp by using a pulse with a long rise time. The voltages source properties dialogue can be invoked by right-clicking on the source, then "advanced", then select "Pulse" (also "Exponential", maybe). Then you do a .tran analyis. This could be expanded to sim a offset/drift source, probably better of sinusodial type, directly at one of the op-amp inputs. See also LTSpice Help, LTSPice-->Circuit Elements-->Voltage Source. On can even link a .WAV file to a voltage source, with very a LF rumble...

For experimenting you might want to revert to the built-in models for LT's op-amps. Op-amp params are not very critical in the DC/LF range, one just needs to have enough open-loop gain. And check the examples provided with the prog (that's what I do, still) for a feel how this beast of a software can be tamed...

- Klaus
 
Hi Glen,

I look forward to see your cancellation circuit if you are willing to share. AFAIK you're in the low-level sensoring business so no doubt you have something serious.

My scepticism on cancelling methods for audio is the dirty nature of the residual one might end up with. Here of course we are already subtracting small quantities from each other so it probably wont matter much.

- Klaus
 
Hi Tom,

I'm about to think this all over again, right from the beginning...

I can see no other reason for the AC feedthrough to be as low as possible than to assume significant distortion in the servo, be it the op-amp itself or its associated components (cap parasitics, mainly).

As far as I see it (would need to do the math in detail, of course), with a plain 1st-order servo we have exactly the same transfer function of the signal amp as an input RC-coupling would have, plus we can cancel output offsets. For noise and feedthrough optimization, a post filter (simple RC) seems to be a good choice. I doubt a reasonable amount of overshoot from the additional phase lag will do any harm, but we could split the poles significantly if we lower the effective servo time constant (not just its R*C) and rise the post filter corner if that is an issue. Still we would have the additional -20dB/dec roll-off in the audio band. As an effective -3dB point fot the signal gain, from the servo action, I think around 0.1Hz might be a good compromise, regarding signal phase, response time and feedthrough attenuation.

Regarding catch range, I'd say, besides the consideration of worst-case DC values for input and output offsets, one should check that a, say, 5Hz or 10Hz full-scale signal will not saturate the servo, just to be on the safe side concerning deliberate input signals. I forgot to look at that in my circuit. Full-scale (6Vp input, x3 gain, 20V supplies) signals below 20Hz would clip the servo right away... lowering the corner to 0.1Hz (130k, 220nF) would meet a 5Hz target (5.6Hz, actually), having 2V headroom on the supplies and a DC offset catch range of a little more than 100mV/300mV. Also, input common mode voltage is a issue with a non-inverting servo circuit, which would swing almost +-13V @ 5Hz in my case. And here Andrew made a good point: if we ever encounter phase reversal from the servo op-amp we are in serious trouble. From the viewpoint of headroom issues a lower servo R*C is a good thing. To get the same signal corner freq and step response, we could decrease the injection R accordingly, increasing DC catch range as well (at the cost of increades noise, maybe)


Concluding, I'd say I would rather have some AC if we can get it clean and distortion-free than trying to reduce it with a lot of components that might add their own coloration. This leads to a solution like this (if we assume to be in the cost-is-not-an-issue camp):
- 1st-order servo, inverting, using an OPA627-quality chip, bulk metal R and teflon foil C. Inverting mode is beneficial for distortion and CM issues (the latter easily to clamp). Maybe a clamp of the intergrator itself is also a good thing to have, though it seriously complicates matters
- post filter, again bulk metal and teflon.
- execellent supply/bypassing and layout. It's clear that the servo needs as much attention to this as the signal amp.
- depending on the main amp config (I'd prefer inverting there, too) injection of the servo signal in the proper way, and if we have offset pins available on the main amp one could use these also. In any case we'd need a buffer / low impedance source for inverting servo config because we have to inject at the +IN of the main amp unless we can use its offset pins and run it non-inverting.

- Klaus
 
AndrewT said:
Hi Tom,
removed the op275 line (blank line remains).
The sim runs. :cool:
I see the non flat response.
I tried the Klaus method and got competely lost.

I recall Dr Cherry offering a compensation method @ low frequency that used pairs of caps/resistors in the feedback loop that extended the very LF response down below audio. I think he showed that this too peaked slightly but if my memory is correct he said that by moving the peak down to about 1.6Hz, it is inaudible.
You are talking another decade below his suggestion.

How do I run the time display.
I want to see the effect of a step DC input.
Can this then be altered to show how the servo would track a slow ramping DC input? This would mimic an actual power amp as it warms up.

Hi Andrew,

You can switch between the time and frequency (and other) simulation modes by selecting from the menu: "Simulate", then "Edit Simulation Cmd", then either "Transient" or "AC Analysis". (Note that the very first time you do that, e.g. in a new schematic, you would then also need to click on the schematic, afterward, to place the resulting Spice-directive text, anywhere on the schematic.)

- Tom Gootee

http://www.fullnet.com/~tomg/index.html
 
KSTR said:
Hi Tom,

I'm about to think this all over again, right from the beginning...

I can see no other reason for the AC feedthrough to be as low as possible than to assume significant distortion in the servo, be it the op-amp itself or its associated components (cap parasitics, mainly).

As far as I see it (would need to do the math in detail, of course), with a plain 1st-order servo we have exactly the same transfer function of the signal amp as an input RC-coupling would have, plus we can cancel output offsets. For noise and feedthrough optimization, a post filter (simple RC) seems to be a good choice. I doubt a reasonable amount of overshoot from the additional phase lag will do any harm, but we could split the poles significantly if we lower the effective servo time constant (not just its R*C) and rise the post filter corner if that is an issue. Still we would have the additional -20dB/dec roll-off in the audio band. As an effective -3dB point fot the signal gain, from the servo action, I think around 0.1Hz might be a good compromise, regarding signal phase, response time and feedthrough attenuation.

Regarding catch range, I'd say, besides the consideration of worst-case DC values for input and output offsets, one should check that a, say, 5Hz or 10Hz full-scale signal will not saturate the servo, just to be on the safe side concerning deliberate input signals. I forgot to look at that in my circuit. Full-scale (6Vp input, x3 gain, 20V supplies) signals below 20Hz would clip the servo right away... lowering the corner to 0.1Hz (130k, 220nF) would meet a 5Hz target (5.6Hz, actually), having 2V headroom on the supplies and a DC offset catch range of a little more than 100mV/300mV. Also, input common mode voltage is a issue with a non-inverting servo circuit, which would swing almost +-13V @ 5Hz in my case. And here Andrew made a good point: if we ever encounter phase reversal from the servo op-amp we are in serious trouble. From the viewpoint of headroom issues a lower servo R*C is a good thing. To get the same signal corner freq and step response, we could decrease the injection R accordingly, increasing DC catch range as well (at the cost of increades noise, maybe)


Concluding, I'd say I would rather have some AC if we can get it clean and distortion-free than trying to reduce it with a lot of components that might add their own coloration. This leads to a solution like this (if we assume to be in the cost-is-not-an-issue camp):
- 1st-order servo, inverting, using an OPA627-quality chip, bulk metal R and teflon foil C. Inverting mode is beneficial for distortion and CM issues (the latter easily to clamp). Maybe a clamp of the intergrator itself is also a good thing to have, though it seriously complicates matters
- post filter, again bulk metal and teflon.
- execellent supply/bypassing and layout. It's clear that the servo needs as much attention to this as the signal amp.
- depending on the main amp config (I'd prefer inverting there, too) injection of the servo signal in the proper way, and if we have offset pins available on the main amp one could use these also. In any case we'd need a buffer / low impedance source for inverting servo config because we have to inject at the +IN of the main amp unless we can use its offset pins and run it non-inverting.

- Klaus

Hi Klaus,

Thanks for sharing your excellent thoughts.

I am skeptical of the idea of not needing to minimize the AC in the servo feedback (although I certainly hope that you are right!).

I had initially assumed that minimizing the AC was necessary because other people said so. But, thinking about it, later, I saw some reasons why I think it will matter:

There will always be some time-delay, through the servo, so that the AC in the feedback will not be perfectly phase-aligned with the amp's inner-loop feedback that it is mixed back into, possibly causing "time smearing" effects, which are reportedly more-perceptible at lower frequencies. (However, if you use an inverting configuration, this "should" not be an issue.)

Also, the AC response of the servo feedback varies with frequency. So, it could change the amp's output in a frequency-dependent way.

Looking at it another way: you said "with a plain 1st-order servo we have exactly the same transfer function of the signal amp as an input RC-coupling would have". But one of the main reasons many people have, for wanting to use a DC Servo, is to AVOID the changes to the sound that result from using AC coupling.

I guess that you could easily try it, in LT-Spice, and use the .four directive, or an FFT of the Transient plot of the amp output, to see if the THD is increased when using a servo loop with a plain 1st-order integrator. You could try it with different values for the injection resistor/divider and see if the THD changes.

----------------

OK. I tried it. I see that with an inverting amplifier and an inverting integrator for the servo loop, it is certainly a whole lot easier to do than it is for the non-inverting case!!

I had to try a few times, to get any significant THD at all, even without a post-filter after the integrator.

I did manage to show that for higher feedback voltage levels (injected at the top of a resistor from the inverting amp's + input to gnd) the THD can increase. But, for any reasonable integrator time-constant and injection-resistor/divider value, the THD levels seemed insignificant.

I would still like to see how it could best be done for the non-inverting case, though.

- Tom Gootee

http://www.fullnet.com/~tomg/index.html
 
AX tech editor
Joined 2002
Paid Member
I would think that with ANY servo, if you go low enough in frequency, the phase shift will increase so that it will start to impact the freq response of the amp.

With very low frequencies the integrator servo will pass more and more of the signal, which will appear as an ordinary (additional) feedback signal at the input, thus changing the low-end freq response. Is that what you guys are talking about?

Jan Didden
 
janneman said:
I would think that with ANY servo, if you go low enough in frequency, the phase shift will increase so that it will start to impact the freq response of the amp.

With very low frequencies the integrator servo will pass more and more of the signal, which will appear as an ordinary (additional) feedback signal at the input, thus changing the low-end freq response. Is that what you guys are talking about?

Jan Didden

Hi Jan!

Well, yes. I think so, anyway.

What I'VE been trying to focus on, for the last few days, for the case of a non-inverting amp and non-inverting servo integrator, is making the servo loop pass only extremely-low frequencies (i.e. as close to "only DC" as possible), so that it "CAN'T" affect the amplfier, or the main signal.

Klaus's latest thinking, on that, _IF_ I have interpreted it correctly (Please correct me if I'm wrong, Klaus. Sorry if I "mangle it".), is that, at least in the case of an inverting amplifier and inverting servo integrator, having the lowest-possible amplitude of the AC in the servo's feedback is not so very important, and that it might be more important to minimize the distortion and noise in the servo's feedback signal.

In some quick 10 Hz LT-Spice simulations of the inverting/inverting topology, Klaus's idea seems to hold up quite well, in terms of not adding much THD at least, maybe because the AC in the servo feedback, and the input signal, have virtually no phase difference. (However, as I think you were pointing out, the lower end of the amp's frequency response might be affected.)

But I still tend to think: Why not just _eliminate_ "ALL" of the AC in the servo feedback, or as much of it as possible at least, since we only need the DC there, to correct an offset? i.e. Why take chances? If the amplitude of the re-injected AC is LOW-enough, it wouldn't matter if it was out-of-phase, or distorted, or "whatever". We wouldn't need to care.

With the passive 2nd-order pre- and post-filters for the integrator, in my latest simulated test circuit, the servo feedback's AC contribution is already down to about -110.8 dB, at only 10 Hz, for a 0 dB input signal (and 26.35 dB amp output), and goes down by 80 dB per decade, after that.

What's not to like?

And that servo loop's feedback is at about 0.4 dB at 1 milli-Hz, and has a -3dB point at about 93 milli-Hz. That particular servo corrects a maximum 300 mV output offset by 90% in under 3 seconds. But if I allowed one percent or so of overshoot, I could make it much faster.

By the way: Do you know of any reasons to care about the AC response of a closed-loop DC servo system, at sub-1 Hz frequencies (or even sub-10 Hz), if the system has a good stability margin, and a good step response (and a servo-feedback AC roll-off like I just mentioned)?

(Just for "archival" purposes: ) In the non-inverting amp & non-inverting servo integrator case, here is how the phase angles of the servo feedback's AC and the input signal are related, for several combinations of input and output filters for the integrator: With a plain integrator, they are in phase. But a non-inverting integrator can't work, by itself, in this topology. Adding only a 1st-order passive input filter for the integrator keeps it from saturating. But then the servo feedback and the input signal have a 90 deg phase difference, down to very low frequency (depending on RC's involved. Then, as f-->0, phase diff-->0.). Also-adding a 1st-order output filter makes them have a 180 deg phase difference (considering AC components, only, here). Changing the input filter to 2nd-order gives 270 deg AC phase difference. Also-changing the output filter to 2nd-order gives 360 deg phase difference.

- Tom Gootee

http://www.fullnet.com/~tomg/index.html
 
Hi Tom & Jan,

Uuuh, this thread keeps spinning our minds...

Just a few things:

I think people don't like caps because of their side effects (parasitics) but not because of the roll-off per se: A roll-off starting at or below 0.1Hz is most surely not audible, I mean that is 0.6 deg phase error and 50ppm gain error at 10Hz! That 0.1Hz corner is easier to achieve with a servo than with an input RC, regarding reasonable component values. That has been said in the other thread, think of the servo as a cap multiplier of sorts. And it catches output offsets.

I checked that transfer function thing for plain 1st-order (see aside below), it really is a 1:1 equivalent -- both gain and phase -- to an input RC if we have textbook perfect op-amps. Well, that's the "gotcha", there are no such op-amps. So the real question is, how much error do we get from the op-amps? The delay thing I don't agree upon; an integrator -- as long as it doesn't run out of gain on both ends -- has zero group delay because phase is a constant. And delay would not be important at low freqs anyway, some ns or µs delay won't hurt there

Another way one might try it is to filter with higher order, but not all real poles. Something like a higher order Bessel LP. Say 3rd order, we could have the 2nd-order part ahead the integrator with an inverting MFB filter, thus an inverting integrator, and the 1st-order part as the post filter. But, thinking of the delay, I see a potential problem here (also with any additional filtering), the group delay isn't quite zero until we reach x100 corner freq or so.

Gotta sleep over matters again, I think...


[aside]
The non-inverting integrator transfer function is A = 1/sRC.
With Rf := feedback resistor, Rg := gain resistor, Ri := servo injection resistor, iRx := current through Rx, Vo := output voltage, Vi := input voltage, we get for the non-inverting signal amp:
Vo = Vi + iRf*Rf,
iRf = iRg + iRi; iRg=Vi/Rg; iRi=-(Vo/sRC - Vi)/Ri,
Vo = Vi + Rf*Vi/Rg - Rf/Ri*Vo/sRC + Rf*Vi/Ri,
Vo(1 + Rf/Ri*1/sRC) = Vi + Rf*Vi/Rg + Rf*Vi/Ri = Vi(1 + Rf/Rg + Rf/Ri)

Finally as the output voltage for the non-inverting circuit we get:
Vo=Vi(1 + Rf/Rg + Rf/Ri)/(1 + Rf/Ri*1/sRC), this is a function of the form a/(1+b/sRC).

The RC highpass function is: Vo=Vi/(1+1/sRC).
Exept for a scale factor a and a frequency shift factor b this is the same result.

The frequency shift factor I have already mentioned, and the injection resistor loads the gain setting divider, increasing gain; the Rf/Ri part of the numerator term accounts for that.
[/aside]

- Klaus
 
Klaus,

Now you're sounding dead-on (i.e. exactly) right, and are starting to make real sense of it.

I can barely type any more, because, ummm, it's Friday night and I finally decided to take a break. But I look forward, very much, to continuing, later; if you're still game, that is. (I've been looking all over for my EE382 book, "Control Systems", too, but can't seem to find the damn thing, for over a month, now.)

This stuff used to be totally-routine, for me. But I've forgotten more than I remember, apparently. However, I am in the process of re-learning, with the help of you and others. (It's a great experience, actually, which I appreciate much more, now that I'm "older".)

"Later!"

- Tom
 
OK. That was a pretty-long break.

I thought that I might as well post the schematic for the power amp DC Servo for which I had reported some perfomance data.

This is for a non-inverting power amplifier, with a non-inverting integrator in the DC Servo feedback loop.


An externally hosted image should be here but it was not working when we last tested it.


Right-Click on the following link and select "Save Target As", to download the LT-Spice simulation files for the schematic above:

http://www.fullnet.com/~tomg/servo9.zip

------------------

Here is the frequency response for the servo feedback signal, compared to 0 dB for the input and (closely approximately) for the amplifier's negative input:

An externally hosted image should be here but it was not working when we last tested it.


------------------

And here is the transient response, for a 300 mV offset step input, starting at 0.2 seconds, while the amplifier is pushing a 10 Hz 60V P-P output sine into 8 Ohms. The top trace is the integrator output and the bottom trace is the derived feedback signal by itself (i.e. without the inner loop feedback):

An externally hosted image should be here but it was not working when we last tested it.


-----------------

Looking at the frequency response and distortion another way, here is the FFT (Fast Fourier Transform) of the servo's feedback signal, from the plot above, for the time period between 15 and 20 seconds:

An externally hosted image should be here but it was not working when we last tested it.


-----------------

Download the LTSpice simulation files and have some fun. I'm sure that major improvements could be made to that circuit.

I included a separate "Star Ground" area, so that different trace and wire impedances for ground returns could be inserted for each separate ground return path, in case anyone is interested in their effects.

Also included is the "Tian Method" for plotting the open-loop gain and phase from the closed-loop system. (You should be able to copy and paste that to other LT-Spice schematics. Note that when copying it, the voltage- and current-source names will probably have to be changed back to what they were, since LT-Spice will probably re-name them, automatically, when they are copied, which then won't work with the equation that's plotted. Make sure that you also get the plotted quantity, from the plot heading, after plotting it, or else use the same "plot settings" .PLT file.)

I've also been playing-around with inverting amplifiers with inverting-integrator servo feedback loops, and also with non-inverting-integrator servo feedback loops (plus an inverter). If anyone is interested, I could probably also post the LT-Spice files for those.

If you need the LTSpice simulation software package, itself, go to http://www.fullnet.com/~tomg/gooteesp.htm . The direct download link is near the top of the page. There's also a link to the excellent LT-SPICE discussion group, there, as well as a link to over 22,000 downloadable spice models, and some other LT-Spice circuit models that I have made available.

That's all, for now.

- Tom Gootee

http://www.fullnet.com/~tomg/index.html
 
gootee said:

Note, also, that raising the FB injection resistor's value always does better than raising the post-filter's R value, for reducing the AC in the feedback. So, lowering the post-filter's R (and increasing its C), and raising the injection R by the same amount, should always give an improvement in the level of the injected AC.

I was mistaken. I have found that that is NOT always the case.

- Tom Gootee

http://www.fullnet.com/~tomg/index.html
 
Tom, do you ever rest on these matters? :D

I'm currently doing a lot of spicing on a different topic (and noticed the importance of using the alternate solver of LTSpice, to get good results)...

This stuff here is still very interesting, especially when we dig into the realms of passive component parasitics. It would be interesesting to see the effect on output distortion when we model all the cap nonlinearities we are aware of (like capacitance vs. voltage/frequency, DA), besides the linear R/L/C stuff. I'd try that with textbook feedback gain cells first (e devices) to keep the op-amp behaviour out of the picture.

- Klaus
 
Status
This old topic is closed. If you want to reopen this topic, contact a moderator using the "Report Post" button.