DC Servo question...

Status
This old topic is closed. If you want to reopen this topic, contact a moderator using the "Report Post" button.
This is becoming a quíte useful thread! Tom, I downloaded your files, they will help a lot for redesigning my servos!

This poses to a next question: what happens, if you have say three servos in a row (say, phonoamp -- lineamp -- poweramp)
when the second servos corrects an offset that is wandering as the first servo works, and so on...

Rüdiger
 
I have thought of writing a design note about DC-servos because they follow a certain pattern in the design process. You can have 8 versions:

Inverting or non-inverting servo

Injection in inverting or non-inverting input of the main amp

Non-inverting or inverting main amp.

I'll guess you will notice when I actually have written something in the subject.
 
Onvinyl said:
This is becoming a quíte useful thread! Tom, I downloaded your files, they will help a lot for redesigning my servos!

This poses to a next question: what happens, if you have say three servos in a row (say, phonoamp -- lineamp -- poweramp)
when the second servos corrects an offset that is wandering as the first servo works, and so on...

Rüdiger

Hi Rudiger,

In LTspice, you can hit CTRL-C (same as Edit--> Duplicate), drag a rectangle around the circuit to copy it, hit the "scale down" button a few times (magnifying glass with a "-" sign in it), or maybe do the scale-down first (either way works), place the schematic where you want it, and then left-click to leave it there. (It also works when two schematics are open, to take the copied portion to the other schematic, then select Edit-->Paste.)

So you could very quickly and easily make a setup to simulate some cascaded servo'd amps. Of course, you would probably also want to use your actual amplifier models, at some point in time.

Just "off the top of my head", I'd say that, in "steady state" at least, three identical servos "should" usually track each other OK, in a cascaded system like that. Since there's no global feedback between the stages, and _assuming_ that the DC offset doesn't get amplified to an un-correctable value or a too-high value between stages (or at least not for too long!), the servos seem like they should work as they normally would. Of course, there could be some "propagation delay", due to their time constants, but, I think there would be no real possibility of instability, and probably no "bad behavior" assuming "reasonably-low" DC offset values to begin with.

HOWEVER, applying some bad numbers: a 20 mV 1st-stage initial output offset and a total gain of 50X in stages 2 and 3 would give an initial 1V offset at the 3rd stage's output! Unacceptable!

So maybe there COULD be a major problem, with such a setup. You would definitely want to at least run some transient sims (or do some simple offset/gain calculations) to find out how much initial maximum offset could be tolerated in each stage, for example, without unacceptable behavior, since any offset at the output of the first stage could be quite a lot larger at the output of the third stage, especially before the servos had time to slew-out any initial offset.

And I don't know what your stages' initial offsets might be. So it's probably time to start thinking about having a relay on the output (of every stage, maybe?), with a very simple control circuit that would send the output to the next stage ONLY when the DC offset was below a certain threshold (and would also cut OFF the output whenever the DC output offset rose above a selected threshold), maybe even also with a short time delay before closing the relay at Power-On (regardless of offset), to give the DC offset-measuring and servo circuit enough time to measure, and get rid, of the initial offset.

:-o But NOW I might have to start wondering if in-line AC-coupling capacitors are really bad-enough to justify this additional complexity. However, given that there could also be many un-related fault conditions, for which an output-offset-controlled cutoff relay might be very beneficial, e.g. so speakers possibly wouldn't be damaged or destroyed, and given that it would also automatically prevent "speaker thump" at power-on, it actually is starting to "sound" like a good idea. I wonder if the DC offset could be averaged or integrated fast-enough for it to work well-enough, in most cases (I'm thinking of a circuit fault or failure that suddenly causes the amplifier output to slam to one of the power rails' values.)

[(Mind is wandering...) There's even a maybe-"better" (in one sense, at least) solution that would involve HAVING the AC-coupling capacitors, but using the relay to short around them, whenever the DC offset is low-enough!]

- Tom Gootee

http://www.fullnet.com/~tomg/index.html
 
Dxvideo said:
This topic is becoming non-understandable to me. I am leaving. Decided to put some capacitors on signal path. :xeye:

Oh! I'm sorry, Dxvideo! This is/was your thread!

I apologize for getting "carried away" while discussing "servos in general", and diverging from discussing your current need, which was why you started this thread.

I do hope that you got the information you needed, from the first part of the thread. But, if not, please feel free to email me, or post again, and I will be very glad to try to help you to get a good, working servo design, with the components that you have available.

Please note that my last post was being written when your last post was made and I didn't see yours until after I'd posted my further babblings. Again, I'm sorry.

- Tom Gootee
 
peranders said:
I have thought of writing a design note about DC-servos because they follow a certain pattern in the design process. You can have 8 versions:

Inverting or non-inverting servo

Injection in inverting or non-inverting input of the main amp

Non-inverting or inverting main amp.

I'll guess you will notice when I actually have written something in the subject.

Hi P-A,

That's a good idea!

I wonder if it might also be a good idea to try to formally incorporate into the DC servo schemes (or maybe at least mention) all of the various offset-correction schemes that are shown on pages 6 and 7 of AN-31 from http://www.national.com .

I hope that you'll let us know, if you do write such an Application Note.

- Tom Gootee

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

I examined the Gootee's web site.. However I am confused.
I will use 3 x gain for preamp. So for a shortcut solution;
As Damian's application for LT1201..
I want to use Damian's circuit with OPA134 instead of LT1201 and LF411 (or 412) instead of OPA604..
Do you think this is suitable for that opamps?
I am not sure, because in Spice analyse I could run this circuit with ideal op-amp sub circuits, however with OPA134 and LF411 it doesnt look like working. I dont know the reason but thats the situation.

Another way is to use MKP type caps on signal path. Do you recommend that?

Thx

Hi Dxvideo,

What problem was there, when trying to simulate the circuit with the LF411 and OPA134?

- Tom Gootee
 
Andrew, et al,

AT LEAST TWO ERRORS I MADE:

#1 -------------

I posted some erroneous information, in paragraph 6 of post #19 of this "DC Servo Question..." thread:

When I gave the times for the speed of the servo's correction, I was looking at the results for a servo circuit that was different from the one I have had online, at http://www.fullnet.com/~tomg/gooteesp.htm .

In post #19 I quoted full correction after "almost 9 seconds" and I quoted 90% correction after about 3.6 seconds.

The correct numbers are: Full correction after about 6 seconds and 90% correction after about 2.14 seconds.

#2 ------------

The DC Servo circuit that I have had posted on my webpage, mentioned above, is VERY difficult to get to run, well, as configured, with Ltspice.

The simplest solution is probably to eliminate (replace by wires) the inductors in the power supply lines, L1, L2, L7, and L8, in the upper-left portion of the schematic.

It is then permissible (and probably advisable) to delete the spice-directive text line that sets gmin, i.e. ".options gmin=1e-013" can be deleted (or could be "commented-out" by adding a semicolon in column 1).

I will soon post a corrected version of the schematic, in place of the one that's there now, and will upload a new Ltspice file to the existing link.

- Tom Gootee

http://www.fullnet.com/~tomg/index.html
 
AndrewT said:
that sounds like support for the philosophy that the output offset should be minimised BEFORE activating the DC servo.

The question that follows is:-
would it be better to minimise offset at completely cold and let the DC servo zero out the warm up offset?
or
set the warmed up offset to zero and hope that the first turn on offset is low enough and short enough to be tolerable.

I prefer the first alternative.
But, what if one switches on a pre-warmed amplifier?

Hi Andrew,

I definitely prefer the first alternative, too, since the initial DC offsets would seem to be the worst problem (and especially if considering a cascaded system of servo'd amplifiers), because the servo feedback loop's integrator and filter(s) need significant time to acquire the DC offset level.

Whether or not it might then be a problem, when switching-on an already-warm amplifier which had its DC offsets optimized for cold-start conditions, would depend on the magnitude of the difference between the warm offset and the cold offset. I don't have a good intuitive feel for whether the difference might be significant. But, assuming that it might be, at least in some cases, the only solution I can think of, offhand, would be to use temperature-compensation circuit techniques to make the cold and warm offsets be about the same. A single tiny thermistor, and maybe an additional resistor or two, should be all that is needed, per channel. And there are probably other good or better ways of doing it.

----

I USED TO "sort-of dislike" the idea of having to try to use a thermistor network to temperature-compensate a circuit.

But THAT was BEFORE I found the EPCOS downloadable library of Spice thermistor models, and before I learned that Spice has a steppable TEMP parameter that automagically makes all of the semiconductors and thermistors vary their behavior realistically versus temperature, and before I learned how to use LTspice to fairly-easily design a linearized thermistor network (by "measuring" a thermistor model's resistance at several temperatures with a trivial simulation), and learned how to apply it to compensate a circuit for almost no change in response over a wide temperature range.

But NOW, after doing and learning all of THAT... I no longer "sort of dislike" it. Now, I ABSOLUTELY *HATE* the idea of having to try to use a thermistor network to temperature-compensate a circuit!

----

Ha! Just joking! Sorry!

Tempco compensation with thermistors is not always easy, certainly, especially for any less-than-trivial, and maybe high-precision circuits, and with, say, more than several discrete transistors, and maybe even Gilbert Cells and current mirrors and stuff like that (although there may be much-better ways of tempco-comp, for some of those, than thermistors, of course).

But, for a monolithic (i.e. opamp or chipamp) amplifier's output's DC offset, it MIGHT be relatively easy to design a simple temperature compensation add-on for any of the common amplifier circuit topologies, I think. BUT(!), that's ASSUMING, at the very least, that the temperature variations of the parameters of the original (i.e. un-(tempco-)compensated) amplifier circuit are at least somewhat "uniform", in magnitude and, especially, in the direction they go versus the direction of the temperature change, even between different units of the same IC model. And I don't happen to know if that is always the case, or even if it's usually, or ever, the case. If it were the ("good") case, then having actual measurements of the output offset variation versus temperature (and maybe also measurements of the chip's inputs' voltages and currents, or at least the voltages and currents of the resistors around the chip), for a complete amplifier circuit (and preferably for several different "identical" sample units, and having the schematic for the amplifier circuit, would be a good starting point for the temperature-compensation designer.


ALTERNATIVELY, we could simply always HEAT the amplifier IC to the design temperature for the offset, before powering the speakers. It could even have a "standby" mode, where it was always kept at some nominal operating temperature, by having some easily-heatable component attached to it.

----

Regarding your first statement, Andrew, I just meant that maybe the amp/servo combination shouldn't be connected to the speakers (or to another amp) until after the servo had removed most of the output's DC offset, at power-on. (In a later post, I also suggested using the output's DC offset level to trigger the output relay (both on and off), rather than using a plain time-delay scheme.)

Cheers!

- Tom

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

With spice analyses, If I use ideal op-amp model then It gives 1Hz to 100Khz frequency response all flat... This is the application circuit;
An externally hosted image should be here but it was not working when we last tested it.

And this is the result;
An externally hosted image should be here but it was not working when we last tested it.

Then when I replace the ideal op-amps with OPA134 and LF411, the result changes like that;
..... Sorry I've noticed that I made a mistake while I was changin the components.. They give the same result.
Sorry again.
 
So can we say; DC servo correct errors only if theyre not from the source is it? (This is a stupid question, if its from the source then its not an error! Anyway,) Thats a bad news! It doesnt usefull as an input cap.
I have two questions;
- If DC servo works as an error corrector, then we must use precision op-amps like LT1011 etc. in this stage. So why were looking for audio grade opamps for that position?
- Can we design a global DC servo for a two stage amplifier, like buffer plus power op-amp? Means If I have an OPA134 buffer (or preamp) and a LM3886 power amp just after it. Then may I take the DC servo from the speaker output and give it to the OPA134s input? And in this case, should we use local feedbacks for each amplifier or use a global feedback line as DC servo?

I hope these are clear. I am not good at explaining the complex things...
 
Hi,
I realise that English is not your native language, so I will try to rephrase that previous statement.

Any output offset is monitored by the DC servo.
It extracts the DC portion and inputs a bit of the DC back into the input.
The resulting output offset is less.
It does not matter where the offset comes from.

What does matter is that the output pin of the servo opamp does not get too close to either supply rail.
Closeness of the output pin to supply rail voltage indicates that the servo is applying a high value of correction to null out the output offset.

Try adding a small DC offset to the AC input signal to the power amp. Monitor the servo opamp output pin voltage. See if you can detect a pattern.
 
Dxvideo said:
If DC servo works as an error corrector, then we must use precision op-amps like LT1011 etc. in this stage. So why were looking for audio grade opamps for that position?
because a cheap audio opamp like the lf411 does the job well.
The servo opamp needs low offset and low offset drift as stated before. If the two filters are added then most other performance parameters have little effect on the audio signal.

Dxvideo said:
Can we design a global DC servo for a two stage amplifier, like buffer plus power op-amp? Means If I have an OPA134 buffer (or preamp) and a LM3886 power amp just after it. Then may I take the DC servo from the speaker output and give it to the OPA134s input? And in this case, should we use local feedbacks for each amplifier or use a global feedback line as DC servo?
You should be able to simulate the effect of applying the correctionaround the cascaded loop.
I would play safe and apply the correction around just the output opamp (chip power amp).
 
Hi Dxvideo,

I have simulated your DC Servo circuit, with LT-Spice, using +/-15v supply rails and OP275 opamps, for now, just as a test.

I inserted an DC voltage source (the offset) in series with a 1V 0-to-peak 50 Hz input sine voltage source (lower frequencies simulate faster, usually).

The first thing I see is that R12=47K is way too big, for your present configuration. With R12=47K, the integrator opamp U2 does not have enough range to servo-out more than about 30 mV of input offset. (That might be why the circuit seemed to work without adding much distortion, even without any low-pass filter before or after the integrator. i.e. The integrator simply wasn't contributing much of anything to the main amplifier's input.)

As AndrewT said, you should plot the U2 output voltage for a transient (i.e. vs TIME) simulation run. If the U2 integrator output voltage is close to the negative power supply rail (or, actually, close to the opamp's maximum negative swing for whatever voltage rails you have), then the integrator opamp U2 "can not go any farther", and its maximum offset-correction range has been reached, or exceeded.

So we could, now, simply "decide" what is the MAXIMUM input offset voltage that we want the circuit to be able to servo back to zero, and then adjust the value of R12, until the output voltage of the integrator opamp U2 approaches its maximum possible negative output voltage ONLY when the input offset voltage approaches the maximum correctable offset value that we decided to use.

Just for now, as a test, let us say that we want to be able to servo-out a maximum input offset of of 500 mV DC. So, I first set the DC value of 0.5V for the voltage source that is in series with the input signal sine voltage source. Then I run a transient simulation and plot the U2 output voltage versus time, and also plot the output voltage versus time. I see that, with +/-15v power supply rails, the U2 output voltage is something like 2.4 mV p-p, and its average DC level is below -14.2V, which is not changing. i.e. It is "pegged" to its negative limit. The output, at the same time, is not symetrical around the zero-volts horizontal axis (having 4.4V max and -1.6V min).

So I lower the value of R12, with a guess, to 1K, and re-run the transient simulation. NOW, the U2 output voltage has an average DC value of about -5 Volts, and the output voltage is centered around the 0-volts axis. So that R12 value WOULD work, for a 0.5v maximum input offset (and for even more).

That might be fine. But, if we want to get the most accuracy, and assuming, for now, that we did finally decide that 0.5v was a large-enough maximum offset to be able to correct, then we might want to increase the value of R12 so that the U2 integrator opamp would use more of its available output voltage-swing range. For example, increasing R12 to 2.2K would make the U2 output voltage's average DC value about -11 Volts, for a 0.5v input offset.

Now, it is, normally, absolutely necessary to have at least a low-pass filter for the output of the integrator opamp U2, because with the lower R12 value, which is needed to get enough correction range, there is now a much larger component of the main U3 opamp's input that is coming from the integrator. And the integrator's output voltage is 90 degrees out-of-phase with the main amplifier's output and its + input's signals. So, mixing the U2 integrator output and the U3 input WILL produce distortion. The only question is: HOW MUCH distortion will we allow it to contribute to the final output?

Another way to look at that: We only NEED and want the DC component of the integrator's output, for the purpose of servoing-out any DC offset voltage. So we should try to remove as much of the AC component as possible, to minimize the distortion that it will cause.

So, for now at least (i.e. without considering changing something else in the circuit, instead), I would change R12 to be two 1K resistors in series, and then connect a capacitor to ground from between the two 1K resistors. For this discussion, I will use C7 to name that capacitor.

The value of C7 must be chosen. And the value of C5, the integrator capacitor, could also be changed.

But, before thinking about setting the values of C5 and C7, I made a change to my input offset voltage source: I made it apply a DC voltage step, after 0.2 seconds, instead of just a constant 0.5v starting at 0 seconds. So, now, the offset voltage source is 0 volts DC until t=0.2 sec, when it changes to 0.5v DC.

Using the stepped offset voltage might give us a better picture of how the integrator is working. And it actually IS quite different than what we saw with the constant 0.5v that started at time=0. Even with the new C7 removed from the circuit, the TPv1 output voltage takes well-over 10 seconds to slew back to an average DC value of about 0 volts, after the 0.5v offset step is applied! (I only ran it for 10 seconds. It wasn't there, yet.)

And I see that we have an AC ripple component at the U3 integrator output of about 37 mV p-p.

I'm guessing that we might want to first increase the speed of the integrator, and then use whatever low-pass filters that we find to be necessary and sufficient, for the output and/or input of the integrator.

Changing the integrator capacitor C5 to 220nF (a nice value that is available in a very small size polypropylene in the WIMA MKP2 series), and with the new C7 still removed from the circuit, the Tpv1 output voltage now takes about 10 seconds to have its DC offset completely corrected back to zero, and is 90% corrected after about 2.7 seconds. And now the U2 integrator output ripple is about 83 mV p-p.

As a test, I changed C5 to 100nF. That made the servo response time about 1/2 of what it was with 220nF. Now, the U3 output AC ripple is about 183 mV p-p.

I'm running out of time, for now. Sorry.

At any rate, you can continue, from this point, by testing different values for C5 and C7, maybe starting with 100 nF and 22 uF. You could also make an input low-pass filter for the integrator: Try splitting R5 into two series resistors of 0.5Meg each, and placing a small capacitor to ground from between those resistors, while looking at the transient simulation runs.

One goal is to make the AC ripple, that gets back to U2's input from the integrator, a small as possible, while still having a stable system that is fast-enough.

Make sure that you also run some "long-time" simulations, eventually at least, in case there's a very slow instability that makes the whole thing drift to one of the rails after a long time.

Also, it's a good idea to include capacitors' ESR (Equivalent Series Resistance) in series with any electrolytic capacitors. For polyproylene, as a guess, you can probably just use some low R, like .005 ohms, and maybe .05 ohms for polyester.

Also, later, if you ground the input and then check the DC offset at the U3 output, you can check to see if changing R1 and R2, while keeping R1 x R2 the same, changes the output offset toward zero. Note also that you could change R3 (and maybe R9), first, and see what happens to the U3 output offset. After that (or maybe iteratively), you can check the DC offset of the U2 integrator output, and see if you might be able to lower it toward zero by changing R5 and C1, but such that R5 x C1 stays about the same, and keeping R11=R5.

More later.

- Tom Gootee

http://www.fullnet.com/~tomg/index.html
 
Status
This old topic is closed. If you want to reopen this topic, contact a moderator using the "Report Post" button.