# Control of heater circuit part2

Discussion in 'Electronic Basics' started by james, Apr 10, 2004.

1. ### jamesGuest

Thanks for all the help provided and pointing me in the right direction.

After some research I have come up with a schematic (posted in
alt.binaries.schematics.electronics) which I think sort of works! Is there
possible to improve the circuit? Can anyone suggest improvements.

The object of the circuit is to control a heating circuit to heat to a
temperature depending on the external temprature.

Above 20deg C the circuit is OFF, below 20deg the circuit starts to produce
an output to trigger the heating to a setpoint value, when this is acheived
the control output goes to low untill the internal temp falls below the
setpoint value calculated from the external value.

There is a gain control to adjust the ramp how quickly the internal setpoint
reaches max (i.e least sensative switch on below 20deg, setpoint reaches
80deg with ext equals minus 20 or below, most sensative switch on below
20deg, setpoint reaches 80deg when external equals 10deg or below)

The thermistor used has a known resistance calculated using the steinhard
and hart equation, from three know temp/resistances.

Temp Resistance
-20.000 45070.354
0.000 15280.000
20.000 5868.665
40.000 2505.081
60.000 1170.041
80.000 590.362

The range of external temps is -20 to + 20. The range of internal temp is
+20deg to +85 deg.

The basic principle is to reduce setpoint temp as external temp increases
rather than produce exact internal temps for external temps.

The gain circuit appears to do the job (adjustable from 3.3K to 20K to vary
the gain over the range), however the side effect is the it appears to
amplify the non linerity of the thermistor at the same time. The voltage
change/temp when the variable resistor is at 3.3k is fairly linear - but
less so at 20k

I have used resistors in the thermistor potential divider calculated to be
(resistance at higest temp*resistance at lowest temp)sqrt which places the
thermistor in the middle of its operating range which should help things.

The circuit works by taking the difference in the voltage from the
thermistor potential divider and and the voltage if the thermistor would be
at 20deg using an opamp. this output is then amplied by the adjustable gain
in the second op amp, finally the output is compared to the output from the
internal thermistor potential divider using a third op amp and and LED lit
if heat is required.

Are there any simple ways to improve this circuit? Any I on the right lines!

Any suggestions welcomed.

Cheers
James

2. ### John FieldsGuest

---
First, I suggest you tell us what you're trying to do. That is, are
you trying to heat a room? a chamber?

Second, you still haven't said whether you want to cycle back and
forth through a setpoint, or quit after having reached it once.

Third, there seems to be a discrepancy between (in a previous post)
your statements that you want the heater to be operated by a relay and
that you want the heating slope to be variable. Short answer is you
can't have both.

Fourth, how about either posting the article you saw or providing a
link to it?

3. ### MVGuest

Hi James

you sound like you are on a reasonable track if you really want
internal temperatures to get higher when the external temp gets lower
but why not work to a set point ? Is it not the case that you want to
just work the heating element harder as it gets colder ? If so a pulse
width modulation scheme might make more sense. There are chips that
produce a triangular waveform that are DC shifted via an error signal.
When the tips of the triangular wave break through a certain trip
level you turn on the heating element - therefore as it gets colder
the error signal is greater turning on the heating element for longer
pulses. However as the desired temperature is reached the error signal
should drop and the pulse width will reduce - with feedback an
equilibrium is found. Have used this scheme well with peltier heat
pumps where a lower trip level is used to cool aswell.

If you don't mind telling what is the real world application for this
?

Sledgehammer approach for non-linearities etc - small micro-controller
i.e. PIC and a lookup table could make a one-off much more accurate.

MV

4. ### jamesGuest

First, I suggest you tell us what you're trying to do. That is, are
control boiler to vary temp of water in heating circuit dependant on extenal
temp.
cycle back and forth. If internal temp required is say below internal
setpoint, heat until this is reached then off, switch back on when temp
falls below setpoint, off again when setpoint reached (although setpoint
may vary throughout the cycle if external T changes)

The actual control (heat on / heat off) would need to be controlled by a
relay.

However the required temp demanded would be variable depending on outside
Temp and gain. If heat is required the relay would operate.

As an example (figures for illustration)

i.e at a low setting, heat would be off at Ext Temp 20, and reach Internal
80deg at External -20deg
at high setting (gain variable between these two points) heat would be off
at Ext 20deg, and reach 80deg at External 10deg

Therefore the heating slope is variable, but the switch for heat require/not
required is operated by relay.

Does this make it clearer?

5. ### jamesGuest

you sound like you are on a reasonable track if you really want
Thanks for your input. Good to get another view on how this can be acheived
easily.

Is it not the case that you want to
Interesting thought using a ic to shift the values rather than amplify as I
was doing using an opamp. Will do a gogle and see what I can find.

eventual object is to control boiler to vary temp of water in heating
circuit dependant on extenal temp

I am trying to avoid getting into PIC. If I do then I could put the whole
circuit onto a PIC - which might be the simpler option!

I am suprised however that noone produces an IC that takes in a thermisor
input and produces a linear output - as is commonly required - then again we
do have LM50 which produces a 10mv output per 1deg change - which might be
better than using an themistor in this app.

thanks again

j.

6. ### Fred BloggsGuest

It would be simpler to use the National Semiconductor LM334 as the
sensor- a very linear temperature dependent current source without
offset most suitable for a minimal single-supply two-wire remote sensor
of any temperature, and the resulting circuit can be calibrated at a
single temperature- usually 0o ice bath. The LM50, LM35 will require
offset as well as gain calibration- not suitable for two-wire remote for
negative temperatures. Your circuit will require two sensors which must
be put in agreement. That 9V on your diagram is not all that common as
an open frame and as relay coil voltage- better to plan around 5V or
12V- and regulate a backup 9V battery down/up if that's what you have in
mind.

7. ### John FieldsGuest

---
Yes, much clearer.

Here's how I see it:

The device will have two temperature controls on its front panel,
knobs with pots behind them, one labeled "SETPOINT" and graduated "20"
"30" "40" "50" "60" "70" and "80", and the other labeled "EXT LIMIT"
(or something like that) and graduated "-20" "-15" "-10" "-5" "0" "5"
and "10"

The SETPOINT control will determine at what controlled temp to
energize and de-energize the heater relay, and the EXT LIMIT control
will indicate what external low temp corresponds to a controlled temp
of 80°.

If that'll work for you, post back and I'll post a schematic to
alt.binaries.schematics.electronic sometime today or tomorrow. BTW,
are you talking degrees C or F, and do you have a target cost for
parts?

8. ### MarkGuest

It would be simpler to use the National Semiconductor LM334 as the
A couple of suggestions for the circuit.

Whilst the resistance of a thermistor is not linear the output voltage can
be close to linear over a range. For this application thermistor I would
have thought it would provide the accuracy needed, if an additional parallel
padding resistor would be used.

If two resistors are used with the thermistor, one in series and one in
parallel then the resultant voltage will be closer to linear for a given
change in temp over the required range.

To calculate the value of the resistor required multiple the resistance of
the thermister at the highest required temp and the resistance at the lowest
required temp and take the square root. Use two resistors, one in series
with the thermistor to make a potential divider and another of the same
resistance in parallel with the thermistor.

If the voltage from the the external thermistor is taken (from a potential
divider as in the origional schematic, with an additional parallel resistor)
is taken, and then a op amp used to subtract the voltage if when the
external temp would be at 20deg (as we know the circuit should be off at
20deg), then we get 0v (i.e off) at 20deg and say a higher voltage (heat
required) at -20degress. Using the difference of the voltage further
improves the linerarity of the circuit.At the difference output a second op
amp on the output with an adjustable resistor can be used to provide
adjustable amplification of the voltage (something variable between say 1
and 4 as required)

A second thermistor is then used on the "internal temp" - range 20deg to
80deg using two resistors and a thermistor, and a second opamp to calculate
the difference between the returned voltage and the 20deg reference point
voltage on this thermistor.

Finally use an opamp as a comparator to compare the voltage from the
internal thermistor with the voltage "required" from the external thermistor
via the amplification op amp.

This should therefore acheive what the OP is aiming for, using just a quad
opamp.

I post a copy of the a excel graph in sci.binaries.schematics.electronics
that show a R2value of 0.9973 on a linear trendlines when driving the
thermistors/opamps as described above.

9. ### jamesGuest

Yes, much clearer.
The control to adjust at what external low temp corresponds to the
controlled temp of 80deg is on the right track tho, but I cannot see what
the "setpoint" control is designed to acheive.

I will post a chart on the link in "alt.binaries.schematics.electronic" -
cant post bineries to this group which hopefully shows better what I am
trying to acheive.

If the internal temp is < than the controlled temp than heat should be on.
The graph shows a max temp of 80deg, however this is controlled by the
boiler thermostat so does not need to be taken into account on the circuit,
when the slope is adjusted (say to controlled temp of 80 at external 5deg,
it does not matter that this may equate to a theorectical 160deg at -20 - as
the boiler will only reach 80!)

All temp are in deg C, but the degrees dont need to be shown on the front
panel - just a number to adjust the gain response (say between 1 and 15 -
see chart)

Cheers, great helps and learning so much!

No target cost for parts, but would like to keep it simple and reasonable!

Thanks again for all the input.

10. ### John FieldsGuest

---
You're not making any sense.

If the boiler already has a thermostat on it which, when set to a
particular temperature, will regulate the boiler temperature to that
particular temperature, then it doesn't matter what the external
temperature is, the boiler will always try to servo about the
temperature to which the thermostat is set. Moreover, since it's a
relay which is controlling the heater, it'll be a "bang-bang" servo
and will always be either ON or OFF, so there will be no heating rate
control at all. Now, unless I'm missing something it seems to me that
the only way you're going to be able to relate the boiler temperature
to the external temperature is if you mess with the boiler's
thermostat so that it sets the boiler's temp to what you want it to be
based on some set of rules.

According to your basic rule, if it's -20C outside, or colder, you
want the boiler to heat up to 80°C, but at 20°C or warmer you want the
heat to be off, so that transfer function looks like this for external
temps from -20°C to 20°C:

80 +---+---+---+---+---+---o
| | | | | | |
70 +---+---+---+---+---o---+
| | | | | | |
60 +---+---+---+---o---+---+
| | | | | | |
BOILER TEMP, °C 50 +---+---+---o---+---+---+
| | | | | | |
40 +-------o---+---+---+---+
| | | | | | |
30 +---o---+---+---+---+---+
| | | | | | |
20 o---+---+---+---+---+---+
20 13 7 0 -7 -13 -20
APPROXIMATE OUTSIDE TEMP, °C

If that's true, then if you wanted the boiler to follow that rule and
you were doing it manually, what you would have to do would be to
measure the outside temperature, look at the graph to determine which
boiler temperature corresponded to that external temperature, and then
set the thermostat to that boiler temperature. Not much difference
between that and having a machine do it, except perhaps in the method
of setting the thermostat. And, the thermostat would have to run
essentially open loop; not a good thing, but perhaps you meant
something else? Perhaps you want to set the thermostat to 80°C and
use it for an absolute upper temperature limit switch while using the
new circuitry to run the heater and have the system perform the way
you want it to at below 80°C.

Is that what you really want?

11. ### jamesGuest

If the boiler already has a thermostat on it which, when set to a
You are correct. The boiler will try to acheive 80. We do not need to mess
with the boilers thermostat directly to acheive a lower temp - just cut
power to the boiler if we reach our desired temp. No power = boiler off.
With power max temp possible is 80deg.

The graph is correct - with an adjustment for response (gain?). so it can be
adjusted to say off at 20deg, and reach 80deg when external is +10deg. I
have posted a graph in alt.binaries.schematics.electronics.
upper temperature limit switch while using the new circuitry to run the
heater and have the system perform the way you want it to at below 80°
Exactly. Just what I want to do.

Thanks again for all the help.

J.

12. ### Fred BloggsGuest

That will work just fine, but when you consider the +/-20% typical
uncertainty in "thermistance"- think of all the calibration work you
will have to do- and given the \$1 pricetag of the LM334- I don't see any
cost savings in using thermistors. In simplified form, the LM334
controller would look like this:
Please view in a fixed-width font such as Courier.

.. V+
.. |
.. +---------------------+
.. | |
.. | /
.. | Rb 20oC ADJ
.. | / +--/\/\/\/\--+
.. | \ | | |
.. | | | | |
.. | V(20oC)---> +-------------+----|<|-----+
.. | | LMV431 |
.. | | |\ com
.. | +-------|+ \
.. | | >-----+
.. | +-LM334-+ +-------|- / |
.. | | | | |/ _ |
.. | |I(Text)| Vext | /| |
.. | | |------+--o--o----/\/\---+---+
.. +------| ----> | | cal / |
.. | | | / Rg |
.. | +-------+ Rc |
.. | sensor E / |
.. | \ |
.. | | | |\
.. | com Vsetpoint-> +---|+ \
.. | | >-> RLY DRV
.. | +---|- /
.. | +-LM334-+ | |/ ON
.. | | | | +---
.. | |I(Tint)| Vint | OFF |
.. | | |------+---------------------+ --+
.. +------| ----> | |
.. | | /_
.. +-------+ \/| Rc,adj
.. sensor I /
.. /\
.. |
.. com
..
..
..
Calibration consists of submerging both sensors in ice bath, opening the
"cal" jumper, and adjusting Rc,adj for Vint=Vext. Call this voltage
Vint,cal. Then since the LM334's have no offset error ( by very clever
design making their bias current a fixed fraction of the temperature
dependent current), you will have Vint(T)=Vint(0oC)*(1+T/273.15) where
T=any temperature oC. From this you know that V(20oC) must be adjusted
to 1.073 x Vint,cal at ice bath 0oC. Replace the cal jumper and you're
in business. The circuit pivot gain will be G= Rg/Rc and Vsetpoint= G*(
V(20oC)- Vext) + V(20oC), and since the sensors have been adjusted to
identical voltage/temperature gains, this is equivalent to Tint= G* (
20oC-Text)+ 20oC which was the original requirement.

13. ### jameGuest

Hi,

Thanks for the schematic for a circuit to do the job, certainly a lot
similer than the multiple opamp and thermistor version.

I have decided to base the circuit on this design, but I have a couple of
queries.

The schematic specifies LM334 as the temp sensor, however upon looking at
the datasheet these sensors only have a operating range of 0deg to +70. The
required circuit operated beyond these ranges!

Does the LM334 not require an adjustment input - or is two wire input ok?

Regards

14. ### Fred BloggsGuest

Use the LM234 then : -25oC to 100oC.
See the data sheet for "two wire remote" application examples. Select a
1% metal film with 50ppm or less TCR in the range 220-230R placed
between Vr and V(-), within the sensor assembly, to set current gain at
1uA/oK. Be sure to use shielded twisted pair cabling, bypass the Rc's on
board with 0.47u ceramic, isolate the OA at Vext from line capacitance
with RC at IN(-), and add 1.5oC or so hysteresis at the comparator. Plan
on a V+=12V supply for the OA's- use an LT1013, drop this to 6V for V+
drive to the '234's-to reduce self-heating error, and use ~10.0K for the
Rc's to set Vtemp(T)~10mV/oC. I did say the schematic was simplified.

Please view in a fixed-width font such as Courier.

15K |\
V(20oC)--/\/\------|+\
| >------+--Vsetpoint
+--|-/ |
| |/ |
+-----||-----+
| 0.1u |
/ |
10K |
/ |
\ _ |
CAL | /| |
Vext----+---+--o--o--+---/\/\-----+
| | jmpr / Rg
| /
=== Rc
470n /
| \ 10.0K
| |
+---+
---

15. ### jamesGuest

I did notice the LM234 on the datasheet, problem being that I cannot find a
LM234 in the UK.

Both large suppliers of electronics components www.maplin.co.uk and
www.farnell.com do not stock the LM234 only the LM334.

I can however locate the LM335Z which appears to operate in a similar way?
Would the work as a direct replacement?

Whilst the LM335 appears to work in a similar way (10mv/degK), the datasheet
describes it as a "Precision Temperature Sensor" whilst the LM334/234 is
described as a "3-Terminal Adjustable Current Source"

Regards

16. ### Fred BloggsGuest

Do you do business with this Dial Electronics?- They report a ton of
LM234's in stock. This is also an STMicro part and that's Euro. If your
application is critical then you will want the hermetically sealed TO-46
in any case- lesser packaging will require more expert potting.

17. ### Fred BloggsGuest

No. The circuit will have to be changed as shown below, the calibration
procedure remains the same with the exception that Vint,cal is now
measured at the output of OA3. The Rc,adj is adjusted for null between
Vext/Vint- this must be performed at a known temperature, 0oC ice bath
is a readily available temperature, so that V(20oC) can be computed and
set in accordance with V(20oC)=Vint,cal*[(20oC+273.15)/(Tcal+273.15)]
making this Vint,cal*1.073 when Tcal=0oC. Also, OA1 has been changed to
clamp the Vsetpoint at 20oC, it can go no lower, in the event Text>20oC-
even though you said this won't occur. Make all resistors 1% metal film.
Please view in a fixed-width font such as Courier.

..
.. 12V
.. |
.. +----+--------------+
.. | | |
.. / | /
.. 10.0K | 10.0K
.. / | / 20oC ADJ
.. \ | \
.. | | | 10.0K 10K 15T 10.0K
.. | / +----/\/\---/\/\/\---/\/\----+
.. | 10.0K | | |
.. | / | | |
.. | \ V(20oC)-> +-------------|<|------------+
.. | | | LMV431 |
.. | | | com
.. | | |
.. | | |
.. | | | 10.0K
.. | | +-----------/\/\--------+
.. | | | |
.. | | | |
.. | | | 1N4148 |
.. | | | +---|>|---+ |
.. | | | | | |
.. | | | | |\ | |
.. | | +-------|+ \ | 1N4148 |
.. | | | | >-+---|>|---+
.. | | +---+---|- / |
.. | | | |/ OA1 |
.. | | | |
.. | | | Rg _ |
.. | | 10.0K | 10.0K 50K/| |
.. | +---/\/\--o--o-+--/\/\--+--/\/\--+-----+ <-- Vsetpoint
.. | |Vext cal | / | |
.. | | | 49.9K | /
.. | | +--/\/\--+ 10.0K
.. | +-LM335-+ /
.. | | | \ +-----<FDBK
.. | |V(Text)| | | |\
.. | | | +-+-|+ \
.. | | | | >-> RLY DRV
.. | sensor E| +---|- /
.. | +-------+ 143K | |/ ON
.. | | +--/\/\--+ | OA2 +---
.. | com | | | OFF |
.. | | 10.0K | 10.0K | --+
.. +-----+--------+--/\/\--+--------/\/\-------+ Vint
.. | | | |
.. +-LM335-+ | | |
.. | | | | |\ OA3 |
.. |V(Tint)| / 10K +---------|- \ |
.. | | \ 15T | | >-----+
.. | | /<-----------------|+ /
.. sensor I| \ Rc,adj | |/
.. +-------+ | | OA's 2x LT1013
.. | | |
.. com / /
.. 143K 143K
.. / /
.. \ \
.. | 10.0K |
.. +--/\/\--+
.. |
.. com
..

19. ### Fred BloggsGuest

I am not sure this works as intended- as the exterior temperature falls,
U4B output falls too- gained up by the "slope setting"- and this lowers
the setpoint threshold on U5B IN(+) causing the boiler to cut out at a
lower rather than higher temperature.

20. ### Tony WilliamsGuest

[/QUOTE]

Isn't that graph a straightfoward boiler setpoint offset?

T_boiler = 50 - 1.5*T_outside.

Ask a Question
Want to reply to this thread or ask your own question?
You'll need to choose a username for the site, which only take a couple of moments (here). After that, you can post your question and our members will help you out.
Continue to site