论坛首页 > 交流专区 > 技术交流 > PID算法在多旋翼飞行器上的应用
查看:41  |  回复:0
PID算法在多旋翼飞行器上的应用
晏几台char
9
主题
4
回复
发表于Tue Oct 30 23:00:07 CST 2018   |  只看该作者 1# 电梯直达

一、基本概念。

P比例I积分D微分PID控制目的在于对误差的降低,也可以说是滤波,还可以说是3种纠正方式的集合。

误差包括过去累计误差、目前误差和未来的误差。也就是时间的作用域的不同来区分的。

响应指标:

1、 对误差的反应速度。(PI实现)

2、 控制器过冲的速度。(过冲:第一次超过峰值电压)(PD实现)

3、 系统振荡的程度。(PD实现)

 

如何通过PID控制来降低误差呢?分以下几个步骤。

1、 通过各种传感器搜集到的输入数据(有误差的值)。

2、 控制器做出决定(滤波)。

纠正误差的3种算法(滤波)

1、 消除当前误差。

2、 平均历史误差。

3、 预测未来误差。

3、 通过输出设备来做出反应(消除误差后)。

 

注意:以上的滤波操作是通过PID调参实现的。

 

二、公式

 点击查看大图

 

注:如果控制系统的参数设置不当,就会控制系统的输入值就会反复振荡,导致系统可能无法达到预定值。

从上面的公式,KpKiKd分别是三种算法的系数,我们可以看出PID算法的比例和微分部分是与时间t相关的,而积分变量是从0t的时间,也就是t时间内的e函数的积分面积。

 

三、控制部分

1、比例控制器(现在误差):比例增益越大,在相同误差量下会有较大的输出,比例增益越小,同理相反。

实现方式:稳态误差+偏移量

稳态误差和比例增益成正比,和受控系统本身的增益成反比,若加入一个偏置,或加入积分控制,可以消除稳态误差,因为稳态误差是由时间造成的,正好积分控制可以通过求出平均误差来弥补这个缺点。

2、积分控制器(过去误差):求得平均误差,所以积分增益多为小数,以求平均值。

积分增益越大,趋近设定值的速度越快,不过因为积分控制会累计过去的所有误差,

可能会使反馈值出现过冲的情形。

3、 微分控制器(将来误差):导数的结果越大,那么控制系统就越能对输出结果做出更快速的反应。可以提升整定时间及系统稳定性,一般会为微分控制加上一个低通滤波器以限制高频增益和噪声。微分环节对噪声信号将产生放大作用。很少用到微分控制(20%)

注:低通滤波(Low-pass filter) 是一种过滤方式,规则为低频信号能正常通过,而超过设定临界值的高频信号则被阻隔、减弱。但是阻隔、减弱的幅度则会依据不同的频率以及不同的滤波程序(目的)而改变。


四、PID在多旋翼飞行器中的应用

1P控制多轴飞行器对角度变化的响应速度和力度,它产生一个目标位置跟当前位置的角度偏差大小成正比的矫正力量。P产生的控制是ID的控制基础。P值越大,矫正力量越大,校准速度越快。在较大的P值作用下,任何外部偏转飞行器的企图,都会产生一个非常强的阻挡力量。

增加P值,飞行器的稳定性会更好,但P值过高,飞行器会失去控制,产生高频抖动,飞行器发生漂移。

2I控制根据现在角度偏移的数值的累积,可以提供较大的矫正力量。随着时间或角度偏差越大,这个矫正力量就会随之变大,可消除误差提高精度,以防角度变得太大。

3D抑制PI调节时产生的过冲和振荡,也可以抵抗外界的突发干扰,组织系统的突变。

增加D值能降低多轴飞行器的角度快速变化,抑制飞行器过冲和振荡。减少D值,能提高多轴飞行器对角度快速变化的响应速度。


 
我是一个粉刷匠,粉刷本领强。
回复 收藏
  举报
  • 温馨提示:标题不合格、重复发帖、发布广告贴,将会被删除帖子或禁止发言。 详情请参考:社区发帖规则
  • 您当前输入了 0个文字。还可以输入8000个文字。 已添加复制上传图片功能,该功能目前仅支持chrome和火狐

顶部