SIMULINK中的Fuzzy logic toolbox中有相应的模糊逻辑控制器模块,如图9.19所示。
在前例的图形界面中所设计的模糊推理系统已经导出为一个FIS模糊调节器扩展文件,名为ex_fuzzy.fis,并且以模糊矩阵ex_fuzzy的形式导出至工作变量空间。因此双击SIMULINK创建的模糊逻辑控制器的图标,在空白处输入该模糊矩阵的名称:ex_fuzzy,见图9.20。
仍然以前述一阶过程为例,过程的控制量等于模糊控制器的输出加上前一个采样时刻的
图9.21 在SIMULINK中应用模糊推理系统
控制量。建模如图9.21所示。其中转换单元(Switch)是为了比较不同的模糊增益下控制系统的性能,此处转换时刻取t=300。仿真控制参数设置起止时间为0~600,并采用离散变步长算法。
当输入目标信号为方波信号时,仿真过程输出信号与输入信号曲线如图9.22,当t>300时即增益为0.8时响应速度较快。
图9.22 输出信号与目标输出信号曲线
图9.23 模糊控制器的输出和应用的控制信号 图9.24 目标信号为正弦信号时的输入输出曲线 23
scope3中uf对应的是模糊控制器的输出,ut为应用的控制信号,它们的曲线如图9.23。
当输入目标更换为正弦信号时,t>300时即增益为0.8时稳态误差变小,见图9.24。 9.3.3常用模糊工具箱命令说明 (1) GUI工具
Anfisedit 打开ANFIS编辑器GUI Fuzzy 调用基本FIS编辑器 Mfedit 隶属度函数编辑器 Ruleedit 规则编辑器和语法解析器 Ruleview 规则观察器和模糊推理方框图 Surfview 输出曲面观察器 (2) 隶属度函数
dsigmf 两个sigmoid型隶属度函数之差组成的隶属度函数 gauss2mf 建立两边型高斯隶属度函数 gaussmf 建立高斯曲线隶属度函数 gbellmf 建立一般钟型隶属度函数 pimf 建立Π型隶属度函数
psigmf 通过两个sigmoid型隶属度函数的乘积构造隶属度函数 smf 建立S-型隶属度函数 sigmf 建立Sigmoid型隶属度函数 trapmf 建立梯形隶属度函数 trimf 建立三角形隶属度函数 zmf 建立Z-型隶属度函数 (3) FIS数据结构管理
addmf 向模糊推理系统(FIS)的语言变量添加隶属度函数 addrule 向模糊推理系统(FIS)的语言变量添加规则 addvar 向模糊推理系统(FIS)添加语言变量 defuzz 对隶属度函数进行反模糊化 evalfis 完成模糊推理计算 evalmf 通过隶属度函数计算 gensurf 生成一个FIS输出曲面 getfis 得到模糊系统的属性
mf2mf 在两个隶属度函数之间转换参数 newfis 创建新的FIS
24
parsrule 解析模糊规则 plotfis 绘制一个FIS
plotmf 绘制给定语言变量的所有隶属度函数的曲线 readfis 从磁盘装入一个FIS
rmmf 从FIS中删除某一语言变量的某一隶属度函数 rmvar 从FIS中删除某一语言变量 setfis 设置模糊系统的属性
showfis 以分行的形式显示FIS结构的所有属性 showrule 显示FIS的规则 writefis 保存FIS到磁盘上 (4) 先进技术
anfis Sugeno型模糊推理系统(FIS)的训练程序(只适用于MEX)fcm 模糊C均值聚类
genfis1 不使用数据聚类方法从数据生成FIS结构 genfis2 使用减法聚类方法从数据生成FIS结构 subclust 用减法聚类方法寻找聚类中心 (5) Simulink仿真块
fuzblock Simulink模糊逻辑控制器库 sffis 用于Simulink的模糊推理S-函数 (6) 演示(Demo)
defuzzdm 反模糊化方法 fcmdemo FCM聚类显示(二维)
fuzdemos 列出所有模糊逻辑工具箱的演示程序 gasdemo 使用子聚类节省燃料的ANFIS演示 juggler 带规则观察器的弹球游戏器 invkine 单机械臂倒立摆运动 irisfcm FCM聚类显示(四维) noisedm 自适应消除噪声 slbb 球和棒控制(Simulink) slcp 倒立摆控制(Simulink) sltank 水位控制(Simulink)
sltankrule 带规则观察器的水位控制(Simulink) sltbu 卡车入库(只有Simulink方式)
25
9.4 神经网络工具箱
神经网络是上世纪80年代末期发展起来的一种实用的多学科交叉技术,是自动控制领域的前沿学科之一,为解决复杂的非线性、不确定、不确知系统的控制问题开辟了新的途径。这里主要介绍的是神经网络理论与控制理论的相结合。神经网络主要用于解决以下几类问题:模式信息处理与模式识别;最优化问题;复杂控制;信号处理与预测;信息的智能化处理等。现有MATLAB中的神经网络工具箱几乎涉及了现有的神经网络的所有成果,涉及到的模型有:
① 感知器; ② 线性网络;
③ BP(误差反向传播)网络; ④ 径向基网络; ⑤ 自组织网络; ⑥ 反馈网络。
对于以上几种网络模型,神经网络工具箱集成了多种学习算法,为用户使用神经网络实现算法提供了方便,并且还包括了大量生动的示例程序(demo),使用户或初学者更好地理解神经网络各种算法。
神经网络用于控制领域,主要是为了解决复杂的非线性、不确定、不确知问题。由于神经网络具有模拟人的部分智能的特性,如学习能力和自适应性,从而使神经网络对变化的环境具有自适应的能力,并且基本上不依赖于模型。到目前为止,神经网络在控制领域内的各种模型都有所应用,核心算法就是利用神经网络的高度非线性来逼近各种难控模型,再通过一定的校正方法来达到控制系统的设计指标。
常用的神经网络控制方式有:利用神经网络进行PID控制、直接逆动态控制、模型参考自适应控制、内模控制、前馈反馈控制、预测控制等。
9.4.1 图形用户界面简介
MATLAB7.x的版本中神经网络工具箱提供了图形用户界面,使用户在图形界面上通过与计算机的交互设置进行神经网络的设计和仿真,这样神经网络的设计和仿真则变得简单易学。
在MATLAB命令窗口输入nntool,就可打开Network/Data Manager(网络/数据管理器)
26
窗口,如图9.25所示。
图9.25所示窗口共有7个显示区域和2个按钮区域,分别说明如下: (1) 显示区域
Input区:显示用户定义的输入向量名称; Target区:显示用户定义的目标向量名称;
Input Delay States区:显示用户定义的输入延迟参数变量名称; Networks区:显示用户定义的神经网络名称; Outputs区:显示网络的输出向量名称; Errors区:显示网络的训练误差变量的名称;
Layer Delay States区:显示用户指定的网络层延迟参数变量名称。 (2) 按钮区域
① Networks and Data按钮区
New Data…:单击此按钮可弹出Create New Data窗口,在新窗口中可以定义各种数据类型的变量名和数据值;
New Network…:单击此按钮可弹出Create New Network窗口,在新窗口中可以定义神经网络名称、类型以及网络结构;
Import…:单击此按钮可弹出Import or Load Network/Data manager窗口,可从工作区(Workspace)或磁盘文件导入神经网络或数据;
Export…:单击此按钮可弹出Export or Save Network/Data manager窗口将目前的Network/Data Manager窗口中的变量导出到工作区(Workspace)或存到磁盘文件中;
View:用来查看区域中被选中的变量或网络的具体内容;
27
图9.25 神经网络工具箱图形界面