matlab建立模糊规则表,请教matlab怎样建立模糊控制查询表?
下面是一个例子,你参考一下
close all
clear all
a=newfis('fuzzf');
f1=1;
a=addvar(a,'input','e',[-3*f1,3*f1]);
a=addmf(a,'input',1,'NB','zmf',[-3*f1,-1*f1]);
a=addmf(a,'input',1,'NM','trimf',[-3*f1,-2*f1,0]);
a=addmf(a,'input',1,'NS','trimf',[-3*f1,-1*f1,1*f1]);
a=addmf(a,'input',1,'Z','trimf',[-2*f1,0,2*f1]);
a=addmf(a,'input',1,'PS','trimf',[-1*f1,1*f1,3*f1]);
a=addmf(a,'input',1,'PM','trimf',[0,2*f1,3*f1]);
a=addmf(a,'input',1,'PB','smf',[1*f1,3*f1]);
f2=1;
a=addvar(a,'input','ec',[-3*f2,3*f2]);
a=addmf(a,'input',2,'NB','zmf',[-3*f2,-1*f2]);
a=addmf(a,'input',2,'NM','trimf',[-3*f2,-2*f2,0]);
a=addmf(a,'input',2,'NS','trimf',[-3*f2,-1*f2,1*f2]);
a=addmf(a,'input',2,'Z','trimf',[-2*f2,0,2*f2]);
a=addmf(a,'input',2,'PS','trimf',[-1*f2,1*f2,3*f2]);
a=addmf(a,'input',2,'PM','trimf',[0,2*f2,3*f2]);
a=addmf(a,'input',2,'PB','smf',[1*f2,3*f2]);
f3=1.5;
a=addvar(a,'output','u',[-3*f3,3*f3]);
a=addmf(a,'output',1,'NB','zmf',[-3*f3,-1*f3]);
a=addmf(a,'output',1,'NM','trimf',[-3*f3,-2*f3,0]);
a=addmf(a,'output',1,'NS','trimf',[-3*f3,-1*f3,1*f3]);
a=addmf(a,'output',1,'Z','trimf',[-2*f3,0,2*f3]);
a=addmf(a,'output',1,'PS','trimf',[-1*f3,1*f3,3*f3]);
a=addmf(a,'output',1,'PM','trimf',[0,2*f3,3*f3]);
a=addmf(a,'output',1,'PB','smf',[1*f3,3*f3]);
rulelist=[1 1 1 1 1;
1 2 1 1 1;
1 3 2 1 1;
1 4 2 1 1;
1 5 3 1 1;
1 6 3 1 1;
1 7 4 1 1;
2 1 1 1 1;
2 2 2 1 1;
2 3 2 1 1;
2 4 3 1 1;
2 5 3 1 1;
2 6 4 1 1;
2 7 5 1 1;
3 1 2 1 1;
3 2 2 1 1;
3 3 3 1 1;
3 4 3 1 1;
3 5 4 1 1;
3 6 5 1 1;
3 7 5 1 1;
4 1 2 1 1;
4 2 3 1 1;
4 3 3 1 1;
4 4 4 1 1;
4 5 5 1 1;
4 6 5 1 1;
4 7 6 1 1;
5 1 3 1 1;
5 2 3 1 1;
5 3 4 1 1;
5 4 5 1 1;
5 5 5 1 1;
5 6 6 1 1;
5 7 6 1 1;
6 1 3 1 1;
6 2 4 1 1;
6 3 5 1 1;
6 4 5 1 1;
6 5 6 1 1;
6 6 6 1 1;
6 7 7 1 1;
7 1 4 1 1;
7 2 5 1 1;
7 3 5 1 1;
7 4 6 1 1;
7 5 6 1 1;
7 6 7 1 1;
7 7 7 1 1];
a=addrule(a,rulelist);
a1=setfis(a,'DefuzzMethod','mom');%Defuzzy
writefis(a1,'fuzzf');
a2=readfis('fuzzf');
Ulist=zeros(7,7);
for i=1:7
for j=1:7
e(i)=-4+i;
ec(j)=-4+j;
Ulist(i,j)=evalfis([e(i),ec(j)],a2);
end
end
figure(1);
plotfis(a2);
figure(2);
plotmf(a,'input',1);
figure(3);
plotmf(a,'input',2);
figure(4);
plotmf(a,'output',1);
这里简单说明一下:首先是编写2个输入,1个输出的隶属度函数;接下来的是模糊规则,一共49条;然后用解模糊函数得出控制量U,这里输出的U就直接是精确量了,解模糊用到得规则是取隶属度最大的那个数即MOM算法。
显示的三个图形窗口分别是:模糊控制器内部原理图,以及2个输入,1个输出的隶属度函数图。
matlab建立模糊规则表,请教matlab怎样建立模糊控制查询表?相关推荐
- c语言建立线性表输入,c语言 建立线性表 链式
1.实验目的及要求 通过本实验,进一不了解线性表的操作,熟悉线性表的运算,了解链式存储结构的实现方法和在链式存储条件下实现线性的相关操作. 2.实验内容 用C 语言设计在链式存储结构下,建立.插入.删 ...
- matlab gui 画点,请教matlab GUI画图的问题
用matlab做一个GUI,添加axes,利用这个axes画不同的图,需要把图像数据先暂存,然后再按顺序保存成图像 比如 for i = 1:10 plot(handles.axes, x(:, i) ...
- spwm matlab 计算波表,利用MATLAB计算SPWM脉冲宽度与并应用STM32输出
先上一张spwm波形生成原理图: 首先利用MATLAB产生三角波与正弦波叠加: %% 产生正弦波与三角波叠加 y1=abs(sawtooth(a*2*pi*m,0.5));%三角波 y2=0.8*si ...
- matlab 深绿色 色阶,请教Matlab如何做色阶图
满意答案 天譩弄亼 2017.03.29 采纳率:46% 等级:13 已帮助:9333人 展开全部 B = [1 0 0;1 1 0;0 1 0]; q = [30 30 30]; p = si ...
- ArcGIS给栅格数据建立属性表
ArcGIS给栅格数据建立属性表 好多栅格数据天然没有属性表,但是为了计算方便和数据处理,需要对数据建立属性表 ArcGIS给栅格数据建立属性表失败: 提示:这里描述项目中遇到的问题: 直接对栅格数据 ...
- maysql 按月建立分表
Mysql 建立水平分表 项目需求,按月建立水平分表 目录 Mysql 建立水平分表 前言 一.使用工具 二.创建分表过程 1. 创建需要的主表 2.建立创建分表函数 3.创建建立分表事件(定时器 ...
- matlab 学自动驾驶(3) 建立一个驾驶场景并生成综合检测——driving scenario Designer
matlab 学自动驾驶(3) 建立一个驾驶场景并生成综合检测--driving scenario Designer 文章目录 matlab 学自动驾驶(3) 建立一个驾驶场景并生成综合检测--dri ...
- matlab 判断变量是否存在_matlab:建立一个函数M文件,判断输入变量是否为0.求大神支招...
2014-05-02 回答 w=1/((x-0.5)^3+0.2)+1/((y+2)^2-3)+23*z;w=hump(5,11,7),为什么不能运行出结果?答案1:: 可能是你把调用函数的命令放到函 ...
- Matlab中如何使用appdesigner设计工具建立一个简单的界面
Matlab中如何使用appdesigner设计工具建立一个简单的界面(数据的输入.处理和保存) 以使用不同算法处理图像的功能为例 建立一个新的空白界面,matlab中输入appdesigner,打开 ...
最新文章
- Android图片处理
- Python基础教程(第3版) 笔记(一)
- Javascript非构造函数的继承
- opencv图像识别
- ubuntu下git服务器搭建过程
- vba怎么安装_学VBA,这些最基础的概念一定要知道
- 如何优化网站服务器来提高吞吐量并减少延迟时间
- OpenSSL新手自学:如何生成RSA私钥并用于数字签名
- MapStruct 代码生成器
- PDF转jpg for MAC
- 智慧城管拓展业务系统建设方案
- MineCraft建模工具
- [BZOJ2906] 分块
- linux英文转换成中文
- cannot resolve symbol 问题
- 《Multi-Scale Residual Learning-using a Cycle Spinning CNN for Single Image De-Raining》
- 10个必须掌握的SQL常用语句
- 二叉树与哈希表以及基本算法
- 猜数字小游戏(有次数限制)
- Supervisor的使用