Compensación de temperatura del acelerómetro / magnetómetro LSM303DLHC

4

ST Microelectronics hace que el LSM303XXXX, una popular gama de sensores de magnetómetro / acelerómetro de 3 ejes que se utilizan en las placas de arranque Arduino, etc.

El sensor LSM303DLH anterior ha sido reemplazado por el LSM303DLHC con mejoras en la transferencia de energía y datos. Sin embargo, el nuevo sensor LSM303DLHC tiene un delta de aceleración de cero g de 0,5 mg / grado en comparación con el 0,1 mg / grado mucho más estricto para el LSM303DLH más antiguo.

Usando el sensor más nuevo, la variación con la temperatura es notable en nuestros datos. Afortunadamente, el LSM303DHLC tiene un sensor de temperatura a bordo.

  • ¿Qué método debo usar para compensar la deriva del sensor usando las lecturas de temperatura? ¿Solo una tabla de consulta / fórmula simple?

  • Para lotes de instrumentos (10 - 100) ¿hay alguna alternativa para calibrar cada instrumento?

  • ¿El efecto de la temperatura cambiará con el tiempo? es decir, ¿cuánto tiempo falta para realizar otra calibración de temperatura?

EDITAR: mg unidades

    
pregunta geometrikal

2 respuestas

2

Para compensar la variación de temperatura, debe colocar el acelerómetro en una cámara de temperatura (por ejemplo, estos ) y registrar ambos simultáneamente. la temperatura y los valores brutos de la aceleración cambian lentamente la temperatura de la cámara en el rango de interés (idealmente alrededor de ~ 1 ° / minuto). Si su acelerómetro está bien colocado, sabe que el valor real que debe medir es [0, 0, -9.81 m/s] y cualquier desviación debe ser debido a la variación de la temperatura. En función de esto, puede aplicar algún tipo de ajuste a los datos medidos para construir una calibración que posteriormente utilice para predecir la deriva según la temperatura medida.

Mi experiencia es la siguiente:

  • Un ajuste poligonal de orden 3 es suficiente para implementar la calibración. Dependiendo del rendimiento de temperatura de su sensor en particular (no lo he probado), un ajuste lineal puede ser suficiente.
  • La ganancia del sensor (el factor que convierte el valor sin procesar en G) es relativamente inmune a la temperatura, pero el desplazamiento del sensor (valor aditivo) depende de la temperatura.
  • Para los tipos de sensores que son propensos a la variación de la temperatura, hay un alto grado de variación de muestra a muestra. Por lo tanto, debería considerar calibrar cada una de las partes.
  • Las partes más recientes, como LIS3DH , exhiben mucho baja temperatura deriva como partes más viejas. Este en particular podría pasar sin calibración de temperatura para la mayoría de las aplicaciones, pero las más exigentes.
respondido por el abey
3

Estas son realmente preguntas que debería hacerle al fabricante. Si la hoja de datos no dice nada más allá del cambio máximo posible debido a la temperatura, entonces no podemos responder esto.

Sin embargo, la dependencia de la temperatura suele ser una curva de baja frecuencia. Las formas comunes de hacer la compensación de temperatura son por ajuste polinómico o tabla de búsqueda. Por lo general, el enfoque de la tabla de búsqueda es más simple en el firmware y tomará menos espacio y ciclos a menos que ya tenga cargadas rutinas de punto flotante por alguna otra razón. Algo como una tabla de 16 puntos usada con interpolación lineal es probablemente lo suficientemente buena. Esta tabla proporcionaría el valor de compensación para agregar según la temperatura medida actual. En realidad no necesita ser la temperatura real. El índice de la tabla se puede basar en la lectura del sensor de temperatura sin procesar, independientemente de lo lineal o calibrado que sea. En otras palabras, la tabla dice que cuando el sensor de temperatura dice X, agrega Y a la lectura de aceleración. No es necesario que te importe cuáles son las unidades de X.

Sí, es probable que necesite calibrar cada unidad individualmente en producción. Eso compensa tanto los errores en el sensor de temperatura como la dependencia de la temperatura del acelerómetro.

1/2 g por grado, ¿en serio? Eso significa que después de solo un cambio de 2 °, podría estar apagado por 1 g. A menos que esto deba medir 100s de g, eso es ridículo.

    
respondido por el Olin Lathrop

Lea otras preguntas en las etiquetas