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

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

El antiguo sensor LSM303DLH 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 gravedad cero de 0,5 mg/grados en comparación con los 0,1 mg/grados mucho más estrictos del LSM303DLH anterior.

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 integrado.

  • ¿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) ¿existe alguna alternativa a la calibración de cada instrumento?

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

EDITAR: unidades de mg

Respuestas (2)

Para compensar la desviación de temperatura, debe colocar su acelerómetro en una cámara de temperatura (por ejemplo, estos ) y registrar simultáneamente los valores de temperatura y aceleración sin procesar mientras cambia 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 deberse a la variación de la temperatura. En función de esto, puede aplicar algún tipo de ajuste a los datos medidos para crear una calibración que luego utilice para predecir la deriva en función de 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 bruto en G) es relativamente inmune a la temperatura, pero la compensación del sensor (valor aditivo) depende de la temperatura.
  • Para los tipos de sensores que son propensos a la variación de temperatura, existe un alto grado de variación de muestra a muestra. Por lo tanto, debe considerar calibrar cada una de las piezas.
  • Las piezas más recientes, como el LIS3DH , muestran una variación de temperatura mucho más baja que las piezas más antiguas. Este en particular podría funcionar sin calibración de temperatura para la mayoría de las aplicaciones, pero las más exigentes.
Gracias. Cometí un error con las unidades: debe ser mg. LIS3DH tiene el mismo rendimiento. 0,5 mg no parece mucho, pero si puedo reducir eso, el instrumento tendrá un rango mucho mayor.
Entonces parece que la calibración está en orden para su aplicación.

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 compensar la temperatura son mediante ajuste polinomial o tabla de búsqueda. Por lo general, el enfoque de la tabla de búsqueda es más simple en el firmware y ocupará menos espacio y ciclos, a menos que ya tenga cargadas rutinas de punto flotante por algún otro motivo. Algo así como una tabla de 16 puntos utilizada con interpolación lineal es probablemente lo suficientemente buena. Esta tabla proporcionaría el valor de compensación para agregar en función de la temperatura medida actual. En realidad, no es necesario que sea la temperatura real. El índice de la tabla se puede basar en la lectura del sensor de temperatura sin procesar, independientemente de cuán lineal o calibrado sea. En otras palabras, la tabla dice que cuando el sensor de temperatura dice X, agregas Y a la lectura de aceleración. No es necesario que te importe cuáles son las unidades de X.

Sí, probablemente necesitará 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 equivocado por 1 g. A menos que esto esté destinado a medir 100s de g, eso es ridículo.

Mi error: las unidades debían ser mg
Le preguntaré al fabricante también.