串联型PID,并联型PID与标准型PID简要说明1
PID广泛应用于工业生产各个环节,然而对于不同PID结构会有一些差异,导致在调参时若按照常规的经验调试,结果将会有非常大的不同。
串联型PID(Serial PID)
串联型PID的三个环节由比例,积分和微分项串级而成,结构简图如下:
其传递函数为:
G
s
e
r
i
a
l
(
s
)
=
k
(
1
+
1
s
τ
i
)
(
1
+
s
τ
d
)
(1-1)
G_{serial}(s) = k(1+\frac{1}{s\tau_{i}})(1+s\tau_{d}) \tag{1-1}
Gserial(s)=k(1+sτi1)(1+sτd)(1-1)
若使用后向欧拉法将其离散化,即将:
s
=
1
−
z
−
1
T
s
(1-2)
s=\frac{1-z^{-1}}{T_s} \tag{1-2}
s=Ts1−z−1(1-2)
带入式(1-1)中,可得到:
o
u
t
(
m
)
=
o
u
t
(
m
−
1
)
+
A
e
r
r
(
m
)
+
B
e
r
r
(
m
−
1
)
+
C
e
r
r
(
m
−
2
)
(1-3)
out(m)=out(m-1)+Aerr(m)+Berr(m-1)+Cerr(m-2) \tag{1-3}
out(m)=out(m−1)+Aerr(m)+Berr(m−1)+Cerr(m−2)(1-3)
其中:
- o u t ( m ) out(m) out(m) —— 第m时刻控制器输出
- e r r ( m ) err(m) err(m) —— 第m时刻的误差
- T s T_s Ts —— 离散化控制周期
- A = k ( T s 2 + T s τ d + τ i τ d + τ i T s ) τ i T s A = \frac{k(T_s^2+T_s\tau_d+\tau_i\tau_d+\tau_iT_s)}{\tau_iT_s} A=τiTsk(Ts2+Tsτd+τiτd+τiTs)
- B = − k ( T s τ d + 2 τ i τ d + τ i T s ) τ i T s B = -\frac{k(T_s\tau_d+2\tau_i\tau_d+\tau_i T_s)}{\tau_iT_s} B=−τiTsk(Tsτd+2τiτd+τiTs)
- C = k τ d T s C = \frac{k\tau_d}{T_s} C=Tskτd
式(1-3)即为串联型PID的离散化增量式实现。利用递推的方法可得到绝对式实现如下:
o
u
t
(
m
)
=
A
∑
n
=
2
m
e
r
r
(
n
)
+
B
∑
n
=
1
m
−
1
e
r
r
(
n
)
+
C
∑
n
=
0
m
−
2
e
r
r
(
n
)
(1-4)
out(m)=A\sum_{n=2}^{m}{err(n)}+B\sum_{n=1}^{m-1}{err(n)}+C\sum_{n=0}^{m-2}{err(n)} \tag{1-4}
out(m)=An=2∑merr(n)+Bn=1∑m−1err(n)+Cn=0∑m−2err(n)(1-4)
并联型PID(Parallel PID)
并联型PID的三个环节由比例,积分和微分项并联而成,其结构简图如下:
其传递函数为:
G
p
a
r
a
l
l
e
l
(
s
)
=
k
p
+
k
i
s
+
k
d
s
(2-1)
G_{parallel}(s) = k_{p} + \frac{k_{i}}{s} + k_{d}s \tag{2-1}
Gparallel(s)=kp+ski+kds(2-1)
串联型与并联型二者的系数有所不同,其关系如下:
k
p
=
k
(
1
+
τ
d
τ
i
)
k
i
=
k
τ
i
k
d
=
k
τ
d
(2-2)
k_{p} = k(1 + \frac{\tau_{d}}{\tau_{i}}) \\ k_{i} = \frac{k}{\tau_{i}} \\ k_{d} = k\tau_{d} \tag{2-2}
kp=k(1+τiτd)ki=τikkd=kτd(2-2)
使用后向欧拉离散化,可得到并联型PID的离散化增量式实现如下:
o
u
t
(
m
)
=
o
u
t
(
m
−
1
)
+
k
p
(
e
r
r
(
m
)
−
e
r
r
(
m
−
1
)
)
+
k
i
T
s
e
r
r
(
m
)
+
k
d
T
s
(
e
r
r
(
m
)
−
2
e
r
r
(
m
−
1
)
+
e
r
r
(
m
−
2
)
)
(2-3)
out(m)=out(m-1)+k_p(err(m)-err(m-1))+k_iT_s err(m)+\frac{k_d}{T_s}(err(m)-2err(m-1)+err(m-2)) \tag{2-3}
out(m)=out(m−1)+kp(err(m)−err(m−1))+kiTserr(m)+Tskd(err(m)−2err(m−1)+err(m−2))(2-3)
若使用Tustin方式离散化,即将:
s
=
2
T
s
z
−
1
z
+
1
(2-4)
s=\frac{2}{T_s}\frac{z-1}{z+1} \tag{2-4}
s=Ts2z+1z−1(2-4)
带入式(2-1)中,并将
k
d
k_d
kd置为0,可得到:
o
u
t
(
m
)
=
o
u
t
(
m
−
1
)
+
(
k
p
+
T
s
k
i
2
)
e
r
r
(
m
)
+
(
T
s
k
i
2
−
k
p
)
e
r
r
(
m
−
1
)
(2-5)
out(m)=out(m-1)+(k_p+\frac{T_sk_i}{2})err(m)+(\frac{T_sk_i}{2}-k_p)err(m-1) \tag{2-5}
out(m)=out(m−1)+(kp+2Tski)err(m)+(2Tski−kp)err(m−1)(2-5)
此即为并联型PI的离散化增量式实现。同样利用递推的方法可以得到绝对式实现如下:
o
u
t
(
m
)
=
k
p
e
r
r
(
m
)
+
k
i
T
s
∑
n
=
1
m
e
r
r
(
n
)
+
k
d
T
s
(
e
r
r
(
m
)
−
e
r
r
(
m
−
1
)
)
(2-6)
out(m)=k_perr(m)+k_iT_s\sum_{n=1}^{m}{err(n)}+\frac{k_d}{T_s}(err(m)-err(m-1)) \tag{2-6}
out(m)=kperr(m)+kiTsn=1∑merr(n)+Tskd(err(m)−err(m−1))(2-6)
标准型PID(Standard or mixed or Ideal PID)
标准型PID与上述二者都不同,其结构简图如下:
其传递函数为:
G
s
t
a
n
d
a
r
d
(
s
)
=
K
p
(
1
+
1
s
T
i
+
s
T
d
)
(3-1)
G_{standard}(s) = K_{p}(1 + \frac{1}{sT_{i}} + sT_{d}) \tag{3-1}
Gstandard(s)=Kp(1+sTi1+sTd)(3-1)
此时有:
K
p
=
k
(
1
+
τ
d
τ
i
)
T
i
=
τ
i
+
τ
d
T
d
=
τ
d
τ
i
τ
d
+
τ
i
(3-2)
K_{p} = k(1 + \frac{\tau_{d}}{\tau_{i}}) \\ T_{i} = \tau_{i} + \tau_{d} \\ T_{d} = \frac{\tau_{d}\tau_{i}}{\tau_{d} + \tau_{i}} \tag{3-2}
Kp=k(1+τiτd)Ti=τi+τdTd=τd+τiτdτi(3-2)
使用后向欧拉离散化方法,可得到标准型PID的离散化增量式实现:
o
u
t
(
m
)
=
o
u
t
(
m
−
1
)
+
K
p
(
e
r
r
(
m
)
−
e
r
r
(
m
−
1
)
)
+
K
p
T
i
T
s
e
r
r
(
m
)
+
K
p
T
d
T
s
(
e
r
r
(
m
)
−
2
e
r
r
(
m
−
1
)
+
e
r
r
(
m
−
2
)
)
(3-3)
out(m)=out(m-1)+K_p(err(m)-err(m-1))+\frac{K_p}{T_i}T_s err(m)+\frac{K_pT_d}{T_s}(err(m)-2err(m-1)+err(m-2)) \tag{3-3}
out(m)=out(m−1)+Kp(err(m)−err(m−1))+TiKpTserr(m)+TsKpTd(err(m)−2err(m−1)+err(m−2))(3-3)
若使用Tustin方式离散化,并将
K
d
K_d
Kd置0,则得到标准型PI的离散化增量式实现:
o
u
t
(
m
)
=
o
u
t
(
m
−
1
)
+
(
K
p
+
K
p
T
s
2
T
i
)
e
r
r
(
m
)
+
(
K
p
T
s
2
T
i
−
K
p
)
e
r
r
(
m
−
1
)
(3-4)
out(m)=out(m-1)+(K_p+\frac{K_pT_s}{2T_i})err(m)+(\frac{K_pT_s}{2T_i}-K_p)err(m-1) \tag{3-4}
out(m)=out(m−1)+(Kp+2TiKpTs)err(m)+(2TiKpTs−Kp)err(m−1)(3-4)
式(3-4)即为TI的快速电流环(FCL)中速度优化型PI控制器实现原理。值得注意的是,FCL中的各变量均为标幺值,因此实际实现需要稍作转换,即:
K
p
标
幺
=
K
p
∗
I
b
a
s
e
V
b
a
s
e
K
i
标
幺
=
K
i
(3-5)
K_{p标幺}=K_p*\frac{I_{base}}{V_{base}} \\ K_{i标幺}=K_i \tag{3-5}
Kp标幺=Kp∗VbaseIbaseKi标幺=Ki(3-5)
其中:
- V b a s e V_{base} Vbase —— 电压标幺基值
- I b a s e I_{base} Ibase —— 电流标幺基值
最后,使用同样的递推法,可以得到绝对式实现:
o
u
t
(
m
)
=
K
p
e
r
r
(
m
)
+
K
p
T
i
T
s
∑
n
=
1
m
e
r
r
(
n
)
+
K
p
T
d
T
s
(
e
r
r
(
m
)
−
e
r
r
(
m
−
1
)
)
(3-6)
out(m)=K_p err(m) + \frac{K_p}{T_i}T_s\sum_{n=1}^{m}err(n)+\frac{K_pT_d}{T_s}(err(m)-err(m-1)) \tag{3-6}
out(m)=Kperr(m)+TiKpTsn=1∑merr(n)+TsKpTd(err(m)−err(m−1))(3-6)
三者区别
-
三者最重要的区别在于不同结构的参数对于控制器行为影响的不同。并联型PID实现了比例项,积分项和微分项的完全解耦,调节其中的 k p , k i k_{p},k_{i} kp,ki与 k d k_{d} kd即可独立的作用在比例,积分和微分项上;而标准形式的 K p K_{p} Kp将同时影响比例,积分和微分三项行为。串联型类似。工业应用中,标准形式和并联形式的PID应用的最为广泛,且Simulink中也可以看到,PID的形式选择分为Parallel及Ideal(即Standard):
-
值得注意的是比例项和积分项都与前文相同,而微分项,MATLAB中用 D ∗ N ∗ s / ( s + N ) D*N*s/(s+N) D∗N∗s/(s+N)代替了纯微分项 D s Ds Ds。将其化简可以得到:
D s ∗ 1 1 N s + 1 (4-1) Ds*\frac{1}{\frac{1}{N}s+1} \tag{4-1} Ds∗N1s+11(4-1)
前面 D s Ds Ds为正常的微分项,后面则乘上了一个一阶低通滤波器,而 N N N即为低通截止频率,对于Ideal类型的控制器,此即为改进型标准PID。该部分的离散化与标准型PID描述相同,唯一的差别在于微分项需要经过一次滤波处理。此处给出绝对式的两种实现(改进型并联PID同理),实现一(先滤波,后微分):
o u t ( m ) = K p e r r ( m ) + K p T i T s ∑ n = 1 m e r r ( n ) + K p T d T s ( f i l t e r e r r ( m ) − f i l t e r e r r ( m − 1 ) ) (4-2) out(m)=K_perr(m)+\frac{K_p}{T_i}T_s\sum_{n=1}^{m}err(n)+\frac{K_pT_d}{T_s}(filter_{err}(m)-filter_{err}(m-1)) \tag{4-2} out(m)=Kperr(m)+TiKpTsn=1∑merr(n)+TsKpTd(filtererr(m)−filtererr(m−1))(4-2)
其中:- f i l t e r e r r ( m ) = K 1 ∗ e r r ( m ) + K 2 ∗ f i l t e r e r r ( m − 1 ) filter_{err}(m)=K1*err(m)+K2*filter_{err}(m-1) filtererr(m)=K1∗err(m)+K2∗filtererr(m−1)
- K 1 = 2 π N T s 1 + 2 π N T s K1=\frac{2\pi NT_s}{1+2\pi NT_s} K1=1+2πNTs2πNTs
- K 2 = 1 1 + 2 π N T s K2=\frac{1}{1+2\pi NT_s} K2=1+2πNTs1
实现二(先微分,后滤波):
o u t ( m ) = K p e r r ( m ) + K p T i T s ∑ n = 1 m e r r ( n ) + U d ( m ) (4-3) out(m)=K_p err(m)+\frac{K_p}{T_i}T_s\sum_{n=1}^{m}err(n)+U_d(m) \tag{4-3} out(m)=Kperr(m)+TiKpTsn=1∑merr(n)+Ud(m)(4-3)
其中:- U d ( m ) = K 1 ∗ [ K p T d T s ( e r r ( m ) − e r r ( m − 1 ) ) ] + K 2 ∗ U d ( m − 1 ) U_d(m)=K1*[\frac{K_p T_d}{T_s}(err(m)-err(m-1))]+K2*U_d(m-1) Ud(m)=K1∗[TsKpTd(err(m)−err(m−1))]+K2∗Ud(m−1)
- K 1 = 2 π N T s 1 + 2 π N T s K1=\frac{2\pi NT_s}{1+2\pi NT_s} K1=1+2πNTs2πNTs
- K 2 = 1 1 + 2 π N T s K2=\frac{1}{1+2\pi NT_s} K2=1+2πNTs1
Note
- 无论是串联型,并联型还是标准型,在实现上都分为绝对式PID还是增量式PID。这与PID类型无关,只是实现手段不同。