四旋翼飞行器的姿态控制与优化
65
浏览量
0
下载量
0
收藏数
项目描述
一个基于四元数的四旋翼姿态仿真与控制可视化工具。提供目标轨迹规划、鲁棒/自适应控制、扩展状态观测器(ESO)扰动估计,以及实时误差与能量曲线展示。
姿态动力学(四元数 + 角速度)
状态:q(四元数)与 ω(角速度),惯量 J = diag(Jx, Jy, Jz)。
动力学:J·ω̇ = τ + d − ω × (J·ω),其中 τ 为控制矩,d 为外扰。
积分:提供欧拉与 RK4 两种数值积分方式。
参考实现:quad_sim.py:103、积分器 quad_sim.py:129、能量计算 quad_sim.py:185。
轨迹规划(期望姿态与角速度/角加速度)
生成期望四元数 qd,并利用 dq*q⁻¹ 近似计算期望角速度 ωd = 2·Im(dq*q⁻¹)/dt 与角加速度 ω̇d。
提供圆形、8字、S 曲线(五次多项式 10-15-6)及 CSV 插值。
参考实现:main_qt.py:127(TrajectoryPlanner.desired)。
创新型 AES 控制器 + 滑模项 + ESO 扰动估计
误差:qe = qd*q⁻¹ 的虚部为姿态误差 e,速度误差 we = ω − ωd。
非线性误差整形:b = tanh(γ·||e||);自适应系数:g = 1 + α·agility(由轨迹曲率估计)。
反馈项:τ_fb = −Kq·e·b − Kw·we + st,其中 st 为根号型滑模抑振项。
前馈项:τ_ff = J·ω̇d + ω × (J·ωd)。
ESO:二阶扩展状态观测器估计总扰动,得到 d̂ 并进行补偿。
饱和限幅:最终矩 τ 进行幅值限幅。
参考实现:controller_innovative.py:54(AESController.compute)。