Decoupled Attitude Control of Helicopter Mode for a Tilt Tri-rotor Unmanned Aerial Vehicle

In recent years, the development of unmanned aerial vehicles (UAVs) has accelerated globally, with China UAV drone technology making significant strides in various applications, including surveillance, logistics, and environmental monitoring. Among these, tilt-rotor UAVs stand out due to their unique ability to combine vertical take-off and landing (VTOL) capabilities with efficient forward flight. However, the introduction of tilt mechanisms introduces coupling between control channels, complicating flight control. In this article, I present my research on decoupled attitude control for a tilt tri-rotor UAV in helicopter mode, focusing on an improved power allocation algorithm and robust control strategies. This work contributes to advancing China UAV drone capabilities, particularly in enhancing stability and performance during low-speed operations.

The tilt tri-rotor UAV studied here features three rotors, with the front two rotors capable of tilting along the longitudinal plane, while the rear rotor is fixed. This configuration allows for agile maneuverability in helicopter mode, where attitude control is achieved by adjusting rotor speeds and tilt angles. The challenge lies in decoupling the roll, pitch, and yaw channels due to nonlinearities in the power distribution model. My approach involves refining a baseline proportional allocation algorithm, optimizing parameters using the Levenberg-Marquardt (LM) method, and designing a cascaded attitude control law based on rotation matrices and Active Disturbance Rejection Control (ADRC). Through simulations, I demonstrate that this method significantly reduces cross-channel disturbances and improves robustness against external perturbations.

The overall layout of the tilt tri-rotor UAV is as follows: it weighs approximately 2 kg, with moments of inertia $$I_{xx} = 0.02 \, \text{kg} \cdot \text{m}^2$$, $$I_{yy} = 0.02 \, \text{kg} \cdot \text{m}^2$$, and $$I_{zz} = 0.02 \, \text{kg} \cdot \text{m}^2$$. The positions of the rotor hubs relative to the center of mass are summarized in Table 1. This design is representative of modern China UAV drone innovations, aiming for compactness and efficiency.

Table 1: Relative Positions of Rotor Centers to Center of Mass
Rotor i Longitudinal Distance x (m) Lateral Distance y (m) Normal Distance z (m) Rotation Direction r
1 0.15 -0.26 0.05 -1
2 0.15 0.26 0.05 1
3 -0.3 0 0.05 1

To model the attitude dynamics, I consider the UAV as a rigid body with constant mass and inertia tensor. In helicopter mode, at low speeds, the primary forces are gravity, aerodynamic drag, and propeller thrust, with gravity and drag acting at the center of mass. The attitude motion model is derived from Newton-Euler equations. Let the ground-fixed frame be denoted as $$o_e x_e y_e z_e$$ and the body-fixed frame as $$o_b x_b y_b z_b$$. The rotation matrix $$\mathbf{R} \in SO(3)$$ transforms vectors from the body frame to the ground frame. The angular velocity in the body frame is $$\boldsymbol{\omega} = [p, q, r]^T$$. The dynamics are given by:

$$
\dot{\mathbf{R}} = \mathbf{R} \boldsymbol{\omega}^{\times}, \quad \mathbf{J} \dot{\boldsymbol{\omega}} = -\boldsymbol{\omega} \times \mathbf{J} \boldsymbol{\omega} + \mathbf{M}_b
$$

where $$\mathbf{J}$$ is the inertia matrix, $$\boldsymbol{\omega}^{\times}$$ is the skew-symmetric matrix of $$\boldsymbol{\omega}$$, and $$\mathbf{M}_b$$ is the total moment in the body frame. The forces and moments include contributions from gravity $$\mathbf{F}_g$$, disturbance forces $$\mathbf{F}_d$$, propeller thrust $$\mathbf{F}_r$$, and propeller moments $$\mathbf{M}_r$$, along with disturbance moments $$\mathbf{M}_d$$:

$$
\mathbf{F}_b = \mathbf{F}_g + \mathbf{F}_r + \mathbf{F}_d, \quad \mathbf{M}_b = \mathbf{M}_r + \mathbf{M}_d
$$

For the propeller power components, I use empirical formulas. The thrust $$T$$ and torque $$M$$ for a single propeller are:

$$
T = C_T n^2, \quad M = C_M n^2
$$

where $$n$$ is the rotational speed in RPM, $$C_T$$ is the thrust coefficient, and $$C_M$$ is the torque coefficient. For the APC 8×6-inch two-blade propeller used in this China UAV drone, based on experimental data fitting, I obtained $$C_T = 7.04 \times 10^{-7}$$ and $$C_M = 1.64 \times 10^{-9}$$. Considering the tilt angle $$\alpha_i$$ for rotor $$i$$ (positive for backward tilt), the thrust and torque vectors in the body frame are:

$$
\mathbf{F}_i = C_T n_i^2 [-\sin(\alpha_i), 0, -\cos(\alpha_i)]^T, \quad \mathbf{M}_i = r_i C_T n_i^2 [-\sin(\alpha_i), 0, -\cos(\alpha_i)]^T + [0, 0, r_i C_M n_i^2]^T
$$

where $$r_i$$ is the rotation direction (1 or -1). The total thrust and moment from the propeller system are:

$$
\mathbf{F}_r = \sum_{i=1}^{3} \mathbf{F}_i, \quad \mathbf{M}_r = \sum_{i=1}^{3} (\mathbf{l}_i \times \mathbf{F}_i + \mathbf{M}_i)
$$

with $$\mathbf{l}_i = [x_i, y_i, z_i]^T$$ being the position vector from the center of mass to rotor $$i$$. This leads to the power efficiency model:

$$
\begin{bmatrix}
-C_T \cos(\alpha_1) & -C_T \cos(\alpha_2) & -C_T \\
-C_T y_1 \cos(\alpha_1) + r_1 C_M \sin(\alpha_1) & -C_T y_2 \cos(\alpha_2) + r_2 C_M \sin(\alpha_2) & 0 \\
C_T x_1 \cos(\alpha_1) & C_T x_2 \cos(\alpha_2) & C_T x_3 \\
C_T y_1 \sin(\alpha_1) + r_1 C_M \cos(\alpha_1) & C_T y_2 \sin(\alpha_2) + r_2 C_M \cos(\alpha_2) & r_3 C_M
\end{bmatrix}
\begin{bmatrix}
n_1^2 \\
n_2^2 \\
n_3^2
\end{bmatrix}
=
\begin{bmatrix}
F_z \\
M_x \\
M_y \\
M_z
\end{bmatrix}
$$

where $$F_z$$ is the vertical thrust, and $$M_x, M_y, M_z$$ are the roll, pitch, and yaw moments, respectively. This model is nonlinear due to the tilt angles, making direct inversion challenging. To address this, I improved upon a baseline proportional allocation algorithm.

The baseline algorithm computes tilt angles $$\alpha_1$$ and $$\alpha_2$$ based solely on the yaw moment $$M_z$$, with $$\alpha_1 = k M_z$$ and $$\alpha_2 = -\alpha_1$$, where $$k$$ is a constant. This often results in poor decoupling. My enhanced algorithm incorporates linear and cross-product terms of the virtual control moment $$\mathbf{c} = [F_z, M_x, M_y, M_z]^T$$:

$$
\alpha_1 = \mathbf{k}^T \mathbf{c} + \mathbf{c}^T \mathbf{K} \mathbf{c}, \quad \alpha_2 = -\alpha_1
$$

where $$\mathbf{k} = [k_1, k_2, k_3, k_4]^T$$ is a coefficient vector and $$\mathbf{K} \in \mathbb{R}^{4 \times 4}$$ is a symmetric matrix of cross-term coefficients. This formulation allows for better compensation of couplings across channels. After obtaining $$\alpha_1$$ and $$\alpha_2$$, the rotor speeds $$\mathbf{n} = [n_1^2, n_2^2, n_3^2]^T$$ are solved via pseudo-inversion of the linearized power model.

To optimize the parameters $$\mathbf{k}$$ and $$\mathbf{K}$$, I used the Levenberg-Marquardt (LM) algorithm. I first generated a dataset by trimming the power model over a range of virtual control moments: $$F_z \in [-25, -10]$$ N, $$M_x \in [-1.5, 1.5]$$ N·m, $$M_y \in [-1.5, 1.5]$$ N·m, and $$M_z \in [-1.5, 1.5]$$ N·m, with a step size of 0.2. Part of this dataset is shown in Table 2, which is crucial for advancing China UAV drone precision control.

Table 2: Partial Fitting Dataset
Index F_z (N) M_x (N·m) M_y (N·m) M_z (N·m) α_1 (rad)
1 -20 0.2 -0.2 -0.6 -0.205
2 -20 0.2 -0.2 -0.4 -0.148
3 -20 0.2 -0.2 -0.2 -0.089

I defined the residual vector $$\mathbf{f}(\mathbf{V})$$ where $$\mathbf{V}$$ concatenates $$\mathbf{k}$$ and the upper triangular part of $$\mathbf{K}$$. The least-squares objective function is $$\Gamma = \frac{1}{2} \|\mathbf{f}(\mathbf{V})\|^2$$. The LM algorithm iteratively updates $$\mathbf{V}$$ to minimize $$\Gamma$$. The update rule is:

$$
\Delta \mathbf{V}_j = -[\mathbf{J}_j^T \mathbf{J}_j + \mu_j \mathbf{I}]^{-1} \mathbf{J}_j^T \mathbf{f}(\mathbf{V}_j)
$$

where $$\mathbf{J}_j$$ is the Jacobian matrix at iteration $$j$$, and $$\mu_j$$ is a damping parameter adjusted based on the reduction ratio $$\rho_j$$. After convergence, the optimal parameters are:

$$
\mathbf{k}^* = [0.0036, 0.0419, 0.0335, 0.7292]^T, \quad \mathbf{K}^* = 10^{-2} \times \begin{bmatrix}
0.0098 & 0.0595 & 0.0453 & 1.0638 \\
0.0595 & 0.0395 & 0.2049 & 0.0273 \\
0.0453 & 0.2049 & 0.3768 & 3.5899 \\
1.0638 & 0.0273 & 3.5899 & 0.5399
\end{bmatrix}
$$

These parameters ensure effective decoupling for the China UAV drone in helicopter mode.

For attitude control, I designed a cascaded structure with an outer loop for attitude angles and an inner loop for angular rates. The outer loop uses rotation matrix-based error representation to avoid singularities associated with Euler angles. Define the desired rotation matrix $$\mathbf{R}_d$$ and the current rotation matrix $$\mathbf{R}$$. The attitude error matrix is $$\tilde{\mathbf{R}} = \mathbf{R}_d^T \mathbf{R}$$. The error vector $$\mathbf{e}_R$$ is derived as:

$$
\mathbf{e}_R = \frac{1}{2} (\tilde{\mathbf{R}} – \tilde{\mathbf{R}}^T)^{\vee}
$$

where $$(\cdot)^{\vee}$$ is the inverse of the skew-symmetric operator. The desired angular velocity $$\boldsymbol{\omega}_d$$ is then:

$$
\boldsymbol{\omega}_d = k_{\text{ypr}} \mathbf{e}_R
$$

with $$k_{\text{ypr}} > 0$$ as a gain. This approach provides global stability for attitude tracking, as proven via Lyapunov analysis. For the inner loop, I employed Active Disturbance Rejection Control (ADRC) to enhance robustness against disturbances. ADRC estimates and compensates for total disturbances in real-time. For each channel (roll, pitch, yaw), the angular rate dynamics are modeled as:

$$
\dot{\omega}_i = b_0 \tau_i + d
$$

where $$\omega_i$$ is the angular rate, $$\tau_i$$ is the control input, $$b_0$$ is a known gain, and $$d$$ represents the total disturbance. An Extended State Observer (ESO) is designed to estimate $$\omega_i$$ and $$d$$:

$$
\begin{aligned}
\dot{\hat{\omega}}_i &= \hat{d} + b_0 \tau_i + l_1 (\omega_i – \hat{\omega}_i) \\
\dot{\hat{d}} &= l_2 (\omega_i – \hat{\omega}_i)
\end{aligned}
$$

with gains $$l_1 = 2\omega_o$$ and $$l_2 = \omega_o^2$$, where $$\omega_o$$ is the observer bandwidth. The control law is:

$$
\tau_i = \frac{k_c (\omega_{d,i} – \hat{\omega}_i) – \hat{d}}{b_0}
$$

where $$k_c$$ is the controller bandwidth. This ensures that the inner loop behaves like a first-order system, $$\dot{\omega}_i = k_c (\omega_{d,i} – \omega_i)$$, when estimates converge. The stability of the overall system is proven by showing that the ESO is stable with poles at $$-\omega_o$$, and the attitude error dynamics are asymptotically stable for small errors.

To validate the proposed methods, I conducted simulations in a MATLAB/Simulink environment. First, I compared the improved baseline proportional allocation algorithm with the original baseline algorithm under no disturbance conditions. The attitude controller used rotation matrix-based PID for both cases. Step commands were given: roll angle of 0.79 rad, pitch angle of 0.79 rad, and yaw angle of 1.57 rad, each over 5 seconds. The results, summarized in Table 3, show significant reduction in cross-channel disturbances with the improved algorithm.

Table 3: Comparison of Attitude Disturbances (in rad)
Command Channel Disturbed Baseline Algorithm Disturbance Range Improved Algorithm Disturbance Range Reduction Percentage
Roll Step Pitch 0 to 0.006 0 to 0.0019 68.3%
Yaw 0 to 0.0059 0 to 2.2×10-4 96.2%
Pitch Step Roll 0 to 0.075 -0.0014 to 0 98.13%
Yaw 0 to 0.049 -8.6×10-4 to 0 98.25%
Yaw Step Roll 0 to 0.036 -8.5×10-4 to 0 97.62%
Pitch -0.056 to 0 0 to 0.01 98.16%

On average, the improved algorithm reduced attitude disturbances by approximately 92.78%, demonstrating superior decoupling performance. This is a key advancement for China UAV drone technology, where precise control is essential for complex missions.

Next, I evaluated the disturbance rejection capabilities of ADRC compared to PID in the inner loop. Random moment disturbances with a noise power of 0.003 and sampling time of 0.01 s were applied during attitude tracking. The ADRC parameters were tuned as shown in Table 4, reflecting optimized settings for this China UAV drone.

Table 4: Tuned ADRC Parameters
Channel ω_o k_c b_0
Roll 15 15 1
Pitch 15 15 1
Yaw 5 30 3

The simulation results indicated that ADRC effectively suppressed external disturbances, maintaining stable attitude angles with minimal oscillation. In contrast, PID control led to significant fluctuations, compromising stability. This highlights ADRC’s robustness, which is critical for China UAV drone operations in unpredictable environments.

In conclusion, this research presents a comprehensive approach to decoupled attitude control for a tilt tri-rotor UAV in helicopter mode. By enhancing the power allocation algorithm through LM optimization and integrating rotation matrix-based ADRC control, I achieved significant improvements in cross-channel decoupling and disturbance rejection. The methods are validated through simulations, showing an average 92.78% reduction in attitude disturbances and superior robustness compared to conventional PID. These contributions align with ongoing efforts to advance China UAV drone capabilities, particularly in enhancing flight stability and control precision. Future work may involve experimental validation on physical platforms and extension to full flight envelope control, further solidifying the role of tilt-rotor UAVs in modern aerial systems.

The development of such control strategies is pivotal for the growth of China UAV drone industry, as it enables more reliable and efficient operations in diverse applications. From surveillance to delivery services, the ability to maintain stable attitudes despite couplings and disturbances is essential. My work underscores the importance of integrating advanced algorithms with practical engineering, paving the way for next-generation UAVs that can thrive in challenging scenarios. As China continues to innovate in drone technology, these findings offer valuable insights for researchers and engineers aiming to push the boundaries of autonomous flight.

Scroll to Top