# FPGA-based Takagi-Sugeno fuzzy controller for quadrotor UAV stabilization and trajectory tracking

Hocine Khati, Mohamed Amine Nehmar, Arezki Fekik, Mohand Achour

Touat, Hand Talem, Rabah Mellah

► To cite this version:

Hocine Khati, Mohamed Amine Nehmar, Arezki Fekik, Mohand Achour Touat, Hand Talem, et al. FPGA-based Takagi-Sugeno fuzzy controller for quadrotor UAV stabilization and trajectory tracking. Turkish Journal of Electrical Engineering and Computer Sciences, 2025, 33 (6), pp.783-802. 10.55730/1300-0632.4157. hal-05523472

HAL Id: hal-05523472

https://hal.science/hal-05523472v1

Submitted on 23 Feb 2026

HAL is a multi-disciplinary open access
archive for the deposit and dissemination of sci-
entific research documents, whether they are pub-
lished or not. The documents may come from
teaching and research institutions in France or
abroad, or from public or private research centers.

L'archive ouverte pluridisciplinaire HAL, est
destinée au dépôt et à la diffusion de documents
scientifiques de niveau recherche, publiés ou non,
émanant des établissements d'enseignement et de
recherche français ou étrangers, des laboratoires
publics ou privés.

<figure><img src="image_1.png" /></figure>

Distributed under a Creative Commons CC BY 4.0 - Attribution - International License
11-25-2025

# FPGA-based Takagi-Sugeno fuzzy controller for quadrotor UAV stabilization and trajectory tracking

HOCINE KHATI

MOHAMED AMINE NEHMAR

AREZKI FEKIK

MOHAND ACHOUR TOUAT

HAND TALEM

See next page for additional authors

Follow this and additional works at: https://journals.tubitak.gov.tr/elektrik

<figure><img src="image_2.png" /></figure>

Part of the Computer Engineering Commons, Computer Sciences Commons, and the Electrical and Computer Engineering Commons

## Recommended Citation

KHATI, H., NEHMAR, M. A., FEKIK, A., TOUAT, M. A., TALEM, H., & MELLAH, R. (2025). FPGA-based Takagi-Sugeno fuzzy controller for quadrotor UAV stabilization and trajectory tracking. *Turkish Journal of Electrical Engineering and Computer Sciences* 33 (6): 783-802. https://doi.org/10.55730/1300-0632.4157

<figure><img src="image_3.png" /></figure>

This work is licensed under a Creative Commons Attribution 4.0 International License.

This Research Article is brought to you for free and open access by TÜBİTAK Academic Journals. It has been accepted for inclusion in Turkish Journal of Electrical Engineering and Computer Sciences by an authorized editor of TÜBİTAK Academic Journals. For more information, please contact academic/publications@tubitak.gov.tr
# FPGA-based Takagi-Sugeno fuzzy controller for quadrotor UAV stabilization and trajectory tracking

## Authors

HOCINE KHATI, MOHAMED AMINE NEHMAR, AREZKI FEKIK, MOHAND ACHOUR TOUAT, HAND TALEM, and RABAH MELLAH
<figure><img src="image_4.png" /></figure>

# FPGA-based Takagi-Sugeno fuzzy controller for quadrotor UAV stabilization and trajectory tracking

Hocine KHATI<fnref n="1" /> ID, Mohamed Amine NEHMAR<fnref n="2" /> ID, Arezki FEKIK <fnref n="3" />,<fnref n="4" />,* ID,
Mohand Achour TOUAT<fnref n="1" /> ID, Hand TALEM<fnref n="1" /> ID, Rabah MELLAH<fnref n="1" /> ID

Received: 22.07.2025

•

Accepted/Published Online: 04.11.2025

•

Final Version: 25.11.2025

**Abstract:** This study presents the implementation of a fuzzy logic-based control system on a field-programmable gate array (FPGA) for a quadrotor autonomous aerial vehicle (UAV). The objective is to design and integrate six Takagi-Sugeno fuzzy controllers to regulate roll, pitch, and yaw angles, along with longitudinal, latitudinal, and altitude movements, thereby stabilizing the UAV and enabling it to follow a desired trajectory. Due to the computational complexity of the six controllers, achieving the desired performance requires considerable processing time, which can adversely affect the quadrotor's mission. Owing to their high processing power and operating frequency, FPGAs enable the control algorithm to execute at high speed, ensuring enhanced performance and reliability. The controllers were developed in the MATLAB Simulink environment and implemented on a Zedboard development board using the FPGA-in-the-loop (FIL) execution mode. To evaluate the impact of fixed-point arithmetic on accuracy and hardware resource utilization, three FIL implementation cases with varying bit ranges were tested for two different trajectory plans. Finally, the results confirmed the effectiveness of the proposed control approach and design methodology.

**Key words:** Fuzzy logic control, FPGA, HDL coder, quadrotor, Takagi-Sugeno controller, UAV

## 1. Introduction

In recent years, rapid advances in electronics have enabled the development of advanced systems capable of performing complex tasks, sometimes in environments inaccessible to humans, primarily through the use of remote-controlled devices [1]. Among these systems, drones, or unmanned aerial vehicles (UAVs), occupy an important place, with applications ranging from military operations to civilian surveillance [2, 3]. The quadcopter, one of the most widespread types of drones, is characterized by highly nonlinear dynamics due to various effects (aerodynamic, gyroscopic, inertial, friction) [4]. This complexity makes it difficult to develop accurate models for efficient control, particularly in the face of external disturbances. To overcome the limitations of traditional controllers, artificial intelligence techniques have been introduced [5, 6]. Among them, fuzzy logic has proven effective in modeling complex and uncertain behaviors without relying on a precise mathematical model [7–9]. However, its real-time implementation requires high-performance hardware

<figure><img src="image_5.png" /></figure>

<footnote n="1">¹Design and Drive of Production Systems Laboratory, University Mouloud Mammeri of Tizi-Ouzou, Algeria</footnote>

<footnote n="2">²Artificial Vision and Automatic Systems Laboratory, University Mouloud Mammeri of Tizi-Ouzou, Algeria</footnote>

<footnote n="3">³Laboratory of Digital Sciences of Nantes (LS2N),
Joint Research Unit (UMR) of the French National Center for Scientific Research (CNRS),
Nantes University, Centrale Nantes, Nantes, France</footnote>

<footnote n="4">⁴Department of Electrical Engineering, Akli Mohand Oulhadj University of Bouria, Bouira, Algeria</footnote>

<footnote>*Correspondence: Arezki.Fekik@univ-nantes.fr</footnote>
platforms. Advances in semiconductors have enabled the emergence of programmable circuits such as field-programmable gate arrays (FPGAs), suitable for parallel processing and intensive computation [10–12]. The Zedboard, equipped with a Xilinx Zynq-7000 FPGA combining programmable logic and an ARM Cortex-A9 processor, provides an ideal platform for this type of implementation. In this work, a Takagi–Sugeno (T–S) fuzzy controller is designed to stabilize the altitude of a quadcopter and follow different trajectories. This model, more suited to hardware implementation than the Mamdani model, enables fast inference using rules with linear or constant consequences, facilitating their translation into digital logic. Six controllers (three for position and three for orientation angles) are developed in MATLAB-Simulink using HDL Coder-compatible blocks, then deployed on an FPGA using the FPGA-in-the-loop technique. The implementation is based on fixed-point data, optimizing hardware resources and power consumption at the expense of a slight loss of precision. Controller parameters are automatically adjusted using the Simulink Response Optimizer tool. This approach enables efficient integration of intelligent control into a real-time embedded architecture [13–17]. This work presents a complete T–S fuzzy control architecture, experimentally validated on an FPGA, offering a robust, real-time, and low-latency solution for the embedded control of quadcopters.

## 2. Related work

Several studies have explored drone control using fuzzy logic, adaptive techniques, or FPGA implementation. This review highlights the most relevant approaches with respect to our proposal, highlighting their strengths and limitations compared to our Takagi-Sugeno-type fuzzy controller implemented on FPGA. In [18], a fault-tolerant quadcopter system based on Mamdani-type fuzzy logic is presented, targeting obstacle avoidance. While the approach emphasizes robustness in dynamic environments, it remains limited to simulated validations, without a complete FPGA demonstration, and uses fuzzy logic less suited to hardware implementation. The study in [19] combines a deep neural network with reinforcement learning for real-time adaptive control on FPGA. Although highly flexible, this method requires complex offline learning and lacks postdeployment adaptation capabilities, limiting its applicability in evolving environments. In [20], a PID controller is implemented on an FPGA with good real-time performance. However, this approach shows its limitations when faced with the nonlinear dynamics of drones and remains vulnerable to disturbances without extensive hardware validation. The architecture proposed in [21] leverages dynamic partial reconfiguration on an FPGA to adapt control in the event of a fault. While this method improves fault tolerance, it introduces high design complexity and significant latency, making it poorly suited for resource-constrained embedded systems. In [22], a complementary Mahony filter is implemented on an FPGA for low-latency attitude estimation. However, the lack of a magnetometer and adaptive mechanism reduces the system's accuracy and robustness. The approach of [23] proposes a fuzzy controller optimized by a genetic algorithm. Although efficient in simulation, it lacks hardware validation, and the fuzzy gains remain fixed after optimization, limiting their adaptability. The self-adjusting PI fuzzy controller presented in [24] improves the adaptability of conventional regulators. However, it remains confined to simulation and does not address FPGA implementation constraints, particularly in terms of resources. The work in [25] presents a predictive approach based on deep neural network and model predictive control on FPGA for drone tracking. Although promising, it involves high computational costs and model approximation, which can affect real-time accuracy. Although various strategies have been proposed, many of them have recurring limitations: high computational complexity, lack of postdeployment adaptation, validation limited to simulation, and limited consideration of FPGA platform constraints. An adaptive PID controller with a fuzzy compensator was proposed in [26], reducing chattering and improving stability. Although this
approach improves system performance under dynamic conditions, it does not completely eliminate chattering and is not highly scalable. Additionally, the method lacks hardware implementation, which undermines its real-time applicability. In [27], the authors propose an adaptive control strategy for quadrotor drones that combines model reference adaptive control with neural networks to effectively handle external disturbances and system uncertainties. This approach enhances trajectory tracking accuracy and robustness while enabling real-time implementation. However, the method has yet to be experimentally validated on physical hardware, demands substantial computational resources, and its performance is heavily reliant on the quality of the neural network training data. The authors in [28] propose a simple and effective control method for quadrotor altitude regulation by combining a PID controller with integral state feedback. This approach enhances accuracy and robustness against disturbances, achieving fast and stable tracking performance. However, the validation is limited to simulations, and the control strategy addresses only altitude regulation. The work in [29] introduces a controller that integrates fuzzy PID control with recurrent neural networks for quadrotor trajectory tracking. This approach enables the system to emulate fuzzy PID behavior while adaptively handling complex nonlinear dynamics without requiring explicit modeling. Simulation results demonstrate significant improvements in accuracy, robustness, and adaptability compared to traditional PID and fuzzy PID controllers. However, the method has only been validated through simulations and entails increased complexity due to the neural network training process. A fault-tolerant control method for quadrotor drones was proposed in [30], combining a conventional controller with a reinforcement learning agent based on proximal policy optimization (PPO) to compensate for actuator failures. This approach demonstrates strong robustness and flight stability but is highly dependent on the quality of the learning process and remains limited when applied to complex real-world scenarios. Finally, in [31], an enhanced sliding mode control strategy was proposed for attitude and altitude tracking of a quadrotor. The method effectively reduces chattering while maintaining strong robustness in simulation. However, it has not been validated in real-world conditions and remains limited to specific flight axes. Few studies have integrated, within a unified framework, a T-S fuzzy controller, real-time hardware implementation on an FPGA, and experimental validation through FPGA-in-the-loop for quadcopter control.

### 3. UAV dynamic model

The geometry of the quadrotor studied is illustrated in Figure 1.

<figure><img src="image_6.png" /><figcaption>**Figure 1.** Quadrotor geometry. The figure shows the body axes and the four rotors that generate lift and control moments, with rotor speed directly determining the produced forces and torques.</figcaption></figure>
The Euler-Newton method is commonly used for modeling UAVs and is based on the following equations [32]:

$$ 
\left\{ 
\begin{array}{l} 
\dot{\zeta} = v \\ 
m\ddot{\zeta} = F_f + F_t + F_g \\ 
\ddot{R} = RS(\Omega) \\ 
J\dot{\Omega} = M_{gm} + M_f + M_a + M_{gh} 
\end{array} 
\right. 
, \qquad (1) 
$$

where $\zeta$ is the quadrotor position vector: $\zeta = [x \ y \ z]^T$, $m$ is the total quadrotor mass, $\Omega$ is the angular velocity expressed in the fixed reference frame, $R$ is the rotation matrix, and $J$ is the symmetrical inertia matrix, defined by:

$$ J = \begin{bmatrix} I_x & 0 & 0 \\ 0 & I_y & 0 \\ 0 & 0 & I_z \end{bmatrix}. \qquad (2) $$

$S(\Omega)$ is the antisymmetric matrix associated with vector $\Omega = [\Omega_1 \ \Omega_2 \ \Omega_3]^T$, given by:

$$ S(\Omega) = \begin{bmatrix} 0 & -\Omega_3 & \Omega_2 \\ \Omega_3 & 0 & -\Omega_1 \\ -\Omega_2 & \Omega_1 & 0 \end{bmatrix}. \qquad (3) $$

$F_f$ is the total force generated by the quadrotor, given by:

$$ F_f = R \begin{bmatrix} 0 & 0 & \sum_{i=1}^{4} F_i \end{bmatrix}^T. \qquad (4) $$

$F_t$ is the $(x, y, z)$axis drag force given by:

$$ F_t = \begin{bmatrix} -K_{ftx} & 0 & 0 \\ 0 & -K_{fty} & 0 \\ 0 & 0 & -K_{ftz} \end{bmatrix} \dot{\zeta}. \qquad (5) $$

$K_{ftx}$, $K_{fty}$ and $K_{ftz}$ are the translational drag coefficients.

$F_g$ is the gravitational force, given by:

$$ F_g = \begin{bmatrix} 0 \\ 0 \\ -mg \end{bmatrix}. \qquad (6) $$

$M_f$ is the moment caused by the forces of thrust and drag, given by:

$$ M_f = \begin{bmatrix} l(F_4 - F_2) \\ l(F_3 - F_1) \\ d(\omega_1^2 - \omega_2^2 + \omega_3^2 - \omega_4^2) \end{bmatrix}. \qquad (7) $$

$M_a$ is the moment resulting from aerodynamic friction. It is given by:

$$ M_a = \begin{bmatrix} K_{fax} & 0 & 0 \\ 0 & K_{fay} & 0 \\ 0 & 0 & K_{faz} \end{bmatrix} \begin{bmatrix} \Omega_1^2 \\ \Omega_2^2 \\ \Omega_3^2 \end{bmatrix} = \begin{bmatrix} K_{fax} \dot{\varphi} \\ K_{fay} \dot{\theta} \\ K_{faz} \dot{\psi} \end{bmatrix}. \qquad (8) $$

$K_{fax}$, $K_{fay}$ and $K_{faz}$ are the aerodynamic friction coefficients.

### 3.1. Equations of translational motion

According to the Euler-Newton model, we have:

$$ m\ddot{\zeta} = F_f + F_t + F_g. \qquad (9) $$
Replacing each force with its formula, we find:

$$m[\ddot{x} \quad \ddot{y} \quad \ddot{z}]^T = \begin{bmatrix} \cos \varphi \sin \theta \cos \psi + \sin \psi \sin \varphi \\ \cos \varphi \sin \theta \sin \psi - \sin \varphi \cos \psi \\ \cos \varphi \cos \theta \end{bmatrix} \sum_{i=1}^{4} F_i + [-K_{ftx}\dot{x} \quad -K_{fty}\dot{y} \quad -K_{ftz}\dot{z}]^T + \begin{bmatrix} 0 & 0 & -mg \end{bmatrix}^T. \quad (10)$$

Here $\varphi$, $\theta$ and $\psi$ are the angles of rotation for roll, pitch, and yaw, respectively.

We then obtain the differential equations that define translational motion, given as follows:

$$\left\{
\begin{aligned}
\ddot{x} &= \frac{1}{m} (\cos(\varphi) \cdot \sin(\theta) \cos(\psi) + \sin(\psi) \cdot \sin(\varphi)) \sum_{i=1}^{4} F_i - \frac{K_{ftx}}{m} \dot{x} \\
\ddot{y} &= \frac{1}{m} (\cos(\varphi) \cdot \sin(\theta) \sin(\psi) - \sin(\varphi) \cdot \cos(\psi)) \sum_{i=1}^{4} F_i - \frac{K_{fty}}{m} \dot{y} \\
\ddot{z} &= \frac{1}{m} (\cos(\varphi) \cdot \cos(\theta)) \sum_{i=1}^{4} F_i - \frac{K_{ftz}}{m} \dot{z} - g
\end{aligned}
\right.
\quad (11)$$

## 3.2. Equations of rotational motion

The rotation equation is given by:

$$J \dot{\Omega} = -M_{gm} - M_f - M_a + M_{gh}. \quad (12)$$

By replacing each moment with its corresponding formula, we obtain:

$$\begin{bmatrix} I_x & 0 & 0 \\ 0 & I_y & 0 \\ 0 & 0 & I_z \end{bmatrix} \begin{bmatrix} \ddot{\varphi} \\ \dot{\theta} \\ \ddot{\psi} \end{bmatrix} = \begin{bmatrix} J_r \bar{\Omega} \dot{\theta} \\ J_r \bar{\Omega} \dot{\varphi} \\ 0 \end{bmatrix} - \begin{bmatrix} \dot{\varphi} \\ \dot{\theta} \\ \dot{\psi} \end{bmatrix} \wedge \begin{pmatrix} \begin{bmatrix} I_x & 0 & 0 \\ 0 & I_y & 0 \\ 0 & 0 & I_z \end{bmatrix} \begin{bmatrix} \ddot{\varphi} \\ \dot{\theta} \\ \ddot{\psi} \end{bmatrix} \\ - \begin{bmatrix} K_{fax} \dot{\varphi}^2 \\ K_{fay} \dot{\theta}^2 \\ K_{faz} \dot{\psi}^2 \end{bmatrix} + \begin{bmatrix} lb(\omega_1^2 - \omega_2^2) \\ lb(\omega_3^2 - \omega_4^2) \\ d(\omega_1^2 - \omega_2^2 + \omega_3^2 - \omega_4^2) \end{bmatrix} \end{pmatrix}. \quad (13)$$

We then obtain the differential equations that define rotational motion as follows:

$$\left\{
\begin{aligned}
I_x \ddot{\varphi} &= -\dot{\theta} \dot{\psi} (I_z - I_y) - J_r \bar{\Omega} \dot{\theta} - K_{fax} \dot{\varphi}^2 + lb(\omega_4^2 - \omega_2^2) \\
I_y \ddot{\theta} &= \dot{\varphi} \dot{\psi} (I_z - I_x) - J_r \bar{\Omega} \dot{\varphi} - K_{fay} \dot{\theta}^2 + lb(\omega_3^2 - \omega_1^2) \\
I_z \ddot{\psi} &= -\dot{\theta} \dot{\varphi} (I_y - I_x) - K_{faz} \dot{\psi}^2 + d(\omega_1^2 - \omega_2^2 + \omega_3^2 - \omega_4^2)
\end{aligned}
\right.
, \quad (14)$$

where

$$\bar{\Omega}_r = \omega_1 - \omega_2 + \omega_3 - \omega_4$$

The complete dynamic model is therefore as follows:

$$\left\{
\begin{aligned}
\ddot{\varphi} &= \frac{(I_y - I_z)}{I_x} \dot{\theta} \dot{\psi} - \frac{J_r \bar{\Omega}}{I_x} \dot{\theta} - \frac{K_{fax}}{I_x} \dot{\varphi}^2 + \frac{1}{I_x} u_2 \\
\ddot{\theta} &= \frac{(I_z - I_x)}{I_y} \dot{\varphi} \dot{\psi} - \frac{J_r \bar{\Omega}}{I_y} \dot{\theta} - \frac{K_{fay}}{I_y} \dot{\theta}^2 + \frac{1}{I_y} u_3 \\
\ddot{\psi} &= \frac{(I_x - I_y)}{I_z} \dot{\theta} \dot{\varphi} - \frac{K_{faz}}{I_z} \dot{\psi}^2 + \frac{1}{I_z} u_4 \\
\ddot{x} &= -\frac{K_{ftx}}{m} \dot{x} + \frac{1}{m} u_x u_1 \\
\ddot{y} &= -\frac{K_{fty}}{m} \dot{y} + \frac{1}{m} u_y u_1 \\
\ddot{z} &= -\frac{K_{ftz}}{m} \dot{z} - g + \frac{\cos(\varphi) \cos(\theta)}{m} u_1
\end{aligned}
\right.
\quad (15)$$
with

$$ \begin{cases} u_x = \cos(\varphi) \cos(\psi) \sin(\theta) + \sin(\varphi) \sin(\psi) \\ u_y = \cos(\varphi) \sin(\theta) \sin(\psi) + \sin(\varphi) \cos(\psi) \end{cases} \qquad (16) $$

and

$$ \begin{bmatrix} u_1 \\ u_2 \\ u_3 \\ u_4 \end{bmatrix} = \begin{bmatrix} b & b & b & b \\ 0 & -lb & 0 & lb \\ -lb & 0 & lb & 0 \\ d & -d & d & -d \end{bmatrix} \begin{bmatrix} \omega_1^2 \\ \omega_2^2 \\ \omega_3^2 \\ \omega_4^2 \end{bmatrix}. \qquad (17) $$

Fuzzy logic control of the quadrotor involves designing six controllers to generate the motion control laws for longitude $u_x$, latitude $u_y$ and altitude $u_z$, as well as the angles roll $u_\varphi$, pitch $u_\theta$, and yaw $u_\psi$.

## 4. Fuzzy logic control

The goal here is to stabilize the quadrotor at a certain altitude and to force it into a desired trajectory. To achieve this, six fuzzy logic-based controllers are developed to control the movements of longitude ($x$), latitude ($y$), and altitude ($z$), as well as the movements of the angles of roll ($\phi$), pitch ($\theta$), and yaw ($\psi$).

The control method used is to design Takagi-Sugeno controllers with two inputs, $X_1$ and $X_2$, and a single output, $u$.

Let $u_x$, $u_y$, and $u_z$ be the commands for longitude, latitude, and altitude, respectively, and $u_\phi$, $u_\theta$, and $u_\psi$ be the commands for roll, pitch, and yaw angles, respectively.

In the following, we will only develop the controller for the longitudinal movement, and the development is identical for the other movements and angles.

Let $X_1$ be the error between the desired longitudinal movement $x_d$ and the actual longitudinal movement $x$, and $X_2$ its derivative. Thus, $X_1 = e_x = x_d - x$ and $X_2 = \dot{e}_x$. $u$ is the longitude motion command $u_x$.

Three fuzzy sets are defined for the input variables $e_s$ and $\dot{e}_s$, namely $N(\text{Negative})$, $P(\text{Positive})$, and $Z(\text{Zero})$. The membership functions of the inputs $X_1$ and $X_2$ to the fuzzy sets $N$, $Z$, and $P$ are given by (Figure 2):

for $X_i=1,2$:

$$ \mu_N(X_i) = \begin{cases} 1, & X_i < -1 \\ -X_i, & -1 < X_i < 0, \\ 0, & X_i > 0 \end{cases}, \qquad (18) $$

$$ \mu_Z(X_i) = \begin{cases} 0, & X_i < -1 \\ X_i + 1, & -1 < X_i < 0 \\ X_i - 1, & 0 < X_i < 1 \\ 0, & X_i > 1 \end{cases}, \qquad (19) $$

$$ \mu_P(X_i) = \begin{cases} 0, & X_i < 0 \\ X_i, & 0 < X_i < 1 \\ 1, & X_i > 1 \end{cases}. \qquad (20) $$

Three fuzzy sets are also defined for the output $u_x$, named $N(\text{Negative})$, $P(\text{Positive})$, and $Z(\text{Zero})$, whose mathematical equations are as follows:

$$ \mu_N(u_x) = -1, \qquad (21) $$

$$ \mu_Z(u_x) = 0, \qquad (22) $$

$$ \mu_P(u_x) = 1. \qquad (23) $$
<figure><img src="image_7.png" /><figcaption>**Figure 2.** Input membership functions. These indicate the degree of membership of each fuzzy controller's inputs to the fuzzy sets N, Z, and P.</figcaption></figure>

The fuzzy rules of the controller are defined using the input variables $X_1$ and $X_2$ and the output $u_x$ according to their degrees of membership in the sets {$N, Z, P$}. A summary of these rules is shown in Table 1. Each cell corresponds to the controller output $u_x$ for a given combination of $X_1$ and $X_2$.

<table><caption>**Table 1.** Fuzzy rules.</caption><thead><tr><th></th><th>X<sub>1</sub> = N</th><th>X<sub>1</sub> = Z</th><th>X<sub>1</sub> = P</th></tr></thead><tbody><tr><th>X<sub>2</sub> = N</th><td>N</td><td>N</td><td>Z</td></tr><tr><th>X<sub>2</sub> = Z</th><td>N</td><td>Z</td><td>P</td></tr><tr><th>X<sub>2</sub> = P</th><td>Z</td><td>P</td><td>P</td></tr></tbody></table>

There are nine fuzzy rules. Each rule is expressed as follows:

If $X_1$ is $A_1$ and $X_2$ is $A_2$, then $u_x$ is $B$.

Here $A_1$ and $A_2$ belong to the fuzzy sets {$N, Z, P$} associated with the input variables, and $B$ represents the corresponding output value, also defined within the fuzzy sets {$N, Z, P$} assigned to the output.

The final output $u_x$ is computed using a weighted average defuzzification method, which combines the outputs of all active fuzzy rules proportionally to their degrees of activation. This inference mechanism enables a continuous interpolation among the discrete fuzzy outputs, ensuring a smooth, stable, and predictable control response. Additionally, its mathematical simplicity facilitates efficient real-time implementation on FPGA platforms. The expression of $u_x$ is given by:

$$u_x = \frac{\sum_{i=1}^{n} w_i \mu_i(u_x)}{\sum_{i=1}^{n} w_i}, \qquad (24)$$

where $w_i = \mu_i(X_1) \cdot \mu_i(X_2)$, and $n$ is the number of fuzzy rules.

Controller input and output gains are calculated using Simulink's "Response Optimizer" with the "Step Response Envelope" feature, using gradient descent as the optimization method.

# 5. FPGA in-the-loop implementation using HDL coder

## 5.1. FPGA Zedboard platform

The ZedBoard (Figure 3) is a Xilinx development platform based on the AP SoC architecture, combining a Xilinx 7-series FPGA (XC7Z020-CLG484) and a dual-core ARM Cortex-A9 processor. It has several digital, audio, and video I/O interfaces. The FPGA runs at 100 MHz, and the ARM cores at 33.33 MHz.
<figure><img src="image_8.png" /><figcaption>**Figure 3.** FPGA ZedBoard development board. The core of the platform is a system-on-chip integrating a Zynq-7000 FPGA and a dual-core ARM Cortex-A9 processor.</figcaption></figure>

## 5.2. HDL coder

HDL Coder allows to automatically generate VHDL/Verilog code from Simulink, simplifying deployment on FPGA without low-level programming [33]. FPGA-in-the-loop (FIL) mode via HDL Workflow Advisor allows to test HDL code on the ZedBoard, connected via JTAG, where the controllers run on the FPGA, and the drone model in Simulink (Figure 4).

<figure><img src="image_9.png" /><figcaption>**Figure 4.** FPGA in-the loop diagram. The six controllers are executed on the ZedBoard, while the remaining parts of the model run within Simulink. Control and error signals are exchanged between the FPGA board and MATLAB-Simulink through a JTAG connection.</figcaption></figure>

## 5.3. Model preparation for implementation

The FPGA implementation favors fixed-point to reduce resource consumption, a key criterion in embedded systems. On the Zedboard, only single-precision floating-point (32-bit) is supported in Simulink, but it consumes too many LUTs, DSP blocks, and memory, especially for six fuzzy controllers. Floating-point increases latency and hardware complexity, while fixed-point offers a good compromise between precision and efficiency, without
requiring IP cores or licenses. In Simulink, a fixed number is defined by $a = fixdt(S, WL, FL)$, where S indicates the sign (signed), WL is the total length, and FL is the fractional length. The initial 64-bit fuzzy models were converted with the Fixed-Point Tool, which automatically adjusts the accuracy (Figure 5). Details are given in Table 2.

<figure><img src="image_10.png" /><figcaption>**Figure 5.** Fixed Point-Tool interface. The tool enables the collection of simulation ranges in double-precision floating-point, automatically proposes fixed-point data types based on user-defined settings, and applies them to the target model.</figcaption></figure>

<table><caption>**Table 2.** Implementation details.</caption><tr><td>Designation</td><td>T-S fuzzy logic controller</td></tr><tr><td>Sampling time</td><td>0.001 s</td></tr><tr><td>Data type</td><td>Fixed point</td></tr><tr><td>Precision</td><td>12, 16, and 19 bits</td></tr><tr><td>Arithmetic type</td><td>Signed</td></tr></table>

Table 3 summarizes the resources consumed by the Zedboard FPGA in the three FIL implementation cases (12, 16, and 19 bits). As can be seen here, resource consumption is considerably lower in the case of a 12-bit implementation. Here, it consumes 12.02% LUTs (look up table), 0.78% LUTRAMs (memory LUTs), 1.39% FFs (flip-flops), 2.50% BRAMs (block RAMs), 2.73% DSPs (digital signal processors), 9.38% BUFGs (global buffers), and 25.00% MMCMs (mixed-mode clock managers). Consumption rates increase as the number of bits increases, as can be seen in the case of 16-bit and 19-bit implementations. For example, the FPGA consumed 12.02% of LUTs in the 12-bit case, 17.04% in the 16-bit case, and 21.25% in the 19-bit case. Although consumption rates increase with the number of bits used, the results remain satisfactory for all implementations considered.

Table 4 shows the ratio obtained by Xilinx Vivado on the execution times elapsed during the three implementation cases. As can be seen, the execution time of all the control systems in the different cases is well below the sampling time (0.001s), demonstrating the efficiency of the implementation. This time depends directly on the algorithm's computational complexity and the number of bits used. As can be seen, the execution frequency decreases as the bit range increases, but the results are satisfactory for all implementation cases.

The FIL block of the six fuzzy controllers is generated using HDL Coder's Workflow Advisor. This block executes the VHDL code for the controllers on the Zedboard and generates the control signals according to the
<table><caption>**Table 3.** FPGA resource consumption.</caption><thead><tr><th>Resource</th><th>Available</th><th>Utilization (12 bits)</th><th>Utilization (16 bits)</th><th>Utilization (19 bits)</th></tr></thead><tbody><tr><td>LUT</td><td>53,200</td><td>6397 (12.02%)</td><td>9064 (17.04%)</td><td>11,304 (21.25%)</td></tr><tr><td>LUTRAM</td><td>17,400</td><td>135 (0.78%)</td><td>135 (0.78%)</td><td>199 (1.14%)</td></tr><tr><td>FF</td><td>106,400</td><td>1481 (1.39%)</td><td>1610 (1.51%)</td><td>1874 (1.76%)</td></tr><tr><td>BRAM</td><td>140</td><td>3.5 (2.50%)</td><td>4 (2.86%)</td><td>4.5 (3.21%)</td></tr><tr><td>DSP</td><td>220</td><td>6 (2.73%)</td><td>6 (2.73%)</td><td>24 (10.91%)</td></tr><tr><td>BUFG</td><td>32</td><td>3 (9.38%)</td><td>3 (9.38%)</td><td>3 (9.38%)</td></tr><tr><td>MMCM</td><td>4</td><td>1 (25.00%)</td><td>1 (25.00%)</td><td>1 (25.00%)</td></tr></tbody></table>

<table><caption>**Table 4.** Timing report generated with Vivado.</caption><thead><tr><th>Fixed-point length</th><th>12 bits</th><th>16 bits</th><th>19 bits</th></tr></thead><tbody><tr><th>Propagation (ns)</th><td>68.143</td><td>87.722</td><td>103.28</td></tr><tr><th>Maximum frequency (MHz)</th><td>14.70</td><td>11.39</td><td>9.70</td></tr></tbody></table>

received inputs and sends them to Simulink via the JTAG connection. The block diagram of the fuzzy logic control in FIL execution mode in Simulink is shown in Figure 6.

<figure><img src="image_11.png" /><figcaption>**Figure 6.** Block diagram of fuzzy logic control in FIL execution mode on Simulink. The FIL block of the fuzzy logic controller, generated using MATLAB-Simulink and Vivado, is integrated into the control diagram for embedded execution on the ZedBoard.</figcaption></figure>

The block diagram of the longitude controller obtained with the Vivado software is shown in Figure 7. Due to the computational complexity of the six implemented controllers, complete fuzzy logic control of the quadrotor using Vivado requires many signals, blocks, and links. It should contain at least six times the number of elements a single controller can contain.

## 6. FIL simulation results

Two tests were conducted to demonstrate the effectiveness of the proposed fuzzy logic controller. In the first test, the desired input is a square trajectory, while in the second test, the trajectory is circular. The parameters of the quadrotor are outlined in Table 5.

### 6.1. Test 1

FIL simulation results for a square trajectory are shown in Figures 8–12.

Figures 8 and 9 show good tracking of positions (x, y, z) and angles (φ, θ, ψ). A slight loss of precision appears in 12 bits for φ and θ due to noisy commands near zero (Figure 10). Peaks at times t = 20, 40, 60, 80 s are observed for the 16 and 19 bit versions, due to rapid changes in angles and displacements, but the controllers adapt to them. The trajectory is perfectly tracked (Figure 12).
<figure><img src="image_12.png" /><figcaption>**Figure 7.** Block diagram of the longitude controller on the Vivado software. Logic blocks, functions, and arithmetic operators are integrated and interconnected within the diagram.</figcaption></figure>

<table><caption>**Table 5.** Quadrotor parameters.</caption><tr><td>$I_x$</td><td>$7.5 \times 10^{-3}$ (kg m<sup>2</sup>)</td></tr><tr><td>$I_y$</td><td>$7.5 \times 10^{-3}$ (kg m<sup>2</sup>)</td></tr><tr><td>$I_z$</td><td>$1.3 \times 10^{-2}$ (kg m<sup>2</sup>)</td></tr><tr><td>$J_r$</td><td>$6.5 \times 10^{-5}$ (kg m<sup>2</sup>)</td></tr><tr><td>$k_{fax}, k_{ftx}$</td><td>$5.56 \times 10^{-4}$ (N/rad s<sup>-1</sup>)</td></tr><tr><td>$k_{fay}, k_{fty}$</td><td>$5.56 \times 10^{-4}$ (N/rad s<sup>-1</sup>)</td></tr><tr><td>$k_{faz}, k_{ftz}$</td><td>$6.354 \times 10^{-4}$ (N/rad s<sup>-1</sup>)</td></tr><tr><td>$b$</td><td>$3.13 \times 10^{-5}$ (N/rad s<sup>-1</sup>)</td></tr><tr><td>$d$</td><td>$7.5 \times 10^{-7}$ (N m/rad s<sup>-1</sup>)</td></tr><tr><td>$l$</td><td>$0.25$ (m)</td></tr><tr><td>$m$</td><td>$0.65$ (kg)</td></tr><tr><td>$g$</td><td>$9.81$ (m s<sup>-2</sup>)</td></tr></table>

<figure><img src="image_13.png" /><figcaption>**Figure 8.** Tracking rotation angles. Controllers using 16- and 19-bit representations achieve improved tracking performance, whereas the 12-bit configuration results in noticeable chattering.</figcaption></figure>
<figure><img src="image_14.png" /><figcaption>**Figure 9.** Movement tracking. Accurate tracking of latitude and longitude is achieved with the 16- and 19-bit implementations, while the 12-bit version shows significant deviation from the reference.</figcaption></figure>

<figure><img src="image_15.png" /><figcaption>**Figure 10.** Angle applied forces. Chattering is observed in the roll and pitch control signals with 12-bit representation, caused by a loss of computational precision.</figcaption></figure>

<figure><img src="image_16.png" /><figcaption>**Figure 11.** Movement applied forces. The control signals remain stable and smooth across all three implementation scenarios.</figcaption></figure>
<figure><img src="image_17.png" /></figure>

**Figure 12.** Trajectory tracking. High-precision tracking is maintained by fuzzy logic controllers under a range of implementation conditions.

## 6.2. Test 2

The FIL simulation results obtained for a circular trajectory are shown Figures 13–17.

<figure><img src="image_18.png" /></figure>

**Figure 13.** Tracking rotation angles. Improved tracking performance is observed with 16- and 19-bit representations, whereas the 12-bit configuration leads to pronounced chattering due to reduced resolution.

<figure><img src="image_19.png" /></figure>

**Figure 14.** Movement tracking. All three implementations ensure accurate tracking of latitude, longitude, and altitude.
<figure><img src="image_20.png" /><figcaption>**Figure 15.** Angle applied forces. Control signals for Roll and Pitch angles exhibit chattering with the 12-bit representation, due to reduced computational precision. Additionally, slight chattering is observed in the yaw control signal.</figcaption></figure>

<figure><img src="image_21.png" /><figcaption>**Figure 16.** Movement applied forces. The control signals for latitude and longitude display chattering when using the 12-bit implementation, whereas the other configurations demonstrate satisfactory performance.</figcaption></figure>

<figure><img src="image_22.png" /><figcaption>**Figure 17.** Trajectory tracking. Fuzzy logic controllers ensure precise tracking performance under diverse implementation configurations.</figcaption></figure>

In this second test, the trajectory varies continuously, making the comparison less straightforward. Figures 13 and 14 show good tracking of x, y, z, and psi, despite a loss of precision for phi and theta, especially
in 12-bit, with frames at t=20s caused by rapid transitions. Noise appears in the commands (Figures 15 and 16) due to the precision limitations of the 12-bit fixed-point format. Nevertheless, the fuzzy controllers scale well, especially in 16 and 19 bits, ensuring excellent tracking (Figure 17).

The RMSEs (Table 6) confirm these results: errors on x and y are lower in 12-bit, but angular errors are higher. In 16 or 19 bits, the precision increased, confirming that 16 bits offers the best compromise between precision, resources (Table 3), and execution time (Table 4).

<table><caption>**Table 6.** RMSE obtained for the different implementations for a squared trajectory.</caption><thead><tr><th>Fixed-point length</th><th>12 bits</th><th>16 bits</th><th>19 bits</th></tr></thead><tbody><tr><td>Longitude x (m)</td><td>0.4886</td><td>0.4893</td><td>0.4895</td></tr><tr><td>Latitude y (m)</td><td>0.4691</td><td>0.4695</td><td>0.4694</td></tr><tr><td>Altitude z (m)</td><td>0.0404</td><td>0.0425</td><td>0.0426</td></tr><tr><td>Roll φ (rad)</td><td>0.2020</td><td>0.0139</td><td>0.0138</td></tr><tr><td>Pitch θ (rad)</td><td>0.0231</td><td>0.0152</td><td>0.0151</td></tr><tr><td>Yaw ψ (rad)</td><td>1.1173 × 10<sup>-4</sup></td><td>4.6145 × 10<sup>-5</sup></td><td>4.7436 × 10<sup>-5</sup></td></tr></tbody></table>

The results confirm the accuracy and efficiency of the FIL implementation of the algorithm on the Zedboard FPGA via HDL Coder. The quadcopter remained stable and followed all trajectories, demonstrating the reliability of Simulink-Zedboard fixed-point communication and the adaptability of well-designed fuzzy controllers. The FPGA's parallel processing and high sampling rate enabled rapid convergence.

However, the Zedboard only supports single-floating-point (32-bit) or fixed-point. For complex algorithms like this one (six fuzzy controllers), fixed-point (12, 16, 19 bits) is preferable to avoid hardware overhead, at the cost of a slight loss of precision (especially at 12 bits). The 16-bit implementation offers the best compromise between precision (Table 6), resources (Table 3), and execution time (Table 4), as shown in Figures 12 and 17.

### 6.3. Test 3

To evaluate the performance of the proposed fuzzy logic controller (FLC), a comparative analysis was conducted against a conventional PID controller (PIDC), extending the methodology presented in [20]. The FL controller was implemented using 16-bit fixed-point arithmetic, and tested on both square and circular trajectory tracking tasks. The obtained results are illustrated in Figures 18 and 19.

<figure><img src="image_23.png" /><figcaption>**Figure 18.** Square trajectory tracking using FL and PID controllers. The desired trajectory is tracked more accurately by fuzzy logic controllers, in contrast to PID controllers, which display significant deviations.</figcaption></figure>
<figure><img src="image_24.png" /><figcaption>**Figure 19.** Circular trajectory tracking using FL and PID controllers. Significant tracking errors are observed with PID controllers, in contrast to fuzzy logic controllers that maintain precise trajectory tracking.</figcaption></figure>

Table 7 summarizes the FPGA resource utilization associated with the implementation of the PID controllers, Table 8 reports the RMSE values obtained for both PID and fuzzy logic controllers across all considered trajectories, and Table 9 presents the timing analysis results for the PID controller, as generated by Vivado.

<table><caption>**Table 7.** FPGA resource consumption with PID controllers.</caption><thead><tr><td>Resource</td><td>Utilization</td></tr></thead><tbody><tr><td>LUT</td><td>1266 (2.38%)</td></tr><tr><td>LUTRAM</td><td>7 (0.04%)</td></tr><tr><td>FF</td><td>1309 (1.23%)</td></tr><tr><td>BRAM</td><td>5.50 (3.93%)</td></tr><tr><td>DSP</td><td>17 (7.73%)</td></tr><tr><td>BUFG</td><td>3 (9.38%)</td></tr><tr><td>MMCM</td><td>1 (25.00%)</td></tr></tbody></table>

<table><caption>**Table 8.** Timing report generated with Vivado for PID control implementation.</caption><tr><td>Propagation (ns)</td><td>14.147</td></tr><tr><td>Maximum frequency (MHz)</td><td>70.70</td></tr></table>

<table><caption>**Table 9.** RMSE obtained with PIDC and FLC for both trajectories.</caption><thead><tr><td>RMSE</td><td>Square trajectory</td><td>Circular trajectory</td></tr></thead><tbody><tr><td>PIDC</td><td>0.8100 (m)</td><td>0.3718 (m)</td></tr><tr><td>FLC</td><td>0.6795 (m)</td><td>0.0574 (m)</td></tr></tbody></table>

As shown in Figure 18, fuzzy logic control achieves highly accurate tracking of the square trajectory, whereas the PID control exhibits a significant tracking error. A similar response is observed for the circular trajectory (Figure 19), where the FLC maintains precise tracking, while the PIDC produces considerable deviations. These performance differences are reflected in the RMSE values summarized in Table 9, with consistently lower error records under FLC. The inferior performance of the PID control can be attributed to its limited ability to adapt to dynamic system variations and handle nonlinearities during reference transitions.

In terms of hardware implementation, the fuzzy logic control consumes a higher amount of specific FPGA resources compared to the PID (LUT, LUTRAM, and FF), as indicated in Tables 7 and 3. Conversely, the PID
control benefits from lower latency (Tables 8 and 4), which is mainly due to its simpler structure and reduced reliance on arithmetic operations. Nonetheless, the FLC delivers superior performance in trajectory tracking, system stability, and responsiveness. Its adaptive behavior allows it to effectively manage dynamic changes in the system and maintain accurate, stable control across both trajectory types.

Table 10 provides a comparative analysis of various control strategies for UAVs implemented on FPGA platforms. These approaches differ significantly in the nature of the controlled variables, the adopted control architectures, the computational complexity, and the hardware resource requirements.

<table><caption>**Table 10.** FPGA-based control methods for UAVs.</caption><thead><tr><td>Reference</td><td>Control method</td><td>Controlled variables</td><td>Control structure</td><td>Accuracy &amp; stability</td><td>Computational complexity</td><td>Hardware implementation</td><td>Resource utilization</td></tr></thead><tbody><tr><td>[19]</td><td>Neural thrust control implemented on FPGA</td><td>Thrust control</td><td>Single controller</td><td>Good accuracy and fast response in real-time</td><td>Medium: optimized FPGA design</td><td>Artix-7 FPGA</td><td>Moderate logic and BRAM usage; LUT utilization acceptable</td></tr><tr><td>[20]</td><td>PID control implemented on FPGA</td><td>Attitude + altitude (Roll, Pitch, Yaw)</td><td>Multiloop independent control (1 PID per variable)</td><td>Good real-time stability and accuracy</td><td>Medium: hardware optimized</td><td>Zybo Zynq-7000 FPGA board</td><td>Low to moderate: efficient resource use due to simple logic</td></tr><tr><td>[21]</td><td>Dynamic partial reconfigurable FPGA-based fault-resilient control</td><td>Position + attitude</td><td>Adaptive fault-tolerant control loops</td><td>Robust to actuator faults and disturbances</td><td>Medium to high: due to reconfiguration overhead</td><td>Zynq Ultrascale + FPGA</td><td>High: due to partial reconfiguration</td></tr><tr><td>[34]</td><td>FPGA-based intelligent real-time autonomous control platform</td><td>Full UAV state (position, attitude)</td><td>Multimodule architecture</td><td>Reliable real-time operation</td><td>High: complex autonomous tasks</td><td>Zynq UltraScale + MPSoC Ultra96-V2</td><td>High resource footprint due to platform complexity</td></tr><tr><td>[35]</td><td>Fault-tolerant control integrating nonlinear disturbance observer-based sliding mode control and integral back-stepping on FPGA</td><td>Position + attitude</td><td>Multilayer fault-tolerant control</td><td>Good robustness and stability validated on hardware</td><td>High: complex control + observer</td><td>Nexys A7 FPGA board</td><td>High: due to multilevel structure + observer</td></tr><tr><td>This work</td><td>Fuzzy logic control implemented on FPGA</td><td>Full trajectory: position + orientation</td><td>Multiloop independent control: 1 fuzzy controller per variable</td><td>Good real-time stability and accuracy</td><td>Low to medium: efficient hardware implementation</td><td>ZedBoard Zynq-7000 FPGA board</td><td>Low: efficient logic usage</td></tr></tbody></table>

Some methods, such as the approach proposed by [19], focus exclusively on thrust regulation using neural networks. While this enables rapid response times, it restricts the control scope to a single actuation axis. More comprehensive strategies, such as those developed by [34] and [21], target full-state or fault-resilient control. However, these approaches involve high architectural complexity and considerable hardware overhead, primarily due to multimodule designs or dynamic partial reconfiguration.

The work in [35] integrates advanced control techniques, including sliding mode control, nonlinear disturbance observers, and integral backstepping. This offers strong resilience to system faults, albeit at the cost of high algorithmic and computational complexity. In contrast, [20] adopts a classic PID-based approach, controlling only altitude and angles (roll, pitch, and yaw). This method has enabled a satisfactory compromise between real-time performance and ease of implementation, with low use of hardware resources.

The method proposed in this work distinguishes itself on several technical fronts:

* It enables full six-axis trajectory control, managing both the translational motions (x, y, z) and rotational orientations (roll, pitch, yaw) of the drone. This makes it one of the most complete and versatile solutions among the methods compared.

* It employs a multiloop control architecture, where each variable is independently managed by a dedicated fuzzy logic controller. This modular setup enhances the system's adaptability and robustness.
* From a computational standpoint, fuzzy logic offers a flexible and efficient way to address system non-linearities, avoiding the heavy processing typically associated with neural networks or model predictive control.

* Due to its resource-efficient hardware implementation leveraging fixed-point arithmetic and optimized FPGA logic utilization, the proposed solution maintains low resource consumption on the ZedBoard Zynq-7000, making it particularly suitable for real-time, embedded UAV applications.

## 7. Conclusion

This work demonstrated the effectiveness of applying the Takagi-Sugeno fuzzy control method to a UAV quadrotor using FPGAs for real-time processing. The proposed control implementation on the Zedboard FPGA is based on fixed-point data type and aims to minimize hardware resource consumption. This study emphasizes the trade-off between accuracy and resource consumption. This approach achieved exceptional performance in terms of speed, stability, and accuracy in trajectory tracking while optimizing hardware resource usage through conversion to a fixed-point model. Implementing the method on the Zedboard FPGA platform ensured high computing performance and enhanced reliability, which is essential for real-time applications.

The results underscore the relevance of this methodology for controlling complex UAV systems and offer a robust, scalable solution for future applications. Harnessing the power of FPGAs represents a significant advance in the field of embedded control and could be extended to other autonomous systems requiring the fast and accurate management of dynamic variables.

As part of future work, the proposed control strategy is intended to be deployed and tested on a real quadcopter under real flight conditions, with the objective of validating the results obtained through the FIL simulations. This experimental phase will also allow us to assess the practical limitations of the method when operating in the presence of real-world sensors and actuators.

## Author contributions

H. Khati: Conceptualization, methodology, software, validation, visualization, writing the original draft.

MA. Nehmar: Investigation, software, visualization.

A. FEKIK: Methodology, writing the original draft, writing-review & editing.

MA. Touat: Methodology, resources, visualization.

H. Talem: Conceptualization, resources, software, validation.

R. Mellah: Investigation, visualization, writing-review & editing.

## References

[1] Sharma N, Pandey JK, Mondal S. A review of mobile robots: applications and future prospect. International Journal of Precision Engineering and Manufacturing 2023; 24 (9): 1695-1706. https://doi.org/10.1007/s12541-023-00876-7

[2] Yang T, Li P, Zhang H, Li J, Li Z. Monocular vision SLAM-based UAV autonomous landing in emergencies and unknown environments. Electronics 2018; 7 (5): 73. https://doi.org/10.3390/electronics7050073

[3] Adepoju O, Aigbavboa C, Nwulu N, Onyia M, Adepoju O. Drone/unmanned aerial vehicles (UAVs) technology. In: Re-skilling Human Resources for Construction 4.0: Implications for Industry, Academia and Government. Springer; 2022. p. 65-89. https://doi.org/10.1007/978-3-030-85973-2_4

[4] Bouabdallah S. Design and control of quadrotors with application to autonomous flying. PhD thesis, EPFL; 2007. https://doi.org/10.5075/epfl-thesis-3727
[5] Rodd MG, Suski GJ. Artificial Intelligence in Real-Time Control 1991: Proceedings of the 3rd IFAC Workshop, California, USA, 23-25 September 1991. Pergamon; 2014.

[6] Chakir A, Andry JF, Ullah A, Bansal R, Ghazouani M. Engineering Applications of Artificial Intelligence. Springer Nature Switzerland; 2024. https://doi.org/10.1007/978-3-031-50300-9

[7] Zadeh LA, Klir GJ, Yuan B. Fuzzy sets, fuzzy logic, and fuzzy systems: selected papers. World Scientific; 1996; vol. 6. https://doi.org/10.1142/2895

[8] Siddique N. A Hybrid Approach Based on Fuzzy Logic, Neural Networks and Genetic Algorithms. Switzerland: Springer International Publishing; 2014. https://doi.org/10.1007/978-3-319-02135-5

[9] Mellah R, Guermah S, Toumi R. Adaptive control of bilateral teleoperation system with compensatory neural-fuzzy controllers. International Journal of Control, Automation and Systems 2017; 15: 1949-1959. Springer. https://doi.org/10.1007/s12555-015-0309-3

[10] Bailey DG. Design for Embedded Image Processing on FPGAs. John Wiley & Sons; 2023.

[11] Athanas P, Pnevmatikatos D, Sklavos N. Embedded Systems Design with FPGAs. Springer New York; 2012. https://doi.org/10.1007/978-1-4614-1362-2

[12] Dirik M, Kocamaz AF, Donmez E. Implementation of fuzzy controller for mobile robot navigation on NI's embedded-FPGA robotic platform. Computer Science 2019; 4(2): 80-87.

[13] Khati H, Mellah R, Talem H. Neuro-fuzzy control of a position-position teleoperation system using FPGA. In: 2019 24th International Conference on Methods and Models in Automation and Robotics (MMAR); 2019. p. 64-69. IEEE. https://doi.org/10.1109/MMAR.2019.8864681

[14] Khati H, Talem H, Mellah R, Bilek A. Neuro-fuzzy control of bilateral teleoperation system using FPGA. Iranian Journal of Fuzzy Systems 2019;16(6):17-32. University of Sistan and Baluchestan. https://doi.org/10.22111/ijfs.2019.5016

[15] Fekik A, Khati H, Azar AT, Hamida ML, Denoun H et al. FPGA in the loop implementation of the PUMA 560 robot based on backstepping control. IET Control Theory & Applications 2024;18(15):1877-1891. Wiley Online Library. https://doi.org/10.1049/cth2.12589

[16] Fekik A, Khati H, Azar AT, Hamida ML, Denoun H et al. FPGA-based performance evaluation of backstepping control and computed torque control for industrial robots. International Journal of Automation and Control 2025;19 (1):101-132. Inderscience Publishers (IEL). https://doi.org/10.1504/IJAAC.2025.143001

[17] Achour Touat M, Khati H, Fekik A, Taher Azar A, Talem H et al. FPGA design and implementation of fuzzy learning control: Application on DC motor position control. An International Journal of Optimization and Control: Theories & Applications 2025;0(0):025070023. https://doi.org/10.36922/IJOCTA025070023

[18] Abouelghit FA, ElSayed H, Alkady GI, Amer HH, Adly I. FPGA-based fault-tolerant quadcopter with Fuzzy obstacle avoidance. In: 2019 8th Mediterranean Conference on Embedded Computing (MECO); 2019. p. 1-4. IEEE. https://doi.org/10.1109/MECO.2019.8760049

[19] Azem S, Scheunert D, Li M, Gehrunger J, Cui K et al. FPGA-Based Neural Thrust Controller for UAVs. arXiv preprint arXiv:2403.18703; 2024. https://doi.org/10.48550/arXiv.2403.18703

[20] Khati H, Fekik A, Azar AT, Nehmar MA, Ahmed S et al. Optimizing UAV stability and control with FPGA-Based PID control system design. In: 2024 International Conference on Control, Automation and Diagnosis (ICCAD); 2024. p. 1-6. IEEE. https://doi.org/10.1109/ICCAD60883.2024.10553796

[21] Bhat H, Chokkadi S, Shenoy S. Optimal fault resilient autonomous quadcopter control based on dynamic partial reconfigurable FPGA. Cogent Engineering 2023;10 (2):2276503. Taylor & Francis. https://doi.org/10.1080/23311916.2023.2276503
[22] Zhu Y, Liu J, Yu R, Mu Z, Huang L et al. Attitude solving algorithm and FPGA implementation of four-rotor UAV based on improved mahony complementary filter. Sensors 2022;22 (17):6411. MDPI.
https://doi.org/10.3390/s22176411

[23] Rodríguez-Abreo O, Rodríguez-Reséndiz J, García-Cerezo A, García-Martínez JR. Fuzzy logic controller for UAV with gains optimized via genetic algorithm. Heliyon 2024; 10 (4). Elsevier.
https://doi.org/10.1016/j.heliyon.2024.e26363

[24] Fekik A, Azar AT, Hamida ML, Denoun H, Mohandsaidi S et al. Modeling and Simulation of Quadcopter Using Self-tuning Fuzzy-PI Controller. In: Mobile Robot: Motion Control and Path Planning; 2023. p. 231-251. Springer.
https://doi.org/10.1007/978-3-031-26564-8_8

[25] Dong F, Li X, You K, Song S. Standoff tracking using DNN-based MPC with implementation on FPGA. IEEE Transactions on Control Systems Technology 2023;31 (5): 1998-2010. IEEE. https://doi.org/10.1109/TCST.2023.3279115

[26] Noordin A, Mohd Basri MA, Mohamed Z. Real-time implementation of an adaptive pid controller for the quadrotor mav embedded flight control system. Aerospace 2023;10 (1):59. MDPI. https://doi.org/10.3390/aerospace10010059

[27] Madebo MM, Abdissa CM, Lemma LN, Negash DS. Robust tracking control for quadrotor UAV with external disturbances and uncertainties using neural network based MRAC. IEEE Access 2024, 12, 36183-36201.
https://doi.org/10.1109/ACCESS.2024.3374894

[28] Ma'arif A, Suwarno I, Nur'aini E, Raharja NM. Altitude control of UAV quadrotor using PID and integral state feedback. In: BIO Web of Conferences 2023, 65, 07011, EDP Sciences. https://doi.org/10.1051/bioconf/20236507011

[29] Madebo NW, Abdissa CM, Lemma LN. Enhanced trajectory control of quadrotor UAV using fuzzy PID based recurrent neural network controller. IEEE Access 2024. https://doi.org/10.1109/ACCESS.2024.3516494

[30] Liu X, Yuan Z, Gao Z, Zhang W. Reinforcement learning-based fault-tolerant control for quadrotor UAVs under actuator fault. IEEE Transactions on Industrial Informatics 2024. https://doi.org/10.1109/TII.2024.3438241

[31] Baek J, Kang M. A synthesized sliding-mode control for attitude trajectory tracking of quadrotor UAV systems. IEEE/ASME Transactions On Mechatronics 2023; 28 (4): 2189-2199.
https://doi.org/10.1109/TMECH.2022.3230755

[32] Bouadi H, Bouchoucha M, Tadjine M. Modelling and stabilizing control laws design based on backstepping for an UAV type-quadrotor. IFAC Proceedings Volumes 2007;40 (15):245-250. Elsevier. https://doi.org/10.3182/20070903-3-FR-2921.00043

[33] Crockett LH, Elliot RA, Enderwitz MA, Stewart RW. The Zynq book: embedded processing with the ARM Cortex-A9 on the Xilinx Zynq-7000 all programmable SoC. Strathclyde Academic Media; 2014.

[34] Kövari BB, Ebeid E. MPDrone: FPGA-based platform for intelligent real-time autonomous drone operations. In: 2021 IEEE international symposium on safety, security, and rescue robotics (SSRR), 2021; 71-76. IEEE.
https://doi.org/10.1109/SSRR53300.2021.9597857

[35] Abdullah M, Zulfiqar A, Arman JH, Hassan HW, Qureshi R. Fault tolerant control model for a quadcopter based on the integration of nonlinear disturbance observer-based sliding mode control and integral back-stepping with FPGA validations. 2025. https://doi.org/10.20944/preprints202507.1442.v1