# Critically Leveraging Theory for Optimal Control of Quadrotor Unmanned Aircraft Systems
## 2 The Structure and Mathematical Model of the Quadrotor
### Evaluating Quadrotor Controller Robustness to Disturbances in Maritime Environments  
Quadrotors have promising applications for tasks like maritime surveillance, environmental monitoring, and cargo delivery at sea [37]. However, operating in coastal and offshore conditions introduces environmental disturbances not present in typical indoor/outdoor flights. Winds, waves, and vessel motion generate forces that can challenge the stability and tracking performance of onboard controllers [38]. It is, therefore, important to evaluate how Quadrotor flight controllers perform when subjected to realistic wind disturbances representative of different sea states.  
This part aims to simulate the effect of turbulent wind gusts on a Quadrotor and assess the robustness of its controller. Wind field and turbulence models are implemented to produce disturbance signals reflecting varying sea conditions. Simulation results under these disturbances provide quantitative metrics to evaluate the controller's ability to reject wind forces and maintain stable flight. The approach allows for characterizing controller robustness to environmental conditions, benefiting the future development of autonomous Quadrotor systems for maritime operations.  
Wind disturbance modeling to realistically simulate wind disturbances can be implemented, as in the following two common turbulence models.  
The turbulent wind field model generates 3D wind vector fields based on turbulence kinetic energy (k) and turbulence length scales (87) [39]. The wind speed vector at any point in space and time is given by:  
\[\overset{\rightarrow}{\mathrm{w}}\Big{(}\overset{\rightarrow}{\mathrm{x}},t\Big{)}=\overset{\rightarrow}{\mathrm{w}}+\overset{\rightarrow}{\mathrm{w}} ^{\prime}\Big{(}\overset{\rightarrow}{\mathrm{x}},t\Big{)} \tag{92}\]  
Trajectory generator block: It is responsible for calculating and giving the set values for the desired position (x, y, z) of the Quadrotor. The values of \(\mathrm{U_{1_{r}}}\), \(\mathrm{u_{\mathrm{\mathrm{\mathrm{x}}r}}}\), \(\mathrm{u_{\mathrm{\mathrm{y}_{r}}}}\) are calculated according to the formula:  
\[\mathrm{U_{1_{r}}}=\mathrm{m}\cdot\left(\bar{\mathrm{z}_{r}}+ \mathrm{g}\right)\] \[\mathrm{u_{\mathrm{\mathrm{x}_{r}}}}=\frac{\bar{\mathrm{x}_{r}} \cdot\mathrm{m}}{\mathrm{U_{1_{r}}}}\] \[\mathrm{u_{\mathrm{\mathrm{y}_{r}}}}=\frac{\bar{\mathrm{y}_{r}} \cdot\mathrm{m}}{\mathrm{U_{1_{r}}}}\]  
At the same time, this block calculates the prediction matrices of the control inputs \(\mathrm{U_{1_{r}}}\), \(\mathrm{u_{\mathrm{\mathrm{\mathrm{x}_{r}}}}}\), \(\mathrm{u_{\mathrm{\mathrm{y}_{r}}}}\) and the desired outputs (x, y, z) to serve the predictive control block E-SSPC.  
E-SSPC block: It is responsible for calculating and giving the optimal control value U1 for the Quadrotor and the set values \(\left[\varphi_{\mathrm{r}},\theta_{\mathrm{r}}\right]\) to put into the optimal control block \(\mathrm{H_{\infty}}\) from the desired set values of the Quadrotor position and state feedback about the position and rotation of the Quadrotor.  
H_infinity controller block: It is responsible for calculating the torque values to control the Quadrotor rotation from the \(\left[\varphi_{\mathrm{r}},\theta_{\mathrm{r}}\right]\) set values of the ESSPC block and the Quadrotor's rotational state feedback.  
Quadrotor block: Is the kinematic model of the object.