1、4.5MATLAB辅助模糊系统设计 4.5.1 MATLAB仿真环境4.5.2 模糊控制系统仿真4.5.1 MATLAB仿真环境仿真环境4.5.2.1 MATLAB仿真环境的建立仿真环境的建立在MATLAB命令窗口键入命令Simulink或直接点击工具栏上的Simulink图标,可以打开Simulink模块库,如图所示。图5.8 MATLAB主界面图5.9 Simulink模块库在Simulink模块库环境里通过选择菜单FileNewModel,或直接点击工具栏上的相应图标可以创建一个新的模型。在图5.10所示的仿真模型编辑主窗口中,利用各种模块库将系统“画”出来,即搭建起来。例如,在图5.9
2、中的模块查看区域内选中一个模块,拖到图5.10中,可以看到这个模块出现在仿真环境仿真模型编辑主窗口中,如图5.10所示。图5.10 仿真模型编辑主窗口4.5.2.2 建立仿真系统建立仿真系统1.Simulink基本模块库简介基本模块库简介图5.11所示为Simulink基本模块库。Simulink基本模块库包含十几个子模块库,例如Commonly Used Blocks(通用模块子库)、Continuous(连续环节)、Discontinuities(不连续环节)、Discrete(离散环节)、Logic and Bit Operations(逻辑和位运算库)、Lookup Tables(查表
3、)、Math Operations(数学运算库)、Sinks(输出方式)、Sources(输入源)。Simulink基本模块库包含的是最基本的仿真模块,是MATLAB仿真建模的基础。每一个模块在使用时都需要设定一些相关参数,一般可以在模型编辑窗口双击该模块,然后在相应的弹出对话框里来设定这些参数。用右键单击模块图标,还可以在弹出的菜单里选择相关操作。2.Simulink Extras扩展模块库扩展模块库Simulink Extras扩展模块库是Simulink中模块的扩展,提供了一些更方便的功能模块,但它基本上是在Simulink模块上做了一些封装、集成以及初始化的工作,见图5.18。例如,S
4、mulink Extras中的PID模块是由Simulink中的6个模块(比例、积分、微分、求和、输入、输出)组合而成的,见图5.19。图5.18 Simulink Extras扩展模块库图5.19 PID模块封装实现示意图3.Fuzzy Logic Toolbox模糊逻辑模块库模糊逻辑模块库Fuzzy Logic Toolbox模糊逻辑模块库是一个专门用于模糊逻辑推理的仿真模块集合,经过封装的模糊逻辑仿真模块使用很方便。在Simulink的模糊逻辑模块库中,最常用的模块是Fuzzy Logic Controller,将该模块拷贝到用户所建立的Simulink仿真模块中,并使模糊逻辑控制器方块
5、图的模糊推理矩阵名称与用户在MATLAB工作空间(Workspace)建立的模糊推理系统名称相同,即可完成模糊推理系统与Simulink的连接。在MATLAB命令窗口中,单击Simulink图标,显示出模块库,再单击FileNewModel,建立起自己的模糊推理系统仿真编辑图形化窗口;单击Fuzzy Logic Toolbox模块库,用鼠标将Fuzzy Logic Controller拖入到模糊推理仿真系统编辑窗口,见图5.20。双击图5.20中模块的名称Fuzzy Logic Controller,将其改为新的名称,如fzy1,如图5.21所示。图5.20 模糊推理系统仿真系统编辑窗口图5.
6、21 设定模糊逻辑控制器的名称将在模糊推理系统仿真界面中建立的模糊推理系统fzy1打开。操作步骤如下:在MATLAB命令窗口中输入命令fuzzyEnter,出现FIS Edit编辑器画面,单击FileImportFrom Disk,打开5.1节所建立的模糊推理系统fzy1.fis;接着单击FileExportTo Workspace,打开如图5.22所示的界面。在图5.22中,在Workspace variable栏内填入fzy1,单击OK按钮。这样就将模糊推理系统FIS所构建的参数传递给模糊推理系统仿真编辑图形化窗口中名称为fzy1的Fuzzy Logic Controller。图5.22
7、Fuzzy Logic Controller参数传递4.5.3 模糊控制系统仿真模糊控制系统仿真通过一个仿真实例构建一个模糊控制器,建立模糊控制系统的模型系统。一个工程控制问题:假定一个水箱有一个进水口和一个出水口,可以通过控制进水口阀门来控制流入水箱的水量(即水箱的水位高度)。u为可控进水阀的控制量;q1为水箱进水量;q2为水箱的流出水量;h为水位高度。水箱流出水量q2取决于出水管道的半径(为定值)、出水阀的开度,同时与水箱水位h有关。水箱水位高度h与进水阀控制量u之间的传递函数为惯性环节,即()()()1H sKG sU sTs(5.1)式中,K为比例系数;T为水箱的时间常数。它们的值应由
8、水箱的具体数据来确定。假设对水箱水位高度h采用闭环控制,参看图5.24。该控制系统采用二维模糊控制器(PD模糊控制器)。图5.24 水位高度闭环控制系统框图5.3.1 构建模糊推理系统构建模糊推理系统在MATLAB环境中构建一个模糊推理系统,使它能够起到图5.24中模糊控制器的作用。在MATLAB命令窗口中输入命令fuzzyEnter,进入模糊推理编辑窗口,增加一个输入变量,见图5.3。然后编辑输入语言变量及输出语言变量的隶属函数,其模糊集论域均为6,6,三角形隶属函数见图5.25及图5.26。图5.25 两个输入语言变量的隶属函数图5.25 两个输入语言变量的隶属函数图5.26 输出语言变量
9、的隶属函数图5.25及图5.26中,在模糊集论域上语言变量的取值皆为NL,NS,ZO,PS,PL五个模糊集合。输入变量隶属函数NS,ZO,PS的形状是三角形,但是NL及PL的形状为梯形,在论域的两个边沿形成饱和形状。输出变量的隶属函数全部是三角形,为了采用COG反模糊化计算方法,对于输出变量的隶属函数NL及PL,其中心值为6和6,其底边的最大宽度为9,+9。确定了隶属函数之后,就可以编辑控制规则了。单击图5.3中间的框,出现图5.5所示的画面。按照前面所讲的操作步骤,编辑控制规则。两输入各有五个隶属函数,其规则最多有55=25条。控制规则参看图5.27。以上完成了构建模糊推理系统的工作,以文件
10、名tank.fis存盘。点击ViewSurface,显示模糊推理系统输出面形状,如图5.28所示。图5.27 建立控制规则图5.28 模糊推理系统输出面5.3.2 建立建立Simulink仿真编辑环境仿真编辑环境在MATLAB命令窗口中单击Simulink图标,激活仿真模块库,根据5.2节所讲的步骤,建立仿真模型编辑环境窗口,将仿真所需要的模块用鼠标拖入其中并连接好,如图5.29所示。这里只讲解模糊控制系统的仿真方法,模块参数选择较粗糙(调整参数的方法可参阅5.3节的内容)。仿真系统中,模糊控制器的输出采用增量式输出,系统给定值h=2 m,水箱数学模型为()1()()1001H sG sU s
11、s(5.2)时间常数为T=100 s,比例系数为1。图5.29 系统仿真连接图在MATLAB命令窗口,输入命令fuzzy,由磁盘(Disk)打开所构建的模糊推理系统tank.fis,点击FileExportTo Workspace,出现如图5.30所示的图形界面。图5.30 模糊控制器参数输入界面在图5.30中的Workspace variable栏内输入模糊控制器的名字tank,点击OK按钮,完成模糊控制器参数的传递,即可进行系统仿真。仿真结果表明,在水箱水位给定值为h=2 m时,系统跟踪有偏差,其原因是被控对象为惯性环节,采用PD模糊控制器,系统中没有积分环节,系统有静态偏差。阶跃给定水箱水位跟踪曲线见图5.31。图5.31 阶跃给定水箱水位跟踪曲线