佘兢克,薛時雨,孫培偉,曹樺松
(1.湖南大學 信息科學與工程學院,長沙 410000;2.西安交通大學 核科學與技術(shù)學院,西安 710049)
中國國民經(jīng)濟發(fā)展對于能源的大量需求使得核能的大力發(fā)展成為必然[1]。而在核能領(lǐng)域,電站的運行安全又是重中之重。此前大多數(shù)核電安全控制的研究是關(guān)于反應(yīng)堆安全控制系統(tǒng)對于異常工況的快速響應(yīng)及其性能[2,3],而近年來,核電領(lǐng)域的智能控制開始受到關(guān)注[4],尤其是核電行業(yè)積累的海量歷史數(shù)據(jù)使得機器學習方法在核電安全控制領(lǐng)域的應(yīng)用成為可能。
現(xiàn)行的控制方法都是基于“探測---響應(yīng)”原則,即在探測到異常情況出現(xiàn)后,安全控制系統(tǒng)才會做出判斷和動作。這使得電廠控制系統(tǒng)對于反應(yīng)堆產(chǎn)生的數(shù)據(jù)反饋較慢,無法做到基于數(shù)據(jù)進行實時決策;另一方面,過去傳統(tǒng)的統(tǒng)計學方法也不能夠有效解決核電站異常工況中非線性過程的預(yù)測問題。而近些年來,興起的深度學習能夠通過對海量歷史數(shù)據(jù)的挖掘和分析來掌握各種工況的運行規(guī)律,預(yù)測實時運行工況的走向,將核電的安全控制從“發(fā)生后響應(yīng)”提升為“預(yù)測+提前干預(yù)”。這將極大地增加核電站的安全裕度,從根本上解決以往被動控制所面臨的“異常工況必然出現(xiàn)”的情況。
如今深度學習已經(jīng)在很多領(lǐng)域都取得了顯著成就,例如:計算機視覺、自然語言處理等。其中循環(huán)神經(jīng)網(wǎng)絡(luò)(Recurrent Neural Network,RNN)[5]應(yīng)用在序列型的數(shù)據(jù)上效果十分明顯。本文采用的是傳統(tǒng)循環(huán)神經(jīng)網(wǎng)絡(luò)的變體:長短期記憶(Long Short-Term Memory,LSTM)網(wǎng)絡(luò)[6],該網(wǎng)絡(luò)有效地解決了長時間序列中有效信息的長期依賴問題,對于長期的歷史數(shù)據(jù)的深層特征更加敏感,更容易捕捉隱含在其中的關(guān)鍵信息,尤其在處理核電站海量歷史運行數(shù)據(jù)時更加出色。
Rankin 等人提出使用卡爾曼濾波器的方法來預(yù)測反應(yīng)堆停堆事故[7]??柭鼮V波器是由卡爾曼(Kalman)提出的時變線性系統(tǒng)的遞歸濾波器,由包含正交狀態(tài)變量的微分方程模型來描述。該濾波器通過將過去的測量估計誤差合并到新的測量誤差中來估計將來的誤差。
Rankin 的預(yù)測模型相比于傳統(tǒng)模型提前1s 做出停堆判斷,但是卡爾曼濾波器依賴于數(shù)學模型的精確建立,并且對于線性系統(tǒng)更加有效。面對反應(yīng)堆事故工況中內(nèi)部核心參數(shù)的非線性變化,卡爾曼濾波器的預(yù)測性能受到一定影響。
循環(huán)神經(jīng)網(wǎng)絡(luò)(RNN)是神經(jīng)網(wǎng)絡(luò)的一種,與前饋神經(jīng)網(wǎng)絡(luò)的不同之處在于,RNN 可以利用它內(nèi)部的記憶來處理不同時序長度的輸入序列。但是隨著迭代次數(shù)的增加,RNN 中會出現(xiàn)梯度爆炸或者梯度消失問題[8]。因此,RNN在預(yù)測應(yīng)用上難以捕捉信息在較長時間中的相關(guān)性。
以RNN 作為研究對象的工作中,F(xiàn)ang[9]等人使用兩層隱藏層的傳統(tǒng)RNN 模型來預(yù)測非線性微波電路的電流。由于傳統(tǒng)RNN 的局限性,其模型無法有效提取到記憶單元內(nèi)保存的信息。Zhang[10]等人使用RNN 模型預(yù)測經(jīng)過麥基---格拉斯方程重構(gòu)后的數(shù)據(jù),但是該模型無法處理樣本數(shù)據(jù)大于三維的情況。由此可見,RNN 在處理時序數(shù)據(jù)時,存在一定的局限性。對于核電異常工況這樣具有較長時間序列數(shù)據(jù)集的情況,需要一個比傳統(tǒng)RNN 更理想的預(yù)測模型。
圖 1 LSTM結(jié)構(gòu)Fig. 1 LSTM Structure
1.3.1 LSTM模型
傳統(tǒng)RNN 容易出現(xiàn)梯度消失或者梯度爆炸。LSTM 在此基礎(chǔ)上提出“門”的概念,解決了該問題。LSTM 本質(zhì)上是一種特殊形式的RNN,由一個輸入層、多個隱藏層以及一個輸出層構(gòu)成。LSTM 的關(guān)鍵之處在于它的記憶單元,它包含以下3 個門結(jié)構(gòu):輸入門、遺忘門以及輸出門。這3個門在sigmoid 激活函數(shù)的作用下,會產(chǎn)生介于0 ~1 之間的數(shù)值作為門的開關(guān)。LSTM 單元內(nèi)部結(jié)構(gòu)如圖1 所示。
圖1 中,X 表示原始輸入,?表示矩陣點乘運算,h 表示隱藏狀態(tài),σ 表示sigmoid 函數(shù),C 表示記憶單元。其中,X 與不同的權(quán)重和偏差運算之后分別得到輸入門、輸出門以及遺忘門的實際輸入。記憶單元C 能保存針對長期數(shù)據(jù)的記憶,是LSTM 的關(guān)鍵組成部分。LSTM 中的神經(jīng)元之間為簡單的線性交互,從而在很長一段時間內(nèi)保持信息的穩(wěn)定,使得LSTM 模型能夠在訓練時避免梯度爆炸或消失問題。
1.3.2 RU機制
滾動更新(Rolling Update,RU)是一種數(shù)據(jù)預(yù)處理方法,在時序數(shù)據(jù)處理上使用尤為廣泛。Wang 等人就將RU機制用在了電力的負載預(yù)測上[11]。RU 方法的處理過程如圖2 所示。
其中,表格代表的是原始數(shù)據(jù),初始時間為t-n,窗口大小為i。
假設(shè)預(yù)測模型當前的輸入向量可以被表示為D=[x1, x2,…, xj,…, xi],其中xj是表格中j 時刻的數(shù)據(jù)。如果當前時刻為s 且時間窗口寬度為i,則當前模型的輸入向量為Ds=[xs-i+1, xs-i+2…, xs]。在下一時刻,即s+1 時,此時模型的輸入向量也隨即更新為Ds+1=[xs-i+2, xs-i+3…, xs+1]。同樣的,對數(shù)據(jù)中其它屬性都進行滾動更新操作,保持數(shù)據(jù)的時序性與實時性。
圖2 RU機制Fig.2 Rolling update mechanism
采用RU 方法的依據(jù)是該方法能夠降低模型對參數(shù)預(yù)測的損失值,從而提升預(yù)測準確度。為此,針對RU 方法進行了LSTM 的測試實驗。結(jié)果如表1 所示。
從測試實驗結(jié)果可知,使用RU 之后損失值從0.012 降為0.0003。因此,使用RU 來生成LSTM 模型的輸入向量能夠提升模型預(yù)測的精度。
1.3.3 數(shù)據(jù)歸一化
在深度學習模型中,原始數(shù)據(jù)集往往不能直接作為輸入數(shù)據(jù)。因為當數(shù)據(jù)的數(shù)值太大或者太小時,模型很難通過學習得到數(shù)據(jù)之間的時序相關(guān)性。因此,需要對輸入數(shù)據(jù)進行歸一化處理,即將數(shù)據(jù)按比例縮放,使之落入一個特定區(qū)間,一般為[0, 1]。主流的方法一般有Z-score 和MinMaxScaler。
本文分別采用Z-score 和MinMaxScaler 兩種方法進行對比驗證實驗?;诒疚膶嶒炈枰臄?shù)據(jù)集,對比兩種方法帶來的預(yù)測值與真實值之間的損失值。實驗結(jié)果如表2 所示。
MinMaxScaler 因其更小的損失值被選為本文采用的歸一化函數(shù)。
1.3.4 Dropout方法
當神經(jīng)網(wǎng)絡(luò)模型中參數(shù)很多并且訓練數(shù)據(jù)不足時,測試結(jié)果很容易發(fā)生過擬合現(xiàn)象。針對此問題,Hinton 等人提出了“Dropout”方法以預(yù)防在模型訓練過程中過擬合現(xiàn)象的發(fā)生[12]。其原理是:在每個訓練批次中,隨機使得一定比例的神經(jīng)元失效,從而減少神經(jīng)元之間的相互作用,增強模型的泛化性。
1.3.5 MSE評估標準
均方差(Mean Squared Error,MSE)是數(shù)理統(tǒng)計中描述參數(shù)估計值與參數(shù)真實值之差平方的期望值,是衡量“平均誤差”的一種較為方便的方法。MSE 的值越小,說明預(yù)測模型在描述實驗數(shù)據(jù)時具有更好的精確度。本文在模型測試時,對于每一組數(shù)據(jù)的輸入,使用MSE 計算出真實值與預(yù)測值之間的誤差,作為模型預(yù)測過程中的損失值。
表1 有無RU損失值對比Table 1 Loss comparison with and without RU
表2 不同歸一化函數(shù)損失值比較Table 2 Loss comparison of normalization functions
2.1.1 蒸汽發(fā)生器壓力變化
該數(shù)據(jù)集由反應(yīng)堆內(nèi)蒸汽發(fā)生器壓力讀數(shù)構(gòu)成,一共有172 個冗余傳感器的讀數(shù)。由于傳感器物理位置不同或者其他原因,各傳感器讀數(shù)存在差異,使得數(shù)據(jù)集具備一定的多樣性。其中第30、31、32、33 號傳感器采集的數(shù)據(jù)被用來作為LSTM 模型的訓練輸入,歸一化后如圖3 所示。
2.1.2 小型LOCA事故
該數(shù)據(jù)集由冷卻劑失流事故(Loss of Coolant Accident,LOCA)工況下反應(yīng)堆內(nèi)22 個參數(shù)構(gòu)成,以100s 為步長采樣140 個點。本文選擇其中“穩(wěn)壓器壓力”與“冷卻劑泵出口流量”作為預(yù)測指標。LOCA 工況下,歸一化后的穩(wěn)壓器壓力和冷卻劑泵出口流量如圖4 所示。
圖4(a)和(b)分別表示LOCA 下穩(wěn)壓器壓力讀數(shù)與冷卻劑泵出口流量讀數(shù)。其中LOCA 在第500s 時發(fā)生。
對于蒸汽發(fā)生器壓力變化數(shù)據(jù)以及小型失水事故工況均采用RU 更新原始數(shù)據(jù)。以步長為1 滑動數(shù)據(jù)窗口生成新的數(shù)據(jù),并整合成模型需要的訓練集。
為了優(yōu)化模型,本文的LSTM 網(wǎng)絡(luò)模型設(shè)置為1 個輸入層、2 個隱藏層、1 個輸出層的結(jié)構(gòu)。兩個隱藏層中的LSTM 采用不同的節(jié)點數(shù):第一個隱藏層中LSTM 內(nèi)節(jié)點數(shù)為128,第二個隱藏層中LSTM 內(nèi)節(jié)點數(shù)為64。具體的模型參數(shù)如表3 所示。
圖3 蒸汽發(fā)生器壓力讀數(shù)Fig.3 Normalized SG pressure sensor values
圖4 小破口事故中蒸汽發(fā)生器壓力與冷卻劑泵出口流量讀數(shù)Fig.4 Normalized pressurizer pressure and coolant pump flowrate values
表3 LSTM模參數(shù)Table 3 Parameters of LSTM model
由于Adam 優(yōu)化器[13]在RNN 相關(guān)模型訓練中表現(xiàn)良好[14],本文使用Adam 優(yōu)化器進行LSTM 模型的訓練。誤差函數(shù)選擇MSE,批處理數(shù)量設(shè)置為50,迭代次數(shù)設(shè)置為500。學習率設(shè)置為0.01。本文模型使用Keras 深度學習框架構(gòu)建。
對于蒸汽發(fā)生器壓力變化數(shù)據(jù),本文選取第30、31、32、33 號傳感器數(shù)據(jù)作為訓練數(shù)據(jù),第34、35、36、37號傳感器數(shù)據(jù)作為驗證集。
圖5 蒸汽發(fā)生器壓力變化預(yù)測結(jié)果(RNN)Fig.5 SG Pressure prediction with RNN model
圖7 小破口事故中穩(wěn)壓器壓力預(yù)測結(jié)果Fig.7 The prediction of pressurizer pressure during a small LOCA
對于小型LOCA 數(shù)據(jù),為了測試LSTM 對于存在參數(shù)差異的同一類事故的適應(yīng)情況,本文選取破口大小為7mm的數(shù)據(jù)用作訓練,而選擇破口大小為8mm 的數(shù)據(jù)用作測試。同樣選擇MSE 為評估標準,學習率設(shè)為0.01,迭代次數(shù)設(shè)為500。
針對蒸汽發(fā)生器壓力變化的工況,選擇了傳統(tǒng)RNN 與LSTM 進行工況預(yù)測對比。圖5 為傳統(tǒng)RNN 的預(yù)測結(jié)果,圖6 為LSTM 模型預(yù)測結(jié)果。
從圖5 和圖6 中可以看出,LSTM 模型的預(yù)測值與真實值的吻合度明顯優(yōu)于RNN。該測試中,RNN 模型的預(yù)測損失值為1.343×10-4,比LSTM 模型的預(yù)測損失值3.711×10-6大兩個數(shù)量級。同時從兩個模型各自預(yù)測曲線的對比可以看出,雖然初始階段的極短時間內(nèi)RNN 的預(yù)測效果比LSTM 更精確,但后續(xù)階段RNN 的預(yù)測準確度明顯下降,而LSTM 的預(yù)測結(jié)果與實際值更加吻合。這充分體現(xiàn)了LSTM 在長時間序列預(yù)測中的性能優(yōu)勢。
圖6 蒸汽發(fā)生器壓力變化預(yù)測結(jié)果(LSTM)Fig.6 SG Pressure prediction with LSTM model
圖8 小破口事故中冷卻劑泵出口流量預(yù)測結(jié)果Fig.8 The prediction of coolant pump outlet flowrate during a small LOCA
當反應(yīng)堆正常運行時,LOCA 是不可預(yù)測的。但是可以依據(jù)歷史事故數(shù)據(jù)來預(yù)測跟蹤LOCA 事故后的工況走勢。趨勢預(yù)測的結(jié)果可以讓系統(tǒng)和操作員們有更多的時間對當前事故做出應(yīng)對。在本文使用的數(shù)據(jù)中,LOCA 在第500s時發(fā)生,之后安全控制系統(tǒng)的介入使得工況數(shù)據(jù)回升到一定的穩(wěn)定狀態(tài)。將工況數(shù)據(jù)經(jīng)過數(shù)據(jù)預(yù)處理后,輸入到LSTM 模型之中。預(yù)測結(jié)果如圖7、圖8 所示。
圖7 中,穩(wěn)壓器壓力預(yù)測起始預(yù)測值與真實值存在顯著差異。圖8 中的冷卻劑泵出口流量預(yù)測在異常工況剛開始階段也出現(xiàn)了波動。這是因為在該項測試實驗中,LSTM模型是按照7mm 破口工況數(shù)據(jù)集進行訓練,而測試工況為8mm 破口工況,從而導致最初的欠擬合情況出現(xiàn)。但隨著工況發(fā)展,LSTM 體現(xiàn)出其在時間序列預(yù)測上的優(yōu)勢,及時判斷出當前工況的發(fā)展趨勢,并適應(yīng)了測試數(shù)據(jù)集,預(yù)測結(jié)果也與8mm 破口工況的真實值趨向擬合。且兩個參數(shù)的預(yù)測損失值均在10-3數(shù)量級,屬于較精確的結(jié)果。由此證明:對于同一類型事故工況,即使參數(shù)存在差異,LSTM也能依靠在時間序列預(yù)測上的優(yōu)勢快速適應(yīng)實時工況數(shù)據(jù),進而將預(yù)測結(jié)果逼近實時工況的發(fā)展趨勢,為工況預(yù)測結(jié)果的精度奠定基礎(chǔ)。
本文使用基于LSTM 的深度學習模型對核電站異常運行工況進行預(yù)測。在模型訓練與測試過程中應(yīng)用了滾動更新方法來生成輸入向量以確保預(yù)測結(jié)果的精度。結(jié)果顯示:LSTM 模型在該領(lǐng)域具有切實的可行性,且預(yù)測結(jié)果優(yōu)于傳統(tǒng)的數(shù)理統(tǒng)計方法和傳統(tǒng)的RNN 模型。Rankin 提出的基于卡爾曼濾波器的預(yù)測方法可在1s 前預(yù)測到導致停堆的事故工況的出現(xiàn),而LSTM 模型在理論上可預(yù)測任意長度時間。本文通過實驗證明,在特定案例中使用LSTM 比使用RNN預(yù)測的損失值要小兩個數(shù)量級,達到3.7×10-6。利用同類型LOCA 事故數(shù)據(jù)訓練的LSTM 模型,對于不同參數(shù)的該類事故也能給出滿意的預(yù)測結(jié)果,充分驗證了LSTM 對于事故工況預(yù)測的較強適應(yīng)性以及用于故障診斷的可行性。這證明LSTM 完全可以作為智能時代核電安全控制中對異常工況進行預(yù)測的基本方法之一,其成功應(yīng)用將為核電站在生命周期中優(yōu)化控制算法,為提高控制精度提供有力的技術(shù)支撐。
實驗過程中也發(fā)現(xiàn)了欠擬合情況的存在,說明針對異常工況的LSTM 模型存在繼續(xù)完善的空間。后續(xù)工作將針對當前實驗中出現(xiàn)的問題,完善模型構(gòu)建,實現(xiàn)更高擬合度,并解決基于小樣本數(shù)據(jù)集的預(yù)測問題。
致謝
衷心感謝下列科研項目和單位對本文工作的支持:1)湖南省自然科學基金面上項目“基于預(yù)測控制的核電站快速響應(yīng)與智能控制研究”(2018JJ2057);2)湖南省“湖湘高層次人才聚集工程—創(chuàng)新人才計劃”(2018RS3050);3)國家電力投資集團有限公司中央研究院;4)中廣核研究院有限公司。