Разработка математической модели парашютной посадки беспилотного летательного аппарата#
1. Введение#
В данном руководстве представлен обзор поэтапной разработки и верификации модели парашютной посадки беспилотного летательного аппарата (БЛА) самолётной схемы в REPEAT VISION при помощи блока ОДУ, рис. 1:
Рис. 1 Блок ОДУ в REPEAT VISION#
Математическая модель парашютной посадки БЛА основана на работах-монографиях о динамике полёта и управлении БЛА Моисеева В.С. [1],[2] (стр. 176 – 189 в [1]). Верификация модели будет проведена относительно результатов моделирования [1], стр.187.
Большая часть теоретического материала будет изложена в сокращённом виде, за более подробным описанием математической модели обратитесь к источнику [1],[2].
2. Описание процесса парашютной посадки БЛА#
Моделирование процесса парашютной посадки БЛА позволяет определить точку его приземления, что сократит время его поиска для повторного применения.
В типовую моделируемую системы парашютной посадки (СПП) БЛА входят следующие элементы:
Процесс парашютной посадки БЛА разбивается на следующие основные этапы:
Моделирование парашютной посадки БЛА выполняется при следующих допущениях:
Не учитываются массы заряда и контейнера;
Применяемые в СПП парашюты являются безынерционными объектами;
Все действующие в процессе посадки БЛА силы приведены к его центру масс (ЦМ);
Движение БЛА в процессе посадки рассматривается как движение его ЦМ в вертикальной плоскости;
Сила лобового сопротивления БЛА нулевая.
3. Математическая модель процесса парашютной посадки БЛА#
Общие уравнения движения ЦМ БЛА в процессе посадки имеют вид (1) :
где:
\(X\) - сила лобового сопротивления БЛА;
\(X_{п} = \Phi_{вп} \cdot \frac{\rho \cdot V_{1}^2}{2\cdot m}\) - сила лобового сопротивления парашюта;
\(G\) - сила тяжести БЛА: \(G=m \cdot g\)
\(V\) - скорость посадки БЛА;
\(m\) - масса БЛА;
\(\theta\) - угол посадки БЛА;
\(x\) - координата БЛА по Х координате;
\(y\) - координата БЛА по Y координате.
Так как отсутствуют данные по коэффициенту лобового сопротивления БЛА, \(X\) = 0.
Начальные условия для этой системы дифференциальных уравнений записываются следующим образом (2) :
Достаточно подробный анализ модели приведен в монографии [2].
При моделировании посадки БЛА рассматриваются следующие основные этапы:
Вследствие этого общую систему сведем к трем системам дифференциальных уравнений с взаимосвязанными начальными условиями, каждая из которых описывает соответствующий этап посадки БЛА.
Модель процесса посадки БЛА на этапе 1 имеет вид (3) :
где \(\Phi_{вп}\) – эффективное сопротивление ВП.
Эффективное сопротивление ВП \(\Phi_{вп}\) имеет формулу (4) :
где:
\(c_{п}\) – коэффициент сопротивления вытяжного парашюта;
\(F_{п}\) – площадь купола вытяжного парашюта.
Начальные условия дифференциальных уравнений первого этапа (5) :
В работах [1], [2] в формуле угловой скорости \(\dot{\theta}\) в правой части уравнения выражение \(G ⋅ cos{\theta}\) без знака минуса, однако при начальном условии \(\theta\) = -180\(^о\) в правой части уравнения будет возникать отрицательная производная, а не положительная, что ведет к убыванию угла, поэтому был добавлен отрицательный множитель.
Для определения момента времени \(t_{1}\) окончания этапа 1 опишем процесс вытягивания ОП общей массой \(m_{ОП}\) и длиной \(l_{ОП}\) с помощью силы \(X_{ВП}(t)\) дифференциальным уравнением второго порядка (6) :
Начальные условия для этого уравнения имеют вид (7) :
В уравнении использованы следующие обозначения:
\(L = L(t)\) – длина вытянутой в момент времени \(t\) части ОП;
\(m_{ОП}= m_{ОП}(L)\) – масса вытянутой в этот момент времени части ОП длиной \(L\).
Массу ОП, вытянутого на длину \(L\), можно приближенно вычислить по формуле (8) :
где:
\(\mu\) – средняя плотность материала ОП;
\(d\) – средний диаметр ОП.
Используя выражение (9) :
и формулу массы ОП ДУ второго порядка (5) можно представить виде системы двух уравнений первого порядка (10) :
с начальными условиями (11) :
Тогда момент времени \(t_{1}\) будет определяться из условия (12) :
т.е. когда вытяжной парашют вытягивается на длину основного парашюта, раскрывая его.
Этап 2 посадки БЛА начинается при раскрытии основного парашюта и описывается следующей системой дифференциальных уравнений (13) :
с начальными условиями (14) :
\(\Phi_{оп}(t,V)\) вычисляется по формуле (15) :
где:
\(\Phi_{max} = c_{оп} \cdot F_{оп}\) - максимальное значение эффективной площади основного парашюта;
\(D_{оп}\) - номинальный диаметр парашюта;
\(k, n\) - эмпирические коэффициенты.
Этап 3 предлагается описывать моделью вида (16) :
с начальными условиями (17) :
Начинается третий этап при \(\Phi_{оп}(t,V)=\Phi_{max}\), т.е. когда множитель \(u=\frac{t \cdot V}{n \cdot D_{оп}}=1\).
4. Исходные данные#
Пусть БЛА, взлетевший с МПУ после выполнения полетного задания, осуществляет парашютную посадку в стартовой СК, представленной на рис. 2:
Рис. 2 Схема парашютной посадки после полетного задания#
Считается, что посадка БЛА происходит при нормальных атмосферных условиях (\(р_{0}\) = 760 мм.рт.ст., \(\tau_{0}\) = +15\(^о\)C) и отсутствии ветра.
Исходные данные:
Беспилотный летательный аппарат:
Наименование характеристики |
Значение |
|---|---|
Посадочная масса m |
300 [кг] |
Вытяжной парашют (ВП):
Наименование характеристики |
Значение |
|---|---|
Площадь купола F_{вп} |
1.02 [м] |
Коэффициент сопротивления c_{вп} |
0.86 |
Основной парашют (ОП):
Наименование характеристики |
Значение |
|---|---|
Номинальный диаметр D_{оп} |
14 [м] |
Площадь купола F_{оп} |
312.4 [м] |
Коэффициент сопротивления c_{оп} |
0.81 |
Эмпирический коэффициент k |
1.6 |
Эмпирический коэффициент n |
2 |
Укладка ОП:
Наименование характеристики |
Значение |
|---|---|
Длина вытянутого ОП L_{оп} |
31 [м] |
Средний диаметр укладки d_{оп} |
0.25 [м] |
Удельный вес укладки из парашютного шелка μ |
1.36 |
Остальные параметры посадки:
Наименование характеристики |
Значение |
|---|---|
Плотность воздуха ρ |
1.225 кг/м\(^3\) |
Ускорение свободного падения g |
9.81 м/с\(^2\) |
Начальные условия ОДУ (1 этап) (18) :
5. Разработка модели процесса посадки БЛА в REPEAT VISION#
В данном разделе представлен обзор поэтапной разработки рассматриваемой математической модели при помощи блока ОДУ.
Подсказка
Также готовая модель представлена в демо проекте «[DEMO] Парашютная посадка беспилотного летательного аппарата» в разделе Демо проекты.
Блок ОДУ [3] предназначен для численного решения систем обыкновенных дифференциальных уравнений (ОДУ), выраженных в форме Коши (относительно старшей производной): \(y'' = f(t,y,y')\). При помощи этого блока можно описать комплексную динамическую систему.
Весь процесс настройки блока ОДУ состоит из 5 ключевых шагов:
Поэтапно опишем процесс работы с блоком:
Рис. 3 Код шаблонного блока ОДУ#
В шаблонном блоке ОДУ представлена модель отскока мяча от двух стенок, для написания нашей модели очистим полностью от кода разделы Инициализация, Основной блок, Дополнительные блоки, рис. 4:
Рис. 4 Редактор кода блока ОДУ после очистки#
далее удалим переменные, находящиеся в правой панели (необходимо навести на параметр и нажать значок урны), рис. 5:
Рис. 5 Удаление параметров шаблона блока ОДУ#
удалим в блоке ОДУ в разделе (1) существующие события, раскрыв вкладку существующего события и нажав на кнопку Удалить (2), рис. 6:
Рис. 6 Удаление событий шаблона блока ОДУ#
Блок ОДУ теперь готов к описанию математической модели динамической системы парашютной посадки БЛА.
Перед написанием системы ОДУ необходимо в блоке добавить:
параметры входных и выходных портов;
параметры, участвующие в процессе расчёта ОДУ;
параметры интегрирования.
Параметры входного порта:
timer– для снятия значения времени моделирования, участвует в формуле \(\Phi_{оп}(t,V)\).
Параметры выходных портов (см. рис. 7 ниже):
velocity_sensor– для снятия значения параметра скорости посадки БЛА;theta_sensor– для снятия значения параметра угла БЛА, [рад];x_sensor– для снятия значения координаты x, [м];y_sensor– для снятия значения координаты y, [м];L_OP_sensor– для снятия значения длины вытянутой части ОП, [м].
Рис. 7 Требуемые параметры портов блока ОДУ#
Параметры (см. рис. 8 ниже):
m (double) – масса БЛА;
c_VP (double) – коэффициент сопротивления вытяжного парашюта;
f_VP (double) – площадь купола вытяжного парашюта;
ro (double) – плотность воздуха;
mu (double) – удельный вес укладки из парашютного шелка;
k (double) – эмпирический коэффициент при вычислении \(\Phi_{оп}(t,V)\);
n (double) – эмпирический коэффициент при вычислении \(\Phi_{оп}(t,V)\);
g (double) – ускорение свободного падения;
phi_VP (double) – эффективное сопротивление ВП;
phi_OP (double) – эффективное сопротивление ОП;
u (double) – множитель при расчете \(\Phi_{оп}\);
gndHit (int) – переменная-сигнал при приземлении БЛА;
c_OP (double) – коэффициент сопротивления основного парашюта;
f_OP (double) – площадь купола основного парашюта;
D_OP (double) – номинальный диаметр ОП;
d_OP (double) – средний диаметр укладки ОП.
Рис. 8 Требуемые параметры блока ОДУ#
Параметры интегрирования:
velocity – основной параметр для интегрирования производной ускорения посадки БЛА \(\dot{V}\), необходимый для вычисления скорости \(V\);
theta – параметр для интегрирования производной угла \(\dot{\theta}\);
x – параметр для интегрирования производной координаты \(\dot{x}\);
y – параметр для интегрирования производной координаты \(\dot{y}\);
l_OP – параметр для интегрирования производной ускорения раскрытия основного парашюта;
L_OP – параметр для интегрирования производной скорости раскрытия основного парашюта для определения ее длины \(L_{оп}\).
Интегрируемые параметры - состояние разработанной системы. Блок ОДУ будет интегрировать их производные, чтобы получить численное решение системы ОДУ, рис. 9:
Рис. 9 Параметры интегрирования блока ОДУ#
После добавления параметров, в редакторе кода переходим в блок
Инициализация, где созданным постоянным параметрам присваиваем значения и формируем начальные условия системы ОДУ, т.е. задаем начальные значения интегрируемых параметров.
1m = 300
2c_VP = 0.86
3f_VP = 1.02
4phi_VP = c_VP*f_VP
5d_OP = 0.25
6D_OP = 14
7f_OP = 312.4
8c_OP = 0.81
9mu = 1.36
10k = 1.6
11n = 2
12g = 9.81
13ro = 1.225
14gndHit = 0
15velocity = 50
16theta = -Math.PI
17x = 1000
18y = 800
19L_OP = 0.2
20l_OP = 0
Строки 1-14. Присваиваются значения параметрам блока ОДУ.
Строки 15-20. Инициализация интегрируемых параметров: начальная скорость посадки БЛА (15), начальный угол при посадке БЛА (16), начальная координата по X (17), начальная координата по Y (18), начальная длина ОП (19)
Переходим к основной части разработки математической модели посадки БЛА: необходимо описать систему ОДУ, реализуя функции \(f(t,y)\), в основном блоке. Начнём с первого этапа посадки БЛА, когда дифференциальные уравнения описывают процесс работы вытяжного парашюта:
velocity' = -g*Math.sin(theta) -phi_VP*velocity*velocity*ro/2/m;
theta' = -g*Math.cos(theta)/velocity;
x'=velocity*Math.cos(theta);
y'=velocity*Math.sin(theta);
l_OP'=2*phi_VP*velocity*velocity*ro/(Math.PI*mu*d_OP*d_OP*L_OP);
L_OP'= l_OP;
Второй этап возникает при полном раскрытии основного парашюта (\(L_{оп} \geq31\)), когда силу сопротивления падению создает ОП:
velocity' = -g*Math.sin(theta) - phi_OP*velocity*velocity*ro/2/m ;
theta' = -g*Math.cos(theta)/velocity;
x'=velocity*Math.cos(theta);
y'=velocity*Math.sin(theta);
l_OP'= 0;
L_OP'= 0;
Блок ОДУ поддерживает работу условных операторов if-else, воспользуемся данной функцией для написания динамической системы. Дифференциальные уравнения угла и координат не изменяются, их можно вынести в общую область кода. Код в основном блоке будет выглядеть как:
1if(L_OP_sensor<31){
2velocity' = -g*Math.sin(theta) -phi_VP*velocity*velocity*ro/2/m ;
3l_OP'=2*phi_VP*velocity*velocity*ro/(Math.PI*mu*d_OP*d_OP*L_OP);
4L_OP'= l_OP;
5} else {
6velocity' = -g*Math.sin(theta) - phi_OP*velocity*velocity*ro/2/m ;
7l_OP'= 0;
8L_OP'= 0;
9}
10theta' = -g*Math.cos(theta)/velocity;
11x'=velocity*Math.cos(theta);
12y'=velocity*Math.sin(theta);
Строки 1-5. Блок кода, с уравнениями первого этапа посадки, когда работает вытяжной парашют. Данный блок выполняется, пока не раскроется основной парашют на всю длину (L_OP_sensor<31);
Строки 5-9. Блок кода, с уравнениями второго этапа посадки при раскрытии основного парашюта. Расчет модели в этом блоке происходит, когда основной парашют вытянут на всю длину (L_{оп} = 31);
Строка 10. Уравнение скорости изменения угла посадки;
Строка 11. Уравнение скорости изменения координаты X;
Строка 12. Уравнение скорости изменения координаты Y.
Однако код расчета \(\Phi_{оп}\) еще не был продемонстрирован, в том числе и передача значений проинтегрированных параметров в выходные порты: всё это происходит во вкладке Дополнительно в подразделе После интегрирования. Здесь также происходит расчет 3 этапа, когда эффективная площадь сопротивления основного парашюта \(\Phi_{оп}\) достигает максимального значения \(\Phi_{макс.}= c_{оп} \cdot F_{оп}\) при \(u=1\).
1velocity_sensor = velocity;
2theta_sensor = theta;
3x_sensor = x;
4y_sensor = y;
5L_OP_sensor = L_OP;
6if(L_OP>31){
7L_OP = 31;
8L_OP_sensor = L_OP;
9}
10u = (timer*velocity)/(n*D_OP);
11if(u>1){
12u = 1;
13}
14phi_OP = (c_OP*f_OP) * Math.pow(u, k);
Строки 1-5. Вывод значений интегрируемых параметров в выходные порты;
Строки 6-9. Блок кода для ограничения длины ОП;
Строка 10. Расчет вспомогательной функции \(u(t,V)\) для расчета силы сопротивления основного парашюта;
Строки 11-13. Код блока для ограничения \(u(t,V)\);
Строка 14. Расчет силы сопротивления основного парашюта.
Параметры интегрирования можно оставить шаблонные, т.е.:
Максимальное кол-во обращений к функции – 10000;
Тип интегратора – DormandPrince853;
Минимальный шаг интегратора – 1e-34;
Максимальный шаг интегратора – 1;
Абсолютная точность – 1e-6;
Относительная точность – 1e-6.
Код в редакторе блока ОДУ:
1m=300;
2c_VP = 0.86;
3f_VP = 1.02;
4phi_VP =c_VP*f_VP;
5d_OP = 0.25;
6D_OP = 14;
7f_OP = 312.4;
8c_OP = 0.81;
9mu = 1.36;
10k = 1.6;
11n = 2;
12g = 9.81;
13ro = 1.225;
14gndHit = 0;
15L_OP = 0.2;
16l_OP = 0;
17velocity = 50;
18theta = -Math.PI;
19x = 1000;
20y = 800;
1if(L_OP_sensor<31){
2velocity' = -g*Math.sin(theta) -phi_VP*velocity*velocity*ro/2/m ;
3l_OP'=2*phi_VP*velocity*velocity*ro/(Math.PI*mu*d_OP*d_OP*L_OP);
4L_OP'= l_OP;
5} else {
6velocity' = -g*Math.sin(theta) - phi_OP*velocity*velocity*ro/2/m ;
7l_OP'= 0;
8L_OP'= 0;
9}
10theta' = -g*Math.cos(theta)/velocity;
11x'=velocity*Math.cos(theta);
12y'=velocity*Math.sin(theta);
- (Пустое поле)
1velocity_sensor = velocity;
2theta_sensor = theta;
3x_sensor = x;
4y_sensor = y;
5L_OP_sensor = L_OP;
6if(L_OP_sensor>31){
7L_OP = 31;
8L_OP_sensor = L_OP;
9}
10u = (timer*velocity)/(n*D_OP);
11if(u>1) {
12u = 1;
13}
14phi_OP = (c_OP*f_OP)*Math.pow(u, k);
Осталось модифицировать сам проект, добавив блоки:
Время моделирования (в разделе Симуляция), который подключается ко входному порту блока ОДУ и передает значения времени расчета модели;
Единицы измерения угла (в библиотеке Автоматика, подраздел Функции) для перевода значения угла посадки БЛА из радиан в градусы, рис. 10:
Рис. 10 Проект с математической моделью посадки БЛА#
Время моделирования проекта выберем равным 200 [с], шаг интегрирования и дискретизации 1 [мс], рис. 11:
Рис. 11 Параметры расчета проекта#
Модель готова к расчету. После получения результатов моделирования можно приступить к верификации расчетов.
6. Результаты моделирования, верификация расчетов#
Таблица 1 – Сравнительный анализ параметров при спуске БЛА
t, с |
Скорость V, м/с |
Скорость V, м/с |
Скорость V, м/с |
Угол \(\theta\), град |
Угол \(\theta\), град |
Угол \(\theta\), град |
Координата y, м |
Координата y, м |
Координата y, м |
|---|---|---|---|---|---|---|---|---|---|
0.005 |
49.976 |
49.978 |
0.002 |
-179.94 |
-179.944 |
0.00379 |
800 |
800 |
0 |
0.011 |
49.953 |
49.951 |
0.002 |
-179.881 |
-179.876 |
0.00472 |
799.999 |
799.999 |
0 |
0.016 |
49.929 |
49.929 |
0.000 |
-179.821 |
-179.820 |
0.001 |
799.999 |
799.999 |
0 |
0.021 |
49.906 |
49.907 |
0.001 |
-179.761 |
-179.764 |
0.0027 |
799.998 |
799.998 |
0 |
0.027 |
49.882 |
49.880 |
0.002 |
-179.702 |
-179.696 |
0.00588 |
799.997 |
799.996 |
0.001 |
0.064 |
49.72 |
49.719 |
0.001 |
-179.283 |
-179.279 |
0.00448 |
799.98 |
799.98 |
0 |
0.069 |
49.698 |
49.698 |
0.000 |
-179.223 |
-179.222 |
0.001 |
799.977 |
799.977 |
0 |
0.074 |
49.675 |
49.676 |
0.001 |
-179.163 |
-179.165 |
0.00244 |
799.973 |
799.973 |
0 |
0.08 |
49.652 |
49.651 |
0.002 |
-179.103 |
-179.098 |
0.00547 |
799.969 |
799.969 |
0 |
0.496 |
19.691 |
19.693 |
0.002 |
-171.352 |
-171.350 |
0.00187 |
799.131 |
799.13 |
0.001 |
t, с |
Скорость V, м/с |
Скорость V, м/с |
Скорость V, м/с |
Угол \(\theta\), град |
Угол \(\theta\), град |
Угол \(\theta\), град |
Координата y, м |
Координата y, м |
Координата y, м |
|---|---|---|---|---|---|---|---|---|---|
1.329 |
8.904 |
8.904 |
0.000 |
-136.43 |
-136.404 |
0.02587 |
795.256 |
795.252 |
0.0041 |
2.161 |
7.25 |
7.252 |
0.002 |
-107.391 |
-107.390 |
0.00086 |
789.634 |
789.632 |
0.0017 |
2.994 |
6.276 |
6.276 |
0.000 |
-95.2 |
-95.196 |
0.00405 |
784.127 |
784.123 |
0.00414 |
3.826 |
5.59 |
5.591 |
0.001 |
-91.306 |
-91.306 |
0.000275 |
779.212 |
779.210 |
0.0019 |
4.659 |
5.097 |
5.098 |
0.001 |
-90.282 |
-90.282 |
0.00028 |
774.773 |
774.769 |
0.00426 |
5.492 |
4.724 |
4.724 |
0.000 |
-90.053 |
-90.053 |
0.00018 |
770.691 |
770.684 |
0.0068 |
6.324 |
4.427 |
4.428 |
0.001 |
-90.009 |
-90.009 |
9E-05 |
766.885 |
766.881 |
0.0038 |
t, с |
Скорость V, м/с |
Скорость V, м/с |
Скорость V, м/с |
Угол \(\theta\), град |
Угол \(\theta\), град |
Угол \(\theta\), град |
Координата y, м |
Координата y, м |
Координата y, м |
|---|---|---|---|---|---|---|---|---|---|
18.059 |
4.358 |
4.358 |
0.000 |
-90 |
-90 |
0 |
715.747 |
715.730 |
0.0174 |
41.528 |
4.357 |
4.358 |
0.001 |
-90 |
-90 |
0 |
613.497 |
613.462 |
0.03515 |
64.997 |
4.357 |
4.358 |
0.001 |
-90 |
-90 |
0 |
511.248 |
511.194 |
0.05388 |
88.467 |
4.357 |
4.358 |
0.001 |
-90 |
-90 |
0 |
408.998 |
408.922 |
0.07597 |
111.936 |
4.357 |
4.358 |
0.001 |
-90 |
-90 |
0 |
306.749 |
306.654 |
0.0947 |
135.405 |
4.357 |
4.358 |
0.001 |
-90 |
-90 |
0 |
204.499 |
204.387 |
0.11245 |
158.874 |
4.357 |
4.358 |
0.001 |
-90 |
-90 |
0 |
102.25 |
102.119 |
0.13119 |
170.609 |
4.357 |
4.358 |
0.001 |
-90 |
-90 |
0 |
51.125 |
50.983 |
0.142235 |
Таблица 2 – Сравнительный анализ конечных параметров при приземлении БЛА
Параметр |
Эталонное решение |
REPEAT VISION |
Относит. погрешность, % |
|---|---|---|---|
Время приземления \(t_{пр}\),с |
182.34 |
182.309 |
0.017 |
Скорость приземления \(V_{пр}\), м/с |
4.357 |
4.358 |
0.02 |
Угол \(\theta_{пр}\), \(^о\) |
-90 |
-90 |
0 |
Координата \(x_{пр}\), м |
968.5 |
968.48 |
0.002 |
Результаты моделирования в REPEAT VISION показали высокую точность расчета математической модели посадки БЛА при помощи блока ОДУ, максимальная абсолютная погрешность составила 0.14 [м] (0.28 % в отн. погр.) при расчете высоты БЛА Y.
7. Модификация модели посадки – столкновение БЛА с землей#
Для демонстрации способности блока ОДУ решать жесткие задачи и добавления визуальной реалистичности, модель может быть дополнена четвертым этапом - упругим столкновением БЛА с земной поверхностью. Данная модификация реализует классическую задачу отскока мяча с энергетическими потерями.
Столкновение моделируется как пружинно-демпферная система:
Жесткость пружины (stiffness = 1e4 [Н/м]) - определяет упругость отскока;
Демпфирование (damping = 50 [Н·с/м]) - обеспечивает постепенную потерю энергии.
Уравнение движения при контакте с землей (19) :
где:
\(k\) - коэффициент жесткости;
\(c\) - коэффициент демпфирования;
\(y\) - глубина проникновения в землю (координата y).
Важно
Так как момент столкновения (координата \(y<0\)) – это резкое, прерывистое событие, продолжение расчета с прежними производными может привести к нестабильному расчету решателя ОДУ, поэтому необходимо добавить событие (см. рис. 12 ниже), которое при изменении знака координаты \(y\) производило сброс производных. Для этого во вкладке События добавим простое событие (1), раскроем созданную вкладку события и напишем условие с интегрируемым параметром y; (обязательно с ;!) (2) и в выпадающем списке 3 выберем действие Сбросить производное. Написав условие y;, мы даем инструкцию решателю ОДУ, что необходимо произвести сброс значения производных при смене знака высоты \(y\).
Рис. 12 Добавление нового простого события#
Помимо нового события, был модифицирован код для обработки столкновения, изменения коснулись разделов Основной блок и После интегрирования в Дополнительных блоках:
1if(L_OP_sensor<31) {
2velocity' = -g*Math.sin(theta) -phi_VP*velocity*velocity*ro/2/m ;
3l_OP'=2*phi_VP*velocity*velocity*ro/(Math.PI*mu*d_OP*d_OP*L_OP);
4L_OP'= l_OP;
5theta' = -g*Math.cos(theta)/velocity;
6} else {
7if(y>0) {
8velocity' = -g*Math.sin(theta) - phi_OP*velocity*velocity*ro/2/m ;
9theta' = -g*Math.cos(theta)/velocity;
10if(gndHit==1){
11velocity' = -g*Math.sin(theta);
12}
13} else {
14double stiffness =1e4;
15double damping = 50;
16velocity' = g + stiffness*y - damping*velocity;
17theta' = 0;
18}
19l_OP'= 0;
20L_OP'= 0;
21}
22x'=velocity*Math.cos(theta);
23y'=velocity*Math.sin(theta);
Строки 1-6. Блок кода, с уравнениями первого этапа посадки, когда работает вытяжной парашют. Данный блок выполняется, пока не раскроется основной парашют на всю длину (L_OP_sensor<31);
Строки 7-13. Блок кода, с уравнениями второго этапа посадки при раскрытии основного парашюта. Расчет модели в этом блоке происходит, когда основной парашют вытянут на всю длину (L_{оп} = 31). В подблоке 10-13 написано уравнение скорости после столкновения с землей, когда сила сопротивления основного парашюта становится нулевой;
Строки 14-16. Блок кода с уравнениями четвертого этапа, расчет модели при столкновении с землей.
1velocity_sensor = velocity;
2theta_sensor = theta;
3x_sensor = x;
4y_sensor = y;
5L_OP_sensor = L_OP;
6if(L_OP_sensor>31) {
7L_OP = 31;
8L_OP_sensor = L_OP;
9}
10u = (timer*velocity)/(n*D_OP);
11if(u>1) {
12u = 1;
13}
14phi_OP = (c_OP*f_OP)*Math.pow(u, k);
15if(y_sensor<0){
16gndHit =1;
17}
Строки 15-17. В подразделе После интегрирования добавляются строки 15-17, в которых переменная gndHit сигнализирует о столкновении с землей и становится равной 1.
8. Результаты моделирования модифицированной модели посадки БЛА#
Графики высоты и скорости БЛА в до и после столкновения с землей имеют вид, рис. 13:
Рис. 13 Графики высоты и скорости посадки БЛА#
Результаты расчета модифицированной модели демонстрируют, что блок ОДУ может работать не только непрерывными процессами, но и с жёсткими системами, где параметры ДУ меняются скачкообразно.
9. Выводы#
В рамках данного руководства была успешно разработана, реализована и верифицирована математическая модель парашютной посадки беспилотного летательного аппарата самолётной схемы на платформе REPEAT VISION с использованием блока ОДУ.
Достигнутые результаты и верификация модели
Проведенное исследование демонстрирует высокую эффективность и точность применения блока ОДУ для решения сложных динамических задач. Результаты расчёта, полученные на платформе REPEAT VISION, с высокой точностью соответствуют данным, приведённым в монографиях (В.С. Моисеев [1] , [2]), служат убедительным доказательством корректности модели.
Функциональность и надежность блока ОДУ
В ходе работы была подтверждена способность блока ОДУ платформы REPEAT VISION устойчиво решать системы ОДУ с прерывистой динамикой.
Практическая значимость и область применения
Разработанная модель представляет собой готовый инструмент для проектных расчётов, позволяющий с высокой достоверностью определять траекторию и точку приземления БЛА.