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