当前位置:文档之家› 第三章 模糊控制2

第三章 模糊控制2


各语言值的隶属函数采用三角函数,其分布可用下表表示:
-6 NB NM NS Z PS PM PB 1 0 0 0 0 0 0 -5 0.5 0.5 0 0 0 0 0 -4 0 1 0 0 0 0 0 -3 0 0.5 0.5 0 0 0 0 -2 0 0 1 0 0 0 0 -1 0 0 0.5 0.5 0 0 0 0 0 0 0 1 0 0 0 1 0 0 0 0.5 0.5 0 0 2 0 0 0 0 1 0 0 3 0 0 0 0 0.5 0.5 0 4 0 0 0 0 0 1 0 5 0 0 0 0 0 0.5 0.5 6 0 0 0 0 0 0 1
注:初始化R
注:R为所有规则模糊关 系的并集
3)总结模糊查询表 a)模糊化 Input1_value_membership=Input1_Terms_Membership(:,I nput1_value_index);
注:Input1_value_index表示输入E的精确值的序号, Input1_value_membership为E的精确值属于其各个模糊值 的隶属度组成的向量
Input2_Terms_Membership=Input1_Terms_Memb ership; Output_Terms_Membership=Input1_Terms_Mem bership;
假设控制规则表总结如下
U EC NB NM NS Z PS PM PB
NB
NM NS E Z PS PM
for i=1:169 for j=1:13
R3(i,j)=min(R2(i),C(j)); end end
注:R3= R2×C
所有规则蕴涵的模糊关系: for i=1:169 for j=1:13 R(i,j)=0; end end
for Input1_Terms_Index=1:7 for Input2_Terms_Index=1:7 程序段1; 程序段2; R=max(R,R3); end end
控制规则表
U NB
NB *NS PB来自E ZE PBPS PS
PB NB
NS DE ZE PS PB
PB PB PB PB
PS PS ZE NS
PS ZE NS NB
ZE NS NS NB
NB NB NB *
(e)
1.0
PS
(de)
1.0
NS
(v)
1.0
ZE
min
4 2
0
2
4
e
4 2
b) 推理
for i=1:13 for j=1:13
Rd1(i,j)=min(Ad(i),Bd(j)); end end Rd1=Ad×Bd
Rd2=[ ]; for k=1:13 Rd2=[Rd2,Rd1(k,:)]; end Rd2=Rd1T
for j=1:13 Cd(j)=max(min(Rd2',R(:,j))); end
11
3.5 模糊控制器的软件实现(Matlab) 1 模糊控制查询表的实现
1)初始化
2)总结模糊关系
a) 模糊化 b)模糊推理 c)去模糊化
3)总结模糊查询表
2 模糊控制在线运行代码
1 模糊控制查询表的实现 1)初始化 假设E、EC和U的论域:{-6,-5,…,-1,0,1,…,5,6}; E、EC和U定义了7个语言值 {NB,NM,NS,Z,PS,PM,PB}; 则在Matlab中通过定义三个向量来表示这些语言值: Input1_Terms=[1,2,3,4,5,6,7]; Input2_Terms=[1,2,3,4,5,6,7]; output_Terms=[1,2,3,4,5,6,7];
注:A代表输入E的模糊值,B代表输入EC的模糊值,C代 表输出U的模糊值
for i=1:13 for j=1:13 R1(i,j)=min(A(i),B(j)); end end
注:R1=A×B
程 序 段 2
R2=[ ]; for k=1:13 R2=[R2;R1(k,:)']; end
注:R2=R1T
0
2
4 de 4 2
0
2
4 u
(e)
1.0 ZE
(de)
1.0
(v)
NS
1.0
PS
-4
-2
0
2
4 e -4 -2
0
2
4 de - 4 - 2
0
2
min 4 u
1 0.2 0 0.4 1 0.2 2 0.2 3 0.2 u 1 0.2 0.4 0.2 0.2 0.2
1 0 -1 -1 -2 -2 -2
0 -1 -1 -2 -2 -3 -3
-1 -1 -2 -2 -3 -3 -3
-2 -2 -2 -3 -3 -3 -4
模糊控制的优缺点 模糊控制的优点:
① 设计时不需要建立被控制对象的数学模型,只要求掌握人类 的控制经验。 ② 系统的鲁棒性强,尤其适用于非线性时变、滞后系统的控制
ZE
NS
NB
•输出响应要求
T
3
Td
2
4
5
1
0
t
“1” 段:误差e=T-Td为负,且为NB。无论de 的值如 何,为了消除偏差应使控制量加大。所以控制量u应 取正大PB。
规则 1: 如果误差e是NB、 且误差变化de是PB, 则控制U为PB; 规则 2 : 如果误差e是NB、 且误差变化de是PS, 则控制U为PB; 规则 3 : 如果误差e是NB、 且误差变化de是ZE, 则控制U为PB; 规则 4 : 如果误差e是NB、 且误差变化de是NS, 则控制U为PB;
确定模糊控制器的输入变量和输出变量(即控制量);
e
de u 量化等级 语言值
PB
PS
-150 -50 -64 -4
-90 -30 -16 -3
-30 -15 -4 -2
-10 -5 -2 -1
0 0 0 0
10 5 2 1
30 15 4 2
90 30 16 3
150 50 64 4
相关的隶属度函数 0 0 0 0 1 0 0 0 0.4 0.35 0 0 0 1 0 0 0 0.2 0.4 0 0 0 1 0 0 0 0.4 0.2 0 0 0 1 0 0 0 0.35 0.4 0 0 0 1 0 0 0 0
3.4 模糊控制器的设计举例
e
de
模糊化
E
DE
模糊决策
U
精确化
u
例:通过供电电压控制炉温。
E
Td

e k1
k2
DE
控 制 表
U
k3
u
被 控 对 象
T
de
控制器输入变量: e——温度误差e =T-Td de——温度误差的变化 de(nT0+1)=e(nT0+1)-e(nT0) 控制器输出变量: u——电压的变化
“2”段: 当误差e为负小或零时,主要矛盾转化为系统的稳定性问题 了。为了防止超调过大并使系统尽快稳定,就要根据误差的变 化de来确定控制量。若de为正,表明误差有减小的趋势。
规则5 : 规则6 : 规则7 : 规则8 : 规则9 :
如果误差e是NS、 且误差变化de是ZE, 则控制U为P S; 如果误差e是NS、 且误差变化de是P S, 则控制U为ZE; 如果误差e是NS、 且误差变化de是P B, 则控制U为NS; 如果误差e是ZE、 且误差变化de是ZE, 则控制U为ZE; 如果误差e是ZE、 且误差变化de是P S, 则控制U为NS;
规则10 : 如果误差e是ZE、 且误差变化de是P B, 则控制U为NB;
“5”段:当误差变化de为负时,偏差有增大的趋势,这时应使控制量增 加,防止偏差进一步增加。因此,有控制规则
规则11: 如果误差e是NS、 且误差变化de是NS, 则控制U为PS; 规则12: 如果误差e是NS、 且误差变化de是NB, 则控制U为PB; 规则13: 如果误差e是ZE、 且误差变化de是NS, 则控制U为PS; 规则14: 如果误差e是ZE、 且误差变化de是NB, 则控制U为PB;
NB
NB NM NM NS Z
NB
NB NM NM NS Z
NB
NB NM NS Z PM
NB
NB NM Z PM PB
NM
NM Z PS PM PB
Z
Z PS PM PM PB
Z
Z PS PM PM PB
PB
Z
Z
PM
PB
PB
PB
PB
将语言值按顺序编号,NB、NM、NS、Z、PS、 PM、PB分别对应1、2、3、4、5、6、7号。 则上表可用一个矩阵表示为: Rule= [1,1,1,1,2,4,4; 1,1,1,1,2,4,4; 2,2,2,2,4,5,5; 2,2,3,4,5,6,6; 3,3,4,6,6,6,6; 4,4,6,7,7,7,7; 4,4,6,7,7,7,7];
在matlab中,可以用一个矩阵来表示该表。
Input1_Terms_Membership=
[1,0.5,0,0,0,0,0,0,0,0,0,0,0; 0,0.5,1,0.5,0,0,0,0,0,0,0,0,0; 0,0,0,0.5,1,0.5,0,0,0,0,0,0,0; 0,0,0,0,0,0.5,1,0.5,0,0,0,0,0; 0,0,0,0,0,0,0,0.5,1,0.5,0,0,0; 0,0,0,0,0,0,0,0,0,0.5,1,0.5,0; 0,0,0,0,0,0,0,0,0,0,0,0.5,1];
4 2
0
2
4
u
相关主题