当前位置:文档之家› 在线推理式模糊控制器实验指导书

在线推理式模糊控制器实验指导书

在线推理式模糊控制器设计实验指导书
一、实验目的
利用Matlab软件实现模糊控制系统仿真实验,了解模糊控制的在线推理方法的基本原理及实现过程。

二、实验要求
以matlab模糊工具箱中提供的一个水位模糊控制系统仿真的实例,定义语言变量的语言值,设置隶属度函数,根据提供的规则建立模糊逻辑控制器。

最后启动仿真,观察水位变化曲线。

三、实验内容
1、模糊推理的五个步骤
1)输入变量的模糊化fuzzy inputs
这是模糊推理的第一步,是获取输入变量,并确定它们的隶属函数,从而确定属于每个模糊集合的隶属度。

2) 应用模糊算子Apply Fuzzy Operator
完成了输入模糊化,就知道了对于每个模糊规则,前提中每一个部分被满足的程度。

如果一个给定规则的前提有多个部分,则要应用模糊算子来获得一个数值,这个数值表示前提对于该规则的满足程度。

模糊算子有模糊交(AND)和模糊或(OR)算子。

3) 应用推理方法Apply Implication Method
推理的类型有mamdani和sugeno 推理。

Mamdani推理法是一种在模糊控制中普遍使用的方法,它本质上仍然是一种合成推理方法,只不过对模糊蕴涵关系取不同的形式而已。

Mamdani型推理,从每个规则的结果中得到的模糊集通过聚类运算后得到结果模糊集,被反模糊化后得到系统输出。

Sugeon型推理:其中
每个规则的结果是输入的线性组合,而输出是结果的加权线性组合。

4) 输出的聚类Aggregate All Outputs
由于决策是在对模糊推理系统中所有规则进行综合考虑的基础上做出的,因此必须以某种方式将规则结合起来以做出决策。

聚类就是这样一个过程,它将表示每个规则输出的模糊集结合成一个单独的模糊集。

聚类方法有max,probor(概率乘),sum。

其中,sum执行的是各规则输出集的简单相加。

5) 解模糊化Defuzzify
解模糊化过程也叫反模糊化过程,它的输入是一个模糊集,既上一步的聚类输出模糊集,其输出为一个单值。

模糊集的聚类中包含很多输出值,因此必须进行反模糊化,以从集合中解析出一个单输出值。

2、模糊逻辑工具箱的介绍
模糊逻辑工具箱提供的图形用户界面(GUI)工具有五个:模糊推理系统(FIS)编辑器;隶属函数编辑器;模糊规则编辑器;模糊规则观察器;输出曲面观察器。

1)FIS编辑器:
Matlab的FIS界面如图3所示。

在matlab的launch pad窗口中,用鼠标双击模糊逻辑系统工具箱(fuzzy logic toolbox)中的FIS Editor viewer项,打开模糊推理系统编辑器(FIS Editor),或者直接在matlab命令窗口中输入指令:fuzzy。

FIS处理系统有多少个输入变量,输出变量,名称是什么,模糊算子“与”(min,prod乘积,custom自定义),“或”(max大,probor 概率统计方法,custom),推理方法(min,prod,custom),聚类方法(max,probor,sum,custom),解模糊的方法(centroid质心法,bisector中位线法,middle of maximum,largest of maximum,smallest of maximum)。

图1 模糊推理系统(FIS)界面
2) 隶属函数编辑器:
确定各个变量的论域和显示范围(左下角编辑区内),如图4所示。

打开
方式:FIS Editor/edit/membership editor function。

定义每个变量的模糊集的名称(如负大、负中、负小、零、正小、正中、正大)和个数(Edit菜单中Add MFs),以及每个模糊变量的隶属函数类型和参数(点击变量的隶属函数曲线后在右下角编辑区内修改)。

隶属函数的类型有:trimf,trapmf,gbellmf,gaussmf,gauss2mf,
sigmf,dsigmf,psigmf,pimf,smf,zmf
图2 隶属函数编辑器
3) 模糊规则编辑器:
完成了对变量的命名,隶属函数也有了适当的形状和名字,就可以编辑模糊规则。

选择连接关系(and 或者or),权重,在编辑器左边选择一个输入变量,并选择它的语言值,然后在编辑器右边的输出变量中选择一个输出变量,并选中它的语言值,然后将这种联系添加到模糊规则中。

Options/Format 下可以选择模糊规则不同的格式,默认的是verbose(模糊规
则的详细格式),还有symbolic(符号格式),indexed(高度压缩格式)
图3模糊规则编辑器
4) 模糊规则观察器
模糊规则观察器的功能是可以令用户观察模糊推理图,并观察模糊推理系统的行为是否与预期的一样。

可以观察到输入变量(默认色是黄色)和输出变量(默认色是蓝色)如何应用在模糊规则中;反模糊化的数值是多少。

5)输出曲面观测器
模糊规则观察器非常详细的显示了在某一个时刻的计算。

如果看到模糊推理系统的全部输出曲面,即与整个输入区间相对应的输出区间,就要打开输出曲面观测器。

View/view surface…
3、在线推理模糊控制器的设计步骤:
确定模糊规则:
① if(水位正好)then(阀门大小不变)
②if(水位低)then(阀门迅速打开)
③if(水位高)then(阀门迅速关闭)
④if(水位正好且变化率为正)then(阀门缓慢关闭)
⑤if(水位正好且变化率为负)then(阀门缓慢打开)
1)在matlab命令窗口输入:sltank,便可打开模型窗口如图4。

图4水位控制系统的simulink仿真模型图
2)在matlab的命令窗口中,输入指令:fuzzy,便打开了模糊推理系统编辑器(FIS Editor)。

(图1)
3)利用FIS Editor编辑器的Edit/Add variable/input菜单,添加一条输入语言变量,并将两个输入语言和一个输出语言变量的名称分别定义为:level;rate;valve。

其中,level代表水位(三个语言值:低,高,正好),rate代表变化率(三个语言值:正,不变,负),valve代表阀门(五个语言变量:不变,迅速打开,迅速关闭,缓慢打开,缓慢关闭)。

4)利用FIS Editor编辑器的Edit/membership function菜单,打开隶属度函数编辑器,将输入语言变量level的取值范围(range)和显示范围(display range)。

相关主题