首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

【系列专题】飞控中PID算法的常用变形

引言

PID控制器是工业中应用最为广泛的控制方法,是当之无愧的万能钥匙。所以能够熟练掌握PID算法的设计与实现过程,对于一般的研发人员来讲,应该是足够应对大多数控制问题了。PID控制算法虽然很简单,但是能够体现出反馈控制思想的精髓,可谓经典中的经典,本篇文章对目前飞控软件中PID控制器的常见使用方法进行简单的介绍,对工程实现中的处理方式进行简单科普。

PID算法的一般形式:

但由于现在的控制器大多是在数字计算机中实现的,所以,在实际应用中都是需要离散化处理。

离散化PID控制器/位置式PID控制器

假设采样周期为T,则离散化PID控制器为:

上式就是常规的位置式PID控制器,除了位置式PID之外,还有一种增量式PID控制器,执行机构需要的是控制量的增量,例如驱动步进电机时,数字控制器的输出只是控制量的增量。

增量式PID控制器

增量式PID控制器公式:

增量式PID计算的是增量,用到的是当前和前两个周期的误差。其实增量式PID和位置式PID没有本质区别,表达的都是同一个算法。他们在计算量上也是差不多,位置式PID我们也不会将积分项从头累积一遍,也是从上个周期的积分和上叠加一个当前误差而已。而增量式的计算也只不过使用了前后三个周期的误差而已。在目前主流的飞控软件中,我们一般使用的都是位置式PID控制器。

积分抗饱和(anti-windup)PID控制器

积分抗饱和的意思就是当输入信号的设定点发生变化时,误差值也会发生很大变化,所以在达到目标值之前,控制信号由于积分作用很快达到驱动器的极限位置。当输出信号已经达到参考输入值时,误差信号变成负值,但由于积分器的输出过大,控制信号仍将维持在饱和非线性的限幅边界上,故使得系统的输出继续增加,直到一段时间后积分器才能恢复作用,这种现象称为积分器饱和作用,为克服这种现象设计的PID控制器称为积分抗饱和PID控制器。

积分抗饱和的方法有很多,其中最为常用的一般有两种方法,第一种是当执行机构饱和时取消积分,直到执行机构恢复正常。第二种是当控制信号饱和时,在正常PID输出的基础上进行反向积分,超过限幅越多,反向积分的幅度越大。PX4飞控软件使用的就是第二种方法了,有兴趣的朋友可以自行研究。

PID控制器常见处理

除了积分抗饱和处理之外,通常还会在飞控软件实现中对PID控制器进行以下处理:

1)    对误差进行限幅;

2)    对控制输出进行限幅;

3)    对误差微分进行滤波;

4)    对控制器的输出变化量进行限幅。

总结

本文内容主要对控制算法中常用的PID控制器的常见变形进行了简单介绍,在实际工程实现时,虽然限幅的方式,滤波的算法多种多样,但各种变形方法都是异曲同工,实现的目的都是为了让算法在实际使用时能够应对执行机构饱和,期望变化较大等非常规情况,想要进一步了解的朋友可以结合开源飞控px4或Ardupilot进行研究。

  • 发表于:
  • 原文链接https://kuaibao.qq.com/s/20200704A04S4P00?refer=cp_1026
  • 腾讯「腾讯云开发者社区」是腾讯内容开放平台帐号(企鹅号)传播渠道之一,根据《腾讯内容开放平台服务协议》转载发布内容。
  • 如有侵权,请联系 cloudcommunity@tencent.com 删除。

扫码

添加站长 进交流群

领取专属 10元无门槛券

私享最新 技术干货

扫码加入开发者社群
领券