1  引言

1.1 MATLAB简介

MATLAB软件是一款广泛应用于工程设计、自动化控制、信号与图像处理、金融财务分析建模等领域的数学计算建模软件,使用更加贴近目前电脑用户熟悉的Windows的标准界面与视窗环境,来实现函数运算数值分析、数值信号的界面可视化、非线性动态系统的建模仿真及其他编程软件的接口等专业功能,为众多的专业领域提供强大的工具箱与建模集。

MATLAB提供了一些函数命令来实现模糊控制逻辑系统,这些函数不仅能完全实现图形化方式所提供的功能,同时还可以实现图形化方式所难以实现的功能,特别是对那些复杂的模糊推理系统而言更有优势。

1.2 系统设计要求

(1)输入变量:偏差 e、偏差变化率 de;输出变量:u。相应隶属度函数为:

(2)规则要求:

(3)模糊化方法:平均最大隶属度函数法 mom。

(4)编程实现:程序运行后要求用图形显示输入、输出变量的隶属度函数曲线;显示模糊控制系统的推理过程结构框图,并把此系统保存到 fuzzy.fis 文件中。

2  模糊控制器设计

在MATLAB模糊逻辑工具箱中包含trimf型、smf型、zmf型等11种隶属度函数类型,在工具箱给出的函数类型之外也可以自行设计能够满足用户不同需求的函数类型。

2.1 隶属度函数建立

本文根据题目要求建立该两输入-一输出系统结构相应的控制器输入/输出参数模糊集和隶属度函数。隶属度函数的取值范围必须满足[0,1]的区间,函数方式可分为数值描述方式(论域为离散型)和函数描述方式(论域为连续性)。

(1)输入变量偏差e[-3,3],将偏差模糊集细分为负、零、正三种类型,分别用N、Z、P表示,隶属度函数使用三角型隶属度函数。

(2)输入变量偏差变化率de[-3,3],将偏差变化率模糊集细分为负、零、正三种类型,分别用N、Z、P表示,隶属度函数采用三角型隶属度函数。

(3)输出变量u[-4,4],将输出变量模糊集细分为负大、负小、零、正小、正大五种类型,分别用NB、NS、ZE、PS、PB表示,NB的隶属度函数采用Z函数,NS、ZE、PS的隶属度函数采用三角型隶属度函数,PB的隶属度函数采用S函数。

2.2 模糊控制规则建立

在MATLAB模糊逻辑工具箱中,模糊控制规则用if-then的形式来表示,根据题目要求,可以得出以下9条模糊控制规则:

1. If (e is N) and (de is N) then (u is PB)

2. If (e is N) and (de is Z) then (u is PS)

3. If (e is N) and (de is P) then (u is ZE)

4. If (e is Z) and (de is N) then (u is ZE)

5. If (e is Z) and (de is Z) then (u is ZE)

6. If (e is Z) and (de is P) then (u is NS)

7. If (e is P) and (de is N) then (u is NS)

8. If (e is P) and (de is Z) then (u is NS)

9. If (e is P) and (de is P) then (u is NB)

2.3 平均最大隶属度函数法

通常的模糊集合并非都是正规的和凸的,隶属函数也并非都是一条连续曲线。因此,用隶属度最大点对应的函数值,代表这个模糊集合也是一种简单的方法,称为最大隶属度法。

如果在模糊集合的论域上,有多个点取得最大隶属度值,取这些点的平均值的横坐标作为模糊集合的代表点,这个方法成为最大隶属度平均值。设

则n个点的隶属度都取最大,有:

2.4 模糊控制器的MATLAB编程实现

在MATLAB中建立一个2Input-1Output类型的fuzzy模糊控制结构,其输入、输出变量分别为偏差e、偏差变化率de、输出u。MATLAB程序如下:

clear;

close all;

%模糊控制器设计

a=newfis('fuzzy');        %创建新的模糊推理系统

%输入1

a=addvar(a,'input','e',[-3,3]);

%添加e的模糊语言变量

a=addmf(a,'input',1,'N','trimf',[-3,-3,0]);

%隶属度函数为三角形函数

a=addmf(a,'input',1,'Z','trimf',[-3,0,3]);

a=addmf(a,'input',1,'P','trimf',[0,3,3]);

%图1

figure(1);

plotmf(a,'input',1);

%输入2

a=addvar(a,'input','de',[-3,3]);

%添加de的模糊语言变量

a=addmf(a,'input',2,'N','trimf',[-3,-3,0]);

%隶属度函数为三角形函数

a=addmf(a,'input',2,'Z','trimf',[-3,0,3]);

a=addmf(a,'input',2,'P','trimf',[0,3,3]);

%图2

figure(2);

plotmf(a,'input',2);

%输出

a=addvar(a,'output','u',[-4,4]);

%添加u的模糊语言变量

a=addmf(a,'output',1,'NB','zmf',[-4,-1]);

%隶属度函数为Z函数

a=addmf(a,'output',1,'NS','trimf',[-4,-2,1]);

a=addmf(a,'output',1,'ZE','trimf',[-2,0,2]);

a=addmf(a,'output',1,'PS','trimf',[-1,2,4]);

a=addmf(a,'output',1,'PB','smf',[1,4]);  %隶属度函数为S函数

%图3

figure(3);

plotmf(a,'output',1);

%设置规则库

rulelist=[1 1 5 1 1;

1 2 4 1 1;

1 3 3 1 1;

2 1 3 1 1;

2 2 3 1 1;

2 3 2 1 1;

3 1 2 1 1;

3 2 2 1 1;

3 3 1 1 1];

a=addRule(a,rulelist);     %添加模糊规则函数

showrule(a)            %显示模糊规则函数

a1=setfis(a,'DefuzzMethod','mom');  %模糊化方法为平均最大隶属度函数法mom

writefis(a1,'fuzzy');   %保存模糊控制系统

a2=readfis('fuzzy');    %从磁盘读出保存的模糊系统

disp('fuzzy Controller table:e=[-3,+3],de=[-3,+3]'); %显示矩阵和数组内容

%推理

Ulist=zeros(7,7);    %创立一个7×7的全零矩阵

for i=1:7

for j=1:7

e(i)=-4+i;

de(j)=-4+j;

Ulist(i,j)=evalfis([e(i),de(j)],a2);    %完成模糊推理计算

end

end

Ulist=ceil(Ulist)      %取整(向大数取)

%图4

figure(4);

plotfis(a2);

2.5 程序运行结果

2.5.1 输入输出变量隶属度函数曲线

                            图1 e的隶属度函数曲线                                图2 de的隶属度函数曲线

                     图3 u的隶属度函数曲线                                     图4 模糊控制系统结构框图

2.5.2 规则和Ulist矩阵

图5  MATLAB运行规则

图6 Ulist矩阵

根据Ulist矩阵可知,当 e=-1,de=2 时,i=3,j=6,则u=-1;当 e=2,de=1 时,i=6,j=5,则u=-1

2.6 输入输出关系曲面

将该系统保存到fuzzy.fis文件中,并把已保存的fuzzy.fis文件导入到图形界面可视化工具中,如图7所示:

图7 工具箱中的模糊推理系统

通过曲面观察器(Surface Viewer)查看该模糊推理系统的输入输出关系曲面,如图8所示:

图8 输入输出关系曲面

2.7 用规则观察器查看模糊推理情况

通过规则观察器(Rule Viewer)查看对具体输入的模糊推理及输出情况,输入各种不同的数据,查看模糊推理情况及输出数据。

通过规则观察器可以更加形象地看到对输入变量的模糊推理及输出情况,与前面设置的9条规则完全吻合。

2.8 结论

通过本次基于MATLAB 的模糊逻辑系统设计,我进一步熟悉了模糊控制系统的设计步骤,对模糊系统的两要素论域和隶属函数有了更直观的理解,同时对模糊控制系统的工作原理体会更深刻,并且我学会了基于模糊控制系统的MATLAB编程,以及如何使用模糊逻辑工具箱。

参 考 文 献

[1]  张德丰编著. MATLAB R2017a人工智能算法[M]. 北京:电子工业出版社, 2018.05.

[2]  楼顺天,胡昌华等编著. 基于MATLAB的系统分析与设计 6 模糊系统[M]. 西安:西安电子科技大学出版社, 2001.05.

[3]  李根.基于MATLAB的模糊逻辑控制系统设计[J].机电信息,2020(06):72-73.

[4]  李洪涛.模糊逻辑系统设计分析[J].小型微型计算机系统,1995(05):57-62.

[5]  韦巍,何衍编著. 智能控制基础[M]. 北京:清华大学出版社,2005.61-65

基于 MATLAB 的模糊逻辑系统设计相关推荐

  1. matlab模糊系统设计 pdf,基于MATLAB的模糊控制系统设计.pdf

    <基于MATLAB的模糊控制系统设计.pdf>由会员分享,可在线阅读,更多相关<基于MATLAB的模糊控制系统设计.pdf(12页珍藏版)>请在文客久久网上搜索. 1.实 验 ...

  2. 系统穿越频率用matlab,基于Matlab的自动控制系统设计

    基于Matlab的自动控制系统设计 (8页) 本资源提供全文预览,点击全文预览即可全文预览,如果喜欢文档就下载吧,查找使用更方便哦! 11.90 积分 第一章 课程设计内容与要求分析1.1设计内容针对 ...

  3. matlab中liccode函数,基于matlab车牌识别系统设计与实现(最终版)

    <基于matlab车牌识别系统设计与实现.doc>由会员分享,可在线阅读全文,更多相关<基于matlab车牌识别系统设计与实现(最终版)>请在www.woc88.com上搜索. ...

  4. 恒温matlab的仿真程序,基于Matlab恒温箱温度控制系统设计与仿真

    基于Matlab恒温箱温度控制系统设计与仿真 毕业设计论文 基于Matlab的恒温箱温度控制系统设计与仿真 摘 要 恒温箱在工业生产和科学研究中有着重要的作用,因此设计一个合适的温度控制系统有着重要的 ...

  5. 基于matlab车牌识别程序,基于MATLAB车牌识别系统设计

    基于MATLAB车牌识别系统设计(任务书,开题报告,毕业论文11200字) 摘要 社会的不断发展带动着经济也不断的增长,从而也提高了人们的生活水平.汽车的需求量也日渐增加,现代化交通管理的出现,解决了 ...

  6. 基于matlab fdma传输系统设计,基于MATLAB的通信系统设计(本科毕业论文).doc

    本科毕业设计(论文) 基于MATLAB的通信系统设计 2009年 6 月 摘要 随着现代通信系统的飞速发展,计算机仿真已经成为今天分析和设计通信系统的重要工具,在通信系统的研发和教学中具有越来越重要的 ...

  7. 基于matlab手势识别系统设置,毕业论文基于MATLAB的手势识别系统设计V0.1(手机版)...

    <[毕业论文]基于MATLAB的手势识别系统设计.doc>由会员分享,可免费在线阅读全文,更多与<毕业论文基于MATLAB的手势识别系统设计(V0.1)>相关文档资源请在帮帮文 ...

  8. matlab程序实现物理现象,关于基于Matlab物理实验系统设计与实现

    关于基于Matlab物理实验系统设计与实现摘要:以Matlab为主要开发技术,在Authorware平台下统筹Flash和Matlab软件,根据新课程标准要求设计了中学物理实验室系统.该系统能帮助学生 ...

  9. 基于matlab fdma传输系统设计,基于Matlab/Simulink的FDMA技术的仿真研究

    2011•8(上)<科技传播> 194 信息科技 Information Technology 基于Matlab/Simulink的 FDMA技术的仿真研究 赵莹琦 广州大学松田学院 ,广 ...

最新文章

  1. 12-09关于几种排序方式
  2. java虚拟机启动参数Xms,启动JVM时,-Xms和-Xmx参数是什么?
  3. vue 拷贝 数组_Vue实现对数组、对象的深拷贝、复制
  4. Java获取当前类名的两种方法
  5. 关于数据挖掘的几篇文章(1)
  6. Centos7 防火墙和Selinux 一些简单操作命令
  7. modis数据介绍_【更新90篇】地理数据科学技术文章合集,欢迎大家点赞、在看、转发三连!...
  8. 语义分割最新指南2019版
  9. 初学者web前端知识点--HTML部分
  10. PUSHA/POPA
  11. 跟我一起创建一个简单的javascript ajax对象 ---献给Web开发初学者
  12. 小白数据分析师的快速上手指南
  13. (二十三)张量场函数的散度与旋度
  14. 软件测试——测试流程重要性
  15. c语言中常用运算符号
  16. 怎么用计算机拟合函数wps,如何在excel 里利用曲线拟合的方式求公式|
  17. 毁人不倦 - 许嵩 - 苏格拉没有底
  18. 文件被清理了怎么恢复
  19. 【Android】腾讯即时通讯SDK的初次接入的详细记录
  20. Crd(自定义资源类型)2021.12.05

热门文章

  1. 金山毒霸官博:谈新DLL挟持***故事,话新老DLL挟持之不同
  2. 手机连接Fiddler
  3. 利用Python爬取百度指数中需求图谱的关键词
  4. 从单体应用转型为SaaS模式,Amazon SaaS Boost来搞定!
  5. 用橡皮泥做了个青龙偃月刀
  6. ORA-08002: 序列 SEQ_XXX.CURRVAL 尚未在此会话中定义
  7. android camera hal3 分析,HAL3 enabler下载-HAL3 enabler(开启camera2 api)下载v5.0 安卓版-西西软件下载...
  8. c语言中长整型变量的值一定大于短整型常量的值,c语言第3讲 常量、变量与标志符 整型、实型、字符型数据.ppt...
  9. #gStore-weekly | gstore源码解析(五):安全机制之日志追踪
  10. 听《金三银四》讲座记录