
《智能控制》实验指导书张鹏编写自动化系
《智能控制》实验指导书 张 鹏 编写 自动化系

实验一模糊工具箱的使用实验目的1、掌握Matlab模糊工具箱的应用。2、掌握模糊集合的基本运算。3、能够使用Simulink工具箱设计模糊控制系统。实验设备二、1、PC机2、Matlab软件三、实验内容第一步:打开模糊推理系统编辑器步骤:在CommondWindow键入fuzzy回车AMATLABFile EdeDebug Desktop WindowHelpDX邮n口DWOeATLAETNokGShetcteHew o Adawhin NenidwindarDAProjEcMAP2>fusy6口0·FieTveALFesFolderAUVControl EmluatorFoldarAUVmatlab程序FolderOthersOarertDredorwedispcedH.XEVfursy_l,VFursy_2,DezreeFusy,l,tafuzyDetreeFuszy_3=readfisCDetreePur-X--08-12-13F45t47.-[VFutsy_1,wFussy_2,DegreeFuzsy_1,tDegreeFuny_3readfist'DtreeFur×08-12-15下43:44-furty[VFusny_l,VFusny_2,DegreeFuay_1,eleaatblog.163.com/libingsen1984打开如下窗口,既模糊推理系统编辑器1
1 实验一 模糊工具箱的使用 一、 实验目的 1、掌握 Matlab 模糊工具箱的应用。 2、掌握模糊集合的基本运算。 3、能够使用 Simulink 工具箱设计模糊控制系统。 二、 实验设备 1、PC 机 2、Matlab 软件 三、 实验内容 第一步:打开模糊推理系统编辑器 步骤:在 Commond Window 键入 fuzzy 回车 打开如下窗口,既模糊推理系统编辑器

AFIS Editor UntitledOXFile Edit ViewMUntitied(mamdani)input1outputiFISNameUrtitiedFiSTypemamndaniAndmethodCurrent Variable-minNameinpu1Or-method国maxinputTypeImplication国min[0.1]RangeAggregation国maxDefuzzification国certroidHeipCloseSystem'Untaied1input,1output,and 0rules第二步:使用模糊推理系统编辑器本例用到两个输入,两个输出,但默认是一个输人,一个输出步骤:1、添加一个输入AFIS Editor:UntitledFileEditViewUndoCtrl+zAdd Variable.InputOutputRemoveSelectedVariableCtrl+xUntitiedCtrl+2MembershipFunctions...Ctrl+3Rules...mamdani)inputi添加一个输出2
2 第二步:使用模糊推理系统编辑器 本例用到两个输入,两个输出,但默认是一个输人,一个输出 步骤: 1、添加一个输入 添加一个输出

AFIS Editor:UntitdedFileEditViewUndoCtrl+zInputAdd Variable..OutputRemove SelectedVariable Ctrl+xUntitledCtrl+2MembershipFunctions...Ctrl+3Rules...namdani)Xinput2得如下图AFISEditorUntitledX-File Edit ViewVUntitiedinputtoutput1(mamdani)Xinput2output2FIS Name:UntiiedFIS Type:mamdaniAndmethodCurrentVariablemin二NarmeOrmethod区maxTypeImplication日minRangeAggregetion国maxDefuzzificationHesbClosecentroidReady2、选择Input、output(选中为红框),在Name框里修改各输入的名称并将Andmethod改为prod,将Ormethod改为probor3
3 得如下图 2、选择 Input、output(选中为红框),在 Name 框里修改各输入的名称 并将 And method 改为 prod,将 Or method 改为 probor

AFIs Editor:Untitded-OXFileEditViewXUntitliedout(mamdani)XOut1FISNameUnttledFIS Type:mamdaniAndmethodCurrert Variable国minNamenxOrmethod国maxTypeinputIrpication日min[01]RangeAggregation日maxDefuzzificationHeipClosecentroidRenaming outputvariable2to"out_y提示:在命名时,,在显示时为下标,可从上图看出。第三步:使用隶属函数编辑器该编辑器提供一个友好的人机图形交互环境,用来设计和修改模糊推理系中各语言变量对应的隶属度函数的相关参数,如隶属度函数的形状、范围、论域大小等,系统提供的隶属度函数有三角、梯形、高斯形、钟形等,也可用户自行定义。步骤:1、双击任何一个输入量(In_x、In_y)或输出量打开隶属度函数编辑器
4 提示:在命名时’_’在显示时为下标,可从上图看出。 第三步:使用隶属函数编辑器 该编辑器提供一个友好的人机图形交互环境,用来设计和修改模糊推理系 中各语言变量对应的隶属度函数的相关参数,如隶属度函数的形状、范围、论域 大小等,系统提供的隶属度函数有三角、梯形、高斯形、钟形等,也可用户自行 定义。 步骤: 1、 双击任何一个输入量(In_x、In_y)或输出量打开隶属度函数编辑器

AMembership Function Editor:UntitledCOXFile Edit ViewMemberahip function plots plot points:181FISVaniablesmf2mfXXVVOuto.1020130.5080.70.80405noutvariablenCurrentVariableCurrentMembershipFunction(clickonMFtoselect)NamemftNamenxTypeOtrimtTypeinputParams[-0.400.4]Range[01]DisplayRange[01]HelpCloseReady2、在左下处Range和DisplayRange处添加取值范围,本例中In_x和In_y的取值范围均为[010],Out_x和Out_y的取值范围均为[01]3、默认每个输入输出参数中都只有3个隶属度函数,本例中每个输入输出参数都需要用到五个,其余几个需要自已添加:选中其中一个输入输出参数点击Edit菜单,选AddMFS打开下列对话框AMembershipFunctions口XAddmembershipfunctionsMFtype一trinfNumberofMFs国2OKCancel将MFtype设置为trimf(三角形隶属度函数曲线,当然你也需要选择其他类型)将NumberofMFs设置为2,点击OK按钮同样给其他三个加入隶属度函数5
5 2、在左下处 Range 和 Display Range 处添加取值范围,本例中 In_x 和 In_y 的 取值范围均为[0 10], Out_x 和 Out_y 的取值范围均为[0 1] 3、默认每个输入输出参数中都只有 3 个隶属度函数,本例中每个输入输出参数 都需要用到五个,其余几个需要自己添加: 选中其中一个输入输出参数 点击 Edit 菜单,选 Add MFS.打开下列对话框 将 MF type 设置为 trimf(三角形隶属度函数曲线,当然你也需要选择其他类型) 将 Number of MFs 设置为 2,点击 OK 按钮 同样给其他三个加入隶属度函数

4、选中任何一个隶属度函数(选中为红色),在Name中键入名称,在Type中选择形状,在Params中键入范围,然后回车如下图:AMembershipFunction Editor:UntitledOXFileEditViewMembershipfunctionplotsplotpoints:181FIS VariablesmtsXXXX710inputvariablein,CurrentVariableCurrentMembershipFunction(chckonMFtoselectNamenxNamezType一trimtTypeirputParamns[357]Range(0.10)DisplayRange[010]HelpCloseChangingpararneterforMF2to[357]本例中:In_x,In_y隶属度函数相同,如下NameTypeParams[1 1. 5]IXL2\IYL2zmf[1 2.5 4]IXLI\IYLItrimf[3 5 7]IXZ>IYZtrimfIXRI\IYRItrimf[6 7.59]IXR2\IYR2smf[8.5 9]Outx.Outy隶属度函数相同,如下
6 4、选中任何一个隶属度函数(选中为红色),在 Name 中键入名称,在 Type 中 选择形状,在 Params 中键入范围,然后回车如下图: 本例中:In_x,In_y 隶属度函数相同,如下 Out_x,Out_y 隶属度函数相同,如下: Name Type Params IXL2\IYL2 zmf [1 1.5] IXL1\IYL1 trimf [1 2.5 4] IXZ\IYZ trimf [3 5 7] IXR1\IYR1 trimf [6 7.5 9] IXR2\IYR2 smf [8.5 9]

NameTypeParams[0. 1 0. 15]OXL2/0YL2zmfOXL1/OYL2trimf[0.10.25 0.4]OXZOYZtrimf[0.30.50.7]trimf[0.6 0.75 0.9]OXRI\OYRIOXR2\0YR2[0.85 0.9]smfAMembershipFunction Editor:UntitledXFile Edit Viewplotpoints:Membershipfunction.plots181FIS VariablesOXL2OXR2OXL1OXZOXR1XXXX5Ou0.10.2030506-0.70.80.0outputvariablerOutCurrert VariableCurrertMembershipFunction (clickonMF toselect)NameoutxOXR2NameType-smfoutputTypeParans[0.85 0.9]Range[01]DisplayRange[0.1]HelpCloseRenarmingMF 3to"OXR2"5、关闭隶属函数编辑器第四步:使用规则编辑器通过隶规则编辑器来设计和修改“IF...THEN”形式的模糊控制规则。由该综辑器进行模糊控制规则的设计非常方便,它将输入量各语言变量自动匹配,而设计者只要通过交互式的图形环境选择相应的输出语言变量,这大大简化了规则的设计和修改。另外,还可为每条规则选择权重,以便进行模糊规则的优化。步骤:1、打开规则编辑器点击Edit菜单,选Rules7
7 5、关闭隶属函数编辑器 第四步:使用规则编辑器 通过隶规则编辑器来设计和修改“IF.THEN”形式的模糊控制规则。由该编 辑器进行模糊控制规则的设计非常方便,它将输入量各语言变量自动匹配,而 设计者只要通过交互式的图形环境选择相应的输出语言变量,这大大简化了规 则的设计和修改。另外,还可为每条规则选择权重,以便进行模糊规则的优化。 步骤: 1、打开规则编辑器 点击 Edit 菜单,选 Rules. Name Type Params OXL2\OYL2 zmf [0.1 0.15] OXL1\OYL2 trimf [0.1 0.25 0.4] OXZ\OYZ trimf [0.3 0.5 0.7] OXR1\OYR1 trimf [0.6 0.75 0.9] OXR2\OYR2 smf [0.85 0.9]

AFISEditor:UntitledEditFileViewUndoCtrl+zAAdd Variable....RemoveSelectedVariableCtrl+XUntitlecCtrl+2MembershipFunctions...Rules..Ctrl+3mamdaiin打开下了对话框Rule Editor:UntitledOXFile Edit View OptionsVandThenandIfIn_xisin.yisOut_xisOut_yisXL2DYL2OXL2OYL2人A人ADXZIYZOXZOYZXR2IYR2OXR2OYR2XL1TYL1OXL1OYL1XR1IYR1OXR1OYR1nonenonenonenoneAVnotnotnotnotWeigtConnectionOorOandAddruleChange ruleSDeleteruleNo rulesforsystem"UntiedHelpClose2、添加规则选中IXL2.IYL2.OXL2.none(表示不被选中任何隶属度函数),and选项,权重Weight均设为1,然后点击Addrule添加规则,同理添加其他规则。下图为添加所有role后:8
8 打开下了对话框 2、添加规则 选中 IXL2,IYL2,OXL2,none(表示不被选中任何隶属度函数),and 选项,权重 Weight 均设为 1,然后点击 Add rule 添加规则,同理添加其他规则。 下图为添加所有 role 后:

Rule Editor:UntitledCOXFile Edit View Options1.If (In_xtsIXL2)and (in_y isTYL2)then (Out_xisOXL2) (1)A2. f(in_xlsXL1)and(in_yisTYL1)then(Out_x isOXL1)(1)3.f(n_xisIXZ)and(n_yisIYZ)then(Out_xisOXZ)(1)4.If (n_xis XR1)and (n_y lsIYR1)then (Ou_xisOXR1)(1)5.if(n_xisXR2)and (n.yisTYR2)then(Out_xisOXR2)(1)6.If(n_xisXL2)or(In_y isIYL2)then(Out_yisOYL2)(1)7.If(nxisDXL1)or(n_yisIYL1)then(OutyisOYL1)(1)8.If(n_xisIXZ)or(in_yisIYZ)then(Out_yisOYZ)(1)9.If (n_xisDXR1)or(n_yis YR1)then(Out.yisOYR1)(1)10.(nXisXR2)or(nyisIYR2)then(OutyisOYR2)10)Then1ororOutyisIn_xisIn.yisOut_xisXL2IYL2OXL2OYL2AAAAOXZIXZOYZIYZXR2OXR2TYR2OYR2XL1OXL1IYL1OYL1IXR1TYR1OXR1OYRInonenonenonenone4LVYnotnotnotnotWeightConnectionOor@and1DeleteruleAddruleChangerule23The rule is addedHelpClose3、关闭规则编辑器第五步:保存并查看结果步骤:1、保存AFIS Editor UntitdledFile Edit View、New FIS...AImportTo Workspace... Ctrl+TExportCtrl+sTo Disk....Ctrl+pPrintCloseCtrl+w(mamdani)保存为Test.fis2、View->Rules打开RuleViewer9
9 3、关闭规则编辑器 第五步:保存并查看结果 步骤: 1、 保存 保存为 Test.fis 2、View->Rules 打开 Rule Viewer