四轴飞行器,PID调节过程心得记录

初次接触四轴,编写四轴的姿态PID控制部分,,横滚俯仰是把遥控器的杆量转换为目标角度,然后目标角度PID运算转换为目标角速度,然后目标角速度PID运算转换为电机输出量,,航向是直接把杆量转换为角速度,然后角速度PID运算转换为电机输出量。。横滚俯仰即有角度也控制也有角速度控制,航向由角速度控。。

大概控制系统可见下图。



程序写完后,PID调节了一下下午,,现在把一些体会写出来,,分享一下


1,横滚俯仰的PID基本是一致的,把横滚调出来,俯仰基本一样的。首先把四轴用一个铁棍绑起来,然后固定在一个地方能够横滚转动。首先把外环的角度转换为角速度的PID量全部置为0,,这样的话除了油门,,横滚方向杆量对四轴无影响。。这样先把内环的角速度PID调节好。先调节速度的P。直到四轴能稳定在一个地方(不一定水平,随便一个位置都可能),这时人为给一个外力,有一个速度,看看四轴能不能自己回稳,看一下回稳的过程怎么样。。如果给一个外力四轴开始自激震荡失稳,说明是速度的P量给太大了,把P改小,,改小后发现给一个外力不会自激震荡失稳了,但是回稳的过程中四轴依然还是有震荡,说明P还是太大,改小。如果发现给一个外力回稳的过程太慢或者不能回到开始的稳定状态,说明P值小了,给的力不够,就把P值调大。。当调节到给一个外力能迅速恢复到稳定状态而且不会震荡,说明内环的P值差不多可以了。。现在调节外环的角度P。。给一个默认的角度P看一下现象,,给了角度P以后,当加油门的时候四轴应该会回到一个水平状态(这时杆量的输出都是0,目标角度都是0,所以加油门会回到水平状态),这时的调节方法跟内环速度环差不多,,如果加油门会水平过程中,震荡比较大就是角度P给大了,改小。把四轴调节到基本水平,,这时打杆来调节,,打杆,看四轴能不能迅速达到想要的角度并稳定下来,,如果震荡则改小角度P如果太缓慢就增大,,当差不多是,这时左右迅速打横滚杆,看四轴能不能跟得上,这时如果产生震荡说明角度P的值还是大了,,改小,,如果不震荡这时加大油门,,在大油门的情况下迅速左右打横滚杆,,看看是否会有震荡,,如果有则改小角度P的值。。。


2,调节航向,调节航向时绑着操作不方便,,这时首先有人用手拿着,另一个人打航向杆,,拿着四轴的人感觉一个回稳力道,,凭个人感觉,这个力不要太钢也不要太柔,,进一步调节就要实际飞行调节,,,感觉差不多的那个航向的P值基本可以飞行,,飞行过程中感受操作。调节。我们组装的四轴貌似不太平,有一个右旋的力,刚开始一飞起来之后会匀速很小速度右旋,,这时分析右旋,没有打杆量,程序正确,。这时的力就是四轴本身的力,,飞起来的时候速度太小右旋这时的陀螺给出的P值得量就太小了,根本一直不了右旋,,,这时需要增大积分来抑制这个自身的右旋力,,增加积分,,如果还右旋就继续增大,,直到这个积分能抑制住这个航向的右旋。。。。OK一个基本适应我们平台的PID基本调节好了。。。。控制系统中基本用的PI,,D的值给力一个很小的量,,基本不用调节。


3,调节过程中程序方面的一点经验。。刚开始在航向虚位的一个处理中,出现了点差错,导致打航向之后,四个电机输出有差距,杆量回中之后,会残留一部分的差距不表回去,开始分析是积分部分出来问题,,然后注释掉积分,只剩下P量,,只是的那个差距依然存在,,说明不是积分的问题,,是程序哪部分出现问题,根据逻辑往上追溯,,最终找到是处理虚位是出现了错误,当值有残留差距。。


4,结构体中积分部分要用全局的变量,这样每次调用的时候积分才能累加起来(或者static的静态变量),积分要在状态变化时要清零。。控制中要用到上一次运算值得时候,这种情况最好给lastErr这种值初始化为0,为了保险起见。。有些平台可能会给随机数。。


5,现在四轴航向还有一个问题,,就是四轴的右旋抑制住了,,但是在实际飞行中,,如果快速大幅度打杆量(航向杆不动)的情况下,,,航向依然会右旋。。现在思考是输出限幅的问题,,明天继续解决

评论 4
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值