模糊控制器的查询表的实例计算过程
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
用模糊控制实现水箱水温的恒温控制。水箱由底部的电阻性电热元件加热,由电动搅拌器实现均温。设控制的目标温度为25ºC,以实测温度T与目标温度R之差,即误差e=T-R,以及误差变化率ec为输入,以固态继电器通电时间的变化量u(以一个控制周期内的占空比表示,控制电加热器的功率)为输出。设e的基本论域为[-5,5] ºC,其语言变量E 的论域为[-5,5];ec的基本论域为[-1,1] ºC/s,其语言变量EC的论域为[-5,5];控制量u的基本论域为[-5,5]单位,其语言变量U的论域为[-5,5]。E、EC和U都选5个语言值{NB,NM,NS,Z,PS,PM,PB},各语言值的隶属函数采用三角函数,其分布可用表1和表2表示,控制规则如表3所示。要求:1、画出模糊控制程序流程图;2、计算出模糊控制器的查询表,写出必要的计算步骤。
表
表
表3 模糊控制规则表(
解:步骤:
1)输入输出语言变量的选择。输入变量选为实测温度T与目标温度R之差,即误差e,及误差变化率ec;输出语言变量选固态继电器通电时间的变化量u,故模糊控制系统为双输入—单输出的基本模糊控制器。
2)建立各语言变量的赋值表。设误差e的基本论域为[-5,5]。C,输入变量E的论域为[-5,-4,-3,-2,-1,0,1,2,3,4,5],误差的量化因子为ke=5/5=1。语言变量E选取5个语言值:,,,,
PB PS ZE NS NB。表1为语言变量E、EC的赋值表,表2为语言变量U的赋值表
3)建立模糊控制规则表,总结控制策略,得出一组由25条模糊条件语句构成的控制规 则,据此建立模糊控制规则表,如表3所示.表中行与列交叉处的每个元素及其所在列的第一行元素和所在行的第一列元素,对应于一个形式为”if E and EC then U”的模糊语句,根据该模糊语句可得相应的模糊关系i R ,则总控制规则的总模糊关系为25
1=i i R U R =。
表3 模糊控制规则表(内容为控制量U)
4)建立查询表。根据推理合成原则,输出模糊集合2()T U E E R =⨯∆,利用判决结果可建立模糊控制器查询表。通过查表得出U,乘以比例因子K u ,(K u =u max /n=5/5=1),即查表得出的结果U 即为控制量的值u 。 5)流程图如下图所示
流程图
6)在线查询表如表4所示
EC
E
-5 -4 -3 -2 -1 0 1 2 3 4 5 -5 5 5 5 5 5 5 5 3 3 3 0 -4 5 3 3 3 3 3 3 0 0 0 0 -3 5 3 3 3 3 3 3 0 0 0 0 -2 5 3 3 3 3 3 3 0 0 0 0 -1 3 3 3 3 0 0 0 -3 -3 -3 -3
0 3 3 3 3 0 0 0 -3 -3 -3 -3
1 3 3 3 3 0 0 0 -3 -3 -3 -3
2 3 0 0 0 -3 -3 -3 -3 -3 -3 -5
3 3 0 0 0 -3 -3 -3 -3 -3 -3 -5
4 3 0 0 0 -3 -3 -3 -3 -3 -3 -5
5 0 -3 -3 -3 -5 -5 -5 -5 -5 -5 -5
E=[1 0.4 0.1 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.3 1 0.3 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.1 0.4 1];%5*11 E的赋值表矩阵EC=E;
U=[1 0.6 0.2 0 0 0 0 0 0 0 0;
0 0.4 1 0.4 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.4 1 0.4 0;
0 0 0 0 0 0 0 0 0.2 0.6 1];
rule=[5 5 5 4 3;
5 4 4 3 3;
4 4 3 2 2;
4 3 2 2 1;
3 2 1 1 1];%5*5模糊控制规则表矩阵
R=zeros(121,11);%申请模糊控制的隶属度关系矩阵%计算模糊控制隶属度关系矩阵R? for ii=1:5
for jj=1:5
U_rule=rule(ii,jj);%按控制规则表找出语言变量对应的向量
A=E(ii,:);
B=EC(jj,:);
C=U(U_rule,:); %根据模糊算法,求(A'×B)对应按值取小
for i=1:11
for j = 1:11
if A(i)>B(j)
R_C(i,j)=B(j);
else
R_C(i,j)=A(i);
end
end
end
R_C1=reshape(R_C',11*11,1);%转置成121*1的列向量,形成单条控制语句的模糊关系的隶属度函数R1
for i=1:11*11
for j=1:11
if R_C1(i)>C(j)
R1(i,j)=C(j);%得到R1是121*11的矩阵
else
R1(i,j)=R_C1(i);
end
end
end %将R1合成为整个模糊关系的隶属度函数R,R是121*11的矩阵
for i=1:121
for j=1:11
if R(i,j) R(i,j)=R1(i,j); end end end end end %计算控制量U1=(A1×B1)T2。R,T2表示前面矩阵转化成行向量 for iii=1:11