Датчики систем стабилизации для многороторных систем. Теория и практика.
Вот создал новую тему, так как были подняты давно наболевшие вопросы:
- Какие датчики используются в системах стабилизации многороторных систем и как они работают?
- Какие датчики хорошие, а какие не очень?
- Как обрабатывается сигналы с датчиков и чем?
- Как улучшить работу системы стабилизации, если это возможно, за счет других датчиков или программно?
- Аналоговые и цифровые датчики - о чем это?
- …Можно еще добавлять…
Думаю знающие люди помогут разобраться со всеми вопросами!
Пока цитирую начало из ветки rcopen.com/forum/f123/topic258633/1403
Сначала о гироскопах.
У большинства это устройство ассоциируется с механическим волчком запоминающим в течение некоторого времени положение собственной оси вращения.
Однако в применяемых нами устройствах это далеко не так. Это или пьезоэлектрический, или микромашинный элемент выходной сигнал которого при вращении вокруг оси чувствительности пропорционален угловой скорости. А интеграл от угловой скорости равен абсолютному углу отклонения. Для пространственной ориентации мы используем трёхосевую систему. И если в момент включения мы находимся на горизонтальной поверхности то в первое время - до десятков секунд система в состоянии вычислить и скомпенсировать угловые положения относительно стартового положения. Причём не важно используется аналоговое или цифровое интегрирование - временная ошибка непреодолима. К тому же динамический диапазон ограничен максимальной скоростью вращения. Всем пользователям известно, что даже после жёсткой посадки нужно перезапустить питание контроллера полёта: в результате удара в интегратор вписалась ошибка позиционирования.
Второй момент: часто пользователи спрашивают критично ли место расположения платы с гироскопами - нет не критично, т.к. они видят только угловую скорость, если на плате только гироскопы, её можно расположить хоть под двигателем на конце луча.
На сегодня пока всё. Завтра, если будет время, поговорим об акселерометрах.
P.S. И ко всем участникам форума, пожалуйста, поменьше флуда:)
Тогда еще добавить вот эту статейку MEMS: микроэлектромеханические системы, а то до сих пор народ спорит о том как работают гироскопы и акселерометры.
Жду материал про акселерометры !
Никогда не понимал как аксели помогают выравнивать горизонт у модели. Они ведь ускорение меряют…
А нам нужно угол отклонения от горизонтали. Эта ведь работа гироскопов. При чем здесь аксели ?
Никогда не понимал как аксели помогают выравнивать горизонт у модели
Проблема в том, что гироскоп постепенно накапливает ошибку (по идее, чем больше шумов гирика, тем быстрее накапливается ошибка). Т.е. скажем через 5 секунд в состоянии покоя, гирик покажет отклонение в 5гр. (утрированно, цифры взяты с потолка). Теперь чем нам помогает аксель. Так получилось, что он постоянно измеряет ускорение свободного падения по оси Z (9.81). Т.е. если аксель лежит в горизонте, то по оси Z у него 9.81, а так как он трех осевой, то повернув его на определенный угол, мы можем это задетектить и скомпенсировать показания гироскопа.
Это то как я понимаю, могу ошибаться. 😃
Жду материал про акселерометры !
Ссылка уже работает. Сайт 3dnews не работал какое то время. На всякий случай альтернативная ссылка nanonewsnet.ru/…/mems-mikroelektromekhanicheskie-s…
Никогда не понимал как аксели помогают выравнивать горизонт у модели. Они ведь ускорение меряют…
А нам нужно угол отклонения от горизонтали. Эта ведь работа гироскопов. При чем здесь аксели ?
Акселерометры измеряют линейное ускорение и чувствуют горизонт. Т.к. внутри акселерометра находится подвешенный “грузик” и датчики улавливают его смещение при наклоне.
Гироскопы измеряют не отклонение от горизонтали, а лишь угловую скорость. Т.е. гироскоп фиксирует лишь вращение по какой то оси, но горизонт он не видит. Так же как и не “чувствуют” горизонт механические гироскопы (уже было неоднократно на страницах форума)
Н.В.Чистяков. Что меряет акселерометр
Акселерометр меряет проекцию (на свою ось чувствительности) суммы всех сил, приложенных к его корпусу, кроме силы тяжести
что из меряет конкретный акселерометр прямым текстом указано в его даташите.
а вот некий сферический акселерометр вполне может игнорировать силу тяжести, особенно если он в вакууме (читай далеко от источников притяжения).
MEMS акселерометры. Что же там внутри?
что измеряет конкретный акселерометр прямым текстом указано в его даташите.
а вот некий сферический акселерометр вполне может игнорировать силу тяжести, особенно если он в вакууме (читай далеко от источников притяжения).
Чистяков пишет, что акселерометр измеряет (меряет по-авторски) реакцию подвеса. А эта реакция вызвана силой тяжести или 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. Оба при быстром вращении , теряют стабильность.
Какой алгоритм настройки для нормального вращения ?