数字 PID 控制
在现代由于计算机进入控制领域,用数字计算机代替模拟计算机调节器组成计算机控制系
统,用软件实现 PID 控制算法,而且可以利用计算机的逻辑功能,使 PID 控制更加灵活。计
算机控制是一种采样控制,它只能根据采样时刻的偏差值计算控制量。因此,连续 PID 控制
算法不能直接使用,需要采用离散化方法。在计算机 PID 控制中,使用的是数字 PID 控制
器。目前有位置式 PID 控制算法以及增量式 PID 控制算法[5]。
位置式 PID 控制算法
在位置式 PID 控制算法中,按模拟 PID 控制算法,以一系列的采样时刻点 kTs 代表连续时间
t
e
kT
t,以矩形法数值积分近似代替积分,以一阶后向差分近似代替微分,即
t
0
de
j
)1
j
kT
)1
0
T
jT
((
T
T
(
t
(
t
e
)
j
)
(
k
(
k
e
)
e
(
)
k
)
)
(
k
0
e
k
(
)
e
T
e
T
dt
可得位置式 PID 表达式
(
ku
)
k
p
(
(
ke
)
T
T
i
k
j
(
te
)
0
T
d
T
(
(
ke
)
(
ke
)))1
(2.4)
或
(
ku
)
k
p
(
ke
)
k
i
k
j
)(
Tte
k
d
0
(
ke
)
)1
(
ke
T
(2.3)
(2.5)
k
d
Tk
d
p
k
i
式中,
)(ku 为第 k 次采样时刻的计算机输出值。
,
。
k
p
T
i
( ke
)1
和 )(ke 分别为第
( k 和第 k 时刻所得的偏差信号,
)1
但是该控制算法由于采用了全量输出,所以每次输出均与过去的状态有关,计算时要对。
)(ke 量进行累加,计算机运算工作量大。而且,因为计算机输出的控制量 u(k)对应的是执行
机构的实际位置,如计算机出现故障,u(k)可能会出现大幅度的变化,会引起执行机构位置
的大幅度变化,这种情况往往是生产实践中不允许的,在某些场合,还可能造成重大的生产
事故,因而产生了增量式 PID 控制的控制算法。所谓的增量式 PID 是指数字控制器的输出只
是控制量的增量 u(k)。
增量式 PID 控制算法
增量式控制器是指控制器每次输出的只是控制量的增量,当执行机构,例如步进电机,需要
的是增量而不是位置量的绝对数值时,就可以使用增量式 PID 控制器进行控制[6]。
增量
)(ku ,当执行机构需要的是控制量的增量时,应采用增量式 PID 控制。根据递推原理
可得
u
(
k
)1
k
e
(
k
p
)1
k
i
k
j
1
0
e
(
)
Tj
k
d
e
(
k
)1
T
e
(
k
)2
(2.6)
用式(2.5)减式(2.6),可得增量式 PID 控制算法
Tk
ek
))1
(
e
(
k
(
k
u
k
(
k
)
e
)
p
(
)
i
e
(
k
)
2
e
(
k
k
d
T
)1
e
(
k
)2
(2.7)
式(2.7)称为增量式 PID 控制算法,将其进一步可改写为
)(
ku
)(
kea
0
(
kea
1
)1
(
kea
2
)2
(2.8)
a
0
k
p
1(
T
T
i
T
d
T
)
,
a
1
k
p
21(
T
d
T
i
)
,
a 2
k
T
d
p T
i
式中,
增量式控制虽然只是算法上作了一点改进,却带来了不少的优点:
(1) 由于计算机输出增量,所以误动作时影响小,必要时可用逻辑判断的方法去掉。
(2) 手动/自动切换时冲击小,便于实现无扰动切换。此外,当计算机发生故障时,由于输
出通道或执行装置具有信号的锁存作用,故仍能保持原值。
(3) 算式中不需要累加。控制增量 u(k)的确定,仅与最近 k 次的采样值有关,
所以较容易通过加权处理而获得比较好的控制效果。
但是增量式控制也有其不足之处:积分截断效应大,有静态误差;溢出的影响大。因此,在
选择时不可一概而论,一般认为在以晶闸管作为执行器或在控制精度.要求高的系统中,可
采用位置式控制算法,而在以步进电动机或电动阀门作为执行器的系统中,则可采用增量式
控制算法。
积分分离 PID 控制算法
对于 PID 控制的改进主要体现在对其参数整定的先进技术和控制结构的研究上。参数整定的
先进技术主要是通过模糊、神经网络、自适应控制等技术实现的;控制结构的改进主要有:
积分分离、抗积分饱和、不完全微分、微分先行、前馈补偿、带死区等。实际应用中较为广
泛的是积分分离。虽然 PID 的应用具有广泛性,但由于其参数整定的困难,大多工业场合采
用 PI 控制,牺牲微分控制的作用以提高参数整定的方便和快速[8]。
在普通 PID 控制中,引入积分环节的目的主要是为了消除静差。但在过程的启动、结束或大
幅度增减设定时,短时间内系统输出有很大偏差,会造成 PID 运算的积分积累,致使控制量
超过了执行机构可能允许的最大动作范围对应的极限控制量,引起系统较大的超调,甚至引
起系统较大的振荡,这在生产过程中是绝对不允许的。
积分分离控制基本思想是;当被控量与设定值偏差较大时,取消积分的作用,以免由于积分
作用使系统稳定性降低,超调量增大;当被控量接近给定值时,引入积分控制,以便消除静
差,提高控制精度。其具体实现步骤如下[9]:
a) 根据实际情况,人为设定阈值ε>0;
b) 当| error ( k) | >ε时,采用 PD 控制,可避免产生过大的超调,又使系统有较快的响
应;
c) 当| error ( k) | ≤ε时,采用 PID 控制,以保证系统的控制精度。
积分分离控制算法可表示为[10]:
)(u
k
error
error
)(
k
k
)(
kTj
k
p
k
j
0
i
式中: T ——采样时间;
β ——积分项的开关系数。
error
error
)(
k
)(
k
1
0
(
error
)(
k
error
(
k
/))1
T
d
(3.1)
(3.2)
开始
参数初始化
采入rin(k)及yout(k)
计算偏差值error
e
rror
)(
k
是
PID控制
否
PD控制
控制器的输出
参数更新
返回
图3.1 积分分离PID控制算法程序框图
积分分离 PID 控制仿真
设被控对象为一个延迟对象:
采样时间为 20s,延迟时间为 4 个采样时
间,即 80s,被控对象离散化为:
y(k)=-den(2)y(k-1)+mum(2)u(k-5)
(3.3)
仿真:采用 M 语言进行仿真。取 M=1,采用积分分离式 PID 控制器进行阶跃响应,对积
分分离式 PID 控制算进行改进,采用分段积分分离方式,即根据误差绝对值的不同,采用不
同的积分强度。仿真中指令信号为 r(k)=40,控制器输出限制在[-110,110],其阶跃式跟踪结
果如图 3.3 所示。取 M=2,采用普通 PID 控制,其阶跃式跟踪结果如图 3.5 所示。
图 3.2 积分分离 PID 的 u(k)的值
图 3.3 积分分离式 PID 阶跃跟踪(M=1)
图 3.4 普通 PID 的 u(k)的值
图 3.5 采用普通 PID 阶跃跟踪(M=2)
不完全微分 PID 控制算法及仿真
不完全微分 PID 控制算法
不完全微分 PID 控制算法一
在 PID 控制中,微分信号的引入可以改善系统的动态特性,但也易引入高频干扰,在误
差扰动突变的时候尤其显出微分项的不足。要想解决这个问题,可以在控制算法中加入低通
滤 波 器 , 方 法 之 一 就 是 在 PID 算 法 中 加 入 一 个 一 阶 惯 性 环 节 ( 低 通 滤 波 器 )
可使得系统的性能得到改善[13]。
)(Gf
s
1
sT
f
1
不完全微分 PID 的结构如图所示,其中图 4.1 是将低通滤波器直接加在微分环节上,图
4.2 是将低通滤波器加在整个 PID 控制器之后。下面介绍一下图 4.1 所示的不完全微分 PID,
即算法一。
E(S)
pk
pk
sT1
STk
Dp
1
sT
f
U(s)
图 4.1 不完全微分算法结构图(算法一)
图 4.1 所示的不完全微分结构,其传递函数为
)(
sU
(
k
p
k
p
T
I
/
s
s
Tk
Dp
1
sT
f
)
)(
sE
)(
su
p
)(
su
I
u
D
)(
s
(4.1)
将式(4.1)离散化为:
现将 uD(k)推导:
)(
ku
)(
ku
p
)(
ku
I
u
D
)(
k
(4.2)
uD
)(
s
sTk
Dp
1
sT
f
)(
sE
写成微分方程:
)(
ku
D
T
f
)(
t
du
D
dt
Tk
Dp
)(
t
derror
dt
取采样时间为 Ts,将上式离散化为:
)(
kuT
D
f
(
ku
D
T
s
1
)
Tk
Dp
error
)(
k
(
k
)1
error
T
s
)(
ku
D
经整理得:
(4.3)
(4.4)
(4.5)
u
D
)(
k
T
f
T
f
T
s
u
D
(
k
)1
k
p
T
D
T
f
T
s
(
error
)(
k
error
(
k
))1
(4.6)
令
Tf
Ts
Tf
,则
Ts
Tf
Ts
1
,显然有<1,1-<1 成立,则可得
不完全微分算法:
式中,
K D
k
p
。
K
D
1(
)(
error
)(
k
error
(
k
))1
(
ku
D
)1
(4.7)
)(
ku
D
T /
T
D
s
可 见 , 不 完 全 微 分 的
uD 多 了 一 项
)(k
uD
( k
)1
, 而 原 微 分 系 数 由 kd 降 至
kd
1(
)
。
以上各式中,Ts 为采样时间,
Ts ,kp 为比例系数,TI 和 TD 分别为积分时间常数
t
和微分时间常数,Tf 为滤波器系数[14]。