Matlab利用M文件产生模糊控制器

电子说

1.2w人已加入

描述

有位朋友咨询了一个问题,想要通过粒子群优化模糊控制的论域范围,在这种情况下,就无法直接通过matlab的fuzzy工具箱来自动生成fis模糊文件,需要通过M文件生成模糊控制器,并写成函数方便调用,

给出一个样例如下:

%%
clc
close all
clear
FIS = newfis('FIS','sugeno');
%%
% 定义输入E:
FIS = addvar(FIS,'input','E',[-10 10]);


FIS = addmf(FIS,'input',1,'Negative','gaussmf',[7 -10]);


FIS = addmf(FIS,'input',1,'Positive','gaussmf',[7 10]);


%%
% 定义输入CE:


FIS = addvar(FIS,'input','CE',[-10 10]);


FIS = addmf(FIS,'input',2,'Negative','gaussmf',[7 -10]);


FIS = addmf(FIS,'input',2,'Positive','gaussmf',[7 10]);


%%
% 定义输出u:


FIS = addvar(FIS,'output','u',[-20 20]);


FIS = addmf(FIS,'output',1,'Min','constant',-20);


FIS = addmf(FIS,'output',1,'Zero','constant',0);


FIS = addmf(FIS,'output',1,'Max','constant',20);


%%
% 定义规则:
% 格式:输入1~ 输入2~ 输出~ 权重(默认为:1)逻辑关系(1=and;2=or)
ruleList = [1 1 1 1 1;...   % Rule 1


       1 2 2 1 1;...   % Rule 2


       2 1 2 1 1;...   % Rule 3


       2 2 3 1 1];    
    
 FIS = addrule(FIS,ruleList);

MATLAB仿真

MATLAB仿真

MATLAB仿真

打开APP阅读更多精彩内容
声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉

全部0条评论

快来发表一下你的评论吧 !

×
20
完善资料,
赚取积分