北航智能控制模糊控制作业.docx
- 文档编号:3327280
- 上传时间:2022-11-21
- 格式:DOCX
- 页数:14
- 大小:518.22KB
北航智能控制模糊控制作业.docx
《北航智能控制模糊控制作业.docx》由会员分享,可在线阅读,更多相关《北航智能控制模糊控制作业.docx(14页珍藏版)》请在冰豆网上搜索。
北航智能控制模糊控制作业
模糊控制查询表的MATLAB实现
北京航空航天大学机械工程及自动化学院(北京100191)
一作业要求
以双输入—单输出系统为例,画出模糊控制算法程序流程图,计算出模糊控制器的查询表。
假设控制器输入为误差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-1表示,控制规则如表1-2所示。
注意:
u的去模糊化要采用与你的学号ID的奇偶性对应的方法,设ID=奇数者用最大隶属度法,ID=偶数者用重心法;要有计算查询表时的必要计算步骤,不能只给出最后结果。
表1-1语言变量E、EC和U的赋值表
表1-2模糊控制规则表
二模糊控制查询表和控制算法流程图
2.1模糊控制查询表
(1)模糊控制算法
一般双输入—单输出模糊控制器的控制规则可写成条件语句:
式子中,
为定义在误差、误差变化率和控制量论域X、Y、Z、上的模糊集合。
上述条件可以用一个模糊关系
描述,即
的隶属度函数为:
当误差及误差变化分别取模糊集
时,控制器输出的变化量
根据模糊推理合成规则可得:
的隶属度函数为:
(2)模糊算法选择
模糊推理用Mamdani推理方法,输出信息的模糊判别用最大隶属度法。
模糊控制查询表的实现,先根据模糊条件推理得出模糊条件所决定的模糊关系
,模糊推理关系为:
。
将所有的模糊关系
利用“或”放入关系组合在一起,即
,
整个系统的控制规则的模糊关系。
再根据新的模糊集
,求出控制器的输出变化量
,即
。
最后根据最大隶属度法求的模糊判决结果。
所有的判决结果组成了模糊控制查询表。
最后建立输入变量输出变量的三维曲面。
2.2程序结构说明
一般情况下,输入量偏差e和偏差变化率△e以及输出变量U的离散论域为13个量化等级{-6,-5,-4,-3,-2,-1,0,1,2,3,4,5,6}。
为方便MATLAB编程,对相关的变量选择进行一些改变。
原先的输入变量偏差e和偏差变化率ec以及输出变量U的量化等级{-6,-5,-4,-3,-2,-1,0,1,2,3,4,5,6}改写为{1,2,3,4,5,6,7,8,9,10,11,12,13}。
转化后语言变量E、EC和U的赋值表如表2-13所示。
输入变量偏差e和偏差变化率ec以及输出变量U的模糊语言值均为{NB,NM,NS,Z,PS,PM,PB}。
为了编程方便,将语言值用数字表示为{1,2,3,4,5,6,7},与模糊语言值相对应。
转化后的模糊控制规则表如表2-2所示。
表2-1语言变量E、EC和U的赋值表
1
2
3
4
5
6
7
8
9
10
11
12
13
1
1
0.5
0
0
0
0
0
0
0
0
0
0
0
2
0
0.5
1
0.5
0
0
0
0
0
0
0
0
0
3
0
0
0
0.5
1
0.5
0
0
0
0
0
0
0
4
0
0
0
0
0
0.5
1
0.5
0
0
0
0
0
5
0
0
0
0
0
0
0
0.5
1
0.5
0
0
0
6
0
0
0
0
0
0
0
0
0
0.5
1
0.5
0
7
0
0
0
0
0
0
0
0
0
0
0
0.5
1
表2-2模糊控制规则表
U
EC
1
2
3
4
5
6
7
E
1
1
1
1
1
2
4
4
2
1
1
1
1
2
4
4
3
2
2
2
2
4
5
5
4
2
2
3
4
5
6
6
5
3
3
4
6
6
6
6
6
4
4
6
7
7
7
7
7
4
4
6
7
7
7
7
程序初始化,输入误差Error、偏差变化率ErrorC和控制量Controlvolume的赋值表及模糊控制规则表。
先计算模糊控制隶属度关系矩阵
。
根据每一条控制规则,查找对应的赋值表当中的向量,然后求的
的值,再求得单条控制语句的模糊关系
的值,单条控制语句的模糊关系模糊关系
与模糊控制隶属度关系矩阵Relationship对应位取大,最终得到
。
得到
后,再求控制量
。
根据X、Y论域取不同的元素,查询赋值表得到对应的向量,然后求
的值,再求得控制量
的值,根据最大隶属度法求的判决结果,建立模糊控制器查询表。
最后建立输入变量输出变量的三维曲面。
2.3控制算法流程图
三模糊控制查询表
模糊控制查询表结果如表3-1所示
表3-1模糊控制查询表
U
EC
-6
-5
-4
-3
-2
-1
0
1
2
3
4
5
6
E
-6
-6
-6
-6
-6
-6
-6
-6
-6
-4
-4
0
0
0
-5
-6
-6
-6
-6
-6
-6
-6
-6
-4
-4
0
0
0
-4
-6
-6
-6
-6
-6
-6
-6
-6
-4
-4
0
0
0
-3
-6
-6
-6
-6
-6
-6
-6
-6
-4
-4
0
0
0
-2
-4
-4
-4
-4
-4
-4
-4
-4
0
0
2
2
2
-1
-4
-4
-4
-4
-4
-4
-4
-4
0
0
2
2
2
0
-4
-4
-4
-4
-2
-2
0
0
2
2
4
4
4
1
-4
-4
-4
-4
-2
-2
0
0
2
2
4
4
4
2
-2
-2
-2
-2
0
0
4
4
4
4
4
4
4
3
-2
-2
-2
-2
0
0
4
4
4
4
4
4
4
4
0
0
0
0
4
4
6
6
6
6
6
6
6
5
0
0
0
0
4
4
6
6
6
6
6
6
6
6
0
0
0
0
4
4
6
6
6
6
6
6
6
四输入变量输出变量的三维曲面
分别通过Matlab程序及Matlab中的fuzzy工具箱得出输入输出的三维曲面。
通过Matlab程序得出的输入输出三维曲面如图4-1所示。
通过Matlab的fuzzy的工具箱得出的输入输出三维曲面如图4-2所示。
Matlab程序见附件一。
Matlab工具箱Fuzzy建立双输入—单输出模糊系统模型见附件二。
图4-1Matlab程序得出的输入输出三维曲面
图4-2Matlab的fuzzy的工具箱得出的输入输出三维曲面
通过对上述两个输入输出三维曲面的比较,不难看出,两个输入输出三维曲面的形状基本相似,只是在局部有差异。
可以得出结论:
用Matlab程序的建立的模糊控制器正确。
产生两个输入输出三维曲面有差异的原因可能是作业所给的隶属度函数为离散的函数,数据量比较少,得出的结果比较少,则绘制的输入输出三维曲面不够精确。
而用Fuzzy工具箱建立的隶属度函数为连续的函数,数据量比较多,得出的结果比较多,绘制出的输入输出三维曲面较准确。
附件一
Matlab程序
clc;
clear;
%程序初始化,输入误差Error、偏差变化率ErrorC和控制量Controlvolume的赋值表
Error=[10.500000000000
00.510.5000000000
0000.510.50000000
000000.510.500000
00000000.510.5000
0000000000.510.50
000000000000.51
];
ErrorC=Error;%输入误差率ErrorC赋值表与误差Error相同
Controlvolume=Error;%控制量Controlvolume的赋值表与误差Error相同
Rule=[1111244
1111244
2222455
2234566
3346666
4467777
4467777];%模糊控制规则表
Relationship=zeros(169,13);%申请模糊控制的隶属度关系矩阵
U=zeros(13);%申请模糊控制的查询表矩阵
%计算模糊控制隶属度关系矩阵Relationship
fork=1:
7
forl=1:
7
A=Error(k,:
);%取Error的第k行
B=ErrorC(l,:
);%取ErrorC的第l行
C=Controlvolume(Rule(k,l),:
);%根据控制规则表查询控制量的向量
form=1:
13
forn=1:
13
D(n+(m-1)*13)=min(A(m),B(n));%根据模糊算法,求
的值,对应位取小
end
end
forp=1:
169
forq=1:
13
Relationship0(p,q)=min(D(p),C(q));%根据模糊算法,求
的值,对应位取小,即求得单条控制语句的模糊关系
。
end
end
fori=1:
169
forj=1:
13
Relationship(i,j)=max(Relationship(i,j),Relationship0(i,j));%单条控制语句的模糊关系模糊关系
与模糊控制隶属度关系矩阵Relationship对应位取大,最终得到
end
end
end
end
%计算控制量
forg=1:
13
forh=1:
13
[Y,X]=max(Error);%Y表示Error每列的最大值,X表示Error每列最大值所在的行
E=Error(X(g),:
);%取Error每列最大值所在行向量
F=ErrorC(X(h),:
);%取ErrorC每列最大值所在行向量
fors=1:
13
fort=1:
13
G(t+(s-1)*13)=min(E(s),F(t));%根据模糊算法,求
的值,对应位取小
end
end
forv=1:
13
forw=1:
169
H(w,v)=min(G(w),Relationship(w,v));%根据模糊算法,求
的值,对应位取小
end
end
[Z,W]=max(H);%Z表示
的值
U(g,h)=find(Z>=max(Z),1)-7;%Z的最大值所在的列减7,即用最大隶属度方法得到查询表矩阵
end
end
%输入变量输出变量的三维曲面
xx=[-6-5-4-3-2-10123456];
yy=[-6-5-4-3-2-10123456];
[XX,YY]=meshgrid(xx,yy);
mesh(XX,YY,U')
gridon
axis([-66-66-66])
xlabel('E')
ylabel('EC')
zlabel('U')
附件二
Matlab工具箱Fuzzy建立双输入—单输出模糊系统模型
1.添加E,EC两个输入变量,Defuzzification中选择mom表示最大隶属度法。
图1添加变量
2.添加论域E、EC、U及其隶属度函数
图2添加论域E及其隶属度函数
图3添加论域EC及其隶属度函数
图4添加论域U及其隶属度函数
3.添加控制规则
图5添加控制规则
4.观察设计规则
图6观察设计规则
5.输入变量输出变量的三维曲面
图7输入变量输出变量的三维曲面
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 北航 智能 控制 模糊 作业