自动化学报
ACTA AUTOMATICA SINICA
1998年 第24卷 第1期  Vol.24  No.1 1998



用模糊模型在线辨识非线性系统
陈建勤　席裕庚　
摘　要　讨论用模糊方法实现非线性系统在线辩识问题. 首先给出了简化的模糊规则表达方法及其相应的自适应模糊推理， 在此基础上给出了模糊模型参数在线辨识算法. 最后对非线性模型进行在线辨识， 验证了本文提出的模糊模型及其在线辨识算法. 
关键词　模糊系统， 非线性系统建模，在线辨识，聚类算法. 
ON-LINE IDENTIFICATION OF NONLINEAR
SYSTEMS USING FUZZY MODEL
CHEN JIANQIN　　XI YUGENG　　
(Institute of Automation, Shanghai Jiaotong University, Shanghai 200030)
Abstract　Nonlinear system modeling using fuzzy system is discussed in this paper. A simple fuzzy rule representation method and the corresponding adaptive fuzzy inference are proposed. Based on this modified fuzzy system, the paper presents an on-line identification algorithm with which the on-line parameter estimation of nonlinear system is realized. A nonlinear model, as an example, is identified to verify the fuzzy system and identification algorithms.
Key words　Fuzzy systems, nonlinear system modeling, on-line identification, clustering algorithms.
1　引言
　　由于模糊系统具有灵活的知识表达形式和推理方法， 近年来， 非线性系统的模糊建模受到了广泛的重视. 模糊模型实际上是模糊规则及其推理的一种数学表达形式，是对模糊规则及其推理的统一表达. 基于局部线性函数的模糊模型［1］， 其规则前件是模糊变量， 而结论部分是输入输出线性函数，它以局部线性化为基础，通过模糊推理方法实现了系统全局的非线性. 由于这种模型使用了局部线性函数，能克服模糊系统的高维问题，所以已成了人们广泛使用的模糊模型. 然而这种基于局部线性函数的模糊模型建模算法还存在一些问题，如，算法很复杂， 泛化性差，没有在线辨识算法. 
　　本文在一般模糊系统的知识表达与推理框架下，针对用精确数据表达的非线性系统， 改进了现有的模糊模型， 并在此基础上，给出了在线辨识算法. 
2　简化模糊模型和自适应模糊推理
　　用模糊模型实现非线性系统建模，其输入和输出处理的都是精确数据， 所以，模型可以简化成模糊规则
if x is vi,ri,then yi=θTiz, i=1,2,…,q　　　　　　　　　　　　(1)
和模糊推理
　　　　　　　(2)
其中　x=[x1,x2,…,xm]T是系统输入，z=[1,x1,x2,…,xm]T，θi=[ai0,ai1,…,aim]T是第i条规则对应的结论参数，vi是第i条规则对应的输入局部区域中心，ri是相应的半径，si是输入x属于第i条规则的程度，yi是规则对应的输出，q表示规则个数. 
　　利用模糊规则(1)表达非线性系统，实质上对系统进行了输入输出局部线性化，很显然规则的输入局部区域用表示. 如果对于任意输入x都能找到一个或几个输入局部区域，使，那么规则的输入区域的并集就覆盖了输入空间. 反之，规则输入区域的并集就不能包含全部输入空间. 一般来说，如果每条规则的输入区域根据输入范围人为确定，那么可以使其并集等于输入空间. 但当每条规则的输入区域对应的参数{vi,ri}是通过辨识获得的，那么，由于训练样本可能不会充满整个输入空间，或者由于输入空间聚类个数不一定很多，可能会出现划分好的输入区域之并集小于输入空间的情况，为此提出如下自适应模糊推理方法：当新的输入数据属于某条或某几条规则的输入区域时，可以用通常的方法进行推理，即用式(2)推理. 而当新的输入数据x(t)不属于任何规则对应的输入区域时，则需用如下步骤进行自适应模糊推理. 
　　① 设adapi(0)=ri　(i=1,2,…,q),k=1;
　　② adapi(k)=adapi(k-1)+βri　(i=1,2,…,q);
　　　　if 　　　　　　　　　　　(3)
　　③ if　
　　　if 　　　　　　　　　　　　　　　　　　　　　　(4)
其推理过程是，以βri为步长，逐渐增加每个输入区域的半径，直到某一区域或某些区域包含新的输入x(t)，即‖x-vi‖＜(1+∑β)ri. 由于每条规则的结论部分是线性函数， 所以适当增加每条规则输入区域的半径仍能保证每条规则的结论有一定的准确性. 
3　模糊模型在线辨识
　　对于式(1)描述的模糊规则，在线辨识的目的是要根据不断得到的输入输出数据实时地估计规则输入区域参数{vi,ri}以及输出参数θi. 一般输入区域参数要根据输入数据的结构确定. 为此，本文采用聚类算法对输入空间进行自适应划分，其算法如下［2］：
　　1) 选择聚类个数q(即规则数目)， 初始化中心点vi(i=1,2,…,q);
　　2) 对于任一输入x(t)，依输入样本密度确定最近中心点vc，
　　　　　　　　　　(5)
其中， pj表示中心点vj附近样本的密集程度， nj为vj被选为最近点的次数. 
　　3) 修正vc，
　　　　　　　　　　(6)
使用pj‖x-vj‖进行比较可使pj参与竞争，使死点有竞争机会，从而避免一般竞争学习中的死点问题. 
　　规则输入区域参数ri(i=1,2,…q)不但决定了输入区域的大小，而且还决定了相邻输入区域或是相邻规则的重叠程度. 在模糊系统中，规则之间的相互重叠是很重要的，它体现了规则的模糊特性. 为了实现在线估计各规则输入区域的半径，可以首先给出希望的相邻输入区域之间的重叠度σ， 然后按下式在线确定输入区域半径
　　　　　　　　　　(7)
或者为了提高计算速度， 在某一时刻可以只确定
　　　　　　　　　　(8)
　　由于规则结论部分是线性函数，所以当任意时刻输入x(t)属于某一或某些规则的输入区域时，其相应的结论部分参数θi(i=1,2,…,q)可以用递推最小二乘估计如下：
　　if　　　
　　then
　　　　　　　　　　(9)
　　if　　　‖x(t)-vi‖＞ri,
　　then
　　　　　　　　　　　　　　　　　　　　(10)
在估计θi时，每次θi是否修正要根据训练样本是否属于某一或某些输入区域而定. 如果训练样本{x(t),y(t)}属于多个输入划分区域，那么它将同时修正多个θi. 
　　综上所述， 可以采用下述在线估计算法实时估计模糊规则的参数vi,ri,θi.
　　算法1.
　　步骤1. 确定规则个数q及重叠度σ(1＜σ＜2). 
　　步骤2.初始化输入中心点vi及θi，并使pi=αI,ni=1,i=1,2,…,q. 这里α是一个较大的数，I是单位矩阵. 
　　步骤3.输入训练样本{x(t),y(t)}. 
　　步骤4.先按式(5)确定最近中心点vc，然后按式(6)修正vc. 
　　步骤5.按式(7)修正ri(i=1,2,…,q)或者按式(8)只修正rc. 
　　步骤6.按式(9)或式(10)修正θi. 
　　步骤7.转到步骤3.
　　上述在线辨识算法中，新的数据与旧的数据对参数估计都提供了同样的信息. 这样，当某些训练样本受到严重污染时，即使新的数据不断更新，旧的数据对参数估计产生的不良影响仍然不能被消除. 这时可以采用加遗忘因子的递推最小二乘算法克服这一不足. 
4　仿真检验
　　本文采用模型逼近性能指标来衡量辨识的精确程度，其中y(t)是模型的实际输出， y*(t)是估计输出. 
　　例.选用Mackey-Glass混沌模型［3］
　　　　　　　　　　(11)
进行辨识. 选取模糊模型x(t+1)=f(x(t),x(t-6),x(t-12),x(t-18))逼近Mackey-Glass时间序列. 由式(11)产生3000个数据，其中50―2500个数据用于参数估计，而2501―3000个数据用于检验模型精度. 选取β=0.5,q=10. 实验可得PI=0.00057， 结果如图1所示. 结果是非常满意的，估计输出与实际输出相差很小，在图中已很难分辨，并且所用规则数目要比文献［3］少得多. 


图1　β=0.5，q=10时，实际输出(实线)与估计输出(虚线)比较结果. 
5　结论
　　针对非线性系统辨识问题，本文给出了简化的模糊模型并提出了自适应模糊推理的概念和方法. 利用聚类算法在线学习模糊规则的输入区域中心，按预先规定的规则之间的重叠度在线确定每条规则的输入区域半径， 用RLS算法实现规则结论部分参数的在线估计. 本文给出的在线辨识算法逼近度高，泛化性好，不存在过拟合问题，所用规则数目较少，辨识算法中的可选参数对辨识结果都不敏感且容易选择. 
1)　国家自然科学基金和中国博士后基金资助项目. 
作者单位：上海交通大学自动化研究所　上海　200030
参考文献
[1]　Takagi T, Sugeno M. Fuzzy identification of systems and its applications to modeling and control. IEEE Trans. Syst., Man, and Cybern., 1985, SMC-15(1):116-132.
[2]　Ahalt S C, Krishnamurty A K, Chen P, Melton D E. Competitive learning algorithms for vector quantization. Neural Networks,1990,3(2):277-291.
[3]　Wang L X, Mendel J M. Generating fuzzy rules by learning from examples.IEEE Trans. Syst., Man, and Cybern., 1992,SMC-22(6):1414-1427.
收稿日期　1996-04-04
