基于遺傳算法的復(fù)雜無(wú)源濾波器參數(shù)設(shè)計(jì)
提出了一種基于計(jì)算機(jī)數(shù)值計(jì)算的復(fù)雜無(wú)源濾波器參數(shù)設(shè)計(jì)的新方法,首先把求解電路參數(shù)的問(wèn)題數(shù)學(xué)化為性能指標(biāo)優(yōu)化模型,然后采用遺傳算法求得特性符合要求的電路參數(shù)值,數(shù)值實(shí)驗(yàn)表明了此方法的有效性。
關(guān)鍵詞:無(wú)源濾波器 參數(shù)優(yōu)化設(shè)計(jì) 遺傳算法
無(wú)源濾波器在電子技術(shù)領(lǐng)域有著廣泛的應(yīng)用。針對(duì)某一應(yīng)用的復(fù)雜無(wú)源濾波器,往往結(jié)構(gòu)容易確定,參數(shù)調(diào)整卻十分困難。其原因是:結(jié)構(gòu)中的組成元件?電阻、電容、電感?個(gè)數(shù)較多,頻率特性與元件參數(shù)的關(guān)系是一個(gè)高階的非線性函數(shù),相互間對(duì)頻率特性的影響存在著高度的耦合,因而欲達(dá)到頻率特性優(yōu)良的設(shè)計(jì)目的,無(wú)論采用實(shí)驗(yàn)手段還是常規(guī)數(shù)學(xué)手段,都需花費(fèi)大量的時(shí)間與精力。
近年來(lái),模擬生物進(jìn)化過(guò)程的遺傳算法作為求解優(yōu)化問(wèn)題的有效手法而倍受關(guān)注。正如Thomas Back等人指出?1?,同其他手法相比,其優(yōu)點(diǎn)在于:處理問(wèn)題的靈活性、適應(yīng)性、魯棒性,能取得全局解,對(duì)模型要求低,針對(duì)不同問(wèn)題設(shè)計(jì)的不同遺傳算法,不僅能提高現(xiàn)有解的優(yōu)化品質(zhì),還能攻克某些難度大的優(yōu)化問(wèn)題。
本文以遺傳算法的應(yīng)用為出發(fā)點(diǎn),提出了一種新的無(wú)源濾波器參數(shù)設(shè)計(jì)方法。它能有效克服上述無(wú)源濾波器參數(shù)設(shè)計(jì)的困難,十分方便地取得滿足性能指標(biāo)要求的參數(shù)設(shè)計(jì)值。
1 優(yōu)化模型的建立
典型的無(wú)源濾波器電路組成元件一般按T型結(jié)構(gòu)連接,如圖1所示。濾波器的頻率特性可以用功率傳輸函數(shù)來(lái)定義,即:
其中,X=[X1,X2,...,Xn],為電路的元件參數(shù)值矩陣,n為元件總個(gè)數(shù),W為頻率。若X已知,頻率采樣點(diǎn)Wi對(duì)應(yīng)的頻率特性Li可按下述方法計(jì)算:
設(shè) I1=IL=0.1,
V1=ILRL+0=VL
I2=V1Y1+IL
V3=I2Z2+V1
V2n+1=I2nZ2n+V2n-1
I2n+2=V2n+1Y2n+1+I2n
Es=RsI2n+2+V2n+1
用簡(jiǎn)易的迭代程序求得Es,代入式(1)即可求得Li。
濾波器的結(jié)構(gòu)已知后,先確定結(jié)構(gòu)中的參數(shù)取值范圍,選擇的條件可以比較寬松,然后按預(yù)期的性能指標(biāo)要求,選定適當(dāng)個(gè)頻率采樣點(diǎn)W1,W2,...,規(guī)定其對(duì)應(yīng)功率傳輸函數(shù)幅度界限值,迫使它調(diào)整后經(jīng)過(guò)采樣點(diǎn)時(shí),滿足幅度界限要求(大于、小于或介于)。由此獲得的新設(shè)計(jì)參數(shù)X*即是滿足預(yù)期性能指標(biāo)的設(shè)計(jì)值。為求得X*,建立如下優(yōu)化模型:
其中,X的定義同前,T=[T1,T2,...]為幅度界限值矩陣,S=[S1,S2,...]為加權(quán)系數(shù)矩陣,U=[U1,U2,...]為裕度矩陣,XL、XU分別為設(shè)計(jì)參數(shù)的上下界限矩陣。p為偶次方,m為采樣點(diǎn)總數(shù),Ri稱為余差,具體表達(dá)式為:
下界 Ri=Si×Min(+[Li-Ti]-Ui,0)
上界 Ri=Si×Min(-[Li-Ti]-Ui,0)
顯然,當(dāng)存在解X使F函數(shù)最小時(shí),Li的值應(yīng)能控制在Ti的要求范圍內(nèi),從而使頻率特性滿足指標(biāo)要求,因此該解即可視為X*。
2 優(yōu)化模型的求解
遺傳算法是一個(gè)強(qiáng)有力的求優(yōu)算法,它首先隨機(jī)地產(chǎn)生一組潛在的解X(該解稱為“染色體”,解的特定集合稱為“人口”,解中的變量稱為“基因”),然后采用生物進(jìn)化的過(guò)程(如染色體交叉?變異?淘汰等)不斷提高解的品質(zhì),最后獲得最優(yōu)解。遺傳算法有兩個(gè)重要控制參數(shù)——交叉率Pc和變異率Pm對(duì)算法的收斂速度有較大影響,文獻(xiàn)[3]采用確定不變的Pc和Pm?而本文采用隨世代數(shù)增加而不斷自動(dòng)調(diào)整的Pc和Pm。這樣做的目的在于:在進(jìn)化的初期,人口的差異一般較大,交叉率大和變異率小有助于加快收斂,而在進(jìn)化的后期,交叉率小和變異率大有助防止過(guò)早陷入局部最優(yōu)點(diǎn)。公式如下:
Pc(gen)=Pc(gen-1)-[Pc(0)-0.3]/MAXGEN
Pm(gen)=Pm(gen-1)+[0.3-Pm(0)/MAXGEN
其中,gen表示世代數(shù),MAXGEN表示最大世代數(shù),具體算法如下:
第1步,全局參數(shù)設(shè)定
給出POP_SIZE(人口數(shù))、Pc(0)、Pm(0)、MAXGEN和設(shè)計(jì)次數(shù)dcnt的大小或范圍。
第2步,人口的產(chǎn)生及初使化
設(shè)世代數(shù)gen=1。以設(shè)計(jì)參數(shù)為變量,組成矩陣X=[X1,X2,...,Xn]。第一代人口由POP_SIZE個(gè)染色體構(gòu)成,每個(gè)染色體的基因(即設(shè)計(jì)參數(shù))在參數(shù)各自取值范圍內(nèi)隨機(jī)產(chǎn)生。
第3步,染色體評(píng)價(jià)
為了評(píng)價(jià)代世代中染色體X的優(yōu)劣,建立染色體適應(yīng)性評(píng)價(jià)函數(shù)eval(X):
eval(X)={F(X,T,S,U);當(dāng)X滿足約束條件 M,M為一大正數(shù);當(dāng)X不滿足約束條件
對(duì)本問(wèn)題,評(píng)價(jià)函數(shù)越小越好。[!--empirenews.page--]
第4步,基因操作
通?;虿僮饔薪徊?、變異、選擇三種(2)。
基因交叉:設(shè)交叉計(jì)數(shù)器ccnt=0,從[0,1]范圍內(nèi)產(chǎn)生隨機(jī)數(shù)rk(k=1,2,...,POP_SIZE),如果rk<Pc(gen),則選擇Xk為交叉用;使交叉染色體配對(duì)進(jìn)行如下位交叉操作:
Xj=[X1j,X2j,...,Xpj,...,Xnj]? Xj′=[X1j,X2j,?...,Xpl,...,Xnl?
Xl=[X1l,X2l,...,Xpl,...,Xnl] Xl′=[X1l,X2l,...,Xpj,...,Xnj]
其中Xj、Xl為配對(duì)染色體,Xj′、Xl′為交叉后染色體。p為隨機(jī)選擇的交插位,接受交叉操作的染色體個(gè)數(shù)記入ccnt中。
基因變異:設(shè)變異計(jì)數(shù)器mcnt=0,從[0,1]范圍內(nèi)產(chǎn)生隨機(jī)數(shù)rk(k=1,?2,...,n×POP_SIZE+n×ccnt),如果rk<Pm(gen),則第k個(gè)基因進(jìn)行變異操作,并使mcnt=mcnt+1。新基因Xk′隨機(jī)產(chǎn)生于區(qū)間[(1-α)Xk,(1+α)Xk];其中1≤i≤POP_SIZE,α為[0,1]范圍內(nèi)選定常數(shù)。
染色體選擇:計(jì)算新生染色體Xn′的評(píng)價(jià)函數(shù)eval(Xn′)(n=1,2,...,ccnt+mcnt?和父代染色體Xn的評(píng)價(jià)函數(shù)eval?Xn??n=1?2?...?POP_SIZE?,并按適應(yīng)性大小排列,選出其中適應(yīng)性最強(qiáng)的POP_SIZE個(gè)染色體構(gòu)成新一代人口并保留上述過(guò)程中最佳染色體V*,這個(gè)過(guò)程稱為“適者生存”選擇。
第5步,單次過(guò)程結(jié)束判斷
當(dāng)F<Er時(shí)(Er?yàn)橐恍?shù)量級(jí)數(shù)值?,X*=V*,輸出X*,轉(zhuǎn)第6步。
當(dāng)F≤Er且gen≥MAXGEN時(shí),gen=gen+1,返回第3步。
當(dāng)F≥Er時(shí)且gen≥MAXGEN時(shí),返回第2步。
第6步,全過(guò)程結(jié)束判斷
dcnt=dcnt-1;當(dāng)dcnt>0時(shí),返回第2步;否則,停機(jī)。
3 數(shù)值實(shí)驗(yàn)例
圖2為一帶通無(wú)源濾波器電路結(jié)構(gòu),通頻帶要求在950~1050 rad/s之間。為此,每隔5 rad/s作一次采樣,采樣點(diǎn)的幅度大于0.85;設(shè)定低頻截止頻率為800 rad/s,幅度小于1e-5;高頻截止頻率為1300rad/s,幅度小于1e-5。建立如下優(yōu)化模型:
s.t. XL=[0,0,...,0]<X<XU=[18,18,...,18]?
其中
X=[X1,X2,...,X19]=[L,C3,C4,L6,L7,C7,L9,L10,C12,L13,C13,L15,L16,C18,L19,C19,L21,L22,C24];
R1=10×Min(+[1.0e-5-L1]-0.0,0),對(duì)應(yīng)W1=800rad/s
Rj=1.0×Min(+[Lj-0.85]-0.05,0);j=2,3,?...,22,對(duì)應(yīng)Wj=(5×j+940)rad/s
R23=10×Min(+[1.0e-5-L23]-0.0,0),對(duì)應(yīng)W23=1300rad/s
在NEC4800/210Ⅱ工作站完成上述算法。算法的參數(shù)設(shè)置為Er=1e-6,α=0.1,Pc=Pc(0)=0.6,Pm(0)=0.1,POP_SIZE=40,MAXGEN=2000,程序語(yǔ)言為UNIX-C。dcnt?。保?得到10組設(shè)計(jì)值,皆能使頻率特性滿足要求。平均世代數(shù)為1508代,平均時(shí)間為9.8min。其中一組結(jié)果為:
X*=[0.0792?12.6514?0.0752?13.0157?0.1058?3.3131?
0.1793?13.3386?0.0726?0.1334?3.326?0.1722?15.1218?0.0633?0.0876?1.9288?0.3333?10.3171?0.0900]。
按此參數(shù)設(shè)計(jì)后,濾波器頻率特性較好地達(dá)到了預(yù)期要求,如圖3所示。
本文簡(jiǎn)要分析了無(wú)源濾波器參數(shù)設(shè)計(jì)存在困難的主要原因。對(duì)無(wú)源濾波器的常用電路結(jié)構(gòu),提出了計(jì)算頻率特性的簡(jiǎn)易迭代法,并將求解滿足指標(biāo)要求的參數(shù)設(shè)計(jì)值的問(wèn)題轉(zhuǎn)化為優(yōu)化模型的求解過(guò)程,使的原來(lái)難以描述和解決的設(shè)計(jì)問(wèn)題變得明確和簡(jiǎn)單。
在遺傳算法方面,我們并不照搬前人的方法[3],例如,把最小目標(biāo)函數(shù)的求解要求轉(zhuǎn)化為進(jìn)化的驅(qū)動(dòng)力而不是刻意求得最優(yōu)解,不僅減少了計(jì)算時(shí)間,還可提供設(shè)計(jì)者多種可選擇的方案。在遺傳算法的變異階段,采用的是以現(xiàn)有的基因?yàn)橹行牡淖笥易儺惙椒?有別于常用的在變量范圍內(nèi)變異的方法。因本法中心不斷靈活飄移,求解過(guò)程出現(xiàn)兩個(gè)極端,即快速找到合適解或走入死區(qū)——永遠(yuǎn)找不到解。我們通過(guò)設(shè)定最大世代數(shù)消除了后者的可能性,總體上提高了效率。
本法有效地克服了無(wú)源濾波器參數(shù)設(shè)計(jì)的困難,具有普遍性的價(jià)值和意義。其基本思想及原理亦可在電氣、電子、自動(dòng)化等較復(fù)雜系統(tǒng)的參數(shù)設(shè)計(jì)領(lǐng)域得到廣泛的應(yīng)用。