北航智能控制模糊控制作业

2025-06-29

智能控制及应用大作业一

——双输入—单输出系统的模糊控制

姓 名:

学 号:

2011-10-14

题目要求

以双输入—单输出系统为例,画出模糊控制算法程序流程图,计算出模糊控制器的查询表。假设控制器输入为误差e和误差变化率ec,输出为控制量u,其基本论域分别为[emin,emax],[ecmin,ecmax],[umin,umax],对应的语言变量E、EC和U的论域为{-6,-5,…,-1,0,1,…,5,6},E、EC和U都选7个语言值{NB,NM,NS,Z,PS,PM,PB},各语言值的隶属函数采用三角函数,其分布可用表1表示,控制规则如表2所示。注意:u的去模糊化要采用与你的学号ID的奇偶性对应的方法,设ID=奇数者用最大隶属度法,ID=偶数者用重心法;要有计算查询表时的必要计算步骤,不能只给出最后结果。

表1 语言变量E、EC和U的赋值表 NB NM NS Z PS PM PB -6 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 表2模糊控制规则表

U NB E NB NM NS Z PS PM PB NB NB NM NM NS Z Z NM NB NB NM NM NS Z Z NS NB NB NM NS Z PM PM EC Z NB NB NM Z PM PB PB PS NM NM Z PS PM PB PB PM Z Z PS PM PM PB PB PB Z Z PS PM PM PB PB

程序设计与程序流程图

1、模糊算法的选择

模糊蕴含用求交法,输出量的清晰化计算用最大隶属度法。于是有输出量的模糊集合U'为:

49U?(E?EC)?R?(E?EC)??Rii?149'''''?????i?149i?149(E?EC)?[(Ei?ECi)?Ui]'''?[E'i?149?(Ei?Ui)]?[EC?(ECi?Ui)]''

?UiE?UiEC?Ci?1'i

2、程序结构说明

利用Matlab编写该模糊算法,并且计算出模糊控制器的查询表。 程序按照上面的控制算法,先计算模糊关系隶属度矩阵R。

通过上面的式子,根据每一条控制规则,查找相对应的赋值表当中的向量值。如第一条法则:

If E=NB and EC=NB, then U=NB.

则找到E中NB对应的行向量和EC中NB对应的行向量,然后将第一个行向量转置后与第二个行向量按照乘法法则对应取小值,生成新的矩阵。然后将该矩阵转换成列向量,并与U中NB对应的项对应取小值,生成新的矩阵R1。然后利用循环依次算出每个Ri,没求出一个Ri就去前面一个Ri-1求并(模糊算法中,取大值)。循环49次后,得到R矩阵。

这样再利用新的关系中的A1,B1,与R的模糊蕴含用求交法,求出新的控制向量,再利用最大隶属度法就可求出控制量U的量化值。然后制成表格。

3、流程图

根据控制

循环49 规则法则 次循环169次 利用公式 Ri=(Ai’×Bi)T×Ci 求出Ri R=∪Ri 根据公式 U1=(A’×B)T2。R 最大隶属度法 得到一个对应量化模糊控制表的值 合并后得到控制表 Matlab 程序代码

clc;

clear;

E = [ 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 ];% 7*13 E的赋值表矩阵

EC = E; U = E; ì,U的赋值表和E一致

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 ];% 7*7 模糊控制规则表矩阵 R = zeros(169,13); %申请模糊控制的隶属度关系矩阵

%计算模糊控制隶属度关系矩阵R for ii = 1:7

forjj = 1:7

U_rule = rule(ii,jj); %按控制规则表找出语言变量对应的向量 A = E(ii,:); B = EC(jj,:); C = U(U_rule,:);

%根据模糊算法,求(A'×B)对应按值取小 for i = 1:13 for j = 1:13 if A(i) > B(j)

R_C(i,j) = B(j); else

R_C(i,j) = A(i); end end end


北航智能控制模糊控制作业.doc 将本文的Word文档下载到电脑 下载失败或者文档不完整,请联系客服人员解决!

下一篇:高级工程师技术资格考试试题库

相关阅读
本类排行
× 游客快捷下载通道(下载后可以自由复制和排版)

下载本文档需要支付 7

支付方式:

开通VIP包月会员 特价:29元/月

注:下载文档有可能“只有目录或者内容不全”等情况,请下载之前注意辨别,如果您已付费且无法下载或内容有问题,请联系我们协助你处理。
微信:xuecool-com QQ:370150219