Cómo obtener el valor de temperatura a partir de una medición de termistor
Todos los productos que he diseñado a lo largo de mi carrera tenían algún tipo de circuito de temperatura. Los circuitos más simples y rentables utilizan un termistor de coeficiente de temperatura negativo (NTC) o de coeficiente de temperatura positivo (PTC) para medir la temperatura. El circuito más básico se basa en un divisor de resistencia conectado a un microcontrolador (MCU) de bajo costo con un convertidor analógico a digital (ADC). Este artículo explica cómo utilizar un termistor NTC o PTC con un ADC, junto con las diversas técnicas de proceso para convertir los resultados medidos por el ADC en un valor de temperatura utilizable.
Un circuito de termistor típico proporciona un voltaje (VSense) que se aplica a una entrada ADC; Luego, el ADC convierte este voltaje en un valor digital LSB (bit menos significativo) que es proporcional al voltaje de entrada. Una resolución de ADC común es de 12 bits para muchas MCU de bajo costo, por lo que las fórmulas de este artículo utilizarán una resolución de 12 bits. La Figura 1 muestra los circuitos divisores de voltaje y de corriente constante.
Puede utilizar la Ecuación 1 para convertir el valor medido del ADC LSB de 12 bits en un voltaje:
donde la resolución del ADC (ADC de 12 bits (212)) es 4096 bits en total, VREF es 3,3 V y el valor ADC LSB medido es 2024 (ejemplo de valor ADC LSB de una placa de prueba de la familia de termistores TMP61 de Texas Instruments (TI).
Por ejemplo:
La ecuación 2 calcula la resistencia del VSense del divisor de voltaje:
Por ejemplo:
La ecuación 3 calcula la resistencia a partir de la corriente constante, Ibias:
donde Ibias es 200 µA (corriente estándar predeterminada para una pieza de la familia TMP61) y VSense es 1,63 V.
Por ejemplo:
Una vez que haya convertido el voltaje a una representación ADC, hay varias formas de obtener la temperatura real a partir del voltaje VSense del termistor. El método más común utiliza una tabla de consulta (LUT), también conocida como tabla de resistencia, normalmente proporcionada por el fabricante del termistor. Una tabla LUT de 1°C tiene 166 elementos y debe almacenarse en su controlador, pero esto consume la memoria del controlador. Para reducir la cantidad de elementos, podría usar un LUT de 5°C, pero entonces podría tener algún error lineal en el cálculo. Una LUT de 5°C requerirá 33 elementos, pero nadie quiere ver una resolución de 5°C, por lo que será necesario un procesamiento adicional de la LUT para obtener una resolución mejor que 5°C o 1°C. Hablaré de esto más a fondo en la sección Interpolación lineal.
Otro método consiste en utilizar una ecuación de Steinhart-Hart, que se basa en un ajuste de curva polinómica de tercer orden. Requerirá matemáticas de registro natural para completarse y deberá tener un controlador de punto flotante o bibliotecas matemáticas de punto flotante para realizar los cálculos. La ecuación de Steinhart-Hart es más precisa que una LUT.
Los PTC pueden utilizar una ecuación polinómica, dada la salida lineal del dispositivo. Las ecuaciones polinómicas son la forma más precisa de obtener la temperatura de un termistor. Un polinomio es una expresión matemática de variables que involucra únicamente las operaciones de suma, resta, multiplicación y números enteros no negativos. Otra forma de describir los polinomios es que proporcionan una ecuación de ajuste de curva para una pendiente. Debe aplicar el ajuste polinómico usted mismo y luego resolver la función de regresión (la temperatura basada en el ajuste de la curva) para obtener la temperatura. La mayoría de los PTC se basan en polinomios.
No te preocupes; una vez que domines los polinomios, obtendrás una mayor precisión; Además, no necesitarás una LUT en tu controlador. Estas son funciones matemáticas simples que pueden procesarse más rápido que una LUT con interpolación. TI tiene una herramienta de diseño que puede proporcionarle una LUT o polinomio de cuarto orden y una función de regresión, con ejemplos de cómo aplicar estas funciones matemáticas en código C para que su controlador obtenga las temperaturas más precisas de un termistor.
Una LUT normalmente oscila entre -40 °C y 125 °C, pero variará según los límites térmicos del termistor. Hay dos tipos de LUT: los de 1°C y los de 5°C. Consulte la Figura 2 para ver ejemplos.
El método LUT funciona así:
Interpolación linear
La interpolación consiste en calcular e insertar un valor intermedio derivado de dos valores conocidos.
El método de interpolación funciona así:
La ecuación 4 es la fórmula para el proceso de interpolación lineal:
Donde X es el valor conocido de la resistencia del termistor, Y es el valor desconocido de la temperatura, X1 e Y1 son los valores más cercanos inferiores a la resistencia conocida para la resistencia y su temperatura asociada, y X2 e Y2 son los valores más cercanos superiores a la resistencia conocida. para la resistencia y su temperatura asociada.
El valor Y será el valor de temperatura más cercano entre los valores de temperatura superior e inferior en su LUT.
Si la LUT se proporciona en pasos de 5 °C, tenga en cuenta que convertirla a una LUT de 1 °C mediante interpolación lineal puede tener un error lineal de 0,5 °C. Este es un error matemático al calcular entre dos valores en pasos lineales. Un LUT de 1°C suele ser mejor si lo puede conseguir del fabricante.
La ecuación de Steinhart-Hart es un polinomio de tercer orden que utiliza registros naturales. Puede ser un método preciso para derivar la temperatura a partir de una resistencia conocida. Las ecuaciones utilizadas en el método Steinhart-Hart necesitan tres valores de resistencia del LUT del termistor para calcular el ajuste estimado de la curva:
Puede usar estas variables en las fórmulas de coeficientes a continuación y solo necesita calcularlas una vez.
Debes resolver cada uno de estos elementos para determinar los tres coeficientes necesarios para calcular la ecuación de Steinhart-Hart, donde ln es un logaritmo natural.
Las fórmulas 5, 6 y 7 proporcionarán los coeficientes necesarios para calcular la temperatura; sólo necesitas calcular una vez.
La ecuación 8 calcula la temperatura. Utilizará la Ecuación 8 cada vez que desee conocer la temperatura a partir de la resistencia calculada.
Donde *T es la temperatura en Kelvin (°C = °K - 272,15) (°F = (1,8 × °C) + 32).
Los polinomios de tercer y cuarto orden son la forma más precisa y rápida de calcular los valores de temperatura para la cartera de termistores de TI; No necesitarás una LUT. La función cuártica es un polinomio de cuarto orden que da como resultado un valor de resistencia basado en una temperatura. El uso de la fórmula de regresión dará como resultado un valor de temperatura basado en una resistencia medida.
Comience abriendo una hoja de cálculo en blanco en Microsoft Excel. Ingrese los valores de temperatura y resistencia del LUT de su dispositivo. Trace la resistencia típica, como se muestra en la Figura 3, utilizando un diagrama de dispersión, no un diagrama de líneas.
Con la temperatura en el eje X y la resistencia en el eje Y, haga clic derecho en la línea de trazado y seleccione "Agregar línea de tendencia". La Figura 4 muestra la ventana de formato de línea de tendencia. Seleccione "Polinomio" y cambie el orden a "4.
En la parte inferior de la ventana Formatear línea de tendencia, seleccione "Mostrar ecuación en el gráfico" y "Mostrar valor de R cuadrado en el gráfico". La ecuación que se muestra en el gráfico será su función cuártica polinómica de cuarto orden, lo que le permitirá obtener el valor de resistencia a partir de la temperatura. Un método alternativo para obtener los coeficientes es utilizar la función ESTIMACIÓN LINEAL de Excel; la sintaxis es LINEST(conocido_y, [conocido_x], [const], [estadísticas]). Recuerda que un polinomio de cuarto orden tiene cinco coeficientes.
En el polinomio de cuarto orden proporcionado por la línea de tendencia, notará que algunos números usan suma y otros usan resta. La siguiente función cuártica utiliza toda la suma. En los coeficientes, cambie el signo del coeficiente a negativo para restar según el polinomio de la línea de tendencia.
Un polinomio de cuarto orden es una función cuártica y se calcula en la fórmula 9, donde la resistencia es función de la temperatura.
R(Ω) = A4*(T4) + A3*(T3) + A2*(T2) + A1*T + A0
Donde R es la resistencia del termistor, T es la temperatura y A0/A4 son coeficientes.
Una función de regresión es lo opuesto a un polinomio de cuarto orden. Simplemente cambie el eje X por el eje Y, como se muestra en la Figura 5. La ecuación polinómica de cuarto orden que se muestra en el gráfico utilizará el valor de resistencia para encontrar la temperatura.
La regresión polinómica de cuarto orden en la fórmula 9 con la temperatura en función de la resistencia: (Y = eje Y, que es la temperatura)
T°C = A4*(R4) + A3*(R3) + A2*(R2) + A1*R + A0)
Donde R es la resistencia del termistor, T es la temperatura y A0/A4 son los coeficientes enumerados en la Figura 5.
R2 es el valor de ajuste de la línea de tendencia de la curva polinómica. Un R² = 1.00000E+00 es un ajuste perfecto y el error es mínimo al calcular la resistencia a partir del polinomio. Los valores R2 aceptables son R2 = 0,999 e inferiores.
Las tolerancias para la precisión de la temperatura variarán según su aplicación. Una precisión de 1%-3%°C funcionará para la mayoría de las aplicaciones de medición de temperatura. Siempre recomiendo determinar este valor al comienzo de su diseño e intentar alcanzar este objetivo.
La mayoría de los errores al calcular la temperatura mediante fórmulas se deben a errores matemáticos y de redondeo. La Figura 6 proporciona un ejemplo de errores matemáticos causados por el redondeo. Una buena práctica para recordar es que cuantos más dígitos más allá del punto decimal utilice (como 0,123456), más precisa será la fórmula.
Recomiendo utilizar al menos seis dígitos (preferiblemente nueve o 12 dígitos más allá del punto decimal) para obtener una mayor precisión. El número óptimo de dígitos más allá del punto decimal es 16. Aunque esto es posible y fácil para una hoja de cálculo, no siempre es práctico para una MCU. Seis dígitos proporcionarán precisiones superiores a 0,4 °C en todo el rango de temperatura, lo que sigue siendo más preciso que un LUT. El gráfico de cálculo de regresión en la Figura 6 muestra el error potencial con seis dígitos más allá del punto decimal.
Como puede ver, existen varias formas de procesar un valor ADC LSB obtenido después de convertir un voltaje medido proveniente de un circuito divisor de voltaje de termistor. Los métodos más simples no son necesariamente los más precisos, pero pueden ser adecuados para su aplicación. La mayoría de estos métodos funcionarán tanto para dispositivos NTC como PTC.
Clasificaría los métodos de mejor a adecuado como:
Lograr una precisión real es un esfuerzo de diseño de todo el sistema. La resistencia Vbias en un circuito divisor de resistencia, la tolerancia de su termistor, el error VCC, el error VREF, los errores ADC, los métodos de cálculo y los errores matemáticos se suman a la precisión final.
Para obtener más información, visite la cartera de termistores lineales de TI.
Los artículos de la industria son una forma de contenido que permite a los socios de la industria compartir noticias, mensajes y tecnología útiles con los lectores de All About Circuits de una manera para la que el contenido editorial no es adecuado. Todos los artículos de la industria están sujetos a estrictas pautas editoriales con la intención de ofrecer a los lectores noticias, experiencia técnica o historias útiles. Los puntos de vista y opiniones expresados en los artículos de la industria son los del socio y no necesariamente los de All About Circuits o sus redactores.
Figura 1.Figura 2.Figura 3.Figura 4.CoeficientesFigura 5.Figura 6.