Система стабилизации гиро+акселерометр
Возвращаясь к дрейфу гироскопов, термостатирование, экранировка и прецизионное питание могут решить проблему дрейфа?
Два года разрабатываю всякую мелочь на базе AVR. По математике… Скажем так: есть человек, великолепно знающий математику, который с радостью втянется в такой проект. Но надеюсь сам осилить.
Такой ответ Вас устроит?
Возвращаясь к дрейфу гироскопов, термостатирование, экранировка и прецизионное питание могут решить проблему дрейфа?
Абсолютно - нет. Так как есть еще квантование АЦП и временной дрейф.
Построить систему ориентации только на гироскопах практически невозможно (инерциалки балистических ракет не в счет - эти модули миллионы долларов стоят).
разрабатываю всякую мелочь на базе AVR
AVR-ки может не хватить. Лучше бы ARM или DSP архитектуры.
есть человек, великолепно знающий математику, который с радостью втянется в такой проект. Но надеюсь сам осилить.
В команде с математиком - справитесь, если не остынете. 😃
Удачи!
Просто начинаю догадываться, как китайцы фишку замутили… Тупо интегрируют показания гир, а по акселям ловят момент: как только результирующий вектор равен 1G, начинают медленно сводить вектор интеграторов к вектору акселей простым сложением/вычитанием.
[add]
у них на сайте видео было, где чувак вертит в руке прибор, а на мониторе 3Д-кубик вращается синхронно. Заметил минимум 2 момента, когда куб был градусов на 40 повернут в другую сторону, но тут же кадр видео сменялся 😃
начинаю догадываться, как китайцы фишку замутили… Тупо интегрируют показания гир, а по акселям ловят момент: как только результирующий вектор равен 1G, начинают медленно сводить вектор интеграторов к вектору акселей простым сложением/вычитанием.
Совершенно верно.
Тонкости только 2, как правильно поймать |G|=1, и что делать если |G| != 1 долгое время? Здесь то фишку и начинает колбасить. 😃
что делать если |G| != 1 долгое время?
как это что? яростно мигать синей лампочкой 😁 Потому и не умеют они вибрацию держать, когда кончик вектора круги описывает.
Эта часть вопроса как раз и определяет разницу между сотней уе и миллионом
длина G=1 калибровалась, судя по всему, в глухих китайских бараках 1 раз применительно к конкретному типу акселя.
длина G=1 калибровалась, судя по всему, в глухих китайских бараках
Если вообще калибровалась. 😃 (Да нет, шучу, калибровалась).
Но ИМХО, основные проблеммы у них с гирами, а не с акселями…
Или, что еще дешевле, обратить внимание на MultiWiiCopter
есть человек, великолепно знающий математику
Не поможет. Математически точно не описывается, потому что неизвестны 90% параметров.
Основная проблема во всех стабилизаторах - подбор коэффициентов (хотя бы те же банальные ПИД регуляторы).
Когда есть коммерчески готовая модель аппарата, то там проще, можно и опыты ставить и просчитывать пробовать, а вот когда модель неизвестна…
Простой пример: стабилизатор на модели типа ЛК с абсолютно плоским профилем(для простоты расчетов). Вылизали, подобрали коэффициенты, все работает. А теперь изменили угол установки ушей. Или увеличили киль. Что с коэффициентами делать? Я даже не спрашиваю, на какую абсолютную величину менять! Хотя бы покажите, в какую сторону их менять?
Есть такая наука - теория систем автоматического управления. Как раз про то, как делать всякие стабилизаторы и автопилоты. Ей учат в институте. Несколько лет. Это к вопросу о “быстренько на пальцах”.
Если Вы грамотный инженер, возьмите книжек по теме, почитайте, разберитесь. Поищите информацию о готовых реализациях алгоритмов управления - они в интернете есть. Разберитесь, как оно работает, а потом делайте свое.
Ключевые слова - САУ, цифровые системы управления, гиростабилизатор…
Начать можно отсюда gluonpilot.com/wiki/Main_Page
Как использовать калман фильтр - можно почитать тут tom.pycke.be/mav/71/kalman-filtering-of-imu-data
Я на базе этого алгоритма делал стабилизацию. Вполне адекватно работает.
Я на базе этого алгоритма делал стабилизацию. Вполне адекватно работает.
А Вы коррекцию горизонта как то обеспечивали?
А Вы коррекцию горизонта как то обеспечивали?
Фишка в том,это часто упускается при рассмотрении задачи, что наш аппарат не в вакууме и не в космосе, соответственно, если рассмотреть , для простоты, падающий шар в воздухе, то через какое то время он будет падать равномерно,т.е. без ускорения, за счет сопротивления воздуха и аксселеромеры покажут верное направление вектора гравитации. Это значение позволяет корректировать интегралл угловой скорости с гироскопов. Ну и так далее.
Покажут конечно, главная сложность понять в какой момент… Можно в простейшем случае для этого просто усреднять значения аксселя. Но время усреднения должно быть гарантировано больше любого мыслимого маневра с многократным запасом, и в то же время должно быть меньше времени ухода 0-ля гироскопа. С другой стороны это время можно уменьшать используя данные гиро о отсутствии угловой скорости. Те. значения нуля (интеграл гир) корректируется с некоторой постоянной времени усредненным ( с адаптивным временем усреднения по значению гиро) значением акселя. И обеспечить устойчивость и быструю сходимость всей этой байды…
Ну и так далее.
Фишка- именно в этом “так далее” 😃
Аппарат то не в воздухе падает, а в поле тяготения земли летит. А Земля-ещё и вращается.
И сила Кориолиса- зависит от широты места и курса аппарата относительно сторон света.
Поэтому, ввести какую то константу для коррекции- нельзя, ибо она будет другая в каждую следующую минуту 😦.
Для этого и используют ЗД магнитный компас, поскольку ему Кориолис-по барабану.
А для полного счастья- вводят ещё и коррекцию от ЖПС, который может показать, что началось скольжение (изменение курса и высоты), которого быть не должно, поскольку никаких команд от пилота-автопилота не поступало.
Тут то и корректируют “0” горизонта.
Именно поэтому ФИ 20 и работает горбато, стоит измениться на 10 градусов температуре.
А как они на Кориолиса реагируют- вообще непонятно, без компаса и ЖПС а то?
А как они на Кориолиса реагируют- вообще непонятно
Да никак они не реагируют. Чай модель не маятник Фуко и не ракета баллистическая, чтоб десятки минут по кругу летать. 😃
А как они на Кориолиса реагируют- вообще непонятно, без компаса и ЖПС а то?
Не усложняйте… Кориолис, ЖПС… это уже величины второго порядка. Я делал, летает, не идеально, пошатывает, подрагивает, но это может быть связано с медленной отработкой контроллеров двигателей. Трикоптер держит. Летало, маневрировало… Попробуйте, у вас тоже получится.
Д и не ракета баллистическая, чтоб десятки минут по кругу летать. 😃
А что за ракеты, по кругу летающие? Да еще и баллистические. Обидно, да.
пока тут идут разговоры- автору темы если надо было бы -он бы по быстрому(как и хотел) мог бы изучить тему трикоптер со всеми ссылками, и начать свой проект, так что видно здесь явный пример оле…дства
Да нам и самим друг перед другом поумничать хочется… 😃 Тем более в теме появились разработчики… Про коррекцию по GPS имхо вполне реально. В моем АП в режиме удержания курса/высоты при условии отсутствии команд на их изменение в течение n-секунд и стабилизации полета по показания GPS автоматичеки коректируются нули элеронов/РВ (авто-триммирование) и нули пироголовы по накопленной интегральной составляющей ПИД регуляторов. Конечно при этом не учитываются боковой ветер и восходящие потоки, но в реале все работает вполне прилично. В приципе этот прием можно было бы использовать и для коррекции гироскопа (даже акссели не обязательны), но… Прийдется требовать от пилота периодического бросания ручек и дать возможность самолету выровнятся… Фигня, короче получается…
В моем АП в режиме удержания курса/высоты при условии отсутствии команд на их изменение в течение n-секунд и стабилизации полета по показания GPS автоматичеки коректируются нули элеронов/РВ (авто-триммирование) и нули пироголовы по накопленной интегральной составляющей ПИД регуляторов.
А зачем пироголовам необходимо постоянное триммирование? Что-то уходит в процессе полета? Или между полетами?
Прийдется требовать от пилота периодического бросания ручек и дать возможность самолету выровнятся…
Фишка только так и лечится. 😃