通过算例熟悉MATLAB模糊控制工具箱
设计一个二维模糊控制器控制一个一阶被控对象
1
()
1
G s
Ts
=
+
,然后改变控制对象参
数的大小,观察模糊控制的鲁棒性。
1、模糊推理的五个步骤
1)输入变量的模糊化
这是模糊推理的第一步,是获取输入变量,并确定它们的隶属函数,从而确定属于每个模糊集合的隶属度。
2) 应用模糊算子
完成了输入模糊化,就知道了对于每个模糊规则,前提中每一个部分被满足的程度。
如果一个给定规则的前提有多个部分,则要应用模糊算子来获得一个数值,这个数值表示前提对于该规则的满足程度。
3) 应用推理方法
推理的类型有mamdani和sugeno 推理。
Mamdani推理法是一种在模糊控制中普遍使用的方法,它本质上仍然是一种合成推理方法,只不过对模糊蕴涵关系取不同的形式而已。
Mamdani型推理,从每个规则的结果中得到的模糊集通过聚类运算后得到结果模糊集,被反模糊化后得到系统输出。
Sugeon型推理:其中每个规则的结果是输入的线性组合,而输出是结果的加权线性组合。
4) 输出的聚类
由于决策是在对模糊推理系统中所有规则进行综合考虑的基础上做出的,因此必须以某种方式将规则结合起来以做出决策。
聚类就是这样一个过程,它将表示每个规则输出的模糊集结合成一个单独的模糊集。
聚类方法有max,probor(概率乘),sum。
其中,sum执行的是各规则输出集的简单相加。
5) 解模糊化
解模糊化过程也叫反模糊化过程,它的输入是一个模糊集,既上一步的聚类输出模糊集,其输出为一个单值。
模糊集的聚类中包含很多输出值,因此必须进行反模糊化,以从集合中解析出一个单输出值。
2、模糊逻辑工具箱的介绍
模糊逻辑工具箱提供的图形用户界面(GUI)工具有五个:模糊推理系统(FIS)编辑器;隶属函数编辑器;模糊规则编辑器;模糊规则观察器;输出曲面观察器。
1)FIS编辑器:
Matlab的FIS界面如图1所示。
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) 隶属函数编辑器:
确定各个变量的论域和显示范围(左下角编辑区内),如图2所示。
定义每个变量的模糊集的名称(如负大、负中、负小、零、正小、正中、正大)和个数(Edit菜单中Add MFs),以及每个模糊变量的隶属函数类型和参数(点击变量的隶属函数曲线后在右下角编辑区内修改)。
隶属函数的类型有:trimf,trapmf,gbellmf,gaussmf,gauss2mf,sigmf,dsigmf,psigmf,pimf,smf,zmf
图2 隶属函数编辑器
3) 模糊规则编辑器:
完成了对变量的命名,隶属函数也有了适当的形状和名字,就可以编辑模糊规则。
选择连接关系(and 或者or),权重,在编辑器左边选择一个输入变量,并选择它的语言值,然后在编辑器右边的输出变量中选择一个输出变量,并选中它的语言值,然后将这种联系添加到模糊规则中。
Options/Format 下可以选择模糊规则不同的格式,默认的是verbose(模糊规则的详细格式),还有symbolic(符号格式),indexed(高度压缩格式)
4) 模糊规则观察器
模糊规则观察器的功能是可以令用户观察模糊推理图,并观察模糊推理系统的行为是否与预期的一样。
可以观察到输入变量(默认色是黄色)和输出变量(默认色是蓝色)如何应用在模糊规则中;反模糊化的数值是多少。
5)输出曲面观测器
模糊规则观察器非常详细的显示了在某一个时刻的计算。
如果看到模糊推理系统的全部输出曲面,即与整个输入区间相对应的输出区间,就要打开输出曲面观测器。
View/view surface…
四、在线推理模糊控制器的设计步骤:
1)确定模糊规则
误差E、误差变化EC及控制量U的模糊集定义如下:
EC和U的模糊集均为:{NB,NM,NS,ZO,PS,PM,PB}
E的模糊集为:{NB,NM,NS,NO,PO,PS,PM,PB}
确定每个模糊集的隶属函数,本实验可以在FIS中选择隶属函数的形状和参数。
确定模糊控制规则:一般如表1所示
2)建立仿真模型
图4 在线推理方式模糊控制仿真模型
在MA TLAB的simulink仿真环境中建立模糊控制系统的方框图。
如图4所示。
其中有信号发生器,比较器,放大器(Gain),零阶保持器,多路混合器(Mux),模糊逻辑控制器(FIS)(在Simulink Library Browser/Fuzzy Logic Toolbox下添加),控制对象,示波器(scope)。
3)模糊逻辑控制系统(FIS)模块参数设置
模糊逻辑控制系统的参数对控制性能影响很大,因此参数设置是实验的重点内容,具体步骤如下:
a. 打开Matlab的FIS编辑器(双击Fuzzy logic toolbox下的FIS Editor Viewer),确定模糊推理输入变量和输出变量的个数、名字。
b. 打开隶属函数编辑器,选定变量的论域和显示范围,选择隶属函数的形状和参数。
c. 打开模糊规则编辑器,编辑模糊规则。
d. 重新回到FIS编辑器界面,选择模糊算子,推理方法,聚类方法,解模糊的方法等(centroid,bisector,middle of maximum,largest of maximum,smallest of maximum)。
e. 用模糊规则观察器或输出曲面观察器,观看模糊推理情况。
f. 将建立的FIS保存到磁盘,文件名后缀为.fis。
g. 进行模糊控制仿真时,首先要将FIS发送到Matlab工作空间(workspace)中,用FIS 窗口下File/Export/to workspace实现,用户建立一个工作空间变量名(例如fuzzycontrol),这个变量将FIS系统作为Matlab的一个结构进行工作。
仿真时,打开fuzzy logic controller ,输入FIS变量名,就可以进行仿真了。
4)调整Ke,Kec ,Ku的值的大小(二阶系统模糊控制参考数据是100, 1, -150),得到系统适合的输出曲线。