Stochastic Control of UAVs: An Optimal Tradeoff between Performance, Flight Smoothness and Control Effort
<|reference_start|>Stochastic Control of UAVs: An Optimal Tradeoff between Performance, Flight Smoothness and Control Effort: Safe and accurate control of unmanned aerial vehicles in the presence of winds is a challenging control problem due to the hard-to-model and highly stochastic nature of the disturbance forces acting upon the vehicle. To meet performance constraints, state-of-the-art control methods such as Incremental Nonlinear Dynamic Inversion (INDI) or other adaptive control techniques require high control gains to mitigate the effects of uncertainty entering the system. While achieving good tracking performance, IDNI requires excessive control effort, results in high actuator strain, and reduced flight smoothness due to constant and aggressive corrective actions commanded by the controller. In this paper, we propose a novel control architecture that allows the user to systematically address the trade-off between high authority control and performance constraint satisfaction. Our approach consists of two parts. To cancel out biases introduced by unmodelled aerodynamic effects we propose a hybrid, model-based disturbance force estimator augmented with a neural network, that can adapt to external wind conditions using a Kalman Filter. We then utilize state-of-the-art results from Covariance Steering theory, which offers a principled way of controlling the uncertainty of the tracking error dynamics. We first analyze the properties of the combined system and then provide extensive experimental results to verify the advantages of the proposed approach over existing methods<|reference_end|>
@article{rapakoulias2024stochastic,
    title={Stochastic Control of UAVs: An Optimal Tradeoff between Performance,
  Flight Smoothness and Control Effort},
    author={George Rapakoulias and Panagiotis Tsiotras},
    journal={arXiv preprint arXiv:2409.10369},
    year={2024},
    archivePrefix={arXiv},
    eprint={2409.10369},
    primaryClass={eess.SY cs.SY}
}