模糊逻辑工具箱在Simulink中…

本文详细介绍如何在Simulink中利用模糊逻辑工具箱创建和应用模糊推理系统,包括创建.fis文件、定义输入输出及隶属度函数、设定模糊规则等步骤。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

下面用一个简单的例子作介绍:

(本例不是特别针对实现什么功能,只是为了介绍方便)

第一部分 创建一个模糊逻辑(.fis文件)

第一步:打开模糊推理系统编辑器

步骤:

在Commond Window 键入fuzzy

回车

[转载]模糊逻辑工具箱在Simulink中的使用
打开如下窗口,既模糊推理系统编辑器
[转载]模糊逻辑工具箱在Simulink中的使用

第二步:使用模糊推理系统编辑器

本例用到两个输入,两个输出,但默认是一个输人,一个输出

步骤:

1、添加一个输入 

[转载]模糊逻辑工具箱在Simulink中的使用
 添加一个输出
[转载]模糊逻辑工具箱在Simulink中的使用
得如下图

[转载]模糊逻辑工具箱在Simulink中的使用
2、选择Input、output(选中为红框),在Name框里修改各输入的名称

并将And method 改为prod,将Or method 改为 probor

[转载]模糊逻辑工具箱在Simulink中的使用
提示:在命名时’_’在显示时为下标,可从上图看出。

第三步:使用隶属函数编辑器

该编辑器提供一个友好的人机图形交互环境,用来设计和修改模糊推理系中各语言变量对应的隶属度函数的相关参数,如隶属度函数的形状、范围、论域大小等,系统提供的隶属度函数有三角、梯形、高斯形、钟形等,也可用户自行定义。

步骤:

1、 双击任何一个输入量(In_xIn_y)或输出量打开隶属度函数编辑器。

[转载]模糊逻辑工具箱在Simulink中的使用
2、在左下处RangeDisplay Range处添加取值范围,本例中In_xIn_y的取值范围均为[0 10], Out_xOut_y的取值范围均为[0 1]

3、默认每个输入输出参数中都只有3个隶属度函数,本例中每个输入输出参数都需要用到五个,其余几个需要自己添加:

选中其中一个输入输出参数

点击Edit菜单,选Add MFS…打开下列对话框

[转载]模糊逻辑工具箱在Simulink中的使用
MF type设置为trimf(三角形隶属度函数曲线,当然你也需要选择其他类型)

Number of MFs 设置为2

点击OK按钮

同样给其他三个加入隶属度函数

4、选中任何一个隶属度函数(选中为红色),在Name 中键入名称,在Type中选择形状,在Params中键入范围,然后回车如下图:

[转载]模糊逻辑工具箱在Simulink中的使用
本例中:In_x,In_y隶属度函数相同,如下

 

Name

Type

Params

IXL2IYL2

zmf

[1 1.5]

IXL1IYL1

trimf

[1 2.5 4]

IXZIYZ

trimf

[3 5 7]

IXR1IYR1

trimf

[6 7.5 9]

IXR2IYR2

smf

[8.5 9]

 

 

 

 

 

 

Out_x,Out_y隶属度函数相同,如下:

Name

Type

Params

OXL2OYL2

zmf

[0.1 0.15]

OXL1OYL2

trimf

[0.1 0.25 0.4]

OXZOYZ

trimf

[0.3 0.5 0.7]

OXR1OYR1

trimf

[0.6 0.75 0.9]

OXR2OYR2

smf

[0.85 0.9]

 

 

 

 

 


[转载]模糊逻辑工具箱在Simulink中的使用
5、关闭隶属函数编辑器

第四步:使用规则编辑器

通过隶规则编辑器来设计和修改“IF...THEN”形式的模糊控制规则。由该编辑器进行模糊控制规则的设计非常方便,它将输入量各语言变量自动匹配,而设计者只要通过交互式的图形环境选择相应的输出语言变量,这大大简化了规则的设计和修改。另外,还可为每条规则选择权重,以便进行模糊规则的优化。

步骤:

1、打开规则编辑器

点击Edit菜单,选Rules…

[转载]模糊逻辑工具箱在Simulink中的使用
 打开下了对话框

[转载]模糊逻辑工具箱在Simulink中的使用
 2、添加规则

选中IXL2,IYL2,OXL2,none(表示不被选中任何隶属度函数),and选项,权重Weight均设为1,然后点击Add rule 添加规则,同理添加其他规则。

下图为添加所有role后:

 

 

[转载]模糊逻辑工具箱在Simulink中的使用
3、关闭规则编辑器

 

第五步:保存并查看结果

步骤:

1、 保存

[转载]模糊逻辑工具箱在Simulink中的使用
 保存为Test.fis

2View->Rules打开Rule Viewer

 

 

[转载]模糊逻辑工具箱在Simulink中的使用
3View->Surface打开Surface Viewer

[转载]模糊逻辑工具箱在Simulink中的使用
 

第二部分:将模糊逻辑添加到Simulink

第一步:创建一个Simulink文件

步骤:

1、打开Simulink

[转载]模糊逻辑工具箱在Simulink中的使用
 

2、点击新建按钮建立一个新的.mdl文件

[转载]模糊逻辑工具箱在Simulink中的使用
 

第二步:添加模糊逻辑

步骤:

1、在Simulink Library Brower 的搜索框内键入Fuzzy Logic Controller找到Fuzzy Logic Controller并将其拖拽到新建的mdl文件中

[转载]模糊逻辑工具箱在Simulink中的使用

2、双击Fuzzy Logic Controller,打开如下对话框,比在其内部键入Test

[转载]模糊逻辑工具箱在Simulink中的使用
 

3、关闭对话框

第三步:添加其他模块

如下图,都是常用模块,请自己添加

[转载]模糊逻辑工具箱在Simulink中的使用

第四步:保存并运行

步骤:

1、 保存为Test.mdl

2、 初始化模糊逻辑控制器,即在Command Window中键入Test = readfis('Test.fis'),回车

[转载]模糊逻辑工具箱在Simulink中的使用

1、 运行Test.mdl

这里可以比较一下结果

[转载]模糊逻辑工具箱在Simulink中的使用

### 创建和配置模糊逻辑控制系统 #### 构建基础环境 为了在Simulink中创建并配置模糊逻辑控制系统,首先需要启动MATLAB,并打开一个新的Simulink模型文件。这一步骤确保有一个干净的工作空间来进行后续的设计工作。 #### 添加Fuzzy Logic Controller模块 从Simulink库浏览器中找到`Fuzzy Logic Toolbox`下的`Fuzzy Logic Controller with Ruleviewer`或简单版本的`Fuzzy Logic Controller`模块,并将其拖放到当前编辑中的模型窗口内[^1]。 #### 配置输入输出信号 对于每一个连接至Fuzzy Logic Controller的输入端口,都需要定义相应的物理量作为其输入源;同样地,也需要指定该控制器产生的输出将会作用于哪个具体的执行机构或者其他子系统之上。例如,在水下四旋翼项目里,可能涉及到姿态角速度误差等作为输入变量,而PWM占空比则可能是期望得到的输出结果之一[^2]。 #### 设计隶属函数与规则集 利用MATLAB自带工具——Fuzzy Logic Designer来完成对各个输入/输出变量所属范围内的隶属度函数设定以及制定一系列用于描述控制策略的具体条件语句(if-then rules)。这些设置可以通过图形界面直观地实现,极大地方便了用户的操作体验[^3]。 ```matlab % 打开Fuzzy Logic Designer应用程序 fuzzyLogicDesigner; ``` #### 导入外部数据 如果存在预先计算好的参数表或者是其他形式的数据结构希望引入到现有的仿真环境中,则可通过Workspace Import功能轻松达成目的。具体做法是在Model Configuration Parameters对话框里的Data Import/Export选项卡中进行相应配置[^4]。 #### 测试与优化 最后但同样重要的是要反复运行模拟实验以检验所建立起来的整个闭环反馈机制能否按照预期那样正常运作。必要时应当返回去修改之前所做的假设前提或是调整某些关键性的超参数值直至获得满意的效果为止。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值