模糊控制笔记(三)模糊控制系统与模糊PID
本文章所有知识点均为作者本人学习刘杰、李允公等老师的教材《智能控制与MATLAB实用技术》时所作笔记,在此发自肺腑地表达对老师们辛勤劳动的感谢和尊敬,也安利一下这本书,对入门智能控制的同学们来说是一本极其优秀的教材!
1. 模糊控制系统
1) 量化
一般地,根据输入信号的取值,将其分为几个等级,即进行量化的操作。如,设输入信号
x
∈
[
1
,
10
]
x \in [1,10]
x∈[1,10],我们有意将其量化为4份,即
n
=
4
n=4
n=4,那么量化后的离散论域为
N
=
{
−
4
,
−
3
,
−
2
,
−
1
,
0
,
1
,
2
,
3
,
4
,
5
}
N=\{-4, -3, -2, -1, 0, 1, 2, 3, 4, 5\}
N={−4,−3,−2,−1,0,1,2,3,4,5},而
x
x
x在
N
N
N上相应地需要进行量化的操作。
原论域中的某一元素
a
a
a经过量化后得到离散论域
N
N
N中的元素
b
b
b,则有:
b
=
k
(
a
−
x
H
−
x
L
2
)
b=k\left( a-\frac{x_H-x_L}{2} \right)
b=k(a−2xH−xL)其中
x
H
x_H
xH与
x
L
x_L
xL分别是原论域中
x
x
x的上下限,
k
k
k为量化因子:
k
=
2
n
x
H
−
x
L
k=\frac{2n}{x_H-x_L}
k=xH−xL2n
以上述例子为例,原论域
x
∈
[
1
,
10
]
x \in [1,10]
x∈[1,10],离散论域
N
=
{
−
4
,
−
3
,
−
2
,
−
1
,
0
,
1
,
2
,
3
,
4
,
5
}
N=\{-4, -3, -2, -1, 0, 1, 2, 3, 4, 5\}
N={−4,−3,−2,−1,0,1,2,3,4,5},那么量化因子为
k
=
2
n
x
H
−
x
L
=
2
×
4
10
−
1
=
8
9
k=\frac{2n}{x_H-x_L}=\frac{2 \times 4}{10-1}=\frac{8}{9}
k=xH−xL2n=10−12×4=98
对于原论域中的元素
a
=
3
a=3
a=3,其在离散论域
N
N
N中对应的元素
b
b
b应为
b
=
k
(
a
−
x
H
−
x
L
2
)
=
8
9
×
(
3
−
10
−
1
2
)
=
−
4
3
≈
−
1.33
b=k\left( a-\frac{x_H-x_L}{2} \right)=\frac{8}{9}\times \left(3-\frac{10-1}{2} \right)=-\frac{4}{3} \approx-1.33
b=k(a−2xH−xL)=98×(3−210−1)=−34≈−1.33取整后为
b
=
−
1
b=-1
b=−1。
2) 模糊控制系统组成
一般的模糊控制系统组成如下图。
可以简单理解为:将经典PID控制回路中的PID模块改成了模糊控制模块。其中,模糊控制器的内部结构可以分为3部分:
在系统控制时,输入信号(往往是期望值与返回值的误差
e
e
e进入模糊控制器,先进行模糊化,即将连续的信号转为离散的信号,将原论域转为离散论域;之后根据离散论域中的离散值,在模糊规则库中采取相应的模糊控制规则;最后将控制信号再进行一步逆操作,把离散论域转化回原论域进行输出。
3) 模糊规则
由模糊控制的定义可以知道,模糊控制利用的是人们在长期工程实践中总结出来的控制规律或经验,而不是精确的数学计算。例如,对于在限速60km/h路段驾驶的司机来说,当司机通过感官感受到“车速快”这一“感性”结论后,就会采取“松油门并踩刹车”的操作,这一系列动作中并不含有“定量”的数值(如将刹车踏板踩下几厘米),而是依靠司机的经验和直觉。
因此,为了模拟这一“依靠直觉”的过程,就需要建立这样一套模糊规则,使得程序能够在面临一些情况时,按照人类的经验给出“相对模糊且大概”的调整方式,而不是定量的调整。
对于上面司机的例子来说,他在限速路段行车过程中所面临的所有情况可能如下:
若车速过多大于60,则松开油门并踩刹车;
若车速大于60不多,则松开油门并轻踩刹车;
若车速略微高于60,则松开油门,不踩刹车;
若车速等于60,则保持现状,即油门和刹车均不移动;
若车速略微低于60,则轻踩油门;
若车速低于60不多,则踩油门;
若车速过低,则甚至可能考虑切换档位。
一般地,在控制理论中,通过比较给定值和实际值的误差大小,指定相应的决策策略。对于误差来说,分为正大、正中、正小、零、负小、负中、负大几种情况,用PB、PM、PS、ZE、NS、NM、NB表示。
对于上述行车的例子,设车速与规定车速60的误差为
e
e
e,则可以表示为:
if e == PB, then 油门 == NB and 刹车 == NM;
if e == PM, then 油门 == NB and 刹车 == NS;
if e == PS, then 油门 == NB and 刹车 == ZE;
if e == ZE, then 油门 == ZE and 刹车 == ZE;
if e == NS, then 油门 == PS and 刹车 == ZE;
if e == NM, then 油门 == PM and 刹车 == ZE;
if e == NB, then 油门 == PB and 刹车 == ZE (or 档位 += 1 and 刹车 == ZE)。
应当注意的是,通常使用的指标不仅有误差 e e e,还有误差变化率 e c ec ec。
为了便于表示,往往将模糊规则以表格的形式记下来。
2. 模糊PID
模糊PID即为在PID控制的基础上,与模糊控制进行结合,使得PID的三个系数可以在线改变:
k
p
=
k
p
0
+
Δ
k
p
k
i
=
k
i
0
+
Δ
k
i
k
d
=
k
d
0
+
Δ
k
d
k_p=k_{p0}+\Delta k_p \\ k_i=k_{i0}+\Delta k_i \\ k_d=k_{d0}+\Delta k_d
kp=kp0+Δkpki=ki0+Δkikd=kd0+Δkd
其结构如下:
这样一来,原先PID控制的公式
u
=
k
p
e
+
k
i
∫
e
d
t
+
k
d
d
e
d
t
u=k_p e+k_i \int edt +k_d \frac{de}{dt}
u=kpe+ki∫edt+kddtde就变为
u
=
(
k
p
0
+
Δ
k
p
)
e
+
(
k
i
0
+
Δ
k
i
)
∫
e
d
t
+
(
k
d
0
+
Δ
k
d
)
d
e
d
t
u=\left( k_{p0}+\Delta k_p \right) e+\left( k_{i0}+\Delta k_i \right) \int edt +\left( k_{d0}+\Delta k_d \right) \frac{de}{dt}
u=(kp0+Δkp)e+(ki0+Δki)∫edt+(kd0+Δkd)dtde
也就是说,每经过一个采样时间
T
T
T,PID的参数都会改变,从而达到一种在线PID整定的效果,避免了原来PID控制中单独一组PID受限大、不及时的缺点。
在下一篇笔记中,将带来模糊PID的一个简单例子,并将其与经典PID做比较。