模糊控制实验报告文档格式.docx
《模糊控制实验报告文档格式.docx》由会员分享,可在线阅读,更多相关《模糊控制实验报告文档格式.docx(21页珍藏版)》请在冰豆网上搜索。
利用Matlab软件实现模糊控制系统仿真实验,了解模糊控制的查询表方法和在线推理方法的基本原理及实现过程,并比较模糊控制和传统PID控制的性能的差异。
二、实验要求
设计一个二维模糊控制器分别控制一个一阶被控对象和二阶被控对象。
先用模糊控制器进行控制,然后改变控制对象参数的大小,观察模糊控制的鲁棒性。
为了进行对比,再设计PID控制器,同样改变控制对象参数的大小,观察PID控制的鲁棒性。
也可以用其他语言编制模糊控制仿真程序。
三、实验内容
(一)查询表式模糊控制器实验设计
查询表法是模糊控制中的最基本的方法,用这种方法实现模糊控制决策过程最终转化为一个根据模糊控制系统的误差和误差变化来查询控制量的方法。
本实验利用了Matlab仿真模块——直接查询表(Directlook-uptable)模块(在Simulink下的FunctionsandTables模块下去查找),将模糊控制表中的数据输入给Directlook-uptable,如图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}
对模糊语言值进行量化:
对模糊语言值进行量化,就是将语言值用特定的模糊集合来描述,从而确定出论域内元素对应相应模糊集合的隶属度。
具体的赋值表见《模糊控制》一书的93页。
利用计算机根据赋值表进行计算,并采用最大隶属度法的解模糊方法,可以得到模糊控制查询表,如表1所示。
表1模糊控制表
UEC
E
-6
-5
-4
-3
-2
-1
+1
+2
+3
+4
+5
+6
7
6
4
2
3
5
1
-0
+0
-7
在进行仿真时将上述表格中元素以矩阵形式输入到matlab直接查询表(Directlook-uptable)模块中,直接查询表模块参数的修改可以直接在对话框中修改(注意,各行元素之间须以分号隔开),也可以在Simulink/Tools/Look-uptableeditor中进行修改。
图1查询表法的仿真模型
2、建立仿真模型
仿真模型如图1所示。
考虑到输入变量的变化范围,有可能超出表中给定的值,选择了两个饱和环节saturation1和saturation2(在simulink/discontinuities查找这个模块)作为超限的保护。
Roundingfunction(在simulink/math中查找)是四舍五入环节,将小数转换为整数。
因为directlook-uptable中行和列的起始号都是从零开始的,所以输入到directlook-uptable中的变量要加一个偏移量+6。
Scope模块(在simulink/sinks中查找)是示波器,可以直接观察系统的输出曲线,并可以进行存储、打印。
3.1设置仿真模型中各个模块的参数
先设置一阶对象中的T1为2,二阶对象中的T1、T2的分别为2和4,然后设定仿真时间(点击仿真模型窗口上simulation/simulationparameters进行设定)。
打开directlook-uptable,将表1中的元素以矩阵形式输入到Tabledata中。
然后调节Ke,Kec,和Ku的参数(对一阶系统参考数据分别是100,1,-1,二阶系统参考数据是200,5,-200),直到符合要求(如误差小于1%或者超调量小于5%)为止,观察输出曲线。
改变控制对象参数(在Matlab中,对象参数修改很方便,只要双击对象模块,以向量形式给出传递函数形式对象的系数),仔细观察输出曲线,并讲实验结果填写到实验报告的表格中。
本实验中,一阶对象的变化范围可以选择1~10;
二阶对象参数变化范围,T1选择1~5,T2选择1~5)。
3.2实验结果
3.2.1一阶系统,T1=2,模糊控制器,阶跃响应曲线
3.2.2一阶系参数变动时用模糊控制器的阶跃响应曲线
从上图可以看出,模糊控制器的控制效果很好,响应速度快,基本没有超调,基本无稳态误差;
当系统的参数变动时,系统都会稳定,控制效果影响不大,超调量基本保持不变,基本无稳态误差。
3.2.3二阶系统,T1=2,T2=4时,模糊控制器的阶跃响应曲线
3.2.4二阶系参数变动时用模糊控制器的阶跃响应曲线
从图中可以看出,二阶系统的控制效果也很好,当参数变动时系统稳定,超调量变化不大,调整时间较短,稳态误差存在但较小。
4.1建立PID仿真模型
为了和模糊控制做比较,也建立了PID控制的仿真模型,如图2所示。
调节PID参数(参考数据是100,2,50)。
观察输出曲线同样在二阶对象下调节PID的参数,然后改变对象参数,观察PID控制系统输出曲线。
仿真框图如图2(a)所示。
(a)中的PID子系统框图如图2(b)所示。
图2(a)
图2(b)PID控制仿真模型
4.2仿真结果
4.2.1一阶系统PID控制,T1=2,阶跃响应曲线
4.2.2一阶系统PID控制参数变动时,阶跃响应曲线
由上图可知,PID控制在参数变动时控制效果有所下降,响应速度减慢,稳态误差增大。
4.2.3二阶系统PID控制,T1=2,T2=4,阶跃响应曲线
4.2.3二阶系统PID控制参数变动时阶跃响应曲线
由上图可见系统仍然稳定,但是控制效果变差,调整时间变长,超调量增加。
(二)在线模糊推理方法的模糊控制
1、模糊推理的五个步骤
1)输入变量的模糊化fuzzyinputs
这是模糊推理的第一步,是获取输入变量,并确定它们的隶属函数,从而确定属于每个模糊集合的隶属度。
2)应用模糊算子ApplyFuzzyOperator
完成了输入模糊化,就知道了对于每个模糊规则,前提中每一个部分被满足的程度。
如果一个给定规则的前提有多个部分,则要应用模糊算子来获得一个数值,这个数值表示前提对于该规则的满足程度。
模糊算子有模糊交(AND)和模糊或(OR)算子。
3)应用推理方法ApplyImplicationMethod
推理的类型有mamdani和sugeno推理。
Mamdani推理法是一种在模糊控制中普遍使用的方法,它本质上仍然是一种合成推理方法,只不过对模糊蕴涵关系取不同的形式而已。
Mamdani型推理,从每个规则的结果中得到的模糊集通过聚类运算后得到结果模糊集,被反模糊化后得到系统输出。
Sugeon型推理:
其中每个规则的结果是输入的线性组合,而输出是结果的加权线性组合。
4)输出的聚类AggregateAllOutputs
由于决策是在对模糊推理系统中所有规则进行综合考虑的基础上做出的,因此必须以某种方式将规则结合起来以做出决策。
聚类就是这样一个过程,它将表示每个规则输出的模糊集结合成一个单独的模糊集。
聚类方法有max,probor(概率乘),sum。
其中,sum执行的是各规则输出集的简单相加。
5)解模糊化Defuzzify
解模糊化过程也叫反模糊化过程,它的输入是一个模糊集,既上一步的聚类输出模糊集,其输出为一个单值。
模糊集的聚类中包含很多输出值,因此必须进行反模糊化,以从集合中解析出一个单输出值。
2、在线推理模糊控制器的设计步骤:
1)确定模糊规则
误差E、误差变化EC及控制量U的模糊集定义如下:
EC和U的模糊集均为:
{NB,NM,NS,ZO,PS,PM,PB}
E的模糊集为:
{NB,NM,NS,NO,PO,PS,PM,PB}
确定每个模糊集的隶属函数,本实验可以在FIS中选择隶属函数的形状和参数。
确定模糊控制规则:
一般如表2所示
表2模糊控制规则
E
NB
NM
NS
ZO
PS
PM
PB
NO
PO
2)建立仿真模型
图5在线推理方式模糊控制仿真模型
在MATLAB的simulink仿真环境中建立模糊控制系统的方框图。
如图5所示。
其中有信号发生器,比较器,放大器(Gain),零阶保持器,多路混合器(Mux),模糊逻辑控制器(FIS)(在SimulinkLibraryBrowser/FuzzyLogicToolbox下添加),控制对象,示波器(scope)。
3)模糊逻辑控制系统(FIS)模块参数设置
模糊逻辑控制系统的参数对控制性能影响很大,因此参数设置是实验的重点内容,具体步骤如下:
a.打开Matlab的FIS编辑器(双击Fuzzylo