
(2010级3班 控制工程专业 100430111030 韩新峰)
摘要:运用模糊控制算法通过MATLAB的SIMULINK工具箱建立仿真模型,对系统进行仿真。通过改变模糊控制器的隶属函数与其它参数得到不同的仿真曲线,比较曲线可知梯形隶属度函数没有三角函数的系统性能好。采用模糊控制能够得到良好的动态响应性能,并不需要知道被控对象的数学模型,适应性强,上升时间快,鲁棒性好。当然,模糊控制也有着自身的缺点,容易受到模糊控制规则等级的而引起误差,学要进一步改进。
关键字:模糊控制;鲁棒性;MATLAB;SIMULINK;隶属函数
Abstract: The fuzzy control algorithm using MATLAB-SIMULINK toolbox to establish simulation model of the system simulation. By changing the membership function of fuzzy controller parameters are different from other simulation curves, comparison curves of the trapezoidal membership function is not known trigonometric functions of the system performance. Fuzzy control can be a good dynamic response properties, does not need to know the mathematical model of controlled object, adaptable, fast rise time and good robustness. Of course, fuzzy control also has its own shortcomings, fuzzy control rules vulnerable to restrictions caused by the error level, learning should be further improved.
Keywords: Fuzzy control; robustness; MATLAB; SIMULINK; membership function
引言
模糊控制就是利用模糊数学的基本思想和理论的控制方法。在传统的控制领域里,控制系统动态模式的精确与否是影响控制优劣的最主要关键,系统动态的信息越详细,则越能达到精确控制的目的。然而,对于复杂的系统,由于变量太多,往往难以正确的描述系统的动态,于是工程师便利用各种方法来简化系统动态,以达成控制的目的,但却不尽理想。换言之,传统的控制理论对于明确系统有强而有力的控制能力,但对于过于复杂或难以精确描述的系统,则显得为力了。因此便尝试着以模糊数学来处理这些控制问题。
一、模糊控制系统的组成
在工程实践中,操作人员的控制策略是用自然语言表达的,因此,模糊控制系统用语言变量作为描述操作机构控制策略的基础。
如果用模糊集合作工具,设计一个控制器去模仿人的控制策略,以控制工业过程,就构成了模糊控制器。
要实现语言控制的模糊控制器,必须要解决四个问题:
1.模糊量化
普通数字控制器的输入信号是用数值表示的,它是误差测量值的确定量,而模糊控制器处理的信息是用语言变量值表示的模糊量。因此,设计模糊控制器要解决的首要问题是如何把确定量转化为对应的模糊量。根据精确量变化范围合理选择模糊变量的论域,然后通过量化因子将其转化为若干等级的离散论域,如7个等级{负大,负中,负小,零,正小,正中,正大},简写{NB,NM,NS,0,PS,PM,PB}。确定模糊子集的隶属度函数曲线,一般常采用三角形,梯形和正态分布等几种曲线。然后又隶属度函数曲线得出模糊变量,E,EC,U的赋值表。
模糊集合基础中讲到的模糊集合、隶属度函数、模糊语言变量等概念是把确定量转化为对应的模糊量的基础。
2.模糊控制规则
模糊控制规则是操作经验和专家知识的总结,是进行模糊推理的依据。在设计模糊控制规则时,必须考虑模糊控制规则的完备性、交叉性和一致性。既保证对任意给定的输入,均有相应的控制规则起作用;控制器的输出值总是由数条控制规则决定;控制规则中不存在相互矛盾的规则。
3.模糊推理
模糊推理是模糊控制器的核心,本文中使用的是Mamdani直接推理法。Mamdani直接推理法是先求出模糊关系。Mamdani直接推理法是先求出模糊控制关系R,再根据输入求出控制量,把控制量清晰化,可得控制查询表。
4.解模糊(Defuzzify)
可采用重心法进行解模糊化运算,公式为:Uc=。
二、基于MATLAB的模糊控制仿真实例
假设系统的模型可以用二阶加纯滞后表示,即传递函数为:
G(s)=,其中参数分别为K=40, =10, =60, =2 。
用Matlab中的Simulink工具箱,组成一个模糊控制系统,如图1所示。
图1 模糊控制系统Simulink仿真模型图
Matlab模糊控制仿真过程:
1.启动Simulink并创建一个新模型,然后依照图1所示的系统模型将各个需要的模块复制到新建的Simulink模型窗口当中。根据控制规则和所选的隶属度函数,利用模糊推理系统(FIS)可以建立一个FIS文件,并命名为(fuzzy.fis)。
2.将复制好的模块连接好,然后根据系统的性能要求设置好各个模块的参数。例如,把Transfer Fcn中的numerator由默认的[1]改为[40]。Denominator由默认的[1 1 1]改为[600 70 1]。其他模块参数修改类似。
3.将编辑好的模糊推理系统导入Matlab的工作空间中,然后将其与建立的Simulink系统模型相连接,随后相应调节Simulink属性参数。
4.仿真结果演示。首先,修改Scop的相关参数;然后,单击Start按钮开始仿真,并观察记录Scop显示的仿真波形。
5.修改相应参数再次仿真,记录波形。比较两次波形的不同之处,分析原因以及得到的相应结果。
模糊控制器的设计
1.模糊集合及论域的定义。对误差E、误差变化率EC、控制量U的模糊集合及论域定义如下:E、EC和U的集合均为{NB、NM、NS、0、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}
隶属度函数均为三角函数,如图所示:
图2 变量E的隶属度函数
图3 变量EC的隶属度函数
图4 变量U的隶属函数
2.模糊控制规则设计。模糊控制规则如表1所示:
| EC | NB NM NS 0 PS PM PB |
| NB | PS PS PS PS PM PB PB |
| NM | NS PS PS PS PM PM PB |
| NS | NM NS 0 0 PS PM PM |
| 0 | NB NM NS 0 PS PM PM |
| PS | NB NM NS 0 0 PS PM |
| PM | NB NB NM NS NS PS PS |
| PB | NB NB NM NS NS NS PS |
3.整定系统参数。例如,Transpot Delay=2s。
仿真曲线及分析
仿真曲线如图5所示:
图5 阶跃输入的响应曲线
如图所示,上线为阶跃响应曲线;下线为跟踪给定输入的模糊控制量的变化曲线。通过比较可知控制器能够很好的跟踪输入信号,调节系统误差,响应速度快。
图6 隶属函数为梯形函数的响应曲线
通过比较可知,梯形隶属的函数系统性能没有三角形函数的系统性能好。
