《模糊控制》实验指导书李士勇沈毅周荻邱华洲袁丽英
实验名称:
实验地点:
指导教师:
联系电话:
Harbin Institute of Technology
2005.3
模糊控制实验指导书
一、 实验目的
利用Matlab 软件实现模糊控制系统仿真实验,了解模糊控制的查询表方法和在线推理方法的基本原理及实现过程,并比较模糊控制和传统PID 控制的性能的差异。
二、 实验要求
设计一个二维模糊控制器分别控制一个一阶被控对象1
1
)(11+=s T s G 和二阶被控对象)
1)(1(1
)(212++=
s T s T s G 。
先用模糊控制器进行控制,然后改变控制对
象参数的大小,观察模糊控制的鲁棒性。
为了进行对比,再设计PID 控制器,同样改变控制对象参数的大小,观察PID 控制的鲁棒性。
也可以用其他语言编制模糊控制仿真程序。
三、 实验内容
(一)查询表式模糊控制器实验设计
查询表法是模糊控制中的最基本的方法,用这种方法实现模糊控制决策过程最终转化为一个根据模糊控制系统的误差和误差变化(模糊量)来查询控制量(模糊量)的方法。
本实验利用了Matlab 仿真模块——直接查询表(Direct look-up table )模块(在Simulink 下的Functions and Tables 模块下去查找),将模糊控制表中的数据输入给 Direct look-up table ,如图1所示。
设定采样时间(例如选用0.01s ),在仿真中,通过逐步调整误差量化因子Ke ,误差变化的量化因子Kec 以及控制量比例因子Ku 的大小,来提高和改善模糊控制器的性能。
模糊控制器设计步骤:
1、选定误差E和误差变化EC作为模糊控制器的输入(二维模糊控制器),控制
量U作为模糊控制器的输出。
E,EC和U的模糊集及其论域定义如下:
EC和U的模糊语言变量集均为{NB,NM,NS,ZO,PS,PM,PB}
E的模糊语言变量集为{NB,NM,NS,NO,PO,PS,PM,PB}
E和EC论域为{-6,-5,-4,-3,-2,-1,0,1,2,3,4,5,6}
U的论域为{-7,-6,-5,-4,-3,-2,-1,0,1,2,3,4,5,6,7}
确定模糊变量的赋值表:对模糊变量赋值,就是确定论域内元素对模糊语言变量的隶属度。
各个变量的赋值表见《模糊控制、神经控制和智能控制论》一书的283页。
利用计算机根据赋值表进行计算,并采用最大隶属度法的解模糊方法,可以得到模糊控制查询表,如表1所示。
表1 模糊控制表
在进行仿真时将上述表格中元素以矩阵形式输入到matlab直接查询表(Direct look-up table)模块中,直接查询表模块参数的修改可以直接在对话框中修改(注意,各行元素之间须以分号隔开),也可以在Simulink/Tools/Look-up table editor 中进行修改。
图1 查询表法的仿真模型
2、建立仿真模型
仿真模型如图1所示。
考虑到输入变量的变化范围,有可能超出表中给定的值,选择了两个饱和环节saturation1和saturation2(在simulink/discontinuities查找这个模块)作为超限的保护。
Rounding function(在simulink/math中查找)是四舍五入环节,将小数转换为整数。
因为direct look-up table中行和列的起始号都是从零开始的,所以输入到direct look-up table中的变量要加一个偏移量+6。
Scope模块(在simulink/sinks中查找)是示波器,可以直接观察系统的输出曲线,并可以进行存储、打印。
3、设置仿真模型中各个模块的参数。
先设置一阶对象中的T1为2,二阶对象中的T1、T2的分别为2和4,然后设定仿真时间(点击仿真模型窗口上simulation/simulation parameters进行设定)。
打开direct look-up table,将表1中的元素以矩阵形式输入到Table data中。
然后调节Ke,Kec,和Ku的参数(对一阶系统参考数据分别是100,1,-1,二阶系统参考数据是200,5,-200),直到符合要求(如误差小于1%或者超调量小于5%)为止,观察输出曲线。
改变控制对象参数(在Matlab中,对象参数修改很方便,只要双击对象模块,以向量形式给出传递函数形式对象的系数),仔细观察输出曲线,并讲实验结果填写到实验报告的表格中。
本实验中,一阶对象的变化范围可以选择1~10;二阶对象参数变化范围,T1选择1~5,T2选择1~5)。
4、建立PID仿真模型
为了和模糊控制做比较,也建立了PID控制的仿真模型,如图2所示。
调节PID参数(参考数据是100,2,50)。
观察输出曲线同样在二阶对象下调节PID 的参数,然后改变对象参数,观察PID控制系统输出曲线。
仿真框图如图2(a)所示。
(a)中的PID子系统框图如图2(b)所示。
图2 (a)
图2(b)PID控制仿真模型
二阶系统的模糊控制输出曲线如图3所示:
图3 模糊控制系统输出曲线二阶系统的PID控制输出曲线如图4所示:
图4 PID控制系统输出曲线
当改变控制对象的参数时,再观察模糊控制系统输出曲线,将结果填入实验报告表格中。
(二)在线模糊推理方法的模糊控制
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所示。
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)。
图3 模糊推理系统(FIS)界面
2) 隶属函数编辑器:
确定各个变量的论域和显示范围(左下角编辑区内),如图4所示。
定义每个变量的模糊集的名称(如负大、负中、负小、零、正小、正中、正大)和个数(Edit菜单中Add MFs),以及每个模糊变量的隶属函数类型和参数(点击变量的隶属函数曲线后在右下角编辑区内修改)。
隶属函数的类型有:trimf,trapmf,gbellmf,gaussmf,gauss2mf,sigmf,dsigmf,psigmf,pimf,smf,zmf
图4 隶属函数编辑器
3) 模糊规则编辑器:
完成了对变量的命名,隶属函数也有了适当的形状和名字,就可以编辑模糊规则。
选择连接关系(and 或者or),权重,在编辑器左边选择一个输入变量,并选择它的语言值,然后在编辑器右边的输出变量中选择一个输出变量,并选中它的语言值,然后将这种联系添加到模糊规则中。
Options/Format 下可以选择模糊规则不同的格式,默认的是verbose(模糊规则的详细格式),还有symbolic(符号格式),indexed(高度压缩格式)。