Датчики систем стабилизации для многороторных систем. Теория и практика.
что измеряет конкретный акселерометр прямым текстом указано в его даташите.
а вот некий сферический акселерометр вполне может игнорировать силу тяжести, особенно если он в вакууме (читай далеко от источников притяжения).
Чистяков пишет, что акселерометр измеряет (меряет по-авторски) реакцию подвеса. А эта реакция вызвана силой тяжести или m*некое_ускорение.
В свободном падении акселерометр по оси Z показывает 0.
При криволинейном движении реакция опоры вызвана силой тяжести, кориолисовым ускорением, центростремительным. Поэтому и нельзя летать по акселерометру в общем случае.
Может кто-нибудь из ГУРУ снизойдёт и напишет как-же все-таки взаимодействуют аксели и гиры внутри квадрика ??
Что за что отвечает и как именно происходит выравнивание , стабилизация и полет ?
Как привязаны параметры PID к гирам и акселям ?
Высшей математики не нужно…
Нужно объяснение “на пальцах” , доступно.
Может кто-нибудь из ГУРУ снизойдёт и напишет как-же все-таки взаимодействуют аксели и гиры внутри квадрика ??
Что за что отвечает и как именно происходит выравнивание , стабилизация и полет ?
Как привязаны параметры PID к гирам и акселям ?
Сразу предупреждаю, я НЕ гуру. Но постараюсь.
-
“Гира” - это ДУС (датчик угловой скорости). Зх-осевая “гира” реагирует на вращения вокруг 3х осей X Y Z
Контроллер принимает с ДУС 3 цифры, которые характеризует скорость поворота вокруг каждой оси.
Пусть мы принимаем с ДУС сигнал 1 раз в 2 секунды. Тогда можно определить угол поворота вокруг оси Х так: приняли угловую скорость по оси Х, умножили на время 2 сек + приняли новую угловую скорость по оси Х, умножили на время 2 сек и так далее. В реальности ДУС опрашивается гораздо чаще. Но суммирование и опрос происходят не непрерывно, а тактами, поэтому мы упускаем микроповороты. Со временем количество пропущенных микроповоротов растет. Поэтому “гира” уплывает. Тем более, наши датчики несовершенные, подвержены влиянию температуры. Зато ДУС отлично ловит быстрые повороты, небольшие колебания и слабо шумит. -
Акселерометр при равномерном движении (без ускорений, вращений, падений и скачков) позволяет определить направление силы тяжести и горизонт. Акселерометр шумный и не способен быстро реагировать на небольшие наклоны. Он боится вибрации. Зато он не уплывает и всегда покажет горизонт в состоянии покоя.
-
Обычно “гиры” используются для отслеживания быстрых поворотов. А уплывание “гир” неспешно корректируется акселерометром. Алгоритм может отказаться от использования акселерометра, если определит, что датчик находится в неблагоприятных условиях (вибрация, перегрузки, ускорения) и врет. Это не страшно. В обычном режиме квадрик часто находится в нормальных условиях, т.е. всегда успеваем выровнять горизонт за счет акселерометра.
-
Акселерометр реагирует только на наклоны. Он не может отследить вращения. Поэтому рысканье контролируется только ДУС (ось Z ака YAW). А ДУС, как известно, плывет. Отсюда и медленное вращение квадрика. На помощь приходит 3х осевой компас. Вектор магнитного поля Земли у нас направлен под углом в землю. Этот вектор раскладывается по 3м осям компаса. Поэтому зная 3 «числа» из компаса, можно определить положение квадрика. При наклонах «числа» пропорционально растут-убывают на соответствующих осях. Но компас реагирует на моторы, железный хлам, силовые провода.
-
Итак, «гиры» уплывают, но ловят быстрые вращения. Акселерометры всегда видят наклон, но шумят, боятся ускорений и вибраций, а также не способны определить рысканье (это не наклон). Магнетометр не боится вибраций, ускорений, но дает большую погрешность, врет над металлом и проводами. Согласно принципам синергетики, нужно совместить эти 3 датчика и получить нечто новое. В IMU с ДУС, акселерометрами и магнетометром (9DOF = 9 степеней свободы) сохраняются все преимущества датчиков, а недостатки компенсируются.
-
Стабилизация = обычное регулирование с ПИД. У нас есть горизонт, есть наклоненный квадрик. Управление мотором (Обороты) выглядит примерно так: U = RC + p*ошибка + i*(сумма ошибок за все время) + d*(скорость нарастания ошибки)
Где «Ошибка» = «горизонт» – «наклон»; p,i,d – коэффициенты; RC – задание оборотов с пульта.
Если мы сделаем большое «p», то при наклоне квадрик начнет слишком резко выравниваться и перевернется в другую сторону или начнет раскачиваться. Эта составляющая существует только тогда, когда ошибка ненулевая. Поэтому только П-составляющая никогда идеально не выведет в горизонт.
Большое i введет нас в расчкачку, потому что сумма ошибок за все время может накопиться приличная, соответственно, получится перерегулирование. Зато использование этой составляющей позволяет вывести квадрик в горизонт: управление исчезнет, когда ошибка станет равна нулю.
Параметр d управляет реакцией на скорость наклона. Чем быстрее наклон квадрика, тем значительнее будет противодействие мотора.
Конечно, это все утрировано и упрощено. В реальности, каналов управления гораздо больше. Расчет управляющих воздействий более сложный, с миксами (потому что каналы перекрестные). Например, при компенсации рысканья одновременно идет компенсация потери высоты, крена и тангажа. А моторы-то одни и те же.
Работа с датчиками тоже не так проста, используются фильтры, чтобы отсечь вибрации, устанавливается чувствительность во избежании переполнения АЦП датчика. Коррекция горизонта выполняется по сложным алгоритмам с линеаризацией или честными МАРГ, DCM и чем-то еще.
Musgravehill
Спасибо. Очень подробно. Очень полезная информация.
Почему на квадрики не ставят гироскопы с режимом удержания ( HH - Heading Hold ) ?
Как на вертолетных хвостах.
Тогда бы ничего не уплывало бы , курс держался нормально.
Вертолеты же обходятся без компаса и хвост “прибитый” при этом.
Почему на квадрики не ставят гироскопы с режимом удержания ( HH - Heading Hold ) ?
Как на вертолетных хвостах.
Тогда бы ничего не уплывало бы , курс держался нормально.
Почему на квадрики не ставят гироскопы с режимом удержания ( HH - Heading Hold ) ?
Вертолеты же обходятся без компаса и хвост “прибитый” при этом.
За * минут хвост повернется. За час он совершит несколько оборотов.
Просто дрейф медленный, вы гораздо чаще сами поворачиваете хвост с пульта и не замечаете, что за 30 секунд “блинчика” вертолет повернулся на 1 градус.
На повестку дня (т.е. вечера ) выносится вопрос :
Как заставить коптер ровно крутится по руддеру без расколбаса ?
Крутится быстро и четко !
Во многих роликах видел как коптеры довольно быстро и совершенно четко крутятся без малейшего переколбаса.
У меня была GAUI 330x и сейчас xaircraft 450 pro. Оба при быстром вращении , теряют стабильность.
Какой алгоритм настройки для нормального вращения ?