Система стабилизации гиро+акселерометр

Фантомас

Два года разрабатываю всякую мелочь на базе AVR. По математике… Скажем так: есть человек, великолепно знающий математику, который с радостью втянется в такой проект. Но надеюсь сам осилить.

Такой ответ Вас устроит?

baychi
Syberian:

Возвращаясь к дрейфу гироскопов, термостатирование, экранировка и прецизионное питание могут решить проблему дрейфа?

Абсолютно - нет. Так как есть еще квантование АЦП и временной дрейф.
Построить систему ориентации только на гироскопах практически невозможно (инерциалки балистических ракет не в счет - эти модули миллионы долларов стоят).

Фантомас:

разрабатываю всякую мелочь на базе AVR

AVR-ки может не хватить. Лучше бы ARM или DSP архитектуры.

Фантомас:

есть человек, великолепно знающий математику, который с радостью втянется в такой проект. Но надеюсь сам осилить.

В команде с математиком - справитесь, если не остынете. 😃
Удачи!

Syberian

Просто начинаю догадываться, как китайцы фишку замутили… Тупо интегрируют показания гир, а по акселям ловят момент: как только результирующий вектор равен 1G, начинают медленно сводить вектор интеграторов к вектору акселей простым сложением/вычитанием.

[add]
у них на сайте видео было, где чувак вертит в руке прибор, а на мониторе 3Д-кубик вращается синхронно. Заметил минимум 2 момента, когда куб был градусов на 40 повернут в другую сторону, но тут же кадр видео сменялся 😃

baychi
Syberian:

начинаю догадываться, как китайцы фишку замутили… Тупо интегрируют показания гир, а по акселям ловят момент: как только результирующий вектор равен 1G, начинают медленно сводить вектор интеграторов к вектору акселей простым сложением/вычитанием.

Совершенно верно.
Тонкости только 2, как правильно поймать |G|=1, и что делать если |G| != 1 долгое время? Здесь то фишку и начинает колбасить. 😃

Syberian
baychi:

что делать если |G| != 1 долгое время?

как это что? яростно мигать синей лампочкой 😁 Потому и не умеют они вибрацию держать, когда кончик вектора круги описывает.
Эта часть вопроса как раз и определяет разницу между сотней уе и миллионом

длина G=1 калибровалась, судя по всему, в глухих китайских бараках 1 раз применительно к конкретному типу акселя.

baychi
Syberian:

длина G=1 калибровалась, судя по всему, в глухих китайских бараках

Если вообще калибровалась. 😃 (Да нет, шучу, калибровалась).
Но ИМХО, основные проблеммы у них с гирами, а не с акселями…

leprud
Фантомас:

есть человек, великолепно знающий математику

Не поможет. Математически точно не описывается, потому что неизвестны 90% параметров.
Основная проблема во всех стабилизаторах - подбор коэффициентов (хотя бы те же банальные ПИД регуляторы).
Когда есть коммерчески готовая модель аппарата, то там проще, можно и опыты ставить и просчитывать пробовать, а вот когда модель неизвестна…
Простой пример: стабилизатор на модели типа ЛК с абсолютно плоским профилем(для простоты расчетов). Вылизали, подобрали коэффициенты, все работает. А теперь изменили угол установки ушей. Или увеличили киль. Что с коэффициентами делать? Я даже не спрашиваю, на какую абсолютную величину менять! Хотя бы покажите, в какую сторону их менять?

RedSun

Есть такая наука - теория систем автоматического управления. Как раз про то, как делать всякие стабилизаторы и автопилоты. Ей учат в институте. Несколько лет. Это к вопросу о “быстренько на пальцах”.
Если Вы грамотный инженер, возьмите книжек по теме, почитайте, разберитесь. Поищите информацию о готовых реализациях алгоритмов управления - они в интернете есть. Разберитесь, как оно работает, а потом делайте свое.
Ключевые слова - САУ, цифровые системы управления, гиростабилизатор…

blade
seagsm:

Я на базе этого алгоритма делал стабилизацию. Вполне адекватно работает.

А Вы коррекцию горизонта как то обеспечивали?

seagsm
blade:

А Вы коррекцию горизонта как то обеспечивали?

Фишка в том,это часто упускается при рассмотрении задачи, что наш аппарат не в вакууме и не в космосе, соответственно, если рассмотреть , для простоты, падающий шар в воздухе, то через какое то время он будет падать равномерно,т.е. без ускорения, за счет сопротивления воздуха и аксселеромеры покажут верное направление вектора гравитации. Это значение позволяет корректировать интегралл угловой скорости с гироскопов. Ну и так далее.

msv

Покажут конечно, главная сложность понять в какой момент… Можно в простейшем случае для этого просто усреднять значения аксселя. Но время усреднения должно быть гарантировано больше любого мыслимого маневра с многократным запасом, и в то же время должно быть меньше времени ухода 0-ля гироскопа. С другой стороны это время можно уменьшать используя данные гиро о отсутствии угловой скорости. Те. значения нуля (интеграл гир) корректируется с некоторой постоянной времени усредненным ( с адаптивным временем усреднения по значению гиро) значением акселя. И обеспечить устойчивость и быструю сходимость всей этой байды…

blade
seagsm:

Ну и так далее.

Фишка- именно в этом “так далее” 😃
Аппарат то не в воздухе падает, а в поле тяготения земли летит. А Земля-ещё и вращается.
И сила Кориолиса- зависит от широты места и курса аппарата относительно сторон света.
Поэтому, ввести какую то константу для коррекции- нельзя, ибо она будет другая в каждую следующую минуту 😦.
Для этого и используют ЗД магнитный компас, поскольку ему Кориолис-по барабану.
А для полного счастья- вводят ещё и коррекцию от ЖПС, который может показать, что началось скольжение (изменение курса и высоты), которого быть не должно, поскольку никаких команд от пилота-автопилота не поступало.
Тут то и корректируют “0” горизонта.
Именно поэтому ФИ 20 и работает горбато, стоит измениться на 10 градусов температуре.
А как они на Кориолиса реагируют- вообще непонятно, без компаса и ЖПС а то?

baychi
blade:

А как они на Кориолиса реагируют- вообще непонятно

Да никак они не реагируют. Чай модель не маятник Фуко и не ракета баллистическая, чтоб десятки минут по кругу летать. 😃

seagsm
blade:

А как они на Кориолиса реагируют- вообще непонятно, без компаса и ЖПС а то?

Не усложняйте… Кориолис, ЖПС… это уже величины второго порядка. Я делал, летает, не идеально, пошатывает, подрагивает, но это может быть связано с медленной отработкой контроллеров двигателей. Трикоптер держит. Летало, маневрировало… Попробуйте, у вас тоже получится.

crand
baychi:

Д и не ракета баллистическая, чтоб десятки минут по кругу летать. 😃

А что за ракеты, по кругу летающие? Да еще и баллистические. Обидно, да.

funtik26

пока тут идут разговоры- автору темы если надо было бы -он бы по быстрому(как и хотел) мог бы изучить тему трикоптер со всеми ссылками, и начать свой проект, так что видно здесь явный пример оле…дства

msv

Да нам и самим друг перед другом поумничать хочется… 😃 Тем более в теме появились разработчики… Про коррекцию по GPS имхо вполне реально. В моем АП в режиме удержания курса/высоты при условии отсутствии команд на их изменение в течение n-секунд и стабилизации полета по показания GPS автоматичеки коректируются нули элеронов/РВ (авто-триммирование) и нули пироголовы по накопленной интегральной составляющей ПИД регуляторов. Конечно при этом не учитываются боковой ветер и восходящие потоки, но в реале все работает вполне прилично. В приципе этот прием можно было бы использовать и для коррекции гироскопа (даже акссели не обязательны), но… Прийдется требовать от пилота периодического бросания ручек и дать возможность самолету выровнятся… Фигня, короче получается…

baychi
msv:

В моем АП в режиме удержания курса/высоты при условии отсутствии команд на их изменение в течение n-секунд и стабилизации полета по показания GPS автоматичеки коректируются нули элеронов/РВ (авто-триммирование) и нули пироголовы по накопленной интегральной составляющей ПИД регуляторов.

А зачем пироголовам необходимо постоянное триммирование? Что-то уходит в процессе полета? Или между полетами?

msv:

Прийдется требовать от пилота периодического бросания ручек и дать возможность самолету выровнятся…

Фишка только так и лечится. 😃

msv

У меня нет вертикальной пары пирометров (уже думаю может и к лучшему… 😃), поэтому перед каждым полетом требуется калибровка для определения температурного градиента. Горизонт на практике совершенно не соответствует среднему арифметическому между мин и мах показаниями, и даже не соответствует некоторому постоянному коэффициенту пропорциональности (объяснить это при желании можно…) поэтому калибровка заканчивается ручной установкой нулевого горизонта. К сожалению этот горизонт в полете тоже оказывается не точным ( частично возможно из-за неидеальной симметричности модели… ведь в полете нам нужно не что бы крылья были строго параллельно горизонту, а что бы он ровно летел…) и требовалось дополнительная калибровка уже в воздухе…
Теперь все проще, подбросил, включил режим удержания курса/высоты и наслаждаешьсь, как самолет из широкой петли выходит на ровный курс.