第25卷第10期
文章编号:1001-506X(2003)10-1256-04
系统工程与电子技术SystemsEngineeringandElectronics
Vol.25No.10,2003
基于粒子群优化的时变系统辨识
柯 晶,李威武,钱积新
1
2
2
(1.山东大学控制科学与工程学院,山东济南250061;2.浙江大学系统工程研究所,浙江杭州310027)
摘 要:提出了一种基于粒子群优化的时变系统辨识方法。其基本思想是将时变系统的辨识问题转化为非线性连续函数的在线优化问题,然后利用粒子群优化获得系统参数的最优估计。仿真结果显示,该方法对于时变参数具有很强的跟踪能力,与采用遗传算法的系统辨识方法相比,有实现简单、运算量小等特点。
关键词:系统辨识;参数估计;优化中图分类号:TP27 文献标识码:A
IdentificationofTime-VaryingSystemsBasedonParticleSwarmOptimization
KEJing1,LIWei-wu2,QIANJi-xin2
(1.SchoolofControlScienceandEngineering,ShandongUniversity,Jinan250061,China;
2.InstituteofSystemsEngineering,ZhejiangUniversity,Hangzhou310027,China)
Abstract:Amethodbasedonparticleswarmoptimizationforidentificationoftime-varyingsystemsisproposed.Thebasicideaisthattheidentificationoftime-varyingsystemsisconvertedtoanon-lineoptimizationofcontinuousnonlinearfunctions,andthentheparticleswarmoptimizationisutilizedtofindanoptimalestimationofthesystemparameters.Simulationresultsshowthattheproposedmethodhasagoodtrackingabilitytothevariationsoftheparameter.Comparedwiththesystemidentificationusingthegeneticalgo-rithm,theproposedmethodiseasytobeimplementedandrequireslesscomputationalresources.
Keywords:Systemidentification;Parameterestimation;Optimization
1 引 言
系统辨识作为系统和控制科学的核心问题之一,一直受到广泛关注[1,2]。由于时变系统大量存在,因而研究时变系统的辨识问题对于应用而言是十分必要的。20世纪90年代以来,时变系统的辨识已经成为系统辨识领域的研究主题之一[1,2]。
目前广泛应用的在线辨识方法大部分都是最小二乘和极大似然等离线辨识方法的递推实现,这些方法基本上都属于基于梯度信息的局部搜索方法[3,4]。遗传算法作为一种全局并行搜索算法已经广泛应用于各种搜索和优化问题[5]。近年来,基于遗传算法的系统辨识方法引起了许多研究者的兴趣。研究表明,遗传算法可为系统辨识提供一种简单而有效的方法[4,6]。
粒子群优化(particleswarmoptimization,PSO)是Kennedy和Eberhart于1995年提出的一种新的进化计算方法[7,8]。PSO方法起源于对一个简化社会模型的仿真,它和人工生命(artificiallife)理论以及鸟类或鱼类的群集现象有十分明显的
收稿日期:2002-09-11 修订日期:2003-04-28
联系
[7,8]
。从社会认知学的角度来看,PSO的理论基础主要
包括几个基本因素:(1)刺激的评价;(2)与近邻的比较;(3)对领先近邻的模仿[9]。
尽管PSO最早是作为一种连续非线性函数优化方法提出的,但也可以扩展到离散情况[8]。与遗传算法类似,PSO也是一种基于群体的进化计算方法。但PSO与遗传算法不同的是:(1)每一个个体(称为一个粒子)都被赋予了一个随机速度并在整个问题空间中流动;(2)个体具有记忆功能;(3)个体的进化不是通过遗传算子,而是通过个体之间的合作与竞争来实现的[7,8,10]。
作为一种新的并行优化算法,PSO可用于解决大量非线性、不可微和多峰值的复杂问题,再加上程序实现非常简洁,需要调整的参数极少,因而发展很快,出现了很多改进的PSO算法,并已经应用于多个科学和工程领域[10]。例如Eberhart等人的综述[10],Clerc在PSO的数学基础上所做的工作[11]以及Kennedy等人的第一本有关PSO的专著[8]。
由于PSO与遗传算法有一定的相似性,一些研究者已经尝试将PSO算法用于系统辨识,并取得了较好的结果[12,13]。
作者简介:柯晶(1971-),男,讲师,博士,主要研究方向为系统建模与优化,机器学习,随机系统的滤波与控制。
第10期基于粒子群优化的时变系统辨识
计算,否则转到步骤2。
对于上述PSO算法,有以下几点说明。
·1257·
本文则尝试将PSO算法用于时变系统辨识。数值仿真示例显示了本方法的有效性。
2 粒子群优化
为了简化描述,本文只考虑用于连续非线性函数优化的PSO算法并以求函数极大值为例进行说明。对于求函数极小值的问题,只需对算法稍加修改即可,或是通过简单的数学变换将其转化为极大值问题。
设f为定义在D维欧氏空间ED的某一区域S上的实函
T
数。令N表示粒子数,xi=(xi1,xi2,…,xiD)∈S、vi=(vi1,Tvi2,…,viD)以及fitnessi=f(xi)分别表示第i个粒子在S
①在一般的PSO算法中[8,10],并不要求粒子只能在搜索区域P中流动,只要不超出S即可,但在实际应用中,也可以强制粒子只能在P或包含P的一个区域中流动。
②根据对邻近粒子的定义不同,PSO算法分为全局模式PSO算法和局部模式PSO算法。对于全局模式PSO算法来说,邻近粒子指整个粒子群体;对于局部模式PSO算法来说,邻近粒子仅指几个拓扑相邻或空间相邻的粒子。研究表明,全局模式PSO算法收敛速度较快,但有时也会陷入局部极值;局部模式PSO算法收敛速度较慢,但极少陷入局部极值[8,10]。
③式(1)中的K即为压缩因子[10,11]。压缩因子方法的一种简单实现为
K=
2
|2-φ-2φ-4φ|
中的位置、速度和此时的适应度,其中i=1,2,…,N。pbesti
bestbestpbestpbestT
和Xp=(Xpii1,Xi2,…,XiD)分别表示第i个粒子曾经best达到的最大适应度及其对应位置,nbesti和Xnibest=(Xni1,bestnbestTXni2,…,XiD)分别表示第i个粒子的邻近粒子曾经达到
的最大适应度及其对应位置。设P=子群搜索区域并将X动态范围。
max
max
=(X1,
d=1
[-Xmaxd,∏…,
D
Xmaxd]为粒
式中 φ=C1+C2,φ>4。在此简单实现中,典型设置:C1=C2=2.05,K=0.729。在压缩因子方法中,将Vmax设为Xmax可以显著提高PSO的性能[10,11]。
max
X2,maxT
XD)称为粒子的
引入压缩因子(constrictionfactor)的基本PSO算法大致包含如下步骤
[8,10,11]
3 基于粒子群优化的时变系统辨识
与基于遗传算法的系统辨识[4,6]一样,基于PSO的系统辨识的实质也是将辨识问题转化为最优化问题。
不失一般性,考虑如下时变ARX模型[1,3]
11
A(t,q-)y(t)=B(t,q-)u(t)+η(t)
。
步骤1 在搜索区域中采用随机产生的位置和速度初始化粒子群。
步骤2 对i=1,2,…,N,评价粒子i在当前位置xi处的适应度fitnessi。
步骤3 对i=1,2,…,N,比较fitnessi和pbesti,如果fitnessi大于pbesti,则令pbesti等于
best
fitnessi,Xpi
(4)
式中 t———离散时间变量;y(t)———系统输出;u(t)———
2
输入信号;η(t)———零均值、方差σ的高斯白噪声,η(t)与11u(t)相互独立;q-———延迟算子,即q-y(t)=y(t-1)。112
A(t,q-)=1+a1(t)q-+a2(t)q-+…+an(t)q-n
等于xi。
max
Xn,i
步骤4 对i=1,2,…,N,求出第i个粒子的邻近粒子曾经达到的最大适应度nmaxi及其对应位置nmaxi,置
vid=K[
*
best
vid+C1*rand1*(Xpid
best
Xni
max
等于Xni
比较
nmaxi和nbesti,如果nmaxi大于nbesti,则令nbesti等于
。
步骤5 根据式(1)~式(3)改变每一个粒子的速度和位
-xid)+
(1)(2)(3)
(5)
112
B(t,q-)=b1(t)q-+b2(t)q-+…+bm(t)q-m(6)1
为延迟算子q-的多项式。
引入参数向量
Tθ(t)=(a1(t) a2(t)…an(t) b1(t) b2(t)…bm(t))
best
C2*rand2*(Xnid-xid)]
(7)
则辨识的目标就是在给定输入信号u(t)和系统输出y(t)的情况下估计时变参数向量θ(t)。
设参数向量θ(t)的估计值 θ(t)=( a1(t) a2(t)…
T
an( t) b1(t) b2(t)… bm(t)),则估计的偏差可用以下准
vid=Vmaxd,
vid>
Vmaxd
-Vmaxd, vid<-Vmaxd
xid=xid+vid
式中 i=1,2,…,N;d=1,2,…,D;K、C1、C2以及Vmax
maxmaxT
=(Vmax——设计参数。由于这些参数之间1,V2,…,VD)—
则函数衡量[1,3]
Jh(θ(t))=
[y(t-i)- y(t-i)]2∑β(t,i)
h
存在着约束关系,实际应用中只需要设计其中1到两个参数;rand1和rand2———相互独立的[0,1]区间内均匀分布的随机数。
步骤6 如果已经满足终止准则,如max(pbest1,pbest2,…,pbestN)大于某个阈值或已经达到最大迭代次数,则终止(8)
i=0
式中 y(t)采用下式计算
11
A(t,q- ) y(t)= B(t,q-)u(t)
(9)(10)
112
A( t,q-)=1+ a1(t)q-+ a2(t)q-+…+ an(t)q-n
·1258·
系统工程与电子技术2003年
112m
B( t,q-)= b1(t)q-+ b2(t)q-+…+ bm(t)q-
噪声序列)。仿真步数为600。为了清楚起见,图中绘出的是-a2(t)和-b2(t)。由图可知,基于PSO的辨识方法具有很强的关于时变参数的跟踪能力。
(11)
对于时变系统的辨识来说,当滑动窗口宽度h给定时,权重β(t,i)一般随i的增加而减小。通常选择[3]
β(t,i)=
(k), β(t,0)=1∏λ
i
(12)
k=1
式中遗忘因子λ(k)≤1。如果选择λ(k)=λ为常数,则
iβ(t,i)=λ。
对滑动窗口内的多步输出误差进行求和是为了提高辨识的精度,但当窗口宽度h增大时,会使时变参数的跟踪能力有所降低。
从进化计算的角度看,可以将Jh(θ(t))作为适应度函数,只不过此时Jh(θ(t))越小对应适应度越大。
由于极小化式(8)是一在线优化问题,可以采用PSO算法求式(8)的极小值及其对应的模型参数。在具体实现时,需要估计待辨识参数的大致范围P,并强制粒子只能在包含P的一个较小区域中流动,以避免搜索范围太大。
图1 基于PSO的辨识方法对突变参数的跟踪
4 数值仿真
考虑如下二阶时变系统的辨识问题[3]
y(t)-1.5y(t-1)+0.7y(t-2)=b1(t)u(t-1)+0.5u(t-2)+η(t)
式中 b1(t)———时变参数并考虑如下两种参数变化情况。
(1)参数b1(t)发生突变
1.0, 1≤t<180
b1(t)=0.6, 180≤t<400
1.0, t≥400
(2)参数b1(t)发生缓慢变化
1.0,
b1(t)=1.0-(t-200)*0.002,
0.6+(t-400)*0.002,
值、σ=0.1的白噪声。
对照式(4)~式(6)可知,本例中
112
A(t,q-)=1-1.5q-+0.7q-112
B(t,q-)=b1(t)q-+0.5q-
1≤t<200200≤t<400t≥400
图2 基于PSO的辨识方法对缓变参数的跟踪
输入信号为周期127、幅值1的PRBS序列。η(t)为零均
为便于比较,采用遗传算法在完全相同的输入信号和噪声序列下对上述系统进行了辨识。具体设置如下:滑动窗口宽度h=30;遗忘因子λ(k)=0.95;采用基本遗传算法SGA[5],种群规模取为60,交叉和变异概率分别为0.8和0.1;每个参数的搜索范围为[-2,2],采用12位二进制串编码;适应度函数取为
1。进化代数为2000代。
Jh(θ(t))
1
遗传算法中的适应度函数取为
Jh(θ(t)),而没有取文
y(t-i)]∑M-[y(t-i)-
i=0h
由上可知,共有4个参数需要辨识,即{a1(t),a2(t),b1(t),b2(t)},各个参数的大致范围均为[-2,2]。
辨识算法设置如下:滑动窗口宽度h=30,辨识从t=31开始;遗忘因子λ(k)=λ-0.95为常数,即权重β(t,i)=
i
λ;采用引入压缩因子的局部模式PSO算法对式(8)进行寻
献[4]中采用的
2
的原因是:
优,粒子数N=30,K=0.729,C1=C2=2.05,V化代数为2000代。
max
=(2,
T2,2,2)。对每个参数的搜索范围限定在[-3,3]之间。进
①对于后者来说,保证适应度为正数的偏差项M和具体问题以及搜索范围密切相关,很难估计M多大才能保证适应度一定为正数并且分布合理;②Jh(θ(t))中引入了遗忘因子,适合于跟踪时变参数。
图1和图2分别为基于PSO的辨识方法在两种参数变化情况下的辨识结果(两种情况采用完全相同的输入信号和第10期基于粒子群优化的时变系统辨识
·1259·
图3和图4分别为采用遗传算法的辨识方法在两种参数变化情况下的辨识结果。对照图1和图3、图2和图4可知,由于采用了完全相同的输入信号和噪声序列,两种方法的辨识结果是非常接近的,但也可以看出,基于PSO的辨识方法略优于采用遗传算法的辨识方法。考虑到两种算法的进化代数均为2000代,但PSO辨识应用的粒子数为30,而遗传算法的种群规模为60,因而基于PSO的辨识方法是有效可行的。
5 结束语
作为一种新的进化计算方法,粒子群优化给大量非线性、不可微和多峰值复杂问题的优化提供了一种新的思路。本文尝试将PSO方法用于时变系统的辨识,初步的实验结果显示了本方法的有效性。
参考文献:
[1]LjungL.SystemIdentification———TheoryfortheUser[M].Second
Edition.NewJersey:PrenticeHall,1999.
[2]冯培悌.系统辨识[M].杭州:浙江大学出版社,1999.
[3]LjungL,SoderstromT.TheoryandPracticeofRecursiveIdentification
[M].CambridgeMA:MITPress,1983.
[4]KristinssonK,DumontGA.SystemIdentificationandControlUsing
GeniticAlgorithms[J].IEEETrans.Systems,Man,andCybernetics,1992,22(5):1033-1046.
[5]GoldbergDE.GeneticAlgorithmsinSearch,OptimizationandMachine
Learning[M].Reading,MA:Addison-Welsley,1989.
[6]杨智民,王旭,庄显义.遗传算法在自动控制领域中的应用综述
[J].信息与控制,2000,29(4):329-339.
[7]KennedyJ,EberhartRC.ParticleSwarmOptimization[C].Proc.
IEEEInt.Conf.onNeuralNetworks,Perth,WA,Australia,1995:1942-1948.
[8]KennedyJ,EberhartRC,ShiY.SwarmIntelligence[M].SanFrancis-co:MorganKaufmannPublishers,2001.
[9]DautenhahnK.BookReview:SwarmIntelligence[J].GeneticProgram-mingandEvolvableMachines,2002,3(1):93-97.
[10]EberhartRC,ShiY.ParticleSwarmOptimization:Developments,
ApplicationsandResources[C].Proc.2001CongressonEvolutionaryComputation,Seoul,SouthKorea,2001:81-86.
[11]ClercM,KennedyJ.TheParticleSwarm-Explosion,Stability,and
ConvergenceinaMultidimensionalComplexSpace[J].IEEETrans.onEvolutionaryComputation,2002,6(1):58-73.
[12]VossMS,FengX.ANewMethodologyforEmergentSystemIdentifi-cationUsingParticleSwarmOptimization(PSO)andtheGroupMethodDataHandling(GMDH)[C].Proc.GeneticandEvolutionaryComputa-tionConference,NewYork,USA,2002:1227-1232.
[13]VossMS,FengX.ARMAModelSelectionUsingParticleSwarmOpti-mizationandAICCriteria[C].Proc.15thInternationalFederationofAutomaticControlWorldCongress,Barcelona,Spain,2002.[14]EberhartRC,ShiY.ComparisonbetweenGeneticAlgorithmsandPar-ticleSwarmOptimization[C].Proc.7thInt.Conf.onEvolutionaryProgramming,SanDiego,CA,USA,1998:611-616.
[15]KennedyJ,SpearsWM.MatchingAlgorithmstoProblems———AnEx-perimentalTestoftheParticleSwarmandSomeGeneticAlgorithmsontheMultimodalProblemGenerator[C].Proc.Int.Conf.onEvolution-aryComputation,Piscataway,NJ,USA,1998:78-83.
图3 采用遗传算法的辨识方法对突变参数的跟踪
图4 采用遗传算法的辨识方法对缓变参数的跟踪
需要指出的是,上述实验显示了基于PSO的系统辨识方法的有效性,但不能就此说基于PSO的系统辨识方法一定比基于遗传算法的系统辨识方法好。事实上,对于PSO和遗传算法等其它进化算法的大量比较说明[11,14,15]:①总地来说,每种算法都有自己的优缺点,而且往往和具体问题密切相关;②PSO在种群数量、寻优速度等方面具有一定的优势。此外,从具体实现的角度看,PSO算法的突出特点就是无需对待寻优参数进行编码,算法中需要选择的参数极少,程序实现异常简洁,运算量小。
因篇幅问题不能全部显示,请点此查看更多更全内容