算法基础——PID

  • 概述

PID(Proportional Integral Derivative)控制是最早发展起来的控制策略之一,根据系统的误差,利用比例、积分、微分计算出控制量进行控制,以其结构简单、稳定性好、工作可靠、调整方便而成为工业控制的主要技术之一。当被控对象的结构和参数不能完全掌握,或得不到精确的数学模型时,系统控制器的结构和参数必须依靠经验和现场调试来确定,这是应用PID控制技术最为方便。PID控制适用于速度、温度、压力、流量、液位等几乎所有场景,不同的场景,仅仅是PID参数设置不同。

  • 原理

如下图所示为常见的PID控制系统原理框图:

 

r(t)为给定值,y(t)为系统的实际输出值,给定值与实际值构成控制偏差e(t),e(t)作为PID控制器的输入,u(t)作为PID控制器的输出和被控对象的输入。所以,模拟PID控制器控制规律为:

 

将模拟PID控制系统进行离散化处理(由差分代替微分,由累加代替积分)后,可得:

 

采样的周期越小,就越接近模拟控制,控制效果也就越好。

PID控制算法在实际应用中可以分为位置式PID控制算法(位置闭环控制)和增量式PID控制算法(速度闭环控制)。

对电机进行位置闭环控制的时候,就是控制电机的转动位置,通过测量的电机位置信息,与目标位置进行比较,得到偏差值,通过比例、积分、微分的PID算法进行控制,使偏差趋于0。此时:u(k) = Kp*e(k) + Ki*Σe(k) + Kd*[e(k) - e(k-1)];由于用到了误差的累加值,运算量较大,且输出值u(k)对应的是执行机构的实际位置,一旦控制输出出错,u(k)的大幅变化会引起系统的大幅变化,并且在积分项达到饱和时,误差仍会在积分作用下继续累积,一旦误差开始反向变化,系统需要一定时间从饱和区退出,所以在u(k)达到最大和最小时,要停止积分作用,并且要有积分限幅和输出限幅。

对电机进行速度闭环控制的时候,就是控制电机以某一速度转动,得到的速度偏差值,通过比例、积分、微分的PID算法进行控制,使偏差趋于0。此时:u(k) = Kp*[e(k) -e(k-1)]+ Ki*e(k)+ Kd*[e(k) - 2*e(k-1)+e(k-2)];增量式PID得出的控制量对应的时近几次位置误差的增量,没有误差累加,u(k)的确定仅与最近三次的采样值有关,容易通过加权处理获得比较好的控制效果,并且在系统发生问题时,增量式不会严重影响系统的工作。

  • C语言实现
  1. 位置式PID

/* 返回输出

*  Encoder为输入(编码器测量的信号,也就是电机转速)

*  Target为目标值

*/

//KP、KI、KD为PID的系数

int Postition_PID( int Encoder, int Target )

{ //依次的变量代表:偏差、输出、偏差积分、偏差微分

static float bias,pwm,integral_bias,last_bias;  

    bias = Encoder-Target;//计算偏差

    integral_bias += bias;//计算偏差积分,累加

    pwm = KP*bias+KI*integral_bias+KD*(bias-last_bias);//计算输出,根据PID

    last_bias = bias;//保存为上一次偏差

    return pwm;//返回输出

}

  1. 增量式PID

/* 返回输出

*  Encoder为输入(编码器测量的信号,也就是电机转速)

*  Target为目标值

*/

//KP、KI、KD为PID的系数

int Incremental_PI( int Encoder, int Target )

{ //依次的变量代表:偏差、输出、偏差微分

static float bias,pwm,Last_bias,prev_bias;  

    bias = Encoder-Target;//计算偏差

    pwm += (KP*(bias-last_bias)+KI*bias+KD*(bias-2*last_bias+prev_bias));//增量式PI

prev_bias = last_bias;

    last_bias = bias;//保存为上一次偏差

    return pwm;//返回输出

}

  • 参数整定

通过参数整定,需要使控制系统满足稳定性、快速性和准确性的要求。具体的评估指标有最大超调量、上升时间、静差等。

  1. P、I、D调节的作用
  1. 比例调节的作用

按照比例反应系统的偏差,系统一旦出现了偏差,比例调节立即产生调节作用来减少偏差。比例作用大,可以加快调节,减少误差,但是过大的比例,使系统的稳定性下降,甚至造成系统的不稳定。

  1. 积分调节的作用

使系统消除稳态误差,提高无差度。因为有误差,积分调节就进行,直至无差,积分调节停止,积分调节输出一常值。积分作用的强弱取决与积分时间常数Ti, Ti越小,积分作用就越强。反之Ti大则积分作用弱,加入积分调节可使系统稳定性下降,动态响应变慢。积分作用常与另两种调节规律结合,组成PI调节器或PID调节器。

  1. 微分调节的作用

微分作用反映系统偏差信号的变化率,具有预见性,能预见偏差变化的趋势,因此能产生超前的控制作用,在偏差还没有形成之前,已被微分调节作用消除。因此,可以改善系统的动态性能。在微分时间选择合适情况下,可以减少超调,减少调节时间。微分作用对噪声干扰有放大作用,因此过强的加微分调节,对系统抗干扰不利。此外,微分反应的是变化率,而当输入没有变化时,微分作用输出为零。微分作用不能单独使用,需要与另外两种调节规律相结合,组成PD或PID控制器。

  1. 常用整定方法

PID参数整定的方法有很多,常用的整定方法有临界比例度法、衰减曲线法和试凑法。但是临界比例度法和衰减曲线法更加适用于已知对象传递函数的场合,所以这里主要对试凑法的步骤进行说明。

顾名思义,试凑法是根据过渡过程中被调参数变化的情况进行再调整PID参数的方法。根据各参数的特点,对参数实行先比例、后积分、再微分的步骤进行整定。

如下图所示为一个已知传递函数系统的仿真模型,来对这个模型进行参数的整定。

 

下图为上面系统的开环输出曲线:

 

由输出曲线可知,虽然系统输出收敛,但是系统超调量达到了30%左右,且响应速度慢,需要对系统进行闭环调节。对系统加入了PID控制环节,如下图所示:

  1. 比例部分整定

采用纯比例控制,将比例系数由小到大进行修改,观察系统的响应,直至响应速度快,且有一定范围的超调为止。如下图所示为上述系统加入比例控制后的输出曲线图,其中黄色线为输入信号,绿色线对应Kp为0.5,蓝色线对应Kp为2,红色线对应Kp为5;由图可观察,当Kp为2时,系统响应速度较快,且超调量保持在一定范围内,但静差较大,需要加入积分环节。

  1. 积分部分整定

若比例控制下静差达不到设计要求,可以加入积分作用。在整定时将积分系数由大递减,观察输出,系统的静差应逐渐减小直至消除,同时微调比例系数。如下图所示为加入积分环节后的输出曲线图,其中Kp =2,其中黄色线为输入信号,绿色线对应Ki为0.1,蓝色线对应Ki为0.5,红色线对应Ki为1;由图可知,当Ki较小时,响应速度慢,当Ki较大时,输出波动的周期较长,经试凑,可将Ki定为0.5,但波动周期仍然较长。

 

  1. 微分部分整定

当比例积分控制下仍然无法达到设计要求时,加入微分作用,观察超调量及稳定性,同时微调比例系数及积分系数。。如下图所示为加入微分环节后的输出曲线图,其中Kp =2,Ki=0.5,其中黄色线为输入信号,绿色线对应Kd为0.1,蓝色线对应Kd为1,红色线对应Kd为10;如下图所示,当Kd=1时,响应速度较快,但超调较大。

 

之后,再对Kp及Ki进行微调,可得出如下输出曲线,其中红色线Kp=0.2 Ki=0.6 Kd=1;蓝色线Kp=2 Ki=0.5 Kd=1。

 

  1. 总结

综上,可将试凑法的规则总结为以下口诀:

参数整定找最佳,从小到大顺序查

先是比例后积分,最后再把微分加

曲线振荡很频繁,比例度盘要放大

曲线漂浮绕大弯,比例度盘往小扳

曲线偏离回复慢,积分时间往下降

曲线波动周期长,积分时间再加长

曲线振荡频率快,先把微分降下来

动差大来波动慢。微分时间应加长

理想曲线两个波,前高后低4比1

一看二调多分析,调节质量不会低

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值