模糊控制器的查询表的实例计算过程
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
用模糊控制实现水箱水温得恒温控制。水箱山底部得电阻性电热元件加热,山电动搅拌器实现均温。设控制得訂标温度为25七,以实测温度T与U标温度R之差,即误差e=T-R. 以及误差变化率ec为输入,以固态继电器通电时间得变化量u(以一个控制周期内得占空比表示,控制电加热器得功率)为输出。设e得基本论域为卜5,5] 其语言变量E得论域为卜5,5];ec得基本论域为卜1」]七/s,其语言变量EC得论域为卜5,5];控制量u得基本论域为卜5,5]单位,其语言变量U得论域为[-5,5] o E、EC与U都选5个语言值{NB,NM,NSZPS,PM、PB},各语言值得隶属函数采用三角函数,其分布可用表1与表2表示,控制规则如表3所示。要求:1、画出模糊控制程序流程图;2、计算出模糊控制器得查询表,写出必要得计算步骤。
表1语言变量E、EC得赋值表
表2语言变量U得赋值表
解涉骤:
输入输出语言变量得选择。输入变量选为实测温度T与H标温度R之差,即误差e,及误差变化率ec;输出语言变量选固态继电器通电时间得变化量u,故模糊控制系统为双输入—单输出得基本模糊控制器。
建立各语言变量得赋值表。设误差e得基本论域为卜5,5「c,输入变量E得论域为卜5,・4,・3,・2,・1,0,1,2,3,4,5],误差得量化因子为ke=5/5=l。语言变量E选取5个语言值:PEP&Z 皮表1为语言变量E、EC得赋值表,表2为语言变量U得赋值表
表1语言变量E、EC得赋值表
表2语言变量U得赋值表
3)建立模糊控制规则表,总结控制策略,得出一组山25条模糊条件语句构成得控制规则,据此建立模糊控制规则表,如表3所示、表中行与列交义处得每个元素及其所在列得第一行元素与所在行得第一列元素,对应于一个形式为"if E and EC then U”得模糊语句,
25
根据该模糊语句可得相应得模糊关系R,则总控制规则得总模糊关系为R=u& °
i-i
表3模糊控制规则表(内容为控制量U)
建立查询表。根据推理合成原则,输出模糊集合U=(ExAE)r^R,利用判决结果可建立模糊控制器查询表。通过查表得出U,乘以比例因子K u,(Ku=Umax/n=5/5=l),B|lg表得出得结果U即为控制量得值u。
5)流程图如下图所示
流程图
E=[l 0、4 0、10000000 0;
0 0、510、5000000 0; 0000 0、310、3 0 0 0 0; 0000000 0、510、5 0;
000000000、10、4 1];%5*11 E 得赋值表矩阵 EC
二 E;
U 二[1 0、6 0、20000000 0;
0 0、410、4000000 0; 0000 0、510、5 0 0 0 0; 0000000 0、410、4 0; 00000000 0. 20、6 1]; rule=[5 5 5 4 3;
5 44 3 3; 44 3 2 2; 43 22 1;
32 11 1];%5*5模糊控制规则表矩阵
R=zeros(121,ll);%申请模糊控制得隶属度关系矩阵%计算模糊控制隶属度关系矩阵R? for ii=l:5
for jj=l:5
U_rule=rule(iijj);%按控制规则表找出语言变量对应得向量 A=E(ii,:); B 二 EC(jj,:);
C=U(U_rule,:); %根据模糊算法,求(A/B)对应按值取小 for i=l:ll
for j = 1:11
ifA(i)>B(j)
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
-3
-3
-3
-5
-5
-5
-5
-5
-5
-5
6)在线查询表如表4所
示
附:程序代码
表4U 得在线查询表
R_C(i,j)二B(j);
else
R_C(i,j)二A(i);
end
end
end
R_C 1 =reshape(R_C\ 11*11,1);%转置成121*1得列向量,形成单条控制语句得模糊关系得隶属度函数R1
for i=l:ll*ll
for j=l:ll
ifR_Cl(i)>C(j)
Rl(i,j)=C(j);%得到R1 就是121*11 得矩阵
else
Rl(i,j)=R_Cl(i);
end
end
end %将耐合成为整个模糊关系得隶属度函数R,R就是121*11得矩阵
for i=l:121
for j =1:11
ifR(i,j) R(i,j)=Rl(i,j); end end end end end %讣算控制量Ul=(AlxBl)T2o R,T2表示前面矩阵转化成行向量 for iii=l:l 1 forjjj=l:ll %求E得量化值对应得语言值得所对应得行向量 temp_max A=E( 1 ,iii); line_no=ones(3,l); for k=l:5 if(temp_maxAvE(k,iii)) temp_maxA=E(k,iii); line_no(l)=k; end end Al=E(line_no(l),:);%求EC得量化值对应得语言值得所对应得行向量 temp_maxB=EC( 1 jjj); for k=l:5 if(temp_maxB temp_max B 二EC (kjjj); line_no(2)=k; end end