遲海龍,汪華強
(1.中國水利水電科學研究院 自動化所,北京 100038;2.北京中水科水電科技開發(fā)有限公司,北京 100038)
目前水電廠都配置有計算機監(jiān)控系統(tǒng),運行人員主要通過監(jiān)控系統(tǒng)的畫面、圖表系統(tǒng)和事件告警系統(tǒng)來了解掌握生產(chǎn)系統(tǒng)的實時運行信息,告警系統(tǒng)作為現(xiàn)代化水電站監(jiān)控系統(tǒng)的重要組成部分,已經(jīng)成為運行人員監(jiān)視系統(tǒng)重要有利的工具。事實上、現(xiàn)代化水電站運行中,對警告系統(tǒng)的依賴程度大大增加。告警系統(tǒng)提供絕大多數(shù)生產(chǎn)系統(tǒng)的實時運行信息。如何讓告警系統(tǒng)快速、準確、高效為運行人員提供生產(chǎn)運行信息,是目前水電站生產(chǎn)智能化的一個重要方向。
通過對某大型電站的告警信息進行分析發(fā)現(xiàn),該電站全廠設備各類型信號由LCU 采集后未作任何判斷處理直接上送至監(jiān)控系統(tǒng)。針對2020 年每日告警一覽表進行統(tǒng)計,發(fā)現(xiàn)全年共產(chǎn)生510 萬條信號,平均每日產(chǎn)生1.4 萬條信號,其中最多的一天產(chǎn)生了6.8 萬條信號。監(jiān)控系統(tǒng)每日告警信號繁多,給運行人員監(jiān)屏工作帶來一定壓力,容易致使運行人員遺漏重要告警信息,存在延誤處理造成事故的風險。目前對測點冗余重復告警和洪水告警有很多傳統(tǒng)的處理策略,例如濾波、延時或閉鎖等技術的采用有效減少告警抖動信息的數(shù)量,具體可參考遲海龍 等[1]相關的詳細討論。
告警到達速率是刻畫告警的一項重要指標,它反映告警發(fā)生的頻率,是告警處理的重要基礎刻畫,告警原則要滿足以下3 點:
(1)體現(xiàn)單位時間內警報信息到達的數(shù)量 ,即在預定義的單位時間內實際到達告警的個數(shù);
(2)體現(xiàn)各個信息之間的間隔長度及間隔分布密度,就是在原則1 相同的情況下要對不同的告警到達間隔疏密不同有所區(qū)分,到達間隔密集的要高于間隔稀疏的,即要考慮告警到達密度分布不均衡的影響 ;
(3)體現(xiàn)時間衰減因子各個間隔影響,就是在原則2 的相同情況下,對到達間隔密度發(fā)生的時間位置要有所區(qū)分,引入該因子是基于告警系統(tǒng)中一般認為時間較長的告警被作為陳舊告警,其信息由于已識別或者時間緊迫周期已過,表述意義沒有最新的告警重要。告警速率的具體定義可以參考相關文獻[2],此文不在贅述。一般過程工業(yè)告警系統(tǒng)的告警達到速率應該不要超過一定的數(shù)值,否則就會給運維人員帶來識別上的壓力和困難。2022 年國家標準GB/T 41261-2022《過程工業(yè)報警系統(tǒng)管理》[3]中對于告警速率有相關的推薦指標要求(表1)。具體實施時可按實際情況進行修正采用。
表1 平均報警率
對于報警系統(tǒng)的噪聲問題國內外監(jiān)控廠家或者學者有過相對充分和系統(tǒng)的研究,通常認為報警中存在的大量無效、低效甚至是錯誤的報警是告警系統(tǒng)的噪聲,這些作為噪聲的報警信息不僅干擾運行人員,有的甚至還會誤導甚至蒙蔽麻痹了操作人員正常的操作能力,繼而引發(fā)事故征候,甚至更大的生產(chǎn)事故。
噪聲報警可能以如下形式存在于系統(tǒng)中:①無效狀態(tài)報警信息。例如設備處于非工作狀態(tài)或非正常狀態(tài)下產(chǎn)生的報警,如機組停機檢修等產(chǎn)生的大量無效報警。②模擬量或者開關量連續(xù)頻繁的抖動或者限制變化產(chǎn)生的低效報警。這些報警信息充斥的大量重復低效的信息導致整個報警系統(tǒng)的有效、關鍵報警信息量過低,容易使操作人員產(chǎn)生疲倦麻痹的不良工作狀態(tài)。③泛洪報警,當整個控制系統(tǒng)處于震蕩或者大規(guī)模狀態(tài)越遷時,系統(tǒng)會產(chǎn)生非常大量的點狀態(tài)和數(shù)值變化。巨量報警信息“涌進”報警系統(tǒng)后,輕則導致系統(tǒng)通道阻塞,信息延遲等,重則可能使整個控制系統(tǒng)癱瘓,操作人員無法正常監(jiān)控生產(chǎn)。
2.2.1 相同分組折疊策略處理
首先對告警的特征進行分析和判定,如果滿足折疊要求就啟動分組聚合策略。該策略就是判斷每個告警之間的特征關聯(lián)信息是否相同,這里告警關聯(lián)信息可以選擇測點的點名或者英文名字,如果相同則進行聚合。核心思想就是去除告警中相同冗余的部分,通過提取公共部分的方法將相同的重復告警“折疊”成一條復合告警信息,復合告警信息可以體現(xiàn)出告警復合的數(shù)目,同時也將差異部分進行降維度的壓縮顯示。這樣可以最大限度消除重復信息。同時由于聚合操作中對任意告警都沒有丟棄,所以整個折疊壓縮過程信息是無損的。
圖1 告警折疊版面示意圖
2.2.2 相似分組折疊的方法
相似分組折疊的策略與相同折疊策略大致相似,只是在折疊中的折疊依據(jù)從相同的關鍵信息改為相似的一組測點信息。這里首先要計算每個告警之間的特征關聯(lián)距離和屬性相似度,相同相近的進行聚合。 但聚類算法由于計算指標公式比較復雜且計算復雜度較高,在實際應用中有性能瓶頸。所以可以通過預先認為設定或者相似測點頻繁集算法來定義一簇測點族。相同族內的信息折疊一條信息,信息樹的根節(jié)點信息為族內重要代表測點信息。例如系統(tǒng)在開關機組等控制過程中可能會產(chǎn)生各個相關設備動作及各種油氣水參數(shù)變化等信息。這些信息可以定義為以開機過程為中心的一組測點群,通過相關測點分組方式折疊為一條開機信息告警。這樣告警面板中信息簡明扼要,可有效減少人員工作強度。
在方案中設置了規(guī)則分析引擎、規(guī)則數(shù)據(jù)庫、告警面板、規(guī)則配置等模塊 。規(guī)則分析引擎中又包括規(guī)則分析和規(guī)則棧,總體方案見圖2。
圖2 智能告警總體架構框圖
當原始告警信息到達后首先要進入到規(guī)則分析引擎中 ,規(guī)則引擎首先提取出告警信息中的規(guī)則關鍵信息點,然后用得到的關鍵信息到規(guī)則數(shù)據(jù)庫中查找已有的規(guī)則信息,當查到后需要將查到的規(guī)則壓入規(guī)則棧中,原始告警到達規(guī)則分析引擎后,經(jīng)過一簇規(guī)則序列處理后得到結論告警信息發(fā)送給告警面板或沒有相關處理規(guī)則的時候,告警信息需按原樣發(fā)送給告警面板。每個原始告警到達告警協(xié)議棧時都要經(jīng)過協(xié)議棧中所有規(guī)則處理后決定其下一步處理方式 ,這樣原始告警的生數(shù)據(jù)信息經(jīng)過處理后變成了人為更容易識別的熟數(shù)據(jù)。規(guī)則配置模塊為人為配置信息輸入窗口,系統(tǒng)啟動后會自動裝載預設的規(guī)則信息。
規(guī)則引擎是由一系列規(guī)則構成的規(guī)則鏈。而構成規(guī)則鏈的規(guī)則則可以分為條件和動作兩個部分。其基本的語法描述為: “ RULE parmeters WHEN conditions THEN acttions END ; ”其中“RULE”“WHEN” “THEN” “END”是構成 描述規(guī)則的基本框架的保留字?!癢HEN”及 “conditions”構成了條件體,而“THEN actions”構成了告警評審體。當規(guī)則中的條件體滿足時就會執(zhí)行評審體中的命令。
當規(guī)則壓入規(guī)則棧后,規(guī)則引擎就會在每個原始告警信息到達后,對信息進行順次分析處理。規(guī)則在規(guī)則棧中是以鏈式的方式進行存儲的,告警信息會通過每個規(guī)則的審查,如果該規(guī)則對該條告警信息適用則對其進行分析處理,處理的結果有如下3 種情況(圖3):
圖3 規(guī)則棧工作原理圖
(1)適用該規(guī)則且滿足該時序規(guī)則的預設條件子模式,則在處理過程中對告警進行緩存并“吞掉”該信息。直道最后一個模式結束的告警信息到達,規(guī)則會發(fā)出結論告警信息到面板;
(2)使用該規(guī)則且不滿足該時序規(guī)則的預設子模式時,則將之前緩存吞掉的告警信息釋掉,一并“吐出”,并給出該規(guī)則不滿足的具體原因,發(fā)送到面板;
(3)不適用該規(guī)則,則順次進入到規(guī)則鏈中的下一個規(guī)則處理中,直到找到使用的時序規(guī)則并處理之,或者如果規(guī)則棧中沒有任何適用的規(guī)則,則該告警會保持原始狀態(tài)發(fā)送至面板。
對于規(guī)則引擎來說每一條告警信息可被認為是一個事實(fact),工作中,每條事實告警都要順序的通過規(guī)則鏈中的各個規(guī)則,并被之評審(review)。當事實滿足規(guī)則的評審要求時,規(guī)則可能會對告警事實進行相關評審工作,比如修改告警的某些參數(shù)(等級、內容等)甚至丟棄或者刪除。當一個事實告警被某條規(guī)則評審修改后滿足后續(xù)告警的規(guī)則會重新被評審進而發(fā)生連鎖式的修改。這種鏈條遞進式的修改被稱之為規(guī)則引擎的推導,通過推導可以讓規(guī)則引擎對告警進行強大分析和處理,產(chǎn)生進一步故障溯源的衍生和次生高級告警信息。這種推導有利于我們對告警進行更進一步高階處理。
傳統(tǒng)告警瀏覽器中過濾操作一般通過按鈕和開關等方式實現(xiàn),這種方式雖然簡單易用但也存在著邏輯表達能力弱,過濾效率和準確度不高及過濾條件不可隨心定制等問題。本方案中增加了邏輯表達式方式描述過濾條件的、更高效的過濾方式。
過濾條件的定義:過濾條件可以采用邏輯操作符(與或非)進行連接??刹捎脗鹘y(tǒng)的關系運算判斷和邏輯操作等嵌套定義更準確、更深層的過濾條件。例如可查詢等級為2 且告警已經(jīng)確認的告警,可輸入條件為:“alarm-level>2 & alarm-aked:1” 。 這里的條件由兩部邏輯體構成,前者為關系運算(大于),可定義查找范圍,后者‘:’為等于運算,可精確定義數(shù)值,最后由邏輯‘與’操作鏈接構成。過濾條件里除了采用常用關系運算外還設計了 “in”、 “match”等高級的集合操作命令,‘in’ 可以進行集合范圍內查找,‘match ’可以使用功能更強大的正則表達式過濾,如“alrm_name match r‘.*SXLCU01.*‘”表示參數(shù)“alarmname”中包含“SXLCU01”的所有告警 。
過濾條件的糾錯、自動補齊、保存:為了方便用戶的使用,在過濾條件窗口里設計了條件糾錯和自動補齊功能。當用戶輸入一個告警條件的表達式一部分時,系統(tǒng)會自動給出可能的后續(xù)命令字串提示,幫助用戶快速準確地完成過濾條件編寫。同時當輸入的命令語法或拼寫有錯誤時輸入框會變?yōu)榧t色并在底部的提示框給出錯誤信息和修改建議。為了便于用戶對過濾條件的重復使用,系統(tǒng)設計了將已經(jīng)定義好的過濾條件進行備注保存,用戶可在未來操作中通過快捷菜單快速定位并重復使用已有條件。
為了減少告警的數(shù)量,可以通過定義規(guī)則對原始告警進行評審處理。動態(tài)屏蔽的基本思路為:當一條告警事實進入到規(guī)則鏈中的一條規(guī)則時,首先判斷條件體是否滿足,如果滿足就轉入到評審體工作中。屏蔽審計設計了如下幾種操作命令:
(1)接受:告警通過評審并原狀進入展示模塊中;
(2)丟棄:告警被丟棄,不再被用戶查看到;
(3)重定向:告警可以重定向到自定義的展示列表中進行分類展示;
(4)刪除:相同測點的告警信息將被刪掉,只保留最新的一條告警信息;
(5)告警參數(shù)設定:對告警事實進行參數(shù)的修改,如修改告警等級、告警測點的狀態(tài)等,并按需進行全系統(tǒng)的測點信息同步。
傳統(tǒng)的報警系統(tǒng)對每個事件告警信息點的處理是分立進行的,即每個信息點之間是沒有任何規(guī)則處理的,但實際生產(chǎn)系統(tǒng)中,很多信息點其實有著內在統(tǒng)一的聯(lián)系,一簇事件信息往往和某個設備的某種工況一一對應。這些事件群通常都是按照內在邏輯關系和空間、時間關系以固定的模式順序發(fā)生。這種事件群可稱之為時序報警信息。
時序綜合報警會以一種或多種的固定順序,順次發(fā)生或事件到達。為了討論方便,把每一事件點用單個字母替代,例如‘a(chǎn)’事件可能對應的是“開機命令下達”,‘b’事件可以是“PLC 命令收到”。這樣就可以把按照時間先后順序到達的事件描述為‘a(chǎn)b$’,其中‘$’符號代表這一模式的結束,所以每個順序的事件告警都可以對應一個預定義的字串。同樣地,每個字串也代表了某種順序發(fā)生事件鏈[4]。
按照前述規(guī)則字串與事件對應關系,為了更好描述順序規(guī)則,引入計算機系統(tǒng)中對字串有著更強表達能力的正則表達式(Regular Expression)來描述。正則表達式可以描述順序的乃至周期循環(huán)的各種事件的信息。該方法可以表達分支(或)循環(huán)、某個子模式的重復等信息。具體語法描述可以從相關互聯(lián)網(wǎng)在線文檔中獲得。
舉例來說,如圖4 所示正則表達為“kc(z|j)+d$”,每個字母的代表含義如圖4 左邊的表格所示,這里代表的含義為先發(fā)生‘k’事件之后是‘c’,后面的括號代表的是一個子模式的整體。括號里面有兩個事件,‘z’和‘j’事件是或的關系‘|’,即出現(xiàn)‘z’和‘j’其中之一,括號后面的加號代表這個子模式會重復一次或多次(大于等于1 次)也就是“zjzj”, “zzz”,“jjj”……這些子串都是滿足的。最后以‘d’事件結束整個時序規(guī)則。反映到具體事件信息上就是‘命令下達’后緊隨‘命令收到’,后面就是若干次的‘增磁’或者‘減磁’動作,最后以命令到位結束本次順序事件過程。如果事件順序滿足這個規(guī)則則報告一條綜合信息‘命令執(zhí)行成功’,如果不滿足此規(guī)則會給出不滿足規(guī)則的具體原因。
圖4 時序告警正則狀態(tài)轉換圖
由上述所示的基本時序規(guī)則可以演化出多種與時序相關的規(guī)則,如等價點規(guī)則和多點聯(lián)合規(guī)則等。等價點規(guī)則也稱對偶點規(guī)則,就是兩個測點總是對偶相伴出現(xiàn),例如開關站斷路器的兩個觸點“合閘動作”和“分閘復歸”等,這時可以定義等價點規(guī)則將兩個告警綜合為一個告警“斷路器動作”,從而減少告警數(shù)量并更加準確表達設備變化情況。對點聯(lián)合規(guī)則定義為:當一組測點動作但是動作的先后時間順序并不固定,這時可以將這一組動作測點的告警信息綜合為一條聯(lián)合告警信息。典型場景為:一組泵設備的動作,如1 號水泵2 號水泵3 號水泵在一起啟動時??赡艹霈F(xiàn)1 號、2 號、3 號,2 號、3 號、1號…等不同順序的告警序列,可用該規(guī)則識別此種告警的序列并綜合為“XXX 泵組啟動”等告警信息。
當時序規(guī)則發(fā)現(xiàn)并注意到事件沒有按照預設的模式發(fā)生時,智能規(guī)則系統(tǒng)會啟動異常分析機制并把分析的結果報告出來,從某例中我們可以看到該次順序時序事件缺少d,即缺少“調節(jié)到位動作”標識信號異常時候報警信息,同樣地分析人員可以從事件信息點名中看出這是一個時序規(guī)則綜合報警信息,并且從信息內容可以看到本次事件集合出現(xiàn)問題,時序規(guī)則沒有滿足并且不滿足的原因是該規(guī)則所期待的“調節(jié)到位動作”這一事件沒有如期望那樣到達。或者5.3 章節(jié)中聯(lián)合點規(guī)則異常時可報告諸如“2 號泵設備啟動未發(fā)現(xiàn)”等異常信息。通常來說,異常事件的信息等級要比正常事件等級更高,更需引起運行人員的注意。該綜合信息可以及時給運行人員傳達重要且準確的異常溯源的信息。方便人員對生產(chǎn)過程中的異常給與足夠的重視并及時的糾正、解決問題[5]。
本文針對目前很多水電站都面臨的告警數(shù)量日益增多問題,提出并開發(fā)了告警智能化的分析和收斂策略。該策略里通過折疊相似告警的方式可提高版面資源的利用率,降低索引難度;通過規(guī)則引擎的告警評審策略可進一步屏蔽無效告警,還可從告警關聯(lián)內在語義上進行綜合分析收斂,提高告警表達的準確度,從而解決大中型水電站控制中心及水電遠程控制中心目前所面臨的部分困擾。未來還可對事件的各項參數(shù)進行進一步的統(tǒng)計分析,并基于統(tǒng)計數(shù)據(jù)研究模擬量動態(tài)智能閾值參數(shù)設定的策略和動態(tài)告警等級劃分等工作,更為有效地降低告警系統(tǒng)對運維監(jiān)盤的壓力,為企業(yè)“降本增效”的既定戰(zhàn)略助力賦能。