Алгоритмы стабилизации для автоматического управления траекторным движением квадрокоптера
Наука к Образование
МГТУ им. Н.Э. Баумана
Сетевое научное издание
УДК 681.5 007
Алгоритмы стабилизации для автоматического управления траекторным движением квадрокоптера
ГЭН К.1’*, ЧуЛИН Н. А.1 >аепаке:3126.com
1МГТУ им. Н.Э. Баумана, Москва, Россия
В данной работе предлагается алгоритм стабилизации полета квадрокоптераи исследуется возможность использования этого алгоритма для траекторного управления. Построена математическая модель квадрокоптера, проверена правильность модели сравнительным моделированием в программных системах МаНаЬ Simulink и Универсальный Механизм. Представлена разработка контроллера, который позволяет стабилизировать высоту, угловое положение и управлять траекторией полета квадрокоптера. Результаты моделирования показывают удовлетворительную стабильность полета квадрокоптера и отслеживания заданных траекторий, что подтверждает правильность и обоснованность алгоритма управления.
Ключевые слова: квадрокоптер, ПИД-регулятор, метод бэкстеппинга, математическая модель, моделирование, стабилизация полета, режим слежения
Введение
Квадрокоптер представляет собой беспилотный летательный аппарат (БПЛА), имеющий четыре двигателя с воздушными винтами (пропеллерами), создающими тягу. Оси винтов и углы лопастей зафиксированы и регулируются лишь скорости вращения, что существенно упрощает конструкцию. Вертикальное перемещение осуществляется синхронным изменением скоростей вращения всех винтов, для горизонтального перемещения нужно наклонять квадрокоптер, что достигается соответствующим изменением скоростей вращения разных винтов, создающих необходимые для наклона моменты. Противоположное направление вращения пар винтов обеспечивает компенсацию моментов сопротивления. В настоящее время подобные аппараты используются достаточно широко и разнообразно, но это использование ограничено, в основном, режимами «ручного» дистанционного управления с пульта оператора.
Актуальной является задача разработки системы управления, позволяющая осуществлять автономный полёт квадрокоптера по заданному маршруту. В публикациях по данному вопросу задача рассматривается как сочетание задач управления угловым
Наука и Образование. МГТУ им. Н.Э. Баумана. Электрон. журн. 2023. № 05. С. 218-235.
Б01: 10.7463/0515.0771076
Представлена в редакцию: 03.03.2023 Исправлена: 02.05.2023
© МГТУ им. Н.Э. Баумана
положением и траекторным движением. Обсуждаются и предлагаются различные подходы, в частности использование линейных квадратичных регуляторов, успешно решающих задачи стабилизации при зависании, но не работающих при существенных нелинейностях и перекрёстных связях [1], использование скользящего режима управления, простого и надёжного, но требующего адаптации логики переключений к режимам полёта [2]. В работе [3] предложен алгоритм отслеживания траектории квадрокоптера на основе ПД регулятора и метода «бэкстеппинг» с корректирующим фильтром. В работах [4,5] предлагается нелинейный контроллер на основе нейронной сети, а в [6] — алгоритм «реального времени» планирования траектории и предотвращения столкновений. В работе [7] рассматривается адаптивный алгоритм отслеживания положения для вертикального взлета и посадки при ограниченных внешних возмущениях. В настоящей работе не предлагаются какие-либо новые способы, а исследуются возможности использования для решения задачи автономного полёта квадрокоптера по заданному маршруту наиболее простых алгоритмов стабилизации, построенных на традиционных принципах, в частности — с использованием ПИД-регуляторов и метода на основе функций Ляпунова, известного в литературе как «бэкстеппинг» [8,9,10].
1.Математическая модель квадрокоптера [11,12,13]
При моделировании полёта квадрокоптера, дальность и продолжительность которого весьма ограничены, можно пренебречь движением Земли, то есть считать земные системы координат инерциальными. На начальных этапах разработки можно также считать ненесущую часть аппарата твёрдым телом, а ветер учитывать только как внешнее возмущение.
На рисунке 1 показаны взаимное положение связанной (0ХУ2) и нормальной
земной (Оо ) систем координат в режиме зависания и действующие на
квадрокоптер силы и моменты.
Рис. 1 Квадрокоптер в режиме зависания.
На рисунке Р/ (/ = 1,2,3,4) — сила тяги /-го винта, М/ (/ = 1,2,3,4) — момент от
сопротивления /-го винта , н*/ (/ = 1,2,3,4) — скорость вращения /-го винта.. Сила тяги в связанной системе координат:
Р = [ Px , P , Pz Г =[0, P,0]7
4
p=p P2 P3 P4=x
,=1
CP, = 1 ‘Я’ • S, ■ rt
(1)
Где Р — суммарная тяга, СР/ — коэффициент силы тяги, р -плотность воздуха, Са -коэффициент подъемной силы, — площадь ометаемой лопастями /-го винта поверхности,
Г/- радиус /-го винта.
Сила тяги в нормальной земной системе координат:
P =
P P P
1 V -, -L V
= R ■ P
(2)
где:
cos 3 cos щ — cosy cos^ sin 3 sin y sin щ sin y cos щ sin 3 cos y sin щ R = sin3 cosy cos3 -sin y cos3
— cos 3 sin щ cos y sin щ sin 3 sin y cosщ — sin y sin щ sin 3 cosy cosщ
— матрица перехода; у, в,у — углы рыскания, тангажа, крена. Сила сопротивления воздуха и сила тяжести:
f = fx , fy , fz
G = [0, — mg ,0]т
(3)
где m — масса квадрокоптера; g — ускорение силы тяжести.
Уравнения динамики движения центра масс в нормальной земной системы координат:
[/>(- со s у cos ц/ sin 3 sin y sin ц/) — fx ]
x =
m
У =
z =
[i3(cos у cos 3)-fy- m g
m
(4)
(P eos y sin ц/ sin 3 sin y cos W~ f:)
m
С учетом симметрии аппарата и считая, что центр масс расположен в начале координат связанной системы, уравнения динамики углового движения в связанной системе координат можно записать в виде
2
■
T
Wv = —-ww. —
л т У — j
м’у=-
I
X
MD
•V
у
M„
wz =-— WW —-
Z J X у J
MRX = Mqx Mmx Mpx
M „ = M„
MRz = Mqz Mmz Mpz
(6)
где щх,щу,щ2 — проекции вектора угловой скорости аппарата на связанную систему координат; МММ — проекции результирующего момента; 1х, 1у, — осевые
моменты инерции аппарата; Мх,Му,МЧ2 — моменты, создаваемые винтами, Мтх,Мт2 и Мхх, М р2 — гироскопические моменты двигателей и винтов. Если пренебречь инерционностью винтов при изменении угловых скоростей их вращения, то указанные моменты можно выразить следующим образом:
(7)
Мх = (Р -Р) • I
Му = М 2 М 4 — М — М3 Мд2 = (Р — Р) • I
М = трщ2
I р I
(8)
МтХ = 1т • Щ • (Щ Щ — Щ2 — Щ4) Мт2 = 1т • Щх • (Щ Щ4 — Щ — Щ3)
<
Мрх = 1р • Щ • (Щ1 Щ — Щ2 — Щ4) Мрг = 1р • Щх • (Щ2 Щ4 — Щ1 — Щ3)
где I — расстояние от центра масс до оси винта, I и I — моменты инерции ротора и
винта; т — коэффициент момента.
Изменения углов Эйлера определяются через проекции угловой скорости кинематическими уравнениями Эйлера:
(9)
Для математического моделирования использованы программные среды Matlab Simulink и Universal Mechanism [14]. В Matlab Simulink удобно моделировать динамику, интегрируя уравнения движения, Universal Mechanism позволяет по параметрам
7 = w •cosl9-w„ • У sin 3
< щ = (wr -sin^ w,, Vх У ■ cos3) / cosy
3 = w, sin 3 ■ tgy wx cos 3 ■ tgy ■ wy
у
1
конструкции определить инерционные характеристики. Совместное использование этих пакетов не только упрощает реализацию модели, но и позволяет получать параллельные результаты, сравнение которых может служить подтверждением их правильности.
Модель в Matlab Simulink (см. рис.2) состоит из четырех блоков: входные напряжения, ограничители напряжений, модель двигателей с винтами, модель квадрокоптера.
Входными сигналами модели являются управляющие напряжения на двигатели: u = (щ, щ, щ, Щ ), выходными — координаты полета (x, y, z) и углы (у, iy,S).
Управляющие напряжения на двигатели подаются через распределитель сигналов и ограничители напряжений. Для выбранного двигателя X2212 KV980 [15] с линейной зависимостью скорости от управляющего напряжения w. = 102,6 • щ в рабочем диапазоне скоростей входные напряжения ограничены значениями от 0 до 11,1 В.
Рис.2 Математическая модель квадрокоптера в Matlab Simulink
B пакете Universal Mechanism (Универсальный Механизм) квадрокоптер представлен как твердое тело крестообразной формы с четырьмя двигателями и четырьмя винтами (Рис. 3), имеющее 6 степеней свободы. Инерционные характеристики такие же, как при задании в пакете Matlab (Рис. 4).
Inertia parameters
Mass 1.017]
Inertia tensor
0.002352 с с с
0.0047 с
Added mass matrix 0.002352 с (none) ^jJ
Coordinates of center of mass
0
c 0
c 0.01
с
Рис. 3 Структура квадрокоптера в пакете Universal Mechanism
Рис. 4 Инерционные характеристики модели
В программе Universal Mechanism (UM) нельзя воспроизвести воздействие воздушной среды и работу пропеллеров, создающих подъемную силу. Поэтому вращение пропеллеров заменяется силами тяги (р, р , р, р ) , действующих на концах перекладин.
Эти силы всегда перпендикулярны плоскости платформы квадрокоптера. Значение сил берется из блока, созданного в программе Matlab (Рис.5). Оттуда же берутся действующие на квадрокоптер моменты Мт,Mp,M (Рис.6).
Рис. 5 Задание подъемной силы
Рис.6 Задание суммарных моментов
Схема подключения и передачи сигналов во время моделирования между моделями в Matlab и им показана на рисунке 7.
р,
Блок Ма^аЪ
Рис. 7 Схема подключения МайаЬ и им
им
Блок 1Ж
Сравнение результатов моделирования в двух программных пакетах — в МайаЬ, где моделируется нелинейная система уравнений, и в ЦМ, где траектория полета и другие параметры рассчитываются по передаваемым силам и моментам, приведено на рис.8.
Рис. 8 Координаты центра массы и углы поворота квадрокоптера
Видно, что без регулятора система неустойчива, но результаты моделирования в Universal Mechanism почти совпадают с результатами моделирования в Matlab, что является признаком правильности математической модели.
2 Алгоритмы стабилизации и отслеживания заданных траекторий
Задачу траекторного управления полётом квадрокоптера можно рассмотреть как последовательность задач перелёта в очередную заданную точку маршрута или движения по заданным участкам типовых траекторий (например — по прямой или дуге окружности). В этом случае система автоматического управления может быть построена как система с обратной связью, осуществляющая отслеживание заданного маршрута. При этом можно выделить канал управления высотой и канал управления движением в горизонтальной плоскости. Стабилизация и управление в вертикальном направлении обеспечивается изменением суммарной величины тяги. Горизонтальное перемещение аппарата происходит под действием горизонтальной проекции суммарного вектора тяги, отклонённого от вертикали. В рассматриваемом варианте отклонение вектора тяги происходит за счёт изменения углов тангажа и крена при фиксированном положении угла рыскания. Изменение углового положения достигается путем дифференцированного управления скоростями вращения винтов, дающего соответствующие различия их сил тяги и моментов. Подсистему, обеспечивающую необходимые значения угловых параметров и высоты за счёт изменения тяги винтов, можно назвать системой ориентации и стабилизации, а подсистему, осуществляющую отслеживание заданных траекторий -системой траекторного управления. Нужно отметить, что рассматриваемый вариант не является самым эффективным, но в нём наиболее наглядно реализуется разделение управления по каналам.
Структура системы управления показана на рис. 9, где цифрами обозначены: 1 -заданная траектория; 2 — корректирующие устройства (КУ) подсистемы траекторного управления; 3 — преобразователь координат; 4 — регулятор подсистемы ориентации и стабилизации; 5 — распределитель сигналов; 6 — ограничитель напряжения; 7 — модель винтомоторной группы; 8 — модель квадрокоптера.
Рис. 9 Схема системы управления квадрокоптера
Алгоритмы работы подсистем стабилизации и траекторного управления предлагается рассчитывать одним из известных методов, причём предпочтительнее выбирать те, которые при сравнимом качестве являются наиболее простыми. Поэтому для каждой из подсистем произведен расчёт корректирующих устройств в виде ПИД-регуляторов и методом, известным в литературе под названием «бэкстеппинг» (англ. backstepping) , после чего путём сравнения результатов выбран наиболее подходящий регулятор для каждой из подсистем.
Чтобы избежать повторов в изложении, расчёт регуляторов для каждой из подсистем показан на примере одного из методов: «бэкстеппинг» — для алгоритма стабилизации углового положения; ПИД-регуляторы — для алгоритма отслеживания траекторий.
2.1 Алгоритмы стабилизации углового положения
Входами подсистемы ориентации и стабилизации углового положения являются задаваемые подсистемой траекторного управления сигналы yd, щ, vd, а выходами -параметры углового движения объекта. Управляющий алгоритм этой подсистемы (блок 4 на рис. 9) должен формировать управляющие сигналы U2, U3, U4, обеспечивающие создание необходимых моментов MRx, MRy, MRz, при условии, что суммарная тяга винтов будет соответствовать необходимой для вертикального движения. Если пренебречь динамикой и ограничениями двигателей, гироскопическими моментами и аэродинамическими моментами ненесущей части аппарата, то сигналы U2, U3, U4 должны быть с точностью до коэффициента равными моментам MRx, MRy, MRz. Поэтому моделью объекта для алгоритма стабилизации являются уравнения (5) и (6) при MRx = U2, MRy = U3, Mrz = U4.
Суть метода «бэкстеппинг» состоит в представлении сложной системы в виде цепочки вложенных подсистем, для каждой из которых формируются вспомогательные управляющие сигналы и составляются зависящие от этих сигналов функции Ляпунова. Выполнение критериев устойчивости по Ляпунову при последовательном выборе этих сигналов для каждой подсистемы обеспечивает устойчивость системы в целом. Процедура имеет характер пошагового обхода интеграторов обратными связями, откуда — название «integrator backstepping», или кратко — бэкстеппинг (англ. backstepping). В определённых частных случаях процедура становится регулярной и достаточно простой. Для углового движения летательного аппарата такой случай возможен при малых углах тангажа и крена, когда производные углов у щ и v можно считать равными соответствующим угловым скоростям. Тогда уравнения углового движения (5,6) можно приближённо представить в виде трёх подсистем
¿1 =
г = ж,
ЛУ = ——м? м? н—1
х т У 2
мс
I.
^ =
Ж.
V = м>у
(Л—Л)
/
МЕ
& =
-— и’ н—
у J Л Г J
у у
5 =
V х у ‘ Я-
(10)
/. 1 /. г г
Следуя приведённому в алгоритму, введём для подсистемы S1 вспомогательный управляющий сигнал г1 = Уа ~У и соответствующую функцию Ляпунова ^(г1 ) = г1 /2, производная которой К (л) = = (К/ ~м’х) .
Второй вспомогательный управляющий сигнал сформируем в виде = ~Уа ~К2 с соответствующей функцией Ляпунова (г1> г2 ) = (г 1 г2)’ 2, производная которой
у г = ■= (Уа — ^ ) (А -Уа- кЛ ) .
Принимая для системы стабилизации У/ = У/ = ^, получаем
К ) = (к? -1) г^ — к
Чтобы подсистема была устойчива, то есть, чтобы причём
^2 г2 ) — 0 только когда 2 ®>г2 ®, примем
К (¿1, ¿2 ) = -кХ ~ к, >0,к2>0
(11)
Тогда управляющий сигнал будет иметь вид:
и 2 =~1х
1У — 1х
1Г И — 1Г
У 2 х
= -/
1У — 1х
ЩуЩг
(к2 -1)г (к к2)г
-•
!у — У
—- Wy ■ Щ
(к1 • к2 -1)-Га (к1 • к2 1)-Г (к1 к2)
(12)
Функция Ляпунова (Г1) = 0ч,-2) = (н’>: ~ У/ » ) П (г1) = У2(г1,г2) = -к2г] = -к-к2 (м>х -уа -к^)2 < 0,
/2 > 0
, а её производная
то есть замкнутая
подсистема — устойчива.
Аналогичным образом можно получить другие управляющие сигналы: ‘ -I
и = -1
и3 1у
и =-1 •
и 4
I
X
I -1
Wy • Щ (к3 • к4 — (к3 • к4 1 )•¥ ( к3 к4 )•
‘^у • (к5 • к6 -1 (к5 • к6 1) • & (к5 к6) • Щ
(13)
(14)
<
<
где К > о, К > о, к > о, к > о
Выбором значений коэффициентов к1 — к6 можно добиться нужного качества переходных процессов. Значения этих коэффициентов приведены в таблице 1.
Таблица 1. Значения коэффициентов регулятора «бэкстеппинг»
к1 кг к3 к4 к5 кб
20 3 21 2,5 35 25
В таблице 2 приведены значения коэффициентов ПИД-регуляторов, выбранные методом Циглера — Николса [12] для этой же подсистемы.
Таблица 2. Значения коэффициентов ПИД-регуляторов
Кр К Ка
7 2,5 5,2 10
¥ 5,1 10 10
& 5,1 0,12 20
2.2 Алгоритмы траекторного управления
Проекции горизонтальной силы без учёта сопротивления ненесущей части аппарата согласно уравнениям динамики (4) имеют вид:
= Р(-С08/008у/8п& 8т/8ту) • и^ = Р(00878ту8т& $ту008у) (15)
откуда можно определить углы крена и тангажа, при которых создаются требуемые воздействия при известной суммарной тяге Р:
и = агозши* 00у 5ту ; & = аГ0008 и* 5ту -иха 00у (16)
Необходимо обратить внимание, что такой подход к траекторному управлению предъявляет очень высокие требования к быстродействию и точности подсистемы ориентации и стабилизации, что вызывает необходимость в более глубоком исследовании, выходящем за рамки настоящей статьи. Здесь будем считать результат удовлетворительным, если он подтверждается моделированием.
Управляющие воздействия иха и и2а, а также иуа = и1 для канала управления высотой, можно получить, рассматривая подсистему траекторного управления как систему регулирования, отслеживающую требуемые координаты центра масс, в частности — как выходные сигналы ПИД-регулятора по отклонениям координат центра масс от требуемых:
иха = КРх(х^ — х) Кх |(х^ — х)а Ках(х — х)
т г
иуа =-й Кру (у^ — у) Ку I (у^ — у)а Ку (уа — у) тЕ
К* =КрМ,-2) К„1(21/-2У» Кл(21/-2)
Значения коэффициентов регуляторов по соответствующим переменным, выбранные методом Циглера — Николса [16], приведены в таблице 3:
кр К Ка
X 8,2 0,015 7,8
У 25 10 30
г 5,1 0,012 4,95
В таблице 4 приведены значения коэффициентов для этой же подсистемы, рассчитанные методом «бэкстеппинг».
Таблица 4. Значения коэффициентов регулятора «бэкстеппинг»
к1 к2 кз к4 к5 кб
1,5 0,2 20 10 1,5 0,5
Окончательный выбор типа регулятора для каждой подсистемы проводится по результатам моделирования.
3 Результаты моделирования
Работоспособность алгоритма проверялась моделированием реакций на ступенчатые воздействия и полёта по заданным траекториям. Схема моделирования в среде Ма^аЬ Simulink показана на рис. 10, а реакции модели на ступенчатое воздействие — на рис. 11 и рис. 12. На рис. 13 показаны результаты моделирования при отслеживании траектории состоящей из участков: АВ — взлет; ВС — равномерное прямолинейное движение; СО -равномерное ускоренное прямолинейное движение; ББ — равномерное движение вокруг точки (5,10,15) по горизонтальному кругу радиусом 5 м; ББ — равномерное прямолинейное движение; БО — равномерное движение вокруг точки (-5,10,10) по горизонтальному кругу радиусом 10 м.; ОН — посадка. Результаты в целом удовлетворительны, хотя видны возможности улучшения: устранение перерегулирования по высоте и ускорение процессов.
Рис. 10 Схема моделирования системы управления
/
(-
0 12 3 4
6 7 8 9 10
Рис. 11 Реакции на ступенчатое воздействие (у,у,$) Рис. 12 Реакции на ступенчатое воздействие (ъ6,хё,у6)
Рис. 13 Отслеживание траектории На рис. 14 и рис. 15 показаны изменения координат ъ, х, у
0 5 1 0 15 20 25 30 35
I
20
X 0
-20
15 10 5 5 0 -5
У
20 — 20
0 — N 0
0 5 10 15 20 25 30 35
I
Рис. 14 Изменения координат (хё, ув, ъв) ПИД-регулятора
Рис. 15 Изменения координат (хё, ув, ъв) регулятора бэкстеппинга
20
40
40
Результаты моделирования показывают, что изменения координат центра масс квадрокоптера для двух регуляторов почти одинаковые, но ПИД-регулятор имеет более простую структуру и меньше сигналов обратной связи. Поэтому для управления траекторией полета квадрокоптера выбраны ПИД-регуляторы.
На рис. 16 и рис. 17 показаны изменения углового положения(у,у,$):
Е
-t
—1 —1-1
I- —!-1
Рис. 16 Изменения углового положения(у,у,$) для Рис. 17 Изменения углового положения(у,у,$) для ПИД-регулятора регулятора бэкстеппинг
э о
о
15
25
30
35
40
о
5
25
30
35
40
Результаты моделирования показывают, что диапазон изменения углового положения регулятора бэкстеппинг заметно меньше, чем соответствующий диапазон для ПИД-регулятора, и кривая более гладкая. Поэтому для управления угловым положением полета квадрокоптера выбраны регуляторы «бэкстеппинг».
Заключение
Разработана и проверена математическая модель квадрокоптера как объекта управления. Представлена разработка простого алгоритма управления, который позволяет стабилизировать высоту, угловое положение и координаты полета квадрокоптера и отслеживать заданную траекторию. Результаты моделирования показывают работоспособность алгоритма и возможность его реализации.
Список литературы
1. Santos O., Romero H., Salazar S, Lozano R. Real-time Stabilization of a Quadrotor UAV: Nonlinear Optimal and Suboptimal Control // Journal of Intelligent & Robotic Systems. 2023. Vol. 70, iss. 1-4. P. 79-91. DOI: 10.1007/s10846-012-9711-8
2. Li T., Zhang Y., Gordon B.W. Passive and active nonlinear fault tolerant control of a quadrotor unmanned aerial vehicle based on the sliding mode control technique // Journal of Systems and Control Engineering. 2023. Vol. 227. P. 12-23. DOI: 10.1177/0959651812455293
3. Gong X., Bai Y., Peng C., Zhao C., Tian Y. Trajectory tracking control of a quad-rotor UAV based on command filtered backstepping // 2023 Third International Conference on Intelli-
gent Control and Information Processing (ICICIP). IEEE Publ., 2023. P. 179-184. DOI: 10.1109/ICICIP.2023.6391413
4. Dierks T, Jagannathan S. Output feedback control of a quadrotor UAV using neural networks // IEEE Transactions on Neural Networks. 2023. Vol. 21, no. 1. P. 50-66. DOI: 10.1109/TNN.2009.2034145
5. Xian B., Diao C., Zhao B., Zhang Y. Nonlinear robust output feedback tracking control of a quadrotor UAV using quaternion representation // Nonlinear Dynamics. 2023. Vol. 79, iss. 4. P. 2735-2752. DOI: 10.1007/s11071-014-1843-x
6. Yi Z., Xiuxia Y., Hewei Z., Weiwei Z. Tracking control for UAV trajectory // 2023 IEEE Chinese Guidance, Navigation and Control Conference (CGNCC). IEEE Publ., 2023. P. 1889-1894. DOI: 10.1109/CGNCC.2023.7007469
7. Roberts A., Tayebi A. Adaptive Position Tracking of VTOL UAVs // IEEE Transactions on Robotics. 2023. Vol. 27, no. 1. P. 129-142. DOI: 10.1109/TRQ.2023.2092870
8. Krstic M., Kanellakopoulos I., Kokotovic P.V. Nonlinear and adaptive control design. New York: John Wiley & Sons, 1995. 563 p.
9. Bouabdallah S, Siegwart R. Backstepping and sliding-mode techniques applied to an indoor micro quadrotor // ICRA 2005. Proceedings of the 2005 IEEE International Conference on Robotics and Automation. IEEE Publ., 2005. P. 2247-2252. DOI: 10.11Q9/ROBOT.2005.1570447
10. Голубев А.Е. Отслеживание программного изменения угла атаки для продольной динамики ракеты класса «воздух-воздух» с помощью метода обхода интегратора // Наука и образование. МГТУ им. Н.Э. Баумана. Электрон. журн. 2023. № 11. С. 401414. DOI: 10.7463/1113.0622518
11. Bouabdallah S., Siegwart R. Towards Intelligent Miniature Flying Robots // Field and Service Robotics. 2006. Vol. 25. P. 429-440. DOI: 10.1007/978-3-540-33453-8 36
12. Курс теоретической механики / под ред. К.С. Колесникова. М.: МГТУ им. Н.Э. Баумана, 2000. 736 с.
13. Гурьянов А.Е. Моделирование управления квадрокоптером // Инженерный вестник. 2023. № 8. С. 522-534. Режим доступа: http://engbul.bmstu.ru/doc/723331.html (дата обращения 01.04.2023.).
14. Программный комплекс «Универсальный механизм». 2023. Режим доступа: http://www.universalmechanism.com/download/70/rus/gs um.pdf (дата обращения 01.04.2023).
15. Бесколлекторный мотор. Режим доступа: http://bkso.baidu.com/view/344829.htm (дата обращения 01.04.2023).
16. Шляйхер М. Техника автоматического регулирования для практиков. М.: JUMO GmbH, 2006. 124 с.
Science and Education of the Bauman MSTU, 2023, no. 05, pp. 218-235.
Science^Education
of the Bauman MSTU
ISS N 1994-0408 © Bauman Moscow State Technical Unversity
Stabilization Algorithms for Automatic Control of the Trajectory Movement of Quadcopter
DOI: 10.7463/0515.0771076
Received: Revised:
03.03.2023 02.05.2023
Gen KeKe1*, Chulin N.A.1
1Bauman Moscow State Technical University, Moscow, Russia
Keywords: quadcopter, PID control, method of backstepping, mathematical model, simulation, flight
stabilization, tracking mode
The article considers an automatic quadcopter routing task. The quadcopter is an unmanned aerial vehicle (UAV), which has four engines. Currently, such already widely used vehicles are controlled, mainly, from the operator’s control panel. A relevant task is to develop a quadcopter control system that enables an autonomous flight. The aim of this paper is to study the possibility for solving this problem using an algorithm of the stabilization and trajectory control.
A mathematical model of the quadrocopter is the fairly complicated non-linear system, which can be obtained by using the Matlab Simulink and Universal Mechanism software systems simultaneously. Comparison of the simulation results in two software packages, i.e. Matlab wherein the nonlinear system of equations is modeled and UM wherein the flight path and other parameters are calculated according to transmitted forces and moments may prove correctness of the model used.
Synthesis of controllers for the orientation and stabilization subsystem and trajectory control subsystem, is performed on traditional principles, in particular using the PID controllers and method based on Lyapunov functions known in the literature as «backstepping.» The most appropriate controls are selected by comparing the simulation results. Responses to the stepped impacts and to tracking the given paths have been simulated. It has been found that the flight path of a quadcopter almost coincides with designated routing, changes of coordinates for the quadcopter mass center of two controllers under comparison are almost the same, but a deviation range of the angular position for the controller backstepping is much smaller than that of for the PID controller.
References
1. Santos O., Romero H., Salazar S, Lozano R. Real-time Stabilization of a Quadrotor UAV: Nonlinear Optimal and Suboptimal Control. Journal of Intelligent and Robotic Systems, 2023, vol. 70, iss. 1-4, pp. 79-91. DOI: 10.1007/s10846-012-9711-8
2. Li T., Zhang Y., Gordon B.W. Passive and active nonlinear fault tolerant control of a quadrotor unmanned aerial vehicle based on the sliding mode control technique. Journal of Systems and Control Engineering, 2023, vol. 227, pp. 12-23. DOI: 10.1177/0959651812455293
3. Gong X., Bai Y., Peng C., Zhao C., Tian Y. Trajectory tracking control of a quad-rotor UAV based on command filtered backstepping. 2023 Third International Conference on Intelligent Control and Information Processing (ICICIP). IEEE Publ., 2023, pp. 179-184. DOI: 10.1109/ICICIP.2023.6391413
4. Dierks T, Jagannathan S. Output feedback control of a quadrotor UAV using neural networks. IEEE Transactions on Neural Networks, 2023, vol. 21, no. 1, pp. 50-66. DOI: 10.1109/TNN.2009.2034145
5. Xian B., Diao C., Zhao B., Zhang Y. Nonlinear robust output feedback tracking control of a quadrotor UAV using quaternion representation. Nonlinear Dynamics, 2023, vol. 79, iss. 4, pp. 2735-2752. DOI: 10.1007/s11071-014-1843-x
6. Yi Z., Xiuxia Y., Hewei Z., Weiwei Z. Tracking control for UAV trajectory. 2023 IEEE Chinese Guidance, Navigation and Control Conference (CGNCC). IEEE Publ., 2023, pp. 1889-1894. DOI: 10.1109/CGNCC.2023.7007469
7. Roberts A., Tayebi A. Adaptive Position Tracking of VTOL UAVs. IEEE Transactions on Robotics, 2023, vol. 27, no. 1, pp. 129-142. DOI: 10.1109/TRQ.2023.2092870
8. Krstic M., Kanellakopoulos I., Kokotovic P.V. Nonlinear and adaptive control design. New York, John Wiley and Sons, 1995. 563 p.
9. Bouabdallah S, Siegwart R. Backstepping and sliding-mode techniques applied to an indoor micro quadrotor. ICRA 2005. Proceedings of the 2005 IEEE International Conference on Robotics and Automation. IEEE Publ., 2005, pp. 2247-2252. DOI: 10.11Q9/ROBOT.2005.1570447
10. Golubev A.E. Tracking a process of scheduled change in the angle of attack for longitudinal dynamics of an air-to-air missile with the use of an integrator back-stepping method. Nauka i obrazovanie MGTU im. N.E. Baumana = Science and Education of the Bauman MSTU, 2023, no. 11, pp. 401-414. DOI: 10.7463/1113.0622518 (in Russian).
11. Bouabdallah S., Siegwart R. Towards Intelligent Miniature Flying Robots. Field and Service Robotics, 2006, vol. 25, pp. 429-440. DOI: 10.1007/978-3-540-33453-8 36
12. Kolesnikov K.S., ed. Kurs teoreticheskoi mekhaniki [Course of theoretical mechanics]. Moscow, Bauman MSTU Publ., 2000. 736 p. (in Russian).
13. Gur’yanov A.E. Modeling of control over quadrocopters. Inzhenernyi vestnik MGTU im. N.E. Baumana = Engineering Herald of the Bauman MSTU, 2023, no. 8, pp. 522-534. Available at: http://engbul.bmstu.ru/doc/723331.html , accessed 01.04.2023. (in Russian).
14. Programmnyi kompleks «Universal’nyi mekhanizm» [Software «Universal Mechanism»]. 2023. Available at: http://www.universalmechanism.com/download/70/rus/gs_um.pdf , accessed 01.04.2023. (in Russian).
15. Brushless motor. Available at: http://bkso.baidu.com/view/344829.htm , accessed 01.04.2023.
16. Shlyaikher M. Tekhnika avtomaticheskogo regulirovaniya dlyapraktikov [Automatic control engineering for practitioners]. Moscow, JUMO GmbH Publ., 2006. 124 p. (in Russian).
Виды калибровок
Существует два способа настройки, триммирования и калибровки квадрокоптеров:
- Механический. Если отклонения дрона в полете совсем незначительные, можно вручную подкрутить регулятор тяги, расположенный между сервоприводом и тарелкой конструкции.
- Автоматический. Если дрон отклоняется от курса сильно и заметно, его настраивают при помощи пульта. Специальный триммер переводят в положение, противоположное крену аппарата.
Перед автоматической калибровкой дрона рекомендуется внимательно изучить инструкцию, чтобы разобраться в устройстве пульта управления и самого аппарата.
Как настроить и откалибровать квадрокоптер
Настройку управления квадрокоптера осуществляют при проведении первого полета устройства. Первым делом необходимо установить в соответствующее гнездо аккумулятор, разместить дрон на ровной поверхности и включить аппарат. Около десяти секунд займет автоматическая настройка гироскопов, после чего можно будет переходить к подсоединению пульта управления. Алгоритм выглядит так:
- для трехосевых моделей — пульт включают и ждут семь секунд, когда повторяющиеся короткие сигналы сменятся финальным длинным, сообщающим об успешной синхронизации;
- для шестиосевых моделей — пульт включают и до упора поднимают вверх ручку газа, а потом опускают максимально вниз и дожидаются звукового сигнала.
Дальше необходимо перейти к практическому испытанию и триммировать квадрокоптер на открытой местности в безветренную погоду. Устройство поднимают в воздух и передвигают его в разных направлениях, наблюдая за креном:
- если дрон отклоняется вперед или назад, настройки требует левый рычаг;
- если влево или вправо, нужно триммировать правый стик;
- если коптер одновременно кренится вбок и вверх или вниз, следует настроить оба рычага.
Для калибровки пульта квадрокоптера необходимо воспользоваться триммерами тангажа, расположенными рядом с обоими джойстиками. Их аккуратно подкручивают в нужную сторону, пока полет дрона не станет ровным и послушным. Обычно один из джойстиков требует более тщательной калибровки, чем другой.
Важно! Автоматическую настройку проводят обычно первой. Уже после нее при необходимости выполняют механическую калибровку квадрокоптера для ликвидации незначительных отклонений.
Как проверить калибровку квадрокоптера
Самый простой способ понять откалиброван квадрокоптер или нет, это сделать тестовый полет. Хаотичная смена траектории при полете, говорит о необходимости произвести триммирование.
Перед калибровкой проверяем джойстики на пульте управления. На многих моделях по умолчанию правый стик отвечает за движение вверх-вниз, а левая сторона вперед-назад-влево-вправо. Включаем пульт, запускаем дрон в воздух на небольшую высоту – до 1 метра. И пробуем им управлять, задавая различные направления.
Перед тем, как прикрепить моторы к раме, измерьте длину винтов. Слишком длинные могут повредить обмотку мотора, что приведет к короткому замыканию, да и просто испортит двигатель.
Сгоревшим мотором дело может не обойтись. Если вы еще не в курсе — карбон (материал, из которого сделана рама) токопроводящий материал, и если винт замкнет на проводку, то сгорит и вся остальная электроника, которая касается рамы.
Подключите квадрокоптер к Betaflight Configurator, перейдите во вкладку Setup, там вы увидите 3D-модель дрона. Подвигайте во все стороны дрон (который у вас на столе), он должен полностью повторять ваши движения. Если вы наклонили нос вниз, то моделька тоже должна наклониться стрелкой вниз.
Если вы наклонили дрон носом вниз, а моделька наклонилась вправо, значит, вам нужно внести корректировки во вкладке Configuration, в блоке меню «Board and Sensor Alignment». Как правило, проблемы такого характера бывают с осью вращения. Там нужно будет выставить значение в градусах, например, 170 (число рандомное, все зависит от того, как будет вести себя моделька по отношению к реальному квадрокотперу).
Проверить нужно следующее:
- все ли двигатели работают;
- в правильном ли направлении они крутятся;
- нет ли механических повреждений.
Подключите аккумулятор, запустите Betaflight configurator и перейдите во вкладку Motor. Поставьте флажок в положение «I understand» (я понимаю). Теперь по одному ползунку поднимайте вверх и смотрите, в какую сторону крутится мотор, схема вращения будет на той же странице. Не нужно сильно раскручивать моторы, без пропеллеров это им только вредит.
Если один из двигателей не реагирует или дергается, проверьте качество пайки от полетного контроллера до ESC (регуляторы оборотов) и от ESC до моторов.
Для более простого определения, в какую сторону вращается мотор, на него можно положить пропеллер (на вал), но не закручивать!
Подключитесь к бетафлайт и перейдите во вкладку «receiver». Подключите аккумулятор, включите пульт. Проверьте, все ли команды реагируют. Когда вы двигаете стиками и переключателями, цветные полоски тоже должны двигаться.
Если ничего не происходит, убедитесь, включен ли приемник и пульт, правильно ли подключен приемник. Также убедитесь, что во вкладке Конфигурация выбран правильный тип приемника (IBus, SBus и т.д.), а также правильный ли выбран протокол работы (мультишот, дшот и т.д.).
Если полоски двигаются, но не в том порядке, попробуйте поменять карту разметки с AETR1234 на TEAR1234 во вкладке «receiver».
или внеся корректировки через CLI, подробнее здесь (в статье это заголовок Receiver).
Неправильные средние значения приведут к тому, что ваш дрон начнет дрейфовать и лететь в разные стороны (смотря какой канал не в середине).
Проверьте, какое число показывает стик газа, когда он в нижнем положении. Число не должно быть выше 1040, в противном случае дрон не получится заармить (запустить двигатели).
Просто необходимая вещь для гоночного квадрокоптера (да и для съемочного тоже), используется в основном для поиска после падения, своим сильным писком поможет найти дрон даже в густой траве. Также пищалка может издавать сигналы при неисправностях, готовности к взлету, низком заряде аккумулятора и так далее.
Матчасть
Определим невязку — разницу между требуемым и реальным значением некоторой величины:
— требуемое значение величины (угол с джойстика),
— текущее значение величины (угол с датчика).
Зададим момент сил для угла
где
— пропорциональная,
— интегральная,
— дифференциальная составляющие.
Знак минус говорит о том, что при положительных
воздействие направлено против отклонения.
В чём смысл этой формулы? Напишем уравнение динамики, положив
— момент инерции.
Для простоты уберём интегральную составляющую (
где
Т. е. чем больше пропорциональная составляющая, тем более «резкой» будет реакция на воздействие (больше амплитуда). Чем больше дифференциальная составляющая, тем быстрее будет происходить затухание (больше декремент).
Из модели затухающих колебаний получаем выражение для коэффициента затухания:
Из возможных решений уравнения нам подходит режим, близкий к критическому (граница апериодичности,
) — нет отрицательного «перелёта» графика, переходный процесс короткий. Как видно, критический режим задается всего одним соотношением на коэффициенты ПИД-регулятора.
Интегральная составляющая устраняет статическую ошибку. Пусть невязка
Более подробный анализ уравнения ПИД-регулятора можно найти в других статьях: раз, два.
Первая авария
Слишком большая дифференциальная составляющая на практике приводит к автоколебаниям, чего не должно быть в теории. Почему? Уберём все составляющие, кроме дифференциальной, и решим уравнение:
т. е. величина
превращается в линейную комбинацию
и её производной. То же самое происходит с моментом сил, который также является гармонической функцией в этом примере. При определенных
коэффициенты линейной комбинации могут быть такими, что возникнут незатухающие автоколебания.
Также результат работы составляющих ПИД приходится ограничивать по модулю. Иначе значение
Компромиссом является установка не слишком маленьких коэффициентов в совокупности с введением ограничения сверху на все три составляющие: пропорциональную, интегральную и дифференциальную.
Стоит сказать, что реальная коррекция в почти горизонтальном положении — около 1–2 попугаев процентов мощности моторов (полётная мощность около 60%).
Рассмотрим решение уравнения второго порядка (1), которое в одном из случаев является затухающей синусоидой.
На практике действительно получается что-то похожее (пример справа). Для демонстрации коэффициенты специально ухудшены для увеличения времени затухания. Оригинальную прошивку ESC пришлось заменить, т. к. она вносила существенную задержку, из-за которой математическая модель плохо описывала реальную систему.
Поскольку
Прошивка полётного контроллера
На этом этапе я застрял дольше всего, так как были проблемы с прошивкой. Оказалось, первый раз шить надо обязательно с замыканием boot-контактов (как в этом видео). Кстати, иногда бывает, что ПК защищён от записи и невозможно прошить новую прошивку. Вот инструкция, как это исправить.
Пожалуй, самой популярной прошивкой на сегодняшний день, вполне заслуженно, является Cleanflight. После её установки достоточно только настроить протокол приёмника и квадрокоптер уже может вполне сносно лететь. Для настройки используется удобная графическая оболочка Cleanflight Configurator.
Благодаря открытому коду прошивки, у неё есть несколько ответвлений (форков). Самым интересным из них является Betaflight от человека под ником Boris B. Прошивка очень динамично развивается и некоторые её «фичи» потом переходят в «родительский» Cleanflight (например, полётный режим Airmode).
Минусом Betaflight является то, что релизы выходят достаточно часто, а стабильность их не всегда высока. Кстати, эта причина на несколько недель задержала написание данной статьи. На момент завершения сборки квадрокоптера как раз вышла версия 2.8.0, которая имела пару ошибок и отличалась недружелюбными дефолтными настройками.
Очень быстро появилась исправленная версия 2.8.1 RC1, но опыт работы программистом подсказал мне, что лучше подождать релиза. Я не прогадал, так как одновременно с релизом версии 2.8.1, появился и Betaflight Configurator. Можно сказать, что это новый этап в истории данной прошивки.
Дело в том, что по мере своего развития Betaflight всё больше и больше отдалялся от Cleanflight и конфигуратор последнего становился всё более и более бесполезным, так как основная часть настроек всё равно делалась через консоль CLI. Кстати, на момент подготовки этой статьи, уже вышла версия Betaflight под номером 2.9.