本文从数字化实现的角度理解PI(proportional integral, PI)环节,为数字化实现PI打下基础。在电机控制环节中,PI环节应用广泛,如电机FOC控制中的内环——电流环,外环——速度环,又如永磁同步电机中无位置传感器中的PI环节。了解PI数字化实现的过程,有助于理解控制算法在离散系统中的实现过程。PI环顾名思义,一个比例环节,一个积分环节。输入误差在起点处分道,沿着两条支路前进,在终点处汇合,得到PI环的输出。
PI表达式离散化的前提,可以用微积分的思想来理解。表述如下:
u ( t ) ≈ u ( k ) ( 输出 ) u\left( t \right) \approx u\left( k \right) \left( \text{输出} \right) u(t)≈u(k)(输出)
e ( t ) ≈ e ( k ) (输入) e\left( t \right) \approx e\left( k \right) \text{(输入)} e(t)≈e(k)(输入)
∫ 0 t e ( t ) d t = ∑ i = 0 k e ( i ) Δ t = ∑ i = 0 k T s e ( i ) \int_0^t{e\left( t \right) dt=\sum_{i=0}^k{e\left( i \right) \Delta t=\sum_{i=0}^k{T_se\left( i \right)}}} ∫0te(t)dt=∑i=0ke(i)Δt=∑i=0kTse(i)
d e ( t ) d t ≈ e ( k ) − e ( k − 1 ) Δ t = e ( k ) − e ( k − 1 ) T s \frac{\mathrm{d}e\left( t \right)}{\mathrm{d}t}\approx \frac{e\left( k \right) -e\left( k-1 \right)}{\Delta t}=\frac{e\left( k \right) -e\left( k-1 \right)}{T_s} dtde(t)≈Δte(k)−e(k−1)=Tse(k)−e(k−1)
上式中,
T
s
T_s
Ts-采样周期,k-为采样序号,k=0,1,2…
第一种离散实现方式
第一种离散化实现的方式中,给出的例子是PID离散化表达方式,当只关注PI环节时,令表达式中的 K d ( K D ) = 0 K_d\left( K_D \right) =0 Kd(KD)=0即可去掉微分环节,得到PI离散化表达方式。
位置式PID算法,离散化表达式为,
u
(
k
)
=
K
P
{
e
(
k
)
+
T
T
I
∑
i
=
0
k
e
(
i
)
+
T
D
T
[
e
(
k
)
−
e
(
k
−
1
)
]
}
=
K
P
e
(
k
)
+
K
I
∑
i
=
0
k
e
(
i
)
+
K
D
[
e
(
k
)
−
e
(
k
−
1
)
]
u\left( k \right) =K_P\left\{ e\left( k \right) +\frac{T}{T_I}\sum_{i=0}^k{e\left( i \right) +\frac{T_D}{T}\left[ e\left( k \right) -e\left( k-1 \right) \right]} \right\} \\ =K_Pe\left( k \right) +K_I\sum_{i=0}^k{e\left( i \right) +K_D\left[ e\left( k \right) -e\left( k-1 \right) \right]}
u(k)=KP{e(k)+TITi=0∑ke(i)+TTD[e(k)−e(k−1)]}=KPe(k)+KIi=0∑ke(i)+KD[e(k)−e(k−1)]
为了易于数字化实现,将其写为增量式PID算法,
Δ
U
o
(
k
)
=
K
P
{
[
e
(
k
)
−
e
(
k
−
1
)
]
+
T
T
I
e
(
k
)
+
T
D
T
[
e
(
k
)
−
2
e
(
k
−
1
)
+
e
(
k
−
2
)
]
}
U
(
k
)
=
Δ
u
(
k
)
+
U
(
k
−
1
)
\Delta U_o\left( k \right) =K_P\left\{ \left[ e\left( k \right) -e\left( k-1 \right) \right] +\frac{T}{T_I}e\left( k \right) +\frac{T_D}{T}\left[ e\left( k \right) -2e\left( k-1 \right) +e\left( k-2 \right) \right] \right\} \\ U\left( k \right) =\Delta u\left( k \right) +U\left( k-1 \right)
ΔUo(k)=KP{[e(k)−e(k−1)]+TITe(k)+TTD[e(k)−2e(k−1)+e(k−2)]}U(k)=Δu(k)+U(k−1)
或者
Δ
U
o
(
k
)
=
K
p
{
[
e
(
k
)
−
e
(
k
−
1
)
]
}
+
K
i
T
s
e
(
k
)
+
K
d
T
s
[
e
(
k
)
−
2
e
(
k
−
1
)
+
e
(
k
−
2
)
]
U
(
k
)
=
Δ
u
(
k
)
+
U
(
k
−
1
)
\Delta U_o\left( k \right) =K_p\left\{ \left[ e\left( k \right) -e\left( k-1 \right) \right] \right\} +K_iT_se\left( k \right) +\frac{K_d}{T_s}\left[ e\left( k \right) -2e\left( k-1 \right) +e\left( k-2 \right) \right] \\ U\left( k \right) =\Delta u\left( k \right) +U\left( k-1 \right)
ΔUo(k)=Kp{[e(k)−e(k−1)]}+KiTse(k)+TsKd[e(k)−2e(k−1)+e(k−2)]U(k)=Δu(k)+U(k−1)
上式中,
U
(
k
)
U\left( k \right)
U(k)是控制器的输出,递推至最开始,需要对
U
(
0
)
U\left( 0 \right)
U(0),
e
(
0
)
e\left( 0 \right)
e(0),
e
(
1
)
e\left( 1 \right)
e(1)赋初值。在增量式PID算法的两种表达式中,系数关系为
K
P
=
K
p
,
K
I
=
K
i
T
s
,
K
d
=
K
d
T
s
K_P=K_p, K_I=K_iT_s, K_d=\frac{K_d}{T_s}
KP=Kp,KI=KiTs,Kd=TsKd。
第二离散实现方式(推荐)
U p ( k ) = K p e ( k ) ; U_{p\left( k \right)}=K_pe_{\left( k \right)}\text{;} Up(k)=Kpe(k);
U i ( k ) = K i T s e ( k ) + U i ( k − 1 ) ; % U i ( k ) + = K i T s e ( k ) U_{i\left( k \right)}=K_iT_se_{\left( k \right)}+U_{i\left( k-1 \right)}\,\,; \%U_{i\left( k \right)}+=K_iT_se_{\left( k \right)} Ui(k)=KiTse(k)+Ui(k−1);%Ui(k)+=KiTse(k)
U o u t ( k ) = U p ( k ) + U i ( k ) ; {U_{out}}_{\left( k \right)}=U_{p\left( k \right)}+U_{i\left( k \right)}\text{;} Uout(k)=Up(k)+Ui(k);
第二种离散方式与第一种离散方式是等价的,往后递推一步,得到 k + 1 k+1 k+1步的表达式。
U p ( k + 1 ) = K p e ( k + 1 ) U_{p\left( k+1 \right)}=K_pe_{\left( k+1 \right)} Up(k+1)=Kpe(k+1)
U i ( k + 1 ) = K i T s e ( k + 1 ) + U i ( k ) ; % U i ( k + 1 ) + = K i T s e ( k + 1 ) U_{i\left( k+1 \right)}=K_iT_se_{\left( k+1 \right)}+U_{i\left( k \right)}\,\,; \%U_{i\left( k+1 \right)}+=K_iT_se_{\left( k+1 \right)} Ui(k+1)=KiTse(k+1)+Ui(k);%Ui(k+1)+=KiTse(k+1)
U o u t ( k + 1 ) = U p ( k + 1 ) + U i ( k + 1 ) {U_{out}}_{\left( k+1 \right)}=U_{p_{\left( k+1 \right)}}+U_{i\left( k+1 \right)} Uout(k+1)=Up(k+1)+Ui(k+1)
k
+
1
k+1
k+1与
k
k
k步的输出结果做差
Δ
U
=
K
p
[
e
(
k
+
1
)
−
e
(
k
)
]
+
K
i
T
s
e
(
k
+
1
)
\Delta U=K_p\left[ e_{\left( k+1 \right)}-e_{\left( k \right)} \right] +K_iT_se_{\left( k+1 \right)}
ΔU=Kp[e(k+1)−e(k)]+KiTse(k+1)
从做差的结果可以看出,两种PI离散的方式等价。
在实际的工作环境中,还需考虑PI饱和的问题,此时,需要进行抗饱和处理。
参考文献
[1] PID控制器参数整定方法及其应用研究, 浙江大学硕士, 何芝强, 2005
扩充材料