基于遺傳算法的復(fù)雜無(wú)源濾波器參數(shù)設(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è)高階的非線(xiàn)性函數(shù),相互間對(duì)頻率特性的影響存在著高度的耦合,因而欲達(dá)到頻率特性?xún)?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ì)的困難,十分方便地取得滿(mǎn)足性能指標(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,
?。郑保剑桑蹋遥蹋埃剑郑?/P>
?。桑玻剑郑保伲保桑?/P>
?。郑常剑桑玻冢玻郑?/P>
?。郑玻睿保剑桑玻睿冢玻睿郑玻睿?/P>
I2n+2=V2n+1Y2n+1+I2n
?。牛螅剑遥螅桑玻睿玻郑玻睿?/P>
用簡(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í),滿(mǎn)足幅度界限要求(大于、小于或介于)。由此獲得的新設(shè)計(jì)參數(shù)X*即是滿(mǎn)足預(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稱(chēng)為余差,具體表達(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),從而使頻率特性滿(mǎn)足指標(biāo)要求,因此該解即可視為X*。
2 優(yōu)化模型的求解
遺傳算法是一個(gè)強(qiáng)有力的求優(yōu)算法,它首先隨機(jī)地產(chǎn)生一組潛在的解X(該解稱(chēng)為“染色體”,解的特定集合稱(chēng)為“人口”,解中的變量稱(chēng)為“基因”),然后采用生物進(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)。公式如下:
?。校?gen)=Pc(gen-1)-[Pc(0)-0.3]/MAXGEN
?。校恚ǎ纾澹睿剑校恚ǎ纾澹睿保玔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):
?。澹觯幔欤ǎ兀剑鸉(X,T,S,U);當(dāng)X滿(mǎn)足約束條件 M,M為一大正數(shù);當(dāng)X不滿(mǎn)足約束條件
對(duì)本問(wèn)題,評(píng)價(jià)函數(shù)越小越好。
第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)行如下位交叉操作:
?。兀辏絒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ù)evalXn?。煟睿剑雹煟并煟煟校希校撸樱桑冢拧?并按適應(yīng)性大小排列,選出其中適應(yīng)性最強(qiáng)的POP_SIZE個(gè)染色體構(gòu)成新一代人口并保留上述過(guò)程中最佳染色體V*,這個(gè)過(guò)程稱(chēng)為“適者生存”選擇。
第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é)束判斷
?。洌悖睿簦剑洌悖睿簦?當(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)化模型:
?。螅簦?XL=[0,0,...,0]<X<XU=[18,18,...,18]
其中
?。兀絒X1,X2,...,X19]=[L,C3,C4,L6,L7,C7,L9,L10,C12,L13,C13,L15,L16,C18,L19,C19,L21,L22,C24];
?。遥保剑保啊粒停椋?+[1.0e-5-L1]-0.0,0),對(duì)應(yīng)W1=800rad/s
?。遥辏剑保啊粒停椋?+[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ì)值,皆能使頻率特性滿(mǎn)足要求。平均世代數(shù)為1508代,平均時(shí)間為9.8min。其中一組結(jié)果為:
?。?=[0.079212.65140.075213.01570.10583.3131 0.179313.33860.07260.13343.3260.172215.12180.06330.08761.92880.333310.31710.0900]。
按此參數(shù)設(shè)計(jì)后,濾波器頻率特性較好地達(dá)到了預(yù)期要求,如圖3所示。
本文簡(jiǎn)要分析了無(wú)源濾波器參數(shù)設(shè)計(jì)存在困難的主要原因。對(duì)無(wú)源濾波器的常用電路結(jié)構(gòu),提出了計(jì)算頻率特性的簡(jiǎn)易迭代法,并將求解滿(mǎ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)用。
評(píng)論