郭延芝,吳艷玲,趙鳳起,宋秀鐸,徐司雨,蒲雪梅
(1. 四川大學(xué) 化學(xué)學(xué)院,四川 成都 610064;2.西安近代化學(xué)研究所 燃燒與爆炸技術(shù)重點實驗室,陜西 西安 710065)
改性雙基推進劑通常由黏合劑、增塑劑、含能添加劑和工藝助劑等多種材料組成[1-2]。推進劑的燃燒性能直接決定了導(dǎo)彈和火箭的彈道性能,影響著武器裝備的作戰(zhàn)效能和軍隊?wèi)?zhàn)斗力的發(fā)揮,在眾多性能指標(biāo)中占據(jù)重要位置[3-4]。推進劑的各種成分組合及其比例是影響推進劑性能的主要因素,因此在推進劑各種組成物質(zhì)種類確定后,重要的是要通過配方優(yōu)化,確定各種成分含量,使得推進劑達到較優(yōu)的性能值。近年來研究中用到的配方優(yōu)化方法可分為兩類:一是基于數(shù)理統(tǒng)計的傳統(tǒng)式優(yōu)化方法;二是基于機器學(xué)習(xí)和智能優(yōu)化算法的優(yōu)化方法。傳統(tǒng)優(yōu)化方法要在大量試錯實驗的基礎(chǔ)上進行回歸分析,再應(yīng)用如梯度法、約束變尺度法、牛頓法和模式搜索法等處理得到優(yōu)化配方。其中前三種方法是利用數(shù)學(xué)中的求導(dǎo)、級數(shù)展開和矩陣構(gòu)造等途徑來逼近得到最優(yōu)解;模式搜索法首先圍繞基點探索有利的方向,然后使用加速過程在確定的有利方向上進行加速搜索以得到最優(yōu)值[5]。這些方法都存在著模型精度低、使用范圍窄及耗時費力的局限性[6]。近年來,計算機技術(shù)飛速發(fā)展,越來越多的研究者開始關(guān)注機器學(xué)習(xí)模型與智能優(yōu)化算法在此領(lǐng)域的應(yīng)用。機器學(xué)習(xí)最突出的特點之一就是不需要像傳統(tǒng)數(shù)理方法一樣在材料性能與各個特征參量間建立繁復(fù)的數(shù)學(xué)關(guān)系式,完全基于已有數(shù)據(jù)進行學(xué)習(xí),在解決一些復(fù)雜困難的實際問題時具有優(yōu)秀的性能表現(xiàn)。大自然中,各種生物體依賴本能對自身的生存狀態(tài)進行優(yōu)化以適應(yīng)環(huán)境,智能優(yōu)化算法則模擬大自然中的生物行為,按照一定的思想規(guī)則在可行解空間中進行搜索、更新等過程來獲得滿足實際需求的解。鑒于該類方法的優(yōu)越性,近年來,機器學(xué)習(xí)和智能優(yōu)化算法不斷發(fā)展完善,已經(jīng)在合金設(shè)計、水利工程、場地布置、氣候、熱電及光電材料等多個領(lǐng)域取得了一系列成果[7-8],這使得利用計算機技術(shù)對固體推進劑性能進行有效預(yù)估從而進一步輔助配方設(shè)計成為可能。
在之前的工作中,本課題組基于支持向量回歸算法構(gòu)建了準(zhǔn)確度高、推理能力較強的預(yù)測模型,該模型以推進劑成分含量及壓強為輸入變量,推進劑燃速值為輸出量,實現(xiàn)了對改性雙基推進劑燃速值的快速預(yù)測[9]。本研究以該模型為基礎(chǔ),以燃速作為代表性目標(biāo)性能,去探索適合推進劑配方設(shè)計的智能優(yōu)化算法,并相應(yīng)地開發(fā)了一套智能計算軟件,為固體推進劑燃速優(yōu)化提供一種智能的輔助手段。作為一個探索性工作,本研究只選擇了燃速作為配方性能的一個代表,假設(shè)其他性能不變的情況下以提升燃速作為配方優(yōu)化設(shè)計的目標(biāo),以期為機器學(xué)習(xí)和優(yōu)化算法在推進劑配方設(shè)計中的應(yīng)用提供研究思路和方法上的參考。但實際應(yīng)用中推進劑的配方優(yōu)化是需要考慮其他重要性能,因此需要進一步基于機器學(xué)習(xí)和優(yōu)化算法探索配方綜合性能的優(yōu)化設(shè)計。
改性雙基推進劑由不同比例的硝化纖維素(NC)、硝化甘油(NG)、某酯類增塑劑2(D2)、N,N′-二甲基-N,N′二苯脲(C2)、凡士林(V)、三亞甲基三硝胺(RDX)、Al2O3、某有機銅鹽(XCu)、某有機鉛鹽(XPb)和碳黑(carbon)等混合制成。不同壓強下22組改性雙基推進劑的配方數(shù)據(jù)及燃速值構(gòu)成數(shù)據(jù)集,共計152個樣本。樣本經(jīng)標(biāo)準(zhǔn)化處理之后,采用基于poly核函數(shù)的支持向量回歸算法(SVR)建立了燃速預(yù)測模型,其留一法交叉驗證R2可達0.9927[9]。該模型對152樣本的預(yù)測中,有138個樣本預(yù)測值與實際值的相對偏差在10%以內(nèi),即超過90%的樣本達到了模型10%以內(nèi)的誤差要求,證實了所構(gòu)建的燃速預(yù)測模型的可靠性。
智能優(yōu)化算法又稱為啟發(fā)式算法,能夠考慮全局的狀態(tài)對性能進行優(yōu)化,通用性強而且適合并行處理。與單純的依據(jù)專家經(jīng)驗設(shè)計相比,這種算法的理論依據(jù)更強,可以在一定的時間內(nèi)找到最優(yōu)解或者近似最優(yōu)解。本研究中,選取了4種不同的智能優(yōu)化算法進行配方篩選與優(yōu)化。包括遺傳算法、差分進化算法、粒子群優(yōu)化算法和鯨魚優(yōu)化算法。
1.2.1 遺傳算法(Genetic Algorithm, GA)
遺傳算法[10-12]將大自然物種進化過程中競爭、選擇與變異等操作與編碼技術(shù)結(jié)合,進行隨機全局搜索得到最優(yōu)解。在遺傳算法中,首先設(shè)置需優(yōu)化的各自變量范圍并隨機產(chǎn)生N個可行解;再使用編碼技術(shù)用字符串表示每個解,以模擬生物體內(nèi)的染色體,這樣就構(gòu)成了含有N個個體的種群;同時為了模擬生物個體的生存競爭過程,算法使用適應(yīng)度來衡量個體對環(huán)境的適應(yīng)程度,適應(yīng)度越大,個體越優(yōu);再進行遺傳算法的關(guān)鍵操作:選擇、交叉與變異。選擇操作按照一定的挑選規(guī)則決定進入下一代的個體;交叉操作將兩個染色體對應(yīng)的基因片段按照設(shè)定交叉率進行交換;變異操作根據(jù)變異率對染色體的單個或多個基因進行改變。經(jīng)過上述操作后產(chǎn)生子代種群,在達到停止條件前(如迭代次數(shù)或目標(biāo)值大小),不斷進行上述3個關(guān)鍵操作,直到最后輸出最優(yōu)個體。
1.2.2 差分進化算法(Differential Evolution Algorithm, DE)
差分進化算法[13]的計算流程與遺傳算法十分相似,但其一般使用浮點矢量進行編碼,這樣空間中的每一個解都可用一個向量表示,并在變異過程中引入差分向量。遺傳算法變異操作是對某個染色體上的基因進行突變,比如在二進制編碼中將原本某一個位置的0改為1(如011110→011111),只與單個個體有關(guān),差分進化算法變異時則涉及到了3個個體,其變異過程為:
cm=c3+F(c1-c2)
(1)
式中:c1、c2、c3為從種群中選擇的3個個體,括號中代表兩個向量的差;F為縮放因子,取值區(qū)間為[0,1],控制差分向量對變異結(jié)果的影響程度大??;cm為變異操作后得到的新個體。
1.2.3 粒子群優(yōu)化算法(Particle Swarm Optimization Algorithm, PSO)
粒子群優(yōu)化算法[14-16]是模擬自然界鳥類覓食的一種模型方法,收斂速度快、參數(shù)可調(diào)節(jié)但是易陷入局部最優(yōu)。實際問題中,每個可行解被看作空間中具有速度和位置屬性的一個粒子(即一只小鳥),使用適應(yīng)度值來衡度當(dāng)前位置的好壞,小鳥在覓食的過程中根據(jù)其他鳥兒共享的信息更新調(diào)整自身的速度和位置,不斷向食物所在地點逼近,食物的位置即為最終搜尋出來的最優(yōu)解組合。算法中粒子的更新方式見公式(2)和(3)。
速度更新公式:
Vk+1=wVk+c1r1(Pk-Xk)+c2r2(Gk-Xk)
(2)
位置更新公式:
Xk+1=Xk+Vk+1
(3)
式中:Xk為粒子第k次的位置;Vk為粒子第k次的速度;Pk為當(dāng)前粒子自身經(jīng)過的最佳位置;Gk為當(dāng)前整個種群搜索到的全局最佳位置;w為慣性權(quán)重;c1、c2分別為認(rèn)知學(xué)習(xí)因子、社會學(xué)習(xí)因子;r1、r2為取值區(qū)間為[0,1]的兩個隨機數(shù)。
1.2.4 鯨魚優(yōu)化算法(Whale Optimization Algorithm, WOA)
鯨魚優(yōu)化算法[17]是由Mirjalili和Lewis于2016年提出的一種新穎的優(yōu)化技術(shù),模擬了座頭鯨特殊的泡泡網(wǎng)狩獵方式。這種狩獵方式通過沿著一個圓圈或9字形路徑吐出獨特的泡泡,從而形成一種氣泡網(wǎng)來緊緊包圍獵物。在鯨魚算法中,每個鯨魚的位置即代表了實際問題的一個可行解,目標(biāo)獵物即為最優(yōu)解,通過數(shù)學(xué)建模和編程實現(xiàn)來模擬鯨魚的包圍獵物、泡泡網(wǎng)攻擊和搜索獵物等過程,以更新當(dāng)前位置來接近最優(yōu)解。
本研究使用到的所有代碼均基于Python語言,使用Anaconda Spyder工具運行。軟件的建立主要借助了PyQt5工具和PyInstaller工具, PyQt5用于創(chuàng)建圖形用戶界面,PyInstaller用于打包代碼生成可執(zhí)行軟件。
2.1.1 基于統(tǒng)計篩選的初始配方優(yōu)化
利用Python的random模塊,根據(jù)已建立的支持向量回歸模型,結(jié)合實際數(shù)據(jù),產(chǎn)生隨機配方的初始限定條件(質(zhì)量分?jǐn)?shù)):NC (70%~15%)、NG (35%~15%)、RDX (70%~15%)、D2 (1%~7%)、C2 (0~3%)、V(0.5%)、Al2O3(2%)、XPb (0~5%)、XCu (0~3%)、carbon (0~1.5%),隨機產(chǎn)生200個初始配方。將200個配方數(shù)據(jù)進行標(biāo)準(zhǔn)化處理之后輸入到建立好的支持向量機模型,預(yù)測出相應(yīng)的燃速值。將各配方與燃速對應(yīng),建立大小為200的初始配方庫,以燃速作為目標(biāo)性能進行配方優(yōu)化,使設(shè)計的改性雙基推進劑燃速達到預(yù)定的數(shù)值,并結(jié)合推進劑其他性能對配方進行優(yōu)化,實現(xiàn)新設(shè)計的推進劑配方達到實際應(yīng)用的可行性。需要說明的是,雖然在實際配方設(shè)計中并不是燃速最高為最佳配方,但理論上采用最大燃速進行目標(biāo)巡的可作為方法適應(yīng)性驗證的突破方向。
經(jīng)過對隨機配方數(shù)據(jù)的進一步分析,得到一個顯著的規(guī)律:壓強為2、4、5、6、8、10MPa時,燃速取得最大值所對應(yīng)的配方是同一個配方——配方1;壓強為12、13、14、16、18、19、20、22MPa時,燃速取得最大值所對應(yīng)的配方是另一個相同的配方——配方2。配方1與配方2的具體組成見表1。
表1 統(tǒng)計篩選不同壓強段的最優(yōu)配方Table 1 The optimal formulations at different pressure stages obtained by statistical screening
表2給出了配方1與配方2在不同壓強下的燃速預(yù)測值及已做配方在相應(yīng)壓強下的燃速實驗值的最大值。
表2 統(tǒng)計篩選最優(yōu)配方燃速值Table 2 The burning rate values of the optimal formulations obtained by statistical screening
由表2可以看出,配方1與配方2的燃速預(yù)測值均隨著壓強的增大而增大,同時在相同的壓強條件下,兩個新配方對應(yīng)的各燃速預(yù)測值均比已做配方的燃速實驗值高, 說明這兩個新配方在提升燃速性能方面效果較優(yōu)。
2.1.2 智能算法優(yōu)化
基于統(tǒng)計篩選的方法需要依靠人工進行,且得到的最優(yōu)配方是相對于產(chǎn)生的一定數(shù)量的初始種群而言的,構(gòu)建的初始種群不同,得到的最優(yōu)配方也有所不同。為了解決這些問題,以統(tǒng)計篩選得到的最優(yōu)配方作為前期探索,使用智能優(yōu)化算法進行更合理的配方優(yōu)化。
首先,從智能優(yōu)化方法中挑選出適合本研究的算法。智能優(yōu)化算法大致可以分為9大類:基于進化論、基于種群、基于物理、基于人體行為、基于系統(tǒng)(生態(tài)系統(tǒng)、免疫系統(tǒng)、網(wǎng)絡(luò)系統(tǒng)等)、基于生物學(xué)、基于音樂、基于數(shù)學(xué)和基于概率的算法。目前使用較為廣泛且經(jīng)實驗驗證表現(xiàn)結(jié)果較好的是基于進化論和基于種群的算法,因此分別從基于進化論和基于種群的算法中各挑選兩種方法進行比較?;谶M化論的算法種數(shù)不多,挑選出在以往文獻報道中表現(xiàn)較為良好的遺傳算法和差分進化算法作為代表。而基于種群的算法則個數(shù)繁多,除了常用的粒子群算法,還有近年來新開發(fā)的表現(xiàn)較好的如灰狼優(yōu)化算法、蜂群算法、鯨魚優(yōu)化算法等,且對于不同問題算法表現(xiàn)也各有差異,因此先在基于種群的算法內(nèi)部進行初步的挑選。
先對灰狼優(yōu)化算法、相量粒子群算法、帶慣性權(quán)重的粒子群算法、具有時變加速系數(shù)的自組織分層粒子群算法和鯨魚優(yōu)化算法共6種算法進行參數(shù)優(yōu)化,再對配方優(yōu)化運行結(jié)果進行比較,最終挑選出表現(xiàn)較好的帶慣性權(quán)重的粒子群算法和鯨魚優(yōu)化算法作為基于種群算法的代表。
最后在Python環(huán)境下分別調(diào)用meal_py工具庫中的遺傳算法、差分進化算法、帶慣性權(quán)重的粒子群算法和鯨魚優(yōu)化算法,依次在實驗數(shù)據(jù)中涉及的14個壓強條件下進行配方優(yōu)化,搜索得到每個壓強下的最優(yōu)配方,優(yōu)化結(jié)果比較如圖1所示。
圖1 4種智能算法優(yōu)化結(jié)果比較Fig.1 The comparison of the optimized results of four intelligent algorithms
由圖1可見,差分進化算法在14個壓強下的優(yōu)化結(jié)果都遠(yuǎn)超過其他3種算法,因此最終選擇差分進化算法進行配方智能優(yōu)化。進而將其得到的14個壓強下的優(yōu)化結(jié)果與已做實驗配方和統(tǒng)計篩選方法作比較,如圖2所示。
圖2 智能優(yōu)化與統(tǒng)計優(yōu)化方法的最大燃速值與實驗值的比較Fig.2 The comparison of the maximum burning rates by using the intelligent and statistical optimized methods with experimental data
由圖2可見,統(tǒng)計優(yōu)化和智能優(yōu)化方法得到的優(yōu)化配方其燃速預(yù)測值均較已做實驗配方的燃速實測值高,而差分進化算法優(yōu)化得到燃速預(yù)測值顯著高于統(tǒng)計篩選所得到的,并且智能優(yōu)化方法簡捷方便,只需設(shè)定壓強條件,即可給出直觀的配方與燃速值,免除了統(tǒng)計優(yōu)化過程中人工篩選的勞動過程,工作效率大大提高,進一步體現(xiàn)了機器學(xué)習(xí)方法的優(yōu)越性。表3詳細(xì)給出了差分優(yōu)化算法在14個壓強下的最優(yōu)配方。
表3 差分進化算法在14個壓強下得到的最優(yōu)配方Table 3 The optimal formulations obtained by DE algorithm at 14 pressures
在對改性雙基固體推進劑燃速預(yù)測和配方優(yōu)化進行方法探索和過程完善后,為了使研究成果更直觀、更便于應(yīng)用,建立了一款可以實現(xiàn)推進劑燃速快速預(yù)測和配方優(yōu)化的智能計算軟件。
2.2.1 軟件建立過程
首先借助PyQt5中的Qt designer模塊進行軟件界面設(shè)計,添加輸入框、功能按鈕、輸出顯示框等等,完成界面構(gòu)建后保存為一個ui(用戶界面)文件;接下來使用pyuic5命令將ui格式的文件轉(zhuǎn)換為可以進行代碼編寫的py文件,在Python環(huán)境下,對文件中的代碼進行完善,以實現(xiàn)軟件中各個按鈕的功能;保證代碼無誤后,使用PyInstaller工具將代碼及其所依賴的表格數(shù)據(jù)、預(yù)測模型以及各個模塊工具等資源一起打包到一個可執(zhí)行文件中。運行PyInstaller命令后會生成3個文件夾:dist、build和.spec文件,只需將dist文件夾中的exe程序文件發(fā)給用戶,用戶雙擊程序即可使用。
2.2.2 軟件使用說明
用戶雙擊程序啟動后,會彈出一個黑色的命令行窗口,如果程序運行出錯,黑框中會顯示報錯信息;程序運行成功,黑框中則暫時顯示為空白。啟動程序后,會先在運行該程序的電腦上生成一個臨時文件,將軟件所依賴的資源解壓釋放出來,并在電腦上創(chuàng)建一個臨時的Python環(huán)境,這樣用戶不需要額外安裝Python等工具就可運行軟件,較為方便。軟件界面主要分為3大板塊:數(shù)據(jù)輸入?yún)^(qū)、功能選擇按鈕和結(jié)果顯示區(qū),見圖3。
圖3 軟件界面Fig.3 The software interface
軟件有燃速預(yù)測和配方優(yōu)化兩個功能。在進行燃速預(yù)測時,需輸入各化學(xué)成分比例(應(yīng)為小數(shù),且加和為1)和壓強,點擊燃速預(yù)測按鈕后,軟件調(diào)用訓(xùn)練好的支持向量回歸模型進行燃速預(yù)測,結(jié)果將顯示在最下方的顯示框中,如圖4所示。
圖4 燃速預(yù)測界面Fig.4 The burning rate prediction interface
在使用配方優(yōu)化功能時,只需輸入壓強,軟件則會調(diào)用差分進化算法,以支持向量回歸模型預(yù)測值為目標(biāo)函數(shù),在空間中進行搜索迭代,最終在顯示區(qū)返回搜尋到該壓強下的一組最優(yōu)配方,如圖5所示。
圖5 配方優(yōu)化界面Fig.5 The formulation optimization interface
調(diào)用差分進化算法時,會進行1000次迭代,在命令行窗口中可以看到當(dāng)前迭代次數(shù)及該次迭代的結(jié)果(即該次迭代所搜尋到的燃速最優(yōu)值,窗口顯示的Best fit為該次燃速優(yōu)化值的倒數(shù)),如圖6所示。
圖6 命令行窗口顯示迭代進度Fig.6 The iteration progress displayed in the command line window
如此操作,完成一次預(yù)測或優(yōu)化,若需繼續(xù)進行預(yù)測,則可以將輸入框清空,重新輸入數(shù)據(jù)、點擊功能按鈕即可。
(1)基于構(gòu)建好的支持向量回歸模型,以統(tǒng)計篩選得到的初始優(yōu)化配方作為基礎(chǔ)條件,利用智能優(yōu)化算法得到14組優(yōu)化配方,在相同的壓強條件下,與已做實驗配方相比,其燃速性能提升顯著。智能優(yōu)化算法運行快速且應(yīng)用便捷,良好的優(yōu)化結(jié)果表明了方法的有效性。
(2)將完善后的支持向量回歸模型與差分進化算法整合構(gòu)建成了一套能實現(xiàn)改性雙基固體推進劑燃速快速準(zhǔn)確預(yù)測以及配方智能優(yōu)化設(shè)計的計算機軟件。
致謝:感謝裝發(fā)重點實驗室基金(No. 6142603190305)對本研究的基金支持。