1964年美国的L.A.Zadeh教授创立了模糊集合理论,1974年英国的E.HMamdani研制出第一个模糊控制器。模糊控制不需要了解对象的精确数学模型,根据专家知识进行控制,近十年来得到了广泛的应用。
模糊控制器的设计参数主要有:各输入、输出变量模糊子集的隶属度函数,模糊控制规则,输入输出变量的比例变换因子等。要依据设计者的经验和反复调试才能设计出一个比较好的模糊控制器。预先采用计算机仿真方法可尽快了解模糊控制的特性,可缩短设计周期。
二维模糊控制器应用较为广泛。偏差和偏差变化作为模糊控制器的两个输入量。先对它们进行模糊量化处理,得到模糊变量E和EC,按模糊控制规则进行模糊决策得到模糊控制量U,再经过解模糊和比例变换得到实际控制量输出。如图1。
MATLAB软件提供自动控制、信号处理、神经网络、模糊逻辑、小波分析、图象处理等诸多工具箱,功能强大应用广泛。本文介绍用MATLAB5.1的模糊逻辑工具箱(FuzzyLogic) 设计模糊控制器,并用MATLAB的SIMULINK进行仿真的方法。
1用MATLAB模糊逻辑工具箱设计模糊控制器
1.1隶属度函数的建立
若取E、EC、U的论域均为{-6,-5,-4,-3,-2,-1,0,1,2,3,4,5,6},其模糊子集都为{NB,NM,NS,ZO,PS,PM.PB}。共有49条模糊控制规则。
在MATLAB中键入命令FUZZY,进入模糊逻辑编辑窗口FISEditor。建立E、EC、U的隶属度函数,有三角形、高斯形、梯形等11种可供选择,在此选常用的三角形(trimf) 隶属度函数。图2为E的隶属度函数。
1.2模糊控制规则及决策方法
控制规则是对专家的理论知识与实践经验的总结。共有49条规则,如表1所示。
在RulesEditor窗口中输入这49条控制规则。例如:ifEisNBandECisPSthenUisPM
模糊决策一般采用Mamdani`s(min-max) 决策法。解模糊有重心法、等分法、最大隶属度平均法等5种可供选择,在此采用重心法(centroid)。
如此设计的模糊控制器的输出与输入的关系曲面图如图3所示。显然模糊控制是一种非线性控制。
2SIMULINK仿真及参数的调整
MATLAB提供的SIMULINK是一个用来对动态系统进行建模、仿真和分析的软件包,它支持连续、离散及两者混合的线性和非线性系统。SIMULINK包含多个子模型库,每个子模型库中又包含多个功能模块。利用鼠标可直观地“画”出系统模型,然后直接进行仿真。仿真时可选择各种数值算法、仿真步长等重要参数,并可用模拟示波器将仿真动态结果予以显示,直观高效。
如果仿真的控制效果不满意,一般首先调整比例变换因子ke、kec及ku再调整模糊控制规则和隶属度函数。
3仿真结果
被控对象为,采样周期5s。通过仿真可看出一般的模糊控制器相当于非线性的PD控制,无积分作用,有静差;在比例变换因子中ku对系统稳定性影响最大,过大时系统失稳。图5为系统阶跃输入下被控对象的输出响应曲线。
如把模糊控制器的输出作为控制量的增量输出,就可消除静差,但这时ku应很小,否则会使系统不稳定。图6为输出的响应曲线及控制量变化曲线。
计算机仿真试验对实际控制有重要指导意义。由上述模糊控制器的设计和仿真过程可看出MATLAB的模糊逻辑工具箱及SIMULINK有如下特点:
•可灵活地设计模糊控制器。在模糊逻辑工具箱中能方便地修改输入输出的论域、模糊子集、隶属度函数、模糊控制规则、模糊决策方法及解模糊方案,然后仿真找到较佳的控制方案;
•可直接计算出模糊控制表,供单片机进行实际控制时使用。而人工计算此表非常繁琐;
•在SIMULINK环境下,可组成更复杂的控制系统。如对象为时变、非线性,控制器为模糊与PID的混合形式。 |