Connect with us

Control of heater circuit part2

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

Scroll to continue with content
  1. james

    james Guest

    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.

  2. John Fields

    John Fields Guest

    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. MV

    MV Guest

    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.

  4. james

    james Guest

    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
    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

    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. james

    james Guest

    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

    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

  6. Fred Bloggs

    Fred Bloggs Guest

    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
  7. John Fields

    John Fields Guest

    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
  8. Mark

    Mark Guest

    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

    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. james

    james Guest

    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 Fields

    John Fields Guest

    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

    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. james

    james Guest

    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.

  12. Fred Bloggs

    Fred Bloggs Guest

    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. jame

    jame Guest


    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

    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?

  14. Fred Bloggs

    Fred Bloggs Guest

    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 |\
    | >------+--Vsetpoint
    +--|-/ |
    | |/ |
    | 0.1u |
    / |
    10K |
    / |
    \ _ |
    CAL | /| |
    | | jmpr / Rg
    | /
    === Rc
    470n /
    | \ 10.0K
    | |
  15. james

    james Guest

    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 and 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"

  16. Fred Bloggs

    Fred Bloggs Guest

    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 Bloggs

    Fred Bloggs Guest

    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
  18. John Fields

    John Fields Guest

  19. Fred Bloggs

    Fred Bloggs Guest

    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. [/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.
Electronics Point Logo
Continue to site
Quote of the day