¿Cómo calcular el error de medición en un sensor exponencialmente no lineal? (sensor de presión de fabricación propia)

Estoy tratando de calcular el error de medición de un sensor de presión hecho en casa que tengo en un circuito divisor de voltaje. Tiene las mismas características de resistencia no lineal exponencial negativa que un termistor NTC: al aumentar la fuerza [N], la resistencia [ohmios] disminuye de forma no lineal. El sensor de presión actúa como una resistencia variable, y estoy midiendo la caída de voltaje a través de él usando un ADC de 8 bits.

Hasta ahora, he tomado medidas de resistencia (con una precisión de multímetro de 0,1 ohmios) del sensor de presión del velostato casero con fuerzas ejercidas de 1 a 10 N usando un dinamómetro (con una precisión de 0,05 N), con 5 medidas de resistencia en cada valor de fuerza. El promedio de las 5 mediciones se grafican a continuación.

Mi plan para calcular la fuerza ejercida [N] es usar una "función de potencia" que se crea a partir de los datos en Excel y reorganizarla para resolver X (fuerza) en una cierta Y (resistencia). La resistencia (Y) se deriva del voltaje medido por el ADC.

¿Es este un buen enfoque o debería usar una tabla de búsqueda o una interpolación lineal? (Todavía no estoy seguro de cómo hacer ninguno de estos).

¿Cómo calculo el error de medición del sensor considerando que la resistencia cambia solo una pequeña cantidad en rangos de fuerza más altos, y la resistencia cambia mucho (sensible) en rangos de fuerza ejercida pequeños?

ingrese la descripción de la imagen aquí

ingrese la descripción de la imagen aquí

EDITAR: gráfico agregado de mis medidas de resistencia con valores máximos y mínimos graficados (las 20 medidas en cada valor de F [N] no se muestran en la tabla).

ingrese la descripción de la imagen aquí

ingrese la descripción de la imagen aquí

Ya encontraste una función equivalente, ¿no cumple tus requisitos?
¿Qué te hace pensar que la precisión de tu medidor es de 0,1 ohmios? ¿Es posible que esté interpretando que la resolución es la precisión?
asumes un modelo exponencial, y eso podría estar muy bien, pero podría ajustar funciones arbitrarias a tus puntos de medición. ¿Cómo sabes que es exponencial? ¿Eso viene de la física?
@MarcusMüller No tiene su correlación allí, pero estaría cerca de 1. Sería difícil encontrar una función arbitraria que se ajuste tan bien a ese conjunto de datos.
@StainlessSteelRat ¿Un polinomio de tercer grado no encajaría igual de bien? ¡Me sorprendería! Este ajuste exponencial también tiene tres parámetros libres: un desplazamiento, un prefactor y una escala.
@MarcusMüller Dudo que también se correlacione y se vería muy raro. Si parece un pato...
@StainlessSteelRat como ingeniero de comunicaciones: si se ve como un pato desde 10 puntos de datos, vaya y prepárese para un canal de desvanecimiento de elefante
@ElliotAlderson sí, quise decir resolución en lugar de precisión, perdón por la confusión.
@MarcusMüller, esta es la primera vez que hago esto (encontrar una ecuación para un sensor), como se describe, registré datos y luego en Excel descubrí que la línea de tendencia de la función de potencia se ajusta mejor a los datos promediados, las funciones polinómicas solo comenzaron a encajar bien después de la 4° grado, ¿cuál es el procedimiento normal al encontrar una ecuación para un sensor? en esta guía para una resistencia sensible a la fuerza ( generationrobots.com/media/FSR400-Series-Integration-Guide.pdf ) en el capítulo 7.0 dice que la curva debe modelarse según los datos de la "tabla de búsqueda", ¿tiene literatura/enlaces en esto, ¿cómo derivar la ecuación?
@BetweenBeltSizes95 ¡ah! bueno, entonces tienes una curva que quieres aproximar, así que haz exactamente eso; usted define un error aceptable y encuentra una función que es fácil de interpolar y que se aproxima a su curva de referencia dentro de ese límite de error. Si tu exponencial hace eso, ¡muy bien! Probablemente trataría de dividir la curva en segmentos de pendiente más o menos equivalente, y luego haría una representación lineal por partes, que es computacionalmente muy fácil y puede hacerse arbitrariamente precisa aumentando el número de segmentos.

Respuestas (1)

V 2 = V r mi F R t R 1 + R t = V r mi F ( 1 1 + R 1 R t )

V 2 = V r mi F ( 1 1 + R 1 244.5 X 0.941 )

R t = R 1 V r mi F V 2 1

244.5 X 0.941 = R 1 V r mi F V 2 1

X 0.941 = R 1 244.5 ( V r mi F V 2 1 )

0.941 yo norte X = yo norte R 1 244.5 ( V r mi F V 2 1 )

X = mi ( yo norte R 1 244.5 ( V r mi F V 2 1 ) 0.941 )

X = ( R 1 244.5 ( V r mi F V 2 1 ) ) 1 0.941

Ahora puede usar las medidas y escribir la función en series de Taylor parciales.

X a pag pag r o X = F ( V a ) + F ( V a ) 1 ! ( V 2 V a ) + F ( V a ) 2 ! ( V 2 V a ) 2 + F ( V a ) 3 ! ( V 2 V a ) 3 + ,

Para cada punto de medición a, calcula el diferencial 1 a n-ésimo (tabla LUT adicional, con números fijos) y luego calcula el valor interpolado. Usar solo la primera derivada podría estar bien, con la segunda derivada el error de medición será mayor que el error de aproximación, la tercera derivada es una exageración.

Si tienes algo de MATLAB, Octave,... podrías resolver las derivaciones y calcular números. Luego usa esos valores precalculados con respecto a sus puntos de calibración. La única sobrecarga para la CPU es entonces cuadrar el (V2-Va).

Podría expandir/modificar la serie de Taylor para dos puntos vecinos. enlace

EDITAR:

He buscado en la red alguna diferenciación simbólica. En primer lugar, en los libros escolares normalmente encontrarás una función definida como y=f(x), así que reorganicemos

y=(R_1/(244.45*(V_R/x-1)))^(1/-0.941)

donde y es la Fuerza, y x es el voltaje medido

He insertado la ecuación (R_1/(244.45*(V_R/x-1)))^(1/-0.941) en un solucionador en línea: www.derivative-calculator.net . He elegido los valores Vref=3.3V, R1=220 ohm.

ingrese la descripción de la imagen aquí

Calculé el voltaje V2 de acuerdo con la ecuación (1) cuando Rt = 130, de acuerdo con su gráfico (función equivalente) debería estar en fuerza = 2.

V2=3,3* 130/(220+130) = 1225V

Tengo esto:

ingrese la descripción de la imagen aquí

La fuerza debe ser de aprox. 2, no sé por qué es esta desviación. El solucionador también hizo una simplificación de la función:

4889 1000 941 ( V r mi F X 1 ) 1000 941 20 1000 941 R 1 1000 941

Finalmente, la primera derivada es:

50 4889 1000 941 V r mi F ( V r mi F X 1 ) 59 941 941 20 59 941 R 1 1000 941 X 2

Ahora todo lo que tienes que hacer es insertar valores.

Por ejemplo 1er punto (F=1; Rt=230), V2=3.3*230/(220+230)= 1.686V. Inserto este valor como x, y el valor de la primera derivada es f'(1.686)= -1.37612. La segunda derivada es 1.737047.

ingrese la descripción de la imagen aquí

Para la pequeña desviación alrededor del primer punto, la fuerza podría calcularse como una serie de Taylor de segundo orden:

F a pag pag r o X = 1 1.37612 ( V 2 1.686 V ) + 0.68806 ( V 2 1.686 V ) 2

Calculando el V2 para el segundo punto (F=2; Rt=135) como ya antes V2=1.225 e insertando en la ecuación anterior da F=1.78

Tu último X = La ecuación se puede simplificar.
@jonk No dediqué tiempo a las simplificaciones, si lo desea, puede editarlo.
Hago esto todo el tiempo, por lo que está integrado en mi psique. Desde en ( A B ) = B en ( A ) resulta que Exp ( B en ( A ) ) = A B . Estaba pensando en ese sentido. Eso es todo.
¿Hay alguna razón en particular por la que está utilizando una serie de Taylor? Truncarlo no le dará una buena aproximación polinomial. Si el OP quiere un polinomio de grado norte para relacionar el voltaje medido V 2 y la fuerza medida es mejor simplemente hacer un ajuste polinomial, lo que reducirá el error de la aproximación.
@jDAQ Taylor fue el primero en mi mente, ya que se conocen la función y sus derivados. ¿Qué polinomio encajaría mejor en tu opinión que la propia función?
@jonk Hice, lo que dijiste, en la forma en que lo entendí. Me tomaría más tiempo revivir el conocimiento en las funciones logarítmicas.
Sugiero hacer un ajuste polinomial de los datos experimentales octave.sourceforge.io/octave/function/polyfit.html y ver cómo se correlaciona con las medidas. Permitirá al OP elegir el grado del polinomio y también minimizar el error.
@jDAQ No creo que pueda usar la función Polyfit en una MCU de gama baja. Mi propuesta es calcular hasta el segundo orden (dos cuadrados), mientras que su enfoque tomaría el orden N, N es el número de puntos LUT.
Ya veo, no sabía que el OP planeaba que una MCU ajustara los datos, ya que dijo "Mi plan para calcular ... creado a partir de los datos en Excel". Pensé que iba a hacer una calibración, generar el Polyfit en su computadora y luego usar el polinomio resultante para escribir código con él. Y si realmente va a usar una computadora, incluso para un polinomio de segundo orden, el ajuste superará (o igualará) la serie de Taylor (con respecto al error cuadrático). Y para polinomios de orden bajo, también sería posible ajustar un código Polyfit simplificado en la MCU github.com/Rotario/arduinoCurveFitting
@MarkoBuršič Gracias por su ayuda, nunca antes había aprendido o derivado una ecuación para un sensor, y quería saber si mi enfoque en general estaba bien y, de lo contrario, cuál sería la forma "normal" de derivar una ecuación para un sensor? Todo lo que hice fue medir la R en diferentes niveles de Fuerza y ​​encontré la línea de tendencia en Excel que mejor se ajustaba a la línea de datos promedio para poder obtener una ecuación. Sin Excel, no sabría cómo empezar, aparte de hacer una línea lineal y obtener la ecuación ay = mx+b (ese es mi nivel de conocimiento). ¿Tiene algún enlace / literatura que podría ayudar? ¡muchas gracias!
@BetweenBeltSizes95 ¿Has visto la edición?
@MarkoBuršič he visto tu edición, gracias. Sin embargo, tengo una pregunta, ¿por qué no usar simplemente la fórmula y=(R_1/(244.45*(V_R/x-1)))^(1/-0.941) ? ¿La serie de Taylor da resultados más precisos? No recuerdo cómo hacer series de Taylor y para qué se usa. Si simplemente uso la fórmula que hizo anteriormente, ¿cómo haría para encontrar mi error de medición a partir del valor calculado? (No he agregado los valores R mínimo y máximo para las 5 mediciones de resistencia en cada valor de F).
@MarkoBuršič he agregado el gráfico con mi rango de resistencias medidas (el máximo y el mínimo), si uso la ecuación simple que hiciste: y=(R_1/(244.45*(V_R/x-1)))^(1/ -0.941) ¿cómo haría para calcular el error de medición? como +/- N ? El gráfico aún no incluye incertidumbres en la medición de resistencia del multímetro (0.1 ohm) y la incertidumbre de medición de fuerza (0.05N)