Relation de Steinhart-Hart

évolution de la résistance électrique d'un semi-conducteur selon sa température

La relation de Steinhart–Hart modélise l'évolution de la résistance électrique d'un semi-conducteur selon sa température. Les composants exploitant cette propriété s'appellent des thermistances. Cette loi peut s'écrire :

Avec :

  • sa température (en kelvins);
  • sa résistance électrique (en ohms);
  • , et les coefficients de Steinhart-Hart qui caractérisent chaque thermistance.

Cette relation est valide sur toute la plage de fonctionnement du composant. Il existe en revanche des formules plus faciles à manipuler mais limitées à une gamme restreinte de températures (voir l'article thermistance).

L'équation de Steinhart-Hart ne contient pas de terme en car il est montré que ce terme dégrade les performances de la formule[1].

Utilisation modifier

Cette relation permet souvent d'estimer avec précision la résistance d'une thermistance selon la température sur toute sa plage de fonctionnement. Tandis que les équations, certes plus simples, données par les fabricants ne sont souvent précises que sur certains intervalles de température. Il peut donc parfois être utile de disposer de cette loi plus délicate mais toujours précise.

Les coefficients de Steinhart–Hart sont parfois publiés par les fabricants. Si ce n'est pas le cas, il faut résoudre un système à 3 équations et 3 inconnues pour trouver ces constantes A, B et C.

Inversion modifier

On peut chercher la relation réciproque (obtenir R en sachant T), avec T en kelvins et R en ohms.

 

Avec

 

Programme en Python 2.7 pour calculer la relation ci dessus:

#!/usr/bin/python2.7
# Cyrus.rocher@femto-st.fr/ (Femto-st Institut)Last modification; 02/Oct/2018
import math
from math import log as ln# on francise le log en log neperien ln
from math import exp
#---coefficients de Steinhart-Hart pour l'exemple---#
A= 0.0011268740732306604
B= 0.00023452183442732656
C= 8.590172470421073e-08
#---------------------------------------------------#
x=(1/C)*(A-1/T)
y=((B/3/C)**3+(x/2)**2)**0.5
Tc= T-273.15 # temperature en degres Celsius
R= exp(pow((y-(x/2)),1/3.0)-(pow((y+(x/2)),1/3.0)))
#print(x,y)
#print(A,B,C)
print(R,Tc)

Coefficients de Steinhart-Hart modifier

Pour trouver les coefficients de Steinhart-Hart il suffit de connaître trois points de fonctionnement et de poser un système. Pour cela, on utilise trois valeurs de résistance données pour trois températures connues.

 

Avec  ,   et   les valeurs de la résistance aux températures respectives  ,   et  , on peut alors exprimer  ,   et   après quelques substitutions :

On pose      et    ainsi que     et  

On obtient alors  :

  et  

Les coefficients s'obtiennent comme ceci :

 

 

 

D'où le petit programme (largement améliorable) ci-dessous écrit en Python2.7, permettant de déterminer ces coefficients.

#!/usr/bin/python2.7

# on francise le log en log neperien ln !
from math import *
from math import log as ln

Tun = eval(input('Entrez la temperature T1 du premier point (en degres Celsius) : '))
Run = eval(input('et la resistance R1 du premier point (en ohms) : '))
print('\t----------------------------------')
Tdeux = eval(input('Entrez la temperature T2 du deuxieme point (en degres Celsius) : '))
Rdeux = eval(input('et la resistance R2 du deuxieme point(en ohms) : '))
print('\t----------------------------------')
Ttrois = eval(input('Entrez la temperature T3 du troisieme point (en degres Celsius) : '))
Rtrois = eval(input('et la resistance R3 du troisieme point (en ohms) : '))

# calculs en kelvins
Tun = Tun + 273.15
Tdeux = Tdeux + 273.15
Ttrois = Ttrois + 273.15

# changement de variables
Yun = 1/Tun
Ydeux = 1/Tdeux
Ytrois = 1/Ttrois

Lun = ln (Run)
Ldeux = ln (Rdeux)
Ltrois = ln (Rtrois)

# calculs intermediaires
a = (Ldeux-Ltrois)/(Lun-Ldeux)*(pow (Ldeux,3) - pow (Lun,3)) + (pow (Ldeux,3) - pow (Ltrois,3))
b = Ydeux - Ytrois - ((Ldeux-Ltrois)/(Lun-Ldeux))*(Yun-Ydeux)

# calculs de A, B et C
C = b / a
B = (1/(Lun-Ldeux))*(Yun-Ydeux-C*(pow(Lun,3) - pow(Ldeux,3)))
A = Yun - B*Lun - C*pow (Lun,3)

#Affichages de A, B et C
print('\t ###################################################################')
print('Dans l\'equation 1/T = A + B*ln R + C*(ln R)^3 on sait désormais que :')
print('\t ###################################################################')
print('Le coefficient A vaut ', A)
print('Le coefficient B vaut ', B)
print('Le coefficient C vaut ', C)

Origines de la relation modifier

Le nom de cette équation vient de John S. Steinhart et Stanley R. Hart qui ont été les premiers à la publier[1]. C'est à la Carnegie Institution of Washington que la formule a été trouvée.

Le professeur Steinhart (1929-2003), était membre de l'université de Madison au Wisconsin de 1969 à 1991 [1].

Le docteur Hart, scientifique éminent de l'Institut océanographique de Woods Hole, était aussi membre entre autres de la Geological Society of America et de la (en)European Association of Geochemistry.

Références modifier

  1. a et b "Calibration curves for thermistors", Deep Sea Res., 15, 497-503 (1968).