前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >Matlab 利用M文件产生模糊控制器

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

作者头像
用户9925864
发布2022-07-27 08:34:01
6510
发布2022-07-27 08:34:01
举报
文章被收录于专栏:算法工程师的学习日志

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

前期模糊控制和粒子群传送门:

matlab模糊控制工具箱使用和模糊控制pid实例参考(一)

matlab模糊控制工具箱使用和模糊控制pid实例参考(二)

粒子群优化算法(PSO)

粒子群优化算法-Python版本和Matlab函数调用

给出一个样例如下:

代码语言:javascript
复制
%%
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); 
本文参与 腾讯云自媒体同步曝光计划,分享自微信公众号。
原始发表:2021-02-23,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 算法工程师的学习日志 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档