DC Servo question... - Page 12 - diyAudio
Go Back   Home > Forums > Amplifiers > Chip Amps

Chip Amps Amplifiers based on integrated circuits

Please consider donating to help us continue to serve you.

Ads on/off / Custom Title / More PMs / More album space / Advanced printing & mass image saving
Reply
 
Thread Tools Search this Thread
Old 23rd September 2007, 12:49 AM   #111
gootee is offline gootee  United States
diyAudio Member
 
Join Date: Nov 2006
Location: Indiana
Blog Entries: 1
Oops. Never mind!

That version works just as well WITHOUT the differentiator circuit attached!

Sorry about that.

I originally had a similar circuit that corrected large offsets within about 1.5 seconds. But it was difficult to control the risetime. After I clamped it with the zener, I forgot to check the behavior with the entire current-injector removed.

With the whole current-injector subsystem disconnected, the correction time is still about 9 seconds, still with a slight overshoot.

Well, actually, the one I'm looking at, now, has had C6 changed to 47 uF, and R24 changed to 22K.

The feedback's AC component is now only 24 nanovolts p-p(!), riding on a DC feedback level of about 95 mV, for the 2V offset case, with 10 Hz 3v p-p input and 60v p-p output. That's -163 dB at 10 Hz!

At that level, who cares if electrolytic capacitors were involved, or even if it's distorted?

That servo circuit, _without_ the differentiator circuitry, is still not a refined design, by any means. But it seems to almost work fairly well, as it is, which surprises me. However, I think it needs to at least be a little more stable, since it rings a little, after overshooting. But it would be nice to be able to keep those sub-100-nanovolt (or at least sub-microvolt) levels of AC in the feedback.

Anyway, I guess the current-injector idea might be useful, if a faster correction time were needed. But it would require some more work.

- Tom
  Reply With Quote
Old 24th September 2007, 12:42 AM   #112
KSTR is offline KSTR  Germany
diyAudio Member
 
KSTR's Avatar
 
Join Date: Jul 2007
Location: Central Berlin, Germany
Hi Tom,

Funny active load you've built, at the op-amp output

I tried a simple (but rather useless) speed-up trick: shunt the resistors of the various RCs (or some of them) with antiparallel diodes (with a series resistor included). Works well, when looking at the step response, but it's still futile as we can't assume that the audio itselfs doesn't contain similar transients. And I don't like the idea to have any nonlinear stuff around, when the goal is to build something very linear, initially.

I think with the basic integrator using a decent op-amp plus a few passive RCs around it, with the best capacitors we can reasonably choose, we already have a good and useful approach. A lot of fine tuning seems necessary, like choosing the time constants: slow enough to have no effect on the audio -- think of short kickdrum pulses which tend to have "short-term DC", but fast enough to correct any "real" offset changes from thermal transients and so on. Also, the optimized way of injection and the selection of catch range seems critical, we want the integrator working in a useful range of its output voltage capability to get the max performance (noise, e.g.) the chip is capable of (we might load the o/p into class A also). Thus a serious voltage divider (combined with the post-filter) looks very advisable.

I still don't see too much to be gained in trying to get the feedthrough down when this introduces a lot of additional complexitiy (and thus some parasitic effects we just forgot and/or overlooked to sim/measure). If the feedthrough is clean, I don't care much about it and most probably a real integrator's parasitics will overide any sub-ppm levels anyway (1/f noise, PSU noise residual, any signal pickup in the layout etc)

As for now, I think that's all, from my side. I will try some of this stuff in my next small signal project where I will probably use the THS4031 which has quite some offset.

Again (and @all), thanks for sharing your thoughts and ideas.

Regards, Klaus
  Reply With Quote
Old 24th September 2007, 03:51 AM   #113
gootee is offline gootee  United States
diyAudio Member
 
Join Date: Nov 2006
Location: Indiana
Blog Entries: 1
Quote:
Originally posted by KSTR
Hi Tom,

Funny active load you've built, at the op-amp output

I tried a simple (but rather useless) speed-up trick: shunt the resistors of the various RCs (or some of them) with antiparallel diodes (with a series resistor included). Works well, when looking at the step response, but it's still futile as we can't assume that the audio itselfs doesn't contain similar transients. And I don't like the idea to have any nonlinear stuff around, when the goal is to build something very linear, initially.

I think with the basic integrator using a decent op-amp plus a few passive RCs around it, with the best capacitors we can reasonably choose, we already have a good and useful approach. A lot of fine tuning seems necessary, like choosing the time constants: slow enough to have no effect on the audio -- think of short kickdrum pulses which tend to have "short-term DC", but fast enough to correct any "real" offset changes from thermal transients and so on. Also, the optimized way of injection and the selection of catch range seems critical, we want the integrator working in a useful range of its output voltage capability to get the max performance (noise, e.g.) the chip is capable of (we might load the o/p into class A also). Thus a serious voltage divider (combined with the post-filter) looks very advisable.

I still don't see too much to be gained in trying to get the feedthrough down when this introduces a lot of additional complexitiy (and thus some parasitic effects we just forgot and/or overlooked to sim/measure). If the feedthrough is clean, I don't care much about it and most probably a real integrator's parasitics will overide any sub-ppm levels anyway (1/f noise, PSU noise residual, any signal pickup in the layout etc)

As for now, I think that's all, from my side. I will try some of this stuff in my next small signal project where I will probably use the THS4031 which has quite some offset.

Again (and @all), thanks for sharing your thoughts and ideas.

Regards, Klaus

Klaus,

Thanks for your efforts, and all of your help, and your many good insights. I too am about finished with servos, for now. I have grown weary of playing with them.

But, your mention of time constants reminded me that I never did find a satisfactory answer, about that.

If we only need to keep pace with the thermal changes, and don't want to respond to any transients within the music, then I think that we had better be looking at time constants that are much, much longer than we have been showing, maybe something like 30 seconds or more, for correction of a maximum offset.

Your mention of a kick-drum made me want to try simulating that. I tried injecting a small, short pulse, added to the offset, after the offset had been corrected. The result was a significant perturbation of the servo feedback and the output offset.

But, I don't know if what I injected is at all similar to what might be encountered in music. Without actually building and testing a servo, one way to try it with music, in the simulator, is to use a WAV file for the input. For Spice simulations, only LT-Spice has that capability, as far as I know. I will try it, and see what sort of time constant is required, to keep the servo from responding to the music.

Interestingly, LT-SPice can also output a WAV file. So we could then actually listen to the "before" and "after" versions of the music.

-------

I still think I don't agree that it's not extremely important to minimize the feedthrough of AC, in the servo's feedback to the amplifier. It seems to be the only way to ensure that the sound of the output (and the apparent gain of the amplifier) will not be affected by the servo, or will be affected minimally.

And now we also have to worry that any quasi-DC transients in the music will minimally affect the DC level from the servo, which will surely push the servo design even more deeply into the "no AC in the feedback" region.

I guess I won't really know what to think about that until I at least try simulating some servos with amplifiers that have WAV music files for their inputs. I should be able to simultaneously simulate two identical amplifiers with identical input signals, one with a servo and one without a servo, and simply subtract their outputs to detect any differences caused by the servo, as you showed in your last schematic. Then I may be able to see what needs to be done to minimize the differences. If in doubt about the significance of any effects on the output, I can also listen to both the original and the output WAV files, and compare them that way.

---------

Until I find out if a much longer time-constant is needed, attached is one last DC Servo design. This one's feedback is at -150 dB at 10 Hz, -185 dB at 20 Hz, -199 dB at 30 Hz, and stays below -130 dB over the entire audio frequency range. It has about a 10-second offset-correction time, with about 0.2% overshoot for a 2V offset. It uses only one opamp in the servo loop. Open-loop phase angle at 0 dB gain is about 69.6 degrees.

Attachment is a JPEG image of the schematic.

- Tom Gootee

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

-
Attached Images
File Type: jpg servo10.jpg (83.9 KB, 662 views)
  Reply With Quote
Old 24th September 2007, 03:57 AM   #114
gootee is offline gootee  United States
diyAudio Member
 
Join Date: Nov 2006
Location: Indiana
Blog Entries: 1
Attached is a small zip file containing the files needed to simulate the schematic above with LTspice.

(This one should run OK for you, Andrew!)

- Tom
Attached Files
File Type: zip servo10.zip (4.6 KB, 55 views)
  Reply With Quote
Old 27th September 2007, 07:12 AM   #115
gootee is offline gootee  United States
diyAudio Member
 
Join Date: Nov 2006
Location: Indiana
Blog Entries: 1
OK. I actually DID try a WAV music file, as the input signal for an LTspice simulation of a power amplifier with a DC Servo, very similar to the ones in my last-posted schematic. (If you want to use WAV file inputs and outputs in LT-Spice simulations, look in the Examples folder of the standard software distribution, and copy and paste the sources and then right-click on the WAV file name to edit it, in your own schematics.)

Changes I made to the amp/servo circuit: Unfortunately, maybe, I removed the buffers, U6 and U7, to try to speed up the simulation, which was quite slow, even with only 11025 Hz mono WAV file effective sampling rate. I also changed R13 and R17 to 30k, to raise the gain of the power amplifier(s) from about 20 to about 60, so that the peak output voltage's absolute value would be 30v. Then I also changed R12 from 8.2K to 50K, to make the servo correction time about 30 seconds, and to lower the dynamic range of the servo loop (since the offsets were relatively small, compared to those in previous testing). I also changed R2 and R21 to 499 Ohms. And I added 154.55k in series with R6, as well as changing the sum of R1, R4, and R22 to 2.0764 Meg, to get the power amplifier and integrator's offsets very close to zero, with the input grounded.

To try make it a somewhat-difficult job for the servo, I chose AC/DC's song, "Highway to Hell", and used a free program called WavePad to edit it down to just the first 60 seconds of the song, for the WAV file (to keep the total simulation time down to around 11000 seconds; yes, it's very slow; Maybe a lower sample-rate for the WAV file would be good to try.).

The attachment is a JPEG image of a transient simulation run's plots of some of the voltages of interest.

At first glance, it looks like the feedback signal might not be "smooth-enough". But, there's something I had not anticipated very well: The DC offset of the _input_ signal, from the WAV file, VARIES, significantly, versus time. This is good, for servo-testing purposes, since it could be true of many sources. And, in this case, it also helps to explain some (but maybe not all) of the apparent "roughness" and variations of the DC servo's feedback voltage's plot: i.e. The servo is attempting to track the changes in output offset that are due to the time-varying input offset.

I guess that I need to learn more about the LT-Spice .MEAS functionality, since it might enable me to totally automate the computation of data, or a metric of some sort, that could be used to quantify the performance of the servo, in tracking the changing offset.

But, for now, I used the plot window's mouse-zoom feature and the plot-averaging feature (i.e. Ctrl-Left-Click on a plot label to average the currently-zoomed portion of that plot), and got averages for specific time intervals, for the input voltage, the output voltage, and the output voltage of the duplicate amplifier that didn't have a servo.

Below is some of the data.

Voltages are in mV, Time Interval in seconds. Voltages are averaged over Time Interval, to give average DC Offset for that interval:
Code:
Time Interval     Avg WAV Input         Avg OUT      Avg OUT_NS

10-11               -1.2831              3.7606         63.45
9-12                -1.3936              8.5836         68.176
19-20               -3.0426              39.427         145.47
20-21               -3.1802              39.538         152.31
25-26               -3.5335              13.613         174.19
30-31               -3.6398              2.501          181.3
30.5-36             -3.6275              0.7479         180.97
30-48               -3.7529              1.5848         187.1
35-36               -3.7437              5.7218         185.99
40-41               -4.0689              12.024         201.15
45-46               -3.7659             -1.6601         188.25
48-49               -3.7671              1.6631         190.3
50-51               -4.1814              17.269         205.9
53-54               -4.607               26.481         225.69
55-56               -4.703               21.867         231.19
56-57               -5.6641              17.075         232.12
57-58               -4.553               8.1349         229.66
58-59               -4.7247              2.7743         227.9
59-60               -4.5195             -1.0866         225.78
57.8-60             -4.4995             -0.9678         224.78
I have not yet made a WAV file from the output. So I haven't yet been able to listen for differences between the input and output. And I don't know, intuitively, whether or not this level of output offset variability would typically be audible.

However, it now appears that a FASTER servo, rather than a slower one, might be better, since it could better-track any effects of a time-varying input offset, and should be able to stop the output offset from varying as much.

That's all, for now.

- Tom Gootee

http://www.fullnet.com/~tomg/index.html
Attached Images
File Type: jpg acdc_60s.jpg (85.9 KB, 555 views)
  Reply With Quote
Old 27th September 2007, 08:48 AM   #116
AndrewT is online now AndrewT  Scotland
diyAudio Member
 
Join Date: Jul 2004
Location: Scottish Borders
Quote:
Originally posted by gootee
..I actually DID try a WAV music file, as the input signal.....................
I have not yet made a WAV file from the output. So I haven't yet been able to listen for differences between the input and output. And I don't know, intuitively, whether or not this level of output offset variability would typically be audible.

However, it now appears that a FASTER servo, rather than a slower one, might be better, since it could better-track any effects of a time-varying input offset, and should be able to stop the output offset from varying as much.
Hi Tom,
I do enjoy sitting back and reading about K's & your labours of love.

I am not at all sure you are reaching the correct conclusion in that last paragraph.

We are trying to minimise the DC output offset of the amplifier.
We are also trying to remove the pass through of the audio signal to the inverting input so that we cannot hear the contaminating pass through signal.

Most importantly, we are trying to make the DC servo inaudible and let the music shine through.

Taking all those into account, I think that if the real audio signal has a varying second by second offset, then that offset is a part of the audio signal and should be presented to the speaker PROVIDED there is no risk of damage to the speaker.
Secondly, the need for speed is to prevent an amplifier induced error from damaging the speaker and maybe from damaging the quality of the wanted audio signal. A slow reaction speed does increase the risk of a delayed correction coming in too late and the speaker coming to some harm. But at the slow speeds you are using the output error you have given us is in the mV or at worst tens of mV. I see no damage limitation need here.
My original view was that correction needed to be of the order of 1second, but having followed this treatise, I am now a believer in the slower is better, upto some sensible limit.

I'm thinking time constants around 5 to 10seconds for the input filter and integrator and slightly shorter (faster) for the output filter. That is somewhat pre-empting my question about the ratio of frequencies to be adopted around the DC servo. I am beginning to suspect that this Q maybe becomes more important for cascaded DC servos where the two (or more) could be fighting against each other. Maybe you should be searching for that missing book.
Who else is conversant with control theory and practice?

Don't retire from the cause just yet, I'm sure there is more than me learning from your endeavours. Importing .wav files!!!!
__________________
regards Andrew T.
  Reply With Quote
Old 28th September 2007, 04:01 AM   #117
gootee is offline gootee  United States
diyAudio Member
 
Join Date: Nov 2006
Location: Indiana
Blog Entries: 1
Quote:
Originally posted by AndrewT
Hi Tom,
I do enjoy sitting back and reading about K's & your labours of love.

I am not at all sure you are reaching the correct conclusion in that last paragraph.

We are trying to minimise the DC output offset of the amplifier.
We are also trying to remove the pass through of the audio signal to the inverting input so that we cannot hear the contaminating pass through signal.

Most importantly, we are trying to make the DC servo inaudible and let the music shine through.

Taking all those into account, I think that if the real audio signal has a varying second by second offset, then that offset is a part of the audio signal and should be presented to the speaker PROVIDED there is no risk of damage to the speaker.
Secondly, the need for speed is to prevent an amplifier induced error from damaging the speaker and maybe from damaging the quality of the wanted audio signal. A slow reaction speed does increase the risk of a delayed correction coming in too late and the speaker coming to some harm. But at the slow speeds you are using the output error you have given us is in the mV or at worst tens of mV. I see no damage limitation need here.
My original view was that correction needed to be of the order of 1second, but having followed this treatise, I am now a believer in the slower is better, upto some sensible limit.

I'm thinking time constants around 5 to 10seconds for the input filter and integrator and slightly shorter (faster) for the output filter. That is somewhat pre-empting my question about the ratio of frequencies to be adopted around the DC servo. I am beginning to suspect that this Q maybe becomes more important for cascaded DC servos where the two (or more) could be fighting against each other. Maybe you should be searching for that missing book.
Who else is conversant with control theory and practice?

Don't retire from the cause just yet, I'm sure there is more than me learning from your endeavours. Importing .wav files!!!!

Hi Andrew,

Thanks for sharing your ideas. It is always good to hear from you.

I must agree that things that look like "transient DC offsets" are part of the music, and should not be tampered with.

I also think that any "long-term" DC offset should be removed. (I guess I might have to reconsider, if it can be shown that some music might have a DC offset that is purposely included, for good reason.)

(Everyone please note, too, that speaker and system protection is not the only reason for DC offset suppression. A DC offset also physically offsets the magnetic driver in a speaker, un-centering the speaker cone when there is no signal, and tending to tension it toward a non-centered position during dynamic operation, changing the sound that is produced. I still don't know how significant this effect might be, nor at what levels it might be significant. But I have heard anecdotal evidence that indicates that it "can be" audible, and moreso with some speakers than with others.)

When I first considered what you last said, I thought that perhaps the best solution would be to remove the effects of any input offset from consideration by the servo's integrator, by adding or subtracting (depending on the amplifier) the averaged input signal from the integrator's input, with the integrator's "main" input (from the power amp's output) having probably been resistively divided by the amplification factor, so the magnitudes would match. Simultaneously, one would probably need an open-loop offset control buffer at the input, to zero any offset that was present when no signal was being processed. That would allow the remainder of the servo system design to be mostly free from worry about affecting any "offsets" that were inherent in the music.

That may actually be the best type of approach (But I haven't though about it, much, yet, either.). But I think that almost the same thing could be accomplished by using only the amplifier output for the servo integrator input, AS LONG AS the overall servo time constant could be chosen properly. Perhaps the simulations with WAV file inputs will shed some light on what might be appropriate for a time constant.

It's also possible that a "dual time constant" servo might be the best solution. One part of the system could make sure that the long term average DC Offset was zero, while another part could be much faster but only actively affect the system when the offset was above a certain threshold.

I'll play with the WAV files, some more. (And I'll keep looking for that book.)

P.S. It turns out that recording the output of an LTspice simulation into a WAV file is even easier that using a WAV file for the input. And, "bonus!", it doesn't seem to slow anything down. You do have to remember that WAV files are normalized to a maximum of +/-1 volt, and divide the final output accordingly.

More later.

- Tom Gootee

http://www.fullnet.com/~tomg/index.html
  Reply With Quote
Old 24th December 2011, 08:30 AM   #118
Banned
 
Join Date: Jul 2005
Location: Pukekohe, New Zealand
Quote:
I must agree that things that look like "transient DC offsets" are part of the music, and should not be tampered with.
What sort of things would cause this in music. I am at a loss to think of anything. (Wouldn't it equate to a temporary increase or decrease in air pressure? What kind of speaker could reproduce this?)

And even if there was such a thing, do you honestly think it would be audible?

imho, I think the servos on this thread are much too complicated. It's fairly easy to make inaudible servos with just one opamp.
  Reply With Quote
Old 24th December 2011, 04:11 PM   #119
gootee is offline gootee  United States
diyAudio Member
 
Join Date: Nov 2006
Location: Indiana
Blog Entries: 1
Quote:
Originally Posted by beau2317 View Post
What sort of things would cause this in music. I am at a loss to think of anything. (Wouldn't it equate to a temporary increase or decrease in air pressure? What kind of speaker could reproduce this?)

And even if there was such a thing, do you honestly think it would be audible?

imho, I think the servos on this thread are much too complicated. It's fairly easy to make inaudible servos with just one opamp.
Every zero-centered sinusoid still spends half of its time above zero and half below zero. So for a single tone, short-enough averaging windows would always provide such cases. Given a large number of sinusoids, all summed together (which any steady-state signal can be described as), I would guess that the probability of the resulting average voltage staying always at zero would be extremely low. And since music is not a steady-state signal, in general, there will also be many uni-polar decaying exponential components, which would be likely, by themselves, to create a non-zero average voltage.

"Inaudible" is not defined well, in my opinion. And certainly some inaudible servos would be better than others. But sorry about the complexity. We were basically just enjoying exploring the "trade space" of the servo-affected parameters, much of the time, and trying to learn.

Last edited by gootee; 24th December 2011 at 04:13 PM.
  Reply With Quote
Old 24th December 2011, 09:30 PM   #120
Banned
 
Join Date: Jul 2005
Location: Pukekohe, New Zealand
Music is produced in just about every case by something vibrating, whether it's a string, drum, vocal chord, air, etc. Your answer talks about theoretical things but does not answer the actual question.

"Inaudible" is in my mind pretty well defined. But if you want to sit around here talking about which inaudible servo is better than which other inaudible servo, please feel free. Just that I have no interest, sorry. Just as I have no interest in other inaudible aspects of music reproduction, such as the color of the box you put the electronics in, the meal you just ate or the phase of the moon. Enjoy.
  Reply With Quote

Reply


Hide this!Advertise here!
Thread Tools Search this Thread
Search this Thread:

Advanced Search

Posting Rules
You may not post new threads
You may not post replies
You may not post attachments
You may not edit your posts

BB code is On
Smilies are On
[IMG] code is On
HTML code is Off
Trackbacks are Off
Pingbacks are Off
Refbacks are Off


Similar Threads
Thread Thread Starter Forum Replies Last Post
Another DC servo question. Dxvideo Chip Amps 27 20th September 2008 05:38 PM
DC Servo question Dxvideo Chip Amps 27 15th July 2008 12:01 PM
To use DC servo or not? jaycee Solid State 40 17th September 2007 02:04 PM


New To Site? Need Help?

All times are GMT. The time now is 08:24 AM.


vBulletin Optimisation provided by vB Optimise (Pro) - vBulletin Mods & Addons Copyright © 2014 DragonByte Technologies Ltd.
Copyright 1999-2014 diyAudio

Content Relevant URLs by vBSEO 3.3.2