¿Cuál es la forma más sencilla de calibrar un termistor?

11

Como aficionado que no tiene acceso a equipos de laboratorio, realmente me parece imposible poder calibrar el termistor que tengo.

Por supuesto, hay sensores de temperatura calibrados como DS18B20, pero los termistores especialmente en MCU lentas como Aruino UNO (en comparación con las MCU nuevas) son más rápidos.

¿Qué opciones tenemos para calibrar un termistor sin usar equipo de laboratorio?

ElectronSurf
fuente
1
Use un sensor calibrado como el DS18B20 para tomar una característica del termistor.
Janka
¿Qué quieres decir con "más ágil"? Eso no parece una buena justificación si necesita hacer una corrección de software en el termistor pero no lo hace con un DS18B20.
Elliot Alderson el
Si le preocupa el retraso de un segundo del DS18B20 en resolución completa, use uno de los sensores de un solo cable del monitor de batería, por ejemplo, el DS2438. Tiene un sensor de temperatura rápido en chip.
Janka
2
@newbie La calibración de la temperatura, por precisión, generalmente es difícil. Algunos rangos son más difíciles que otros. Los puntos de congelación de materiales comúnmente disponibles pueden ayudar mucho, más aún si su rango incluye más de esos. Pero las referencias precisas serán trazables a los estándares NIST o DIN (o grupo similar) guardados en un laboratorio en algún lugar y administrados por un físico o dos. Sería útil su pregunta si especificara el rango de temperatura y la precisión y precisión que busca en ese rango.
jonk
1
@newbie Pero en casa? Busque pureza y luego cree combinaciones de hielo / líquido o calderas de condensación puras. Por ejemplo, el hielo mezclado con agua se usa muy comúnmente, pero si ayuda o no lo suficiente puede depender de sus cifras de precisión y del trabajo al que esté dispuesto a ir. También puede usar agua hirviendo o ácido sulfúrico que se condensa en el fondo de un matraz de Florencia. (He usado ambos.) Pero los resultados también dependen de impurezas y variaciones de la presión atmosférica y otros factores. Sus requisitos tienen mucho que ver con lo que se puede sugerir para los intentos de elaboración casera.
jonk

Respuestas:

5

La calibración de un termistor (o sobre todo cualquier sensor) es un proceso de dos pasos:

  1. medir los datos de calibración
  2. idear una ley de calibración que se ajuste a esos datos

El primer paso es el más difícil, y desafortunadamente con el que tengo menos experiencia. Entonces solo lo describiré en términos muy generales. El segundo paso es principalmente matemática.

Medición de los datos de calibración.

Debe llenar una tabla con pares (T, R), es decir, con valores de resistencia medidos a temperaturas conocidas. Sus datos de calibración deben cubrir todo el rango de temperaturas que necesitará en el uso real. Los puntos de datos fuera de este rango no son muy útiles. De lo contrario, cuantos más puntos de datos tenga, mejor.

Para medir la resistencia del termistor, le aconsejo que no use un ohmímetro. Utilice en su lugar la misma configuración que utilizará para las mediciones reales posteriores a la calibración. De esta forma, se calibrarán los errores sistemáticos en la medición de resistencia (como los errores de compensación y ganancia de ADC).

Para conocer la temperatura, tiene dos opciones: usar puntos de temperatura fijos (como, por ejemplo, agua hirviendo o derretir hielo) o usar un termómetro ya calibrado. Los puntos fijos son el estándar de oro de la calibración de temperatura, pero es difícil hacerlos bien, y es probable que no encuentre muchos de ellos dentro del rango de temperaturas que le interesan.

El uso de un termómetro en buen estado probablemente será más fácil, pero todavía hay algunas advertencias:

  • debe asegurarse de que el termistor y el termómetro de referencia estén a la misma temperatura
  • debes mantener esa temperatura estable el tiempo suficiente para que ambos alcancen el equilibrio térmico.

Poner ambos juntos, dentro de un recinto con alta inercia térmica (una nevera o un horno) puede ayudar aquí.

Obviamente, la precisión del termómetro de referencia es un factor muy importante aquí. Debería ser significativamente más preciso que los requisitos que tiene sobre su precisión de medición final.

Ajustar una ley de calibración

Ahora necesita encontrar una función matemática que se ajuste a sus datos. Esto se llama un "ajuste empírico". En principio, cualquier ley puede hacerlo siempre que se encuentre lo suficientemente cerca de los puntos de datos. Los polinomios son los favoritos aquí, ya que el ajuste siempre converge (porque la función es lineal en relación con sus coeficientes) y su evaluación es barata, incluso en un microcontrolador de baja potencia. Como caso especial, una regresión lineal puede ser la ley más simple que puedes probar.

Sin embargo, a menos que esté interesado en un rango de temperaturas muy estrecho, la respuesta de un termistor NTC es altamente no lineal y no muy susceptible a ajustes polinómicos de bajo grado. Sin embargo, un cambio estratégico de variables puede hacer que su ley sea casi lineal y muy fácil de adaptar. Para esto, nos divertiremos con algo de física básica ...

La conducción eléctrica en un termistor NTC es un proceso activado térmicamente. La conductancia puede ser modelada por una ecuación de Arrhenius :

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

donde G se llama el "factor pre-exponencial", E a es la energía de activación , k B es la constante de Boltzmann y T es la temperatura absoluta.

Esto se puede reorganizar como una ley lineal:

1 / T = A + B log (R)

donde B = k B / E a ; A = B log (G ); y log () es el logaritmo natural.

Si toma sus datos de calibración y traza 1 / T en función de log (R) (que es básicamente un diagrama de Arrhenius con los ejes intercambiados), notará que es casi, pero no del todo, una línea recta. La desviación de la linealidad proviene principalmente del hecho de que el factor pre-exponencial depende ligeramente de la temperatura. Sin embargo, la curva es lo suficientemente suave como para ser ajustada muy fácilmente por un polinomio de bajo grado:

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

Si el rango de temperaturas que le interesa es lo suficientemente corto, una aproximación lineal puede ser lo suficientemente buena para usted. Entonces estaría utilizando el llamado "modelo β", donde el coeficiente β es 1 / B. Si usa un polinomio de tercer grado, puede notar que el coeficiente c 2 puede ser descuidado. Si lo descuidas, entonces tienes la famosa ecuación de Steinhart-Hart .

En general, cuanto mayor sea el grado del polinomio, mejor debe ajustarse a los datos. Pero si el grado es demasiado alto, terminarás sobreajustando . En cualquier caso, el número de parámetros libres en el ajuste nunca debe exceder el número de puntos de datos. Si estos números son iguales, entonces la ley se ajustará exactamente a los datos , pero no tiene forma de evaluar la bondad del ajuste. Tenga en cuenta que esta calculadora de termistor (vinculada a un comentario) usa solo tres puntos de datos para proporcionar tres coeficientes. Esto es bueno para una calibración aproximada preliminar, pero no confiaría en ello si necesitara precisión.

No discutiré aquí cómo realizar el ajuste. Los paquetes de software para hacer ajustes de datos arbitrarios abundan.

Edgar Bonet
fuente
Gracias por una respuesta bien detallada y explicada. pregunta secundaria Utilicé un sensor DS18B20 como fuente de lectura de temperatura y noté que la lectura del termistor está aproximadamente a 2.2 grados. Luego agregué que 2.2 grados en el cálculo de la temperatura del termistor. ahora ambas lecturas de ds18b20 y termistor son casi iguales. Probé el cambio de temperatura dentro del rango de 25 a 35 grados y aunque el termistor respondía mejor a los cambios de temperatura pero al final el resultado fue casi el mismo. ¿Cuál es el lado negativo de este método que utilicé?
ElectronSurf
2
@newbie: No entiendo "la lectura del termistor es de aproximadamente 2.2 grados" Un termistor no da una lectura en grados. ¿Quiere decir que probó alguna ley de calibración (¿de dónde?) Que le dio lecturas de 2.2 ° C? Si este es el caso, y este desplazamiento es estrictamente constante, su enfoque tiene el inconveniente menor de tener una ley de conversión más compleja con un paso aritmético adicional. Si el desplazamiento no es estrictamente constante, rehacer el ajuste debería proporcionarle mejores resultados.
Edgar Bonet
11

Leer Thermistor es un poco complicado. El método de calibración anterior, no genera rendimiento para una detección de error, crearía dos puntos de una curva logarítmica (la curva de respuesta del termistor.

Esto significa que, por cada 0.1 ° C de cambio de temperatura, el cambio correspondiente en la resistencia variará, dependiendo del rango de temperatura. ingrese la descripción de la imagen aquí

Al principio, puede ver un error de aproximadamente 2 a 5 ° C de la temperatura real, pero no hay error, solo una mala lectura.

No publicas ningún detalle sobre cómo estás leyendo este termistor, puede ser Arduino? Debo decir que algunas bibliotecas no funcionan en absoluto, por lo que debe crear una función especial para hacerlo.

Publique una explicación detallada sobre cómo caracterizar y leer un termistor. La publicación está en español, pero en las etiquetas de código, toda la explicación en inglés simple.

Una vez que haya obtenido sus coeficientes ABC, su error será de aproximadamente 0.1 ° C de otra medición, incluso en un tramo de cable LAN de 6 m de largo.

Una prueba en 4 termistores Esta prueba leyó al mismo tiempo los 4 termistores. Puede ver una pequeña diferencia en la temperatura de 2 de ellos que sostuve brevemente en mis dedos.

Alejandro Santiago
fuente
@newbie Este es el enfoque correcto. Si no puedes seguir las instrucciones, respóndeme en un día más o menos y buscaré mi código arduino y buscaré las referencias que contiene y escribiré una respuesta aquí.
piojo
1
Los enlaces mueren, y la capacidad de esta respuesta para crear una solución en el futuro depende en gran medida de que el enlace permanezca activo. ¿Puedes agregar los pasos a tu respuesta?
Keeta - reinstalar a Mónica el
Copio y pego la sección de código de la respuesta; // Este es un código de ejemplo sobre cómo leer un termistor, el "Thermimistor.h" Lib solo acepta el coeficiente Beta // y, en mi caso, produce resultados incorrectos, esta es una forma mucho más acertada de leer el // termistor , en caso de que tenga mediciones extrañas o incorrectas, siga estos pasos: // // Para obtener los resultados precisos de este código, necesitará; // un multímetro, un termistor NTC, otra temperatura exacta // medidor de sonda. // Paso 1.- Establecer multimiter en modo de medición de resistencia
Alejandro Santiago
// Paso 2.- Lea y anote la resistencia real del termistor // y la temperatura real (espere 1 minuto para obtener una medición estable). // Un poco de agua caliente y una taza. // Paso 3.- coloca ambos sensores (termistor y sonda de temperatura en un // recipiente que contiene agua a temperatura ambiente). // En otra taza calienta un poco de agua. // Agregue agua caliente hasta calentar más de 10 ° C la sonda de temperatura, espere // una medición estable y anote la temperatura y la resistencia. // Agregue más agua para calentar el elemento 20 ° desde la primera medición. // Toma nota de la temperatura y resiste
Alejandro Santiago
1
@newbie Si tiene un termistor NTC, debe calcular las constantes A, B y C y conectarlas a la ecuación de Steinhart Hart para resolver la temperatura de una resistencia. Necesita tres mediciones de temperatura / resistencia para encontrar estas constantes. (Las constantes difieren por termistor, y encontrar las constantes es su calibración). Este artículo muestra cómo hacerlo, pero dado que usa matemáticas de matriz, sugiero encontrar una calculadora en línea. thoughtsrs.com/downloads/pdfs/applicationnotes/…
piojo
9

Llena una taza con cubitos de hielo y vierte agua para llenar hasta el borde. Dale un revuelo ocasional. Cuando el hielo comience a derretirse, estará a 0 ° C. Pegue el sensor en el agua y tome una lectura.

Si su sensor puede tolerarlo, colóquelo en un hervidor de agua hirviendo. A nivel del mar que le dará una lectura de referencia de 100 ° C.

Si necesita contraer el calor de su sensor para impermeabilizarlo, tendrá que esperar un tiempo para que la lectura se estabilice.

esquemático

simular este circuito : esquema creado con CircuitLab

Figura 1. Curva de calibración lineal simple.

  • y1 es la lectura de resistencia, voltaje o ADC a 0 ° C.
  • y2 es la lectura de resistencia, voltaje o ADC a 100 ° C.

T=100yy1y2y1
, donde Y = lectura a la temperatura T .

Como se señaló en los comentarios, si está utilizando un termistor, deberá verificar la linealidad de la hoja de datos. Si este enfoque simple no es lo suficientemente bueno, tendrá que usar un cálculo polinómico o una tabla de búsqueda en un microcontrolador.

Transistor
fuente
3
Esto le dará dos puntos, que puede usar para calcular la beta para esas dos temperaturas. La respuesta en ese rango será ni de lejos lineal (asumiendo que los medios OP cuando s / él lo llama un "termistor"),
de Scott Seidman
1
@newbie: ver la actualización.
Transistor
55
@newbie Como Transistor escribe al final, este enfoque puede no ser lo suficientemente bueno. No puedo imaginar que sea lo suficientemente bueno, francamente. Lo único que obtendrá con este enfoque es la repetibilidad (se supone que 40 ° C siempre será igual a 40 ° C, pero en realidad puede ser de 20 ° C o 60 ° C).
piojo
2
El agua pura hierve a 100 ° C si la presión es 1.01325 bar o 1013.25 milibares o hectopascales. La presión al nivel del mar depende del clima.
Uwe
1
@newbie. Eso se ve útil. Si logra que funcione, publique un código de muestra en su pregunta o como respuesta. Estoy seguro de que otros lo encontrarían más útil que mi respuesta.
Transistor
2

Los termómetros lineales tienen un error de ganancia y compensación.

  • Los suministros bipolares probablemente se habrán compensado a 0V.
  • los puentes de suministro único tendrán alguna relación Vref o R de Vref o Vcc donde la compensación se anula a esa temperatura de dignidad. Por lo general, esto es simétrico, por lo que correspondería al punto medio de su rango de diseño.
  • Los termistores se calibran a 25 ° C con una curva de sensibilidad específica con 2 variables.

  • para calibrarlo solo necesitas 2 medidas

    • Ajuste nulo donde el voltaje de error = nulo = 0, Vt = Vref
    • ajuste de ganancia en T max
      • para un puente 4 R típico, que generalmente es la temperatura del punto medio.
  • use un termómetro mejor para la calibración o
    • use agua helada y agua hirviendo a 0, 100'C
Tony Stewart Sunnyskyguy EE75
fuente