LUT - Error máximo de aproximación de interpolación lineal

0

Actualmente estoy usando una LUT (Tabla de consulta) almacenada en un microcontrolador, para leer la temperatura de un sensor NTC. Me gustaría lograr una precisión conocida, no importa si no es tan alta.

El primer paso en el que estoy atascado es conocer bien el error introducido al evaluar una interpolación de dos valores en una LUT.

Lo que pensé: si la LUT tiene pasos de 1 ° C, el error máximo que utiliza el valor intermedio como discriminante es de 0.5 ° C. Y (lo que pensé), la única solución final para esto es que puedo imprimir en una pantalla el valor interpolado (es decir, 24.8 ° C) en lugar de la LUT (es decir, 25 ° C), pero ambas tienen un error de 0.5 ° C. El caso de 24.8 + - 0.5 ° C no parece tan significativo. Tal vez 24.5 ° C podría ser una mejor solución.

El segundo pensamiento es que la interpolación utilizando dos puntos separados por 1 ° C, trae un error que puede ser menor que 0.5 ° C, ya que está relacionado con la relación de la segunda derivada de la curva y un factor de 1 / 8 veces el paso de la función (aquí 1 ° C) ( enlace ). Pero no estoy seguro en absoluto de lo que estoy leyendo: suponiendo que tengo la ecuación de Steinhart-Hart, no tengo el derivado de segundo orden. Estoy en lo cierto ¿Cualquier sugerencia? ¿Es necesario este análisis para realizar una correcta estimación del error?

    
pregunta thexeno

2 respuestas

2

La curva es suave y monotónica, por lo tanto, el error máximo es de 0.5 grados C.

La derivada de la función le dará la pendiente, las derivadas de orden superior son necesarias para encontrar el error máximo. Puede ajustar una spline cúbica (que coincida con las pendientes en ambos lados del área de interés) a los puntos de datos y evaluar el error máximo analíticamente, pero francamente, sería un enfoque mucho mejor para evaluar simplemente con una resolución mucho más precisa que la deseada. Exactitud, tal como sugirió @Scott en su comentario

Suponga que no le importa nada más fino que 0.1 °. Puede evaluar fácilmente en todo el rango hasta 0.01 o 0.001 grados C en una PC en segundos. El error máximo en esos cálculos será +/- 0.005 o +/- 0.0005 grados C respectivamente, ya que la curva es suave y monotónica en cualquier resolución.

Realizar una simple búsqueda exhaustiva de fuerza bruta proporcionará confianza en el error máximo. A menos que su rango sea muy estrecho, o su resolución ADC muy fina, probablemente se encontrará con errores de resolución con un termistor típico mucho antes de que tenga errores de linealización inaceptables.

    
respondido por el Spehro Pefhany
0

Su error depende ALTAMENTE de la naturaleza de la función subyacente. Aun así, su error para una tabla de 1 grado debe ser SUSTANCIALMENTE menor de 0.5 grados. De hecho, bajo sus condiciones, creo que el valor esperado del error incluso si toma el punto más cercano con interpolación cero (una aproximación de orden cero) es de 0.5 grados.

    
respondido por el Scott Seidman

Lea otras preguntas en las etiquetas