Зарегистрирован на хабре с 9 июля 2008. Ни разу ничего не писал, только читал, Карма ниже нуля. Решился.
Сразу обращение к уважаемому «хабрасообщесту» статья это попытка разобраться в тех вопрос которые для меня ещё как бы не до конца поняты, поэтому жду конструктивную критику и понятные отзывы, а не «ты дурак и всё».Теперь и к теме приступим.
Как из названия будет видно речь пойдет о инерциальной навигационной системе. Учился я на кафедре робототехники (2005-2011) и поэтому проблема навигации для мобильных роботов стояла остро. Для меня всегда было интересно как можно узнать свои координаты и при этом быть независимым от неких маяков, спутников и всяких там сонаров. Ответ появился уже в 2006 году, когда я услышал о прикольной «штуковине» в телефоне nokia n95. В ту пору, экскурс для «школоты» вдруг будут читать, эти телефоны были нууу оооочень популярны. В общем я узнал о таком устройстве как акселерометр. Типа оно меряет ускорение. А из физики и алгебры я знал, что взяв двойной интеграл можно найти перемещение. Мне стало жуть как интересно и я понял, что я хочу этим заниматься. Потом конечно я закинул эту идею, поскольку пощупать nokia n95 с акселерометром не было возможности, потом мне стали интересны методы искусственного интеллекта, задачи распознавания изображения и т.д. Но за год до окончания вуза, мне попалось какая-то статья о фильтре Калмане и тут снова нахлынуло.
ИНС или СОПП?
Хотел написать красиво литературно, но чувствую не хватит сил. Про ИНС в частности БИНС писать не буду, много статей в инете, и на хабре присутствуют читабельные варианты. Просто отмечу поскольку mems датчки дешевеют, то популярность БИНС растёт. Благодаря бурному развитию интереса к коптерам, начал читать литературу и встретился термин AHRS (Attitude and heading reference system) перевод от меня «система определения пространственного положения». Очень активно используется в западной литературе. И сразу возник вопрос чем отличается от ИНС. Мои предположения излились следующим рисунком.
Тоесть БИНС это более «навороченный вариант», на выходе которой есть координаты о положении. Так ли это и ваше мнение прошу в комментариях.
Датчики, чувствительные элементы.
Основными датчиками БИНС можно считать акселерометр и гироскоп. На рисунке представлены основные типы гироскопов.
Рисунок взят из книги В.Я. Распопова. Если хотите разобраться в чувствительных элементах инерциальной навигации это одна из лучших книг. Что касается акселерометра, то тут по типу они делятся на три группы: макромеханические, микромеханические, интегральные. ЧЭ акселерометра, представляет инерционную массу на подвесе. К группе макромеханических можно отнести акселерометры, в которых подвес реализован в виде пружин, струны или керновых, шарикоподшипниковых, электромагнитных узлов, которые могут выполнять также роль измерительных элементов в, так называемых, поплавковых акселерометрах с гидростатической разгрузкой узлов подвеса. Антиподом макромеханическим акселерометрам по размерам являются микромеханические, а интегральные (гибридные) акселерометры являются продуктом совместного применения макро и МЭМС технологий. Рисунок для представления приципа работы.
Алгоритмы работы
Рассматривается бесплатформенная ИНС. По рабоче -крестьянски это будет звучать так, у системы нет физической реальной платформы которая запомнила своя состояние и предохраняла ЧЭ от влияния угловых перемещений объекта. Тоесть в случае с БИНС гироскопы и акселерометры размещаются на корпус объекта, а функции гиростабилизирующей платформы выполняет бортовое вычислительное устройство. Это и плюс и самый большой минус работы. Поскольку микроЭВМ всегда надо держать в памяти матрицы перехода которые содержать всегда тригонометрические функции. Задача навигационной системы на выходы выдать углы, устоявшиеся названия тангаж, крен, рысканья. Распространено три способа подсчёта этих углов. Первый самый простой в плане понимания формул и реализация Углы Эйлера-Крылова, второй способ очень популярен у буржуев, направляющих косинусов (DCM) и третий с небольшим оттенком «мнимости» кватернионы или его ещё называют Родрига-Гамильтона. В метаматематики и теории на выходы всех трех способов должно получится одно и тоже. Кинематические уравнения в углах Эйлера — Крылова имеют невысокий порядок (третий) и понятную структуру, но содержат тригонометрические функции от искомых углов и допускают вырождение при угле тангажа, равное 90°. Все это обусловливает их непригодность в БИНС. Уравнения БИНС, записанные с использованием матрицы направляющих косинусов, — линейные, определены для любых углов рыскания, тангажа и крена, однако уравнения имеют достаточно высокий — девятый порядок. Кроме того, уравнения должны быть дополнены шестью уравнениями связи.
Кватернионы предоставляют удобное математическое обозначение положения и вращения объектов в пространстве. В сравнении с углами Эйлера, кватернионы позволяют проще комбинировать вращения, а также избежать проблемы, связанной с невозможностью поворота вокруг оси, независимо от совершённого вращения по другим осям (на иллюстрации). В сравнении с матрицами они обладают большей вычислительной устойчивостью и могут быть более эффективными.
Приведу обобщенную блок схему работу всей системы в целом.
. Рисунок взят из книги Матвеева, также мастхев для бинсо-иследователей.
Все проблемы БИНС
Как выше упоминалось, системе надо держать в голове матрицы с тригонометрическими функциями. Плюс при каждом шаге расчёта значения, мы получаем ошибку, тоесть накапливаем её. Второе МЭМС датчики они имеют много плюс, но у них есть существенный минус он «шумят». Тоесть при проектировании навигационной системы, нужно учесть накопление ошибки и шумы датчиков. Вот тут вопрос, все ли проблемы я описал. Теперь поподробнее о накаплении ошибки. Для тех кто высшую математичку знает на отл, может пропустить. Тут как бы мысли вслух. Вот где происходит накопление ошибки?
Возьмем синус. Мы как в школе его считали. Да ни как. Мы запомнили его значение для 3 углов и всё. И еще на уроках оптики нам сказали что синус при малых углах равен углу. Тоесть мы знали три значения для трех «гостовых не жизненных углов» и один синус для углов до 5 градусов. Но в жизни нас окружают не только 30, 45, 60 градусов. А бывают и 34, 79, и ещё с минутами и секундами. Тогда нам на помощь пришла таблица Брадиса. Тоесть некогого вычисления не происходило мы просто искали в таблице значение или угол и всё. Потом те кто доучился до 2 семестра первого курса тех. универа, узнал о ряде Тейлора и численных методах. В общем, я к чему это всё, микроконтроллер не человек он подходит к проблема «рекурсивно» «итерационно.» Ряд Тейлора пожалуйста посчитает, но до кого-то знака и за какое-то время. Вот эти «какие-то» очень важны. Они эти не определённости и вносят эту саму составляющую накопления. Плюс ограниченность самого ЭВМ в подсчёте числа с плавающей точкой. Проблемы интегрирования и накопления ошибки в численных методах описаны хорошо здесь. Варианты увлечения точности при расчёте тригонометрии ещё буду искать, но тут наверно всё завит от языка программирования.
Вторая проблема зашумленный сигнал с датчиков. В инерциальной навигации используется два способа устранения шума, первый фильтрация в буквальном смысле, аналог «марличка» которая пропускает воду и не пропускает всё остальное. И второй способ, «принцип избыточности», это когда информация об одном состоянии поступает с нескольких независимых источников. Хорошая статья по этому поводу вот.
Вместо выводов
Статья моя первая, отчасти может написано примитивным языком, просто хочется чтобы максимально понятно было. Поскольку статья вводная, хочу разобраться какие конкретно вопросы интересны сообществу. Сейчас есть готовая статья про моделирование mems датчиков в Maltab, хочу услышать замечания и комментарии по первой, может внесу изменения в следующую статью. Есть опыт и готовые модели всей навигационной системы (на DCM) в matlab. И есть хороший проект-продолжение серии статей по cortex m3/m4 на котором это всё реализовано.
Автор: utya