Development of mathematical model for UAV parachute landing#
1. Introduction#
This guide provides an overview of the step-by-step development and verification of a parachute landing model for an unmanned aerial vehicle (UAV) aircraft configuration in REPEAT VISION using the ODE block, Fig. 1:
Fig. 1 ODE block in REPEAT VISION#
The mathematical model of the parachute landing of a UAV is based on the monographs on the flight dynamics and control of UAV by V.S. Moiseev [1],[2] (pp. 176–189 in [1]). The model will be verified against the simulation results [1], p. 187.
Most of the theoretical material will be presented in abbreviated form; for a more detailed description of the mathematical model, please refer to the source [1],[2].
2. Description of the UAV parachute landing process#
Simulation of the parachute landing process of a UAV allows us to determine its landing point, which will reduce the time it takes to find it for reuse.
A typical simulated parachute landing system (PLS) of a UAV includes the following elements:
The process of parachute landing of a UAV is divided into the following main stages:
The simulation of a parachute landing of a UAV is performed under the following assumptions:
The mass of the charge and container are not taken into account;
The parachutes used in PLS are inertialess objects;
All forces acting during the landing process of the UAV are reduced to its center of gravity (CG);
The movement of the UAV during landing is considered as the movement of its CG in the vertical plane;
The drag force of a UAV is zero.
3. Mathematical model of the UAV parachute landing process#
The general equations of motion of the CG UAV during landing have the form (1) :
where:
\(X\) - drag force of the UAV;
\(X_{п} = \Phi_{вп} \cdot \frac{ ho \cdot V_{1}^2}{2\cdot m}\) - parachute drag force;
\(G\) - UAV gravity: \(G=m \cdot g\)
\(V\) - landing speed of the UAV;
\(m\) - mass of the UAV;
\( heta\) - landing angle of the UAV;
\(x\) - UAV coordinate along the X coordinate;
\(y\) - UAV coordinate along the Y coordinate.
Since there is no data on the drag coefficient of the UAV, \(X\) = 0.
The initial conditions for this system of differential equations are written as follows (2) :
A fairly detailed analysis of the model is given in the monograph [2].
When modeling the landing of a UAV, the following main stages are considered:
As a result, we will reduce the general system to three systems of differential equations with interconnected initial conditions, each of which describes the corresponding stage of the UAV landing.
The model of the landing process of a UAV at stage 1 has the form (3) :
where \(\Phi_{vp}\) is the effective resistance of EP.
The effective drag EP \(\Phi_{vp}\) has the formula (4) :
where:
\(c_{п}\) – drag coefficient of the pilot parachute;
\(F_{п}\) is the area of the pilot parachute dome.
Initial conditions of the differential equations of the first stage (5) :
In the works [1], [2] in the formula for the angular velocity \(\dot{ heta}\) on the right side of the equation the expression \(G ⋅ cos{ heta}\) is without a minus sign, however, with the initial condition \( heta\) = -180\(^о\) on the right side of the equation a negative derivative will arise, not a positive one, which leads to a decrease in the angle, so a negative factor was added.
To determine the time \(t_{1}\) of the end of stage 1, we describe the process of pulling ОП with a total mass \(m_{OP}\) and a length \(l_{ОП}\) using the force \(X_{ВП}(t)\) by the second-order differential equation (6) :
The initial conditions for this equation are (7) :
The following notations are used in the equation:
\(L = L(t)\) – the length of the part of the MP extended at time \(t\);
\(m_{OP}= m_{OP}(L)\) – the mass of the part of the MP of length \(L\) extended at this moment in time.
The mass of the OP, extended by the length \(L\), can be approximately calculated using the formula (8) :
where:
\(\mu\) – average density of the material MP;
\(d\) is the average diameter of the MP.
Using the expression (9) :
and the formula for the mass MP DE of the second order (5) can be represented as a system of two first order equations (10) :
with initial conditions (11) :
Then the moment of time \(t_{1}\) will be determined from the condition (12) :
i.e. when the pilot parachute is extended to the length of the main parachute, opening it.
Stage 2 of the UAV landing begins with the opening of the main parachute and is described by the following system of differential equations (13) :
with initial conditions (14) :
\(\Phi_{оп}(t,V)\) is calculated using the formula (15) :
where:
\(\Phi_{max} = c_{оп} \cdot F_{оп}\) - maximum value of the effective area of the main parachute;
\(D_{оп}\) - nominal diameter of the parachute;
\(k, n\) - empirical coefficients.
Stage 3 is proposed to be described by a model of the type (16) :
with initial conditions (17) :
The third stage begins when \(\Phi_{оп}(t,V)=\Phi_{max}\), i.e. when the multiplier \(u=\frac{t \cdot V}{n \cdot D_{оп}}=1\).
4. Initial data#
Let the UAV, which took off from the ML after completing a flight mission, carry out a parachute landing in the starting CrS, shown in Fig. 2:
Fig. 2. Parachute landing diagram after a flight mission#
It is believed that the landing of the UAV occurs under normal atmospheric conditions (\(р_{0}\) = 760 mmHg, \( au_{0}\) = +15\(^о\)C) and no wind.
Initial data:
Unmanned aerial vehicle:
Characteristic name |
Meaning |
|---|---|
Landing weight m |
300 [kg] |
Exhaust parachute (EP):
Characteristic name |
Meaning |
|---|---|
Dome area F_{вп} |
1.02 [m] |
Drag coefficient c_{вп} |
0.86 |
Main parachute (MP):
Characteristic name |
Meaning |
|---|---|
Nominal diameter D_{оп} |
14 [m] |
Dome area F_{оп} |
312.4 [m] |
Drag coefficient c_{оп} |
0.81 |
Empirical coefficient k |
1.6 |
Empirical coefficient n |
2 |
Laying the MP:
Characteristic name |
Meaning |
|---|---|
Length of the elongated OP L_{оп} |
31 [m] |
Average laying diameter d_{оп} |
0.25 [m] |
Specific gravity of parachute silk packing μ |
1.36 |
Other landing parameters:
Characteristic name |
Meaning |
|---|---|
Air density ρ |
1.225 kg/m\(^3\) |
Acceleration due to gravity g |
9.81 m/s\(^2\) |
Initial conditions of the ODU (Stage 1) (18) :
5. Development of a model of the UAV landing process in REPEAT VISION#
This section provides an overview of the step-by-step development of the mathematical model under consideration using the ODE block.
Hint
The finished model is also presented in the demo project “[DEMO] UAV parachute landing” in the Demo projects section.
Block ODE[3] is designed for the numerical solution of systems of ordinary differential equations (ODE) expressed in Cauchy form (with respect to the highest derivative): \(y'' = f(t,y,y')\). Using this block, one can describe a complex dynamic system.
The entire process of setting up the ODE block consists of 5 key steps:
Let’s describe the process of working with the block step by step:
When creating and clicking on the ODE block, a script editor for writing the ODE system appears, Fig. 3:
Fig. 3 Code for the template block ODE#
The template block ODE presents a model of a ball bouncing off two walls. To write our model, we will completely clear the sections Initialization, Main block, Additional blocks of code, Fig. 4:
Fig. 4 The code editor for the ODE block after cleaning#
next, we will delete the variables located in the right panel (you need to hover over the parameter and click the trash can icon), Fig. 5:
Fig. 5 Removing parameters of the block template ODE#
delete in block ODE in the section (1) existing events, by opening the tab of an existing event and clicking on the Delete button (2), Fig. 6:
Fig. 6 Deleting events of the ODE block template#
The ODE block is now ready to describe the mathematical model of the dynamic parachute landing system of the UAV.
Before writing the ODE system, you need to add the following to the block:
input and output port parameters;
parameters involved in the calculation process of ODE;
integration parameters.
&emspInput port parameters:
timer– for removing the simulation time value, participates in the formula \(\Phi_{оп}(t,V)\).
Output port parameters (see Fig. 7 below):
velocity_sensor– to read the value of the landing speed parameter of the UAV;theta_sensor– to read the value of the angle parameter of the UAV, [rad];x_sensor– to read the x-coordinate value, [m];y_sensor– to read the y-coordinate value, [m];L_OP_sensor– for reading the length of the extended part of the MP, [m].
Fig. 7 Required parameters of the ports of the ODE block#
Parameters (see Fig. 8 below):
m (double) – mass of UAV;
c_VP (double) – drag coefficient of the pilot parachute;
f_VP (double) – area of the pilot parachute dome;
ro (double) – air density;
mu (double) – specific gravity of parachute silk packing;
k (double) – empirical coefficient when calculating \(\Phi_{оп}(t,V)\);
n (double) – empirical coefficient when calculating \(\Phi_{оп}(t,V)\);
g (double) – acceleration due to gravity;
phi_VP (double) – effective resistance EP;
phi_OP (double) – effective resistance MP;
u (double) – multiplier when calculating \(\Phi_{op}\);
gndHit (int) – variable signal upon landing of UAV;
c_OP (double) – drag coefficient of the main parachute;
f_OP (double) – area of the main parachute dome;
D_OP (double) – nominal diameter MP;
d_OP (double) – average diameter of the laying MP.
Fig. 8 Required parameters of the ODE block#
Integration parameters:
velocity is the main parameter for integrating the derivative of the landing acceleration of the UAV \(\dot{V}\), necessary for calculating the speed \(V\);
theta – parameter for integrating the derivative of the angle \(\dot{ heta}\);
x – parameter for integrating the derivative of the coordinate \(\dot{x}\);
y – parameter for integrating the derivative of the coordinate \(\dot{y}\);
l_OP – parameter for integrating the derivative of the main parachute opening acceleration;
L_OP – parameter for integrating the derivative of the main parachute opening speed to determine its length \(L_{op}\).
Integration parameters - the state of the developed system. The ODE block will integrate their derivatives to obtain a numerical solution of the ODE system, Fig. 9:
Fig. 9 Integration parameters of the ODE block#
After adding the parameters, in the code editor we go to the ‘Initialization’ block, where we assign values to the created constant parameters and form the initial conditions of the ODE system, i.e. we set the initial values of the integrated parameters.
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
Lines 1-14. Values are assigned to the parameters of the ODE block.
Lines 15-20. Initialization of the integrated parameters: initial landing speed of the UAV (15), initial landing angle of the UAV (16), initial X-coordinate (17), initial Y-coordinate (18), initial length of the MP (19)
Let’s move on to the main part of developing a mathematical model for a UAV landing: we need to describe the ODE system, implementing the \(f(t,y)\) functions in the main block. We’ll begin with the first stage of a UAV landing, when the differential equations describe the operation of the pilot chute:
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;
The second stage occurs when the main parachute (\(L_{оп} \geq31\)) is fully opened, when the force of resistance to falling is created by MP:
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;
The ODE block supports the operation of if-else conditional operators, let’s use this function to write a dynamic system. The differential equations for the angle and coordinates remain unchanged and can be moved to the common code area. The code in the main block will look like this:
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);
Lines 1-5. Block of code containing the equations for the first stage of landing, when the pilot chute is deployed. This block is executed until the main parachute fully deploys (L_OP_sensor<31);
Lines 5-9. The code block with the equations for the second landing stage when the main parachute is deployed. The model calculation in this block occurs when the main parachute is fully extended (L_{op} = 31);
Line 10. Equation for the rate of change of landing angle;
Line 11. Equation for the rate of change of the X coordinate;
Line 12. Equation for the rate of change of the Y coordinate.
However, the code for calculating \(\Phi_{op}\) has not yet been demonstrated, including the transfer of integrated parameter values to the output ports: all this happens in the Advanced tab in the After integration subsection.
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);
Lines 1-5. Outputting the values of the integrated parameters to the output ports;
Lines 6-9. Code block to limit the length of MP;
Line 10. Calculation of the auxiliary function \(u(t,V)\) for calculating the drag force of the main parachute;
Lines 11-13. Block code for constraint \(u(t,V)\);
Line 14. Calculation of the drag force of the main parachute.
Integration parameters can be left standard, i.e.:
Maximum evaluation count – 10000;
Integrator type – DormandPrince853;
Minimum integrator step – 1e-34;
Maximum integrator step – 1;
Absolute accuracy – 1e-6;
Relative accuracy – 1e-6.
Code in the ODE block editor:
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);
All that remains is to modify the project itself by adding blocks:
Simulation time (in section Simulation), which connects to the input port of the ODE block and passes the model calculation time values;
Angle units conversion (in section Automation, subsection Functions) to convert the landing angle of a UAV from radians to degrees, Fig. 10:
Fig. 10 Project with a mathematical model of UAV landing#
We will select the project simulation time equal to 200 [s], the integration and sampling step is 1 [ms], Fig. 11:
Fig. 11 Project calculation parameters#
The model is ready for calculation. Once the simulation results are obtained, calculation verification can begin.
6. Simulation results, calculation verification#
Table 1 – Comparative analysis of parameters during UAV descent
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 |
Table 2 – Comparative analysis of the final parameters during UAV landing
Parameter |
Reference solution |
REPEAT VISION |
Relative error, % |
|---|---|---|---|
Landing time \(t_{пр}\), s |
182.34 |
182.309 |
0.017 |
Landing speed \(V_{pr}\), m/s |
4.357 |
4.358 |
0.02 |
Angle \( heta_{пр}\), \(^o\) |
-90 |
-90 |
0 |
Coordinate \(x_{пр}\), m |
968.5 |
968.48 |
0.002 |
The results of modeling in REPEAT VISION showed high accuracy of calculation of the mathematical model of UAV landing using the ODE block, the maximum absolute error was 0.14 [m] (0.28% relative to the depth) when calculating the UAV Y altitude.
7. Landing model modification – UAV collision with the ground#
To demonstrate the ability of the ODE block to solve hard problems and add visual realism, the model can be supplemented with a fourth stage - an elastic collision of the UAV with the earth’s surface. This modification implements the classic problem of a ball bouncing with energy losses.
The collision is modeled as a spring-damper system:
Spring stiffness (stiffness = 1e4 [N/m]) - determines the rebound elasticity;
Damping (damping = 50 [N s/m]) - ensures gradual energy loss.
Equation of motion upon contact with the ground (19) :
where:
\(k\) - stiffness coefficient;
\(c\) - damping coefficient;
\(y\) - depth of penetration into the ground (y coordinate).
Important
Since the collision moment (coordinate \(y<0\)) is a sharp, discontinuous event, continuing the calculation with the same derivatives can lead to an unstable calculation of the ODE solver, so it is necessary to add an event (see Fig. 12 below), which, when the sign of the coordinate \(y\) changes, resets the derivatives. To do this, in the Events tab, add a simple event (1), open the created event tab and write a condition with the integrated parameter y; (required with ;!) (2) and in the drop-down list 3, select the Reset derivatives action. By writing the condition y;, we instruct the ODE solver to reset the value of the derivatives when the sign of the height \(y\) changes.
Fig. 12 Adding a new simple event#
In addition to the new event, the code for handling collisions was modified; changes were made to the Main block and After integration sections in Additional blocks:
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);
Lines 1-6. Block of code containing the equations for the first stage of landing, when the pilot chute is deployed. This block is executed until the main parachute fully deploys (L_OP_sensor<31);
Lines 7-13. Block of code containing the equations for the second stage of landing when the main parachute opens. The calculation of the model in this block occurs when the main parachute is extended to its full length (L_{op} = 31). Subblock 10-13 contains the equation for the velocity after impact with the ground, when the drag force of the main parachute becomes zero;
Lines 14-16. Block of code with the equations of the fourth stage, calculation of the model upon collision with the ground.
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}
Lines 15-17. In the After Integration subsection, lines 15-17 are added, in which the variable gndHit signals a collision with the ground and is set to 1.
8. Results of modeling a modified UAV landing model#
The graphs of the altitude and speed of the UAV before and after the collision with the ground have the form, Fig. 13:
Fig. 13 Graphs of UAV landing altitude and speed#
The results of the calculation of the modified model demonstrate that the ODE block can work not only with continuous processes, but also with rigid systems, where the DE parameters change abruptly.
9. Conclusions#
Within the framework of this manual, a mathematical model of parachute landing of an unmanned aerial vehicle of the aircraft configuration was successfully developed, implemented and verified on the REPEAT VISION platform using the ODE block.
Achieved results and model verification
The conducted study demonstrates the high efficiency and accuracy of using the ODE block for solving complex dynamic problems. The calculation results obtained on the REPEAT VISION platform correspond with high accuracy to the data given in the monographs (V.S. Moiseev [1], [2]), and serve as convincing evidence of the correctness of the model.
Functionality and reliability of the unit ODE
In the course of the work, the ability of the ODE block of the REPEAT VISION platform to stably solve ODE systems with intermittent dynamics was confirmed.
Practical significance and scope of application
The developed model is a ready-made tool for design calculations, allowing the trajectory and landing point of a UAV to be determined with high reliability.