倪小峰,曹 斌
(1 貴州大學(xué) 大數(shù)據(jù)與信息工程學(xué)院,貴陽 550025;2 中鋁智能科技發(fā)展有限公司,杭州 310000)
隨著現(xiàn)代信息化水平和大數(shù)據(jù)相關(guān)技術(shù)的發(fā)展,“數(shù)化世界,萬物互聯(lián)”已成為時代發(fā)展的必然趨勢[1]。在鋁電解工藝中,電解流程中產(chǎn)生的各種參數(shù)并不都是能夠?qū)崟r監(jiān)控的。因此,從已知的參數(shù)中發(fā)現(xiàn)數(shù)據(jù)之間的關(guān)聯(lián)關(guān)系及規(guī)律,進(jìn)行動態(tài)分析及預(yù)測成為極其重要和亟待解決的問題。
鋁電解槽由槽體、陽極以及陰極構(gòu)成。熔鹽電解槽在高溫、強(qiáng)腐蝕的環(huán)境中工作,在炭素體陽極發(fā)生氧化反應(yīng),陰極發(fā)生還原反應(yīng)產(chǎn)出鋁液[2],積存于電解底部,車間操作人員定期出鋁,鑄造成鋁產(chǎn)品。鋁電解生產(chǎn)是一個多變量耦合、大延遲以及非線性工藝生產(chǎn)過程。維持電解過程的兩大平衡(能量和物料平衡),是保障其生產(chǎn)高效穩(wěn)定運(yùn)行的關(guān)鍵因素。然而,鋁電解的兩大平衡受多種因素、指標(biāo)的共同影響,耦合關(guān)系復(fù)雜,對氧化鋁添加量和出鋁量的正確決策是維持兩大平衡,保證經(jīng)濟(jì)效益最直接、有效地途徑[3-4]。本文將鋁電解工藝生產(chǎn)過程中所產(chǎn)生的各種參數(shù)進(jìn)行分析,利用歷史生產(chǎn)數(shù)據(jù),將特征選擇得到的強(qiáng)特征作為MLP 神經(jīng)網(wǎng)絡(luò)的輸入,出鋁量作為輸出對網(wǎng)絡(luò)進(jìn)行訓(xùn)練,通過訓(xùn)練、測試和驗證,最后得出一個預(yù)測模型,為一線工作人員提供槽作業(yè)的指導(dǎo)作用。
數(shù)據(jù)預(yù)處理是實驗的前提,包括了數(shù)據(jù)的缺失值處理、規(guī)一化處理、特征選擇等內(nèi)容。對于鋁電解工業(yè),影響其生產(chǎn)過程的參數(shù)眾多,而且各個槽控系統(tǒng)參數(shù)之間存在著極其復(fù)雜的關(guān)聯(lián)關(guān)系。如:電解槽工作電壓、氧化鋁下料量、氟化鋁下料量、電解質(zhì)水平、鋁水平、分子比等多達(dá)十幾項指標(biāo),若其中任何一個發(fā)生變化,都可能導(dǎo)致其它參數(shù)隨之發(fā)生相應(yīng)的變化。所以為了使實驗結(jié)果具有可靠性,數(shù)據(jù)特征處理至關(guān)重要,需根據(jù)步驟依次進(jìn)行。
本次實驗數(shù)據(jù)來源于中鋁集團(tuán)貴州某鋁廠槽控機(jī)系統(tǒng)監(jiān)控的實時數(shù)據(jù)和人工采集的每日真實鋁電解槽生產(chǎn)數(shù)據(jù)。每個電解槽的相關(guān)參數(shù)包括鐵含量、硅含量、電解質(zhì)水平以及鋁水平等,總計10 維2 000多條特征數(shù)據(jù)。通過所采集的數(shù)據(jù)進(jìn)行觀察,分子比和氧化鋁濃度數(shù)據(jù)缺失過多,因此后續(xù)實驗和分析不考慮這兩個參數(shù)。之后,再利用XGBoost[5]機(jī)器學(xué)習(xí)算法將剩余參數(shù)進(jìn)行重要性排序。
實驗數(shù)據(jù)集有10 個參數(shù),并且各個參數(shù)指標(biāo)的數(shù)據(jù)量級有著非常明顯的差異。如:每天出鋁量的平均值達(dá)到了2 850 kg,而鐵含量、硅含量、噪聲和氟化鋁下料量等數(shù)據(jù)的量級則比較小。考慮到實驗數(shù)據(jù)在數(shù)量上存在著比較大的偏差,必須對實驗數(shù)據(jù)進(jìn)行標(biāo)準(zhǔn)化處理。本文采用的是Z-score 標(biāo)準(zhǔn)化。
利用Python 中自帶的“.describe()”函數(shù),可以從原始數(shù)據(jù)組中提取標(biāo)準(zhǔn)差和均值。將數(shù)據(jù)處理為符合正態(tài)分布的數(shù)據(jù)集,其平均值為0,標(biāo)準(zhǔn)差為1。這樣做有利于減小因數(shù)據(jù)差異太大而導(dǎo)致的結(jié)果誤差。轉(zhuǎn)化函數(shù)為:
其中,μ表示各個參數(shù)的均值,σ代表相關(guān)參數(shù)標(biāo)準(zhǔn)差。
Pearson 相關(guān)系數(shù)用于衡量兩個變量之間的變化趨勢的方向及程度[6],計算表達(dá)式如下:
式中,μ為實驗數(shù)據(jù)集的均值;σxy為參數(shù)x與y之間的協(xié)方差;r∈[-1,1]。通過r值的大小可以判斷相關(guān)參數(shù)之間的相關(guān)性強(qiáng)弱。若任意兩個參數(shù)之間的相關(guān)系數(shù)大于0,說明兩個參數(shù)是正相關(guān)關(guān)系,當(dāng)兩個參數(shù)的相關(guān)系數(shù)小于0 時,說明兩個參數(shù)呈負(fù)相關(guān)狀態(tài)??偟膩碚f,r的絕對值越大,表示兩個參數(shù)之間的相關(guān)性越強(qiáng)。
Pearson 相關(guān)系數(shù)熱力圖如圖1 所示,F(xiàn)e含量與Si含量呈正相關(guān),鋁水平與電解質(zhì)水平呈正相關(guān),氧化鋁下料量與出鋁量呈正相關(guān)。在鋁電解過程中需要保證鋁水平和電解質(zhì)水平保持在一定范圍內(nèi),才能保證電解槽處于穩(wěn)定狀態(tài),以達(dá)到最佳的電解反應(yīng),獲得最優(yōu)的實際出鋁量。
圖1 相關(guān)系數(shù)熱力圖Fig.1 Heat map of correlation coefficient
MLP 神經(jīng)網(wǎng)絡(luò)的基本運(yùn)算單元是神經(jīng)元[7],如圖2 所示,x1、x2、…、xn為神經(jīng)元的輸入,y為神經(jīng)元的輸出。顯然,不同的輸入對神經(jīng)元的作用是不同的,因此用權(quán)值w1、w2、…、wn來表示影響程度的不同。神經(jīng)元內(nèi)部由兩部分組成;第一步是把所有的參數(shù)進(jìn)行求和,第二步負(fù)責(zé)對第一步的結(jié)果求和,最后“激活”求和結(jié)果,得到最終該神經(jīng)網(wǎng)絡(luò)的輸出結(jié)果。
圖2 神經(jīng)元模型Fig.2 Neuron model
加權(quán)求和公式如下:
式中,b為偏移量,該偏移量也可以定義為輸入恒為1 的權(quán)值w0,即權(quán)值也包括偏移量,因此上式可以改寫為:
且x0≡1,激活公式為:y =f(μ),f(.)稱為激活函數(shù)。
多層感知器模型(Multi-Layer Perceptron,MLP)是人工神經(jīng)網(wǎng)絡(luò)模型中的一種,由一個輸入層、一個或多個隱含層、一個輸出層組成,能夠描述一組輸入變量到輸出變量之間復(fù)雜的映射[8]。本文設(shè)計的模型中,影響出鋁量的參數(shù)信息通過神經(jīng)網(wǎng)絡(luò)的輸入節(jié)點進(jìn)入,輸入的數(shù)據(jù)參數(shù)信息及一系列復(fù)雜處理、加工通過輸出層和隱含層,借助權(quán)值w完成。同時對數(shù)據(jù)進(jìn)行反向傳播自動更新權(quán)值和閾值,然后尋找整個過程的最優(yōu)解,最終出鋁預(yù)測值量由搭建模型的輸出節(jié)點得到,實現(xiàn)從歷史經(jīng)驗數(shù)據(jù)來預(yù)測出鋁量的模型。
通過觀察操控系統(tǒng)各個相關(guān)參數(shù)的工藝曲線變化情況,輸入?yún)?shù)的選取必須是對出鋁量有著重要影響的。通過實地考察、查閱鋁電解的相關(guān)資料以及查看歷史生產(chǎn)相關(guān)參數(shù),分析得到電解質(zhì)水平是鋁電解槽的重要技術(shù)參數(shù)。電解質(zhì)水平應(yīng)該保持一定的高度,太高和太低都不利于電解的進(jìn)行,電解質(zhì)太高容易發(fā)生陰極的使用率,減低和降低電流效率,電解質(zhì)太低導(dǎo)致電解槽發(fā)熱,穩(wěn)定性差,最終會對出鋁量產(chǎn)生重大影響。鋁水平過高或者過低都會引起電解槽溫度不穩(wěn)定,從而影響電解過程導(dǎo)致出鋁不能達(dá)到最優(yōu)。另外,氧化鋁下料量也直接影響著氧化鋁的濃度,氧化鋁的濃度過高或過低都會導(dǎo)致電流工作效率不穩(wěn)定;Fe含量和Si含量也會影響電流的工作效率;工作電壓波動會引起電解槽的穩(wěn)定,工作電壓如果出現(xiàn)急速上升或者下降會導(dǎo)致電解槽的溫度不穩(wěn)定和電解過程的不穩(wěn)定,最終影響出鋁量。
綜合工藝專家經(jīng)驗、數(shù)據(jù)的相關(guān)性分析結(jié)果以及電解車間里技術(shù)人員經(jīng)驗分析,最后選擇電解槽噪聲(Norse)、工作電壓(Work.V)、電解質(zhì)水平(Bath.L)、鋁水平(AL.L)、氧化鋁下料量(ALO)、氟化鋁下料量(ALF.Q)、電解質(zhì)溫度(Bath.T)、鐵含量(Fe)和硅含量(Si)作為神經(jīng)網(wǎng)絡(luò)的輸入?yún)?shù),選擇實際出鋁量(Act.Tap)作為輸出結(jié)果。
在搭建神經(jīng)網(wǎng)絡(luò)時最重要的一點是神經(jīng)元個數(shù)和網(wǎng)絡(luò)參數(shù)的選擇,兩者之間有著密切的聯(lián)系。神經(jīng)網(wǎng)絡(luò)如果能夠確保隱含層有著足夠多的神經(jīng)元,所搭建的神經(jīng)網(wǎng)絡(luò)模型就可以實現(xiàn)復(fù)雜度較大的映射。在實際工業(yè)生產(chǎn)中,隱含神經(jīng)元個數(shù)一般是通過試錯法來進(jìn)行調(diào)整的。MLP 網(wǎng)絡(luò)的搭建包括一個或多個隱含層,而神經(jīng)元個數(shù)需要根據(jù)公式(5)來確定,然后不斷進(jìn)行試錯調(diào)整,直到最終找到最優(yōu)參數(shù)為止。
式中,b為神經(jīng)元個數(shù),a為輸入節(jié)點數(shù)。
經(jīng)過反復(fù)實驗及對結(jié)果的分析,出鋁量預(yù)測模型輸入?yún)?shù)是通過Python 中自帶的相關(guān)分析函數(shù)“DataFrame.corr()”而得。其計算出參數(shù)之間的相關(guān)度,并且把相關(guān)度從高低排序后,選取相關(guān)度高的參數(shù)作為模型的輸入?yún)?shù)。最終確定神經(jīng)網(wǎng)絡(luò)模型的輸入層為9 個輸入變量、隱含層有17 個神經(jīng)元,輸出層為電解槽實際的出鋁量;激活函數(shù)為Sigmoid,表達(dá)式如下;
本次實驗在Tensorflow[9]的環(huán)境下使用Python語言編寫程序[9],并在CPU2.50 GHz、內(nèi)存4 Gb、Windows10 操作系統(tǒng)的計算機(jī)上進(jìn)行電解槽出鋁量預(yù)測實驗。該實驗采用貴州某鋁廠350KA 系列電解槽的歷史數(shù)據(jù),表1 中展示了部分?jǐn)?shù)據(jù)集;工作電壓(Work.V)、噪聲(Norse)、氟化鋁下料量(ALF.Q)、氧化鋁下料量(ALO)、電解質(zhì)溫度(Bath.T)、電解質(zhì)水平(Bath.L)、鋁水平(AL.L)、鐵含量(Fe)和硅含量(Si)作為神經(jīng)網(wǎng)絡(luò)的輸入?yún)?shù),實際出鋁量(Act.Tap)為預(yù)測結(jié)果。MLP 神經(jīng)網(wǎng)絡(luò)的實驗步驟如下:
表1 數(shù)據(jù)集部分樣本Tab.1 Data set partial sample
Step 1輸入和輸出的數(shù)據(jù)集Z-score 標(biāo)準(zhǔn)化處理。
Step 2數(shù)據(jù)集進(jìn)行隨機(jī)劃分,將20%的數(shù)據(jù)作為測試集,80%的數(shù)據(jù)集作為訓(xùn)練模型的訓(xùn)練集。最后再選取60 天的數(shù)據(jù)對MLP 模型預(yù)測效果進(jìn)行驗證。
Step 3使用搭建好的神經(jīng)網(wǎng)絡(luò)模型對訓(xùn)練集的輸入和輸出參數(shù)進(jìn)行訓(xùn)練。
Step 4使用MLP 出鋁量預(yù)測模型對測試集的輸入?yún)?shù)進(jìn)行預(yù)測。
Step 5將預(yù)測值與真實值進(jìn)行反歸一化處理,得出MAE(平均絕對誤差),最后再畫出預(yù)測值和實際值之間曲線對比圖進(jìn)行分析。MAE計算公式如下:
式中:n、yi、分別代表測試集數(shù)據(jù)數(shù)量、第i行真實值和第i行預(yù)測值。
損失函數(shù)衰減過程如圖3 所示。訓(xùn)練集數(shù)據(jù)在迭代25 次之后,測試集的損失函數(shù)穩(wěn)定在5.0~7.5左右。
圖3 損失函數(shù)衰減圖Fig.3 Attenuation diagram of loss function
使用測試集數(shù)據(jù)進(jìn)行出鋁量預(yù)測時,將測試數(shù)據(jù)集各相關(guān)參數(shù)通過神經(jīng)網(wǎng)絡(luò)模型得到預(yù)測值曲線,然后再與每日出鋁量實際值曲線進(jìn)行比較擬合,如圖4 所示。通過比對兩條曲線的變化趨勢,出鋁量的平均絕對誤差MAE =35.8,該誤差均在鋁電解工業(yè)誤差允許范圍之內(nèi),MLP 神經(jīng)網(wǎng)絡(luò)對鋁電解生產(chǎn)過程中所產(chǎn)生的歷史數(shù)據(jù)進(jìn)行擬合回歸后,該模型利用經(jīng)驗數(shù)據(jù)中所含有的規(guī)律完成對數(shù)據(jù)的學(xué)習(xí)訓(xùn)練,然后在一定誤差范圍內(nèi)作出出鋁量的預(yù)測。
圖4 預(yù)測值和測試值曲線圖Fig.4 Predicted and tested value curves
本文利用tensorflow 機(jī)器學(xué)習(xí)框架,結(jié)合Python編程語言搭建了鋁電解槽的出鋁預(yù)測模型。針對貴州某鋁廠350KA 一產(chǎn)區(qū)某電解槽的生產(chǎn)歷史數(shù)據(jù)進(jìn)行數(shù)據(jù)預(yù)處理,從鋁電解工藝生產(chǎn)過程中產(chǎn)生的一系列參數(shù)中,篩選出9 個主要參數(shù),用搭建的神經(jīng)網(wǎng)絡(luò)對電解槽的出鋁量進(jìn)行預(yù)測。通過多次輸入不同時期的數(shù)據(jù)得到神經(jīng)網(wǎng)絡(luò)預(yù)測的值和實際的出鋁量對比驗證了該模型的可行性。在實際生產(chǎn)過程中,將該模型應(yīng)用到鋁電解的生產(chǎn)分析中,不僅對操作人員進(jìn)行槽作業(yè)時有一定的指導(dǎo)作用,而且減少了電解原料的損失。實驗證明,該模型在鋁電解工業(yè)上有一定的參考價值,算法具有一定的實用性。