閆隴剛,李 鵬,王建新,鄧德榮,楊興繁,黎 明
(中國(guó)工程物理研究院 應(yīng)用電子學(xué)研究所,四川 綿陽(yáng) 621900)
基于加速器的光源主要包括同步輻射和自由電子激光,這兩類光源均通過波蕩器中的周期性磁場(chǎng)產(chǎn)生強(qiáng)輻射光,因此其輻射性能很大程度上取決于波蕩器的磁場(chǎng)和磁場(chǎng)誤差[1-2]。目前最常用的永磁波蕩器是由Halbach[3]于1980年代發(fā)明的,其包含兩個(gè)以上由永磁塊和軟鐵磁極組成的磁陣列。在永磁波蕩器的制造過程中不可避免地會(huì)存在各種缺陷,如機(jī)械加工公差、磁鐵或磁極的定位偏差、永磁塊之間磁化強(qiáng)度與磁化方向的差異和單個(gè)永磁塊磁化不均勻等,這均是波蕩器磁場(chǎng)誤差的來源[4-5]。波蕩器磁場(chǎng)誤差主要包括電子軌跡中心偏差、峰峰值誤差、相位誤差和高階場(chǎng)等,若這些誤差不能限制在一定范圍內(nèi)都會(huì)使光源性能下降[6]。波蕩器磁場(chǎng)墊補(bǔ)通過對(duì)局部磁場(chǎng)進(jìn)行小的修正來減小磁場(chǎng)誤差,磁場(chǎng)墊補(bǔ)方法分為兩類:移動(dòng)磁鐵或磁極方位的機(jī)械墊補(bǔ)和在永磁塊或磁極表面貼軟磁片的磁墊補(bǔ),這兩類方法中局部墊補(bǔ)量的精確推算是關(guān)鍵步驟之一[7]。目前,在特定某一局部位置,機(jī)械墊補(bǔ)位移量和磁墊補(bǔ)軟磁片尺寸已能用解析方法計(jì)算[8-9],針對(duì)特定的誤差指標(biāo),全局各點(diǎn)的墊補(bǔ)量也能通過解析方法或優(yōu)化算法進(jìn)行推算[10-12]。但波蕩器磁場(chǎng)誤差指標(biāo)一般有多個(gè),且很多情況下相互沖突,由于現(xiàn)有墊補(bǔ)量推算方法的限制,只能分別針對(duì)每個(gè)誤差指標(biāo)依次進(jìn)行墊補(bǔ),然后再對(duì)磁場(chǎng)進(jìn)行復(fù)測(cè),若有磁場(chǎng)誤差不滿足指標(biāo)要求,還必須再次對(duì)磁場(chǎng)進(jìn)行調(diào)整,這使得磁場(chǎng)墊補(bǔ)工作效率十分低下[13]。因此,發(fā)展基于多目標(biāo)優(yōu)化算法的磁場(chǎng)墊補(bǔ)量推算方法十分迫切,將有可能通過1次墊補(bǔ)使得波蕩器磁場(chǎng)誤差滿足所有指標(biāo)要求。
遺傳算法是一種通過模擬自然進(jìn)化過程搜索最優(yōu)解的方法,其主要優(yōu)點(diǎn)包括:具有良好的全局尋優(yōu)能力,且搜索過程不易陷入局部最優(yōu)解;不需確定規(guī)則,卻能自動(dòng)獲取和調(diào)整搜索方向;無求導(dǎo)和函數(shù)連續(xù)性的限定;具有固有的并行性;可擴(kuò)展性強(qiáng)[14]。遺傳算法最早由Holland[15]于1975年進(jìn)行了系統(tǒng)論述,目前已發(fā)展出多個(gè)變種,廣泛應(yīng)用于各領(lǐng)域,尤其在組合優(yōu)化問題中顯示出更多優(yōu)勢(shì)[16]。
中國(guó)工程物理研究院太赫茲自由電子激光(CTFEL)裝置是國(guó)內(nèi)首臺(tái)工作在太赫茲波段且具有高重復(fù)頻率和高占空比的諧振腔型自由電子激光器,該裝置目前已飽和出光,并為國(guó)內(nèi)外用戶提供實(shí)驗(yàn)機(jī)時(shí)[17-18]。為對(duì)CTFEL裝置的輻射性能進(jìn)行擴(kuò)展,計(jì)劃在CTFEL裝置束線直線段后建立1套超輻射源,并借鑒中國(guó)科學(xué)院上海應(yīng)用物理研究所波蕩器U38研制1臺(tái)波蕩器U38-S。本文將多目標(biāo)遺傳算法應(yīng)用于波蕩器U38-S磁場(chǎng)墊補(bǔ)量的推算,為減小電子軌跡偏移、相位誤差和峰峰值誤差,對(duì)波蕩器U38-S的磁場(chǎng)進(jìn)行墊補(bǔ)。
U38-S指標(biāo)要求列于表1。U38-S波蕩器具有典型的Halbach型磁結(jié)構(gòu)[19],磁結(jié)構(gòu)上下兩排磁陣列各有12個(gè)標(biāo)準(zhǔn)周期,間隙固定在18 mm。U38-S需要優(yōu)化的誤差指標(biāo)包括軌跡中心偏差、相位誤差和峰峰值誤差,需分別小于0.2 mm、5°和0.5%。

表1 U38-S指標(biāo)要求Table 1 Specification requirement of U38-S
遺傳算法中優(yōu)化問題的候選解稱為個(gè)體,個(gè)體擁有1個(gè)或多個(gè)染色體,若干個(gè)體組成1個(gè)種群,種群經(jīng)過類似自然進(jìn)化的過程最終得到最優(yōu)個(gè)體。典型遺傳算法的基本流程如下:
1) 初始化,隨機(jī)或以一定方式產(chǎn)生初始種群的個(gè)體;
2) 終止判斷,判斷種群是否達(dá)到終止要求,若是則停止進(jìn)化,若不是則進(jìn)入下一步進(jìn)化;
3) 個(gè)體評(píng)價(jià),計(jì)算種群中個(gè)體的適應(yīng)度,作為后續(xù)選擇的依據(jù);
4) 選擇,依據(jù)種群中個(gè)體的適應(yīng)度,選擇適應(yīng)度高的個(gè)體直接遺傳到下1代或通過交叉變異產(chǎn)生新的個(gè)體再遺傳到下1代;
5) 交叉,群體中個(gè)體隨機(jī)配對(duì),并按隨機(jī)確定的交叉點(diǎn)交換一定數(shù)量的基因;
6) 變異,改變種群中個(gè)體的染色體隨機(jī)位置的基因;
7) 新種群產(chǎn)生,群體經(jīng)過選擇、交叉、變異后產(chǎn)生下1代種群,新種群進(jìn)入步驟2進(jìn)行判斷。
實(shí)際工程優(yōu)化一般有多個(gè)目標(biāo),且大多數(shù)情況下目標(biāo)之間是相互沖突的,在多目標(biāo)遺傳算法中有權(quán)重系數(shù)變換法、并列選擇法、排列選擇法、共享函數(shù)法和混合法等來處理這個(gè)問題[20]。其中權(quán)重系數(shù)變換法最為簡(jiǎn)便常用,其給第j個(gè)子目標(biāo)函數(shù)tj(p1,p2,…,pl)賦予權(quán)重系數(shù)wj,全部k個(gè)子目標(biāo)函數(shù)線性加權(quán)組成新的目標(biāo)函數(shù)T(式(1)),通過這種方法將多目標(biāo)優(yōu)化問題轉(zhuǎn)化為單目標(biāo)優(yōu)化問題。
(1)
U38-S的磁結(jié)構(gòu)和1/2周期單元如圖1所示。1/2周期單元是磁結(jié)構(gòu)的標(biāo)準(zhǔn)組件,其具有兩個(gè)半磁塊夾1個(gè)磁極的三明治結(jié)構(gòu),這種磁結(jié)構(gòu)既便于加工和安裝,又易于磁場(chǎng)墊補(bǔ)。磁場(chǎng)墊補(bǔ)時(shí)可在1/2周期單元與底板之間塞入一定厚度的銅片,通過改變1/2周期單元的位置來改變局域磁場(chǎng)。

圖1 U38-S的磁結(jié)構(gòu)和1/2周期單元Fig.1 Magnetic structure and 1/2-period unit of U38-S
為明確1/2周期單元位移量d與其產(chǎn)生的局域磁場(chǎng)變化之間的關(guān)系,分別在Radia[21]和OPERA中建立了U38-S磁結(jié)構(gòu)的物理模型并進(jìn)行了計(jì)算。圖2為1/2周期單元移動(dòng)0.001 mm后附近5個(gè)1/2周期單元范圍內(nèi)的局域磁場(chǎng)變化,該曲線用S(z′)來表示,其中-5/4λu (2) 圖2 1/2周期單元移動(dòng)0.001 mm后5個(gè)1/2周期單元內(nèi)的局域磁場(chǎng)變化Fig.2 Modification of local magnetic field in range of five 1/2-period units after displacing of 0.001 mm for 1/2-period unit 1) 軌跡中心偏差 B(z)下的電子軌跡x(z)為: (3) 其中,γ、c、m0和e分別為電子相對(duì)論因子、光速、電子靜止質(zhì)量和電子電荷。 Δxn_center=(xn+xn+1)/2 (4) 其中,xn和xn+1分別為相鄰最大和最小兩個(gè)軌跡峰值。軌跡中心偏差Δxrms定義為2Nu個(gè)Δxn_center的均方根差。 2) 相位誤差 B(z)下的相位Φ(z)為: (5) 第i個(gè)磁極處的相位誤差ΔΦ(zi)等于磁極處相位減去2iπ: ΔΦ(zi)=Φ(zi)-2iπ (6) 則相位誤差(ΔΦ)rms定義為2Nu個(gè)ΔΦ(zi)的均方根值。 3) 峰峰值誤差 峰峰值誤差(ΔB/B)rms也是所有峰值磁場(chǎng)絕對(duì)值的均方根差。 U38-S需優(yōu)化的誤差指標(biāo)包括軌跡中心偏差、相位誤差和峰峰值誤差,因此多目標(biāo)函數(shù)應(yīng)是它們的線性疊加。希望以上3個(gè)指標(biāo)在優(yōu)化過程中應(yīng)具有相等的地位,但它們的數(shù)值大小不在同一范圍內(nèi),因此通過權(quán)重系數(shù)將它們變換到大致相當(dāng)?shù)姆秶鷥?nèi),于是多目標(biāo)函數(shù)T(B(z))為: T(B(z))=10Δxrms+ (ΔΦ)rms+500(ΔB/B)rms (7) U38-S指標(biāo)要求只有3個(gè)目標(biāo)量,對(duì)于其他指標(biāo)要求更多的波蕩器如橢圓極化波蕩器,以上方法同樣適用,仍是以合適的權(quán)重系數(shù)對(duì)所有目標(biāo)量進(jìn)行線性疊加得到目標(biāo)函數(shù)。另外,U38-S指標(biāo)要求的3個(gè)目標(biāo)量的優(yōu)先級(jí)是平級(jí)關(guān)系,在其他波蕩器中若出現(xiàn)某個(gè)目標(biāo)量相對(duì)擁有一定優(yōu)先級(jí),可通過適當(dāng)增加該目標(biāo)量的權(quán)重系數(shù)來實(shí)現(xiàn)。 遺傳算法優(yōu)化結(jié)果與效率對(duì)參數(shù)和配置較敏感,根據(jù)以往經(jīng)驗(yàn)確定遺傳算法參數(shù)(表2)。另外,算法配置還有以下特點(diǎn)。 1) 編碼。合理的編碼能大幅提高遺傳算法效率,一般會(huì)將實(shí)數(shù)轉(zhuǎn)換為二進(jìn)制。這里將Cn轉(zhuǎn)換為六位二進(jìn)制碼,共有2Nu個(gè)Cn,則每個(gè)個(gè)體染色體均為6×2Nu的二維矩陣,其組成形式如圖3所示。 2) 初始化。遺傳算法一般采用隨機(jī)方法產(chǎn)生初始種群,但波蕩器磁場(chǎng)墊補(bǔ)不同,其每個(gè)1/2周期單元的初始位移量均為0,因此將初始種群個(gè)體的Cn均置為0,同時(shí)這也在一定程度上限制了需墊補(bǔ)的1/2周期單元數(shù)。 3) 精英選擇。為加快進(jìn)化速度和保證在進(jìn)化過程中最優(yōu)解不會(huì)丟失,在個(gè)體選擇時(shí)保留一適應(yīng)度最高的個(gè)體直接進(jìn)入下1代,而不經(jīng)過交叉和變異過程。只保留1個(gè)的原因是若保留的精英數(shù)過多,易陷入局部最優(yōu)解。 表2 遺傳算法參數(shù)Table 2 Parameter of genetic algorithm 圖3 個(gè)體染色體編碼結(jié)構(gòu)Fig.3 Structure of individual’s chromosome 基于上述計(jì)算模型,使用Python語(yǔ)言編寫了計(jì)算程序,并調(diào)用了Pyevolve遺傳算法庫(kù)[23]。Pyevolve定義了1組染色體類型、交叉變異算子和選擇方法等,用戶可按照需要進(jìn)行調(diào)用,從而將主要精力放在算法本身上。本文染色體表達(dá)類型是二維二進(jìn)制字符串G2DBinaryString,交叉算子是水平單點(diǎn)交叉法G2DBinaryStringXSingleHPoint,變異算子是隨機(jī)翻轉(zhuǎn)法G2DBinaryStringMutatorFlip,選擇方法是錦標(biāo)賽選擇GTournamentSelector。 利用磁場(chǎng)點(diǎn)測(cè)臺(tái)測(cè)量了U38-S中心軸線上的磁場(chǎng),磁場(chǎng)點(diǎn)測(cè)臺(tái)的工作模式為go-stop,測(cè)量步長(zhǎng)為0.5 mm,停頓時(shí)間為0.5 s,高斯計(jì)測(cè)磁精度和分辨率分別為0.05%和0.1 Gs。基于磁場(chǎng)點(diǎn)測(cè)臺(tái)的測(cè)量結(jié)果,利用計(jì)算程序計(jì)算了所需墊補(bǔ)量,并對(duì)U38-S進(jìn)行了3次墊補(bǔ),圖4a為每次墊補(bǔ)的1/2周期單元位移量,圖4b為電子軌跡及軌跡中心的進(jìn)化過程。圖5為相位誤差和峰峰值誤差的進(jìn)化過程。每次磁場(chǎng)墊補(bǔ)后磁場(chǎng)指標(biāo)均有所提高,且需墊補(bǔ)的1/2周期個(gè)數(shù)也逐漸減少。第3次墊補(bǔ)后,軌跡中心偏差、相位誤差和峰峰值誤差分別減小到0.15 mm、1°和0.49%,滿足了U38-S的指標(biāo)要求。理想情況下在引入多目標(biāo)遺傳算法推算磁場(chǎng)墊補(bǔ)量后,只需1次墊補(bǔ)就可達(dá)到所有指標(biāo)要求,但本文進(jìn)行了3次墊補(bǔ),主要原因可能是墊補(bǔ)機(jī)械結(jié)構(gòu)精度不夠,導(dǎo)致位移量不能精確控制。 圖4 1/2周期單元位移量(a)與電子軌跡及軌跡中心的進(jìn)化過程(b)Fig.4 Displacement of 1/2-peroid unit (a) and evolution of electron trajectory and trajectory center (b) 圖5 相位誤差(a)和峰峰值誤差(b)的進(jìn)化過程Fig.5 Evolution of phase error (a) and peak-to-peak error (b) 本文將多目標(biāo)遺傳算法應(yīng)用于墊補(bǔ)量的推算,對(duì)波蕩器U38-S的磁場(chǎng)進(jìn)行了墊補(bǔ),經(jīng)過3次磁場(chǎng)墊補(bǔ)U38-S的性能達(dá)到指標(biāo)要求,軌跡中心偏差、相位誤差和峰峰值誤差分別減小到0.15 mm、1°和0.49%。相比其他方法,多目標(biāo)遺傳算法在墊補(bǔ)量推算上具有一定優(yōu)越性,可同時(shí)針對(duì)多個(gè)指標(biāo)進(jìn)行磁場(chǎng)墊補(bǔ),且由于遺傳算法具有很好的可擴(kuò)展性,因此對(duì)于其他類型的波蕩器磁場(chǎng)墊補(bǔ)也會(huì)有很好的適用性。
3.2 多目標(biāo)函數(shù)

3.3 算法配置


4 U38-S磁場(chǎng)墊補(bǔ)


5 結(jié)論