MATLAB模糊控制器代码

说明:来源《精通MATLAB智能算法 / 温正编著》,仅作为笔记方便知识回顾。

clear all  %清除内存文件
clc        %清屏
% 使用 MOM 算法(取隶属度最大的那个数)
a = newfis("fuzzy");%新建一个fuzzy文件
f1= 1;%输入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;%输入2
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)%列(输入2)%输出%权重%权重
        1 1 1 1 1;
        1 2 1 1 1;
        1 3 2 1 1;
        1 4 2 1 1;
        1 5 3 1 2;
        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);%读取规则
al = setfis(a,'DefuzzMethod','mom');%解模糊,MOM法
writefis(al,'fuzzf');%写入
a2 = readfis('fuzzf');%读取
Ulist = zeros(7,7); %产生空矩阵
e  = zeros(1,7);
ec = zeros(1,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);
title('模糊控制器内部原理图')
figure(2);
plotmf(a,'input',1);
title('输入 1 图形')
xlabel('e','fontsize',10);
ylabel('隶属度函数','fontsize',10);
figure(3);
plotmf(a,'input', 2);
title("输入 2 图形")
xlabel('ec','fontsize',10);
ylabel('隶属度函数','fontsize',10);
figure(4);
plotmf(a,'output',1);
title("隶属度函数图")
xlabel('u','fontsize',10);
ylabel('隶属度函数','fontsize',10);

其他:此博主讲的更清楚。

计算智能--模糊控制器_璃茉沐颜的博客-CSDN博客_反模糊化的方法有三种

  • 1
    点赞
  • 44
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
matlab开发相关算法、系统代码、设计文档、使用说明,供参考 matlab开发相关算法、系统代码、设计文档、使用说明,供参考 matlab开发相关算法、系统代码、设计文档、使用说明,供参考 matlab开发相关算法、系统代码、设计文档、使用说明,供参考 matlab开发相关算法、系统代码、设计文档、使用说明,供参考 matlab开发相关算法、系统代码、设计文档、使用说明,供参考 matlab开发相关算法、系统代码、设计文档、使用说明,供参考 matlab开发相关算法、系统代码、设计文档、使用说明,供参考 matlab开发相关算法、系统代码、设计文档、使用说明,供参考 matlab开发相关算法、系统代码、设计文档、使用说明,供参考 matlab开发相关算法、系统代码、设计文档、使用说明,供参考 matlab开发相关算法、系统代码、设计文档、使用说明,供参考 matlab开发相关算法、系统代码、设计文档、使用说明,供参考 matlab开发相关算法、系统代码、设计文档、使用说明,供参考 matlab开发相关算法、系统代码、设计文档、使用说明,供参考 matlab开发相关算法、系统代码、设计文档、使用说明,供参考 matlab开发相关算法、系统代码、设计文档、使用说明,供参考 matlab开发相关算法、系统代码、设计文档、使用说明,供参考 matlab开发相关算法、系统代码、设计文档、使用说明,供参考 matlab开发相关算法、系统代码、设计文档、使用说明,供参考 matlab开发相关算法、系统代码、设计文档、使用说明,供参考 matlab开发相关算法、系统代码、设计文档、使用说明,供参考 matlab开发相关算法、系统代码、设计文档、使用说明,供参考 matlab开发相关算法、系统代码、设计文档、使用说明,供参考

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值