【PID原理和两种数字式PID】

PID控制器是自动控制系统中广泛应用的经典算法,包括比例(P),积分(I)和微分(D)三个环节。比例环节快速响应误差,积分环节消除余差,微分环节预见误差趋势。文章介绍了两种数字式PID控制算法——位置式和增量式,并通过无人机悬停高度的示例说明PID的调节过程。位置式PID积分项和微分项的离散近似表达式被给出,而增量式PID则直接计算控制增量,避免误差累积。
摘要由CSDN通过智能技术生成


  最近由于需要,重温了PID控制算法,对里边的一些概念、原理进行了回顾。学习的过程中,基本也都是参考了各位博主的博客,在此记录,以防忘记。

1. PID控制原理

  PID:Proportion(比例)- Integral(积分)- derivative(微分)控制器,是自动控制系统中最经典应用最为广泛的一种控制器,实际上是一种控制算法。PID算法是一种闭环控制算法,具有原理简单,易于实现,适用面广,控制参数相互独立,参数的选定比较简单等优点。
PID原理图
u ( t ) = K p e ( t ) + K i ∫ 0 t e ( τ ) d τ + K d d d t e ( t ) (1) u(t) = K_pe(t) + K_i\int_0^te(\tau)d\tau + K_d\frac{d}{dt}e(t) \tag{1} u(t)=Kpe(t)+Ki0te(τ)dτ+Kddtde(t)(1)
其中

  • K p K_p Kp:比例增益
  • K i K_i Ki:积分增益
  • K d K_d Kd:微分增益
  • T i T_i Ti:积分时间常数
  • T d T_d Td:微分时间常数
  • e e e:误差=设定值( S P SP SP)-当前值( P V PV PV
  • t t t:当前时间

   通过调节三个单元的增益 K p K_p Kp K i K_i Ki K d K_d Kd来控制执行机构。

1.1 三种环节的作用

  • 比例环节P针对的是当前误差,增大比例增益将加快系统响应,减少误差,但较大的比例增益会使系统产生振荡和超调,稳定性下降;同时,比例调节无法消除余差。
  • 积分环节I针对的历史误差,可以在比例环节的基础上消除余差,能对稳定后有累计误差的系统进行误差修正,减小稳态误差;但是,积分环节的引入会使系统稳定性下降,动态响应变慢。
  • 微分环节D针对未来误差,有一定的预见性,反应系统偏差信号的变化率,能预见偏差趋势,因此能产生超前的控制作用,可以减少超调,减少调节时间;但是,微分环节的引入对系统抗干扰不利。

1.2 PID调节实例

PID控制实例

任务:无人机要悬停在10m的高度,假设 K p K_p Kp = 0.5
1. h 0 h_0 h0 = 2m, Δ h \Delta h Δh = 8m, K p ∗ Δ h K_p * \Delta h KpΔh = 4, h 1 h_1 h1 = 6m
2. h 1 h_1 h1 = 6m, Δ h \Delta h Δh = 4m, K p ∗ Δ h K_p * \Delta h KpΔh = 2, h 2 h_2 h2 = 8m
此时,也不难看出,比例调节无法实现无差调节,如果 K p K_p Kp设置过大,会发生超调;
3.如果,在实际过程中存在干扰,比如,无人机到达8m高度后,会有风向下吹,每次向下吹1m,此时 K p ∗ Δ h K_p * \Delta h KpΔh为1m,正好可以抵消风带来的影响,无人机悬停在8m处;
若引入了积分调节,假设 K i K_i Ki为0.1,总误差为:
Δ : 8 + 4 + 2 = 14 \Delta:8+4+2 = 14 Δ8+4+2=14依然可以上升1.4m;
4.此时,根据计算公式,无人机将超过10m,因此要引入微分项,由于误差较上一时刻减小,差值为负,通过和 K p K_p Kp相乘,得到一个合适的负值,避免过冲。

2. 两种数字式PID控制算法

  在实际计算机实现时,由于计算机控制是一种采样控制, 它只能根据采样时刻的偏差计算控制量,而不能像模拟控制那样连续输出控制量, 进行连续控制,所以实现的是离散形式的PID,即数字PID控制算法。

2.1位置式PID

  位置式PID是当前系统的实际位置,与想达到的预期位置的偏差,进行PID控制。其中积分项,近似为下列公式:
∫ 0 t e ( τ ) d τ = T ∑ j = 0 k e j \int_0^te(\tau)d\tau = T\sum_{j=0} ^ k e ^j 0te(τ)dτ=Tj=0kej
微分项近似成下列公式:
d e ( t ) d t = e ( k ) − e ( k − 1 ) T \frac{de(t)}{dt} = \frac{e(k) - e(k-1)}{T} dtde(t)=Te(k)e(k1)
所以公式(1)化为:
u k = K p e k + T K i ∑ j = 0 k e j + K d T [ e k − e k − 1 ] (2) u_k = K_p{e_k +T K_i\sum_{j=0}^ke_j + \frac{K_d}{T}[e_k-e_k-_1]}\tag{2} uk=Kpek+TKij=0kej+TKd[ekek1](2)
当采样时间足够小时,能够获得最够精确的结果,离散控制过程与连续过程非常接近。

  位置式PID在积分项达到饱和时,在积分环节的作用下,误差继续累加,一旦误差开始反向变化,系统需要一定时间从饱和区从饱和区退出,所以u(k)达到最大或者最小时,要停止积分环节作用,并且要有积分限幅和输出限幅。一般采用抗积分饱和算法,其思路是:如果上一次的输出控制量超过了饱和值,饱和值为正,则这一次只积分负的偏差,饱和值为负,这一次只积分正的偏差,从而避免系统长时间停留在饱和区。

2.2增量式PID

  增量式PID是指数字控制器的输出是控制量的增量 Δ u k \Delta u_k Δuk,而不是实际位置,增量式PID可以由位置式PID推出。
  增量式PID控制公式为:
Δ u k = u k − u k − 1 \Delta u_k = u_k - u_k-_1 Δuk=ukuk1 Δ u k = K p ( e k − e k − 1 ) + T k i e k + K d e k − 2 e k − 1 + e k − 2 T \Delta u_k=K_p(e_k - e_k-_1) + Tk_ie_k + K_d\frac{e_k - 2e_k-_1 + e_k-_2}{T} Δuk=Kp(ekek1)+Tkiek+KdTek2ek1+ek2 Δ u k = ( K p + T K i + K d T ) e k − ( K p + 2 K d T ) e k − 1 + K d T e k − 2 \Delta u_k = (K_p + TK_i + \frac{K_d}{T})e_k - (K_p + \frac{2K_d}{T})e_k-_1 + \frac{K_d}{T}e_k-_2 Δuk=(Kp+TKi+TKd)ek(Kp+T2Kd)ek1+TKdek2 Δ u k = A e k + B e k − 1 + C e k − 2 \Delta u_k = Ae_k + Be_k-_1 + Ce_k-_2 Δuk=Aek+Bek1+Cek2
其中, A = K p + T K i + K d T A = K_p + TK_i + \frac{K_d}{T} A=Kp+TKi+TKd B = K p + 2 K d T B = K_p + \frac{2K_d}{T} B=Kp+T2Kd C = K d T C = \frac{K_d}{T} C=TKd
增量式PID根据公式可以很好地看出,一旦确定了 K p 、 K i 、 K d K_p、K_i、K_d KpKiKd,只需要使用前后三次测量值偏差,即可求出控制增量。得出的控制增量没有误差累积。

3.参考资料

自动驾驶PID实现轨迹跟踪.
PID入门视频.

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值