Advice on a Feedback Circuit

Status
Not open for further replies.

MrJammin

New Member
Hello All,

I need to develop a feedback circuit to stabilize a system I have. I've attached an image to elucidate the problem.

Essentially, the system will output an Output Voltage depending on the temperature it is at (see diagram). I would like the system to remain at the state where it outputs the minimum voltage (the bottom of the dip in the graph). However, the temperature is unstable, and fluctuates on the order of KHz. An Input Voltage can be used to correct the system, increasing the Input Voltage moves the system in the opposite direction of the temperature shift.

If the function was a monotonically increasing line I could easily imagine how to build a feedback circuit for it. However, the symmetry around the minimum point makes this an unfamiliar problem for me.

I'm not familiar with control theory, I would greatly appreciate it if someone could direct me to the appropriate book chapter to read, or alternatively, direct me to an appropriate set of circuits I could utilize. I have the vague notion that a PID controller could be utilized, so if someone could also comment on that I would be very grateful.

Thanks in advance,
 

Attachments

  • system.jpg
    44.2 KB · Views: 169
If the temperature fluctuates at > 1kHz I'd be interested to know what sort of temperature sensor are you using? It must have a very low thermal capacity.
 
I don't really understand what you are trying to do. Is this "system" a temperature controller?

You say an input voltage can be used to correct the system. Correct the system for what? Temperature? Voltage?

As usual, if you tell us what the system does and the general system problem you are trying to solve, rather than the specific design problem you think you have, we can better suggest a solution.
 
Hi,

The filaments of some tiny torch bulbs can vary a little in brightness when fully lit.
I recall trying to pass audio imposed on a small light bulb across to an LED,
to transfer anything over about 150 cycles the bulb had to be over-driven almost to failure.

I too would be interested to find out what has an unstable temperature that fluctuates
to an order of kilocycles (kHz).

Maybe it is your temperature sensing circuit which is unstable ?

John : )
 
Thanks for responses, as requested, I will elaborate a little.

The "system" I was describing is actually an experimental electro-optic device, not anything found commercially. The device is probed optically, and that optical signal is converted to an electrical signal through a photodetector. The optical response of the device is temperature sensitive, but a voltage can be applied across it to linearly correct for the temperature drift (as I was showing on the graph earlier).

So I can't really adjust my "system" at all. What I'm trying to is keep the system at that minimum point using a feedback system.

Also, I'll mention that the temperature instability is an experimental artifact that cannot be removed, so I'd rather not focus on it, but the feedback system needed to correct it given this transfer response.
 
If I understand correctly, to keep the system at the minimum point, you could differentiate the error signal to detect the direction of change in signal level. If you then apply a correction signal and the direction of change is incorrect (i.e. away from the minimum) then you would need to reverse the direction of the correction signal. You do this until the differentiated signal again starts to indicate an increase, indicating you have gone through the minimum.

Such a controller is probably easiest to implement with a simple microprocessor control loop. A PID controller could be used but they tend to be temperamental and difficult to understand and optimize. I prefer a Fuzzy Logic type of control loop (even though it is not as well known) which is more intuitive, especially if you've never done control loops before. The program basically consists of a series of If/Then/Else loops. You can learn about it .

Edit: An additional advantage of a Fuzzy Logic controller is that it is usually fairly obvious what part of the code needs to be tweaked if the loop isn't operating quite as desired.
 
Last edited:
You can do it in analogue with a comparator and flip flop, to oscillate around the lowest point.

Basically the comparator trips at a voltage slightly above the lowest point. That toggles the flipflop which rams Vin up and down oscillating Vin around the exact centre of the low point. If the flip flop trigger input triggers only on low to high transition it should self start (as it will cross the first boundary as hi-lo).

The small oscillation around the lowest point will introduce some small ripple on Vout but I imagine that can easily be removed by a filter.
 
Last edited:
That's an interesting idea but I would think that the minimum voltage varies and thus you would have to determine the minimum inflection point, not just use a fixed voltage for the comparator. Perhaps a negative peak detector could be used to set the comparator trip point.

The other question is how do you determine which side of the peak you are on to know which way the control voltage should change? It would seem that you need to look at the slope (derivitive) of the voltage as well as the absolute voltage.
 
Hi,

If i understand this question correctly too then this kind of controller would not be too much different from a max power tracking controller for solar arrays, except we would be looking for the min rather than the max.

I too think that a microcontroller is the answer, because that will definitely do the job whereas it may be difficult to do it in pure analog. In theory the min is found by taking the first derivative and finding the solution where it equals zero, but also verify which solutions are true solutions, so in pure analog, we'd have to use a differentiator to detect slope and probably a reverse peak detector to detect the min, but depending on the speed this might not work very well.

With a microcontroller we can not only measure the response but we can also induce changes to query the system as to where we are (ie analog/digital polling) and that can work very very effectively as i have seen systems work like this very well in photo array tracking (which is even more difficult than this problem).

If there was some requirement to work in total analog i guess we might come up with something, but a uC would really be the most sane way to go. From a purely academic standpoint it might be interesting to look into the analog solution too.
 
Last edited:

I think it would be automatic, as the flip flop can only toggle when the input goes lo->hi transition.

On startup the control voltage rises and it crosses the hi->lo transition (with no effect) then on the lo->hi transition it toggles. It does rely on the oscillation freq being much faster than the amount the device might change, but a touch of hysteresis could help there too in allowing a certain amount of change in the edge position.

Of course that was all just a quick idea based on getting a rough average of the trough bottom zone, and it's probably not a great practical system. Sampling the exact trough bottom could be done by taking the sample at the centre of oscillation, which would be equivalent to the average Vin ofthe range Vin is oscillated within. That could be done in analog easily enough with a cap charged to the average Vin and a comparator triggering the sampling when the Vin_osc crossed the Vin_average.

A microcontroller that sweeps Vin and records ADC readings, only has to memorise the lowest reading in the sweep which must be the trough bottom. Then it's trivial to reduce the sweep range a bit and keep centering it around the trough to speed up the whole process.
 
Last edited:
Status
Not open for further replies.
Cookies are required to use this site. You must accept them to continue using the site. Learn more…