模糊pidmatlabsimulink仿真详细步骤.docx
《模糊pidmatlabsimulink仿真详细步骤.docx》由会员分享,可在线阅读,更多相关《模糊pidmatlabsimulink仿真详细步骤.docx(15页珍藏版)》请在冰豆网上搜索。
模糊pidmatlabsimulink仿真详细步骤
下面用一个简单的例子作介绍:
(本例不是特别针对实现什么功能,只是为了介绍方便)
第一部分创建一个模糊逻辑(.fis文件)
第一步:
打开模糊推理系统编辑器
步骤:
在CommondWindow键入fuzzy
回车
打开如下窗口,既模糊推理系统编辑器
第二步:
使用模糊推理系统编辑器
本例用到两个输入,两个输出,但默认是一个输人,一个输出
步骤:
1、添加一个输入
添加一个输出
得如下图
2、选择Input、output(选中为红框),在Name框里修改各输入的名称
并将Andmethod改为prod,将Ormethod改为probor
提示:
在命名时’_’在显示时为下标,可从上图看出。
第三步:
使用隶属函数编辑器
该编辑器提供一个友好的人机图形交互环境,用来设计和修改模糊推理系中各语言变量对应的隶属度函数的相关参数,如隶属度函数的形状、围、论域大小等,系统提供的隶属度函数有三角、梯形、高斯形、钟形等,也可用户自行定义。
步骤:
1、双击任何一个输入量(In_x、In_y)或输出量打开隶属度函数编辑器。
2、在左下处Range和DisplayRange处添加取值围,本例中In_x和In_y的取值围均为[010],Out_x和Out_y的取值围均为[01]
3、默认每个输入输出参数中都只有3个隶属度函数,本例中每个输入输出参数都需要用到五个,其余几个需要自己添加:
选中其中一个输入输出参数
点击Edit菜单,选AddMFS…打开下列对话框
将MFtype设置为trimf(三角形隶属度函数曲线,当然你也需要选择其他类型)
将NumberofMFs 设置为2
点击OK按钮
同样给其他三个加入隶属度函数
4、选中任何一个隶属度函数(选中为红色),在Name 中键入名称,在Type中选择形状,在Params中键入围,然后回车如下图:
5、关闭隶属函数编辑器
第四步:
使用规则编辑器
通过隶规则编辑器来设计和修改“IF...THEN”形式的模糊控制规则。
由该编辑器进行模糊控制规则的设计非常方便,它将输入量各语言变量自动匹配,而设计者只要通过交互式的图形环境选择相应的输出语言变量,这大大简化了规则的设计和修改。
另外,还可为每条规则选择权重,以便进行模糊规则的优化。
步骤:
1、打开规则编辑器
点击Edit菜单,选Rules…
打开下了对话框
2、添加规则
选中IXL2,IYL2,OXL2,none(表示不被选中任何隶属度函数),and选项,权重Weight均设为1,然后点击Addrule 添加规则,同理添加其他规则。
下图为添加所有role后:
3、关闭规则编辑器
第五步:
保存并查看结果
步骤:
1、保存
保存为Test.fis
2、View->Rules打开RuleViewer
3、View->Surface打开SurfaceViewer
第二部分:
将模糊逻辑添加到Simulink中
第一步:
创建一个Simulink文件
步骤:
1、打开Simulink
2、点击新建按钮建立一个新的.mdl文件
第二步:
添加模糊逻辑
步骤:
1、在SimulinkLibraryBrower 的搜索框键入FuzzyLogicController找到FuzzyLogicController,并将其拖拽到新建的mdl文件中
2、双击FuzzyLogicController,打开如下对话框,比在其部键入Test
3、关闭对话框
第三步:
添加其他模块
如下图,都是常用模块,请自己添加
第四步:
保存并运行
步骤:
1、保存为Test.mdl
2、初始化模糊逻辑控制器,即在CommandWindow中键入Test=readfis('Test.fis'),回车
1、运行Test.mdl
这里可以比较一下结果