王夢月,李鳴謙,萬 欣
(1.中國核電工程有限公司,北京 100080;2.華北電力大學(xué)控制與計算機(jī)工程學(xué)院,北京 102200)
電站需要監(jiān)視的參數(shù)多達(dá)上萬點(diǎn),報警信號之間的潛在關(guān)聯(lián)復(fù)雜,固定閾值報警的限值范圍難以覆蓋所有情況,機(jī)組在正常運(yùn)行和故障運(yùn)行中的特征難以被分辨,運(yùn)行人員判斷難度大[1]。尤其是在大范圍異常工況時,幾十甚至上百個報警同時出現(xiàn),即使熟練的進(jìn)行人員也難以及時、準(zhǔn)確地識別報警的擾動源。目前,核電站全廠分布式控制系統(tǒng)(distributed control system,DCS)的報警功能只是將參數(shù)的超限信息羅列出來,缺乏主動分析診斷的能力,通常仍需由運(yùn)行人員按照運(yùn)行規(guī)程或報警卡,根據(jù)報警、參數(shù)偏差、安全動作等信息作綜合分析后,才能確認(rèn)故障原因并采取相應(yīng)措施。其工作量大、難度高、實(shí)時性差,存在由于運(yùn)行人員操作不當(dāng)或操作不及時而導(dǎo)致設(shè)備損壞,甚至引發(fā)事故產(chǎn)生與擴(kuò)大的風(fēng)險。因此,亟需引入先進(jìn)的預(yù)警和診斷技術(shù),為運(yùn)行人員提供更加快速、完備的故障處理判據(jù)。
現(xiàn)代工業(yè)的過程控制中廣泛應(yīng)用的智能預(yù)警和診斷技術(shù),可以實(shí)現(xiàn)對生產(chǎn)過程中關(guān)鍵對象的狀態(tài)變化進(jìn)行連續(xù)監(jiān)測。當(dāng)故障或事故發(fā)生時,該技術(shù)可以自動報警并判斷發(fā)生何種故障,快速定位擾動源,使運(yùn)行人員能夠及時、準(zhǔn)確地采取合理、有效的措施,從而排除故障或避免事故。
對于不同行業(yè)、不同對象、不同故障類型,由于特性和判據(jù)不盡相同,預(yù)警和診斷的方法也不同。設(shè)備級的故障診斷研究成果包括基于神經(jīng)網(wǎng)絡(luò)、深度學(xué)習(xí)等技術(shù)的傳感器故障診斷[2]、機(jī)械設(shè)備故障診斷[3-4]等。系統(tǒng)級的故障診斷理論和方法研究成果包括基于深度學(xué)習(xí)、故障樹等技術(shù)的控制系統(tǒng)故障診斷[5]、事故預(yù)測及故障診斷方法[1]、決策支持系統(tǒng)[6]等。其中,針對核電站相關(guān)的故障診斷技術(shù)還在探索階段,尚未成熟應(yīng)用。
本文對核電站故障預(yù)警和診斷的具體功能需求展開分析,結(jié)合核電站監(jiān)控對象的特征以及不同智能算法的特點(diǎn)和應(yīng)用場景,提出了適用于核電站的智能故障預(yù)警與診斷方案。
根據(jù)不同的故障診斷判據(jù)和人員及人工智能認(rèn)知方式劃分,本文將針對以下三種情況對核電站的故障預(yù)警和診斷進(jìn)行功能需求分析。
①依靠報警快速判斷的故障。對于喪失電源、喪失熱阱、喪失壓縮空氣、放射性屏障破裂等事故,通常可以通過某一個或某幾個報警信號直接判斷該事故是否發(fā)生。當(dāng)報警觸發(fā)時,仍需要運(yùn)行人員根據(jù)報警卡逐項排查才能確定事故原因。對于此類事故,需要利用人工智能技術(shù)輔助運(yùn)行人員快速、準(zhǔn)確地進(jìn)行故障診斷。
②儀表通道故障。通??梢愿鶕?jù)同一參數(shù)冗余測點(diǎn)之間的數(shù)值關(guān)系判斷儀表是否故障,并用冗余儀表的測量值代替故障儀表的測量值。但受經(jīng)濟(jì)性和安裝布置等因素限制,并不是所有參數(shù)都具備設(shè)置冗余測點(diǎn)的條件。對于冗余程度不足的測點(diǎn),需要利用人工智能技術(shù)為其構(gòu)建冗余測量模型,以實(shí)現(xiàn)儀表通道故障預(yù)警。
③需綜合分析判斷的故障。在核電站緊急停堆或安注信號觸發(fā)后,機(jī)組的熱工水力模型會產(chǎn)生較大波動,相關(guān)參數(shù)的變化規(guī)律復(fù)雜且互相關(guān)聯(lián)。此時,無法直接通過報警信號判斷事故,需要結(jié)合由事故所引起的多個參數(shù)的變化量及其變化趨勢,經(jīng)運(yùn)行人員綜合分析后,才能對事故作出判斷。如蒸汽管道/給水管道破裂、蒸汽發(fā)生器傳熱管破裂、一回路冷卻劑喪失、喪失全部給水等。對于此類事故,需要利用人工智能技術(shù)為其建立故障預(yù)警模型,從而實(shí)現(xiàn)故障預(yù)警功能。
核電站智能故障預(yù)警和診斷總體方案涉及的核心算法主要有卷積神經(jīng)網(wǎng)絡(luò)(convolutional neural network,CNN)、堆疊自編碼(stacked auto-encoder,SAE)網(wǎng)絡(luò)、故障樹分析(fault tree analysis,FTA)等。核電站智能故障預(yù)警和診斷總體方案如圖1所示。
圖1 總體方案Fig.1 General scheme
故障預(yù)警是指依靠報警信號和其他參數(shù)綜合分析,在事故發(fā)生不明顯、影響范圍小、程度輕的初期發(fā)出故障警報,以避免事故的發(fā)生。核電站物理對象往往是非線性、強(qiáng)耦合、隨機(jī)性極強(qiáng)的,因此基于模型的預(yù)警技術(shù)在實(shí)際應(yīng)用中受到限制。隨著計算機(jī)技術(shù)和智能儀表的發(fā)展和應(yīng)用,核電站生產(chǎn)過程中的重要參數(shù)能夠以更高的采樣頻率、更高的精度被獲取。大量存儲的歷史運(yùn)行數(shù)據(jù)中蘊(yùn)含了系統(tǒng)不同狀態(tài)下的特性,因此可采用基于數(shù)據(jù)驅(qū)動的預(yù)警技術(shù)。
在基于數(shù)據(jù)驅(qū)動的預(yù)警技術(shù)中,淺層的機(jī)器學(xué)習(xí)算法,如支持向量機(jī)、K近鄰算法以及反向傳播神經(jīng)網(wǎng)絡(luò)在小樣本數(shù)據(jù)、單一工況的故障預(yù)警實(shí)踐中有較好的表現(xiàn)[2-3]。然而,在面對大數(shù)據(jù)樣本、噪聲信號覆蓋力強(qiáng)、變工況等復(fù)雜情況時,淺層網(wǎng)絡(luò)的特征提取能力不足,預(yù)警的精度難以達(dá)到較高水平[4]。深度學(xué)習(xí)算法在這方面則更具優(yōu)勢,如CNN和SAE網(wǎng)絡(luò)。CNN在二維圖像識別領(lǐng)域體現(xiàn)出優(yōu)秀的自學(xué)習(xí)能力和特征提取能力,有應(yīng)用于故障預(yù)警的潛力。CNN在船舶微小故障研究[4]、電機(jī)軸承振動信號故障診斷[7]中已有較好應(yīng)用。SAE網(wǎng)絡(luò)作為一種無監(jiān)督學(xué)習(xí)算法,對數(shù)據(jù)的要求更低?,F(xiàn)場數(shù)據(jù)往往是無標(biāo)簽的。SAE網(wǎng)絡(luò)能充分挖掘這些數(shù)據(jù)的深度特征,在缺乏故障樣本的預(yù)警方面體現(xiàn)出明顯優(yōu)勢[8]。SAE網(wǎng)絡(luò)自學(xué)習(xí)輸入數(shù)據(jù)的特征,使輸出盡可能接近輸入,也就是SAE網(wǎng)絡(luò)能夠提取輸入信息中的本質(zhì)特征。在缺乏故障數(shù)據(jù)的情況下,使用SAE網(wǎng)絡(luò)模型學(xué)習(xí)正常特征也是一種預(yù)警思路。因此,本文選用CNN和SAE網(wǎng)絡(luò)進(jìn)行故障預(yù)警,對于難以用智能算法建模的故障采用結(jié)合趨勢分析的閾值預(yù)警的方法。對于儀表通道故障,本文采用冗余值比較算法實(shí)現(xiàn)故障預(yù)警,在冗余度不足的情況下優(yōu)先采用SAE網(wǎng)絡(luò)構(gòu)建冗余測量模型。
故障診斷技術(shù)[5,9]包括基于解析模型、基于信號處理與基于人工智能三類?;诮馕瞿P偷姆椒?如基于觀測器、基于濾波器、等價空間和集員估計等)與故障預(yù)警所面臨的困境相似,其建模精度難以滿足需求。基于信號處理的方法(如小波分析和經(jīng)驗(yàn)?zāi)B(tài)分解等)具有易于實(shí)現(xiàn)、動態(tài)實(shí)時性好的優(yōu)點(diǎn),但對潛在的故障診斷準(zhǔn)確性不高。此外,在數(shù)據(jù)量巨大的情況下,基于信號處理的方法工作量大、診斷效率不高?;谌斯ぶ悄艿姆椒煞譃榛谥R、神經(jīng)網(wǎng)絡(luò)、定型模型和數(shù)據(jù)挖掘。其中,基于知識和神經(jīng)網(wǎng)絡(luò)是人工智能故障診斷技術(shù)的重要分支。其基本思路分別是:將待診斷領(lǐng)域長期的實(shí)踐經(jīng)驗(yàn)和大量故障信息轉(zhuǎn)化為計算機(jī)適用的規(guī)則知識庫,模仿專家的推理方式設(shè)置推理規(guī)則,結(jié)合實(shí)時數(shù)據(jù)與生成的規(guī)則知識庫進(jìn)行分析和推理,推算出故障的原因、程度和位置等;使用歷史數(shù)據(jù)訓(xùn)練分類器,通過對比實(shí)際值與分類結(jié)果之間的差異特性檢測故障。由于核電站安全程度高、故障數(shù)據(jù)樣本不充足,若使用神經(jīng)網(wǎng)絡(luò)可能會面臨數(shù)據(jù)分布不平衡的問題,導(dǎo)致模型性能難以得到保證。基于知識的診斷方法更加穩(wěn)定、可靠,可以將核電站已有的診斷規(guī)程、專家經(jīng)驗(yàn)等轉(zhuǎn)化為計算機(jī)能識別的語言,建立智能化、自動化的故障診斷知識庫。因此,本文選用基于知識的FTA[6]來實(shí)現(xiàn)故障診斷。
針對前文所述“需綜合分析判斷的故障”,本研究方案設(shè)計基于SAE網(wǎng)絡(luò)的故障預(yù)警、基于CNN的故障預(yù)警、結(jié)合趨勢分析的閾值預(yù)警三個功能模塊。基于SAE網(wǎng)絡(luò)的故障預(yù)警模塊應(yīng)用于缺少故障數(shù)據(jù)的對象?;贑NN的故障預(yù)警模塊應(yīng)用于故障數(shù)據(jù)充足的對象。結(jié)合趨勢分析的閾值預(yù)警用于參數(shù)的閾值預(yù)警。針對前文所述“儀表通道故障”,本研究方案設(shè)計儀表通道故障預(yù)警模塊。
3.1.1 基于SAE網(wǎng)絡(luò)的故障預(yù)警模塊
①確定用于SAE網(wǎng)絡(luò)建模的輸入/輸出變量。
核電站各系統(tǒng)一般都具備明確的物理結(jié)構(gòu),可以根據(jù)各系統(tǒng)的輸入/輸出關(guān)系,確定對預(yù)警參數(shù)有明顯影響的相關(guān)變量。其中,某些預(yù)警變量的影響因子較多,還可能包含一些冗余量,由其產(chǎn)生的大量歷史數(shù)據(jù)會增加神經(jīng)網(wǎng)絡(luò)模型訓(xùn)練負(fù)擔(dān),影響模型精度。因此,本研究方案采用神經(jīng)網(wǎng)絡(luò)靈敏性分析法對輸入數(shù)據(jù)進(jìn)行篩選,選擇有代表性的典型類型數(shù)據(jù)用于SAE網(wǎng)絡(luò)的模型訓(xùn)練。
②歷史數(shù)據(jù)采集及預(yù)處理。
仿真機(jī)模擬運(yùn)行各個工況,獲得全面覆蓋各工況的正常運(yùn)行數(shù)據(jù),保證數(shù)據(jù)采集過程具有足夠的遍歷性。對所采集的數(shù)據(jù)進(jìn)行離群點(diǎn)剔除、空值位置判斷和缺失值填補(bǔ)(樣條插值法)等數(shù)據(jù)預(yù)處理操作。
③SAE網(wǎng)絡(luò)模型訓(xùn)練。
采集到的樣本被分為訓(xùn)練集和測試集,以提升模型的泛化性。其中,訓(xùn)練集的樣本用于訓(xùn)練,根據(jù)系統(tǒng)輸入/輸出變量個數(shù)以及系統(tǒng)復(fù)雜度,調(diào)整深度神經(jīng)網(wǎng)絡(luò)模型的隱藏層層數(shù)、節(jié)點(diǎn)數(shù)、權(quán)重、學(xué)習(xí)率、訓(xùn)練代數(shù)等參數(shù),通過前向傳播和反向傳播進(jìn)行反復(fù)訓(xùn)練以優(yōu)化網(wǎng)絡(luò)參數(shù),直至SAE網(wǎng)絡(luò)訓(xùn)練模型收斂。測試集的輸入變量被送入訓(xùn)練好的模型中,以比較模型預(yù)測值與測試集中的輸出值。當(dāng)誤差滿足要求,則完成訓(xùn)練;否則,重復(fù)模型訓(xùn)練過程。
④預(yù)警模型測試。
訓(xùn)練完成后得到的SAE網(wǎng)絡(luò)預(yù)警模型,學(xué)習(xí)到的是各個工況下相關(guān)變量在正常運(yùn)行狀態(tài)下的特性。將仿真機(jī)中相關(guān)變量的實(shí)時值作為模型的輸入,并由模型輸出該變量的預(yù)測值,對預(yù)測值與實(shí)際值進(jìn)行相似度分析。若輸入模型的變量處于正常狀態(tài),則模型預(yù)測值與實(shí)際值相似度較高,在可信區(qū)間內(nèi)。若輸入模型的變量處于故障狀態(tài),由于模型并未學(xué)到故障特性,模型預(yù)測值與實(shí)際值相似度較低。當(dāng)相似度不屬于可信區(qū)間時,模型發(fā)出故障預(yù)警。
3.1.2 基于CNN的故障預(yù)警模塊
①確定用于CNN建模的輸入/輸出變量。
針對不同的系統(tǒng),在建立故障預(yù)警模型前需要根據(jù)實(shí)際情況確定模型的輸入變量。本研究方案主要借助專家經(jīng)驗(yàn)及相關(guān)性理論,選擇有代表性的典型參數(shù)作為故障預(yù)警模型的輸入變量。
②歷史數(shù)據(jù)采集及預(yù)處理。
歷史數(shù)據(jù)采集及預(yù)處理流程同3.1.1節(jié)。
③CNN模型訓(xùn)練。
本文基于仿真機(jī)模擬機(jī)組運(yùn)行過程產(chǎn)生的正常工況和故障工況數(shù)據(jù),依據(jù)故障敏感性選取相關(guān)參數(shù)作為故障預(yù)警模型的輸入,采用端到端的一維CNN[7]構(gòu)建故障預(yù)警模型。該模型能夠?qū)?shù)據(jù)預(yù)處理、特征提取和故障識別三大功能整合到一個模型中,支持多傳感器、多通道的輸入數(shù)據(jù)。
采集到的數(shù)據(jù)被劃分為訓(xùn)練集和測試集,以提高模型的泛化性。其中,訓(xùn)練集的樣本用于訓(xùn)練網(wǎng)絡(luò)模型,根據(jù)系統(tǒng)輸入/輸出變量的個數(shù)及系統(tǒng)復(fù)雜度,調(diào)整CNN模型的卷積核尺寸、數(shù)目、權(quán)值、學(xué)習(xí)率、丟棄率、訓(xùn)練代數(shù)等參數(shù)來訓(xùn)練模型,直至模型收斂。將測試集數(shù)據(jù)輸入到訓(xùn)練好的模型中,直到模型收斂時完成訓(xùn)練;否則,重復(fù)模型訓(xùn)練過程。
④預(yù)警模型測試。
CNN預(yù)警模型訓(xùn)練完成后,將輸入變量實(shí)時值輸入模型,預(yù)警模型判斷系統(tǒng)的實(shí)時狀態(tài),直接輸出預(yù)警結(jié)果。
3.1.3 結(jié)合趨勢分析的閾值預(yù)警模塊
仿真機(jī)模擬運(yùn)行各個工況,采集各工況下的運(yùn)行數(shù)據(jù),歷史數(shù)據(jù)采集及預(yù)處理流程同3.1.1節(jié)。根據(jù)不同類型的報警閾值,如正常值、上限值、下限值,結(jié)合趨勢分析結(jié)果,如上升、下降、持平或周期變化,判斷當(dāng)前參數(shù)是否有越過報警閾值的趨勢,并輸出預(yù)警結(jié)果。
3.1.4 儀表通道故障預(yù)警模塊
冗余程度不同的測點(diǎn)采用不同的方法進(jìn)行故障預(yù)警。對于單一儀表的測點(diǎn),本研究方案采用SAE網(wǎng)絡(luò)建模的方法計算出預(yù)測值,將預(yù)測值與實(shí)際值進(jìn)行相似度分析。對于雙冗余測點(diǎn),本研究方案采用SAE網(wǎng)絡(luò)建模構(gòu)造第三個冗余儀表值,再進(jìn)行冗余值比較。對于多冗余測點(diǎn),本研究方案直接通過冗余值比較完成故障預(yù)警。
①基于冗余值比較的儀表通道故障預(yù)警。
對于含有三個及以上儀表的多冗余測點(diǎn),由仿真機(jī)模擬各個工況運(yùn)行,采集多冗余儀表的檢測數(shù)據(jù),采用冗余值比較算法對比各儀表的信號周期與信號幅值。當(dāng)某一儀表所測得的信號與其他儀表所測得信號在周期或幅值上的差異超過報警閾值時,預(yù)警模型發(fā)出報警,以實(shí)現(xiàn)儀表通道的故障預(yù)警。
②基于SAE網(wǎng)絡(luò)的儀表通道故障預(yù)警。
對于單一儀表的參數(shù)X,結(jié)合工藝流程和專家知識,篩選出A、B、…、N這幾個與X相關(guān)性強(qiáng)的參數(shù)作為輸入,按照3.1.1節(jié)所介紹的方法建立SAE網(wǎng)絡(luò)預(yù)警模型并進(jìn)行訓(xùn)練。將仿真機(jī)中的實(shí)時數(shù)據(jù)送入SAE網(wǎng)絡(luò)預(yù)警模型,將模型輸出的預(yù)測值與實(shí)際值進(jìn)行相似度分析。當(dāng)相似度不屬于可信區(qū)間時,預(yù)警模型發(fā)出報警信號,實(shí)現(xiàn)儀表通道的故障預(yù)警。
對于雙冗余的儀表,通過人為構(gòu)建第三個冗余儀表進(jìn)行冗余值比較,完成儀表通道的故障預(yù)警。構(gòu)建冗余儀表的方式與處理單一儀表測點(diǎn)的方法類似,對于參數(shù)X,結(jié)合工藝流程和專家知識,篩選出A、B、…、N這幾個與X1、X2相關(guān)性強(qiáng)的參數(shù)作為輸入,建立SAE預(yù)警模型。模型訓(xùn)練好之后,能計算出參數(shù)X1、X2的預(yù)測值X與X1、X2構(gòu)成冗余,并進(jìn)行冗余值比較。當(dāng)三者之中的任一數(shù)值在周期或幅值上的差異超過報警閾值時則發(fā)出報警,實(shí)現(xiàn)儀表通道的故障預(yù)警。
針對前文所述的依靠報警快速判斷的故障,本研究方案設(shè)計故障診斷模塊。將核電站的報警邏輯、操作規(guī)程、運(yùn)行經(jīng)驗(yàn)等信息進(jìn)行篩選分析后形成專家知識庫,將其中的專家知識用程序語言描述,梳理相關(guān)邏輯關(guān)系并轉(zhuǎn)換為故障樹模型。故障診斷模塊采用樹搜索的方法,根據(jù)觸發(fā)的故障歷史數(shù)據(jù),按照故障樹模式逐層搜索故障原因,確定故障根源[10],并顯示故障處理方法,從而輔助決策。
本文根據(jù)核電站故障預(yù)警和診斷的功能需求,針對不同的應(yīng)用場景,設(shè)計了基于SAE網(wǎng)絡(luò)的故障預(yù)警模塊、基于CNN的故障預(yù)警模塊、結(jié)合趨勢分析的閾值預(yù)警模塊、儀表通道故障預(yù)警模塊和故障診斷模塊這五個功能模塊,并提出了各功能模塊的詳細(xì)設(shè)計方案。本方案為核電站智能故障預(yù)警和診斷系統(tǒng)的開發(fā)提供技術(shù)支持,將推進(jìn)核電行業(yè)的智能化發(fā)展。后續(xù)將按照本文提出的方案,基于核電站仿真平臺完成系統(tǒng)開發(fā)并投入測試,進(jìn)一步對本方案進(jìn)行驗(yàn)證和完善。