四轴 PID 调试

四轴 PID 用到了串级 PID,即两个闭环,分别为——角速度环(内环)和角度环(外环)

调试时,先整定内环PID,再整定外环 P

内环 P :从小往大增加时,四轴向两边拉动越来越困难,拉动时感觉有一个一个反方向的力在抵抗。当数值较大时,四轴会出现肉眼可见的高频振荡;
特别注意:只有内环 P 的时候,四轴会缓慢的往一个方向下掉,这属于正常现象。这就是系统角速度静差。
内环 I :积分的作用就是用来消除静差,因此积分项没必要弄很大,因为这样会降低系统稳定性。值较合适时,四轴会定在一个位置不动,也不会往两边偏;继续增加 I 值时,若向两边拉扯一下就会导致发散。
特别注意:增加 I 的值,四轴的定角度能力很强,拉动他比较困难,似乎像是在钉钉子一样,但是一旦有强干扰,它就会发散。这是由于积分项太大,拉动一下积分速度快,给的补偿非常大,因此很难拉动,给人一种很稳定的错觉。
内环 D :这里的微分项 D 为标准的 PID 原理下的微分项(即本次误差 - 上次误差)。在角速度环中的微分就是角加速度,原本四轴的振荡就比较强烈,引起陀螺的值变化较大,此时做微分就更容易引入噪声。因此一般在这里可以适当做一些滑动滤波或者IIR滤波。从小到大,飞机的性能没有多大改变,只是回中的时候更加平稳;继续增加D的值,可以肉眼看到四轴在平衡位置高频震动(或者听到电机发出滋滋的声音)。先前已经说明 D 项属于辅助性项,因此如果机架的振荡较大,D 项可以忽略不加。

外环 P :当内环 PID 全部整定完成后,飞机已经可以稳定在某一位置(不一定是水平位置)不动了。此时内环 P,从小到大,可以明显看到飞机从倾斜位置慢慢回中,用手拉扯它然后放手,它会慢速回中,达到平衡位置;继续增大P的值,用遥控器给不同的角度给定,可以看到飞机跟踪的速度和响应越来越快;继续增加P的值,飞机变得十分敏感,机动性能越来越强,有发散的趋势。

整体方法

  1. 将内外环PID都归0,适当增加内环的P,调整P至四轴从正面朝上自然转动到正面朝下时能感受到阻力,且没有抖动,有抖动就应减小P,当P减小到无抖动或者轻微抖动时即可。
  2. 让内环的D慢慢增加,到你用手能明显感受到转动四轴产生排斥外力的阻力即可,D能抑制P产生的振荡,但是D过大也会导致高频振荡,调整D至系统无振荡且能抑制外界的力即可。
  3. 给内环一点点I,注意的是I的积分要在油门开启后才开始,油门关闭就清0,且必须有积分限幅。I推荐取越小越好,我取的是0.01,I取大了会导致系统振荡。
  4. 将内环 P 减半,将外环 P 调至内环的 50-70 倍,根据系统产生的高频振荡降低内环的 D,直至高频振荡消除即可。
  5. 给外环一点点 I,同 3。
  6. 根据实际情况对参数进行优化调整,调整过程中要注意区分各个参数的作用,时刻记住,P 是回复力,大了会低频振荡,D 是抑制力,大了会高频振荡,I 是静差消除力,越小越好,大了会产生振荡。
  • 8
    点赞
  • 54
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
前言: 记得在上大二下的时候参加了2015全国电子设计大赛,题目刚下来便决定了做C题"多旋翼的自主飞行器"4天3夜拿到瑞萨最小系统后便开始写各个模块的驱动代码,因为有开发环境CUBE的神助攻,所以前期的驱动代码是还很顺利的。接下来便是飞行器的组装和电路板 制作,在一起就绪后花掉了2天时间,剩下的两天便疯狂调试,最苦恼的是电池供给跟不上,无奈只能调调停停,初次制作算法也还不够成熟,我直接用的以前做平衡车的经验。不过最后飞得也还算平稳,用的手机加蓝牙控制飞行(后来想一想也是胆大),但题目要求自主飞行,于是我便苦恼了,我便开始记录四旋翼起飞的油门,在起飞后直接给油门(危险)效果也还可以,就在比赛前一天晚上出事故了 一块刚充满电的电池 我装上做最后测试。电池电量过高 直接结果导致飞机飞太高撞到了天花板,结果将飞机撞坏了一个电机,桨就不用说了 惨,不过幸运的是人没事。队友也傻了,怎么办?此时已是凌晨1点。我们捡起“残骸”拍拍上面的灰,听了首“安河桥”便开始和队友一起埋头苦干。哈哈···最后在早上6点前飞机修好了 虽然效果大打折扣不过最基本的任务还算能够完成。第二天比赛,我们是下午开始。第一次参赛,试飞的时候发现异常,冷静后发现超声波线松了 排除故障后开始比赛,比赛结果就不往下写了。(。。。。。)无论怎样我很享受这个过程。比赛结束后便有了做一个小四轴的想法,于是便在网上搜索资料,偶然看到了STC的这个开源项目,于是便自己也动手做了一个,控制代码我也有重写,现分享给大家!!!一起交流!!! 功能概述: 本设计是基于STC15W4K61S4的微型四轴。以STC15W4K61S4为主控。硬件包括,mpu6050传感器,电源,nrf2401通信模块,720空心杯电机,PCB机架。姿态解算采用四元数,串级PID作为控制器,配合遥控器实现俯仰,横滚,偏航姿态控制。主要用于学习和理解四轴飞行器的基本原理。 实物图: 应用场景: 控制思路: 首先调整电机1,3同向 2,4同向 且相邻电机旋转反相在X型模式下首先通过mpu6050获取三轴加速度计和三轴陀螺仪数据 经过数据处理融合后 得到姿态角度pitch roll 以及Z轴陀螺仪积分出 yaw角。将得到的姿态角送入PID控制器计算输出对应的油门补偿对应的电机 从而使四旋翼平衡。简单来说飞机往那边沉 对应的电机就加速提高升力抵抗它下沉,它的下沉程度是通过角度来反映的而已,具体补偿多少合适,则是通过PID控制器计算的而已。单纯通过角度误差来控制,是属于单级的PID 控制。经过试验这种控制策略应用在小四轴效果不太理想,因此我们通常采用的串级PID控制小四轴,即引入了角速度环,通常内环使用PD(对象角速度)外环使用PI(对象角度&内环输出)这样的控制策略在测试中效果较好,但理想的参数调整比较难,因此需要耐心调试才能得到较好的效果。 系统框图: 本系统硬件设计组成: 主控:STC15W4K61S4 (封装:LQFP32) 传感器:MPU6050(三轴加速度计,三轴陀螺仪)(封装:QFN)https://www.datasheet5.com/pn-MPU-6050-1083104 电机:720空心杯 MOS管 AO3400A (封装:SOT23_M)https://www.datasheet5.com/pn-AO3400A-1215185 2.4G无线:NRF2401 (模块)https://www.datasheet5.com/datasheet/NRF2401/250319... 电源芯片: ME6219 (封装:SOT95)https://www.bom2buy.com/search/ME6219 BL8530-501SM(封装:SOT89)https://www.datasheet5.com/pdf/BL8532/1751621/BELLI... 元器件成本估算: 部分器件成本估算:https://www.bom2buy.com/list/1312-stc15w4k61s4 总结: 此项目在大三上完成,经过调试 能够实现基本飞行,同时也存在以下问题: 参数应该还不够理想(遥控器跟随效果不好)。 PCB设计过大 导致超重,因为担心手焊的MPU不好使故留了较多直插模块接口同时还考虑到十字和X型所以各留了一个这样的直插接口。 这是一次不错的动手经历吧,从原理图PCB到代码都是自己一个人完成,每当遇到问题就网上寻求答案,过程还是很坎坷的,不过也特别有意思。同时也学到很多知识,做事情也更加细心严谨! 测试结果: 手机里翻了半天总算找到了一点视频上传与大家分享,效果不太好希望勿喷。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

忱铭

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值