智能控制讲义第六章Matlab在模糊控制中的应用

2025/5/12 9:32:07

率ec的论域为 [-0.1,0.1],3个语言变量值为negative、zero和positive,它们的隶属度函数也取gaussmf。确定输出变量数为1个,名字为u ,其论域为[-1,1],5个语言变量值为close-fast、close-slow、no-change、open-slow和open-fast,隶度函数选为trimf(三角形曲线)。

根据水箱水位控制的实际经验,可得到如下控制规则(用if-then语句表达): (1) If e is negative then u is close-fast; (2 ) If e is zero then u is no-change; 控制量 (3 ) If e is positive then u is open-fast; (4 ) If e is zero and ec is negative then u is open-slow;

反馈 模糊 (5 ) If e is zero and ec is positive then u is

控制器 close-slow。

利用GUI建立一个FIS系统的具体步骤说

压力传感器 明如下。

图6-7 水箱水位控制 1. 进入FIS编辑器

设定 在Matlab的Command Window窗口提示符下,键入fuzzy可打开FIS编辑器,其界面如图6-8所示。此时编辑器里还没有FIS系统,文件名为Untitled,且被默认为Mamdani型系统。此时上面图表部分有1个输入、1个输出,还有中间的规则处理器。 在FIS编辑器界面中进行的工作说明如下:

(1) 添加输入变量

由于本例有2个输入变量,因此需要再添加1个输入变量,操作方法为:菜单Edit → Add Variable … →Input。此时系统便有2个输入变量,1个输出变量。 (2) 命名输入-输出变量

点击输入框(input1或input2)或输出框(output1),在Current Variable组合框的Name编辑栏内修改变量名。本例中input1 、Input2 和output1分别命名为e、ec和为u 。

(3) 保存系统

选择菜单File → Export → To Disk … 。本例中将创建的水位控制系统命名为wl_control,此时,所显示的即为初始的水位模糊推理系统wl_control,如图6-9所示。

也可以在FIS编辑器中删除不想要的输入或输出变量,方法为选中想要删除的变量→Edit→Remove Selected Variable。也可以在选中变量后,直接按键盘上的Delete键进行删除。

利用FIS编辑器得到了初始模糊推理系统后,需要在隶属度函数编辑器中进行隶属度函数的定义。

2.进入隶属度函数编辑器

进入隶属度函数编辑器有三种方法。

(1) 在FIS编辑器中双击任意一个输入或输出变量的图框; (2) 通过菜单Edit → Membership Functions…;

17

(3) 在Matlab的Command Window (命令窗口) 提示符下键入mfedit (wl_control )。

图6-8 基本的FIS编辑器 图6-9 初始wl_control模糊推理系在隶属度函数编辑器中,可以对各个变量的论域范围、隶属度函数进行编辑。 首先,修改各变量的论域范围。点击FIS Variables下面的各输入输出变量框 → 在Current Variable组合框中Range右边编辑栏内,修改选中变量的论域范围。Range编辑栏修改后,Display Range 编辑栏内的值跟着改变,变得与Range编辑栏内的一致。本例中,输入变量e的Range为[-1 1],输入变量ec的Range为[-0.1 0.1],输出变量u的Range为[-1 1]。

其次,编辑输入和输出变量的隶属函数所对应的Name(名字)、Type(类型)、Params(参数)。点击某个变量,在Membership function plots下面的图表中将显示所选变量的隶属度函数曲线,默认情况每个变量有3个隶属度函数,均为trimf(三角形隶属度函数)。若所选变量所需的隶属度函数个数少于3个,则可通过Edit → Remove Selected MF删除多余的隶属度函数,也可通过键盘上的Delete键直接删除。若选中变量所需隶属度函数的个数多于3个,则可通过Edit → Add MFs…添加所需的隶属度函数。隶属度函数个数确定好后,需要对每个隶属度函数进行编辑,依次选中各隶属度函数曲线,对其Name、Type及Params进行编辑。

在本例中,对于输入变量e,其隶属度函数正好3个,从mf1到mf3,逐个编辑,将它们的Name项分别设置为negative、zero、positive,Type均设定为gaussmf,Params分别设置为[0.45 -1]、[0.45 0]、[0.45 1]。

对输入变量ec,其隶属度函数也是3个,从mf1到mf3,逐一编辑,将它们的Name项分别设置为negative、zero、positive,Type均设定为gaussmf,Params分别设置为[0.045 -0.1]、[0.045 0]、[0.045 0.1]。

对于输出变量u,其隶属度函数需要5个trimf,则需要通过 Edit → Add MFs…添

18

加2个trimf隶属函数,从mf1到mf5,我们逐个编辑,将它们的Name项分别设置为close-fast、close-slow、no-change、open-slow、open-fast,Tytp均设定为trimf,Params分别设置为[-1.5 -1 -0.5]、[-1 -0.5 0]、[-0.5 0 0.5 ]、[0 0.5 1]、[0.5 1 1.5]。

到此,便完成了隶属度函数的编辑操作。此时,对应变量e、ec和u的隶属度函数曲线在隶属度函数编辑器的GUI中分别如图6-10与图6-11所示。

编辑完所有变量的隶属度函数之后,便可以进入规则编辑器来编辑规则。 3. 进入规则编辑器

可以通过三种途径打开规则编辑器: (1) 点击FIS编辑器图表部分中间的方框—规则处理器方框;

(2) 通过菜单Edit → Rules … ; (3)在Matlab的Command Window(命令窗口)提示符下键入ruleedit (wl_control)。

打开的FIS结构wl_control的规则编辑器,图6-12 为规则编辑前的规则编辑器状

况。规则编辑器的GUI下面的规则前件、后件栏中已给出各个变量的模糊变量值。但规则栏中是空的。

现在,对本例前面给出的5条控制规则进行编辑。

对第(1)条规则If e is negative then u is close-fast,编辑过程如下:

在输入变量e的语言变量栏中选择negative,在输入变量ec的语言变量栏中选择none,用Connection复选框中and进行连接,权值Weight设定默认值1,在输出变量u

19

图6-10 输入变量e和ec隶属函数编辑器界面 图6-11 输出变量u的隶属函数编辑器界面

的语言变量栏中选择close-fast。规则的前件及后件都设定好之后,按Add rule按钮,便在规则栏中加入了第(1)条规则。

对其他的规则,可以用类似步骤添加。

在添加规则的过程中,如果需要用到某个语言变量相反的模糊值,则可以在该语言变量域的下面选not框。如果输入了不正确的规则,可利用Delete rule按钮删除规则,然后重新添加正确的规则,或者利用Change rule按钮修改规则。

添加完规则后的规则编辑器如图6-13 所示。

图6-12 规则编辑前的规则编辑器

图6-13 添加完规则后的规则编辑器 到此,已经完成了利用GUI建立模糊推理系统的全过程。在FIS编辑器File菜单下,通过Export To Disk子菜单,将wl_control模糊推理系统以文件名wl_control.fis存入到磁盘中,以供以后系统调用。

4. 查看规则观测器和见世面观测器

对于已经建立好的模糊推理系统,可以打开规则观测器和曲面观测器来查看其模糊规则的推理情况及其输出曲面。

打开规则观测器和曲面观测器的途径很多,比如,在前面介绍的FIS编辑器、隶属度函数编辑器以及规则编辑器里面都能直接打开规则观测器和曲面观测器。操作方法是通过菜单View-Rules可用来打开规则观测器;通过菜单View-Surface可用来打开曲面观测器。

另外,也可通过Matlab的模糊工具箱函数来打开规则观测器和曲面观测器。操作方法是在Matlab的Control Window的提示符下键入ruleview(wl_control)可打开wl_control模糊推理系统的规则观测器的GUI;在提示符下键入surface(wl_control)可打开其曲面观测器的GUI。

20


智能控制讲义第六章Matlab在模糊控制中的应用.doc 将本文的Word文档下载到电脑
搜索更多关于: 智能控制讲义第六章Matlab在模糊控制中的应用 的文档
相关推荐
相关阅读
× 快捷下载通道(下载后可以自由复制和排版)

开通会员免费下载

开通会员后百万份文档资料免费自由复制和下载,是您最优的选择,赶快来试试吧!

单篇下载:10元 点击下载

注:下载文档有可能“只有目录或者内容不全”等情况,请下载之前注意辨别,如果您已付费且无法下载或内容有问题,请联系我们协助你处理。
微信:fanwen365 QQ:370150219