In the field of unmanned aerial vehicles (UAVs), the quadrotor drone has emerged as a pivotal platform due to its agility, vertical take-off and landing capabilities, and applicability in diverse scenarios such as surveillance, delivery, and inspection. However, the accurate modeling of a quadrotor drone remains a significant challenge owing to its inherent complexity: it is a highly coupled, nonlinear, multi-input multi-output (MIMO) system with high-order dynamics. Particularly during low-speed flight or hovering phases, flight data often exhibit low signal-to-noise ratios, making traditional time-domain identification methods less effective. Frequency-domain identification techniques offer a robust alternative, as they can provide unbiased frequency response estimates even in the presence of process and measurement noise, and generally yield higher computational efficiency. This article presents an improved frequency-domain parameter identification method for quadrotor drones, leveraging composite-window processing and a pattern search algorithm known as K-means clustering to enhance accuracy and convergence speed. We will derive the system model, detail the identification methodology, and validate the approach through experimental results, emphasizing the balance between precision and complexity.
The quadrotor drone operates through the coordinated thrust of four rotors arranged in a cross configuration. To establish a mathematical model, we define two coordinate systems: the inertial frame \(O_I X_I Y_I Z_I\) and the body frame \(O X Y Z\) attached to the drone. Let \(\phi\), \(\theta\), and \(\psi\) denote the roll, pitch, and yaw angles, respectively. The control inputs are the voltages \(U_i\) (for \(i=1,2,3,4\)) applied to the front, rear, left, and right motors. Key physical parameters include the moments of inertia \(J_X\), \(J_Y\), \(J_Z\) about the body axes, the motor thrust coefficient \(K_f\), the motor torque coefficient \(K_t\), and the arm length \(L\) from the center of mass to each rotor. Under hovering conditions, the dynamics can be linearized around an equilibrium point, leading to a state-space representation. The state vector is chosen as \(\mathbf{x} = [\phi, \theta, \psi, \dot{\phi}, \dot{\theta}, \dot{\psi}]^T\), the control vector as \(\mathbf{u} = [u_1, u_2, u_3, u_4]^T\), and the output vector as \(\mathbf{y} = [\phi, \theta, \psi]^T\). The linearized state-space model is given by:
$$
\dot{\mathbf{x}} = \mathbf{A} \mathbf{x} + \mathbf{B} \mathbf{u}, \quad \mathbf{y} = \mathbf{C} \mathbf{x} + \mathbf{D} \mathbf{u}
$$
where the matrices are:
$$
\mathbf{A} = \begin{bmatrix}
0 & 0 & 0 & 1 & 0 & 0 \\
0 & 0 & 0 & 0 & 1 & 0 \\
0 & 0 & 0 & 0 & 0 & 1 \\
0 & 0 & 0 & 0 & 0 & 0 \\
0 & 0 & 0 & 0 & 0 & 0 \\
0 & 0 & 0 & 0 & 0 & 0
\end{bmatrix}, \quad \mathbf{B} = \begin{bmatrix}
0 & 0 & 0 & 0 \\
0 & 0 & 0 & 0 \\
0 & 0 & 0 & 0 \\
0 & 0 & \frac{L K_f}{J_X} & -\frac{L K_f}{J_X} \\
\frac{L K_f}{J_Y} & -\frac{L K_f}{J_Y} & 0 & 0 \\
-\frac{K_t}{J_Z} & -\frac{K_t}{J_Z} & \frac{K_t}{J_Z} & \frac{K_t}{J_Z}
\end{bmatrix}, \quad \mathbf{C} = \begin{bmatrix}
1 & 0 & 0 & 0 & 0 & 0 \\
0 & 1 & 0 & 0 & 0 & 0 \\
0 & 0 & 1 & 0 & 0 & 0
\end{bmatrix}, \quad \mathbf{D} = \mathbf{0}.
$$
The parameters to be identified are \(J_X, J_Y, J_Z, L, K_f, K_t\). For simplicity and due to symmetry, we often focus on a single channel, such as the roll channel, where the model reduces to a second-order system. For the roll dynamics, with state \(\mathbf{x} = [\phi, \dot{\phi}]^T\) and control \(\mathbf{u} = [u_3, u_4]^T\), we have:
$$
\dot{\mathbf{x}} = \begin{bmatrix} 0 & 1 \\ 0 & 0 \end{bmatrix} \mathbf{x} + \begin{bmatrix} 0 & 0 \\ -\frac{L K_f}{J_X} & \frac{L K_f}{J_X} \end{bmatrix} \mathbf{u}, \quad y = \begin{bmatrix} 1 & 0 \end{bmatrix} \mathbf{x}.
$$
Accurate identification of these parameters is crucial for designing robust flight controllers for the quadrotor drone. Traditional methods face limitations in bandwidth and precision, prompting the need for improved frequency-domain techniques.

Frequency-domain identification begins with estimating the frequency response from input-output data. For a quadrotor drone, flight data are collected via sweep signals injected into the control inputs while measuring the attitude outputs. The raw time-domain data are then transformed into the frequency domain using spectral analysis. A critical issue is selecting an appropriate window length for the Fast Fourier Transform (FFT): a longer window improves low-frequency accuracy but increases random errors, while a shorter window reduces random errors but limits bandwidth. To overcome this, we employ a composite-window method, which combines multiple window lengths to optimize the frequency response estimate across a broad frequency range. Given a time history of total length \(T_F\), composed of concatenated segments each of length \(T_{\text{rec}}\), we choose \(n_\omega\) different window lengths \(T_{\text{win}}\) satisfying \(2 T_{\text{max}} \leq T_{\text{win}} \leq 0.2 T_F\), where \(T_{\text{max}}\) is the maximum period of the sweep. For each window, we compute the input auto-power spectral density \(G_{uu}(f)\), output auto-power spectral density \(G_{yy}(f)\), and cross-power spectral density \(G_{uy}(f)\). The random error for each window is estimated as:
$$
\varepsilon_r = C \frac{\sqrt{1 – \gamma_{uy}^2(f)}}{\gamma_{uy}(f) \sqrt{180 / T_{\text{win}}}}
$$
where \(\gamma_{uy}^2(f) = |G_{uy}(f)|^2 / (G_{uu}(f) G_{yy}(f))\) is the coherence function, and \(C \approx 0.742\) is an empirical constant. Weights \(W_i(f)\) for each window are assigned based on the inverse of the normalized random error:
$$
W_i(f) = \left( \frac{(\varepsilon_r)_i}{(\varepsilon_r)_{\text{min}}} \right)^{-4}, \quad i=1,\ldots,n_\omega.
$$
The weighted power spectral densities are then computed as:
$$
\hat{G}_{uu}(f) = \frac{\sum_{i=1}^{n_\omega} W_i^2 G_{uu}^i(f)}{\sum_{i=1}^{n_\omega} W_i^2}, \quad \hat{G}_{yy}(f) = \frac{\sum_{i=1}^{n_\omega} W_i^2 G_{yy}^i(f)}{\sum_{i=1}^{n_\omega} W_i^2}, \quad \hat{G}_{uy}(f) = \frac{\sum_{i=1}^{n_\omega} W_i^2 G_{uy}^i(f)}{\sum_{i=1}^{n_\omega} W_i^2}.
$$
The composite frequency response is obtained as:
$$
H_c(f) = \frac{\hat{G}_{uy}(f)}{\hat{G}_{uu}(f)}.
$$
This approach ensures high-quality frequency response estimates with coherence values above 0.6 over a wide frequency band, which is essential for reliable identification of the quadrotor drone model.
Once the frequency response is obtained, the next step is to identify the state-space model parameters. The frequency response matrix \(\mathbf{T}(s)\) for a state-space model \(\{\mathbf{A}, \mathbf{B}, \mathbf{C}, \mathbf{D}\}\) is given by:
$$
\mathbf{T}(s) = \mathbf{C} (s \mathbf{I} – \mathbf{A})^{-1} \mathbf{B} + \mathbf{D}.
$$
We select \(n_{\text{TF}}\) frequency points where the coherence \(\gamma_{uy}^2 \geq 0.6\), denoted as \(T_c(\omega)\) at \(s = j\omega\). The identification problem reduces to minimizing a cost function that measures the discrepancy between the estimated model response and the experimental data. Let \(\boldsymbol{\Theta} = [\Theta_1, \Theta_2, \ldots, \Theta_{n_p}]^T\) represent the vector of unknown parameters (e.g., moments of inertia and force coefficients). The cost function is defined as:
$$
J = \sum_{i=1}^{n_{\text{TF}}} \left\{ \frac{20}{n_\omega} \sum_{\omega=\omega_1}^{\omega_n} W_\gamma \left[ W_g | \hat{T}_c(\omega) – T(\omega) |^2 + W_p | \angle \hat{T}_c(\omega) – \angle T(\omega) |^2 \right] \right\}
$$
where \(W_\gamma = 1.58(1 – e^{-\gamma^2})\) is a weight based on coherence, and \(W_g\) and \(W_p\) are weights for magnitude and phase errors, respectively. Traditional gradient-based methods or simple pattern searches like the secant method can be slow and sensitive to initial guesses. To enhance efficiency and robustness, we adopt the K-means clustering algorithm, a pattern search technique that partitions data into clusters to find optimal parameter values.
The K-means clustering algorithm for parameter identification proceeds as follows. First, we initialize \(k\) candidate parameter vectors \(\boldsymbol{\Theta}_i\) (e.g., using preliminary SISO transfer function estimates from tools like CIFER), which yield \(k\) frequency responses \(T_i\). These serve as initial cluster centers. Then, we iteratively assign the experimental frequency response \(T_c\) to the nearest cluster based on a distance metric, update the cluster centers by averaging the assigned responses, and recompute the cost function until convergence. The steps are detailed below:
- Initialization: Choose \(k\) initial parameter vectors \(\boldsymbol{\Theta}_i\) (e.g., \(k=3\)) and compute corresponding frequency responses \(T_i\) as cluster centers.
- Assignment: For each frequency point, assign \(T_c\) to cluster \(j\) if:
$$ \| T_c – T_j \| < \| T_c – T_i \| \quad \text{and} \quad \| \angle T_c – \angle T_j \| < \| \angle T_c – \angle T_i \| \quad \forall i \neq j. $$ - Update: Compute new cluster centers as the mean of all responses in each cluster:
$$ \bar{T}_j = \frac{1}{N_j} \sum T_j, $$
where \(N_j\) is the number of points in cluster \(j\). Update parameter vectors \(\boldsymbol{\Theta}_j\) accordingly. - Convergence Check: Repeat steps 2-3 until cluster centers stabilize (\(\bar{T}_i = T_i\)). Then, select the cluster center that minimizes the average cost function \(J_{\text{ave}} = J / n_{\text{TF}}\). If \(J_{\text{ave}} \leq 100\), stop; otherwise, continue iterating.
This algorithm efficiently explores the parameter space without requiring derivatives, and its clustering nature helps avoid local minima, making it suitable for the nonlinear cost function associated with quadrotor drone identification.
To validate our improved method, we conducted experiments on a 3-degree-of-freedom (3-DOF) quadrotor drone platform. The platform consists of a physical quadrotor drone mounted on a pivot that allows rotation in roll, pitch, and yaw, simulating hovering conditions. Sweep signals were applied to the motors while recording attitude angles via onboard sensors. Data were collected at a sampling rate of 100 Hz over 120-second intervals. We focused on the roll channel for parameter identification, with known arm length \(L = 0.197 \, \text{m}\). The unknown parameters were the roll moment of inertia \(J_X\) and the thrust coefficient \(K_f\). Using the composite-window method with window lengths of 40 s, 60 s, and 71 s, we obtained the frequency response shown in the figure below, which exhibits high coherence (\(>0.6\)) over a broad frequency range.
We then applied the K-means clustering algorithm with \(k=3\) initial clusters derived from preliminary SISO fits. The identification process converged rapidly, yielding the state-space matrices for the roll dynamics:
$$
\mathbf{G} = \begin{bmatrix} 0 & 0 \\ -0.458 & 0.458 \end{bmatrix}, \quad \boldsymbol{\tau} = [0.2279, 0.1770] \, \text{s},
$$
where \(\boldsymbol{\tau}\) represents input time delays. The optimal parameter vector was \(\boldsymbol{\Theta} = [0.047, 0.109]\), corresponding to \(J_X = 0.047 \, \text{kg} \cdot \text{m}^2\) and \(K_f = 0.109 \, \text{N/V}\). Comparing with reference values from platform documentation (\(J_X = 0.0552 \, \text{kg} \cdot \text{m}^2\), \(K_f = 0.1188 \, \text{N/V}\)), the errors are within acceptable limits (approximately 15% for \(J_X\) and 8% for \(K_f\)), demonstrating good accuracy. The table below summarizes the identification results and comparison.
| Parameter | Identified Value | Reference Value | Error (%) |
|---|---|---|---|
| Roll Moment of Inertia \(J_X\) (kg·m²) | 0.047 | 0.0552 | 14.8 |
| Thrust Coefficient \(K_f\) (N/V) | 0.109 | 0.1188 | 8.2 |
| Cost Function \(J_{\text{ave}}\) | 85.3 | N/A | N/A |
The frequency response of the identified model closely matches the experimental data, as shown in the magnitude and phase plots. This confirms that our method effectively balances identification accuracy and computational complexity for the quadrotor drone system.
Further analysis can be extended to other channels (pitch and yaw) and full MIMO identification. The composite-window method ensures reliable frequency response estimates even with noisy data, which is common in quadrotor drone applications. The K-means clustering algorithm enhances convergence speed and reduces dependency on initial guesses compared to traditional pattern searches. We also tested the robustness of the method by introducing artificial noise into the data; the identification results remained stable, with only minor degradation in parameter accuracy. This robustness is crucial for real-world deployments where sensor noise and environmental disturbances are prevalent.
In terms of computational efficiency, the composite-window processing requires multiple FFT computations, but its parallelizable nature allows for efficient implementation. The K-means algorithm, with a complexity of \(O(k \cdot n \cdot d)\) per iteration (where \(k\) is number of clusters, \(n\) is number of data points, and \(d\) is dimensionality), is scalable for higher-order quadrotor drone models. For a full 6-state model with 4 inputs, the parameter vector might include up to 20 unknowns, yet the clustering approach can handle this by increasing \(k\) appropriately. We have found that \(k=3\) to \(5\) clusters suffice for most quadrotor drone identification tasks, keeping computations manageable.
To illustrate the mathematical formulation more comprehensively, consider the general state-space model with time delays:
$$
\mathbf{M} \dot{\mathbf{x}} = \mathbf{F} \mathbf{x} + \mathbf{G} \mathbf{u}(t – \boldsymbol{\tau}), \quad \mathbf{y} = \mathbf{H} \mathbf{x} + \mathbf{T} \dot{\mathbf{x}},
$$
which can be transformed into the frequency domain for identification. The key insight is that the composite-window method provides a high-fidelity frequency response, while K-means clustering optimizes the parameter fit. This synergy is particularly beneficial for quadrotor drones, as it accommodates their complex dynamics and noise characteristics.
In conclusion, we have presented an improved frequency-domain parameter identification method for quadrotor drones. By integrating composite-window processing for robust frequency response estimation and K-means clustering for efficient parameter optimization, our approach addresses the limitations of existing techniques in terms of bandwidth, precision, and convergence speed. Experimental validation on a 3-DOF quadrotor drone platform confirmed that the identified model accurately captures the system dynamics, with parameter errors within practical tolerances. This method provides a reliable foundation for model-based control design, enabling enhanced flight performance and stability for quadrotor drones. Future work could explore adaptive windowing techniques and hybrid clustering algorithms to further improve identification in highly nonlinear regimes, such as aggressive maneuvers or wind disturbances. Nonetheless, the current framework offers a significant step forward in system identification for quadrotor drones, bridging the gap between theoretical modeling and real-world application.
The quadrotor drone continues to be a focal point in UAV research, and accurate modeling is essential for advancing autonomy and reliability. Our improved identification method, with its emphasis on frequency-domain analysis and intelligent pattern search, contributes to this goal by delivering precise and efficient parameter estimates. As quadrotor drones become increasingly integrated into commercial and industrial operations, such methodological advancements will play a pivotal role in ensuring their safe and effective deployment.
