Санкт-Петербургский государственный университет
Кафедра механики управляемого движения
Хакимов Анвар Фанисович
Выпускная квалификационная работа бакалавра
Разработка системы управления удержанием БПЛА на
расчетной траектории
Направление 010300
Фундаментальная информатика и информационные технологии
Научный руководитель,
кандидат физ.-мат. наук,
доцент
Шиманчук Д.В.
Санкт-Петербург
2016
Содержание
1 Введение
2
2 Постановка задачи
4
3 Обзор литературы
5
4 Задачи поиска оптимального управления
6
4.1
Подходы к решению задач поиска оптимальных управлений.
6
4.2
Описание алгоритма формирования управляющей силы
. .
7
4.3
Определение управляющих функций
. . . . . . . . . . . . .
9
5 Математическая модель
5.1
11
Описание математической модели . . . . . . . . . . . . . . .
12
6 Описание алгоритма
16
7 Реализация алгоритма
19
7.1
Описание использованных средств . . . . . . . . . . . . . . .
19
7.2
Результаты моделирования . . . . . . . . . . . . . . . . . . .
20
8 Выводы
27
9 Заключение
28
10 Список литературы
29
A Приложение
30
1
1
Введение
Под беспилотным летательном аппаратом (в дальнейшем БПЛА) обыч-
но понимают любой летательный аппарат без экипажа на борту. Основными его задачами обычно являются воздушная съёмка и наблюдение в режиме реального времени за различными объектами. Однако в настоящее
время БПЛА приобретают всё большую популярность для решения широкого круга задач гражданских и военных сфер. Основные предпосылки
для этого следующие:
∙ Необходимость в относительно недорогих самоуправляемых летательных аппаратах для решения широкого круга задач гражданского и
военного сектора;
∙ Появление достаточно дешёвых БПЛА, повлекло их распространение
как части массовой продукции;
∙ Высокая сложность разворачивания необходимой инфраструктуры
по месту требования для использования летательных аппаратов с пилотами.
Вообще говоря, БПЛА являются лишь частью сложного многофункционального комплекса. Можно выделить следующие элементы входящие в
данную систему:
∙ Сам БПЛА;
∙ Наземная система управления;
∙ Необходимое программное обеспечение;
∙ Линии передачи данных;
∙ Дополнительные устройства, необходимые для выполнения задач.
Несложно понять, что управление БПЛА оператором, что в наше время в основном производится вручную, может повлечь большое количество
аварийных ситуаций, чем если бы управление производилось в автоматическом, либо полуавтоматическом режиме. Такие режимы управления позволили бы избежать непредвиденных ситуаций, таких, как нестабильность,
2
либо полная недоступность линий связи и некорректных действий оператора. Поэтому изучение вопроса разработки системы позволяющей БПЛА
производить движение по некоторой заранее заданной траектории является необходимым для качественной эволюции систем управления БПЛА.
Для автономного функционирования БПЛА содержит целый комплекс
различных элементов. В основном это:
∙ Управляющая аппаратура;
∙ Трех-осевой гироскоп и акселерометр;
∙ ГЛОНАСС/GPS - приёмник;
∙ Датчики давления и воздушной скорости;
∙ Радио-модем.
В качестве управляющей аппаратуры, как правило, используются специализированные вычислители на базе цифровых сигнальных процессоров или компьютеры формата PC/104, MicroPC под управлением операционных систем реального времени (QNX, VME, VxWorks, XOberon). Программное обеспечение пишется обычно на языках высокого уровня, таких
как С, С++ или Ada95.
Различные датчики используются для поддержки и корректировки полёта по заданному курсу. Кроме того они дают возможность быстро определить положение летательного аппарата в пространстве.
Кроме того, можно выделить любительские сборки БПЛА, в которых
система управления представляется процессорными платами Arduino и Rasberry
Pi под управлением различных дистрибутивов линукса, таких как Raspiban
и Pidora (Fedora для Rasberry Pi).
3
2
Постановка задачи
Оcновной задачей данной научно-исследовательской работы является
разработка компьютерной модели, которая моделируя полёт беспилотника,
смогла бы задать БПЛА управления, необходимые для прохождения им
определённого маршрута. Под определённым маршрутом в данной работе
будет иметься ввиду рассчитанная по исходным данным траектория.
Для решения поставленной задачи необходимо выполнить следующие
этапы:
1. Предварительно исследовать подходы к решению задач управления;
2. Описать математическую модель полёта летательного аппарата;
3. Определить алгоритм нахождения расчетной траектории;
4. Построить метод нахождения управлений БПЛА необходимых для
достижения движения по необходимой траектории;
5. Синтезировать алгоритм для моделирования полёта БПЛА в соответствии с полученной моделью;
6. Реализовать Simulink-модель, моделирующую передвижение БПЛА
по расчетной траектории;
7. Провести исследование адекватности полученной модели.
4
3
Обзор литературы
Достаточно подробное описание модели летательного аппарата, метода
построения пространственной траектории движения и способа расчёта соответствующих управлений можно найти в [1]. Описание приёмов использования концепции обратных задач динамики с примерами и обширную
библиографию по данному вопросу можно найти в [2], [3]. В [4] приведено
описание построения t-параметрических траекторий в соответствии с используемой моделью. В частности представлен расчет t-параметрической
траектории, связанной с планированием маневра смены эшелона. Кроме
того показано, что данные траектории являются допустимыми.
В [5] можно найти описание БПЛА как объекта управления и некоторые требования к его управлении. Кроме того, в данной работе разработана имитационная динамическая модель БПЛА по упрощенной модели на
основе действующих на летательный аппарат моментов.
В [6] можно найти документацию по использованию пакета прикладных
программ MATLAB, среды имитационного моделирования Simulink и 3D
Animation Toolbox.
5
4
Задачи поиска оптимального управления
4.1
Подходы к решению задач поиска оптимальных
управлений.
Для начала сформулируем классическую постановку задачи поиска оптимальных управлений. Пусть управляемая система представлена математической моделью движения в виде дифференциального уравнения.
𝑥(𝑡)
˙
= 𝑓 (𝑥, 𝑢),
(1)
где 𝑥 - вектор координат состояния, 𝑢 - вектор управляющих функций. Будем полагать, что векторная функция 𝑓 (𝑥, 𝑢) - непрерывна и непрерывно
дифференцируема по совокупности переменных. Сформируем задачу поиска оптимальных управлений. В момент времени 𝑡 = 𝑡0 система находиться
в положении, которое определяется вектором 𝑥(𝑡0 ) = 𝑥0 . Необходимо найти управление 𝑢 такое, что они переводят систему в положение 𝑥(𝑡1 ) = 𝑥1 ,
а по траектории движения необходимо минимизировать следующий функционал:
∫︁
𝑡1
𝐽(𝑢) =
𝐺(𝑥, 𝑢)𝑑𝑡
𝑡0
В настоящее время разработаны различные пути решения задачи оптимального управления, такие как процедуры на основе принципа максимума, метода функций Ляпунова, динамического программирования и
классического вариационного исчисления. Однако формальная постановка
задач управления не всегда является оправданной и пригодной для практического применения. Причинами этого обычно является то, что:
∙ Во первых, действительные уравнения движения нередко известны
только приближенно;
∙ Во вторых, высока сложность построения оптимизируемого функционала, которые, к тому же, нередко сложны для практического использования;
∙ И более того, даже если первые две проблемы разрешимы, возникают
6
ситуации, когда решить поставленную задачу невозможно.
По данным причинам в современной науке происходит поиск других
способов конструирования алгоритмов управления движениям по принципам оптимальности. В настоящее время для решения задач автоматического управления широко используется концепция обратных задач динамики.
В ней управляющие алгоритмы предполагается конструировать из условия
того, что будут обеспечиваться предписанные динамические характеристики создаваемых систем. В классической постановке задачи, центральным
является тот факт, что необходимо минимизировать функционал поиском
управляющих функций 𝑢(𝑡), которые физически являются мерами перемещения управляющих механизмов объекта. В предлагаемом же подходе,
данную задачу заменяют на задачу поиска таких управляющих сил, которые способны привести систему в требуемое движение. Нахождение управляющих сил в данном случае как раз производиться в результате решения
обратной задачи динамики при условии, что движение будет производиться
по заранее известной траектории. Синтез алгоритма управления выполняется следующим образом:
1. Создание алгоритма, который формирует управляющую силу;
2. Определение управляющих функций, которые могут создать необходимые управляющие силы.
4.2
Описание алгоритма формирования управляющей
силы
Рассмотрим способ построения алгоритма управления на примере системы с одной степенью свободы. Пусть математическая модель управляемого процесса представлена следующим уравнением:
𝑥¨(𝑡) + 𝑟(𝑥)𝑥(𝑡)
˙ + ℎ(𝑥)𝑥(𝑡) = 𝑓 (𝑥, 𝑥,
˙ 𝑢),
где 𝑓 (𝑥, 𝑥,
˙ 𝑢) - нормированная по массе сила, 𝑥 - вектор, определяющий положение системы, 𝑢 - управляющая функция, 𝑟(𝑥), ℎ(𝑥) - некоторые непрерывные функции.
7
Пусть в момент времени 𝑡 = 0 справедливы следующие начальные условия: 𝑥(0) = 𝑥0 , 𝑥(0)
˙
= 𝑥˙ 0 . Необходимо определить такой алгоритм формирования управляющей силы, что система произведет движение из точки
(𝑥0 , 𝑥˙ 0 ) в начало координат по траектории:
𝑥(𝑡) = 𝑥* (𝑡), 0 ≤ 𝑡 < 𝑇 < ∞
(2)
Предположим, что траектория 𝑥* (𝑡) описана следующим равенством:
𝑥* (𝑡) = 𝑐1 𝑒𝜆1 𝑡 + 𝑐2 𝑒𝜆2 𝑡 ,
(3)
где 𝜆1 , 𝜆2 - различные действительные или комплексно-сопряженные числа
с отрицательной действительной частью, 𝑐1 , 𝑐2 - постоянные определяемые
начальными условиями. Отметим, что для системы (3) выполняется
𝑥* (𝑡) → 0, 𝑥˙ * (𝑡) → 0, 𝑡 → 0
Что значит, что траектория 𝑥* (𝑡) удовлетворяет краевым условиям. Поэтому, если существует управляющая сила, реализующая это движение,
то она удовлетворяет условиям поставленной задачи. Данную силу можно
найти по следующему отношению:
𝑑
𝑑2
𝑓 (𝑡) = (
+ 𝑟(𝑥) + ℎ(𝑥))𝑥* (𝑡)
𝑑𝑡
𝑑𝑡
*
(4)
В [2] показано, что после подстановки (3) в (4) и некоторых преобразований связанных с учетом условий движения по траектории можно
получить интересующий нас закон управления силой в следующем виде:
𝑓 * (𝑥, 𝑥)
˙ = (𝑟(𝑥) + 𝜆1 + 𝜆2 )𝑥˙ + (ℎ(𝑥) − 𝜆1 𝜆2 )𝑥
(5)
Важно отметить, что в каждый момент времени значения этого выражения формируются по текущим состояниям системы 𝑥, 𝑥˙ , а значит на
основе обратной связи. Кроме того несложно изменить условия задачи для
нахождения управляющей силы, которая переводит систему в окрестность
8
уже произвольной точки (𝑥0 , 0) за конечное время, если задать траекторию
движения в следующем виде:
𝑥0 − 𝑥* (𝑡) = 𝑐1 𝑒𝜆1 𝑡 + 𝑐2 𝑒𝜆2 𝑡
Однако форму задания траектории можно задавать и в другом виде.
Например как решение дифференциального уравнения или значения полинома, который удовлетворяет краевым условиям.
4.3
Определение управляющих функций
Для регулирования управляющей силы 𝑓 (𝑥, 𝑥,
˙ 𝑢) необходимо определить управляющую функцию 𝑢, которая создает необходимое значение силы. Пусть параметры управляемого объекта известны и управляющая сила
дана в виде (5). Cогласно [2], данная сила однозначно определяется значением управляющей функции в каждый момент времени. Поэтому для
каждого состояния системы 𝑥(𝑡), 𝑥(𝑡)
˙
можно указать значение силы 𝑢* такое, что выполняется:
𝑓 (𝑥, 𝑥,
˙ 𝑢* ) = 𝑓 * (𝑥, 𝑥)
˙
Понятно, что для определения 𝑢* нужно решить данное уравнение. Тогда если существует обратная функция, то решения можно представить в
следующем виде:
𝑢* (𝑡) = 𝑓 −1 (𝑓 * )
(6)
Заметим, что для уменьшении погрешности между 𝑥(𝑡), 𝑥* (𝑡) можно
реализовать управление с обратным связями. Пусть модель системы возможно описать уравнением следующего вида:
𝑥¨ = 𝑓 (𝑥, 𝑥)𝑢
˙
и задана траектория (2). Будем искать управление 𝑢 в форме обратных
связей. Определим отклонения траектории следующим образом:
𝑦 = 𝑥 − 𝑥* (𝑡)
9
(7)
Пусть данное отклонение соответствует управлению и подчиняются следующему условию:
(8)
𝑦¨ + 𝑘1 𝑦˙ + 𝑘2 𝑦 = 0
Заметим, что для такого отношения может выполняется следующая
теорема.[7]
Теорема 1
Для системы:
˙
𝑋(𝑡)
= 𝐴 * 𝑋(𝑡)
точка покоя системы асимптотически устойчива тогда и только тогда, когда действительная часть собственных чисел матрицы
𝐴 меньше
нуля.
Поэтому при выборе констант 𝑘1 , 𝑘2 так, чтобы они удовлетворяли условию данной теоремы, можно гарантировать выполнение следующих условий:
𝑥(𝑡) → 𝑥* (𝑡), 𝑥(𝑡)
˙
→ 𝑥˙ * (𝑡), 𝑡 → +∞
Выполним подстановку (7) в (8) с учетом того, что
𝑥¨* (𝑡) = 𝑓 (𝑥* , 𝑥˙ * )𝑢* , 𝑥¨(𝑡) = 𝑓 (𝑥, 𝑥)𝑢,
˙
где 𝑢* можно найти из соотношения (6). Получим следующее:
𝑥(𝑡)𝑢 − 𝑥* (𝑡)𝑢* + 𝑘1 (𝑥(𝑡)
˙ − 𝑥˙ * (𝑡)) + 𝑘2 (𝑥(𝑡) − 𝑥* (𝑡)) = 0;
и далее получим управление в форме обратных связей:
𝑥* (𝑡)𝑢* − 𝑘1 (𝑥(𝑡)
˙ − 𝑥˙ * (𝑡)) − 𝑘2 (𝑥(𝑡) − 𝑥* (𝑡))
𝑢=
𝑥(𝑡)
10
5
Математическая модель
Перечень условных обозначений
𝑢
Вектор управлений
𝛿
Общее время маневра
𝛾
Угол крена
𝜓
Угол курса
𝜗
Угол наклона траектории
𝑔
Ускорение свободного падения
𝐻
Высота
𝑘1 , 𝑘2
Коэффициенты стабилизации
𝐿
Продольная дальность
𝑛𝑥
Продольная перегрузка
𝑛𝑦
Поперечная перегрузка
𝑡
Текущее время маневра
𝑡0
Начальное время маневра
𝑢𝑝
Вектор программных управлений
𝑉
Путевая скорость
𝑦
Вектор состояния объекта
𝑦𝑝
Вектор программных состояний объекта
𝑍
Боковая дальность
11
Рис. 1: Траекторная система координат.
5.1
Описание математической модели
Для начала определим системы координат в которых будет существовать модель. Для нормальной земной системы координат 𝑂𝑋𝑌 𝑍 начало О
расположим в произвольной точке земной поверхности. Ось 𝑂𝑌 направим
противоположно направлению силы тяжести по местной вертикали. А оси
𝑂𝑋, 𝑂𝑍 расположим так, чтобы они составляли с осью 𝑂𝑌 правую систему координат. Предположим, что для решения данной задачи, ориентация
системы координат является постоянной, и для небольших интервалов времени система инерциальна.
Далее получим нормальную систему координат 𝑂𝑡 𝑋𝑌 𝑍 . Для этого перенесем начало нормальной земной системы координат в центр масс БПЛА. После этого получим траекторную систему координат 𝑂𝑡 𝑋𝑡 𝑌𝑡 𝑍𝑡 . Начало системы координат находится в центре масс БПЛА, ось 𝑂𝑡 𝑋𝑡 направим
по вектору скорости летательного аппарата. Ось 𝑂𝑡 𝑌𝑡 направим там, чтобы
она была расположена в местной вертикальной плоскости, которая содержит вектор скорости, направлена вверх и перпендикулярна оси 𝑂𝑡 𝑋𝑡 . Ось
𝑂𝑡 𝑍𝑡 расположим так, чтобы она дополняла систему до правой системы
координат. Будем считать, что расположение траекторной системы координат относительно нормальной задается углами наклона траектории 𝜃 и
пути 𝜓 . Данная система координат изображена на рис. 1 .
12
Для описания движения БПЛА будем использовать следующую модель,
описание которой можно найти в [1]. Модель представлена системой шести
дифференциальных уравнений:
⎧
⎪
⎪
𝑉˙ = (𝑛𝑥 − sin 𝜗)𝑔
⎪
⎪
⎪
⎪
⎪
˙ = (𝑛𝑦 cos 𝛾 − cos 𝜗)𝑔
⎪
𝜗
⎪
⎪
⎪
𝑉
⎪
⎪
(𝑛𝑦 cos 𝛾 − cos 𝜗)𝑔
⎨˙
𝜓=−
𝑉 cos 𝜗
⎪
⎪
˙
⎪
𝐻 = 𝑉 sin 𝜗
⎪
⎪
⎪
⎪
⎪
⎪
𝐿˙ = 𝑉 cos 𝜗 cos 𝜓
⎪
⎪
⎪
⎪
⎩𝑍˙ = −𝑉 cos 𝜗 sin 𝜓
где 𝑉 - путевая скорость, 𝜗 - угол наклона траектории, 𝜓 - угол курса, 𝐻 высота, 𝐿 - продольная дальность, 𝑍 - боковая дальность, 𝑛𝑥 - продольная
перегрузка, 𝑛𝑦 - поперечная перегрузка, 𝛾 - угол крена, 𝑔 - ускорение свободного падения. Продольная дальность, высота и боковая дальность представляют собой координаты положения центра масс БПЛА в нормальной
земной системе координат. В качестве управлений рассматриваем перегрузки 𝑛𝑥 , 𝑛𝑦 и угол крена 𝛾 .
C помощью замены:
𝑢1 = 𝑛𝑥 , 𝑢2 = 𝑛𝑦 cos 𝛾, 𝑢3 = 𝑛𝑦 sin 𝛾
(9)
получим систему дифференциальных уравнений линейную по управлениям:
⎧
⎪
𝑉˙ = −𝑔 sin 𝜗 + 𝑔𝑢1
⎪
⎪
⎪
⎪
𝑔
cos 𝜗
⎪
⎪
⎪
𝜗˙ = −
𝑔 + 𝑢2
⎪
⎪
𝑉
𝑉
⎪
⎪
⎨𝜓˙ = − 𝑔 𝑢
3
𝑉 cos 𝜗
⎪
⎪
𝐻˙ = 𝑉 sin 𝜗
⎪
⎪
⎪
⎪
⎪
⎪
𝐿˙ = 𝑉 cos 𝜗 cos 𝜓
⎪
⎪
⎪
⎪
⎩˙
𝑍 = −𝑉 cos 𝜗 sin 𝜓
(10)
Далее, для удобства применения, представим как систему 3 дифферен13
циальных уравнений 2-ого порядка, положив:
𝑦1 = 𝐻, 𝑦2 = 𝐿, 𝑦3 = 𝑍, 𝑦4 = 𝑦˙1 , 𝑦5 = 𝑦˙2 , 𝑦6 = 𝑦˙3
получим:
⎧
⎪
⎪
𝑦¨ = −𝑔 + 𝑢1 𝑔 sin 𝜗 + 𝑢2 𝑔 cos 𝜗
⎪
⎨ 1
𝑦¨2 = 𝑢1 𝑔 cos 𝜗 cos 𝜓 − 𝑢2 𝑔 sin 𝜗 cos 𝜓 + 𝑢3 𝑔 sin 𝜓
⎪
⎪
⎪
⎩𝑦¨3 = −𝑢1 𝑔 cos 𝜗 sin 𝜓 + 𝑢2 𝑔 sin 𝜗 sin 𝜓 + 𝑢3 𝑔 cos 𝜓
(11)
Замена переменных обратима, так как по следующим формулам можно
найти остальные значения.
⎧
√︀
⎪
⎪
𝑉
=
𝑦42 + 𝑦52 + 𝑦62
⎪
⎪
⎪
𝑦4
⎪
⎪
⎪
sin 𝜃 =
⎪
⎪
𝑉√︀
⎪
⎪
⎨
𝑦52 + 𝑦62
cos 𝜃 =
𝑉
⎪
𝑦6
⎪
⎪
⎪
sin 𝜓 = − √︀ 2
⎪
⎪
⎪
𝑦5 + 𝑦62
⎪
⎪
𝑦5
⎪
⎪
⎪
√︀
cos
𝜓
=
⎩
𝑦52 + 𝑦62
(12)
Cтоит отметить, что замена переменных обратима только при выполнении следующих условий:
𝑉 > 0, |𝜃| <
𝜋
, −𝜋 < 𝜓 < 𝜋
2
Путь полёт БПЛА представляется как его переход из одного состояния
в другое с помощью чего и строятся программные управления. Состояние
БПЛА представим в следующем виде:
⎧
⎨𝑉 |
𝑡=𝑡0 = 𝑉0 , 𝜗|𝑡=𝑡0 = 𝜗0 , 𝜓|𝑡=𝑡0 = 𝜓0 ,
⎩𝐻|𝑡=𝑡 = 𝐻0 , 𝐿|𝑡=𝑡 = 𝐿0 , 𝑍|𝑡=𝑡 = 𝑍0
0
0
0
(13)
На паре таких состояний можно поставить и решить задачу терминаль14
ного управления для формулы (11). Решение будем искать в виде полиномов 5-ой степени на отрезке [0, 1] в виде:
𝑦𝑖 (𝑡) = 𝑝𝑖 (
𝑡 − 𝑡0
), 𝑖 = 1, 3,
𝛿
где 𝛿 - расчетное время маневра. Cтоит понимать, что нас интересуют значения полиномов только в отрезке [0, 1], что значит, что будет необходимо
проводить следующее преобразование времени:
𝜏=
𝑡 − 𝑡0
𝛿
(14)
Начальные значения функций 𝑦𝑖 (𝑡) и их производных первого и второго
порядка можно найти по формуле (11) и следующей формуле:
⎛
⎞
⎛
⎞
𝐻
𝑉 sin 𝜃
⎜ ⎟
⎜
⎟
𝑦 = ⎝ 𝐿 ⎠ , 𝑦˙ = ⎝ 𝑉 cos 𝜃 cos 𝜓 ⎠
𝑍
−𝑉 cos 𝜃 sin 𝜓
(15)
Для поиска коэффициентов данных полиномов воспользуемся следующими формулами:
⎧
⎪
⎪
𝛼0
⎪
⎪
⎪
⎪
⎪
⎪
𝛼1
⎪
⎪
⎪
⎪
⎨𝛼
2
⎪
⎪
𝛼3
⎪
⎪
⎪
⎪
⎪
⎪
𝛼4
⎪
⎪
⎪
⎪
⎩𝛼5
= 𝑦𝑖0
= 𝑦˙ 𝑖0 𝛿
= 12 𝑦¨𝑖0 𝛿 2
= 10(𝑦𝑖* −
= 15(𝑦𝑖0 −
2
𝑦𝑖0 ) − 2𝛿(3𝑦˙ 𝑖0 + 2𝑦˙ 𝑖* ) − 𝛿2 (3¨
𝑦𝑖0 − 𝑦¨𝑖* )
2
𝑦𝑖* ) + 𝛿(8𝑦˙ 𝑖0 + 7𝑦˙ 𝑖* ) + 3𝛿2 (3¨
𝑦𝑖0 − 2¨
𝑦𝑖* )
= 6(𝑦𝑖* − 𝑦𝑖0 ) − 3𝛿(𝑦˙ 𝑖0 + 𝑦˙ 𝑖* ) −
𝛿2
𝑦𝑖0
2 (¨
(16)
− 𝑦¨𝑖* )
Необходимо отметить, что изменение времени маневра 𝛿 может сильно
повлиять на полученную траекторию. В [4] предлагается несколько способов выбора времени маневра, однако также отмечено, что выбор данной
величины носит эмпирический характер. Так как разные методы выбора
времени предполагают, что могут оказаться некоторые ограничения на переменные состояния и управления. В данной работе выбор величины вре15
мени выполняется эмпирически.
Для нахождения необходимых программных управлений необходимо
решить систему (11) относительно управлений. В результате получим:
⎧
𝑦¨1 sin 𝜗 + 𝑦¨2 cos 𝜗 cos 𝜓 − 𝑦¨3 cos 𝜗 sin 𝜓
⎪
⎪
𝑢1 = sin 𝜗 +
⎪
⎪
𝑔
⎪
⎨
𝑦¨1 cos 𝜗 − 𝑦¨2 sin 𝜗 cos 𝜓 + 𝑦¨3 sin 𝜗 sin 𝜓
𝑢2 = cos 𝜗 +
⎪
𝑔
⎪
⎪
⎪
𝑦
¨
sin
𝜓
+
𝑦
¨
cos
𝜓
3
⎪
⎩𝑢3 = 2
𝑔
(17)
После получения программных управлений можно вычислить управления в форме обратных связей, для этого воспользуемся следующей формулой:
𝑢(𝑦, 𝑦)
˙ =
1 𝑇
1 𝑇
𝐵 (𝑦, 𝑦)𝐵(𝑦
˙
˙
𝑝 , 𝑦˙𝑝 )𝑢𝑝 − 2 𝐵 (𝑦, 𝑦)(𝐾
1 (𝑦˙ − 𝑦˙𝑝 ) + 𝐾2 (𝑦 − 𝑦𝑝 )), (18)
2
𝑔
𝑔
где 𝑢𝑝 , 𝑦𝑝 , 𝑦, 𝑢 - соответственно вектора программных и текущих траекторий и управлений, 𝐾1 , 𝐾2 - диагональные матрицы с элементами соответственно 𝑘1 , 𝑘2 , которые в дальнейшем будем называть коэффициентами стабилизации, а матрица 𝐵 задана следующим образом:
⎞
⎛
sin 𝜗
cos 𝜗
0
⎟
⎜
𝐵(𝑦, 𝑦)
˙ = 𝑔 ⎝ cos 𝜗 cos 𝜓 − sin 𝜗 cos 𝜓 sin 𝜓 ⎠
− cos 𝜗 sin 𝜓 sin 𝜗 sin 𝜓 cos 𝜓
В итоге получаем необходимые управления для движения БПЛА по
заданной траектории.
6
Описание алгоритма
Приведем алгоритм удержания БПЛА на расчетной траектории:
1. На первом шаге необходимо инициировать начальные и конечные состояния объекта, которые соответствуют необходимому маневру;
16
2. На втором шаге необходимо перейти к линейной по управлениям системе, для чего терминальные состояния объекта рассчитываются по
(15) и (11);
3. C помощью формулы (16) вычислить коэффициенты трех полиномов
и получаем расчетную траекторию движения БПЛА;
4. Далее вычислить время по формуле (14) и найти векторы 𝑦𝑝 (𝑡), 𝑦˙𝑝 (𝑡)
- соответствующие программным управлениям;
5. С помощью полученных векторов состояний по формуле (17) найти
вектор 𝑢𝑝 (𝑡) программных управлений;
6. Зная текущее состояния летательного аппарата, определяемое величинами 𝐻, 𝐿, 𝑍, 𝑉, 𝜃, 𝜓 с учетом(10) получить векторы 𝑦, 𝑦˙ по формуле
(15);
7. Используя программное и текущее состояние, и ,кроме того, вектор
программных управлений с помощью формул (18) вычислить управление в форме обратной связи;
8. C помощью полученного управления по формулам (11) получить новое состояние БПЛА соответствующее текущему моменту времени;
9. Перейти к шагу 4) и вычислить новое время. Кроме случая когда
выделенное для маневра время закончилось.
Далее приведем описание алгоритма в форме блок-схемы. Такой вид
описания алгоритма оказывается наиболее удобным при дальнейшей реализации его с помощью пакета MATLAB/Simulink и изображен на рис. 2.
В особенности из-за того, что программы с использованием Simulink представляются в похожем виде.
Кратко опишем функциональность каждого блока.
∙ В блоке «Исходные данные» содержатся исходные данные для маневра, позволяющие поставить терминальную задачу. Это два терминальных состояния в виде формул (13), (9) и времени 𝑡 ;
∙ В блоке «Расчет коэффициентов полиномов» по данным из блока
"Исходные данные"происходит расчет коэффициентов полиномов по
17
Рис. 2: Общая схема алгоритма
формуле (16);
∙ В блоках «Расчет коэффициентов производной полинома первого порядка» и «Расчет коэффициентов производной полинома второго порядка» происходит вычисление коэффициентов полиномов, которые
являются соответственно первой и второй производной исходного полинома;
∙ В блоке «Генератор времени» происходит генерация времени согласно
формуле (14). Выходным параметром этого блока является сгенерированные по данной формуле значения;
∙ В блоках «Вычисление значения полинома» соответственно названию происходит вычисление значений полиномов. Входные параметры - коэффициенты и время, выходные - значение полинома в данной
точке;
∙ В блоке «Расчет скорости и углов» по значения первых производных
полиномов по формулам (12) находим значения скорости и углов, которые описывают состояние летательного аппарата в данный момент
времени;
∙ В блоке «Расчет программных управлений» согласно отношениям
(17) вычисляются программные управления. Входные данные - угол
наклона траектории, угол пути и значения второй производной полинома в текущий момент времени, выходные вектор программных
18
управлений;
∙ В блоке «Расчет управлений» по формуле (18) вычисляются управления в форме обратных связей. Входные данные - значения полинома
и значение его первой производной, угол наклона траектории, угол
пути, вектор программных управлений и вектора 𝑌, 𝑌˙ , описывающие
текущее состояние летательного аппарата. Выходные данные управления в форме обратных связей;
∙ В блоке «Расчет нового положения летательного аппарата» происходит двойное интегрирование формулы (11) после чего мы получаем
новое положение в пространстве нашего летательного аппарата, описываемое вектором 𝑌, 𝑌˙ . Входные данные - вектор управлений и значения углов наклона траектории и пути, выходные данные - вектора
состояния БПЛА 𝑌, 𝑌˙ ;
∙ В блоке «Построение пространственных траекторий» происходит сбор
данных о перемещении БПЛА в пространстве и дальнейшее построение соответствующих графиков. Входные данные - положение летательного аппарата в пространстве.
7
Реализация алгоритма
7.1
Описание использованных средств
Для реализации алгоритма был использован пакет математического моделирования Matlab cовместно с графической средой имитационного моделирования Simulink. Для графического отображения результатов моделирования использовался пакет 3D Animation, поставляемый вместе с Simulink.
MATLAB - это мультипарадигмальная среда для проведение численных
вычислений, которая изначально была ориентирована на работу с матрицами. В настоящее время кроме базовых функций, таких как различные
преобразования матриц, построение графиков и взаимодействия с другими
языками ( C, C++, Java, Fortran, Python), предоставляет большое специализированных пакетов (Toolbox) для таких решение различных задач из
19
областей финансового анализа, баз данных, нечеткой логики, нейронных
сетей и других.
Важным элементом пакета MATLAB без сомнения является специализированный пакет программных средств Simulink, так как данный инструмент позволяет достаточно просто моделировать динамические объекты и
процессы. Одним из плюсов данного инструмента является наглядность механизма функционирования модели - система представляется в виде некой
блок-схемы, которая составлена из различных функциональных блоков.
3D Animation toolbox - это библиотека для создания 3D миров и анимаций внутри них. Объекты в ней представляются с помощью языка-стандарта
3D моделирования - Virtual Reality Modeling Language (VRML). Важным
фактом является то, что средства Simulink представляют инструменты
для непосредственной связи анимации и имитационной модели. Поэтому
для визуализации какого-нибудь процесса достаточно создать виртуальный мир с интересующими нас объектами в специальном редакторе миров
3D World Editor и после этого добавить специальные блоки к исходной модели реализованной на Simulink для изменения необходимых параметров
объектов, таких как расположение, ориентация, масштабирование и другие.
7.2
Результаты моделирования
В результате практической реализации алгоритма была получена программа, которая моделирует удержание БПЛА на расчетной траектории.
На рис. 3 приведен графический облик этой программы написанный в среде
Simulink. Несложно заметить, что данная программа в общем представляет
собой практическую реализацию согласно описанию на рис. 2.
Для проверки получившейся программы проведем несколько вычислительных экспериментов. Для начала промоделируем такой маневр БПЛА
как разворот. Необходимые для данного маневра исходные данные представлены в таблице 1.
Приведем дальше результаты моделирования полёта летательного ап20
Рис. 3: Представление программы.
Таблица 1: Данные для выполнения маневра разворота.
V, м/с 𝜃, град 𝜓 , град H, м L, м Z,м 𝑛𝑥 𝑛𝑦 𝛾 , град
𝑡0 = 0 сек
50
0
0
1000
0
0
0 1
0
𝑡* = 55 сек
50
0
180
1200 700 -550 0 1
0
парата. Графики изменения положения в пространстве от времени полёта показаны на рис. 4. На рис. 5 показан график изменения углов, а на
рис. 6 график изменения скорости полёта. Из графиков видно, что были
соблюдены начальные и конечные условия задачи. График расхождения
полученной траектории и расчетной приведен на рис. 7. По этим данным
можно понять, что ошибка управления по каждой координате достаточно
мала и сходиться к нулю при 𝑡 → +∞. Графики управлений движением
БПЛА приведены на рис. 8. На рис. 9 приведена траектория по которой
пролетел БПЛА во время моделирования с использованием анимации полёта. Красная траектория соответствует реальной траектории полёта, синяя
- программной.
Необходимо отметить, что данные результаты были получены при коэффициентах стабилизации 𝑘1 = 𝑘2 = 0.01. Рассмотрим результаты моделирования при других коэффициентах. График на рис. 10 получен при использовании коэффициентов стабилизации 0.001, 0.001. Можно заметить,
21
Рис. 4: График изменения координат во времени.
Рис. 5: График изменения углов во времени.
Рис. 6: График изменения скорости во времени.
что ошибка управления увеличилась. На рис. 11 изображен график разницы программной и реализованной траектории при коэффициентах −0.1, −0.1.
22
Рис. 7: График изменения ошибки траектории полёта во времени.
Рис. 8: График изменения управлений во времени.
Рис. 9: Траектория полёта согласно данным анимации
Как видно из графика полученное решение расходиться. Что подтверждает
теоретические рассуждения о необходимой положительности коэффициен23
тов стабилизации.
Рис. 10: График изменения ошибки траектории полёта во времени.
Рис. 11: График изменения ошибки траектории полёта во времени.
Второй промоделированный маневр БПЛА будет набор высоты. Необходимые для данного маневра исходные данные представлены в таблице 2.
Таблица 2: Данные для выполнения маневра
V, м/с 𝜃, град 𝜓 , град H, м L, м
𝑡0 = 0 сек
30
15
0
1000
0
𝑡* = 40 сек
50
0
0
1500 1500
набора высоты.
Z,м 𝑛𝑥 𝑛𝑦 𝛾 , град
0
0 1
0
100 0 1
0
После моделирования полёта БПЛА по таким данным получены следующие результаты. На рис. 12 изображен график изменения координат
24
объекта от времени. На рис. 13 приведен график ошибки управления по
каждой координате в каждый момент времени. На рис. 14, 15 показаны
графики изменения углов и скорости во времени соответственно. Графики
управлений движением БПЛА приведены на рис. 16. На рис. 17 изображена
траектория - результат анимации полёта модели.
Рис. 12: График изменения координат во времени.
Рис. 13: График изменения ошибки траектории полёта во времени.
25
Рис. 14: График изменения углов во времени.
Рис. 15: График изменения скорости во времени.
Рис. 16: График изменения управлений во времени.
26
Рис. 17: Траектория полёта согласно данным анимации
8
Выводы
1. Показана актуальность создания автономных БПЛА, как более совершенных устройств;
2. Приведено теоретическое описание задач поиска управлений. Указаны причины использования поиска управлений на основе концепции
обратных задач динамики;
3. Рассмотрена математическая модель движения БПЛА, как система
нелинейных дифференциальных уравнений первого порядка;
4. Описан алгоритм построения расчетной траектории на основе полиномов пятой степени, удовлетворяющих граничным условиям;
5. Описан метод нахождения управлений, которые обеспечивают асимптотическую устойчивость движения БПЛА по заданной траектории;
6. В рамках созданного программного комплекса синтезирован и реализован алгоритм удержания БПЛА на расчетной траектории. Программный комплекс позволяет моделировать динамическую модель
движения БПЛА и получить графики фазовых координат и необходимых управлений.
27
9
Заключение
В данной работе основное внимание было уделено созданию и реализа-
ции алгоритма удержания БПЛА на траектории близкой к расчетной. Дано краткое описание существующего устройства управления БПЛА и его
недостатков, определена необходимость создания автоматически управляемых БПЛА. Реализацию управлений предполагается осуществлять исходя
из принципов обратной задачи динамики и управления с обратными связями. Описана математическая модель, основанная на данных принципах,
и реализована предложенная компьютерная модель с использованием технологий MATLAB/Simulink.
Дальнейшее изучение данной темы предполагается вести в следующих
направлениях:
∙ Изучение возможности реализации более сложных траекторий. В настоящей версии программы накладываются достаточно серьезные ограничения на траекторию, так как любая траектория задается полиномом 5-ой степени;
∙ Учет времени при выборе маневра БПЛА;
∙ Создание версии программы с ограничениями, накладываемыми на
движение БПЛА в соответствии с реально существующими беспилотниками.
28
10
Список литературы
1. Канатников А.Н., Шмагина Е.А. Задача терминального управления
движением летательного аппарата // Нелинейная динамика и управление, 2010. Вып.7 C. 79-94
2. Крутько П.Д. Обратные задачи динамики управляемых систем. Нелинейные модели. М.: Наука, 1988. C. 9-18
3. Крутько П.Д. Обратные задачи динамики в теории автоматического
управления. М.: Машиностроение, 2004. C. 406
4. Канатников А.Н., Крищенко А.П., С.Б. Ткачев Допустимые пространственные траектории беспилотного летательного аппарата в вертикальной плоскости // Наука и образование, 2012
5. Андрющенко Т.А. Разработка системы управления беспилотным летательным аппаратом в режиме «зависание» // НГУ, 2013
6. Официальный сайт разработчика MATLAB http://www.mathworks.com
7. Маркеев А.П. Теоретическая механика. М.: Наука, 1990. C. 380
29
A
Приложение
Приведем данные анимации полёта. Для маневра разворота на рис. 18
- 24. Для маневра набора высоты на рис. 25 - 30.
Рис. 18: Анимация полёта. Маневр разворота. Часть 1.
Рис. 19: Анимация полёта. Маневр разворота. Часть 2.
30
Рис. 20: Анимация полёта. Маневр разворота. Часть 3.
Рис. 21: Анимация полёта. Маневр разворота. Часть 4.
Рис. 22: Анимация полёта. Маневр разворота. Часть 5.
31
Рис. 23: Анимация полёта. Маневр разворота. Часть 6.
Рис. 24: Анимация полёта. Маневр разворота. Часть 7.
Рис. 25: Анимация полёта. Маневр набора высоты. Часть 1.
32
Рис. 26: Анимация полёта. Маневр набора высоты. Часть 2.
Рис. 27: Анимация полёта. Маневр набора высоты. Часть 3.
Рис. 28: Анимация полёта. Маневр набора высоты. Часть 4.
33
Рис. 29: Анимация полёта. Маневр набора высоты. Часть 5.
Рис. 30: Анимация полёта. Маневр набора высоты. Часть 6.
34
Отзывы:
Авторизуйтесь, чтобы оставить отзыв