Help designing a thermistor circuit


by rusty009
Tags: circuit, designing, thermistor
Redbelly98
Redbelly98 is offline
#37
Feb3-09, 08:08 AM
Mentor
Redbelly98's Avatar
P: 11,989
Quote Quote by rusty009 View Post
Hey Phrak, when I calculate B i get 4043.92, I use this equation,
http://upload.wikimedia.org/math/8/d...e7d32cad0d.png

I think its because we use different K values, I used 298.15K for 25 degrees and 318.15 for 45 degrees, have I made a mistake? I am also not sure how you got the 30.1k value?
Isn't the 2nd temperature value supposed to be 40 C = 313.15 K?

EDIT:

I get B = 5302 K (agrees with Phrak) using 298 & 313 K
and I get B = 5307 K using 298.15 & 313.15 K:
http://www.google.com/#hl=en&q=ln(12...fp=0k_STq_SEOg
skeptic2
skeptic2 is offline
#38
Feb3-09, 09:29 AM
P: 1,784
"skeptic, if you calculated your B correctly, and plug 298 into T, you get 2815 ohms. But it should be 2815 ohms at 25C. See how it goes? It's just curve fitting though two data points."

Good point Phrak, does the scale used make a difference in the values one gets for the curve? If so, which scale is best? Let's find out.

B = ln(R/Ro)/(1/T - 1/To)
For R = 1200 & T = 40 and
Ro = 2815 & To = 25
B = 56.84271

For R = 1200 & T = 313.15 and
Ro = 2815 & To = 298.15
B = 5307.158

For Celsius we get:
Temp....25..........30..........35..........40
Res.....2815.......1927......1470.......1200

For Kelvin we get:
Temp...298.........303........308.........313
Res.....2815.......2099......1580.......1200

Apparently the scale does make a difference but which is correct? The curves intersect at 2815 and 1200. If we extend the range a little...

For Celsius we get:
Temp....-5.............0...............5...........10..........15..........20
Res....0.0033....undefined....25079259....85245....12817......4970

For Kelvin we get:
Temp...268.........273........278.........283........288........293
Res....20623.....14355....10124.......7228......5221......3814

...we can see which is probably the correct curve.
Redbelly98
Redbelly98 is offline
#39
Feb3-09, 09:37 AM
Mentor
Redbelly98's Avatar
P: 11,989
skeptic, T is the absolute temperature in these equations, so use Kelvins.

(Note the problem with division-by-zero that would occur at 0 C, if Celsius were used.)
skeptic2
skeptic2 is offline
#40
Feb3-09, 10:41 AM
P: 1,784
Quote Quote by Redbelly98 View Post
skeptic, T is the absolute temperature in these equations, so use Kelvins.

(Note the problem with division-by-zero that would occur at 0 C, if Celsius were used.)
The temp values under Kelvin are Kelvin degrees. I was trying to demonstrate that if Celsius were used as Phrak suggested in post #36, you would get a division by zero error at 0 C. Is this not clear?
Phrak
Phrak is offline
#41
Feb3-09, 01:23 PM
P: 4,513
Quote Quote by rusty009 View Post
I think its because we use different K values, I used 298.15K for 25 degrees and 318.15 for 45 degrees, have I made a mistake? I am also not sure how you got the 30.1k value?
I missed this question earlier.

That was a mistake. I should have written 3.01K not 30.1K.

You want 3.01K because you don't want to overflow your ADC, but you want it as small as possible to get the best engineering linear output. Assume your thermistor is good to 5% of the manufacturer's given reististance of 2815 ohms. It could be as large as 2955.8. Given V_out = 2.55 volts, solve for the value of the series resistor.

You should get 2840 ohms. You need a 2868 ohm 1% resistor to get at least 2840 ohms. 3.01K is the most common 1% resistor greater than 2.84K ohms.

If the thermistor is really a 10% part, 3.01K wasn't conservative enough.
Phrak
Phrak is offline
#42
Feb3-09, 01:36 PM
P: 4,513
Quote Quote by Redbelly98 View Post
Isn't the 2nd temperature value supposed to be 40 C = 313.15 K?

EDIT:

I get B = 5302 K (agrees with Phrak) using 298 & 313 K
and I get B = 5307 K using 298.15 & 313.15 K:
http://www.google.com/#hl=en&q=ln(12...fp=0k_STq_SEOg
40C = 238.15K. I use a B of 6211 at a reference temperature of 25C.

If you use a different reference temperature you get a different B. But whatever reference you use, the curve it still has to pass through the two data points.
rusty009
rusty009 is offline
#43
Feb3-09, 02:32 PM
P: 70
Quote Quote by Phrak View Post
If I were you rusty, I would do it the same way you came up with that straight line plot.

You really want to know the error in [tex]V[/tex], the voltage feeding the ADC.

You have V as a function of R, and R as a function of T. Plot V as a function of T. Then compare it to a straight line with 25C and 40C at the endpoints.

Do you have matlab or something? If not, do it in excel (so I've heard).
I understand what your saying here, but then I will be using another linear approximation which again carries an error ?
Phrak
Phrak is offline
#44
Feb3-09, 02:34 PM
P: 4,513
Quote Quote by skeptic2 View Post
does the scale used make a difference in the values one gets for the curve? If so, which scale is best? Let's find out.
Nicely done. This business of rescaling and offets comes up all the time. I wonder if there's some general study of it?

You're holding my feet to the fire--which is a good thing. I made a mild 'engineering assumption' based upon the magnitude of the error values that were inherent in rusty's design. I assumed I could get the same curve (or very close) by using a reference temperature other than 0C--namely 25C.

To resolve this, we need to use a reference at 0C. But we don't know the resistance at zero C, so now there are two simultaneous equations to solve.

Using [tex]R_T = R_o \cdot exp[ B_o(1/T - 1/T_o) ] [/tex] where [tex]R_o[/tex] and [tex]B_o[/tex] are unknowns,

[tex]R_{T_1} = R_o \cdot exp[ B_o(1/T_1 - 1/298.15) ] [/tex]

[tex]R_{T_2} = R_o \cdot exp[ B_o(1/T_2 - 1/298.15) ] [/tex]

[tex]T_1 = 323.15 [/tex] , [tex]R_{T_1}=2815[/tex]

[tex]T_2 = 338.15 [/tex] , [tex]R_{T_2}=1200[/tex]

Solve for [tex]B_o[/tex] and [tex]R_o[/tex]

How does this curve compare my curve,

[tex]R_T = 2815 \cdot exp[ 6211(1/T - 1/323.15) ] [/tex] , where [tex]B_{25} = 6211[/tex] and [tex]R_{25} = 2815[/tex] ?
Redbelly98
Redbelly98 is offline
#45
Feb3-09, 03:37 PM
Mentor
Redbelly98's Avatar
P: 11,989
Quote Quote by Redbelly98 View Post
skeptic, T is the absolute temperature in these equations, so use Kelvins.

(Note the problem with division-by-zero that would occur at 0 C, if Celsius were used.)
Quote Quote by skeptic2 View Post
The temp values under Kelvin are Kelvin degrees. I was trying to demonstrate that if Celsius were used as Phrak suggested in post #36, you would get a division by zero error at 0 C. Is this not clear?
Sorry skeptic, I was skim-reading much of your post and missed your point. My apologies.

Quote Quote by Phrak View Post
40C = 238.15K. I use a B of 6211 at a reference temperature of 25C.
Umm, but:

40 C = (40 + 273.15) K = 313.15 K

238.15 K would correspond to (238.15-273.15)C = -35C

If you use a different reference temperature you get a different B. But whatever reference you use, the curve it still has to pass through the two data points.
Agreed that the curve does need to pass through the two data points. But it seems that B does not change, even when the reference values Ro and To change:

For example, the equations

R = 1200Ω * exp[5302K * (1/T - 1/313K)] <-- reference at 313K or 40C
and
R = 2815Ω * exp[5302K * (1/T - 1/298K)] <-- reference at 298K or 25C

both agree with the 2 known data points

2815Ω at 25C = 298K
1200Ω at 40C = 313K

In either case, B is the same.
Phrak
Phrak is offline
#46
Feb3-09, 03:42 PM
P: 4,513
Quote Quote by Redbelly98 View Post
40 C = (40 + 273.15) K = 313.15 K
: oh cr*p
Redbelly98
Redbelly98 is offline
#47
Feb3-09, 03:50 PM
Mentor
Redbelly98's Avatar
P: 11,989
Quote Quote by Phrak View Post
: oh cr*p
LOL, happens to everybody.
Phrak
Phrak is offline
#48
Feb4-09, 04:49 AM
P: 4,513
Redbelly, using your more better 273.15K = 0C, I calculated the error incurred for various bias resistors. But PF doesn't accept MathCad files, so I can't attach it.

The results are pretty impressive. A 3.01K will deviate ~ -3.75% from a straight line passing through the end points at 25C and 40C. The optimal bias resistor is 1.45K with ~ +/-0.3% error, but the voltage across the thermistor is above the 0 to 2.55 volt ADC range.
Windows won't display a MathCad 7 plot correctly. Oh well.
rusty009
rusty009 is offline
#49
Feb4-09, 05:29 AM
P: 70
Quote Quote by Phrak View Post
Redbelly, using your more better 273.15K = 0C, I calculated the error incurred for various bias resistors. But PF doesn't accept MathCad files, so I can't attach it.

The results are pretty impressive. A 3.01K will deviate ~ -3.75% from a straight line passing through the end points at 25C and 40C. The optimal bias resistor is 1.45K with ~ +/-0.3% error, but the voltage across the thermistor is above the 0 to 2.55 volt ADC range.
Windows won't display a MathCad 7 plot correctly. Oh well.
How did you calculate the error ?
Phrak
Phrak is offline
#50
Feb4-09, 05:42 AM
P: 4,513
Quote Quote by rusty009 View Post
How did you calculate the error ?
I graphed it. But that's not the total error. Everything that can deviate from ideal can be a source or error. It's the end of the day for me. See the post I made with a square root in it.
Phrak
Phrak is offline
#51
Feb4-09, 03:32 PM
P: 4,513
I've been very curious about how the nonlinearity of resistor biasing could go toward canceling the thermistor nonlinearity. Check-out these curves.

(hope this works this time)
Attached Files
File Type: xls Thermistor.xls (67.0 KB, 51 views)
Redbelly98
Redbelly98 is offline
#52
Feb4-09, 04:40 PM
Mentor
Redbelly98's Avatar
P: 11,989
Quote Quote by Phrak View Post
I've been very curious about how the nonlinearity of resistor biasing could go toward canceling the thermistor nonlinearity. Check-out these curves.
Nice!
skeptic2
skeptic2 is offline
#53
Feb4-09, 10:19 PM
P: 1,784
If instead of using one 1% percent resistor you used two 5% resistors the error could be reduced as shown. The circuit with two resistors has a 2.2k resistor connected to +5V. The other side of that resistor is connected to the parallel combination of the thermistor and a 8.2k resistor. Even at the extremes of the 5% rating the error is still less than with one 1% resistor. The disadvantage of this method is that the temperature range is covered with fewer levels of the ADC, 82 steps instead of 99.
Attached Files
File Type: xls Error Comparison.xls (16.0 KB, 21 views)
Phrak
Phrak is offline
#54
Feb5-09, 04:00 AM
P: 4,513
Quote Quote by skeptic2 View Post
If instead of using one 1% percent resistor you used two 5% resistors the error could be reduced as shown. The circuit with two resistors has a 2.2k resistor connected to +5V. The other side of that resistor is connected to the parallel combination of the thermistor and a 8.2k resistor. Even at the extremes of the 5% rating the error is still less than with one 1% resistor. The disadvantage of this method is that the temperature range is covered with fewer levels of the ADC, 82 steps instead of 99.
You're error curve looks very nice. I'm suprised that adding the parallel resistor helped rather than hindered. I'll paste it into MathCad and see if I get the same. I'm still skeptical, as you might have guessed.

The step count reduction is a miniscual increase in step error comparatively.

Using 5% parts adds error of their own. So does a 1%, of course. But I'll use your valued and see what happens. Do you think you could calculate the resistor divider error? Independent errors are like independent probabilities.


Register to reply

Related Discussions
designing a sequential circuit Engineering, Comp Sci, & Technology Homework 0
Need help designing a circuit for my car... Electrical Engineering 7
Designing a circuit from a transfer function [linear control] Engineering, Comp Sci, & Technology Homework 2
Designing a circuit Engineering, Comp Sci, & Technology Homework 4
Designing a switching circuit Electrical Engineering 7