查看: 3595|回复: 0

四轴经验分享:PID调试

[复制链接]
  • TA的每日心情
    无聊
    2015-8-25 10:41
  • 签到天数: 66 天

    连续签到: 1 天

    [LV.6]常住居民II

    发表于 2015-5-19 14:03:30 | 显示全部楼层 |阅读模式
    分享到:
    前几篇文章:四轴飞行器DIY经验分享:结构原理

                    四轴经验分享:硬件器材
                         四轴经验分享:调试
    前几篇文章详细的讲述了四轴飞行器硬件以及基本的调试,但是我相信那种勉强的平稳飞行对于追求完美的人是远远不够的,为了满足这一类人对于稳定的需求,这一篇文章就讲述如何对飞控板经行PID的调参。(方法也基本上是网上学习的,我这里总结一下)
    首先我们先通俗的了解一下什么是PID算法,PID控制是自动化控制领域应用非常广的控制方式,P代表比例、I代表积分、D代表微积分,从这些名词我们可以看出,PID控制是基于数学中的一项重要的分支,微积分学为基础的数字化自动控制方式,他以传感器菜鸡的数据作为输入源,按预定的PID参数根据待定的公式计算以后输出控制。
    举个生活中的例子,我们所乘坐的动车,在即将到达站点的时候会切断动力,凭借惯性进入月台,如果火车在切断动力的时候时速是100km/h并且距离月台是1KM,那么这个100比1就是比列P的含义,P越大,他在站前开始滑行的速度也就越快,快的话也就是进入站台的时间比较短,但是过快也就意味着,惯性太大可能冲下月台,这也就不得不经行倒车,但是因为P过大,倒车以后的滑行同样会使得火车到过头,这样一来,就形成了一个反复前行后退的震荡局面,而P设置小了,进站的速度也就变得缓慢,进站的时间也就会变得越长,所以设置一个合适的P是PID的首要任务,由于P是一个固定值,如果桨火车的速度与月台的距离用一个坐标理想化的表现出来的话,不考虑其他外力,那就是一条直斜线,越陡表示进站的时间越短。

    这张图只是为了方便大家了解,在实际中根本不可能出现的,PID计算的结果也不是这样子,不管怎么样,如果只有P调节,火车要么设置一个比较低的P值以非常缓慢的速度进入月台,要么冲过去。很难设置在速度与准确度之间求得平衡,所以接下来要讲的便是D微分的作用,还是动车这个例子,假如P等于100的时候火车刚好能滑行道月台,所耗费的时间是10分钟,但是对应一个自稳定性能要求很高的自动化系统来说这个十分钟还是太长了,可不可以加快?是可以的,我们把P加大达到120,让火车在在距离站台1km的距离以120km/h的速度开始减速滑行,然后再距离500M的时候踩一下刹车变成80km/h,站前300米在此踩一下刹车降为50km/h,站前100再次踩刹车变成20km/h,站前10m让火车在较短的时间内滑行到月台准确的位置,这样进站的速度就会大大加快,这就是D的作用,我们暂且就把D当作刹车吧,在PID公式中,D的左右就是改变P的曲线,D的数值越大,对P的影响也就越大,加入D后的曲线前期较陡,进站比较快,后期平缓,可以让火车平稳准确的进站。

    根据以上的解释,很多人可能都大概明白了许多,那么在飞行器的实际调节当中,我们就可以有的放矢了,根据PD这个关系,我们可以得出一个调节步骤,先把D置0,加大P值,是飞行器适当过冲开始震荡,然后增加D的数值,拉低P调节后期的作用,使过冲现象放缓,最终调到不过冲为止,P越大飞行器倾斜后恢复的也就越快,表现为越灵敏,但是过大就会震荡,D值越大就会表现的月平稳,但是会使调节时间延长,表现反映迟钝。
    最后讲到的就是I积分,是为了消除误差而加入的参数,还是上边的那个例子,假设火车每次停靠站台都是但是距离停止线还是差了1m,我们虽然可以认为这是一次合格的停车,但是久而久之,这个1m就会不断的累加,误差就会越来越大,所以我们就应该记录下来,当第二次进站的时候就可以发挥作用了,如果差了1m,火车驾驶员可以在原来的PD调节基础上经行I积分,延迟1m输出(或者提前),即999m开始减速,最终可以刚刚好到达停止线,如果没有I的作用,飞行器的表现就是越来越倾斜最终失去平衡,I的调节是建立在PD的基础之上的,PD的改变都会影响I的效果,所以最终的调节步骤调节是P灵敏度,之后是D调整平稳度,最后是I确定精度。
    当然还有其他网友写的更加详细的调整方法:四轴飞行器:PID控制算法
    说了这么多,我们说点直接有效的方法,当然还是以我手上的APM为例了。
    一、自动调参
    看了上边我所描述的内容之后,你可能明白了所述方法,但是数学不好这就成了一个比较大的问题,那么我们就可以使用自动调参的方法,APM飞控板自带一个自动调参的模式,使用的方法非常的简单。
    1、设置一个高档位(althold)在上位机上,config/tuning里面APM:copter pids 选项中将第七通道设置为自动调参通道(确保这个通道上有高低档)
    2、之后找个无风或者微风的天气出去自动调参,并且到一个比较广阔的地方。
    3、自稳模式解锁飞到一定高度之后,切换到定高模式,但是不要非得太高
    4、将设置的第七通道打开到高档,经行自动调参
    接下来你就会看到飞机在空中“癫痫”的运动,修正各个参数。如果有什障碍物,可以通过遥控器进行控制,不会影响调参的经行。
    5、自动调参过后飞机会自动回复之前的PID
    6、之后把调参开关打低再打高就可以使用调参之后的PID经行飞行,如果满意就保持打高状态降落上锁,这样就保存数据了
    7、或者桨调参开关打低降落解锁,这样就不保存数据了。
    这种方法调试起来非常的方便,根据其他论坛模友的反映调整完之后的飞行状态也是非常的稳定,空中钉钉子也变得非常地简单。
    但是每个人的要求是不一样的,你可能用于航拍,要求飞行的时候角度修正的缓慢一点,避免机身产生较大的抖动,影响画面的质量,也许你是一个喜欢玩特技的,你想让你的飞机变得非常灵敏,快速的修复飞行姿势,那就需要另外一种调参方式了。
    二、飞行中调参
    Roll速率P和Pitch速率p是可以在飞行中调整的,用你的遥控器通道6旋钮,跟随下列步骤经行调整。

    1.首先把你的飞行控制板连接到上位机
    2.在上位机中,选择配置调试
    3.设置6通道为“rate roll/pitch kp”
    4.设置最小值为0.08,最大为0.20(多数飞行器的理想的增益都是在这个范围,监管一小部分可以大到0.25)
    5.点击“写入参数”按钮。
    6.将你的遥控器通道6旋钮移到最低位,电机刷新参数,确定下roll速率P和pitch速率P的值变为0.08(或者非常接近)
    7.把6通道按钮旋转到最高位,刷新参数,然后确认Roll速率变为0.20
    8.然后6通道调到中间位置
    9.在自稳模式下解锁飞行,调整6通道旋钮,直到你飞机飞行的很灵活并且不会抖动。
    10.飞行结束后,断开锂电池重新连接上位机。
    11.通道6保持飞行最佳时的位置,返回设置界面,刷新参数
    12.之后你就会看到数值发生了变化,但是你要做一点点的修改,譬如把数值0.1234改成0.1230不然系统是不会保存的。
    13.最后把6通道还原即可
    14.断开连接重新连接,检查PID参数是否修改
    这样基本上就可以根据自己的感觉经行细微的调整了直到达到你喜欢的手感为止,但是根据我个人使用来看,这个调整过程中的感觉是非常微弱的,你几乎感觉不到有任何调整过的迹象,所以这种方法只建议是自动调参后的微调。
    鉴于调参方式多种多样,我这里就不一一详解了,了解这两种方法并结合完全就够用了,当然为了满足那些乐于折腾的人可以去搜索更多的资料了解。
    感谢大家的观看,如果有什么建议或者意见请下方留言。我会尽快回复,谢谢。
    回复

    使用道具 举报

    您需要登录后才可以回帖 注册/登录

    本版积分规则

    关闭

    站长推荐上一条 /2 下一条

    手机版|小黑屋|与非网

    GMT+8, 2024-4-19 18:07 , Processed in 0.122437 second(s), 18 queries , MemCache On.

    ICP经营许可证 苏B2-20140176  苏ICP备14012660号-2   苏州灵动帧格网络科技有限公司 版权所有.

    苏公网安备 32059002001037号

    Powered by Discuz! X3.4

    Copyright © 2001-2020, Tencent Cloud.