dux-viator
Квадрокоптер при потере винта. пиление multiwii

Продолжаю модификацию Multiwii для полета квадрокоптера при отказе двигателя. Сформулированные за час-другой мысли в первой статье и заблуждения прошли крещение огнем. В одном из комментариев меня обрадовали что швейцарцы уже придумали что-то такое - респект им, однако они товарищи коммерческие и свободно распространяемому программному обеспечению их алгоритм не светит, как и бюджетным датчикам. Воодушевленный их успехами переписал PIDMIX, ввел коррекцию изменения веса лучей в результате воздействия центростремительной силы, ввел донирование оборотов от работающих на максимуме двигов, учел все остальное что напридумывал и попробовал взлететь (на оригинальном multiwii вообще не как). В итоге я получил и вправду летающую (правда смертоубийственную) машину. На видео видно как квадрик с включенным headfree накапливает ошибку и летит в сторону… в мою сторону (headfree в данном случае резонно перевести как свободный от головы) ). ) Тут конечно не ощущается, но квадрик 84 см в длину:

Квадрокоптер при отказе двигателя или начинаем модифицировать multiwii для аварийной посадки

Удивительно как мало информации по теме полет квадрокоптера при отказе двигателя, тем более не стоит удивляться, что по аварийному приземлению квадрокоптера при отказе двигателя ее вообще нету, вить какой-то умник сказал, что квадрик не может летать на трех винтах. Вообще-то, по сути (если не в корни), это не неверно. Поэтому в 50% случаев мы можем реализовать аварийную посадку ну совсем просто, так-как центр тяжести будет со стороны противоположного работающего двига. Все-что нужно задать в алгоритме ***wii - это аварийная скорость работы двигателей (примитивный аварийный PID регулятор), т.е. режим реально минимальных оборотов с периодическим отключением при наклонении в сторону отключенного движка, а для работающей пары - снять ограничение на максимальные обороты, т.к. аварийная посадка будет жесткой, пропорционально перегруженности квадрика. Если уж центр тяжести на стороне неработающего - то, самое лучшее просто отключить его. Это позволит снизить горизонтальную скорость, при этом вертикальная, за счет уменьшения угла атаки останется примерно той же. Другой вариант, но более сложный: при отказе двигателя со стороны центра тяжести - задать траекторию падения, также включив противоположный двигатель на минимальных оборотах, а на крутящемся в ту же сторону - снизить немного обороты. Мы получим крутяще-спиральное лавирование аппарата, при этом, за счет постоянного изменения вектора инерции аппарат не наберет горизонтальную скорость и приземлится почти на месте с большим кручением по YAW, причем чем сильнее элемент кручения, тем больше центробежная сила и как результат, еще одно побочное действие - волшебная частичная стабилизация аппарата по гороизонту. Несмотря на сложность заявленного, реализовать это не сложно (а мне уж подавно), так как патчить IMU не надо, достаточно эмулировать отклонение стиков и работу некоторых функций в виде программного модуля.