四旋翼模型matlab/simulink——串级PID

张开发
2026/4/21 13:20:19 15 分钟阅读

分享文章

四旋翼模型matlab/simulink——串级PID
问题模型没有重力没有配平悬停以这个系统为例进行学习去了解各个PID对系统的影响。初始数据位置环PID俯仰/倾转/滚转Kp1 KI0.1 Kd0.05速度环PID俯仰/倾转/滚转Kp5 KI0.5 Kd0.1姿态环PID俯仰/偏转Kp0.3 KI0 Kd0.01滚转Kp0.1 KI0 Kd0角速度环俯仰/偏转Kp0.1 KI0 Kd0.001滚转Kp0.05 KI0 Kd0先从角速度环开始调整断开姿态环到角速度环的连接设置角速度环的期望角速度为constant设置为0此处加上了switch一头是原始的输入一个是0。并设置加入初始扰动此时先单轴设置扰动以免误差耦合。将initial body rotation rates设置为[0.1,0,0];此时去调整X轴PID参数先将积分微分项设置为0逐步增加Kp的数值发现不发生震荡只是指数倍加速角速度原本就是一个一阶指数衰减系统所以Kp200仍只是加速衰减并没有产生震荡考虑到实际物理就设置到了Kp20。掉入一个陷阱了除了角速度和力矩快速收敛保持到0其他图像全部发散。啊 ai老师们真的是滚吧明天再学估计是前面给的方法不对TAT现在出现问题了这个时候的系统是个伪重力我在配平悬停时将Fxyz设为【000】力矩Mxyz也设置为[000]。发现它正常悬停了这就很奇怪了原来它本来没有重力解决第一步配平悬停这一套都在做配平悬停首先断开了原来的所有环开始加入几个模块第一个是重力模块这里选择的是WGS84 gravity model。提供精确的、随纬度 / 高度变化的重力加速度 g。其输入是经纬度和高度这里设置经纬度都为0及用constant以及mux进行输入。而重力属于Earth地球轴而6DOF属于Body机体轴所以此处需要进行转换。使用到了transpose转置以及矩阵乘模块。这里为了方便知道实时的g加速度数值我加入了display模块。最后可以观察到位置图象z轴接近于0。误差在0.01左右后续加入PID去平衡。第二步加入角速度环操作步骤用了ai总结。前三步step1-3都是在搭建角速度环step3这里是在Mz通道加入了扰动滚转力矩偏置这里模拟的是机体可能本身就存在误差质心偏移螺旋桨本来就有倾角误差等情况后面就开始调参。当然对x轴也设置了初始扰动0.5rad/s。后续确定的加入叫速度环之后的模型如图。Q1:还需要悬停配平么不需要了那是前置条件这个时候的display就是三个数值显示三轴的力分量。这个模型的角速度图像姿态角图像下一步就是加姿态环了。

更多文章