Перейти к содержанию

Смещение нуля акселерометра (zero-g offset)

Неподвижный акселерометр на горизонтальном столе должен показывать 0, 0 и 1 g. На деле по осям X и Y будут десятки mg, и они изменятся, если датчик нагреть. Это смещение нуля — главный источник ошибки при измерении наклона. Разбираем значения MPU-6050 и способы калибровки.

Обновлено Редакция GAW

Смещение нуля акселерометра (zero-g offset, zero-g level) — показание оси акселерометра, когда ускорение вдоль этой оси равно нулю. В идеале оно нулевое, но у реального МЭМС-датчика это десятки миллиg, и оно меняется с температурой, механическими напряжениями и временем. Аналог для гироскопа — смещение нуля гироскопа.

Значения MPU-6050

ПараметрX, YZ
Начальный допуск±50 mg±80 mg
Изменение от 0 до +70 °C±35 mg±60 mg

Допуск приведён как типовое значение после предварительной выдержки по MSL 3. На пределе ±2 g чувствительность 16 384 LSB/g, поэтому ±50 mg — это до ±819 единиц младшего разряда.

Чем грозит

При измерении наклона угол вычисляют по проекции силы тяжести: θ = arcsin(a/g). Смещение 50 mg превращается в ошибку около 2,9°, а с температурным дрейфом — до 5°. Для уровня или стабилизации это неприемлемо, и без калибровки не обойтись. При интегрировании ускорения в скорость смещение растёт линейно со временем, а в перемещение — квадратично.

Калибровка

  1. Две позиции на ось. Ось вверх и ось вниз: смещение = (A₊ + A₋)/2, чувствительность = (A₊ − A₋)/2. Шесть позиций на три оси.
  2. На собранной плате. Пайка и корпус меняют механические напряжения, поэтому калибруют в изделии.
  3. С учётом температуры. Если прибор работает в широком диапазоне, смещение измеряют при нескольких температурах и вводят поправку.

Смещение нуля и межосевая чувствительность калибруются вместе — матрицей и вектором смещений. О датчиках движения — в разделе IMU.

Частые вопросы

Какую ошибку угла наклона даёт смещение нуля 50 mg?

Наклон по оси X вычисляют как арксинус её показания в g. Смещение 0,05 g на ровном столе даст угол arcsin(0,05) ≈ 2,9°. Это типовой допуск MPU-6050 по осям X и Y до калибровки. Ещё до ±35 mg может добавиться при изменении температуры от 0 до 70 °C — около 2° сверху.

Как откалибровать смещение нуля акселерометра?

Простейший способ — положить датчик осью вниз и вверх: среднее двух показаний оси, (A₊ + A₋)/2, и есть её смещение, а половина разности — чувствительность. Повторив для трёх осей, получают шесть положений. Калибровку лучше делать при рабочей температуре и уже после пайки датчика на плату.

Почему смещение нуля меняется после пайки?

МЭМС-структура чувствительна к механическим напряжениям, а пайка и усадка компаунда их меняют. InvenSense приводит допуск смещения как типовое значение после предварительной выдержки по MSL3 — то есть с учётом термоудара, похожего на пайку оплавлением. Поэтому калибруют датчик уже на собранной плате.

Источники

  1. InvenSense. MPU-6000 and MPU-6050 Product Specification, PS-MPU-6000A-00, Revision 3.4 (08/19/2013) — разд. 6.2, Zero-G Output: начальный допуск калибровки ±50 mg по X и Y, ±80 mg по Z (сноска 1: типовое значение после предварительной выдержки MSL3); изменение с температурой от 0 до +70 °C ±35 mg по X и Y, ±60 mg по Z; чувствительность 16 384 / 8192 / 4096 / 2048 LSB/g для ±2 / 4 / 8 / 16 g, 16-разрядный дополнительный код; разд. 6.1: начальное смещение гироскопа ±20 °/с
  2. InvenSense. MPU-6000 and MPU-6050 Register Map and Descriptions, RM-MPU-6000A-00, Revision 4.2 — регистры 59–64 ACCEL_XOUT…ACCEL_ZOUT — 16-разрядные значения ускорения в дополнительном коде, масштаб задаётся AFS_SEL

Нашли ошибку?