In the field of unmanned aerial systems, the quadrotor drone has emerged as a pivotal platform due to its simple mechanical structure and versatile maneuverability. However, its inherent underactuated nature, characterized by strong coupling and nonlinear dynamics, poses significant challenges in achieving robust and precise control, especially under external disturbances. Traditional control methods, such as PID, often fall short in handling nonlinear interferences, leading to degraded performance in complex tasks like payload manipulation or operation in turbulent environments. In this paper, we address these limitations by proposing a novel compound controller that integrates conventional PID control with fuzzy theory and neural network algorithms. This approach enhances the anti-interference capability and response accuracy of quadrotor drones, leveraging adaptive learning to cope with unknown model parameters and environmental uncertainties. We further introduce a Maxout-based neural network identifier for accurate model recognition, ensuring the controller’s efficacy even with imperfect system knowledge. Through comprehensive simulations, we demonstrate that our compound controller significantly outperforms traditional PID in terms of disturbance rejection and robustness, paving the way for more reliable drone operations in industrial applications.
The quadrotor drone is a six-degree-of-freedom system with four control inputs, making it an underactuated platform. Its motion is governed by the forces and moments generated by four rotors, each driven by an electric motor. To establish a foundation for control design, we first derive the mathematical model of the quadrotor drone. Let us define the state variables: the position coordinates \(x(t)\), \(y(t)\), \(z(t)\) in the inertial frame, and the orientation angles—roll \(\phi(t)\), pitch \(\theta(t)\), and yaw \(\psi(t)\)—representing rotations about the body-fixed axes. The total lift force \(F\) is produced by the rotors, and it is related to the rotor speeds \(\Omega_i\) (for \(i = 1, 2, 3, 4\)) by the following equation:
$$ F = \sum_{i=1}^{4} k \Omega_i^2 $$
where \(k\) is the thrust coefficient dependent on rotor geometry. The linear acceleration dynamics in the inertial frame are given by:
$$ \begin{aligned}
\ddot{x} &= (\cos \psi \sin \theta \cos \phi + \sin \psi \sin \phi) \frac{F}{m} \\
\ddot{y} &= (\sin \psi \sin \theta \cos \phi – \cos \psi \sin \phi) \frac{F}{m} \\
\ddot{z} &= (\cos \phi \cos \theta) \frac{F}{m} – g
\end{aligned} $$
Here, \(m\) denotes the total mass of the quadrotor drone, and \(g\) is the gravitational acceleration. The moments acting on the drone about the body axes are expressed as:
$$ \begin{aligned}
M_\phi &= l k (\Omega_4^2 – \Omega_2^2) \\
M_\theta &= l k (\Omega_1^2 – \Omega_3^2) \\
M_\psi &= \lambda (\Omega_4^2 + \Omega_2^2 – \Omega_1^2 – \Omega_3^2)
\end{aligned} $$
where \(l\) is the distance from the center of mass to each rotor, and \(\lambda\) is the drag torque coefficient. Using Euler’s equations of motion, the angular acceleration dynamics can be derived as:
$$ \begin{aligned}
\ddot{\phi} &= \dot{\theta} \dot{\psi} \frac{J_y – J_z}{J_x} + \frac{M_\phi}{J_x} \\
\ddot{\theta} &= \dot{\phi} \dot{\psi} \frac{J_z – J_x}{J_y} + \frac{M_\theta}{J_y} \\
\ddot{\psi} &= \dot{\phi} \dot{\theta} \frac{J_x – J_y}{J_z} + \frac{M_\psi}{J_z}
\end{aligned} $$
In these equations, \(J_x\), \(J_y\), and \(J_z\) represent the moments of inertia about the respective body axes. This model captures the coupled nonlinear behavior of the quadrotor drone, which is essential for designing effective control strategies. The underactuated nature implies that only four inputs (rotor speeds) control six outputs (position and orientation), necessitating sophisticated control techniques to achieve desired trajectories while mitigating disturbances.

To overcome the limitations of conventional control for quadrotor drones, we design a compound controller that combines a traditional PID controller with a fuzzy neural network controller. This hybrid approach leverages the simplicity and stability of PID for baseline control, while the fuzzy neural network provides adaptive tuning to handle nonlinearities and external interferences. The overall control system takes reference commands for roll, pitch, yaw, and throttle, and generates control signals for the four motors. The key innovation lies in the integration of fuzzy logic for error processing and a neural network for self-learning, ensuring robust performance across varying operational conditions.
The traditional PID controller forms the foundational layer of our compound system. It operates on the error signals \(e\) for roll, pitch, yaw angles, and vertical velocity. The control output \(u_{\text{PID}}\) is computed as:
$$ u_{\text{PID}} = K_p e + K_i \int e \, dt + K_d \frac{de}{dt} $$
where \(K_p\), \(K_i\), and \(K_d\) are the proportional, integral, and derivative gains, respectively. While this controller offers straightforward implementation, its fixed parameters often lead to poor disturbance rejection in dynamic environments. To enhance adaptability, we parallelize it with a fuzzy neural network controller that processes normalized error signals.
The fuzzy neural network controller inputs include the normalized errors for roll, pitch, yaw angles, their angular velocities, and the vertical velocity error. Normalization is performed to scale inputs uniformly, using the function:
$$ e’ = \frac{\exp(e) – 1}{\exp(e) + 1} $$
This transformed error \(e’\) is then fuzzified using Gaussian membership functions to map it into linguistic variables. The fuzzification process for each input is defined as:
$$ \mu_i(e’) = \exp\left(-\left(\frac{e’ – m_i}{p_i}\right)^2\right) $$
for \(i = 1, 2, \ldots, 5\), where \(m_i\) and \(p_i\) are tunable parameters representing the center and width of the membership functions. The indices correspond to five fuzzy sets: error positive large, error positive small, error zero, error negative small, and error negative large. Based on expert knowledge, we formulate fuzzy rules to determine the control actions for each motor. These rules are summarized in the following tables, which dictate the strength of control signals \(u_1, u_2, u_3, u_4\) for the four rotors of the quadrotor drone.
| Roll Error | \(u_1\) | \(u_2\) | \(u_3\) | \(u_4\) |
|---|---|---|---|---|
| \(e > 0\), large | 3 | 5 | 3 | 1 |
| \(e > 0\), small | 3 | 4 | 3 | 2 |
| \(e \approx 0\) | 3 | 3 | 3 | 3 |
| \(e < 0\), small | 3 | 2 | 3 | 4 |
| \(e < 0\), large | 3 | 1 | 3 | 5 |
| Pitch Error | \(u_1\) | \(u_2\) | \(u_3\) | \(u_4\) |
|---|---|---|---|---|
| \(e > 0\), large | 5 | 3 | 1 | 3 |
| \(e > 0\), small | 4 | 3 | 2 | 3 |
| \(e \approx 0\) | 3 | 3 | 3 | 3 |
| \(e < 0\), small | 2 | 3 | 4 | 3 |
| \(e < 0\), large | 1 | 3 | 5 | 3 |
| Yaw Error | \(u_1\) | \(u_2\) | \(u_3\) | \(u_4\) |
|---|---|---|---|---|
| \(e > 0\), large | 5 | 1 | 5 | 1 |
| \(e > 0\), small | 4 | 2 | 4 | 2 |
| \(e \approx 0\) | 3 | 3 | 3 | 3 |
| \(e < 0\), small | 2 | 4 | 2 | 4 |
| \(e < 0\), large | 1 | 5 | 1 | 5 |
| Velocity Error | \(u_1\) | \(u_2\) | \(u_3\) | \(u_4\) |
|---|---|---|---|---|
| \(e > 0\), large | 5 | 5 | 5 | 5 |
| \(e > 0\), small | 4 | 4 | 4 | 4 |
| \(e \approx 0\) | 3 | 3 | 3 | 3 |
| \(e < 0\), small | 2 | 2 | 2 | 2 |
| \(e < 0\), large | 1 | 1 | 1 | 1 |
These rules guide the initial control actions, but to achieve adaptive refinement, we embed them into a neural network structure. The neural network has an input layer receiving the normalized errors, a hidden layer implementing the fuzzification, and an output layer generating control signals. The output of the hidden layer nodes is given by the membership values \(\mu_i(e’)\), and the final output \(u_{\text{FNN}}\) is computed as a weighted sum:
$$ u_{\text{FNN}} = \sum_{i=1}^{5} \omega_i \mu_i(e’) $$
where \(\omega_i\) are adjustable weights. To train these weights, we employ a backpropagation algorithm that minimizes the quadratic error function:
$$ J = \frac{1}{2} \sum (y_t – y)^2 $$
Here, \(y_t\) is the desired output state (e.g., target angles or velocities), and \(y\) is the actual state of the quadrotor drone. The weight update rule is derived using gradient descent:
$$ \Delta \omega_i = -\eta \frac{\partial J}{\partial \omega_i} = \eta \cdot e \cdot y_u \cdot \mu_i(e’) $$
In this equation, \(\eta\) is the learning rate, and \(y_u\) represents the Jacobian parameter, which quantifies the sensitivity of the quadrotor drone’s output to control inputs. This parameter is crucial for effective learning, as it guides the network on how to adjust weights based on system behavior. However, obtaining an accurate analytical model for \(y_u\) is challenging due to the complexity of the quadrotor drone dynamics. To address this, we develop a neural network identifier based on the Maxout activation function, which provides precise online estimation of \(y_u\) without relying on explicit model knowledge.
The Maxout-based identifier is designed to approximate the input-output relationship of the quadrotor drone. It takes the control signals and the error between the identifier’s output and the actual drone state as inputs, and it outputs an estimate of the Jacobian \(y_u\). The Maxout activation function enhances the network’s capacity to capture nonlinearities by introducing a hidden layer with multiple linear units and selecting the maximum output. For an input vector \(\mathbf{x}\), the output of the Maxout layer is computed as:
$$ z_j = \mathbf{w}_j^T \mathbf{x} + b_j \quad \text{for } j = 1, 2, \ldots, n $$
$$ y_{\text{out}} = \max\{z_1, z_2, \ldots, z_n\} $$
where \(\mathbf{w}_j\) and \(b_j\) are weights and biases, and \(n\) is the number of hidden units. By increasing \(n\), the identifier can approximate complex functions more accurately, akin to using a polygon with many sides to represent a circle. This flexibility allows the identifier to adapt to variations in the quadrotor drone’s dynamics, such as changes in mass or aerodynamic effects. The estimated Jacobian is then used in the weight update rule of the fuzzy neural network controller, enabling real-time adaptation to disturbances and model uncertainties.
The compound controller integrates the PID and fuzzy neural network outputs to generate the final control signal \(u\) for the quadrotor drone’s motors:
$$ u = u_{\text{PID}} + u_{\text{FNN}} $$
This parallel structure ensures that the PID provides immediate stabilization, while the fuzzy neural network gradually fine-tunes the response based on learned patterns. The convergence condition for the neural network incorporates both angle and angular velocity errors, ensuring that adjustments occur only when both metrics are within acceptable bounds, thereby enhancing precision and preventing oscillations.
To validate the effectiveness of our compound controller for quadrotor drones, we conduct extensive simulations comparing it with a conventional PID controller. The simulation environment models a quadrotor drone with parameters typical of small-scale UAVs: mass \(m = 1.2 \, \text{kg}\), moment of inertia components \(J_x = J_y = 0.01 \, \text{kg} \cdot \text{m}^2\), \(J_z = 0.02 \, \text{kg} \cdot \text{m}^2\), thrust coefficient \(k = 1.5 \times 10^{-5} \, \text{N} \cdot \text{s}^2\), drag coefficient \(\lambda = 2.5 \times 10^{-7} \, \text{N} \cdot \text{m} \cdot \text{s}^2\), and arm length \(l = 0.2 \, \text{m}\). We define a mission profile where the quadrotor drone takes off vertically at \(5 \, \text{m/s}\) for 25 seconds, hovers for another 25 seconds, and performs attitude maneuvers: a roll step to \(10^\circ\) at 5 seconds, a pitch step to \(-15^\circ\) at 8 seconds, and a yaw ramp to \(50^\circ\) starting at 15 seconds. The controllers are tasked with tracking these commands while maintaining stability.
Under the conventional PID controller, the quadrotor drone exhibits noticeable coupling effects. For instance, during the pitch command at 8 seconds, the yaw angle deviates temporarily, and the yaw response slows as it approaches the target, indicating poor decoupling. The vertical velocity response shows overshoot during takeoff and transition to hover, with a maximum overshoot of \(-1.323 \, \text{m/s}\) when slowing to zero. These issues highlight the PID’s sensitivity to interactions and its lack of adaptability.
In contrast, our compound controller demonstrates superior performance. The yaw angle follows a near-linear ramp without slowdown, and cross-coupling between axes is minimized. The vertical velocity overshoot is reduced to \(-0.2417 \, \text{m/s}\), a significant improvement of over 80%. This is attributed to the fuzzy neural network’s ability to learn and compensate for nonlinear couplings, while the Maxout identifier accurately estimates system dynamics, enabling precise weight updates. The following table summarizes key performance metrics from the simulations.
| Metric | PID Controller | Compound Controller | Improvement |
|---|---|---|---|
| Yaw tracking error (RMS) | 2.45° | 0.87° | 64.5% |
| Vertical velocity overshoot | -1.323 m/s | -0.242 m/s | 81.7% |
| Roll disturbance rejection* | 3.615° amplitude | 1.238° amplitude | 65.8% |
| Settling time for pitch step | 4.2 s | 2.1 s | 50.0% |
*Disturbance rejection tested with random force interference applied via a pendulum model.
To further assess robustness, we introduce random external disturbances by attaching a simulated pendulum to the quadrotor drone, generating multi-directional forces. Under PID control, the drone experiences significant oscillations, with roll angle deviations up to \(3.615^\circ\) initially and persistent fluctuations of \(0.2693^\circ\) at steady state. Our compound controller drastically reduces these oscillations, limiting initial roll deviations to \(1.238^\circ\) and achieving a 65.8% reduction in steady-state amplitude. This demonstrates the enhanced anti-interference capability of our approach, crucial for real-world operations where wind gusts or payload movements are common.
The adaptive nature of the fuzzy neural network is key to this improvement. As the quadrotor drone encounters disturbances, the network continuously adjusts its weights based on the error signals and the Jacobian estimate from the Maxout identifier. This allows the controller to “learn” the disturbance patterns and counteract them in real-time, without requiring manual tuning. Moreover, the compound structure ensures that the PID handles baseline stabilization, preventing instability during the neural network’s learning phase. Thus, the quadrotor drone achieves a balance between rapid response and long-term adaptability.
In terms of computational efficiency, the compound controller is designed for real-time implementation. The fuzzy neural network involves simple matrix operations, and the Maxout identifier uses efficient forward propagation. For a typical quadrotor drone flight controller with modern processors, the added computational load is manageable, especially given the performance gains. Future work could explore optimization techniques, such as pruning the neural network or using fixed-point arithmetic, to further reduce resource usage for embedded systems.
In conclusion, we have presented a novel compound controller for quadrotor drones that integrates conventional PID control with a fuzzy neural network and a Maxout-based identifier. This design addresses the longstanding challenges of anti-interference and robustness in drone control, leveraging adaptive learning to cope with nonlinearities and uncertainties. Simulations confirm that our controller outperforms traditional PID in tracking accuracy, disturbance rejection, and response smoothness, making it suitable for demanding applications like aerial manipulation or inspection. The use of fuzzy logic provides interpretable rule-based guidance, while the neural network enables continuous improvement, ensuring that the quadrotor drone can operate reliably in dynamic environments. As drone technology advances, such intelligent control systems will be essential for unlocking new capabilities, and our work offers a promising direction for future research and development in autonomous aerial systems.
