How to estimate Steinhart-Hart 3ord model coefficients.

Starting point

Steinhart-Hart did formulate a third order approximation.

 

So given three set of measurements (sets of temperature and resistance for NTC) it is possible to find A,B and C.

Having A, B and C you can estimate 1/T for a given measured resistance.

I will leave it to you to come from 1/T to T :-)


Read to learn how to do it …

(thanks to www.thinksrs.com)

The model

We need to have three set of measurements so we can find A,B and C

 
 

Here we have it on matrix form with the actual values from above

NB: You need some accurate measurements

NBNB: If you use homegrown matrix libs so beware of that matlab, numpy etc do invert matrices that cant be inverted - they do is as good as possible.


See the screen shot in the bottom. m is the matrix with values as above m1 is the inverted matrix.
m1* m should give unit matrix
and do it but … not zeros outside the diagonal, only very small values - unaccuracy in meaurements,…

Conclusion use numpy, matlab or equal for the math s as I do.

 

Below you can find some pythoncode which can do it

Mockup

See on mockup.html

NTC python code

I have implemented the estimation of a,b,c in a python program - running it in jupyterlab or Spider

Click below to see code

(open/close)

(Open code as raw file here pythoncode.py )

Plot from the code

 

Online python

Just copy paste python code to

NB Run button is called preview - hmm weird name

QED :-)

 

C code

I have found this to work

(open/close)

raw file findabc.c