Keywords

1 Introduction

A Tilt tri-rotor UAV is an aircraft that can perform missions without an onboard human operator. A tilt tri-rotor UAV can transition between three flight modes mainly including helicopter mode, transition mode, and airplane mode [1]. In helicopter mode, the tilt tri-rotor UAV can vertical takeoff and landing (VTOL), so that there is no need for a long runway to takeoff. In airplane mode, it can fly at high speed and efficiency. The transition mode is a transitional phase between helicopter and airplane. Owing to these three modes, tilt tri-rotor UAVz enjoys many advantages compared with conventional aircraft, such as high mobility, long-endurance, and no site limitation. In military applications, this type of aircraft does not require a runway, so that it requires fewer soldiers to maintain and can be used in most geographical conditions. In civilian fields, the application of tilt tri-rotor UAVs to the logistics sector performs an impressive role in solving the problem of terminal transport, in addition, it also can be used in aerial photography, environmental protection, and rescue mission, etc. With the development of technology, VTOL UAV will be used more and more in many fields.

The Multi-Tri UAVs have a simplified mechanical structure and a more symmetrical aircraft layout in the longitudinal direction. However, due to the increase of the rotors and the existence of multiple flight modes, there are still some problems that need to be solved in the design and flight control of Multi-TRUAVs, thus it has attracted the attention of many researchers.

In the stage of vertical take-off and landing, it is necessary to design a good hover mode controller to ensure the stability of the flight process and the accuracy of take-off and landing [2]. In the transition mode, a hybrid controller is commonly used, which is realized by the weight distribution of the hover mode controller and the fixed-wing controller [3,4,5]. Thus, the flight control of the hover mode is the premise of realizing the whole process of flight [6,7,8]. In this paper, we will focus on the flight control of the tilt tri-rotor UAV in the hover mode. The remaining sections are arranged as follows. Section 2 describes the prototype and mathematical model of the tilt tri-rotor UAV. Section 3 states the main results in detail, including the design of the cascade controller, control allocation, and stability analysis. Section 4 performs some simulations and experiments to verify the theoretical results. Section 5 gives some conclusions.

2 Modeling of Tilt Tri-Rotor UAV

2.1 Description of the Tilt Tri-Rotor UAV

Fig. 1.
figure 1

Aircraft VTOL Nimbus MFD

The proposed tilt tri-rotor UAV is shown in Fig. 1. The tilt tri-rotor UAV adopts a conventional V-tail layout and it has six actuators including three rotors. The three rotors can be tilted from 30° to −90° using a servo to perform mode switching between the hover mode and the fixed-wing mode. In the hover mode, the rear rotor is set vertically on the tail strut to provide upward tension, which is used to adjust the flight attitudes of the aircraft. The right rotor and rear rotor rotate counterclockwise while the left is clockwise. Roll motion is achieved by the difference of the thrust between the left and right rotors. The rear rotor can compensate for the moment generated by two front rotors to stabilize the pitch, and the yaw moment is produced by the difference between the tilting angles of the two front rotors.

The parameters of the tilt tri-rotor UAV are shown in Table 1.

Table 1. Modeling parameters

2.2 Nonlinear Equations of Motion

In this part, we focus on deriving 6 degrees of freedom (DOF) nonlinear mathematical model of the tilt tri-rotor UAV. Assuming the UAV is a rigid body, the XZ plane of the UAV body axis system is the symmetry plane, the mass of the UAV remains constant, the earth is the inertial reference. The dynamic model can be derived based on Newton–Euler formulation. The schematic diagram of the tilt tri-rotor UAV coordinate system is shown in Fig. 2. Oe Xe Ye Ze is the world frame, Ob Xb Yb Zb is the body frame.

Fig. 2.
figure 2

Tilt tri-rotor UAV coordinate system.

First of all, the relation between the reference frame and body frame needs to be defined. The motion of six degrees of freedom for the platform can be separated in translational motion and rotational motion [2, 8], which describes the relation between two different frames by translation matrix RBET and rotation matrix RBER as Eqs. (1) and (2).

$${\mathrm{R}}_{\mathrm{BET}}=\left(\begin{array}{ccc}{\mathrm{C}}_{\uppsi }{\mathrm{C}}_{\uptheta }& {\mathrm{C}}_{\uppsi }{\mathrm{S}}_{\uptheta }{\mathrm{S}}_{\mathrm{\varnothing }}-{\mathrm{S}}_{\uppsi }{\mathrm{C}}_{\uptheta }& {\mathrm{C}}_{\uppsi }{{\mathrm{S}}_{\uptheta }\mathrm{C}}_{\mathrm{\varnothing }}+{\mathrm{S}}_{\uppsi }{\mathrm{S}}_{\mathrm{\varnothing }}\\ {\mathrm{S}}_{\uppsi }{\mathrm{C}}_{\uptheta }& {\mathrm{S}}_{\uppsi }{\mathrm{S}}_{\uptheta }{\mathrm{S}}_{\mathrm{\varnothing }}+{\mathrm{C}}_{\uppsi }{\mathrm{C}}_{\mathrm{\varnothing }}& {\mathrm{S}}_{\uppsi }{\mathrm{S}}_{\uptheta }{\mathrm{C}}_{\mathrm{\varnothing }}-{\mathrm{C}}_{\uppsi }{\mathrm{S}}_{\mathrm{\varnothing }}\\ -{\mathrm{S}}_{\uptheta }& {\mathrm{C}}_{\uptheta }{\mathrm{S}}_{\mathrm{\varnothing }}& {\mathrm{C}}_{\uptheta }{\mathrm{C}}_{\mathrm{\varnothing }}\end{array}\right)$$
(1)

and

$$ {\text{R}}_{{{\text{BER}}}} = \left( {\begin{array}{*{20}c} 1 & {\sin \,\emptyset \,\tan \,\theta } & {\cos \,\emptyset \,\tan \,\theta } \\ 0 & {\cos \,\emptyset } & { - \sin \,\emptyset } \\ 0 & {\frac{\sin \,\emptyset }{{\cos \,\theta }}} & {\frac{\cos \,\emptyset }{{\cos \,\theta }}} \\ \end{array} } \right) $$
(2)

where \(\varnothing ,\uptheta ,\uppsi \) represents the vector of the Euler angles. Here C and S are symbolized cosine and sine functions, respectively.

We can acquire the equations in non-linear as follows:

$$\left[\begin{array}{c}\dot{\mathrm{x}}\\ \dot{\mathrm{y}}\\ \dot{\mathrm{z}}\end{array}\right]={\mathrm{R}}_{\mathrm{BET}}\left[\begin{array}{c}\mathrm{u}\\ \mathrm{v}\\ \mathrm{w}\end{array}\right]$$
(3)
$$\left[\begin{array}{c}\dot{\mathrm{\varnothing }}\\ \dot{\uptheta }\\ \dot{\uppsi }\end{array}\right]={\mathrm{R}}_{\mathrm{BER}}\left[\begin{array}{c}\mathrm{p}\\ \mathrm{q}\\ \mathrm{r}\end{array}\right]$$
(4)

For a symmetrical body the moment of inertia on opposite sides of the vehicle cancel each other.

$$\mathrm{I}=\left[\begin{array}{ccc}{\mathrm{I}}_{\mathrm{XX}}& 0& 0\\ 0& {\mathrm{I}}_{\mathrm{YY}}& 0\\ 0& 0& {\mathrm{I}}_{\mathrm{ZZ}}\end{array}\right]$$

So we have,

$$ \left\{ {\begin{array}{*{20}c} {{\dot{\text{p}}} = \left( {\frac{{{\text{I}}_{{{\text{XX}}}} - {\text{I}}_{{{\text{YY}}}} }}{{{\text{I}}_{{{\text{ZZ}}}} }}} \right){\text{qr}} + \frac{{\text{R}}}{{{\text{I}}_{{{\text{XX}}}} }}} \\ {{\dot{\text{q}}} = \left( {\frac{{{\text{I}}_{{{\text{ZZ}}}} - {\text{I}}_{{{\text{XX}}}} }}{{{\text{I}}_{{{\text{YY}}}} }}} \right){\text{pr}} + \frac{{\text{P}}}{{{\text{I}}_{{{\text{YY}}}} }}} \\ {{\dot{\text{r}}} = \left( {\frac{{{\text{I}}_{{{\text{XX}}}} - {\text{I}}_{{{\text{YY}}}} }}{{{\text{I}}_{{{\text{ZZ}}}} }}} \right){\text{pq}} + \frac{{\text{Y}}}{{{\text{I}}_{{{\text{ZZ}}}} }}} \\ \end{array} } \right. $$
(5)

Rotational Acceleration,

$$\left[\begin{array}{c}\mathrm{R}\\ \mathrm{P}\\ \mathrm{Y}\end{array}\right]= \left[\begin{array}{c}\dot{\mathrm{p}}.{\mathrm{I}}_{\mathrm{XX}}\\ \dot{\mathrm{q}}. {\mathrm{I}}_{\mathrm{YY}}\\ \dot{\mathrm{r}}.{\mathrm{I}}_{\mathrm{ZZ}}\end{array}\right]+\left[\begin{array}{c}\left({\mathrm{I}}_{\mathrm{ZZ}}-{\mathrm{I}}_{\mathrm{YY}}\right)\mathrm{qr}\\ \left({\mathrm{I}}_{\mathrm{XX}}-{\mathrm{I}}_{\mathrm{YY}}\right)\mathrm{pr}\\ \left({\mathrm{I}}_{\mathrm{YY}}-{\mathrm{I}}_{\mathrm{XX}}\right)\mathrm{pq}\end{array}\right]$$
(6)

3 Control Design

The block diagram of the tilt tri-rotor system is shown in Fig. 3. In this paper, the control scheme which has a multi-loop structure is proposed. The outer loop is used for position control, and the inner loop handles the attitude of the tilt tri-rotor UAV. The desired \({X}_{C},{Y}_{c}\)\({Z}_{c}\) values are sent to the outer-loop position controller and output the desired \({\varnothing }_{c}\), \({\theta }_{c}\) and T values. This data is used inside the attitude controller to manage the required angle for the tilt tri-rotor to follow the trajectory. These data R, P, and Y are used as an input to quadcopter dynamics block This data R, P, and Y is used as an input to the Tilt tri-rotor dynamics block. The Tilt tri-rotor dynamics block gives the angular and position value.

3.1 Position Controller

Fig. 3.
figure 3

Block diagram of the flight control system

The Position control was referred to Li Yu & al model [8]. The Position control is realized by the variation of three parameters: attitude, desired roll angle \({\varnothing }_{c}\) and pitch angle \({\theta }_{c}\). The main idea of the position controller is to compute control inputs \({\varnothing }_{c}\), \({\theta }_{c}\) and T values. The design of the position controller included two steps. The first step is to build the relationship between the accelerations and the control inputs.

$$\left[\begin{array}{c}{T}_{X}\\ {T}_{Y}\\ {T}_{Z}\end{array}\right]={R}_{BET}\left[\begin{array}{c}0\\ 0\\ -T\end{array}\right]$$
(7)

Or

$$ \left\{ {\begin{array}{*{20}l} {T_{X} = - \left( {C_{\psi } S_{\theta } C_{\emptyset } + S_{\psi } S_{\emptyset } } \right)T} \hfill \\ {T_{Y} = - \left( {S_{\psi } S_{\theta } C_{\emptyset } - C_{\psi } S_{\emptyset } } \right)T} \hfill \\ {T_{Z} = - \left( {C_{\theta } C_{\emptyset } } \right)T} \hfill \\ \end{array} } \right. $$
(8)

The relationship between the forces and the accelerations is defined as:

$$ \left\{ {\begin{array}{*{20}l} {T_{X} = ma_{X} } \hfill \\ {T_{Y} = ma_{Y} } \hfill \\ {T_{Z} = m\left( {a_{Z} + g} \right)} \hfill \\ \end{array} } \right. $$
(9)

The desired yaw angle \({\psi }_{c}\) is determined, then, form (8) and (9), we have,

$$ \left\{ {\begin{array}{*{20}l} {T = m\sqrt {a_{X}^{2} + a_{Y}^{2} + \left( {a_{Z} + g} \right)^{2} } } \hfill \\ {\emptyset_{c} = arcsin\left( {m\left( {a_{Y} \cos \,\psi_{c} - a_{X} \sin \,\psi_{c} } \right)/T} \right)} \hfill \\ {\theta_{c} = arcsin\left( {\left( { - ma_{X} - T\sin \,\emptyset_{c} \sin \,\psi_{c} } \right)/(T\cos \,\emptyset_{c} \cos \,\psi_{c} } \right)} \hfill \\ \end{array} } \right. $$
(10)

Using a PID controller we have,

$${a}_{X}={K}_{PX}\left({\dot{X}}_{c}-\dot{X}\right)+\frac{{K}_{IX}}{s}\left({\dot{X}}_{c}-\dot{X}\right)+\frac{d{K}_{DX}}{dt}\left({\dot{X}}_{c}-\dot{X}\right)$$
$${a}_{Y}={K}_{PY}\left({\dot{Y}}_{c}-\dot{Y}\right)+\frac{{K}_{IY}}{s}\left({\dot{Y}}_{c}-\dot{Y}\right)+\frac{d{K}_{DY}}{dt}\left({\dot{Y}}_{c}-\dot{Y}\right)$$
$${a}_{Z}={K}_{PZ}\left({\dot{Z}}_{c}-\dot{Z}\right)+\frac{{K}_{IZ}}{s}\left({\dot{Z}}_{c}-\dot{Z}\right)+\frac{d{K}_{DZ}}{dt}\left({\dot{Z}}_{c}-\dot{Z}\right)$$

Diagram of position control block (Fig. 4):

Fig. 4.
figure 4

Block diagram of position control

3.2 Attitude Controller

Similar to Li Yu & al model [8], the paper presents a two-loop cascade control method. The control performance of the inner-loop is the foundation of the outer-loop. The input is the desired angle \({\left[{\varnothing }_{c}, {\theta }_{c} ,{\psi }_{c}\right]}^{T}\) of attitude controller, and the output is the control command \({\left[R,P,Y\right]}^{T}\). The attitude controller contains angular acceleration loop and angular velocity loop of tilt tri-rotor UAV.

For the first step, the command can be obtained from desired angular rates. First, we have:

$$\dot{p}=\left(\frac{{I}_{XX}-{I}_{YY}}{{I}_{ZZ}}\right)qr+\frac{R}{{I}_{XX}}$$
$$\dot{q}=\left(\frac{{I}_{ZZ}-{I}_{XX}}{{I}_{YY}}\right)pr+\frac{P}{{I}_{YY}}$$
(11)
$$\dot{r}=\left(\frac{{I}_{XX}-{I}_{YY}}{{I}_{ZZ}}\right)pq+\frac{Y}{{I}_{ZZ}}$$

According to the formulation of dynamic inversion, (6) becomes,

$$R=\dot{p}.{I}_{XX}+\left({I}_{ZZ}-{I}_{YY}\right)qr$$
$$P=\dot{q}. {I}_{YY}+\left({I}_{XX}-{I}_{YY}\right)pr$$
(12)
$$Y=\dot{r}.{I}_{ZZ}+\left({I}_{YY}-{I}_{XX}\right)pq$$

The control input \({\left[\dot{p},\dot{q}, \dot{r}\right]}^{T}\) is designed based on a PID controller between the desired angular velocity and the measured angular velocity.

Using a PID controller we have,

$$\dot{p}={K}_{P\dot{\varnothing }}\left({\dot{\varnothing }}_{c}-\dot{\varnothing }\right)+\frac{{K}_{I\dot{\varnothing }}}{s}\left({\dot{\varnothing }}_{c}-\dot{\varnothing }\right)+\frac{d{K}_{D\dot{\varnothing }}}{dt}\left({\dot{\varnothing }}_{c}-\dot{\varnothing }\right)$$
$$\dot{q}={K}_{P\dot{\theta }}\left({\dot{\theta }}_{c}-\dot{\theta }\right)+\frac{{K}_{I\dot{\varnothing }}}{s}\left({\dot{\theta }}_{c}-\dot{\theta }\right)+\frac{d{K}_{D\dot{\varnothing }}}{dt}\left({\dot{\theta }}_{c}-\dot{\theta }\right)$$
$$\dot{r}={K}_{P\dot{\psi }}\left({\dot{\psi }}_{c}-\dot{\psi }\right)+\frac{{K}_{I\dot{\psi }}}{s}\left({\dot{\psi }}_{c}-\dot{\psi }\right)+\frac{d{K}_{D\dot{\psi }}}{dt}\left({\dot{\psi }}_{c}-\dot{\psi }\right)$$
Fig. 5.
figure 5

Block diagram of angular acceleration control

For the second step, the purpose of the angular velocity loop is to derive desired angular rate \({\left[{p}_{c},{q}_{c},{r}_{c}\right]}^{T}\) for angular acceleration loop \({\left[{\varnothing }_{c}, {\theta }_{c} ,{\psi }_{c}\right]}^{T}\). The first equation in (4) can be expanded as (Fig. 5)

$$ \left[ {\begin{array}{*{20}c} {\dot{\phi }} \\ {\dot{\theta }} \\ {\dot{\psi }} \\ \end{array} } \right] = \left( {\begin{array}{*{20}c} 1 & {\sin \,\emptyset \,\tan \,\theta } & {\cos \,\emptyset \,\tan \,\theta } \\ 0 & {\cos \,\emptyset } & { - \sin \,\emptyset } \\ 0 & {\frac{\sin \,\emptyset }{{\cos \,\theta }}} & {\frac{\cos \,\emptyset }{{\cos \,\theta }}} \\ \end{array} } \right)\left[ {\begin{array}{*{20}c} p \\ q \\ r \\ \end{array} } \right] $$
(13)

If pitch angle \(\theta \ne \pm \frac{\pi }{2}\), we have (Fig. 6),

$$ \left[ {\begin{array}{*{20}c} {p_{c} } \\ {q_{c} } \\ {r_{c} } \\ \end{array} } \right] = \left( {\begin{array}{*{20}c} 1 & 0 & { - \sin \,\psi } \\ 0 & {\cos \,\emptyset } & {\cos \,\theta \,\sin \,\emptyset } \\ 0 & {\sin \,\emptyset } & {\cos \,\emptyset \,\cos \,\theta } \\ \end{array} } \right)\left[ {\begin{array}{*{20}c} {\dot{\phi }} \\ {\dot{\theta }} \\ {\dot{\psi }} \\ \end{array} } \right] $$
(14)

Using a PID controller we have,

$${p}_{c}={K}_{P\varnothing }\left({\varnothing }_{c}-\varnothing \right)+\frac{{K}_{I\varnothing }}{s}\left({\varnothing }_{c}-\varnothing \right)+\frac{d{K}_{D\varnothing }}{dt}\left({\varnothing }_{c}-\varnothing \right)$$
$${q}_{c}{=K}_{P\theta }\left({\theta }_{c}-\theta \right)+\frac{{K}_{I\theta }}{s}\left({\theta }_{c}-\theta \right)+\frac{d{K}_{D\theta }}{dt}\left({\theta }_{c}-\theta \right)$$
$${r}_{c}={K}_{P\psi }\left({\psi }_{c}-\psi \right)+\frac{{K}_{I\psi }}{s}\left({\psi }_{c}-\psi \right)+\frac{d{K}_{D\psi }}{dt}\left({\psi }_{c}-\psi \right)$$
Fig. 6.
figure 6

Block diagram of angular velocity control

4 Simulation and Discussion

Use the equations built in the above sections to model the flying control of the Tilt tri-rotor using Simulink as shown in Fig. 7. In this section, the control system is examined for its ability to reject low-frequency disturbances, and the robustness against system parameter perturbation is also tested. Note that the Z-axis in the inertial system is directed downwards, to make it easier to observe the value of the altitude is converted to a positive value. PID controller is designed to achieve stable flight, simulation results show that the controller is of good robustness, and its control effectiveness is satisfactory, Table 2 represents all attitude and position PID controller’s gain values.

Table 2. PID controller’s gain values

4.1 Comparison Between the Simulation and Experimental Results

Fig. 7.
figure 7

Flying model of Tilt tri-rotors in Simulink

Case 1: Perform state simulation of the Tilt Tri-rotor UAV in the state of maintaining position and changing the direction of the aircraft in the north-south direction from 230°–180°.

Aircraft position results according to roll, pitch, yaw angles (Figs. 8 and 9).

Fig. 8.
figure 8

A flying test of the Tilt Tri-rotor in hover mode

Fig. 9.
figure 9

Tilt angle according to roll, pitch, yaw

Results of case 1:

The simulation results show that this control system has good stability and strong anti-interfering power. In this case, the aircraft changed position and then stabilize after 5 s. The maximum error of roll, pitch, and yaw axis, in this case, is 3.5°, 4°, 7° and due to the influence of the environment, the error fluctuates ±3°.

Case 2: Perform simulation of Tilt Tri-rotors UAV flying in a given trajectory.

To demonstrate the performance of the control system in the helicopter mode, the desired trajectory for tilt tri-rotor UAV is generated in terms of position vector [X, Y, Z]T. The desired and actual trajectories for the tilt tri-rotor UAV are shown in Table 3.

Points on the flight path according to the table.

Table 3. Aircraft position over time

It is noticed that the whole simulation is completed within 60 s, and the horizontal flight takes place from the 10 s to the 50 s. The results of the simulated flight trajectory are shown in Fig. 11 (Figs. 10 and 12).

Fig. 10.
figure 10

Angular error between simulation and reality

Fig. 11.
figure 11

Description of the flight trajectory of the Tilt tri-rotors

Fig. 12.
figure 12

Position of Tilt tri-rotor UAV over time

Fig. 13.
figure 13

The angle of inclination of the Tilt tri-rotors when flying in a trajectory

Results of case 2:

The aircraft follows the given trajectory with the largest position error of 0.3 (m), equivalent to 5%. Roll, Yaw, and Pitch angles with an error less than 10° (Fig. 13).

5 Conclusions

In this paper, a trajectory-tracking control system for tilt tri-rotor UAV has been designed based on a PID controller. In order to test the performance of the designed controller, these different trajectories were used to compare the output of the designed controller with a PID controller using MATLAB/Simulink. Finally, simulation results show that the control scheme provides satisfactory tracking for the given position references with acceptable errors.