flybrain. передатчик + приемник + автопилот. powered by stm32
вариант действия на аварийный случай
Ну для начала надо определиться, какой конкретно аварийный случай рассматриваем. Если только отваливание гпс… Но честно говоря например у меня даже со старым EM403 гпс отваливался куда реже, чем происходили другие “аварийные случаи” и как правило, гпс возвращался через несколько секунд, в отличие например от сорванной сервы… Последние же наверное года два вообще не припомню отваливания гпс. Так что лучше ИМХО направить усилия на красивую и глубокую реализацию управления моделью в нормальном состоянии, чем придумывать кейсы типа а что мы будем делать, если мотор сорвет с одного крепления, он уйдет в расколбас, заденет крыло, отчего элерон встанет раком, а аккум от вибрации уедет на 5см назад…
Так что лучше ИМХО направить усилия на красивую и глубокую реализацию управления моделью в нормальном состоянии
Я сейчас так и делаю 😃 Но думать про особые кейсы заранее тоже полезно
Я когда изначально подступил к разработке алгоритма стабилизации, тоже думал примерно так и сделать, однако отмел эту тему почти сразу, ибо
в такой системе как вы описываете возникает куча вопросов, ответов на которые нет.
Алексей, у Вас была куча вопросов по динамике самолета. Вам посоветовали почитать соответствующую книжку, и почти все ответы нашлись. Так вот, попробуйте почитать книжку по системам автоматического управления, причем такие книжки есть уже с самолетной спецификой. Вы не поверите, но практически все современные системы стабилизации используют в том или ином виде вышеописанный алгоритм. Это называется “системы с обратной связью” 😃).
Что касается борьбы с автоколебаниями и резонансом, то все давным-давно придумано. Погуглите по слову “демпфер”. Это отрицательная обратная связь по скорости изменения регулируемой координаты. При наличии датчика, эту самую скорость измеряющего, добавляется одна строчка кода. Если мы стабилизируем угол, нам нужна информация об угловой скорости. Измеряет угловую скорость кто ? Правильно, гироскоп в режиме ДУС. 😃))
Вы не поверите, но практически все современные системы стабилизации используют в том или ином виде вышеописанный алгоритм
Я как раз такую и читал, там и про динамику и про автопилоты все разжевано.
Атоматическое управление полетом самолета.В.Г. Воробьев, С.В. Кузнецов Москва “Транспорт” 1995 г.
Нет там такого, чтобы что-то подал и посмотрел что получится. Обратная связь там идет с показаний гировертикали.
Погуглите по слову “демпфер”.
Спасибо, я уже все сделал на эту тему 😉
Правильно, гироскоп в режиме ДУС
Нет, в общем случае это неправильно. Никто не гарантировал что оси ДУС в модели сорентированы в соответствии с осями самолета. Тут надо хитро, я уже все сделал 😉
…Нет там такого, чтобы что-то подал и посмотрел что получится. Обратная связь там идет с показаний гировертикали.
Согласен, формулировка дурацкая, перепутаны причина и следствие.
И еще один момент - флайбар вертолета стабилизации в общем случае не обеспечивает, это демпфер, который гасит резкие броски по крену и тангажу, помогая пилоту висеть. Так что вполне хватит обратной связи по угловой скорости, которую, собственно, механический флайбар и обеспечивает. В электронный, в принципе, можно запихнуть и стабилизацию угла, но это будет уже дополнительный функционал, требующий в общем случае дополнительных датчиков…
Никто не гарантировал что оси ДУС в модели сорентированы в соответствии с осями самолета. Тут надо хитро, я уже все сделал 😉
А не проще один раз выставить платформу геометрически верно, и в дальнейшем не париться ? Ну а если очень хочется ее переставлять и двигать, никто не мешает каждый раз проводить предполетную калибровку 😃))
Так что вполне хватит обратной связи по угловой скорости, которую, собственно, механический флайбар и обеспечивает.
Таую штуку я уже внедрил по результатам работы над ошибками.
требующий в общем случае дополнительных датчиков…
Ну вот как-бы да, было бы супер, но увы и ах… приходится работать с теми сервами, что реально существуют на практике, а не в сферическом вакууме.
каждый раз проводить предполетную калибровку
Как калибровку не проводи, ДУС все равно врать будет по отношению к реальным осям bodyframe. В общем случае нельзя считать что показание по ДУС по х это pitch, а по y - roll. Вообщем не хотелось бы сейчас в детали вдаваться, но я эту проблему порешал. Сейчас платформу можно ставить в самолет с очень большими допусками во всех плоскостях и кренах. Сейчас “удобство пользователя” хотя бы через консоль доведу до более менее приемлемого варианта и буду новые тесты проводить. Вчера сделал режим полета по кругу и удержание высоты без использования GPS. Посмотрю как будет отрабатывать маневры разворотов, там уже будет видно где еще подшаманить.
В электронный, в принципе, можно запихнуть и стабилизацию угла, но это будет уже дополнительный функционал, требующий в общем случае дополнительных датчиков…
Она там тоже есть. Только для получения угла из скорости никаких лишних датчиков не надо, нужен интеграл.
Хотя об чём это я? Модель уже и так давно знает свою ориентацию в пространстве, да и в ходе настроек датчики должны были как-то определится вдоль какой оси им посчастливилось стоять. Дальше дело за миксами и математикой.
приходится работать с теми сервами, что реально существуют на практике, а не в сферическом вакууме.
Если не нравится обратная связь, можно при настройке попросить отклонить рули (по очереди) на определённый угол (+5, 0, -5) и по ширине импульса управляющего сигнала примерно определить геометрию.
Правда не понимаю что даст угол отклонения сервы без знания формы рулевой поверхности…
Ну вот как-бы да, было бы супер, но увы и ах… приходится работать с теми сервами, что реально существуют на практике, а не в сферическом вакууме.
…Как калибровку не проводи, ДУС все равно врать будет по отношению к реальным осям bodyframe. В общем случае нельзя считать что показание по ДУС по х это pitch, а по y - roll. Вообщем не хотелось бы сейчас в детали вдаваться, но я эту проблему порешал. Сейчас платформу можно ставить в самолет с очень большими допусками во всех плоскостях и кренах.
Я под калибровкой в данном случае подразумевал не только оценку собственного дрейфа гироскопов, а оценку платформы целиком. То есть ставим самолет неподвижно в положение, которое нам хочется считать горизонтальным. По сигналам акселерометров определяем рассогласование осей платформы и ероплана. Заранее считаем все синусы-косинусы, чтобы потом время не терять. А в полете пересчитываем оси платформы в связанные. Я имел в виду именно это. Подозреваю, что у Вас эта проблема как-то так и решена.
Только для получения угла из скорости никаких лишних датчиков не надо, нужен интеграл.
Фигня в том, что дрейф гироскопа (сиречь ошибка оценки угловой скорости) при простом интегрировании вызывает нарастающую со временем ошибку оценки угла. Именно поэтому для коррекции горизонта используются еще и сигналы с акселерометров. А вот с курсом такой фокус не проходит, оттого и приходится коптерщикам-вертолетчикам всякие компасы использовать…
Правда не понимаю что даст угол отклонения сервы без знания формы рулевой поверхности…
…а еще без знания ее площади, плеча и прочих нужных параметров…
Подозреваю, что у Вас эта проблема как-то так и решена.
Да, решена. Я постоянно привожу текущие проекции векторов датчиков к реальным осям bodyframe, заданному референсному положению. У меня есть все эти показатели, только они уже после соответствующей обработки математической появляются.
всякие компасы использовать…
Тут все в порядке. У меня полноценные 9 осей: гира+аксель+компас. Курс держится четко, никуда не уходит. Погрешность в пределах 0,5 градуса
Вставлюсь. С точки зрения созерцателя вроде бы все идет как и должно.
Но последнее утверждение вызвало улыбку что-ли. Я про нольпять градуса.
утверждение вызвало улыбку
Если алгоритм содран с моего, там действительно в карусельном тесте не более чем на 0.5 град уходит по крену и тангажу. Курс шарится ± 3 градуса, что с компаса возьмешь…
А вот обсуждение “формы закрылков” и какой-то “телорамы” с осями в разные стороны реально доставляет 😁
Если алгоритм содран с моего
А у тебя какой алгоритм? арг или марг товарища себастьяна магвика? или дцм?
и какой-то “телорамы”
Тут правильный термин - бодифрейм это система координат связанная с телом.
А у тебя какой алгоритм?
У меня EKF на кватернионах полноценный. Используется gyro (400Гц) + accel(100Гц) + Mag(~50Гц). Цикл update+predict работает на частоте гироскопа. Дрейф по всем плоскостям практически нулевой, сколько бы я плату ни крутил и как бы долго ее не оставлял на месте лежать. Цифры плавают в пределах 0,8-0,5 градуса.
полноценный
Что значит полноценный? екф бывает неполноценный.
Дрейф по всем плоскостям практически нулевой
Дрейф и точность разные вещи. Ты говорил про точность в нольпять градусов. Чем ты это проверял? Транспортиром?
екф бывает неполноценный
Да, запросто, буквально недавно видел один проект с исходниками. Нет оно конечно как-то работает, но…
www.gluonpilot.com/wiki/Main_Page Скачай исходники, получи удовольствие
Дрейф и точность разные вещи
Может быть терминология неудачная. Дрейф это когда я положил, засек сколько градусов по всем осям, потом через час пришел, проверил. В градусах все три оси в тех же положениях.
Про точность. Кладем на лист бумаги, обвели ручкой контур. Взяли плату, покрутили, положили. Выровняли по отрисовке. Смотрим сколько показывают. Расхождение меньше градуса от начального варианта. Если рядом сильный магнит, оно конечно поедет на пару градусов по Yaw. Такое объяснение устраивает? Терминологию придумай сам. Конечно, надо не про точность вести речь, поскольку не с чем сравнивать , но о повторяемости ошибки относительно начального референсного положения говорить вполне можно. Знать конкретно где север, а где юг, мне на фиг не нужно и глубоко безразлично. Для ОСД конечно я прямо в поле на взлете сравниваю GPS и компас и засекаю реальную ошибку, после этого это изначение использую для показания истинного направления на север. Сейчас на показания YAW при вычислениях можно опираться примерно до крена в 80 градусов в любом направлении, это я выяснил чисто экспериментом. В принципе при кренах больше, о курсе речь уже не идет чисто физически.
ты положи поделку на стол, засеки 0 по яву и начинай поворачивать. При повороте на 90 по транспортиру, сколько градусов у тебя яв показывает? предположу, что не 90, а больше
по поводу екф и кватернионов. Не пойму как ты типа сам написал код, если не мог определить из кватерниона положение тела? Признавайся из какого проекта брал, и мы оценим полноценность екф.
Ок, я понял о чем ты. Сегодня сделаю такой тест. Но что бы там ни было, оно вообщем-то не важно для самолета, у которого GPS есть на борту. Я даже уверен , что там будет ошибка, это же от качества калибровки магнетометра зависит. Главное, чтобы ошибка повторялась одинаково.
Но что бы там ни было, оно вообщем-то не важно для самолета, у которого GPS есть на борту
Эгм? Большинство людей считают, что самолеты не могут летать боком или хвостом вперед. Они ошибаются.
ошибка курса это разность показаний GPS по курсу и компаса по курсу. Где здесь затруднение в определении летим мы хвостом вперед или боком?
ошибка курса это разность показаний GPS по курсу и компаса по курсу.
Это ж не ошибка, это разные курсы. И они живут совершенно разной жизнью. Особенно показательно на коптерах и прочих дьявАльских машинах.
ошибка курса это разность показаний GPS по курсу и компаса по курсу.
GPS не может показать курс (Курс судна — угол между продольной осью летательного аппарата и направлением на север). Он может показать направление путевой скорости, что есть курс + угол сноса (Угол сноса — угол между продольной осью летательного аппарата и направлением его движения относительно земной поверхности).
Сравнимая показания GPS и компаса можно найти угол сноса (который зависит от ветра, конструкции модели и её положения в пространстве), но никак не ошибку компаса.