文章目录

  • 一、模糊控制器概述
  • 二、模糊控制器的设计步骤
  • 三、模糊控制器设计举例及matlab代码实现
  • 四、运行结果及源代码
一、模糊控制器概述

在确定性控制系统中,根据控制器输出的个数,可分为单变量控制系统和多变量控制系统。在模糊控制系统中也可类似地划分为单变量模糊控制和多变量模糊控制。

二、模糊控制器的设计步骤

1、确定模糊控制器的结构
2、定义输入输出模糊集、隶属函数
3、建立模糊控制规则
4、模糊推理
5、反模糊化

三、模糊控制器设计举例及matlab代码实现

1、确定模糊控制器的结构(两个输入e和ec,一个输出u),即多变量模糊控制器。

2、定义输入输出模糊集、隶属函数
输入e的模糊集定义及隶属函数(e的输入范围为-9到9,有NB、NM、NS、Z、PS、PM、PB七个隶属函数)。

输入eu的模糊集定义及隶属函数(eu的输入范围为-9到9,有NB、NM、NS、Z、PS、PM、PB七个隶属函数)。

输出u的模糊集定义及隶属函数(u有NB、NM、NS、Z、PS、PM、PB七个隶属函数)。

3、建立模糊控制规则
对输入(e、eu)、输出(u)的隶属函数建立模糊规则。
模糊规则解释(本文中定义了36条模糊规则):
2.If (e is NB) and (ec is NM) then (u is NB) (1)
如果输入e属于隶属函数NB,输入ec属于隶属函数NM,则输出u属于隶属函数NB。
10.If (e is NM) and (ec is PB) then (u is PS) (1)
如果输入e属于隶属函数NM,输入ec属于隶属函数PB,则输出u属于隶属函数PS。


4、模糊推理
通过模糊推理算法和模糊控制规则进行推理,得到最终的控制量。

5、反模糊化
将模糊推理结果转化为精确值。常用的反模糊化方法有三种,最大隶属度法、重心法、加权平均法,本例采用的是重心法。

四、运行结果及源代码

输入e和输入ec,经过模糊推理计算得到输出u:

输入e的7个隶属度函数图像:

输入ec的7个隶属度函数图像:

输出u的7个隶属度函数图像:

经过模糊推理得到的模糊矩阵:

源代码:

%模糊控制器设计
a=newfis('fuzzf');                   %创建新的模糊推理系统%输入1
f1=1;
a=addvar(a,'input','e',[-9*f1,9*f1]);                   %添加 e 的模糊语言变量
a=addmf(a,'input',1,'NB','zmf',[-2*f1,3*f1]);          %添加 e 的模糊语言变量的隶属度函数(z型)
a=addmf(a,'input',1,'NM','trimf',[-4*f1,-1*f1,5*f1]);      %隶属度函数为三角形
a=addmf(a,'input',1,'NS','trimf',[-5*f1,3*f1,4*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,6*f1]);
a=addmf(a,'input',1,'PB','smf',[6*f1,9*f1]); %输入2
f2=1;
a=addvar(a,'input','ec',[-9*f2,9*f2]);                   %添加 ec 的模糊语言变量
a=addmf(a,'input',2,'NB','zmf',[-5*f2,4*f2]);
a=addmf(a,'input',2,'NM','trimf',[-3*f2,3*f2,6*f2]);
a=addmf(a,'input',2,'NS','trimf',[-2*f2,4*f2,5*f2]);
a=addmf(a,'input',2,'Z','trimf',[-5*f2,0,3*f2]);
a=addmf(a,'input',2,'PS','trimf',[-3*f2,1*f2,4*f2]);
a=addmf(a,'input',2,'PM','trimf',[0,2*f2,7*f2]);
a=addmf(a,'input',2,'PB','smf',[2*f2,8*f2]); %输出
f3=1.5;
a=addvar(a,'output','u',[-9*f3,9*f3]);                 %添加 u 的模糊语言变量
a=addmf(a,'output',1,'NB','zmf',[-6*f3,3*f3]);
a=addmf(a,'output',1,'NM','trimf',[-4*f3,0,1*f3]);
a=addmf(a,'output',1,'NS','trimf',[-2*f3,1*f3,6*f3]);
a=addmf(a,'output',1,'Z','trimf',[-3*f3,2*f3,3*f3]);
a=addmf(a,'output',1,'PS','trimf',[-1*f3,4*f3,5*f3]);
a=addmf(a,'output',1,'PM','trimf',[0,3*f3,6*f3]);
a=addmf(a,'output',1,'PB','smf',[5*f3,7*f3]);%规则库
rulelist=[1 1 1 1 1;             %编辑模糊规则,后俩个数分别是规则权重和AND OR选项1 2 1 1 1;1 3 2 1 1;1 4 2 1 1;1 6 3 1 1;1 7 7 1 1;2 1 2 1 1;2 2 6 1 1;2 3 3 1 1;2 7 5 1 1;3 1 1 1 1;3 2 3 1 1;3 3 4 1 1;3 4 2 1 1;3 6 4 1 1;3 7 5 1 1;4 1 1 1 1;4 4 2 1 1;4 5 3 1 1;4 6 3 1 1;4 7 5 1 1;5 1 2 1 1;5 2 4 1 1;5 5 3 1 1;5 6 6 1 1;5 7 5 1 1;6 1 1 1 1;6 2 3 1 1;6 3 2 1 1;      6 6 4 1 1;6 7 5 1 1;7 1 1 1 1;7 2 2 1 1;7 5 3 1 1;7 6 4 1 1;7 7 5 1 1;];a=addrule(a,rulelist);                %添加模糊规则函数
showrule(a)                             %显示模糊规则函数
a1=setfis(a,'DefuzzMethod','centroid');                  %设置解模糊方法
writefis(a1,'fuzzf');                       %保存模糊系统
a2=readfis('fuzzf');   %从磁盘读出保存的模糊系统
disp('fuzzy Controller table:e=[-3,+3],ec=[-3,+3]');%显示矩阵和数组内容%推理
Ulist=zeros(7,7);                                   %全零矩阵
for i=1:7for j=1:7e(i)=-3+i;ec(j)=-2+j;Ulist(i,j)=evalfis([e(i),ec(j)],a2);    %完成模糊推理计算endend
%   Ulist=ceil(Ulist)                               %朝正无穷方向取整Ulist                               %朝正无穷方向取整%画出模糊系统
figure(1); plotfis(a2);
figure(2);plotmf(a,'input',1);
figure(3);plotmf(a,'input',2);
figure(4);plotmf(a,'output',1);

计算智能--模糊控制器相关推荐

  1. 计算智能 — 模糊计算

    计算智能 - 模糊计算 1. 简介 模糊计算涉及的就是依据模糊规则,从几个控制变量的输入得到最终输出的过程.这个过程可以细分为4个模块:模糊规则库.模糊化.推理方法和去模糊化. 模糊规则库是专家提供的 ...

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

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

  3. matlab中打不开保存好的模糊控制器,(完整版)matlab模糊控制工具箱的使用

    matlab模糊控制工具箱的使用 本学期选修了周川老师的智能控制及应用这门课程,大三时候曾上过周老师的英文版的控制工程基础这门课程,比较喜欢周老师上课的风格,智能控制这门课也收获不小,模糊控制是课程中 ...

  4. 基于matlab的模糊控制器的设计与仿真,基于MATLAB的模糊控制洗衣机的设与仿真详解.doc...

    基于MATLAB的模糊控制洗衣机的设计与 仿真 卫瑶瑶,王胜红 (南京农业大学工学院,210031) 摘要:根据模糊控制的原理对传统洗衣机进行改造,设计了模糊控制系统.通过MATLAB仿真,采用取最大 ...

  5. matlab实现模糊控制器并仿真,用Matlab实现空调温度模糊控制器的设计与仿真.pdf...

    您所在位置:网站首页 > 海量文档 &nbsp>&nbsp建筑/施工&nbsp>&nbsp给排水/暖通与智能化 用Matlab实现空调温度模糊控制器的 ...

  6. matlab实现模糊控制器并仿真,用Matlab实现空调温度模糊控制器的设计与仿真

    第 20 卷第 1 期 2006 年 3 月 上 海 工 程 技 术 大 学 学 报 JOURNAL OF SHANGHAI UNIVERSITY OF ENGINEERING SCIENCE Vol ...

  7. 模糊控制器隶属度函数绘制

    模糊控制器隶属度函数绘制 这里主要介绍两种方法,都是用MATLAB进行绘制,用Python绘图会报encoding编码的问题 隶属度函数有三角形隶属度函数.高斯隶属度函数.梯形隶属度函数等等 这里以三 ...

  8. 两输入单输出的模糊控制器

    思考题:建立两输入单输出的模糊控制器(系统同上),其中一个输入是反馈值与设定的期望值之间的误差,另一输入为反馈值与设定的期望值之间的变化,调整量化因子和比例因子改变控制系统性能. 评价指标:最大偏差( ...

  9. 模糊控制器的MATLAB仿真(位置跟踪和 Simulink仿真)

    模糊控制器的MATLAB仿真 模糊控制器的设计 设计模糊控制的具体详解请参照链接: https://blog.csdn.net/LOVE_105/article/details/112135599. ...

  10. 利用MATLAB模糊控制器实现对水位高度调节SIMULINK仿真(隶属度7分级)

    A.理论分析与设计 (1)确定模糊控制器的输入.输出变量 模糊控制器的两个输入变量,分别选为液位偏差E(设定液位高度r-实测液位高度y)和液位偏差变化率EC,输出模糊变量为控制阀门开度U: (2)确定 ...

最新文章

  1. Swift-跳转到tableView指定位置
  2. redis 内存溢出_Redis为何这么快数据存储角度
  3. 大疆Onboard SDK开发中连接飞控后串口设置与开机自启动
  4. Lua学习笔记9:多文件
  5. mysql作业是什么意思_MySQL 作业七
  6. 2017年经历的那些灵异事件
  7. Python的模板:HTML代码 + 模板语法
  8. 修改zepto源代码,使支持wp8的ie10
  9. linux的netperf测试,性能测试工具netperf安装使用
  10. Android NDK开发之 Neon优化
  11. Scala:函数和闭包
  12. python解题工程力学_工程力学学习指导与解题指南(普通高等教育十三五规划教材)...
  13. 深度好文| Redis面试全攻略
  14. ssh secure 安装mysql_centos7 安装mysql
  15. macos下安装john the ripper并配置zip2john
  16. mac文本编辑写html5代码,BBEdit For Mac v13.5.5 专业的的文本和HTML编辑器
  17. Joomla禁用google字体
  18. 达内微软mta证书有用吗_达内与微软达成战略合作 合作培养青少年科技素质
  19. 新版Wireshark支持国密,国内网安一哥360在背后做了这么多事
  20. Java集成环信即时通讯(SpringBoot)

热门文章

  1. 思科交换机配置命令(详细命令总结归纳)
  2. 思科交换机路由器配置命令大全
  3. oracle 序列号连号,火并VariPrint技术指标(HaiyaaVariPrint.PDF
  4. 软件比较 - Sniffer、Omnipeek、科来网络分析系统过滤器比较之位过滤 在捕获数据包时,有时候需要对一个字节中的某一个位进行精确匹配,这时,我们就需要用到位过滤。位过滤相对于地址、端口、协
  5. win7主题文件夹背景破解
  6. 从Conficker蠕虫看AD帐号锁定
  7. android httpclient基本用法
  8. 查歌词php,php krc歌词解析
  9. 人声混音处理的基本步骤和常用插件
  10. WebService实例