В этом примере показано, как генерировать и сплавлять данные датчика IMU с помощью Simulink ®. Можно точно моделировать поведение акселерометра, гироскопа и магнитометра и сплавлять их выходы для вычисления ориентации.
Инерциальный измерительный блок (ИМУ) - группа датчиков, состоящая из акселерометра, измеряющего ускорение, и гироскопа, измеряющего угловую скорость. Часто для измерения магнитного поля Земли также используется магнитометр. Каждый из этих трех датчиков производит 3-осевое измерение, и эти три измерения составляют 9-осевое измерение.
Система ориентации и отсчета (AHRS) снимает показания 9-осевого датчика и вычисляет ориентацию устройства. Эта ориентация задается относительно кадра NED, где N - направление магнитного севера. Блок AHRS в Simulink выполняет это с использованием непрямой структуры фильтра Калмана.
Откройте модель Simulink, которая предохраняет данные датчика IMU
open_system('IMUFusionSimulinkModel');

Входами в блок IMU являются линейное ускорение устройства, угловая скорость и ориентация относительно навигационного кадра. Ориентация имеет форму кватерниона (вектор 4 на 1 в Simulink) или матрицы вращения (матрица 3 на 3 в Simulink), которая поворачивает величины в навигационной рамке к рамке тела. В этой модели угловая скорость просто интегрируется для создания входного значения ориентации. Угловая скорость в рад/с и линейное ускорение в м/с ^ 2. Поскольку AHRS имеет только один вход, связанный с перемещением (вход акселерометра), он не может различать гравитацию и линейное ускорение. Поэтому алгоритм AHRS предполагает, что линейное ускорение является медленно изменяющимся процессом белого шума. Это обычное предположение для 9-осевых алгоритмов слияния.
Параметр магнитного поля в диалоговом окне блока IMU может быть установлен в значение локального магнитного поля. Значения магнитного поля можно найти на веб-сайте NOAA или с помощью wrldmagm в аэрокосмической Toolbox™. Значения магнитного поля в диалоговом окне блока IMU соответствуют показаниям идеального магнитометра, ориентированного на истинный север. Следовательно, ориентация, вводимая в блок IMU, находится относительно кадра NED, где N - направление истинного севера. Однако фильтр AHRS перемещается в направлении магнитного севера, что является типичным для этого типа фильтров. Следовательно, входная ориентация в IMU и расчетная ориентация на выходе AHRS различаются на угол склонения между истинным севером и магнитным севером.
Это моделирование настраивается для
широты и
долготы. Магнитное поле в этом месте устанавливается как [27.5550, -2.4169, -16.0849] микротесла в блоке IMU. Склонение в этом месте около 
Моделирование модели. Входная ориентация IMU и расчетная выходная ориентация AHRS сравниваются с использованием расстояния кватерниона. Это предпочтительно по сравнению с дифференцированием эквивалентов угла Эйлера, учитывая сингулярности угла Эйлера.
sim('IMUFusionSimulinkModel');
Разница в предполагаемой и истинной ориентации должна быть почти,
что является склонением на этой широте и долготе.
Вторым выходом фильтра AHRS является считывание гироскопа с поправкой на смещение. В блоке IMU гироскопу было дано смещение 0,0545 рад/с или 3,125 град/с, которое должно соответствовать значению установившегося состояния в Gyroscope Bias блок области действия.
Изменяя параметры на IMU, вы должны видеть соответствующее изменение ориентации на выходе AHRS. Можно задать параметры блока IMU в соответствии с реальной таблицей IMU и настроить параметры AHRS в соответствии с вашими требованиями.