模糊控制系统的核心是模糊控制器,也就是前面所介绍的模糊推理系统。本节将介绍如何将模糊控制器与simulink模型连接。进而建立模糊控制系统。
模糊逻辑图形化工具模糊逻辑工具箱简介
1. 模糊逻辑图形化工具(GUI界面,上节内容)2. simulink模块
在simulink模块浏览器中可以找到Fuzzy Logic Toolbox,它包含三类模块:
隶属函数中包含许多不同类型隶属函数模块。后两个模块都是模糊逻辑控制器,区别在于后者带有规则观察器。对这两个模块使用look under mask(Crtl+u)可以看到内部结构。如下图所示。
3.MATLAB函数
(1)打开GUI所需函数名 称 | 功 能 |
fuzzy | 打开FIS编辑器 |
mfedit | 打开隶属函数编辑器 |
ruleedit | 打开规则编辑器 |
ruleview | 打开规则观察器 |
surfview | 打开曲面观察器 |
名称 | 功能 | 名称 | 功能 |
newfis | 新建一个fis文件 | getfis | 获得fis属性 |
readfis | 导出fis文件到工作空间 | setfis | 设置fis属性 |
writefis | 导出fis至文件 | addmf | 添加隶属函数 |
genfis1 | 利用数据生成一个fis | rmmf | 删除一个隶属函数 |
showfis | 展示fis细节 | addvar | 向FIS添加变量 |
plotfis | 绘制fis | emvar | 删除变量 |
addrule | 添加模糊规则 | rmrule | 删除FIS的模糊规则 |
FIS与模糊逻辑控制器连接
要想使用Fuzzy Logic Controller模块,必须将FIS嵌入模块中。Fuzzy Logic Controller模块可以接受来自文件和工作空间的FIS。
(1)将FIS导入工作空间的两种方法:使用readfis函数(直接输入fis在磁盘中自己选择路径也可以)
fismat(可更换成自己想要的名字)=readfis('文件名')
通过FIS editor界面
输入fuzzy 文件名,在FIS editor中单击命令file-export-to workspace,自定义变量名称。
(2)把FIS嵌入模糊控制器模块
在仿真模型中,双击Fuzzy Logic Controller模块,填入FIS文件名称。
模糊控制系统的仿真
模糊控制系统仿真的基本步骤:
(1)创建FIS文件
(2)建立FIS文件与模糊控制器的连接
(3)构建模糊控制系统的仿真模型
(4)进行系统仿真
下面以一个例子详细说明构建模糊控制系统模型仿真的方法。
例:(1)在MATLAB中输入fuzzy,创建一个新的FIS(M型)。
(2)编辑输入输出变量
以闭环系统误差e及误差率de为两个输入变量,被控对象的控制输入u为输出变量,考虑到控制目标为跟踪单位阶跃信号,误差e的范围需控制在[-1,1]内。输入变量e和de的论域均可取在[-1,1]内。同时为了满足输入的上界限制,取u的论域为[-2,2]。 按照表格输入各隶属函数(3)编辑模糊规则
完成对输入、输出变量的编辑后,需要添加模糊规则,模糊规则的制定,是人经验来确定的,于是就有下面的分析 当误差e为NB负大时,无论误差率de如何,控制输入都应该为NB负大,以尽快减小误差,所以有规则 Rulel: if e is NB then u is NB 当误差c为NS负小时,就要考虑误差率的影响。如果de为NB负大,会导致c负,所以控制输入仍然应该为NB负大;如果de为ZE零或PS正小,则需要较小的控制输入以帮助误差c恢复至零;如果de为PB正大,则不怎么需要控制输入。所以有下面的规则。 Rule2: ife is NS and de is NB then u is NB. Rule3: ife is NS and de is NS then u is NB Rule4: if e is NS and de is ZE then u is NS. Rules: if e is NS and de is PS then u is NS. Rule6: if e is NS and de is PB then u is ZE. 当误差c接近于零,即为ZE时,主要矛盾集中于稳定性,这时较小的控制输入会更加适合小幅度的调整,所以有下面的规则。 Rule7: if e is ZE and de is NB then u is PS. Rule8: ife is ZE and de is NS then u is ZE. Rule9: ife is ZE and de is ZE then u is ZE. Rule10: ife is ZE and de is PS then u is ZE Rulell: if e is ZE and de is PB then u is NS. 对称地可以得出余下的6条规则 将规则添加至规则编辑器。(4)在FIS Editor界面上,选择file-export-to workspace,将FIS导入工作空间。
(5)建立如图仿真模型
可以看出曲线非常平稳。没有超调量,没有震荡。
利用PID控制器建立仿真模型,如下图所示。
确定一组PID参数:
仿真后,可以看出虽然系统较快趋于稳定,但产生了多次震荡,超调量很大。 对被控对象加入随机扰动(random number),再次建立模糊逻辑控制系统。发现响应曲线虽然波动,但一直稳定在1附近,说明模糊逻辑控制器具有一定干扰抑制作用。(中间报错,原因不明,暂无结果) 控制输入变化曲线最终稳定在0附近。 另外在MATLAB中还有许多系统自带的仿真实例,直接在系统中输入这些实例名字就可以进行调用。如slank(水箱水位恒定模糊控制系统)/slcp(车-倒摆模糊控制系统)/sltbu(卡车倒行入库模糊控制系统)等。 通过对控制器模块使用look under mask可以观察到系统内部结构,包括输入、规则、反模糊化、输出。如下图所示。通过对经典案例的学习可以加深对模糊控制系统的理解。end