王夢月,李鳴謙,萬 欣
(1.中國核電工程有限公司,北京 100080;2.華北電力大學控制與計算機工程學院,北京 102200)
電站需要監視的參數多達上萬點,報警信號之間的潛在關聯復雜,固定閾值報警的限值范圍難以覆蓋所有情況,機組在正常運行和故障運行中的特征難以被分辨,運行人員判斷難度大[1]。尤其是在大范圍異常工況時,幾十甚至上百個報警同時出現,即使熟練的進行人員也難以及時、準確地識別報警的擾動源。目前,核電站全廠分布式控制系統(distributed control system,DCS)的報警功能只是將參數的超限信息羅列出來,缺乏主動分析診斷的能力,通常仍需由運行人員按照運行規程或報警卡,根據報警、參數偏差、安全動作等信息作綜合分析后,才能確認故障原因并采取相應措施。其工作量大、難度高、實時性差,存在由于運行人員操作不當或操作不及時而導致設備損壞,甚至引發事故產生與擴大的風險。因此,亟需引入先進的預警和診斷技術,為運行人員提供更加快速、完備的故障處理判據。
現代工業的過程控制中廣泛應用的智能預警和診斷技術,可以實現對生產過程中關鍵對象的狀態變化進行連續監測。當故障或事故發生時,該技術可以自動報警并判斷發生何種故障,快速定位擾動源,使運行人員能夠及時、準確地采取合理、有效的措施,從而排除故障或避免事故。
對于不同行業、不同對象、不同故障類型,由于特性和判據不盡相同,預警和診斷的方法也不同。設備級的故障診斷研究成果包括基于神經網絡、深度學習等技術的傳感器故障診斷[2]、機械設備故障診斷[3-4]等。系統級的故障診斷理論和方法研究成果包括基于深度學習、故障樹等技術的控制系統故障診斷[5]、事故預測及故障診斷方法[1]、決策支持系統[6]等。其中,針對核電站相關的故障診斷技術還在探索階段,尚未成熟應用。
本文對核電站故障預警和診斷的具體功能需求展開分析,結合核電站監控對象的特征以及不同智能算法的特點和應用場景,提出了適用于核電站的智能故障預警與診斷方案。
根據不同的故障診斷判據和人員及人工智能認知方式劃分,本文將針對以下三種情況對核電站的故障預警和診斷進行功能需求分析。
①依靠報警快速判斷的故障。對于喪失電源、喪失熱阱、喪失壓縮空氣、放射性屏障破裂等事故,通常可以通過某一個或某幾個報警信號直接判斷該事故是否發生。當報警觸發時,仍需要運行人員根據報警卡逐項排查才能確定事故原因。對于此類事故,需要利用人工智能技術輔助運行人員快速、準確地進行故障診斷。
②儀表通道故障。通常可以根據同一參數冗余測點之間的數值關系判斷儀表是否故障,并用冗余儀表的測量值代替故障儀表的測量值。但受經濟性和安裝布置等因素限制,并不是所有參數都具備設置冗余測點的條件。對于冗余程度不足的測點,需要利用人工智能技術為其構建冗余測量模型,以實現儀表通道故障預警。
③需綜合分析判斷的故障。在核電站緊急停堆或安注信號觸發后,機組的熱工水力模型會產生較大波動,相關參數的變化規律復雜且互相關聯。此時,無法直接通過報警信號判斷事故,需要結合由事故所引起的多個參數的變化量及其變化趨勢,經運行人員綜合分析后,才能對事故作出判斷。如蒸汽管道/給水管道破裂、蒸汽發生器傳熱管破裂、一回路冷卻劑喪失、喪失全部給水等。對于此類事故,需要利用人工智能技術為其建立故障預警模型,從而實現故障預警功能。
核電站智能故障預警和診斷總體方案涉及的核心算法主要有卷積神經網絡(convolutional neural network,CNN)、堆疊自編碼(stacked auto-encoder,SAE)網絡、故障樹分析(fault tree analysis,FTA)等。核電站智能故障預警和診斷總體方案如圖1所示。

圖1 總體方案Fig.1 General scheme
故障預警是指依靠報警信號和其他參數綜合分析,在事故發生不明顯、影響范圍小、程度輕的初期發出故障警報,以避免事故的發生。核電站物理對象往往是非線性、強耦合、隨機性極強的,因此基于模型的預警技術在實際應用中受到限制。隨著計算機技術和智能儀表的發展和應用,核電站生產過程中的重要參數能夠以更高的采樣頻率、更高的精度被獲取。大量存儲的歷史運行數據中蘊含了系統不同狀態下的特性,因此可采用基于數據驅動的預警技術。
在基于數據驅動的預警技術中,淺層的機器學習算法,如支持向量機、K近鄰算法以及反向傳播神經網絡在小樣本數據、單一工況的故障預警實踐中有較好的表現[2-3]。然而,在面對大數據樣本、噪聲信號覆蓋力強、變工況等復雜情況時,淺層網絡的特征提取能力不足,預警的精度難以達到較高水平[4]。深度學習算法在這方面則更具優勢,如CNN和SAE網絡。CNN在二維圖像識別領域體現出優秀的自學習能力和特征提取能力,有應用于故障預警的潛力。CNN在船舶微小故障研究[4]、電機軸承振動信號故障診斷[7]中已有較好應用。SAE網絡作為一種無監督學習算法,對數據的要求更低。現場數據往往是無標簽的。SAE網絡能充分挖掘這些數據的深度特征,在缺乏故障樣本的預警方面體現出明顯優勢[8]。SAE網絡自學習輸入數據的特征,使輸出盡可能接近輸入,也就是SAE網絡能夠提取輸入信息中的本質特征。在缺乏故障數據的情況下,使用SAE網絡模型學習正常特征也是一種預警思路。因此,本文選用CNN和SAE網絡進行故障預警,對于難以用智能算法建模的故障采用結合趨勢分析的閾值預警的方法。對于儀表通道故障,本文采用冗余值比較算法實現故障預警,在冗余度不足的情況下優先采用SAE網絡構建冗余測量模型。
故障診斷技術[5,9]包括基于解析模型、基于信號處理與基于人工智能三類。基于解析模型的方法(如基于觀測器、基于濾波器、等價空間和集員估計等)與故障預警所面臨的困境相似,其建模精度難以滿足需求。基于信號處理的方法(如小波分析和經驗模態分解等)具有易于實現、動態實時性好的優點,但對潛在的故障診斷準確性不高。此外,在數據量巨大的情況下,基于信號處理的方法工作量大、診斷效率不高。基于人工智能的方法可分為基于知識、神經網絡、定型模型和數據挖掘。其中,基于知識和神經網絡是人工智能故障診斷技術的重要分支。其基本思路分別是:將待診斷領域長期的實踐經驗和大量故障信息轉化為計算機適用的規則知識庫,模仿專家的推理方式設置推理規則,結合實時數據與生成的規則知識庫進行分析和推理,推算出故障的原因、程度和位置等;使用歷史數據訓練分類器,通過對比實際值與分類結果之間的差異特性檢測故障。由于核電站安全程度高、故障數據樣本不充足,若使用神經網絡可能會面臨數據分布不平衡的問題,導致模型性能難以得到保證。基于知識的診斷方法更加穩定、可靠,可以將核電站已有的診斷規程、專家經驗等轉化為計算機能識別的語言,建立智能化、自動化的故障診斷知識庫。因此,本文選用基于知識的FTA[6]來實現故障診斷。
針對前文所述“需綜合分析判斷的故障”,本研究方案設計基于SAE網絡的故障預警、基于CNN的故障預警、結合趨勢分析的閾值預警三個功能模塊。基于SAE網絡的故障預警模塊應用于缺少故障數據的對象。基于CNN的故障預警模塊應用于故障數據充足的對象。結合趨勢分析的閾值預警用于參數的閾值預警。針對前文所述“儀表通道故障”,本研究方案設計儀表通道故障預警模塊。
3.1.1 基于SAE網絡的故障預警模塊
①確定用于SAE網絡建模的輸入/輸出變量。
核電站各系統一般都具備明確的物理結構,可以根據各系統的輸入/輸出關系,確定對預警參數有明顯影響的相關變量。其中,某些預警變量的影響因子較多,還可能包含一些冗余量,由其產生的大量歷史數據會增加神經網絡模型訓練負擔,影響模型精度。因此,本研究方案采用神經網絡靈敏性分析法對輸入數據進行篩選,選擇有代表性的典型類型數據用于SAE網絡的模型訓練。
②歷史數據采集及預處理。
仿真機模擬運行各個工況,獲得全面覆蓋各工況的正常運行數據,保證數據采集過程具有足夠的遍歷性。對所采集的數據進行離群點剔除、空值位置判斷和缺失值填補(樣條插值法)等數據預處理操作。
③SAE網絡模型訓練。
采集到的樣本被分為訓練集和測試集,以提升模型的泛化性。其中,訓練集的樣本用于訓練,根據系統輸入/輸出變量個數以及系統復雜度,調整深度神經網絡模型的隱藏層層數、節點數、權重、學習率、訓練代數等參數,通過前向傳播和反向傳播進行反復訓練以優化網絡參數,直至SAE網絡訓練模型收斂。測試集的輸入變量被送入訓練好的模型中,以比較模型預測值與測試集中的輸出值。當誤差滿足要求,則完成訓練;否則,重復模型訓練過程。
④預警模型測試。
訓練完成后得到的SAE網絡預警模型,學習到的是各個工況下相關變量在正常運行狀態下的特性。將仿真機中相關變量的實時值作為模型的輸入,并由模型輸出該變量的預測值,對預測值與實際值進行相似度分析。若輸入模型的變量處于正常狀態,則模型預測值與實際值相似度較高,在可信區間內。若輸入模型的變量處于故障狀態,由于模型并未學到故障特性,模型預測值與實際值相似度較低。當相似度不屬于可信區間時,模型發出故障預警。
3.1.2 基于CNN的故障預警模塊
①確定用于CNN建模的輸入/輸出變量。
針對不同的系統,在建立故障預警模型前需要根據實際情況確定模型的輸入變量。本研究方案主要借助專家經驗及相關性理論,選擇有代表性的典型參數作為故障預警模型的輸入變量。
②歷史數據采集及預處理。
歷史數據采集及預處理流程同3.1.1節。
③CNN模型訓練。
本文基于仿真機模擬機組運行過程產生的正常工況和故障工況數據,依據故障敏感性選取相關參數作為故障預警模型的輸入,采用端到端的一維CNN[7]構建故障預警模型。該模型能夠將數據預處理、特征提取和故障識別三大功能整合到一個模型中,支持多傳感器、多通道的輸入數據。
采集到的數據被劃分為訓練集和測試集,以提高模型的泛化性。其中,訓練集的樣本用于訓練網絡模型,根據系統輸入/輸出變量的個數及系統復雜度,調整CNN模型的卷積核尺寸、數目、權值、學習率、丟棄率、訓練代數等參數來訓練模型,直至模型收斂。將測試集數據輸入到訓練好的模型中,直到模型收斂時完成訓練;否則,重復模型訓練過程。
④預警模型測試。
CNN預警模型訓練完成后,將輸入變量實時值輸入模型,預警模型判斷系統的實時狀態,直接輸出預警結果。
3.1.3 結合趨勢分析的閾值預警模塊
仿真機模擬運行各個工況,采集各工況下的運行數據,歷史數據采集及預處理流程同3.1.1節。根據不同類型的報警閾值,如正常值、上限值、下限值,結合趨勢分析結果,如上升、下降、持平或周期變化,判斷當前參數是否有越過報警閾值的趨勢,并輸出預警結果。
3.1.4 儀表通道故障預警模塊
冗余程度不同的測點采用不同的方法進行故障預警。對于單一儀表的測點,本研究方案采用SAE網絡建模的方法計算出預測值,將預測值與實際值進行相似度分析。對于雙冗余測點,本研究方案采用SAE網絡建模構造第三個冗余儀表值,再進行冗余值比較。對于多冗余測點,本研究方案直接通過冗余值比較完成故障預警。
①基于冗余值比較的儀表通道故障預警。
對于含有三個及以上儀表的多冗余測點,由仿真機模擬各個工況運行,采集多冗余儀表的檢測數據,采用冗余值比較算法對比各儀表的信號周期與信號幅值。當某一儀表所測得的信號與其他儀表所測得信號在周期或幅值上的差異超過報警閾值時,預警模型發出報警,以實現儀表通道的故障預警。
②基于SAE網絡的儀表通道故障預警。
對于單一儀表的參數X,結合工藝流程和專家知識,篩選出A、B、…、N這幾個與X相關性強的參數作為輸入,按照3.1.1節所介紹的方法建立SAE網絡預警模型并進行訓練。將仿真機中的實時數據送入SAE網絡預警模型,將模型輸出的預測值與實際值進行相似度分析。當相似度不屬于可信區間時,預警模型發出報警信號,實現儀表通道的故障預警。
對于雙冗余的儀表,通過人為構建第三個冗余儀表進行冗余值比較,完成儀表通道的故障預警。構建冗余儀表的方式與處理單一儀表測點的方法類似,對于參數X,結合工藝流程和專家知識,篩選出A、B、…、N這幾個與X1、X2相關性強的參數作為輸入,建立SAE預警模型。模型訓練好之后,能計算出參數X1、X2的預測值X與X1、X2構成冗余,并進行冗余值比較。當三者之中的任一數值在周期或幅值上的差異超過報警閾值時則發出報警,實現儀表通道的故障預警。
針對前文所述的依靠報警快速判斷的故障,本研究方案設計故障診斷模塊。將核電站的報警邏輯、操作規程、運行經驗等信息進行篩選分析后形成專家知識庫,將其中的專家知識用程序語言描述,梳理相關邏輯關系并轉換為故障樹模型。故障診斷模塊采用樹搜索的方法,根據觸發的故障歷史數據,按照故障樹模式逐層搜索故障原因,確定故障根源[10],并顯示故障處理方法,從而輔助決策。
本文根據核電站故障預警和診斷的功能需求,針對不同的應用場景,設計了基于SAE網絡的故障預警模塊、基于CNN的故障預警模塊、結合趨勢分析的閾值預警模塊、儀表通道故障預警模塊和故障診斷模塊這五個功能模塊,并提出了各功能模塊的詳細設計方案。本方案為核電站智能故障預警和診斷系統的開發提供技術支持,將推進核電行業的智能化發展。后續將按照本文提出的方案,基于核電站仿真平臺完成系統開發并投入測試,進一步對本方案進行驗證和完善。