Математическая модель полёта дрона-квадрокоптера и способ гарантированной посадки его в «гнездо»

Математическая модель полёта дрона-квадрокоптера и способ гарантированной посадки его в «гнездо» Роботы

Базовые понятия

Квадрокоптеры бывают разные, но всех их объединяют четыре несущих винта:

Не смотря на кажущуюся симметрию, пилоту очень важно различать, где у квадрокоптера перед (показан стрелкой). Здесь, как у радиоуправляемых моделей автомобилей: при команде «вперед» квадрокоптер летит не туда, куда смотрит пилот, а туда, куда направлен воображаемый нос квадрокоптера.

Это таит в себе опасность: новичкам бывает трудно вернуть к себе подхваченный ветром аппарат, развернутый как-нибудь боком (мы, конечно, не говорим про полеты по камере от первого лица и про «умные» режимы полета с использованием компаса и GPS.) Решению этой проблемы частично могут помочь передние винты или лучи другого цвета, какой-нибудь шарик спереди или разноцветные светодиоды. Но все это оказывается бесполезным, когда пепелац стремительно превращается в точку над горизонтом.

Мы будем летать на раме квадрокоптера формы «X», потому что она мне больше нравится внешне. У каждой конструкции свои плюсы и свое предназначение. Кроме квадрокоптеров есть и другие мультикоптеры. Даже если не считать экзотические варианты, все равно их видов — целая куча!
Математическая модель полёта дрона-квадрокоптера и способ гарантированной посадки его в «гнездо»

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

Углы тангажа, крена и рыскания (pitch, roll, yaw) — углы, которыми принято определять и задавать ориентацию квадрокоптера в пространстве.
Математическая модель полёта дрона-квадрокоптера и способ гарантированной посадки его в «гнездо»Википедии это не совсем точно. Полет квадрокоптера в необходимом направлении достигается изменением этих трех углов. Например, чтобы полететь вперед квадрокоптер должен наклониться за счет того, что задние моторы закрутятся чуть сильнее передних:
Математическая модель полёта дрона-квадрокоптера и способ гарантированной посадки его в «гнездо»
Газ квадрокоптера — среднее арифметическое между скоростями вращения всех моторов. Чем больше газ, тем больше суммарная тяга моторов, тем сильнее они тащат квадрокоптер вверх (НЕ ВПЕРЕД!!! «Тапок в пол» здесь означает наискорейший подъем). Обычно измеряется в процентах: 0% — моторы остановлены, 100% — вращаются с максимальной скоростью. Газ висения — минимальный уровень газа, который необходим, чтобы квадрокоптер не терял высоту.

Смотрите про коптеры:  Применение квадрокоптеров: где используются дроны

Газ, тангаж, крен, рыскание — если вы можете управлять этими четырьмя параметрами, значит вы можете управлять квадрокоптером. Их еще иногда называют каналами управления. Если вы приобрели двухканальный пульт, с квадрокоптером вам не совладать. Трехканальный скорее подойдет для маленьких вертолетов: без управления креном летать можно, но на квадрокоптере — не удобно.

Режимов полета существует много. Используется и GPS, и барометр, и дальномер. Но мы хотим реализовать базовый — режим стабилизации (stab, stabilize, летать в «стабе»), в котором квадрокоптер держит те углы, которые ему задаются с пульта не зависимо от внешних факторов. В этом режиме при отсутствии ветра квадрокоптер может висеть почти на месте. Ветер же придется компенсировать пилоту.

Направление вращения винтов выбирается не случайно. Если бы все моторы вращались в одну сторону, квадрокоптер вращался бы в противоположную из-за создаваемых моментов. Поэтому одна пара противостоящих моторов всегда вращается в одну сторону, а другая пара — в другую.


Скоростью вращения моторов управляет

полетный контроллер (контроллер, мозги)

. Обычно это небольшая плата или коробочка с множеством входов и выходов. Существует огромное количество различных контроллеров с разным набором возможностей, разными прошивками, разными задачами. Вот лишь некоторые:

Обобщенной задачей полетного контроллера является несколько десятков раз в секунду выполнять цикл управления в который входит: считывание показаний датчиков, считывание каналов управления, обработка информации и выдача управляющих сигналов моторам, чтобы выполнять команды пилота. Именно это мы и собираемся запрограммировать.

Различных видов датчиков, которые можно задействовать, очень много. Мы будем использовать ставшие уже почти обязательными во всех квадрокоптерах трехосевой гироскоп и трехосевой акселерометр. Акселлерометр измеряет ускорение, гироскоп измеряет угловую скорость.

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

Моторы на мультикоптерах потребляют большие токи, поэтому полетный контроллер управляет ими не напрямую, а через специальные аппаратные драйвера, называемые регуляторами скорости (ESC, ре́гуль, е́ска).

«Протокол» общения между регулятором и мотором нам не так важен, как «протокол» общения между полетным контроллером и регулятором, ведь нам предстоит из контроллера программно управлять регулятором. Бывают регуляторы, управляемые по i2c, но наиболее распространенные управляются сигналом прямоугольной формы с минимумом 0 вольт и максимумом 3-5 вольт (его называют ШИМ или PWM, а некоторые утверждают, что правильнее — PPM. Подробнее, например, здесь).

«Протокол» — это громко сказано: чтобы дать команду мотору вращаться с максимальной скоростью контроллер должен отправлять импульсы длительностью 2 миллисекунды, перемежающиеся логическим нулем длительностью 10 — 20 миллисекунд. Длительности импульса в 1 миллисекунду соответствует остановка мотора, 1.

При всей кажущейся простоте, здесь кроется засада: полетные контроллеры бывают разные с разными настройками, регуляторы бывают разные, и минимум (1 мс) и максимум (2 мс) — не универсальны. В зависимости от множества факторов диапазон 1-2 мс может на деле оказаться 1.1 — 1.9 мс.

Для того, чтобы регулятор и контроллер говорили абсолютно на одном языке существует процедура калибровки регуляторов. В ходе этой процедуры диапазоны регуляторов изменяются и становятся равными диапазону контроллера. Процедура зашита в программу каждого регулятора и включает в себя несколько простых шагов (шаги могут отличаться в зависимости от производителя — читайте инструкции!):

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

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

Раз между приемником и контроллером свои товарищеские PWM отношения, то их тоже придется калибровать: пульты с приемниками бывают разные со своими диапазонами работы. Контроллер должен уметь подстраиваться. Процедуру калибровки радио, в отличие от калибровки регуляторов нам придется создавать самим как часть полетный программы. Общий план калибровки такой:

Итак: во время калибровки радио полетный контроллер запоминает диапазоны приемника по всем каналам управления; во время калибровки регуляторов диапазон полетного контроллера заносится во все регуляторы.

Помимо программы для полетного контроллера необходима еще одна программа: интерфейс настройки полетного контроллера. Чаще всего им является программа для PC, которая соединяется с полетным контроллером по USB и позволяет пользователю настраивать и проверять полетную программу, например: запускать калибровку радио, настраивать параметры стабилизации, проверять работу датчиков, задавать маршрут полета на карте, определять поведение мультикоптера при потере сигнала и многое другое. Мы свой интерфейс настройки будем писать на C и Qt в виде консольной утилиты. Вот она, если заглянуть в будущее:

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

Поэтому полетный контроллер должен обеспечивать хоть какую-то безопасность: механизм armed/disarmed. Состояние квадрокоптера «disarmed» означает, что моторы отключены и даже команда полного газа с пульта не имеет никакого эффекта, хотя питание подано.

Состояние «armed» квадрокоптера означает, что команды с пульта выполняются полетным контроллером. В этом состоянии квадрокоптеры взлетают, летают и садятся. Квадрокоптер включается и должен сразу попасть в состояние disarmed на тот случай, если невнимальельный пилот включает его, когда стик газа на пульте находится не в нуле.

Чтобы перевести коптер в состояние «armed» пилоту необхоимо сделать какой-то заранее оговоренный жест стиками пульта. Часто этим жестом является удержание левого стика в правом нижнем углу (газ = 0%, рыскание = 100%) втечении пары секунд. После этого полетный контроллер делает хотя бы минимальную самопроверку и при ее успешном прохождении “армится” (к полету готов!)

О моторах, аккумуляторах, регуляторах, пропеллерах

Выбор комплектующих для мультикоптера — тема для целого цикла статей. Если вы собираетесь сделать свой первый квадрокоптер — сформулируйте, для чего он вам нужен, и воспользуйтесь советами бывалых или возьмите список комплектующих, который составил кто-то другой и успешно на нем летает.

И все же для общего понимания полезно знать основные моменты.

Аккумуляторы

Среди любителей и профессионалов многороторных систем наиболее распространены литий-полимерные аккумуляторы, как основные источники питания бортовой электроники и моторов. Их различают по емкости, напряжению и максимальной токоотдаче. Емкость, как обычно, измеряется в ампер-часах или миллиампер-часах. Напряжение измеряется в количестве «банок» аккумулятора. Одна «банка» — в среднем 3.7 вольт. Полностью заряженая «банка» — 4.2 вольта. Наиболее распространеты аккумуляторы с количеством банок от трех до шести. Максимальная токоотдача измеряется в амперах, а маркируется, например вот так: 25C. C — емкость аккумулятора, 25 — множитель. Если емкость равна 5 амперам, то такой аккумулятор может отдавать 25 * 5 = 125 ампер. Конечно же параметр токоотдачи лучше брать с запасом, но, в основном, чем он больше, тем дороже аккумулятор. Пример маркировки: 25C 3S 4500mah.

Каждая банка является отдельным аккумулятором. Все они спаяны последовательно. Для того чтобы равномерно заряжать все банки предусматривается баллансировочный разъем с доступом к каждой банке отдельно, и использутся специальные зарядные устройства.

Моторы, пропеллеры, регуляторы

Основной параметр бесколлекторного мотора — его kv. Это количество оборотов в минуту на каждый вольт поданного напряжения. Наиболее распространены моторы с kv от 300 до 1100. Kv ближе к 1000 обычно выбирают для малых квадрокоптеров (1-2 килограмма плюс 500 граммов полезной нагрузки) и ставят на них пластиковые пропеллеры до 12 дюймов в диаметре. На больших мультикоптерах (для поднятия хорошей и тяжелой фото-видео техники) или на долголетах (для рекордов по времени полета) обычно стоят моторы с низким kv (300-500) и огромными карбоновыми пропеллерами (15 — 20 дюймов в диаметре). Kv — не единственный важный параметр мотора: часто можно встретить целые таблицы зависимости мощности мотора и тяги от подаваемого напряжения и типа установленного пропеллера. Кроме того, каждый мотор рассчитан на свой диапазон напряжений (количество банок аккумулятора) и на свой максимальный ток. Если производитель пишет 3-4S, не стоит использовать его с 5S аккумуляторами. Это же касается и регуляторов.

Если мотор рассчитан на ток до 30А, то регулятор стоит рассчитывать на ток до 30 10А, чтобы не допускать перегревов. Некачественные или неподходящие регуляторы могут вызвать так называемые «срывы синхронизации» и остановку мотора в полете, и вы узнаете еще один мультироторный термин: “поймал планету.” Еще один важный момент — толщина и качество проводов. Неправильно рассчитанное сечение провода или плохой коннектор могут привести к пожару в воздухе.

Как видите, нюансов очень много. Я не перечислил даже половины, поэтому самому подобрать комплектующие для первого мультикоптера довольно трудно.

Детали и цены


Самое важное и минимальное что потребуется для сборки с нуля (первым в списке идет то, что использовал я, затем то что используют многие другие):

Сам квадрокоптер
Моторы: 4 штуки
лучше брать на 1 больше, пригодится
hacker Style Brushless Outrunner 20-22L 924kv$12.88
hexTronik DT700 Brushless Outrunner 700kv$10.95
2213N 800Kv Brushless Motor$7.36
Пропеллеры: минимум 2 стандартных и 2 обратного вращения
в начале попыток и испытаний это будет главных расходный материал, поэтому берите сразу много, заодно часть из них будет бракованное и не пригодное для использования
10X6 Propellers (5шт)
10X6R Propellers (5шт)
$2.40
$3.04
APC 10×4.7 counter rotating propellers set$8.50
Регуляторы скорости: 4 штуки
покупать надо как и моторы с запасом, может быть брак или случайно сгорит и потом месяц ждать новый
HobbyKing 30A BlueSeries Brushless Speed Controller
они же Mystery 30A BlueSeries
$10.47
$13.96
TURNIGY Plush 25amp Speed Controller$11.81
Источник питания
с увеличением емкости растет и вес, а значит моторы будет больше потреблять, поэтому нет особого смысла брать супер емкий аккумулятор, лучше взять 2-3 мелких и менять их
Turnigy 2200mAh 3S 30C Lipo$13.79
ZIPPY Flightmax 2800mAh 3S1P 30C$17.76
Рама
стараемся делать максимально легкой и прочной
4 алюминиевые трубки или профиль 10х10 и кусок фанеркиразобрать алюминиевый штатив
HobbyKing Quadcopter Frame V1$14.99
Мозги и датчики
Программируемый микроконтроллерSeeeduino Mega$43.00
Arduino Mega$64.90
Датчики
рекомендую сразу брать AllInOne или FFIMU платку, так как остальные датчики очень сильно пригодятся потом
гироскоп ITG3205
акселерометр BMA020
WMP$7.98
BMA020 230руб
All In One (гироскоп ITG3200, акселерометр BMA180, барометр BMP085, магнитометр HMC5883L)$99.80
FreeFlight IMU 1.22L€84.00
Аппаратура управления и зарядное устройство
Аппаратура управления
минимум 4 канала
Hobby King 2.4Ghz 4Ch Tx & Rx V2 (Mode 2)$22.99
Turnigy 9X 9Ch (Mode 2)$53.79
Аккумулятор к аппаратуреMystery 11.1V 2200mAh$12.72
AA 600mAH Ni-MH Battery Set (8pc)$1.99
Зарядное устройствоiMAX B6 2.5″ LCD RC Lipo Battery Balance Charger$36.50
Turnigy Accucel-6 50W 6A Balancer/Charger$22.99
Другое
так же потребуются проводочки, болтики, винтики, стяжки, дрель, паяльник с паяльными принадлежностями и более-менее прямые руки
ИТОГО примерно от 220$

Защитные конструкции

Наиболее прямолинейный подход избежать последствий падения или столкновения БПЛА — защитная клетка и прочие защитные конструкции. Здесь две задачи — защищать дрон от повреждений и защищать среду, где работает дрон, и людей в ней от дрона.

Базовый вариант конструкции, относящейся скорее к защите людей от дрона, — защита пропеллера.

Математическая модель полёта дрона-квадрокоптера и способ гарантированной посадки его в «гнездо»
Дрон AR.Drone 2.0 с защитой пропеллеров. Источник

Есть еще забавные решения, вдохновленные оригами, со складными гибкими конструкциями защиты пропеллеров (и даже конструкции рамы), развитие которым дала группа профессора Дарио Флореано в EPFL.

Превалирующей конструкцией защиты самого дрона (а вместе с тем и людей от него) является защитная клетка. Сам квадрокоптер находится внутри клетки.

Математическая модель полёта дрона-квадрокоптера и способ гарантированной посадки его в «гнездо»
Дрон Clover от российской COEX

Российская компания COEX делает дроны для учебных целей, которые по умолчанию имеют защиту пропеллеров, а опционально — защитную клетку.

Математическая модель полёта дрона-квадрокоптера и способ гарантированной посадки его в «гнездо»
Дрон Flyability ELIOS

Швейцарская (Швейцария — столица дроностроения?) компания Flyability — выпускает, пожалуй, самый коммерчески успешный коптер ELIOS с защитной клеткой для выполнения инспекций внутри помещений. Оригинальность конструкции состоит в креплении защитной клетки к раме коптера на подвижном подвесе с возможностью стабилизации.

Математическая модель полёта дрона-квадрокоптера и способ гарантированной посадки его в «гнездо»
Дрон Dronistics

Стартап Dronistics из EPFL (опять Швейцария, это выходцы из группы Dario Floreano) предлагает дрон со складной клеткой для безопасной доставки грузов.

Недостатком таких дронов является увеличение массы конструкции — нужно носить с собой защитную клетку и элементы крепления к БПЛА. Стремление снизить массу защитной конструкции приводит к снижению ее прочности.

Математика стабилизации, пид-регуляторы (pid)

Если вы решили заняться мультикоптерами, то рано или поздно вам придется столкнуться с настройкой ПИД-регулятора, поскольку этот математический аппарат применяется почти во всех задачах стабилизации: стабилизация углов квадрокоптера в воздухе, полет и удержание позиции по GPS, удержание высоты по барометру, бесколлекторные механизмы стабилизации видеокамеры в полете (подвес камеры).

Вы приобретаете двухосевой подвес для камеры, ставите туда, например, GoPro, включаете и вместо стабилизации получаете конвульсии, вибрации и дергания, хотя все датчики откалиброваны и механические проблемы устранены. Причина — неверные параметры ПИД-регуляторов.

Вы собираете мультикоптер, калибруете датчики, регуляторы, радио, все проверяете, пытаетесь взлететь, а он такой унылый в воздухе, что его даже легким ветерком переворачивает. Или наоборот: он такой резкий, что внезапно срывается с места и крутит тройное сальто без разрешения. Причина все та же: параметры ПИД-регуляторов.

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

Кроме того, мы же собираемся писать собственную систему стабилизации квадрокоптера! Предлагаю вместе со мной самим заново «изобрести» и «на пальцах» понять формулу ПИД-регулятора. Для тех, кому больше нравится сухой математический язык, я рекомендую Википедию, английскую статью, т.к. в русской пока не так подробно изложен материал.

Будем рассматривать квадрокоптер в двумерном пространстве, где у него есть только один угол — угол крена, и два мотора: левый и правый.

В полетный контроллер непрерывно поступают команды с земли: «крен 30 градусов», «крен -10 градусов», «крен 0 градусов (держать горизонт)»; его задача — как можно быстрее и точнее их выполнять с помощью моторов с учетом: ветра, неравномерного распределения веса квадрокоптера, неравномерного износа моторов, инерции квадрокоптера и т.п.

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

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

Уровень газа поступает из приемника в контроллер. Обозначим его Математическая модель полёта дрона-квадрокоптера и способ гарантированной посадки его в «гнездо»Математическая модель полёта дрона-квадрокоптера и способ гарантированной посадки его в «гнездо»Математическая модель полёта дрона-квадрокоптера и способ гарантированной посадки его в «гнездо»Математическая модель полёта дрона-квадрокоптера и способ гарантированной посадки его в «гнездо»Математическая модель полёта дрона-квадрокоптера и способ гарантированной посадки его в «гнездо»Математическая модель полёта дрона-квадрокоптера и способ гарантированной посадки его в «гнездо»Математическая модель полёта дрона-квадрокоптера и способ гарантированной посадки его в «гнездо»Математическая модель полёта дрона-квадрокоптера и способ гарантированной посадки его в «гнездо»Математическая модель полёта дрона-квадрокоптера и способ гарантированной посадки его в «гнездо»Математическая модель полёта дрона-квадрокоптера и способ гарантированной посадки его в «гнездо»Математическая модель полёта дрона-квадрокоптера и способ гарантированной посадки его в «гнездо»Математическая модель полёта дрона-квадрокоптера и способ гарантированной посадки его в «гнездо»Математическая модель полёта дрона-квадрокоптера и способ гарантированной посадки его в «гнездо»

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

Здесь P — коэффициент пропорциональности. Чем он больше, тем сильнее будет реакция, тем резче квадрокоптер будет реагировать на отклонение от требуемого угла крена. Эта интуитивно понятная и простая формула описывает работу пропорционального регулятора.

За несколько десятков миллисекунд (несколько итераций цикла обработки) под воздействием пропорционального регулятора квадрокоптер вернется в требуемое (в данном случае горизонтальное) положение. Все это время ошибка Математическая модель полёта дрона-квадрокоптера и способ гарантированной посадки его в «гнездо»Математическая модель полёта дрона-квадрокоптера и способ гарантированной посадки его в «гнездо»Математическая модель полёта дрона-квадрокоптера и способ гарантированной посадки его в «гнездо»

где D — настраиваемый коэффициент: чем он больше, тем сильнее останавливающее усилие. Из школьного курса физики всплывают смутные воспоминания, что скорость изменения любой величины — производная этой величины по времени:

И вот пропорциональный регулятор превращается в пропорционально-дифференциальный (пропорциональное слагаемое и дифференциальное):

Ошибку Математическая модель полёта дрона-квадрокоптера и способ гарантированной посадки его в «гнездо»Математическая модель полёта дрона-квадрокоптера и способ гарантированной посадки его в «гнездо»Математическая модель полёта дрона-квадрокоптера и способ гарантированной посадки его в «гнездо»Математическая модель полёта дрона-квадрокоптера и способ гарантированной посадки его в «гнездо»Математическая модель полёта дрона-квадрокоптера и способ гарантированной посадки его в «гнездо»Математическая модель полёта дрона-квадрокоптера и способ гарантированной посадки его в «гнездо»Математическая модель полёта дрона-квадрокоптера и способ гарантированной посадки его в «гнездо»Математическая модель полёта дрона-квадрокоптера и способ гарантированной посадки его в «гнездо»

Теперь у нас есть пропорционально-дифференциальный регулятор в плоском «бикоптере», но осталась еще одна проблема. Пусть левый край будет весить чуть больше правого, или, что то же самое, левый мотор работает чуть хуже правого. Квадрокоптер чуть наклонен влево и не поворачивается обратно: дифференциальное слагаемое равно нулю, а пропорциональное слагаемое хоть и принимает положительное значение, но его не хватает, чтобы вернуть квадрокоптер в горизонтальное положение, ведь левый край весит чуть больше правого. Как следствие — квадрокоптер будет все время тянуть влево.

Необходим механизм, который бы отслеживал такие отклонения и исправлял их. Характерной особенностью таких ошибок является то, что они прявляют себя со временем. На помощь приходит интегральное слагаемое. Оно хранит сумму всех ошибкок Математическая модель полёта дрона-квадрокоптера и способ гарантированной посадки его в «гнездо»Математическая модель полёта дрона-квадрокоптера и способ гарантированной посадки его в «гнездо»Математическая модель полёта дрона-квадрокоптера и способ гарантированной посадки его в «гнездо»Математическая модель полёта дрона-квадрокоптера и способ гарантированной посадки его в «гнездо»

где T — текущий момент времени.
Пришло время записать окончательную формулу пропорционально-интергрально-дифференциального регулятора:

где Математическая модель полёта дрона-квадрокоптера и способ гарантированной посадки его в «гнездо»Математическая модель полёта дрона-квадрокоптера и способ гарантированной посадки его в «гнездо»

Существует несколько ее вариаций, например, можно ограничить модуль интегрального слагаемого, чтобы он не превысил определенный допустимый порог (мы так и будем делать).

Математическая модель полёта дрона-квадрокоптера и способ гарантированной посадки его в «гнездо»

Введение. Рассматривается некоторая упрощенная математическая модель движения дрона-квадрокоптера [1-4, 6, 10] под действием некоторых выбранных управляющих воздействий. При этом в качестве таких воздействий выбираются угловые скорости вращения винтов. Каждый из четырех винтов снабжен своим электродвигателем и, следовательно, скорости вращения всех винтов могут быть различными. Предлагается и обосновывается некоторая новая модификация математической модели полета в форме дифференциальных уравнений Ньютона-Эйлера [7]. Рассматривается оптимизация движения полета по критерию качества процесса управления [4, 9], определяющего затраты энергии на выработку управляющих воздействий на заданном зафиксированном отрезке времени. При этом за этот отрезок времени дрон совершает перелет из заданного начального в заданное конечное состояние в трехмерном евклидовом пространстве. Математически рассматриваемый критерий качества есть интеграл от квадрата четырехмерного вектора управляющего воздействия, что традиционно для двигателей малой тяги, применяемых, в частности, в авиационной и ракетной технике. Решается задача программного управления [1, 4, 5], при котором оптимальное управляющее воздействие получается в виде некоторой функции времени на заданном отрезке полета квадрокоптера. Отрезок времени управления движением квадрокоптера определяется ресурсом его аккумулятора. Приводится иллюстрирующий пример облёта дроном сельскохозяйственного угодья. При этом в качестве дрона рассматривается конкретный лёгкий квадрокоптер. Особое внимание уделяется предлагаемому способу гарантированной посадки дрона в «гнездо» – месту подзарядки аккумуляторной батареи, обеспечивающей полёт. Работа продолжает исследования автора [1-4, 9].

Постановка задачи. Рассматривается задача о составлении математической модели беспилотного летательного аппарата конкретного распространенного легкого дрона-квадрокоптера (рис. 1): в форме обыкновенного линейного векторного дифференциального уравнения. Также рассматривается задача о конструировании программного векторного управляющего воздействия, обеспечивающего полет квадрокоптера в трёхмерном пространстве в декартовой системе координат из заданного начального в заданное конечное состояние за фиксированное время при наличии детерминированной помехи. И наконец, разработка способа, обеспечивающего точное (гарантированное) попадание квадрокоптера в гнездо.

Математическая модель полёта дрона-квадрокоптера и способ гарантированной посадки его в «гнездо»

Рис. 1. Квадрокоптер

Решение. Для составления математической модели управляемого движения квадрокоптера (рас. 1) использована следующая расчетная схема (рис. 2) [1-4, 10].

Математическая модель полёта дрона-квадрокоптера и способ гарантированной посадки его в «гнездо»

Рис. 2. Расчетная схема квадрокоптера

Здесь ωi, i=1,…, 4 – угловые скорости вращения винтов; Математическая модель полёта дрона-квадрокоптера и способ гарантированной посадки его в «гнездо» – силы, создаваемые этими скоростями, где k>0 – постоянный коэффициент, определяемый аэродинамическими характеристиками винта и плотностью воздуха [3]. Управление квадрокоптером как раз и осуществляется с помощью изменения указанных угловых скоростей и создаваемых ими сил. Изменение этих сил подвластно нам, то есть находится под нашим контролем (control – управление, англ.). Таким образом, эти силы и будут играть роль управляющих воздействий, ui, i=1,…,4.

Обозначим:

Математическая модель полёта дрона-квадрокоптера и способ гарантированной посадки его в «гнездо»

силу тяги, являющуюся объединением сил роторов и являющуюся, таким образом, управлением.

Предлагается следующая упрощенная математическая модель управляемого движения квадрокоптера:

Математическая модель полёта дрона-квадрокоптера и способ гарантированной посадки его в «гнездо»

где x – шестимерный вектор:

Математическая модель полёта дрона-квадрокоптера и способ гарантированной посадки его в «гнездо»

m – масса квадрокоптера, g – ускорение силы тяжести, v сила ветра, А, В, С, D – матрицы:

Математическая модель полёта дрона-квадрокоптера и способ гарантированной посадки его в «гнездо»

Математическая модель полёта дрона-квадрокоптера и способ гарантированной посадки его в «гнездо»

Математическая модель полёта дрона-квадрокоптера и способ гарантированной посадки его в «гнездо»

Здесь матрица В выбирается постоянной, т.е. мы полагаем углы Эйлера (рис. 2) постоянными и заданными для рассматриваемого полёта и константы S и С в матрице В определяются соответствующими углами Эйлера [1, 7, 10]. В инерциальной системе отсчета, центробежная сила обнуляется. Таким образом, только гравитационная сила G = mg, величина и направление тяги u и помеха v участвуют в ускорении квадрокоптера.Суть управления параметрами полета заключается в поддержании такого углового положения квадрокоптера, которое обеспечивает его движение (полет) по заданной траектории (а также обеспечивает его зависание в определённые моменты времени). При заданных начальных и конечных условиях:

Математическая модель полёта дрона-квадрокоптера и способ гарантированной посадки его в «гнездо»

и заданной помехе – силе ветра:

Математическая модель полёта дрона-квадрокоптера и способ гарантированной посадки его в «гнездо»

программное управление имеет вид:

Математическая модель полёта дрона-квадрокоптера и способ гарантированной посадки его в «гнездо»

где Математическая модель полёта дрона-квадрокоптера и способ гарантированной посадки его в «гнездо» – 

есть фундаментальная матрица [5] для решений однородного дифференциального уравнения:

Математическая модель полёта дрона-квадрокоптера и способ гарантированной посадки его в «гнездо».

Известно, что так сконструированное управление является оптимальным по критерию качества управления [4, 9]:

Математическая модель полёта дрона-квадрокоптера и способ гарантированной посадки его в «гнездо»,

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

Пример. Рассматривается задача полёта дрона-квадрокоптера – беспилотного летательного аппарата вертолётного типа с четырьмя винтами (рис. 1) по заданной траектории. Винты приводятся в движение каждый своим электродвигателем, питаемым от аккумулятора, включенного в конструкцию дрона.

Рассматривается случай, когда квадрокоптер снабжен аккумулятором небольшой мощности, который разряжается за достаточно малое время (например, 10 минут для квадрокоптера, изображенного на рис. 1). Поэтому требуется подзарядка аккумулятора на старте и финише его движения. В качестве таких зарядных устройств используются так называемые «гнёзда», устанавливаемые на крышах домов, автомобилей, столбов линий электропередач. Рассмотрим следующую схему полёта квадрокоптера для съёмки некоторого объекта сельскохозяйственного угодья (рис. 3).

Математическая модель полёта дрона-квадрокоптера и способ гарантированной посадки его в «гнездо»

Рис. 3. Схема движения квадрокоптера

Попадание квадрокоптера для зарядки – посадка в «гнездо», представляет определённую трудность, в связи с необходимостью большой точности приземления. Хотя квадрокоптер снабжен видеокамерами, это не упрощает решение такой задачи. В данной работе предлагается некоторый новый способ посадки квадрокоптера в «гнездо», позаимствованный из космической техники – стыковки космических аппаратов [8]. А именно, при стыковке двух космических аппаратов используется трос, который их соединяет и движение происходит благодаря втягиванию троса в один из аппаратов. Это обеспечивает абсолютную точность стыковки. Можно понимать трос, как некоторый «якорь» или «гарпун», который выбрасывает один из объектов (стыкующийся) и попадает в стыковочное отверстие второго аппарата. Такой способ посадки квадрокоптера в «гнездо» и предлагается автором (рис. 4).

Математическая модель полёта дрона-квадрокоптера и способ гарантированной посадки его в «гнездо»

Рис. 4. Посадка квадрокоптера в «гнездо»

Устройство, выбрасывающее и втягивающее трос – «якорь», целесообразно устанавливать в корпусе квадрокоптера, а прицеливание якоря-гарпуна в гнездо осуществлять с помощью видеокамер квадрокоптера.

Практика

Ну а теперь пришло время для практики подбора коэффициентов. Читателям предлагается JavaScript-страничка с виртуальным квадрокоптером, который он уже видел на картинках:

). При первом запуске сразу видно перерегулирование — колебания вокруг требуемого положения. Когда колебания останавливаются, можно наблюдать эффект, что пропорциональный коэффициент не справляется с ошибкой из-за «несимметричного» квадрокоптера (задается галочкой «Asymmetry»).

Для настройки доступны параметры P, I, D. Теперь вы знаете что с ними делать. «Скролом» под квадрокоптером можно управлять требуемым значением крена. «Interval (ms):» — интервал регулирования. Уменьшать его — «читерство», но посмотреть как он влияет на качество стабилизации — очень полезно.

Для любителей «чистой» математики можно предложить настроить абстрактный ПИД-регулятор

Введенные параметры автоматически не применяются: нужно жмакать «Apply». Пара небольших советов: если вам кажется, что квадрокоптер слишком медленно реагирует на управление — можно увеличить P, но слишком большое значение P может привести к перерегулированию.

С перерегулированием поможет справиться параметр D, но слишком большие значения приведут к частым колебаниям, или опять к перерегулированию. Параметр I, обычно, в 10 — 100 раз меньше, чем параметр P т.к. его сила в накоплении во времени, а не в быстром реагировании.

Ручная настройка ПИД-параметров требует практики. Существуют аналитические методы их вычисления, но они требуют хорошей подготовки и точного знания многих параметров конкретной настраиваемой системы. Как среднее между ручным подбором и аналитическим вычислением есть широкий ряд эмпирических методов, предложенных различными исследователями.

В нашем 2D квадрокоптере меняется только один угол — угол крена. В настроящем 3D квадрокоптере потребуется три независимых ПИД-регулятора для каждого из углов, а управление конкретным мотором будет представлять сумму усилий по всем регуляторам.

Проблемы управления

Основная проблема управления по сравнению с обычным жестким дроном — вибрации, которые, во-первых, больше по амплитуде, во-вторых, разные для контроллера и различных двигателей, т.к. они установлены на различных балках (хотя это же может быть и плюсом — виброразвязка).

Ранние тесты тенсодрона на подвесе: вибрации (извините за вертикальное видео)Ранние тесты тенсодрона в полете: вибрации

Мы не одиноки

Оказывается, у нас был конкурент.

Еще в начале (почти год назад), когда мы делали прототип, мы нашли это видео от ребят из Imperial College London:

 

Авторы пришли к той же идее, что и мы: применение тенсегрити для дронов — это интересно. 

Т.к. никаких подробностей по конструкции и, тем более, прототипа представлено не было, свои работы мы продолжили.

Уже потом, когда у нас был летающий образец, мы получили отчет той же группы: 

Математическая модель полёта дрона-квадрокоптера и способ гарантированной посадки его в «гнездо»
Отчет Hayden Cotgrove, Christopher Turner, Zachary Yamaoka Tensegrity Drones. Ссылка уже не работает

Во-первых, прототип у них не полетел. Во-вторых, их конструкция — это жесткий дрон внутри тенсегрити-клетки, у нас же элементы дрона встроены в тенсегрити-структуру, которая тем самым является и фреймом и клеткой одновременно. Таким образом, здесь как концептуальные проблемы, так и проблемы качественной реализации.

Возвращаемся к проблемам управления и вибрации. Вот, что написано в отчете Hayden Cotgrove, Christopher Turner, Zachary Yamaoka:

Results
The drone was able to hover for short periods, thus proving that it is possible for tensegrity drones to fly. However, the propellers struggled to lift the drone for a couple of reasons:

Данные проблемы мы решаем с двух сторон — улучшением конструкции для уменьшения вибраций при полете и разработкой алгоритмов управления и оценивания состояния с целью подавления вибраций и более качественного управления, в том числе с учетом дополнительных данных от IMU датчиков на балках и динамической модели тенсегрити-структуры.

Падение на пол с последующим взлетом, в помещении (без монтажа)

Сборка и настройка железа


Предположим что всё что выше у вас уже есть и можно приступать к сверлению, паянию и скручиванию.

Раму делаем кто во что горазд, главное чтобы расстояние от центра до концов лучей было одинаково, пропеллеры при вращении не задевали друг друга и центральную часть (фанерку), так как на ней будут мозги, датчики и возможно камера. Датчики лучше устанавливать на толстый скотч, силикон или резину, для уменьшения вибрации.

У меня получилось примерно вот так (аккумулятор крепится с другой стороны, на фото старый вариант мозгов коптера с прошивкой

, с которой мне так и не повезло):

Математическая модель полёта дрона-квадрокоптера и способ гарантированной посадки его в «гнездо»

не очень красиво, но летает


А теперь внимание косяки, о которые можно споткнутся по незнанию и нужная информация:

  • Приемник надо спарить с передатчиком — написано в инструкции
  • Регуляторы скорости (ESC) нужно калибровать! Для этого соединяем вместе все 4 ESC: землю (черный) и сигнальный провод(белый или желтый) и оставляем ОДИН провод питания (красный), после чего вставляем это в третий канал приемника, а так же соединяем провода питания и подсоединяем к регуляторам моторы. После этого на включенном передатчике ставим ручку газа (третий канал) в максимальное положение (вверх) и подключаем к регуляторам скорости источник питания, моторы весело пропищат, после чего опускаем ручку газа вниз и моторы снова пищат — ура, мы откалибровали регули
  • Часто регуляторы скорости нужно еще и запрограммировать, об этом читайте инструкцию к своим регуляторам, основной момент — увеличить скорость реакции, повысив частоту и выставив режим моментальной реакции, а не постепенного набора оборотов. Это можно сделать как слушая бесконечные пищания, так и с помощью специальных карточек для программирования.
  • Чтобы моторы вращались в другую сторону нужно поменять любые два провода местами
  • Ставьте пропеллеры в последнюю очередь — они очень хорошо режут руки
  • Моторы, как и пропеллеры часто требуют балансировки, для уменьшения вибрации, для этого возьмите обычные стяжки для кабелей и нацепив 1-2 на мотор вращайте и включайте, пока не почувствуете минимальную вибрацию. Более подробно, а так же с видео лучше почитать на специализированном форуме

ПродолжениеPS: надеюсь люди в RC теме простят меня за неточности и поправят где надо.

Заключение первой части

В этой статье мы познакомились с базовыми понятиями:

квадрокоптер и принцип полета, тангаж, крен, рыскание, газ, газ висения, режим полета stabilize, полетный контроллер, гироскоп, акселерометр, регулятор скорости, ШИМ, калибровка регуляторов, калибровка радио, бортовой приемник, интерфейс настройки полетного контроллера, состояния armed/disarmed, автодизарм

После этого мы заново изобрели формулу ПИД-регулятора немного каснувшись численного дифференцирования и интегрирования, и на своей шкуре испытали, как настраивать параметры P, I, D на виртуальном квадрокоптере.

Теперь, если вы владеете световым мечем-программированием, вы можете приступать к своей программе стабилизации квадрокоптера, или, еще лучше, присоединиться со свежими идеями к существующими open source проектам. Ну а я через неделю-другую, когда появятся силы и время, чтобы соответствовать качеству, продолжу рассказ, как это все программировалось, тестировалось, падало, резало мне пальцы и вовсе улетало в неизвестном направлении. Если вам очень захотелось продолжения — можете напнуть меня здесь или, например, Вконтакте: это немного придает стимула.

В заключении этой части я просто обязан упомянуть человека, который помогал мне в выборе комплектующих и настройке самого сложного (первого!) квадрокоптера на прошивке MegapirateNG и терпеливо отвечал на сотни вопросов по этим самым базовым понятиям:

В награду тем, кто смог промотать всю эту простыню, выкладываю обещанное маленькое видео, как наш квадрокоптер с нашими «изобретенными» ПИД-регуляторами, на нашей программе для Arduino Mega 2560 летает:

Конечно, ему не хватает GPS, как в коммерческих и массовых продуктах, немного не хватает устойчивости, но зато — НАШ, и мы знаем его вдоль и поперек до последнего множителя при интегральном коэффициенте! И это действительно круто, что сегодня нам доступны такие технологии.

Оцените статью
Радиокоптер.ру
Добавить комментарий