自从1973年以来,出现了一类新型的控制器——模糊控制器(fuzzy controller, 简称fc)。大量的实验、试验的结果表明:这种控制器对具有高度非线性、交叉耦合严重、没有明确的数学模型、环境干扰影响比较大、具有较大的控制时延以及时变特性的对象的控制效果均优于直接数字控制器。但是,单纯应用这种控制器也有一些缺陷:⑴它使系统存在着稳态误差;⑵系统在稳态范围内常常有小范围内的振荡,尤其是对象带有纯滞后的系统,这表明实际系统中执行器往复摆动不停;⑶控制器的阶跃输入*响应参数与其*抗干扰参数(此处指一般fc的三个量化因子,即误差量化因子、误差变化率量化因子、比例量化因子)往往不一致。这些缺陷严重地影响了这类控制器的*控制效果的发挥,同时也表明模糊数学理论有缺陷,也就是说fc在设计方法上存在不完善之处。
关于这方面的理论,国内外的者们都已作了大量的工作,时至今日,终于建立起了一个比较完整实用的通用fc控制模式(如图1),其核心是得到一张查询表(如表1)。但是关于这类控制器的本质特性,从理论的角度,还缺乏系统的分析(资料1),以至于人们为了提高这类控制器的控制效果,去花费大量的时间和资金做实验探索工作。本文的目的正是要从理论上对这些问题进行探讨。
一、 fc设计方法上的缺陷
正向我们大家所知道的那样,一般模糊控制器的设计分三步(见资料2、3):一是量的模糊化;二是根据控制规则进行模糊运算;三是进行模糊量的化----输出信息的模糊判决。其中*步又分为三小步:1)量化问题,即通过一转换公式,将误差及其变化率皆转换到[-6,+6]这一区间内;2)离散化,即将区间[-6,+6]划分成若干挡;3)模糊化。第三步也分成二小步:1)化;2)反量化问题,即将化了的离散量乘以一个适当系数转化成控制器的输出量。人们可以预先完成上面*步的2)、3)、第二步及第三步的1)这些工作,这样作的结果是得到一张控制总表,也就是上面提到的查询表(表1)。这张控制总表便成了模糊控制器的核心。人们对模糊控制器所作的一切工作都是围绕着这个核心进行的。但是我们从上面的分析中可以看出,fc在设计方法上有一个严重缺陷,即为了数学处理上的方便,把连续的误差及其变化率作了离散化处理,zui后得到的控制量也是一个离散量,为了在计算机上实现方便,设计工作在这里便结束了,没有把这种离散型的控制量进行zui后的连续化处理。在这里我们应该看到正是这种输出控制量的离散化掩盖了fc的本质,并导致了目前出现的模糊控制器所面临的一系列缺陷。
2、 fc算法公式
2.1 fc的二维通用算法公式
我们下面的工作正是要对fc设计方法上的不完善进行补充:即把离散化的fc输出进行连续化处理。经过对表1的仔细研究,通过"拟合"的方法,经过大量的反复计算,zui后归纳总结,zui终得到一个fc二维通用算法公式:
其中
e----误差(=设定值-反馈);
ec----误差变化率;
ke、kec、ku分别为三个量化因子。在此需要说明一点:正象我们前言中所提及的那样,有些资料认为可对这三个量化因子进行参数优化,就象pid算法中,可对比例系数、积分常数、微分常数进行参数优化一样。此处我们规定
ki(i=1、2、3、4、5)----常系数
f(x)是形如如图2所示的那种类型的函数。常见的有双曲正切函数及反正切函数等等。关于取那种函数,我们在本篇论文中不做讨论。
2.2 公式(1)中各系数的物理含义
为了讨论方便,把公式(1)中的函数f(x)取为双曲正切函数,即令
因此,公式(1)变为
2.2.1、当
(e+ec)
接近zui大值时,为了使fc能够及时地进行调整,必须要求
这样,公式(6)就可简化为
在前面的讨论中我们已知ku是一个量化因子,由上式可知ku也是fc输出的zui大限幅值(ku>0)。
由公式(7)可知
k1(e+ec)
>1.5(th(1.5)= 0.905148),也即k1>1.5/
e+ec
max,当
e+ec
max=12时,k1>0.125。一般而言,k1是一个收敛因子,且小于1,它的大小反映了fc对e或ec的敏感程度,过大的k1会使系统对误差及其变化率过于敏感,引起fc过调,甚至系统振荡不稳定;过小的k1会使系统对误差及其变化率迟钝,调节缓慢。
目前,很多文献介绍说模糊控制系统在工作点附近容易引起小范围内的振荡,在此,本文认为原因有二个方面:一是查询表的离散型结构导致fc有死区非线性特性;其二是k1太大,一旦查询表固定,k1也是固定的,无法修改。
2.2.2、当
k1(e+ec)
>2.5时,公式(6)就可简化为
进一步对上式求偏导数可得
当e=δ×k3时,公式(13)有极值
根据公式(15)可知:k2的大小决定了fc的输出对误差的敏感程度,而k3则决定了这个极值(zui敏感值)在e坐标轴上的位置,也就是说,当系统有足够大的误差时,k2、k3的大小决定了fc的响应程度。
当ec=-δ×k5时,公式(14)有极值
根据公式(16)可知:k4的大小决定了fc的输出对误差变化率的敏感程度,而k5则决定了这个极值(zui敏感值)在ec坐标轴上的位置,也就是说,当系统的误差变化率足够大时,k4、k5的大小决定了fc的响应程度。
一般地对于一个闭环调节系统而言,当设定值突变时,误差先达到zui大值,尔后误差变化率才达到zui大值,对调节系统有干扰的情况下,一般地误差变化达到zui大值,尔后误差才达到zui大值,因此根据上面的结论可知:k2、k3的大小与系统设定值发生突变时fc的调节效果有较大的关系,在设定值阶跃扰动下,当fc的调节不力或缓慢变化时,可适当的增大k2或减小k3;k4、k5的大小与系统受干扰时fc的调节效果有较大的关系,在有其它扰动情况下,当fc的调节不力或误差很快增大时,可适当的增大k4或减小k5。
2.3 公式的验证
当k1=0.5、k2=0.7、k3=-2/3、k4=0.7、k5=2时,公式(6)变为
当进一步取ku=-6、e及ec分别都取[-6,6]区间内的整数时,经过计算便得到一张如下所示的表2。
把这张表与前面的查询表1相比较可知:表1与表2是非常相似的。这就说明了公式(17)概括了查询表1所提供的所有信息,或者说公式(17)就是前面查询表1连续化处理的结果。
三、仿真结果
在上海新华控制工程有限公司的xdps-400型分散控制系统上进行了仿真对比实验,仿真对象是
其中采用pid调节器时各项参数如下:kp=0.6;ti=64;td=0。
在阶跃响应下的仿真结果:超调=2.56%,进入± 5%误差带的调节时间=105秒。
采用fc调节器(输出带积分)时,f(x)函数采用反正切函数,各项参数如下:ku=27.6,k1=0.046,k2=0.716,k3=-0.67,k4=0.6,k5=2,积分常数ti=35。
在阶跃响应下的仿真结果:超调=2.54%,进入±5%误差带的调节时间=75秒,如图2所示。
四、推论——n维通用算法公式
fc在本质上是建立在人工控制经验的基础之上的,对于一个二维结构的fc,它主要是根据偏差极其变化率大小来对过程对象进行控制的,从理论的角度而言,这样就丢失了不少信息,从而影响了这类控制器的控制效果,特别是对一些扰动的调节,这就使我们很有必要建立多维结构的模糊控制器nfc。而正象大家所知道的那样,按照传统的方法,在建立二维结构的控制总表时,在数学上的处理已经是足够麻烦了,对于建立二维以上结构的类似控制总表的控制核心,人们是否能提出二维以上的控制规则还成问题,更不用说在数学上的处理将是非常麻烦的,庞大的计算量使二维以上结构fc的设计几乎达到不可能的程度。但是,本文前面的工作为我们建立n维结构的模糊控制器nfc开辟了一条捷径。我们仔细地观察一下公式(1),它是很有规律的:f[k1(e+ec)]是一个收敛项,值符号中两项分别代表了e及ec对控制作用的贡献大小。这样我们就很容易得到一个n维结构的模糊控制器nfc的通用算法公式
其中
e(i)或e(j)(i或j=0、1、2、…..n-1)--------分别为量化在某一个区间(例如:[-6,6])内的误差及其各阶导数;
ks-----收敛因子;
kj、kj+1(j=0、1、2、…..n-1)------常数,二者的大小共同决定了e(j)对fc的响应程度;
ku-----控制器的zui大输出;
f(x)函数的定义同公式(1)。
五、结束语
本文首先从模糊理论上得出了二维模糊控制器的通用算法公式,并对公式进行了详细的探讨,zui后在新华控制工程有限公司的xdps-400型分散控制系统上进行了仿真对比实验,效果非常理想,在此基础上推论出n维模糊控制器的通用算法公式。该算法公式的提出对模糊控制在大惯性、纯滞后等对象的控制方面以及在解耦控制方面从理论上有一定的指导作用。此外,本文提出的模糊控制器在设计方法上的完善方法,对模糊数学在其它方面的应用有一定的借鉴作用。
