移植APM代码之PID调节

       APM代码我也看过了好几个版本的了,从2.91b到可以用PIX4FLOW的3.2.1到最新的3.3.1,不同版本的PID代码都有些区别,关于对他的PID代码的理解我会在单独的文章中聊一聊,今天先讲一下我在瑞萨G13单片机平台上调节PID的心得,PID代码是移植ArduCopter_3.2.1rc1的,大家可以自己去github下载。

       调PID的过程有参考博主super_mice的博文,调四轴的方法也和他出乎意料的相似(哈哈,就是”烤四轴“啦),但是我们并没有把四轴绑的那么死,准确的说我们根本没把两个杆子绑起来,因为那样可能会影响到四轴的转动轴,调起来你就搞不清楚到底是杆子的原因引起他的小幅震动还是PID参数的原因。不过不把架四轴的两个杆子绑起来也有一个问题,就是当有静差存在时他会固定朝一个方向飞。

      跟super_mice的调节过程不同的是,我是先给外环(角度环)参数一个固定的值(这个值不要大于4.5,官方程序里的这个参数就是4.5),然后调节的内环,内环是角速度环,过程平不平稳主要看内环调的好不好。大家需要注意的是,一定要在能起飞的油门左右调节,不然就会出现很多同学都遇到过的问题:我在低油门时四轴很稳,但推到高油门他就开始抖得厉害。内环调的好不好,主要看给他干扰他能不能快速的稳定下来,反正我的四轴给他干扰的话,他是可以稳稳的平衡住,其实内环参数OK的话,你要想给它干扰,要用很大力气的!

     内环OK了之后,给X、Y、Z轴适当的目标角来观察响应速度,如果响应慢了,则适当的加一点外环的P,但外环P过大会引起缓慢的震荡。

     哦对了,这里需要说一下的是Z轴(yaw)的调节,X模式下Z轴如果不控制的话会自旋的。我们是在机架下装了一个跟圆珠笔的笔帽(哈哈哈,参考陀螺的着地点做的,很机智有木有),这样就可以放在地上观察yaw的调节过程了。一般来说yaw的内环只用给个P就可以将yaw拉回目标角了,有静差的话加个I。最后观察Z轴的角度响应,我们发现一个很严重的问题,当给Z轴超过45°的期望角时,整个飞机都能抖翻了!这说明X、Y轴的参数D可能还要微调下。有同学要问了,关X、Y轴什么事啊,这就要说APM代码的PID理解了。

    总结下APM这个串级PID的调节过程:先将外环(PI)随便给个值,如果是450或330机架,建议在2~4之间。再调节内环PID。内环调的差不多了之后再看外环的响应,响应不理想的话再微调外环的P。在X、Y轴都调好了之后调Z轴,给Z轴超过90°目标看看飞机会不会抖,如果会抖,说明X、Y轴还是要调。

    是不是觉得APM的PID调的好烦,这也是一般串级PID的调节过程,串级控制比单层PID有很多有点,最主要的抗干扰能力更强,响应速度更快、稳。这里贴上两张APM的Stabilize模式和Alt_Hold模式的控制程图

        

  • 4
    点赞
  • 9
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值