基于Matlab MPC Toolbox的简易四旋翼无人机控制仿真
一个简单的练手小项目(MATLAB版本:2022b)
修复了在期望偏航不为0时无人机会失稳的问题。当然也许我并没有彻底解决这一问题,只是让MPC认为期望的偏航角每时每刻都为0,这样就回避了MPC无法稳定控制偏航的问题。以下为偏航控制测试的结果。
更新了MPC权重,添加了新的可视化模块(需要在MATLAB中安装3dscope),移除了废弃的工程文件
可以飞一个稍微复杂些的8字,结果可以在SavedData/TrackingResult20230303.fig查看
把原来的12个输出量改为4个(位置xyz和偏航yaw),因为轨迹通常只需要这几个量
目前可以以大约6m/s的速度跟踪圆圈轨迹,下图中的轨迹为一位于$z=0$平面、半径$r=10m$的圆
位移
速度
姿态欧拉角
桨转速
目前的问题:
参数几乎没怎么调,特别是高度上存在较大的稳态误差,同时第一圈的跟踪性能很差
虽然解决了一些bug,程序基本能跑了,但问题还很多,比如模型线性化以及MPC参数。
目前仅采用了MATLAB自带的模型线性化器,问题是当系统状态改变较大时这种近似效果不好。 下一步计划采用反馈线性化(Feedback Linearization)。
MPC设计还比较naive,需要继续学习一个。。。