«上一篇
文章快速检索     高级检索
下一篇»
  智能系统学报  2019, Vol. 14 Issue (2): 378-384  DOI: 10.11992/tis.201707025
0

引用本文  

刘楠, 刘福才, 孟爱文. 基于改进PSO和FCM的模糊辨识[J]. 智能系统学报, 2019, 14(2): 378-384. DOI: 10.11992/tis.201707025.
LIU Nan, LIU Fucai, MENG Aiwen. Fuzzy identification based on improved PSO and FCM[J]. CAAI Transactions on Intelligent Systems, 2019, 14(2): 378-384. DOI: 10.11992/tis.201707025.

基金项目

河北省自然科学基金项目(2015203362).

通信作者

刘福才. E-mail: lfc@ysu.edu.cn

作者简介

刘楠,男,1990年生,硕士研究生,主要研究方向为模糊辨识与控制、智能优化算法;
刘福才,男,1966年生,教授,博士生导师,主要研究方向为模糊辨识与预测控制、电力拖动及其计算机控制。发表学术论文160余篇,出版专著1部;
孟爱文,女,1991年生,硕士研究生,主要研究方向为模糊辨识、多项式模糊正系统控制与稳定性分析

文章历史

收稿日期:2017-07-13
网络出版日期:2018-04-10
基于改进PSO和FCM的模糊辨识
刘楠 , 刘福才 , 孟爱文     
燕山大学 电气工程学院,河北 秦皇岛 066004
摘要:为了提高T-S模糊模型的辨识精度和效率,本文提出了一种改进的粒子群算法和模糊C均值聚类算法相结合的模糊辨识新方法。在该方法中,针对粒子群算法在处理高维复杂函数时容易陷入局部极值的问题,提出了一种粒子群局部搜索和全局搜索动态调整的全新优化算法。模糊C均值聚类算法是模糊辨识最常用的方法之一,该算法简单,计算效率高,但是对初始化特别敏感,容易陷入局部最优。为了解决这一问题,利用改进粒子群算法的全局搜索能力优化聚类中心,显著地提高了算法的辨识精度和效率。最后,针对非线性系统进行建模仿真,仿真结果表明了本文方法的有效性和优越性。
关键词模糊辨识    非线性系统    模糊C均值聚类算法    T-S模型    智能算法    粒子群算法    Box-Jenkins数据辨识    全局优化    
Fuzzy identification based on improved PSO and FCM
LIU Nan , LIU Fucai , MENG Aiwen     
College of Electrical Engineering, Yanshan University, Qinhuangdao 066004, China
Abstract: To improve the accuracy and efficiency of T-S model, a new fuzzy identification approach based on improved particle swarm optimization (PSO) algorithm and fuzzy C-means (FCM) algorithm is proposed. Considering that it is easy for PSO to fall into the local extremum in the treatment of high-dimensional complex functions, a PSO algorithm with dynamic adjustment between local search and global search is proposed in this paper. Moreover, the FCM algorithm is one of the most commonly used methods of fuzzy identification. The algorithm is simple and efficient, but it is particularly sensitive to initialization and easily falls into local optimum. To solve this problem, the global search capability of improved PSO is used to optimize the clustering center, and this significantly improves the accuracy and efficiency of the algorithm. Finally, a nonlinear system is modeled and simulated. The simulation results show the effectiveness and superiority of this method.
Key words: fuzzy identification    nonlinear system    fuzzy C-means    T-S model    intelligent algorithm    particle swarm optimization    Box-Jenkins identification    global optimization    

系统的建模与辨识一直是人们研究的重点与难点,它的好坏直接影响着控制系统的性能。尤其对于现在控制系统越来越复杂,要求也越来越高,控制系统呈现出多变量、强耦合、非线性等特点,这就使得传统的方法很难对这些系统进行建模。模糊理论的产生为这些系统提供了新方法,现在已经应用于自动控制、电力系统和预测控制等领域。T-S模型是在模糊辨识方面应用较广的模型,它是由Takagi和Sugeno于1985年提出的一种模糊模型[1]。国内外学者对此方法进行了深入研究,主要研究的内容有前提参数辨识、结论参数辨识、规则库优化、输入变量选择等。随着人工智能技术的不断发展,智能算法也越来越多地应用到了T-S模型的优化上。如文献[2]采用模糊聚类优化模型的前提结构,并应用遗传算法 (genetic algorithm, GA)对前提参数进行了优化,但是计算时间长,而且精度不是很高。文献[3]采用菌群优化算法(bacterial foraging optimization algorithm, BFO)优化T-S模型前提参数,虽然辨识精度有提高,但是收敛速度还是太慢,耗时太长。文献[4]采用粒子群算法(particle swarm optimization algorithm, PSO)和最小二乘算法提出一种模糊自适应函数逼近器,由于标准粒子群算法本身的局限性而使辨识精度不高。

随着模糊聚类理论的发展和成熟,已经成功应用到了很多的领域。目前,学者们已经提出了很多模糊聚类算法,比较典型的有基于相似关系[5]和模糊关系[6]的方法、基于目标函数的方法[7]、基于模糊图论的最大支撑树方法[8]等。其中研究最多的是基于目标函数的模糊聚类方法。该方法主要思想就是求解一个带约束的非线性规划问题,得到数据集的模糊划分和聚类结果。模糊C均值(fuzzy C-means, FCM)聚类算法是基于目标函数聚类算法的一种,它的应用也最为广泛。FCM算法是由K均值聚类算法加入模糊因子改进而来,内平方误差和(within-groups sum of squared error, WGSS)是聚类目标函数的常见形式,1973年,Dunn扩展了内平方误差和函数,提出了类内加权平均误差和函数作为目标函数[9]。此后一年,Bezdek提出在目标函数中引入了新的参数 $m$ ,把原先的类内加权平均误差和函数改进为目标函数的无限簇,从而形成了广泛应用的FCM聚类算法[10]。从此,FCM聚类算法蓬勃发展,已经成为聚类算法中研究的热点。

本文提出一种改进的粒子群算法和模糊C均值聚类算法相结合的模糊辨识新方法。采用模糊C均值聚类算法对聚类中心进行初步优化,然后通过改进粒子群算法的全局搜索能力优化聚类中心。这样既保持了模糊C均值聚类算法的优点,又达到了对模型的全局优化,显著的提高了算法的辨识精度和效率。

1 PSO算法基本原理

Kennedy等于1995年提出了PSO算法[11],它具有进化计算和群智能的优点,是一种启发式全局优化算法。与其他进化算法类似,PSO算法也是通过个体间的协作与竞争,实现复杂问题的全局优化。

PSO算法可以描述为:设粒子在 $D$ 维空间搜索,粒子个数为 $N$ 。第 $k$ 个粒子所处的位置为向量 ${{{X}}_{{k}}} = ({x_{k1}},{x_{k2}}, \cdots ,{x_{kD}})$ ,粒子的飞行速度为 $ {{{V}}_{{k}}} = ({v_{k1}},$ $ {v_{k2}}, \cdots,{v_{kD}})$ ,每一个粒子都是所优化问题的一个解,粒子通过不断的改变自己的位置和速度找到新解。第 $k$ 个粒子到目前为止搜索到的最优解 ${{{P}}_{{k}}} = ({p_{k1}},{p_{k2}}, \cdots ,{p_{kD}})$ ,整个群体经历过的最优位置为 ${{{P}}_{{g}}} = ({p_{g1}},{p_{g2}}, \cdots ,{p_{gD}})$ 。每个粒子的速度和位置按照式(1)、式(2)进行变化:

$\begin{array}{l} {v_{kd}}(t + 1) = w{v_{kd}}(t) + {c_1}{r_1}({p_{kd}}(t) - {x_{kd}}(t)) + \\ \qquad\qquad\;\;{c_2}{r_2}({p_{gd}}(t) - {x_{kd}}(t)) \end{array}$ (1)
${x_{kd}}(t + 1) = {x_{kd}}(t) + {v_{kd}}(t + 1)$ (2)

式中: ${r_1},{r_2}$ 为[0, 1]之间的随机数; ${c_1},{c_2}$ 为正常数,称作加速因子; $w$ 为惯性权重。每个粒子第 $d$ 维的速度和位置的变化范围为 $[ - {v_{d,\max }},{v_{d,\max }}]$ $[ - {x_{d,\max }},{x_{d,\max }}]$ 。粒子的最大速度 ${v_{d,\max }}$ 太大,可能会使得粒子飞过最好解; ${v_{d,\max }}$ 太小,会使得搜索速度太慢,而且容易陷入局部最优解。惯性权重 $w$ 可以很好地控制粒子的搜索范围。 $w$ 较大时,粒子进行较大范围的搜索; $w$ 较小时,粒子进行小范围的挖掘。

2 搜索模式动态调整的PSO算法

改进的PSO算法(SMPSO)分为两种搜索模式:局部搜索模式和全局搜索模式。局部搜索模式就如同自然界中大部分动物觅食一样,它在搜索到的疑似最优位置周边都会进行更加细致地搜索,然后根据视觉、味觉、听觉等因素更加准确地判断全局最优解的位置。这样既避免了种群过早的收敛,陷入局部最优解,而且通过在疑似最优位置四周的搜索,更容易找到全局最优位置。在全局搜索模式时,粒子之间会协同合作,共享最优位置信息,使整个种群向着全局最优位置逼近,以更短的时间寻找到最终目标。由于每代粒子都具有“自我”学习提高和向“他人”学习的优点,从而能使种群在较少的迭代次数内找到最优解。

SMPSO算法首先要选择粒子的数目 $N$ ,每个粒子都有自己的位置、适应度和处于局部搜索模式或者全局搜索模式的标识值。粒子的位置根据求解的需要由 $D$ 维向量表示,适应度可由目标函数的适当变形得到,所处模式的标识值可以用数字0和1表示。粒子的两种模式分别代表着算法的不同进程。在程序的运行中,一部分粒子执行局部搜索模式,其余的粒子执行全局搜索模式。它们各自的数量由搜索模式动态调整参数 ${\rm SM}$ 控制, ${\rm SM}$ 表示处于全局搜索模式的粒子所占种群的比例,按照式(3)计算得到,其中 ${\rm S{M}_{\max }}$ ${\rm S{M}_{\min }}$ 分别为 ${\rm SM}$ 的最大值和最小值, ${\rm DT}$ 为当前的迭代的次数, ${\rm MaxDT}$ 是最大的迭代次数。随着 ${\rm DT}$ 的增加, ${\rm SM}$ ${\rm S{M}_{\min }}$ 线性地增加到 ${\rm S{M}_{\max }}$ ,这样可以使得粒子群在开始时搜索能力比较强,而到后期随着种群的最优适应度越来越好,增大 ${\rm SM}$ ,有利于粒子群聚集到更好的位置,进行更细致的搜索。

${\rm SM} = {\rm S{M}_{\min }} + {\rm DT} \cdot \frac{{{\rm S{M}_{\max }} - {\rm S{M}_{\min }}}}{{{\rm MaxDT}}}$ (3)

SMPSO算法整体进程描述如下:

1) 选择粒子群个体数为 $N$

2) 随机初始化粒子的位置为 $D$ 维向量,按照 ${\rm SM}$ 随机分配粒子进入局部搜索模式和全局搜索模式;

3) 根据适应度函数计算每个粒子的适应度值,选择适应度值最好的粒子为当前的最优解;

4) 根据粒子所处模式的标识值,判断粒子处于哪种搜索模式。如果粒子处于局部搜索模式,应用局部搜索模式的程序;如果粒子处于全局搜索模式,应用全局搜索模式的程序。具体步骤详见2.1和2.2;

5) 按照 ${\rm SM}$ 重新分配粒子进入局部搜索模式和全局搜索模式;

6) 如果程序满足了终止条件,则终止程序;否则返回3)继续执行。

2.1 局部搜索模式

在此模式下,主要有两个基本的要素:局部搜索次数( ${\rm SN}$ ),表示每个处于局部搜索模式的粒子迭代一次搜索的次数。粒子将按照之后描述的规则,从中选择一个位置;局部搜索范围( ${\rm SR}$ ),表示粒子局部搜索最大能抵达的范围。局部搜索模式步骤如下:

1) 复制 ${\rm SN}$ 份当前粒子的位置;

2) 对于每个粒子的候选位置,按照式(4)更新粒子的候选位置。

$\begin{array}{l} {x_{id}}\left( {t + 1} \right) = {x_{id}}\left( t \right) \pm {\rm rand} \cdot {\rm{SR}},\\ d = 1,2, \cdots ,D;\;\;\;\;i = 1,2, \cdots ,{\rm{SN}} \end{array}$ (4)

式中: ${x_{id}}$ 表示粒子的第 $i$ 个候选位置在第 $d$ 维的位置, ${\rm rand}$ 表示位于0~1之间的随机数;

3) 计算所有候选位置的适应度( ${\rm FS}$ );

4) 计算所有候选位置和它本身被选择的可能性。如果所有的 ${\rm FS}$ 都相同,将所有候选位置的可选择性设置为1;否则按照式(5)计算候选位置的可选择性:

${P_i} = \frac{{\left| {{\rm F{S}_i} - {\rm F{S}_b}} \right|}}{{\left| {{\rm F{S}_{\max }} - {\rm F{S}_{\min }}} \right|}},\;\;\;\; i = 1,2, \cdots ,SN + 1$ (5)

式中: ${P_i}$ 表示候选位置的可选择性, ${\rm F{S}_i}$ 表示候选位置的适应度值, ${\rm F{S}_{\max }}$ ${\rm F{S}_{\min }}$ 表示候选位置中最大适应度值和最小适应度值。如果求解目的是要找到最大适应度值,则 ${\rm F{S}_b} = {\rm F{S}_{\min }}$ ,否则 ${\rm F{S}_b} = {\rm F{S}_{\max }}$

5) 根据候选位置和它本身的可选择性 ${P_i}$ ,运用轮盘赌方法选择粒子的下一个位置。每个候选位置和本身被选中的概率 ${\hat P_i}$

${\hat P_i} = {{{P_i}} / {\sum\limits_{i = 1}^{SN + 1} {{P_i}} }},\;\;\;\;i = 1,2, \cdots ,SN + 1$ (6)

在局部搜索模式,采用了遗传算法常用的轮盘赌选择法,正是借鉴了“物竞天择,适者生存”的生物进化理论,并且还保留了物种的多样性,利用概率选择的方法,选择优胜的个体,淘汰劣质个体。

2.2 全局搜索模式

全局搜索模式对标准PSO进行简化处理,提高算法运行速度。粒子群按照式(7)、式(8)更新粒子的位置。

${{{X}}_{{k}}}(t + 1) = {{{X}}_{{k}}}(t) + c \cdot r \cdot ({{{P}}_{{{kg}}}}(t) - {{{X}}_{{k}}}(t))$ (7)
${{{P}}_{{{kg}}}}(t) = \lambda {{{P}}_{{g}}}(t) + (1 - \lambda ){{{P}}_{{k}}}(t)$ (8)

式中: ${{{X}}_{{k}}}$ 表示第 $k$ 个粒子的位置; ${{{P}}_{{{kg}}}}$ 表示第 $k$ 个粒子的最佳搜寻位置; ${{{P}}_{{g}}}$ 表示粒子群经历的最好位置; ${{{P}}_{{k}}}$ 表示第 $k$ 个粒子经历的最好位置; $\lambda $ 是0和1之间的一个常数; $r$ 是一个位于0和1之间的随机数; $c$ 是一个正常数,称作加速因子。

从式(7)和式(8)可以看出本文方法与标准粒子群算法的不同之处如下:

1) 本文方法省去了粒子的速度,由于本文加入了局部搜索模式,使得粒子在两种模式之间切换,粒子的历史速度对于粒子的影响并不是很大。只要控制好参数 ${\rm SM}$ ${\rm SR}$ ,粒群体将不容易早熟,陷入局部最优解。同时,省去速度参数,也避免了对粒子速度的限制,进一步减少了算法的运行时间。

2) 种群的每个粒子对局部最优解 ${{{P}}_{{k}}}$ 和全局最优解 ${{{P}}_{{g}}}$ 的位置进行判断和权衡,找出最佳搜寻位置 ${{{P}}_{{{kg}}}}$ ,随后对此最佳位置进行跟踪。从式(8)可以看出最佳搜寻位置 ${{{P}}_{{{kg}}}}$ ${{{P}}_{{g}}}$ ${{{P}}_{{k}}}$ 的连线上, $\lambda $ 越接近1, ${{{P}}_{{{kg}}}}$ 离全局最优解 ${{{P}}_{{g}}}$ 的距离越近; $\lambda $ 越接近0, ${{{P}}_{{{kg}}}}$ 离局部最优解 ${{{P}}_{{k}}}$ 越近。

2.3 算法参数分析

本文算法不同于标准PSO算法的参数主要有 ${\rm SN}$ $\lambda $ ${\rm S{M}_{\max }}$ ${\rm S{M}_{\min }}$ ${\rm SR}$ 。对于不同的优化问题参数选择不同,本文按照优化时间最短和优化结果最优原则,通过大量的仿真实验,总结了参数的选取方法:

1) 搜寻个数 ${\rm SN}$ 选取的越大,耗时越多,但是相应的优化精度越高,一般选取3~5之间。

2) $\lambda $ 是控制最佳搜寻位置的参数,调节整体和局部的关系。针对参数 $\lambda $ 的选择,本文采用了黄金分割点的位置 $\lambda = 0.618$ 或者 $\lambda = 0.382$ 。黄金分割已经在众多领域取得了成功的应用,例如在数学上具有广泛应用价值的优选法,在股市上的应用,在战术布阵中的应用等。黄金分割被认为是建筑和艺术中最理想的比例,达到了局部与整体的辩证统一。

3) ${\rm SM}$ 表示处于全局搜索模式的粒子所占种群的比例。 ${\rm SM}$ 越大,全局搜索模式的粒子越多,算法收敛到最优解的速度越快,但是容易早熟,陷入局部最优解; ${\rm SM}$ 越小,局部搜索模式的粒子越多,算法找到最优解的速度太慢,耗时太多,所以一般情况下 ${\rm S{M}_{\max }}$ 为1, ${\rm S{M}_{\min }}$ 为0.5。

4) 局部搜索范围 ${\rm SR}$ 越大,越有利于算法摆脱局部最优解,加快算法找到全局最优解,但是局部搜索能力比较弱; ${\rm SR}$ 越小,局部搜索能力比较强,但是容易陷入局部最优解。根据具体问题的取值范围合理的选择 ${\rm SR}$ 的大小。

3 基于SMPSO和FCM的建模方法 3.1 T-S模糊模型

在1985年,Takagi等[1]提出了T-S模糊模型,第 $i$ 条规则的形式为

$\begin{array}{l} {R^i}:\;\;\;{\rm{if}}\;{x_1}\;{\rm{is}}\;A_1^i\;{\rm{and}}\;{x_2}\;{\rm{is}}\;A_2^i\;{\rm{and}}\; \cdots \;{\rm{and}}\;{x_r}\;{\rm{is}}\;A_r^i,{\rm{ }}\\ \;\;\;\;\;\;\;\;{\rm{then}}\;{y^i} = p_0^i{\rm{ }} + p_1^i{x_1} + \cdots + p_r^i{x_r} \end{array}$ (9)

式中: $i = 1,2, \cdots ,c$ $j = 1,2, \cdots ,r$ ${x_j}$ 是第 $j$ 个输入; $A_j^i$ 是一个模糊集合; ${y^i}$ 是第 $i$ 条规则的输出; $p_j^i$ 是结论参数。

那么由各规则输出 ${y^i}{\rm{ }}(i = 1,2, \cdots ,c)$ 的加权平均可求得系统的总输出 $\hat y$

$\begin{array}{l} \hat y = \sum\limits_{i = 1}^c {{\mu _i}{y^i}} /\sum\limits_{i = 1}^c {{\mu _i}} = \sum\limits_{i = 1}^c {{w_i}} {y^i} = \\ \;\;\;\;\;\;\sum\limits_{i = 1}^c {{w_i}} (p_0^i{\rm{ }} + p_1^i{x_1} + \cdots + p_r^i{x_r}) \end{array}$ (10)

式中: ${\mu _i} = \prod\limits_{j = 1}^r {A_j^i} ({x_i})$ $(i = 1,2, \cdots ,c)$ $\prod $ 是模糊化算子,通常表示取小运算或者乘积运算,本文表示取小运算; ${w_i} = {\mu _i}/\sum\limits_{i = 1}^c {{\mu _i}} $

如果T-S模糊模型具有统一的前件结构,参照文献[12]的定义,T-S模糊模型的另一种表示方法如下:

$\begin{array}{l} {R^i}:\;\;\;{\rm{if}}\;{\rm{ }}{{x}}\;{\rm{is}}\;{A^i}{\rm{,}}\\ \;\;\;\;\;\;\;{\rm{then}}\;{y^i} = p_0^i + p_1^i{x_1} + \cdots + p_r^i{x_r} \end{array}$ (11)

式中: ${{x}} = ({x_1},{x_2}, \cdots ,{x_r})$ 为输入变量向量,这样可以使得模糊规则数等于输入变量的模糊集合数,明显的减小了算法的复杂度。

代入 $N$ 对输入数据可得矩阵等式:

${\hat{ Y}} = {{XP}}$ (12)

式中: ${\hat{ Y}}$ $N$ 维列向量; ${{X}}$ $N \times L$ 的矩阵; ${{P}}$ $L = (r + 1) {\text ×}c$ 维参数列向量。

由式(12)可得模型输出 ${\hat{ Y}}$ 是参数向量 ${{P}}$ 的线性组合,采用递推最小二乘法求取参数 ${{P}}$ ,算法如下:

${{{P}}_{{{i + 1}}}} = {{{P}}_{{i}}} + \frac{{{{{S}}_{{i}}} \cdot {{{x}}^{\rm{T}}}_{{{i + 1}}} \cdot ({y_{i + 1}} - {{{x}}_{{{i + 1}}}} \cdot {{{P}}_i})}}{{1 + {{{x}}_{{{i + 1}}}} \cdot {{{S}}_{{i}}} \cdot {{x}}_{{{i + 1}}}^{\rm{T}}}}$ (13)
${{{S}}_{{{i + 1}}}} = {{{S}}_{{i}}} - \frac{{{{{S}}_{{i}}} \cdot {{x}}_{{{i + 1}}}^{\rm{T}} \cdot {{{x}}_{{{i + 1}}}} \cdot {{{S}}_{{i}}}}}{{1 + {{{x}}_{{{i + 1}}}} \cdot {{{S}}_{{i}}} \cdot {{x}}_{{{i + 1}}}^{\rm{T}}}}$ (14)
3.2 模糊C均值聚类算法

模糊C均值聚类算法是一种自动对样本点进行分类的方法,是当前应用较为广泛的一种模糊聚类算法。聚类的目标函数 ${{{J}}_m}({{U}},{{V}})$ 如式(15),聚类的最终目的是求得目标函数 ${{{J}}_m}({{U}},{{V}})$ 的极小值,具体实现步骤如下:

$\left\{ \begin{array}{l} {{{J}}_m}({{U}},{{V}}) = \sum\limits_{i = 1}^c {\sum\limits_{k = 1}^n {{{({u_{ik}})}^m}{{({d_{ik}})}^2}} } \\ {\rm{s.t}}\;\;\;\;\;\;\;\;\;{{U}} \in {{{M}}_{fc}} \end{array} \right.$ (15)

1) 设定聚类中心数 $c(2 \leqslant c \leqslant n)$ $n$ 为样本个数,给聚类中心 ${{{V}}^0}$ 赋初值,设定模糊权重指数 $m$ 、最大迭代次数 ${C_{\max }}$ 和停止阈值 $\varepsilon $

2) 根据聚类中心 ${{{V}}^r}$ ,用式(16)计算第 $r + 1$ 次迭代的隶属度矩阵 ${{{U}}^{r + 1}}$ ,对于 $\forall i,k$ ,如果 $\exists d_{ik}^r$ ,则有:

$u_{ik}^{r + 1} = \frac{1}{{\displaystyle\sum\limits_{l = 1}^c {{{(\frac{{d_{ik}^r}}{{d_{lk}^r}})}^{\frac{2}{{m - 1}}}}} }}$ (16)

如果 $\exists i,k$ ,使得 $d_{ik}^r = 0$ ,则有 $u_{ik}^{r + 1} = 1$ ,对于 $j \ne k, $ $u_{ij}^{r + 1} = 0$

3) 根据隶属度矩阵 ${{{U}}^{r + 1}}$ ,用式(17)计算第 $r + 1$ 次迭代的聚类中心 ${{{V}}^{r + 1}}$

${{V}}_i^{r + 1} = \frac{{\sum\limits_{k = 1}^n {{{(u_{ik}^{r + 1})}^m}{{{x}}_k}} }}{{\sum\limits_{k = 1}^n {{{(u_{ik}^{r + 1})}^m}} }}$ (17)

4) 根据给定的阈值 $\varepsilon $ ,如果 $\left\| {{{{V}}^{r + 1}} - {{{V}}^r}} \right\| < \varepsilon $ 或者迭代次数大于 ${C_{\max }}$ ,则停止迭代,最后一次的迭代结果就是隶属度矩阵 ${{U}}$ 和聚类中心 ${{V}}$ ,否则令 $r = r + 1$ ,转到2)。

由以上算法步骤可以看出,整个迭代过程就是不断优化聚类中心和隶属度矩阵的过程。Bezdek等对算法进行了完善,并给出了收敛性说明[13-15]:模糊C均值聚类算法可以从任意给定的初始点开始收敛到目标函数 ${{{J}}_m}({{U}},{{V}})$ 的局部极小点。

3.3 基于SMPSO和FCM的模糊辨识

模糊C均值聚类算法是一种局部搜索算法,容易陷入局部最优解。为了解决这一问题,本文首先采用模糊C均值聚类算法对聚类中心进行初步优化,然后利用改进粒子群算法的全局搜索能力优化聚类中心。这样既保持了模糊C均值聚类算法的优点,又达到了对模型的全局优化,显著的提高了算法的辨识精度和效率。具体算法步骤如下:

1) 由辨识的目标得到输入输出数据。

2) 采用模糊C均值聚类算法对聚类中心 ${{V}}$ 进行初步优化,算法步骤详见3.2。

3) 选择输入变量个数为 $r$ ,即聚类中心的维数为 $r$ ,那么粒子的位置表示为

$\begin{array}{l} {{X}} = [\underbrace {{v_{11}},{v_{12}}, \cdots ,{v_{1r}}}_{{{{v}}_1}}, \cdots ,\underbrace {{v_{i1}},{v_{i2}}, \cdots ,{v_{ir}}}_{{{{v}}_i}}, \cdots , \underbrace {{v_{c1}},{v_{c2}}, \cdots ,{v_{cr}}}_{{{{v}}_c}}] \end{array}$ (18)

式中: ${{X}}$ $r \times c$ 维向量,即粒子群优化参数编码。

4) 根据聚类中心 ${{{V}}^\lambda }$ ,用式(19)计算第 $\lambda + 1$ 次迭代的隶属度矩阵 ${{{U}}^{\lambda + 1}}$ ,对于 $\forall i,k$ ,如果 $\exists d_{ik}^\lambda $ ,则有:

$u_{ik}^{\lambda + 1} = \frac{1}{{\displaystyle\sum\limits_{l = 1}^c {{{(\frac{{d_{ik}^\lambda }}{{d_{lk}^\lambda }})}^{\frac{2}{{m - 1}}}}} }}$ (19)

如果 $\exists i,k$ ,使得 $d_{ik}^\lambda = 0$ ,则有 $u_{ik}^{\lambda + 1} = 1$ ,对于 $j \ne k, $ $u_{ij}^{\lambda + 1} = 0$

5) 采用递推最小二乘法求取结论参数 ${{P}}$ ,用结论参数 ${{P}}$ 和输入数据集计算模糊模型的输出 ${\hat y_k}$ 。SMPSO算法的适应度函数如式(20),根据适应度函数算出每个个体的适应度值,由式(3)~(8)更新个体位置。

$\begin{array}{c} {\rm{fitness}} = {{{J}}_m}({{U}},{{V}}) + w \cdot {\rm{MSE}}= \\ \displaystyle\sum\limits_{i = 1}^c {\sum\limits_{k = 1}^n {{{({u_{ik}})}^m}{{({d_{ik}})}^2}} } + \frac{w}{N}\sum\limits_{k = 1}^N {{{\left( {{y_k} - {{\hat y}_k}} \right)}^2}} \end{array}$ (20)

式中: $w$ 为建模均方误差 ${\rm{MSE}}$ 的比例因子。因为,一般建模均方误差都很小,这样对适应度函数就起不到明显的作用,所以加入比例因子 $w$ ,可以调节 ${{{J}}_m}({{U}},{{V}})$ ${\rm{MSE}}$ 对适应度函数的影响,从而达到更好的寻优效果。

6) 如果程序满足了终止条件,则终止程序;否则返回4)继续执行。

4 仿真研究 4.1 Box-Jenkins煤气炉数据辨识

著名的Box等煤气炉数据[16]已经被许多学者用作检验辨识方法的标准试验数据。输入量 $u(k)$ 是流向煤气炉的流量,输出量 $y(k)$ 是出口二氧化碳的浓度。

这组数据有296对输入输出测量值,是一个SISO动态系统。本文选择 $r = 2,c = 6$ ,输入变量选择 $y(k - 1)$ $u(k - 3)$ ,输出量为 $y(k)$ 。改进的粒子群算法的参数选择如表1所示。辨识模型需要优化的聚类中心的参数为 $r c{\rm{ = 12}}$ 个;结论参数为 $(r + 1) c{\rm{ = }}18$ 个。仿真结果如图1图2所示,与其他方法的对比结果如表2所示。

表 1 SMPSO的参数设置 Tab.1 Parameters setting of SMPSO
Download:
图 1 SMPSO模糊模型辨识结果 Fig. 1 Identification result of fuzzy model with SMPSO
Download:
图 2 SMPSO模糊模型辨识误差 Fig. 2 Identification error of fuzzy model with SMPSO
表 2 不同辨识方法下的MSE Tab.2 MSE of different identification methods

由仿真结果可以看出,本文方法所用模糊规则数少,但是辨识精度高,是一种有效的辨识方法。

4.2 非线性动态系统

本节以式(25)的非线性动态系统为仿真对象,由 $u{\rm{(}}k{\rm{) = }}\sin {\rm{(}}2k{\text π} {\rm{/}}100{\rm{)}}$ 产生输入数据。选择 $r = 3,c = 6$ ,输入变量选择 $u(k)$ $y(k)$ $y(k - 1)$ ,输出量为 $y(k + 1)$ $y{\rm{(}}1{\rm{) = }}0$ ,训练数据500组。改进的粒子群算法的参数选择如表4所示。辨识模型需要优化的聚类中心的参数为 $r c{\rm{ = }}18$ 个;结论参数为 $(r + 1) c{\rm{ = }}24$ 个。仿真结果如图3图4所示,与其他方法的对比结果如表3所示。

Download:
图 3 SMPSO模糊模型辨识结果 Fig. 3 Identification result of fuzzy model with SMPSO
Download:
图 4 SMPSO模糊模型辨识误差 Fig. 4 Identification error of fuzzy model with SMPSO
表 3 不同辨识方法的仿真结果 Tab.3 Simulation results of different identification methods
$y{\rm{(}}k{\rm{ + }}1{\rm{) = }}\frac{{y{\rm{(}}k{\rm{)}}}}{{{\rm{1 + }}y{{(k)}^{\rm{2}}}}}{\rm{ + }}u{{\rm{(}}k{\rm{)}}^3}$ (21)

从仿真结果可以看出,本文方法不仅提高了辨识精度,而且大幅度的缩短了程序运行时间,验证了本文方法有很高的效率。

5 结束语

本文将改进的粒子群算法和模糊C均值聚类算法相结合,提出一种新的模糊辨识方法。首先采用模糊C均值聚类算法对聚类中心进行初步优化。然后对粒子群算法进行了改进,提出一种搜索模式动态调整的PSO算法,显著提高了PSO算法处理复杂问题的全局优化能力。并且将改进的PSO算法运用到聚类中心的优化中,有效的解决了FCM算法容易陷入局部最优的问题,提高了模糊辨识的精度和效率。最后通过建模仿真,表明了本文方法的有效性和优越性。

参考文献
[1] TAKAGI T, SUGENO M. Fuzzy identification of systems and its applications to modeling and control[J]. IEEE transactions on systems, man, and cybernetics, 1985, SMC-15(1): 116-132. DOI:10.1109/TSMC.1985.6313399 (0)
[2] PARK B J, OH S K, PEDRYCZ W. Fuzzy identification by means of partitions of fuzzy input space and an aggregate objective function[C]//IEEE International Fuzzy Systems Conference Proceedings. Seoul, South Korea, 1999, 1: 480–485. (0)
[3] 李峰磊, 窦金梅, 刘福才, 等. 一种基于改进BFO和RLS的模糊建模方法[J]. 南京理工大学学报, 2014, 38(2): 252-258.
LI Fenglei, DOU Jinmei, LIU Fucai, et al. Fuzzy modeling method with improved BFO and RLS[J]. Journal of Nanjing university of science and technology, 2014, 38(2): 252-258. DOI:10.3969/j.issn.1005-9830.2014.02.012 (0)
[4] LI C, WU T. Adaptive fuzzy approach to function approximation with PSO and RLSE[J]. Expert systems with applications, 2011, 38(10): 13266-13273. DOI:10.1016/j.eswa.2011.04.145 (0)
[5] TAMURA S, HIGUCHI S, TANAKA K. Pattern classification based on fuzzy relations[J]. IEEE transactions on systems, man, and cybernetics, 1971, SMC-1(1): 61-66. DOI:10.1109/TSMC.1971.5408605 (0)
[6] BACKER E, JAIN A K. A clustering performance measure based on fuzzy set decomposition[J]. IEEE transactions on pattern analysis and machine intelligence, 1981, PAMI-3(1): 66-75. DOI:10.1109/TPAMI.1981.4767051 (0)
[7] 樊治平, 于春海, 尤天慧. 一种基于三角模糊数多指标信息的FCM聚类算法[J]. 控制与决策, 2004, 19(12): 1407-1411.
FAN Zhiping, YU Chunhai, YOU Tianhui. An FCM clustering algorithm for multiple attribute information with triangular fuzzy numbers[J]. Control and decision, 2004, 19(12): 1407-1411. DOI:10.3321/j.issn:1001-0920.2004.12.020 (0)
[8] WU Z, LEATHY R. An optimal graph theoretic approach to data clustering: theory and its application to image segmentation[J]. IEEE transactions on pattern analysis and machine intelligence, 1993, 15(11): 1101-1113. DOI:10.1109/34.244673 (0)
[9] DUNN J C. A fuzzy relative of the isodata process and its use in detecting compact well-separated clusters[J]. Journal of cybernetics, 1973, 3(3): 32-57. DOI:10.1080/01969727308546046 (0)
[10] BEZDEK J C. Numerical taxonomy with fuzzy sets[J]. Journal of mathematical biology, 1974, 1(1): 57-71. (0)
[11] KENNEDY J, EBERHART R C. Particle swarm optimization[C]//Proceedings of the IEEE International Conference on Neural Networks, Australia 1995: 1942−1948. (0)
[12] CHEN Jianqin, XI Yugeng, ZHANG Zhongjun. A clustering algorithm for fuzzy model identification[J]. Fuzzy sets and systems, 1998, 98(3): 319-329. DOI:10.1109/TSMC.1987.6499296 (0)
[13] HATHAWAY R J, BEZDEK J C, TUCKER W T. Recent convergence results for the fuzzy C-means clustering algorithms[J]. Journal of classification, 1988, 5(2): 237-247. DOI:10.1007/BF01897166 (0)
[14] BEZDEK J C, HATHAWAY R J, SABIN M J, et al. Convergence theory for fuzzy c-means: counterexamples and repairs[J]. IEEE transactions on systems, man, and cybernetics, 1987, 17(5): 873-877. DOI:10.1109/TSMC.1987.6499296 (0)
[15] HATHAWAY R J, BEZDEK J C, TUCKER W T. Recent convergence results for the fuzzy C-means clustering algorithms[J]. Journal of classification, 1988, 5(2): 237-247. DOI:10.1007/BF01897166 (0)
[16] BOX G E P, JENKINS A D. Time series analysis: forecasting and control[M]. San Francisco, USA: Holden-Day, 1976. (0)
[17] YOSHINARI Y, PEDRYCZ W, HIROTA K. Construction of fuzzy models through clustering techniques[J]. Fuzzy sets and systems, 1993, 54(2): 157-165. DOI:10.1016/0165-0114(93)90273-K (0)
[18] 王宏伟, 马广富, 王子才. 一种基于模糊规则的模糊辩识方法[J]. 系统仿真学报, 1998, 10(4): 61-64.
WANG Hongwei, MA Guangfu, WANG Zicai. A fuzzy identification method via fuzzy rules[J]. Acta simulata systematica sinica, 1998, 10(4): 61-64. (0)