Quelle est la manière la plus simple d'étalonner une thermistance?

11

En tant qu'amateur qui n'a pas accès à l'équipement de laboratoire, il me semble vraiment impossible de pouvoir calibrer la thermistance que j'ai.

Bien sûr, il existe des capteurs de température calibrés comme le DS18B20, mais les thermistances spécialement conçues pour les MCU lents comme Aruino UNO (par rapport aux nouveaux MCU) sont plus rapides.

Quelles options avons-nous pour étalonner une thermistance sans utiliser d'équipement de laboratoire?

ElectronSurf
la source
1
Utilisez un capteur calibré comme le DS18B20 pour prendre une caractéristique de la thermistance.
Janka
Qu'entendez-vous par «plus vif»? Cela ne semble pas être une bonne justification si vous devez effectuer une correction logicielle sur la thermistance, mais vous ne le faites pas avec un DS18B20.
Elliot Alderson
Si le délai d'une seconde du DS18B20 en pleine résolution vous préoccupe, utilisez l'un des capteurs monofils du moniteur de batterie, par exemple le DS2438. Il a un capteur de température rapide sur puce.
Janka
2
@newbie L'étalonnage de la température, pour plus de précision, est généralement difficile. Certaines gammes sont plus difficiles que d'autres. Les points de congélation des matériaux couramment disponibles peuvent être très utiles, d'autant plus si votre gamme en inclut plus. Mais des références précises seront traçables aux normes NIST ou DIN (ou groupe similaire) conservées quelque part dans un laboratoire et gérées par un physicien ou deux. Il serait utile de répondre à votre question si vous spécifiez la plage de températures ainsi que l'exactitude et la précision que vous recherchez sur cette plage.
jonk
1
@newbie Mais à la maison? Recherchez la pureté, puis créez des combinaisons glace / liquide ou bien des chaudières à condensation pure. Par exemple, de la glace mélangée à de l'eau est très couramment utilisée - mais le fait qu'elle aide ou non peut dépendre de vos chiffres de précision et du travail auquel vous êtes prêt à aller. Vous pouvez également utiliser de l'eau bouillante ou de l'acide sulfurique autorisé à se condenser au fond d'un flacon de florence. (J'ai utilisé les deux.) Mais les résultats dépendent également des impuretés et des variations de pression atmosphérique et d'autres facteurs. Vos exigences ont beaucoup à voir avec ce qui peut être suggéré pour les tentatives de homebrew.
jonk

Réponses:

5

L'étalonnage d'une thermistance (ou principalement de tout capteur d'ailleurs) est un processus en deux étapes:

  1. mesurer les données d'étalonnage
  2. élaborer une loi d'étalonnage adaptée à ces données

La première étape est la plus difficile, et malheureusement celle avec laquelle j'ai le moins d'expérience. Je ne le décrirai alors qu'en termes très généraux. La deuxième étape est principalement mathématique.

Mesurer les données d'étalonnage

Vous devez remplir un tableau avec des paires (T, R), c'est-à-dire avec des valeurs de résistance mesurées à des températures connues. Vos données d'étalonnage doivent couvrir toute la plage de températures dont vous aurez besoin en utilisation réelle. Les points de données qui sortent de cette plage ne sont pas très utiles. Sinon, plus vous avez de points de données, mieux c'est.

Afin de mesurer la résistance de la thermistance, je vous conseille contre l' utilisation d' un ohmmètre. Utilisez à la place la même configuration que vous utiliserez pour les mesures réelles de post-étalonnage. De cette façon, toutes les erreurs systématiques dans la mesure de résistance (comme les erreurs de décalage et de gain ADC) seront calibrées.

Pour connaître la température, vous avez deux options: utilisez des points de température fixes (comme, par exemple, de l'eau bouillante ou de la glace fondante) ou utilisez un thermomètre déjà calibré. Les points fixes sont l'étalon-or de l'étalonnage de la température, mais il est difficile de les obtenir correctement, et vous n'en trouverez probablement pas beaucoup dans la plage de températures dont vous vous souciez.

L'utilisation d'un thermomètre réputé sera probablement plus facile, mais il reste quelques mises en garde:

  • vous devez vous assurer que la thermistance et le thermomètre de référence sont à la même température
  • vous devez maintenir cette température stable assez longtemps pour que les deux atteignent l'équilibre thermique.

Rassembler les deux ensemble, dans une enceinte à forte inertie thermique (un réfrigérateur ou un four) peut aider ici.

De toute évidence, la précision du thermomètre de référence est ici un facteur très important. Il devrait être nettement plus précis que les exigences que vous avez sur votre précision de mesure finale.

Ajustement d'une loi d'étalonnage

Vous devez maintenant trouver une fonction mathématique qui correspond à vos données. C'est ce qu'on appelle un «ajustement empirique». En principe, n'importe quelle loi peut le faire tant qu'elle est suffisamment proche des points de données. Les polynômes sont un favori ici, car l'ajustement converge toujours (car la fonction est linéaire par rapport à ses coefficients) et ils sont bon marché à évaluer, même sur un microcontrôleur modeste. Dans un cas particulier, une régression linéaire peut être la loi la plus simple que vous puissiez essayer.

Cependant, à moins que vous ne soyez intéressé par une plage de températures très étroite, la réponse d'une thermistance NTC est très non linéaire et peu adaptée aux ajustements polynomiaux à faible degré. Cependant, un changement stratégique de variables peut rendre votre loi presque linéaire et très facile à adapter. Pour cela, nous allons prendre une diversion à travers un peu de physique de base ...

La conduction électrique dans une thermistance NTC est un processus activé thermiquement. La conductance peut ensuite être modélisée par une équation d'Arrhenius :

G = G exp (−E a / (k B T))

où G est appelé «facteur pré-exponentiel», E a est l' énergie d'activation , k B est la constante de Boltzmann et T est la température absolue.

Cela peut être réorganisé comme une loi linéaire:

1 / T = log A + B (R)

où B = k B / E a ; A = B log (G ); et log () est le logarithme naturel.

Si vous prenez vos données d'étalonnage et tracez 1 / T en fonction de log (R) (qui est essentiellement un tracé d'Arrhenius avec les axes inversés), vous remarquerez qu'il s'agit presque, mais pas tout à fait, d'une ligne droite. L'écart par rapport à la linéarité vient principalement du fait que le facteur pré-exponentiel dépend légèrement de la température. La courbe est néanmoins suffisamment lisse pour être ajustée très facilement par un polynôme de bas degré:

1 / T = c 0 + c 1 log (R) + c 2 log (R) 2 + c 3 log (R) 3 + ...

Si la plage de températures qui vous intéresse est suffisamment courte, une approximation linéaire peut vous convenir. Vous utiliseriez alors le soi-disant «modèle β», où le coefficient β est 1 / B. Si vous utilisez un polynôme du troisième degré, vous remarquerez peut-être que le coefficient c 2 peut être négligé. Si vous le négligez, vous avez alors la fameuse équation de Steinhart-Hart .

En général, plus le degré du polynôme est élevé, mieux il convient aux données. Mais si le degré est trop élevé, vous finirez par sur- ajuster . Dans tous les cas, le nombre de paramètres libres dans l'ajustement ne doit jamais dépasser le nombre de points de données. Si ces nombres sont égaux, la loi ajustera exactement les données , mais vous n'avez aucun moyen d'évaluer la qualité de l'ajustement. Notez que ce calculateur de thermistance (lié à dans un commentaire) n'utilise que trois points de données pour fournir trois coefficients. C'est dieu pour un étalonnage approximatif préliminaire, mais je ne m'y fierais pas si j'avais besoin de précision.

Je ne discuterai pas ici de la manière de réaliser l'ajustement. Les progiciels pour faire des ajustements de données arbitraires abondent.

Edgar Bonet
la source
Merci pour la réponse bien détaillée et expliquée. question secondaire; J'ai utilisé un capteur DS18B20 comme source de lecture de température et j'ai remarqué que la lecture de la thermistance était à environ 2,2 degrés. j'ai ensuite ajouté que 2,2 degrés dans le calcul de la température de la thermistance. maintenant les deux lectures de ds18b20 et de thermistance sont presque les mêmes. J'ai testé le changement de température dans la plage de 25 à 35 degrés et même si la thermistance était plus sensible aux changements de température, mais au final, le résultat était presque le même. quel est l'inconvénient de cette méthode que j'ai utilisée?
ElectronSurf
2
@newbie: Je ne comprends pas "la lecture de la thermistance est d'environ 2,2 degrés". Une thermistance ne donne pas de lecture en degrés. Voulez-vous dire que vous avez essayé une loi d'étalonnage (venant d'où?) Qui a donné une lecture de 2,2 ° C? Si tel est le cas et que ce décalage est strictement constant, votre approche présente l'inconvénient mineur d'avoir une loi de conversion plus complexe avec une étape arithmétique supplémentaire. Si le décalage n'est pas strictement constant, refaire l'ajustement devrait vous donner de meilleurs résultats.
Edgar Bonet
11

La lecture de la thermistance est un peu délicate. La méthode d'étalonnage ci-dessus, ne donne aucun rendement à une détection d'erreur, elle créerait deux points d'une courbe logarithmique (la courbe de réponse de la thermistance.

Cela signifie que pour chaque 0,1 ° C de changement de température, le changement de résistance correspondant variera en fonction de la plage de température. entrez la description de l'image ici

Au début, vous pouvez rechercher une erreur d'environ 2 à 5 ° C par rapport à la température réelle, mais aucune erreur, seulement une mauvaise lecture.

Vous ne postez aucun détail sur la façon dont lisez-vous cette thermistance, Arduino peut-être? Je dois dire que certaines bibliothèques ne fonctionnent pas du tout, vous devez donc créer une fonction spéciale pour le faire.

Publiez une explication détaillée sur la façon de caractériser et de lire une thermistance. Le message est en espagnol, mais dans les balises de code, toutes les explications sont en anglais simple.

Une fois que vous avez obtenu vos coeficients ABC, votre erreur sera d'environ 0,1 ° C à partir d'une autre mesure, même sur une longueur de fil LAN de 6 m.

Un test sur 4 thermistances Ce test a lu en même temps les 4 thermistances, Vous pouvez voir une petite différence de température par rapport à 2 d'entre elles que je tenais brièvement dans mes doigts.

Alejandro Santiago
la source
@newbie C'est la bonne approche. Si vous ne pouvez pas suivre les instructions, répondez-moi dans un jour ou deux et je rechercherai mon code arduino et rechercherai les références qu'il contient et j'écrirai une réponse ici.
piojo
1
Les liens meurent et la capacité de cette réponse à créer une solution à l'avenir dépend fortement du lien qui reste actif. Pouvez-vous ajouter les étapes à votre réponse?
Keeta - réintègre Monica
Je copie et colle la section code de la réponse; // Ceci est un exemple de code sur la façon de lire une thermistance, la Lib "Thermimistor.h" là-bas n'accepte que la bêta // coeficiente et dans mon cas, donne des résultats incorrects, c'est une manière beaucoup plus précise de lire la // thermistance , si vous avez des mesures impaires ou erronées, veuillez suivre ces étapes: // // Pour obtenir les résultats exacts de ce code, vous aurez besoin; // un multimètre, une thermistance NTC, une autre sonde de température // précise. // Étape 1.- Mettre le multimètre en mode de mesure de résistance
Alejandro Santiago
// Étape 2.- Lisez et notez la résistance réelle de la thermistance // et la température réelle (laissez 1 min pour obtenir une mesure stable). // Un peu d'eau chaude et une tasse. // Étape 3.- placez les deux capteurs (Thermistance et sonde de température dans un // récipient contenant de l'eau à température ambiante). // Dans une autre tasse, faites chauffer de l'eau. // Ajoutez de l'eau chaude jusqu'à ce que vous chauffiez plus de 10 ° C la sonde de température, attendez // une mesure stable et anotez la température et la résistance. // Ajouter plus d'eau pour chauffer l'élément à 20 ° dès la première mesure. // Prenez note de la température et résistez
Alejandro Santiago
1
@newbie Si vous avez une thermistance NTC, vous devez calculer les constantes A, B et C et les brancher sur l'équation de Steinhart Hart pour résoudre une température à partir d'une résistance. Vous avez besoin de trois mesures de température / résistance pour trouver ces constantes. (Les constantes diffèrent selon la thermistance, et trouver les constantes est votre étalonnage.) Cet article montre comment le faire, mais comme il utilise des mathématiques matricielles, je suggère de trouver une calculatrice en ligne. thinksrs.com/downloads/pdfs/applicationnotes/…
piojo
9

Remplissez une tasse de glaçons et versez de l'eau pour remplir à ras bord. Donnez-lui l'agitation occasionnelle. Lorsque la glace commencera à fondre, vous serez à 0 ° C. Collez le capteur dans l'eau et prenez une lecture.

Si votre capteur peut le tolérer, déposez-le dans une bouilloire d'eau bouillante. Au niveau de la mer qui vous donnera une lecture de référence à 100 ° C.

Si vous devez thermorétracter votre capteur pour l'étanchéité, vous devrez prévoir un certain temps pour que la lecture se stabilise.

schématique

simuler ce circuit - Schéma créé à l'aide de CircuitLab

Figure 1. Courbe d'étalonnage linéaire simple.

  • y1 est la lecture de la résistance, de la tension ou de l'ADC à 0 ° C.
  • y2 est la lecture de la résistance, de la tension ou de l'ADC à 100 ° C.

T=100y-y1y2-y1

Comme indiqué dans les commentaires, si vous utilisez une thermistance, vous devrez vérifier la fiche technique pour la linéarité. Si cette approche simple n'est pas assez bonne, vous devrez utiliser un calcul polynomial ou une table de correspondance dans un microcontrôleur.

Transistor
la source
3
Cela vous donnera deux points, que vous pouvez utiliser pour calculer la bêta de ces deux temps. La réponse dans cette plage sera loin d'être linéaire (en supposant que l'OP signifie cela quand il l'appelle une "thermistance"),
Scott Seidman
1
@newbie: Voir la mise à jour.
Transistor
5
@newbie Comme Transistor l'écrit à la fin, cette approche n'est peut-être pas assez bonne. Je ne peux pas imaginer que ce serait jamais assez bon, franchement. La seule chose que cette approche vous procurera est la répétabilité (supposée 40 ° C sera toujours la même supposée 40 ° C, mais elle peut vraiment être 20 ° C ou 60 ° C).
piojo
2
L'eau pure bout à 100 ° C si la pression est de 1,01325 bar ou 1013,25 millibar ou hectopascal. La pression au niveau de la mer dépend des conditions météorologiques.
Uwe
1
@débutant. Cela semble utile. Si vous le faites fonctionner, postez un exemple de code dans votre question ou comme réponse. Je suis sûr que d'autres trouveraient cela plus utile que ma réponse.
Transistor
2

Les thermomètres linéarisés ont une erreur de gain et de décalage.

  • Les alimentations bipolaires auront probablement compensé la valeur nulle à 0 V.
  • les ponts d'alimentation simples auront un rapport Vref ou R de Vref ou Vcc où le décalage est annulé à cette température de digne. Habituellement, c'est symétrique, ce qui correspondrait au milieu de votre gamme de conception.
  • les thermistances sont calibrées à 25 ° C avec une courbe de sensibilité spécifique à 2 variables.

  • pour l'étalonner il vous suffit de 2 mesures

    • Ajustement nul où tension d'erreur = null = 0, Vt = Vref
    • réglage du gain à T max
      • pour un pont 4 R typique, c'est généralement la température médiane.
  • utiliser un meilleur thermomètre pour l'étalonnage ou
    • utiliser de l'eau glacée et de l'eau bouillante pour 0, 100'C
Tony Stewart Sunnyskyguy EE75
la source