导读
PID算法是工业上一种常用的控制算法,因其容易理解、实现简单、鲁棒性强等特性而得到广泛应用,除此之外,许多智能算法都需要以PID为基础才能真正应用到实际生产中。PID算法应用中最为重要的是参数的整定。通常,参数的整定高度依赖工程技术人员的经验,而且实际系统又是千差万别,存在着诸如非线性、时变、大滞后等因素。因此传统的经验整定方法既耗时又费力,整定得到的效果还不一定理想。近几年来,控制器的功能越来越强大,这些控制器大多带有PID参数自整定功能,如日本岛、国内的昌晖仪表、厦门宇电、福建虹润等都有这类自整定调节器。通过观察调节器的自整定过程,可以确认这类调节器采用的都是PID参数继电自整定法。为了进一步用好这种仪表,本文讨论控制器的PID自整定的原理和方法。
继电反馈自整定算法
1984年,Astrom等人提出了继电反馈算法:如果一个带有继电环节的系统最终达到稳定并且产生极限环振荡,那么可以利用振荡曲线的信息估计出被控过程的频率信息。
调节器的PID自整定过程
若测出了系统的一阶模型,或得出了系统的临界比例增益 K c K_c Kc和振荡周期 T c T_c Tc,则可很容易地设计出PID调节器。继电型自整定的基本想法是,在控制系统中设置两种模态:测试模态和调节模态。在测试模态下,调节器自动转换成位式调节,即当测量值小于设定值时,调节器输出为满量程,反之为零,使系统产生振荡,振荡过程中调节器自动提取被控对象的特征参数;而在调节模态下由系统的特征参数首先得出PID控制器,然后,由此控制器对系统进行调节。继电型PID自主控制结构如图1所示。当需要PID参数整定时,开关置于调整处,系统按继电反馈建立起稳定的极限环振荡后,就可以根据系系统响应特征确定PID参数。自整定计算完成后开关置于调节处,系统进入正常控制。
PID自整定的原理
测试模态下,系统的等效框图如图2所示。确定系统的振荡频率 ω c \omega_c ωc与临界增益 K c K_c Kc有多种方法,比较常用的是描述函数法,此方法实际上是根据非线性环节输入信号与输出信号之间基波分量关系来进行近似的一种有效方法。(建议先复习一下描述函数)
非线性环节的的描述函数
N
(
A
)
N(A)
N(A)是指:当输入是正弦信号
A
s
i
n
(
ω
t
)
Asin(\omega t)
Asin(ωt)时,输出信号的基波分量
Y
s
i
n
(
ω
t
+
φ
)
Ysin(\omega t + \varphi)
Ysin(ωt+φ)对输入正弦量的复数比,即
N
(
A
)
=
Y
A
∠
φ
=
A
1
2
+
B
1
2
A
∠
φ
N(A)=\frac{Y}{A \angle \varphi}= \frac{\sqrt{A_1^2 + B_1^2}}{A\angle \varphi}
N(A)=A∠φY=A∠φA12+B12
其中的
A
1
A_1
A1和
B
1
B_1
B1是输出信号的傅里叶级数的第一项的系数。
实际的带有回环的继电非线性环节的描述函数可以表示为
N
(
A
)
=
4
d
π
A
2
(
A
2
−
ε
2
−
j
ε
)
N(A)=\frac{4d}{\pi A^2}(\sqrt{A^2-\varepsilon^2}-j\varepsilon)
N(A)=πA24d(A2−ε2−jε)
公式中
A
A
A为正弦波幅值,
d
d
d为回环幅值,
ε
\varepsilon
ε为回环宽度的一半。这里考虑更简单的情况,假设继电环节为理想继电环节,即
ε
=
0
\varepsilon=0
ε=0,则可得到下式
N
(
A
)
=
4
d
π
A
N(A)=\frac{4d}{\pi A}
N(A)=πA4d
设被控对象的传递函数如下所示
G
(
s
)
=
K
e
−
τ
s
1
+
T
s
G(s)=\frac{Ke^{-\tau s}}{1+Ts}
G(s)=1+TsKe−τs
其中
K
K
K为对象的增益,
T
T
T为对象的时间常数,
τ
\tau
τ为对象的滞后时间。
考虑由具有传递函数
G
(
s
)
G(s)
G(s)的对象和具有继电特性的反馈部分组成的简单反馈系统如图2所示。这时系统的闭环特征方程发生振荡的条件可以写成:
1
+
N
(
A
)
G
(
s
)
=
0
(
s
=
j
ω
c
)
1+N(A)G(s)=0 \ \ \ (s=j\omega_c )
1+N(A)G(s)=0 (s=jωc)(奈奎斯特稳定判据),即
G
(
j
ω
c
)
=
−
1
/
N
(
A
)
G(j\omega_c)=-1/N(A)
G(jωc)=−1/N(A)。则可得出临界频率(穿越频率)
ω
c
\omega_c
ωc的增益
K
c
=
1
∣
G
(
j
ω
c
)
∣
=
N
(
A
)
K_c=\frac{1}{|G(j\omega_c)|}=N(A)
Kc=∣G(jωc)∣1=N(A)
最终我们得到系统的临界增益
K
c
=
4
d
π
A
K_c =\frac{4d}{\pi A}
Kc=πA4d
系统的振荡周期
T
c
T_c
Tc可以通过测量输出曲线相邻峰值的时间得到
到这里,我们就获得了 K c K_c Kc和 T c T_c Tc,按照Z-N表即可获得PID参数,如下所示
控制规律 | K p K_p Kp | T i T_i Ti | T d T_d Td |
---|---|---|---|
P | 0.5 K c 0.5K_{c} 0.5Kc | ||
PI | 0.45 K c 0.45K_{c} 0.45Kc | 0.83 T c 0.83T_{c} 0.83Tc | |
PID | 0.6 K c 0.6K_{c} 0.6Kc | 0.5 T c 0.5T_{c} 0.5Tc | 0.12 T c 0.12T_{c} 0.12Tc |
simulink仿真实验
搭建simulink仿真图,如下所示
将开关打到继电环节上,进行继电特性测试,以获取被控过程特性参数,得到下图
得到 T c = 2.9 s T_c=2.9s Tc=2.9s, K c = 29 K_c=29 Kc=29,按照Z-N整定表,整定得PID参数分别为 K p = 17.4 , K i = 11.9 , K d = 6.05 K_p = 17.4,K_i = 11.9, K_d = 6.05 Kp=17.4,Ki=11.9,Kd=6.05。得到参数后将开关打到PID控制器并输入控制器参数,仿真得到下图