串级PID即将两个PID控制器按照串联的方式连接起来,前一个的输出作为后一个的输入两者共同控制控制对象。对于四旋翼来讲最普通的就是外环角度环,内环角速度环,两者怎么联系呢,有的说法是:外环:输入为角度,输出为角速度;内环:输入为角速度,输出为PWM增量,这种说法不错但是容易让人误解,输入角度输出怎么变成角速度了,看了别人的程序也没有将角度转化成角速度的处理呀,因为一般思维总会这样想:由角度得到角速度肯定是角度变化量比上时间才对,其实并非如此,这样理解就片面了,其实是与后面的PID控制器有关,前一个PID程序输出的其实还是角度,只是后级PID把它作为角速度了,为什么这么理解,听我给大家举个例子假如说期望横滚角为零度,而此时传感器横滚角为负值那么误差为期望减去测量值为一正值,这个正值经过PID的计算,计算出的结果就是后级PID的输入,后级 PID没有用遥控器控制的期望值,他的期望值就是前级PID的输出值,这个输出值经过PID的计算得出的就是飞行器现在需要的角速度,当然要映射为PWM 增量,角速度还是有电机的升力提供的。那么这个角速度是干嘛用的呢,要把它和期望——遥控器输入值联系起来,期望是横滚角为零,那么这个加速的的方向肯定是纠正现有误差的。如果程序没错的话姿态会被慢慢校正,这个过程是最初输入期望角和姿态角相差最大,那么前级PID输出的值也大,就是后级PID输出角速度也大,但是随着误差被纠正前级PID输出减小,后级一样减小,直至误差为零,那么角速度也为零,没有角速度飞机就是平稳状态。

对PID有所了解之后在保证姿态角正确,干扰处理的很好之后就可以开始调试PID了,第一步确定硬件没问题,确定电机转向及顺序,这一点大家不要认为它是固定模式,实际上是和程序有关的,就是和你PWM输出有关系的,输出模式可以大致这样写pwm输出=油门±俯仰PID量±横滚PID量± 航向PID量搭配原则是横滚和俯仰在对角电机上市相反的即异号,航向是同号的,至于为什么就和动力学原理有关了。确定顺去及位置的方法最好动手实践确定是对的,在正常的时候斜着放飞机保证总是低的一端的两个电机先转,保证这个之后一般来说顺序就是对的了(在调内环的时候一样的思想可以用,就是给定期望角速度为0然后你手动的给飞机一个角速度应该转哪两个电机自行补脑),然后是正反转,这个对角相同,相邻相反。

这是准备工作,也就是硬件的部分保证没有差错,当然如果油门行程都没有设置你也不用看这个帖子了。

串级PID主调内环,内环为增稳环节,如果系统姿态和期望姿态没有偏差系统角速度为零就是理想状态。调PID的方法大致有烤四轴,云台(万向节)四轴,悬吊四轴,云台四轴最为安全,悬吊法最为接近实际飞行情况最为可靠,烤四轴本人没有用过不做评断。第一步就是更改程序结构,改变程序结构就是将内环的输入改为用遥控控制的值(期望角速度)注意这里和姿态角没有关系,只和角速度有关系,所以不要疑惑,为什么看上面串级PID的解释。调内环的时候给期望角速度为零,四轴是不会回到平衡位置的,因为这里根本没有用到姿态,调内环的目的就是内环参数能够很好地跟随打舵(角速度控制模式下的打舵)控制量。在平衡位置附近(正负30度左右),舵量突加,飞机快速响应;舵量回中,飞机立刻停止运动(几乎没有回弹和震荡)也就是说让角速度为多少时能够马上跟随,首先调P,从小到大调节,太小表现为软趴趴的,就是回复力很小,给定角速度为零时用手拨动感觉阻力小,这就是控制力不够需要增大P,有人说需要找到临界振荡值,在我看来没必要,虽然笔者也找了,但是最后由于希望飞行器比较稳定,还是减小了P,大概只有临界振荡值得一半,那调到什么程度呢,个人认为期望角速度为零时,用手拨动感觉阻力较大时就可以,然后可以推动遥控改变期望角速度,适的P能较好的对打舵进行响应,又不太会震荡,但是舵量回中后会回弹好几下才能停止(没有D)。

微小的振荡是正常的,不要追着不放,然后加入D,微分控制作用的特点是:具有超前调节功能,可有效改善被控对象有较大时间滞后的控制品质。在偏差刚刚出现时产生很大的控制作用,加快系统响应速度,减少调整时间,从而改善系统快速性,并且有助于减小超调,克服振荡,从而提高系统稳定性,但不能消除静态偏差。但是微分作用的输出只与偏差信号的变化速率有关,如果有偏差但不变化,则微分输出为零,故微分控制不能消除余差。所以微分控制器不能单独使用,它常与比例或比例积分控制作用组合,构成PD或PID控制器。(来自课本)个人理解D就是阻尼,就是预知偏差并提前阻碍偏差进一步恶化。加上D,D的效果十分明显,加快打舵响应,最大的作用是能很好地抑制舵量回中后的震荡,可谓立竿见影。太大的D会在横滚俯仰混控时表现出来(尽管在“烤四轴”时的表现可能很好),具体表现是四轴抓在手里推油门会抽搐。如果这样,只能回到“烤四轴”降低D,同时P也只能跟着降低(D具有增大比例稳定范围的作用)。D调整完后可以再次加大P值,以能够跟随打舵为判断标准。但是加上D之后系统还不会处于理想状态,只要重心有问题四轴就会朝某个方向慢慢倾斜,这是正常的,这是就需要考虑加入I,积分。只要偏差存在,输出就会不断累积(输出值越来越大或越来越小),直到偏差为零,累积才会停止。所以,积分控制可以消除余差。积分控制规律又称无差控制规律,只有加入积分系统才能真正的维持在某个位置不懂平衡。加入积分后一般要稍微减小P因为I会使P的稳定范围减小,积分作用太大就会让P处于震荡状态,但是两者又要保持平衡,即在回复力,消除余差,合适的超调三者保持最优组合。达到要求后就要还原程序结构,开始调外环,外环比较好调,找到合适的打舵灵敏度即可,可以使用P,也可以使用PI。

四轴飞行器的串级PID参数整定经验相关推荐

  1. 为什么需要串级PID控制(结合智能小车,四轴飞行器来解释)

    先说四轴飞行器 四轴飞行器中串级PID控制是由角度环与角速度环一起控制的 可以这么简单的理解: 角度环可以可以保证飞机按期望的角度飞行,单环控制时,具有很好的自稳性.但是打舵的时候跟随性就不够完美.可 ...

  2. 基于串级PID的直立车控制算法研究

    徐厚华 何哲嘉 向颖锋 2020-10-31 Saturday 00摘要   直立平衡车因其动力学系统同时具有多变量,非线性,不稳定,强耦合等特性,传统的单环PID控制平衡已经略显吃力.本文将采用内环 ...

  3. 串级PID的直立控制

    基于串级PID的直立车控制算法研究 摘要:直立平衡车因其动力学系统同时具有多变量,非线性,不稳定,强耦合等特性,传统的单环PID控制平衡已经略显吃力.本文将采用内环角速度PI控制.外环角度PD控制及最 ...

  4. 四轴PID控制算法详解(单环PID、串级PID)

    正文开始:这篇文章分为三个部分: PID原理普及 常用四轴的两种PID算法讲解(单环PID.串级PID) 如何做到垂直起飞.四轴飞行时为何会飘.如何做到脱控? PID原理普及 1.  对自动控制系统的 ...

  5. hjr-四旋翼飞行器串级PID飞控算法

    先说下什么是四旋翼飞行器 名称:四旋翼飞行器 组件:一个机架,一个陀螺仪,四个无刷直流电机,一个电池,一块单片机(能飞起来的最基本配置) 原理:利用四个电机旋转产生的反作用力托起飞行器上升,利用单片机 ...

  6. PID介绍 PID调参 串级PID

    鉴于串级PID在pixhawk系统中的重要性,无论是误差的补偿,如姿态解算:还是控制的实现,如姿态控制,位置控制,靠的都是串级的pid,这里我们先对串级pid做一个介绍,后面会再接着分析,姿态的控制以 ...

  7. 基于串级PID的平衡小车

    一般的平衡小车是以速度环为外环,外环输出作为内环角度输入的反馈,与期望角度叠加,通过角度的浮动控制实现速度闭环,本次平衡小车结合了四轴无人机的串级PID 方法,引入角速度环,方便参数调节.主控采用st ...

  8. 串级PID调试simulink仿真

    串级PID调试simulink仿真 设计串级PID 串级PID图解: 在设计串级PID的时候,我们从图可以知道,主控制器的输出是副控制器的输入. 主控制器输出可以是输出实际的物理量,也可以输出百分比. ...

  9. 微型四轴飞行器(7)串级PID控制器

    PID控制器是通过目标与当前状态的误差,然后利用比例.积分.微分三个计算公式计算出控制量来进行自动控制的系统[8].自动控制有三大要求:稳定性,快速性,准确性.稳定性是当系统受到来自外界的干扰时能够恢 ...

最新文章

  1. C语言不要重复包含.h头文件和.c文件
  2. 有哪些好用的企业目标管理和任务协作软件?
  3. 网络安全:等保2.0落地在即,触发五百亿新增市场
  4. 802.11帧聚合技术
  5. opengl win32 nehe
  6. Github | 标星3W+ ! Face Recognition世界上最简洁的人脸识别库!
  7. mysql 导入gtid_开启gtid导入报错
  8. 485通讯线是几芯的_RS485协议 电脑与stm32单片机通信 keil编程 在485的硬件错误中徘徊...
  9. iPhone SDK开发基础之UIPageControl编程
  10. 微信开发者工具下载使用
  11. ps抠图怎么放大图片_ps中在使用抠图工具时如何用快捷键移动放大的原始图片?...
  12. word当前页面设置第一页
  13. linux内核 print,自定义linux内核调试print
  14. win7一直弹计算机,Win7电脑总是自动弹出拨号连接怎么办 Win7总是弹出拨号连接对话框的解决办法(两种)...
  15. 直接管理和维护计算机系统的程序称为,全国2008年4月自考计算机原理试题
  16. js中isNaN、Number.isNaN,isFinite、Number.isFinite的区别
  17. 爬虫与反爬虫,永恒的道高一尺魔高一丈
  18. 玩玩小程序:使用 WebApi 交互打造原生的微信小程序 - 图灵小书架
  19. docker命令,一些常用的docker命令
  20. python爬虫笔记一:爬取豆瓣中指定的明星所有图片

热门文章

  1. Canvas 绘制方法过一遍
  2. FPGA实现JPEG-LS图像压缩,有损无损可配置,提供工程源码和技术支持
  3. diskgenius创建efi分区_复制文件到当前分区
  4. 【论文笔记】Crop phenotyping in a context of Global Change: what to measure and how to do it
  5. 母婴市场备受亲睐,电商运营需把握要点
  6. C# AD域账号登录验证,获取域用户信息
  7. java课程结课论文,语言课程论文范文
  8. Java Swing 设置全局的字体
  9. 如何固定输出每行打印的个数
  10. session到底是什么