[sdiy] lessons learned from temperature chamber design II

Czech Martin Martin.Czech at Micronas.com
Mon May 12 12:12:07 CEST 2003


... the results of Sunday (did you notice that I stay @ home now?).
After I have built the  IA for the sensor (very educational, also satisfying,
because it really works good with very low flicker noise).
The IA gives a scaling of roughly 6V per degree K, which is ok.

{
IA is an instrumentation amplifier, a device with two inputs, computing
the voltage difference between those times some (large) gain.
Common mode signal (same on both inputs) has very low gain.
The will eliminate most of the errors (from PSU and noise) during
measurments with some kind of sensor).
IA are also used to measure the voltage across a resistor
without common mode problems, e.g. for nA-meters.
}

So I went for the PID. Ian has already pointed out some of the difficulties
with the D and I section.

{
A PID is short for Proportional, Integral, Differential controller.
The proportinal part will feed back the error times some gain.
This will already give much less error. If the gain is higher,
the error will be smaller, but the controll loop will start to ring,
and finalyy oscillate. The differential part will create some phase
lead, in order to give sufficient damping for some proportional gain.
It will also raise the noise level, since it has infinite
gain for infinite high frequency (ok, ideal, but rising gain
with frequency in reality).
Finally the integration part will sum up the remaining error
in order to force this to 0 (the idea is that an integrator has
infinite gain at DC). The integrator will have some phase lag,
so this lag must be tailored to be far away from the natural
frequency of the loop, otherwise it will cancel the benefit 
we got from the differentiator lead.
You can build an PID controller with a single op amp.
I choose a 4 op amp variant where P, I and D can be switched
on and off and can be tuned seperately, which is wise if you
do not know much about the controll path.
}

Since I forgot the measurements I made some time ago, and since
the circuit at that time was far from ideal, I started all over
with measuring the natural frequency of the loop with only P
controll activated. So I choose 50C and let the thing
settle, then I measured the error and disturbed the path
via opening the cover.
Tp=82s or Fp=12.1 mHz (milli!). So the controll
path is really slow. This is good, because it will cancel
a lot of noise, but also bad, because it will take some time
to settle...

{
I use a cheap METEX multimeter for meusuring the error,
this thing can talk to a PC via serial port, so data can
be samled at 1sample/s rate, which is really a great help
when dealing with so long times....
It makes it very easy to create plots and the like..
The display software of this pakcage is crap, but there
is C and gnuplot...
}

>From this the calculation of the D and I element is easy:

Fd=1/(2*pi*Rd*Cd) ~ Fp, Cd=4.7uF, Rd=2.8 MegOhm
Fi=1/(2*pi*Ri*Ci) ~ 1/10*Fp, Ci=9.4uF, Ri=14 MegOhm

You notice the large C and R values due to the slowness of the
control path. Since all of the gain is in the IA, the P,I,D
part has the lowest gain possible, so the errors of this
part will not have too much influence.
The R values are still realized as fixed part and trim rheostat,
because the controll path is not linear (behaves different @ 25C
and 55C (losses), also up is faster then down (no active cooling).
So there is a need to experiment and trim.
If the temperature error is larger then 2.3 K, the IA will clip
(Vmax ~ 14V). It is necessary to detect this and stop the 
integrator from going haywire via shorting it with a jfet during
this time. Otherwise the loop will overshoot very much.
For the time beiing, it is me who throws in a jumper.
In the final circuit there will be a window comparator.

The differentiator does it's best to follow it's bad reputation.
It creates a lot of noise on the controller output.
The controller output goes from 0 to 7V (range of heater),
and the (low frequency) noise can be 1Vpp, a few Hz.
Since the controll path is so slow, once could limit the controller
to 1Hz or so. This would eliminate some of the noise.
If the loop is settled, there is no need for D controll.
So another window comparator could cancel D until the error
gets greater then some limit.
Anyway, even with considerable noise in the controller output,
there could be seen no influence to the temperature error.


I made some large and some small transients, up and down.
And @ 25C and 55C. This will cost a day. Finally I got it
tuned quite well:

After 150s (or so) a > 14V error will settle to +-100mV (or so),
that's 16mK (milli Kelvin). I will publish some curves, once
the circuit is ready.
Heating up from RT to 55C will need ~ 7min.
Heating down will also need some time, because of the large heat
capacitance of the heater aluminum. Going down exactly to RT thus
can take a very long time, since there is no cooler.
Perhaps I create a simple water cooler pipe for that. 
Perhaps one should always ramp up, then the problem disappears.


So, two window comparators, some logic and some LEDs are needed.
And a 12 step switch (plus vernier pot)
for the temperature select (12 steps of 5Kelvin).
I think this is more stable than a pot.

The PID controller behaves very well after some adjustment of the
theoretical values is done. I checked with two thermometers that
the temperature error is < 0.1K (in accordance to the error voltage).
There remain ~50mVpp fluctuations (8mK!) in the error, which I think
come from turbulence. I will have to watch that.
The deviation of temperature related to
position in the chamber is much larger, arround 0.5K.
Perhaps I should isolate the wall of the chamber.

I think that the ability to reach a preselected temperature may come
handy for some measurments. It may also be needed to repeat a 
flawed measurments. A pure P controller would make this a bit more 
difficult.


m.c.






-----Original Message-----
From: Ian Fritz [mailto:ijfritz at earthlink.net]
Sent: Donnerstag, 8. Mai 2003 17:52
To: Czech Martin; Sdiy (E-mail)
Subject: RE: [sdiy] lessons learned from temperature chamber design II


Hi Martin --


>Since some nonlinearity is involved, I think a integrator
>will be needed, also because gain is allready very high,
>and still there is not much overshot (DM gain is 4000 now).

I wouldn't argue against an integrator.  But if you have a temperature 
sensor right where your experiment is (an LM335 on the circuit board, right 
next to the expo converter, for example) then that gives you the 
experimental temperature you need to characterize the circuit.  It doesn't 
matter if there is a discrepancy between this sensor and your controller 
sensor, unless you think you need absolute temperature calibration of your 
controller.  So proportional control usually works fine.

>This is due to the resistive nature of heat conduction.
>It's all real poles, RC elements can model this.
>The heat tank is so slow, that electronic circuits appear
>infintiley fast to it (as long as we do not introduce severall
>uF of capacitance, as we have for the integration).
>OTOH the phase lag of the tank is not extreme, so it is
>hard to get the servo loop oscillating at all.

Well it may not be too difficult to get your system tuned and calibrated, 
then.  I've worked with low-temperature control using a heated Cu block in 
a cryo gas stream to mount the specimen under study.  Since the thermal 
conductivity of Cu increases dramatically at low temperature the T control 
can be a bit tricky!

>The sensor shows some fluctuation. I think it is not semiconductor
>noise, but thermal air noise, aka turbulence.

Yes, I would not like to use a sensor in a turbulent air stream.  Perhaps 
you could mount the sensor in a housing that would have good contact with 
the air but not see the turbulence directly.  Or try to make a laminar flow 
in part of your air stream and put the sensor there.

>Therefore having a D section could perhaps lead to much noise.
>Perhaps once could swith the D section off, once the thing has settled.
>
>There are no unknown, fast disturbances that would
>require the D part to be on all the time.

Right. To make a reliable physical measurement you have to avoid any kind 
of fast fluctuations. You want a slow response to avoid gradients across 
your circuit board, lag due to slow thermal conduction into your ICs, etc.

>The only large transients appear when I change the temperature
>pot, or open the chamber to cool down.
>
>Yes , I could have bougth a Celsius scale sensor, but this
>wouldn't be fun...
>So I learned a lot of doing my own instrumentation amp,
>my own bridge etc.

Of course!  What are you using for a sensor, BTW?

>And of course, I learned a whole lot about thermal effects
>and behaviour, thermal resistance and capacitance.
>I mean, I knew some theory about that, but having it on
>your testbench is something different.

That's great.  I never worry much about that theory.  Basically all I ever 
think about is how much power I need to to get to the final temperature in 
an hour or so and getting good thermal coupling between the heat source and 
the control sensor.  And I always use a separate measurement sensor at the 
measurement point.  So I watch the controller to make sure it gets to 
equilibrium in a reasonable amount of time without oscillating, then I 
watch the sample thermometer until it stops changing, then I take the 
data.  A very simple approach, and no I or D is really needed.

   Ian



>m.c.
>
>-----Original Message-----
>From: Ian Fritz [mailto:ijfritz at earthlink.net]
>Sent: Donnerstag, 8. Mai 2003 16:44
>To: Czech Martin; Sdiy (E-mail)
>Subject: Re: [sdiy] lessons learned from temperature chamber design II
>
>
>Hi Martin --
>
> >some may laugh about it, but here are some practical
> >experiences from my temperature chamber and servo
> >experiments.
>
>I think this is a great topic, especially for people wanting to do careful
>experiments on VCO drift.  Nothing to laugh about at all -- this is not as
>easy as it may sound.
>
> >-1/f noise: I started the first servo circuit on a Sunday.
> >  So I used what I had, jfet op amps. For a DC servo loop,
> >  this causes serious 1/f-noise problems. So now the
> >  high gain part uses OP07, lower 1/f, cheap, available
> >-I made a mistake with the sensor, then in haste fixed
> >  that, but building another mistake: circuit supply
> >  inluences sensor output. Since the sensor output is only
> >  3mV/K and needs very high amplification, this can cause
> >  trouble. So I went back and built a bridge circuit with
> >  instrumentation amplifier, virtually eliminating any
> >  CM errors. Needs three OP07, but is cheaper then a
> >  high precision voltage source (burried zener type).
>
>The LM335 makes a great T sensor and is inexpensive.  Also, it puts out 3 V
>at 300K.  No bridge or amplification needed.
>
> >-the thermo chamber behaviour is of course unknown,
> >  until you start playing with it. So some components
> >  of the circuit (gain, integrator, differentiator)
> >  will need adjustment in servall orders of magnitude,
> >  i.e. you have to replace caps and resistors.
> >  This will damage the circuit board. Therefore matching
> >  or unknown value resistors are now soldered on pins
> >  a few mm above the board (solder nails (sp?)). I can
> >  exchange them whenever I like.
>
>Some suggestions for when you get to adjusting your controller:
>
>1.)  Do not use derivative feedback (use P or PI, but not PID).  The
>derivative can speed up the response, but it is difficult to tune. It will
>need to be varied as the set point is and the effort to map this out just
>isn't worth what you gain.  At least try without it at first.
>
>2.)  Start out with just pure, simple proportional control.  Adjust the
>loop gain to where there are no oscillations, or at least to where they
>damp out rapidly (within two cycles).  Proportional control involves an
>error between the set point and the actual temperature, but this may not
>matter to you -- just calibrate your set-point pot against the actual
>temperature.
>
>3.)  If you really think you need the integral feedback, set it to a very
>low level.  This will take out the error mentioned above, if you are
>relying on sensor calibration.  It's actually best to do the integration
>mechanically with a motor driven pot, as the integration then does not have
>a decay.
>
> >-the supply rails for all active components are now
> >  parallel silver/copper wires, a few mm apart.
> >  Inductance is thereby minimised. I soldered
> >  some 100nF blocking capacitor for each op amp,
> >  but did not connect them. Until now, I could see
> >  no ringing problems (well, the OP07 is not
> >  particulary fast).
>
>It's worth taking these precautions, since it isn't really any more
>difficult to construct.
>
> >-I have inserted jumpers, in order to be able
> >  to seperate circuit parts from other parts.
> >  This makes triming, CM rejection trimming
> >  much easier.
> >-the 12V regulator (for the fans) was thrown
> >  out, since it will dissipate much heat and thus
> >  influence the circuit
> >
> >so far, so good...
> >m.c.
>
>Sounds like a a good start!  Please continue to keep us posted.
>
>    Ian




More information about the Synth-diy mailing list