張雪,王德建.2,關國偉.2
(1.中國石油集團安全環保技術研究院有限公司,北京 102206;2.中國石油渤海石油裝備制造有限公司,天津 300272)
我們對一些煉化企業的控制系統報警情況做了調研,圖1是從某企業生產現場采集的渣油加氫裝置“報警事件與操作事件對比圖”。淺灰色代表為報警事件,深灰色代表為操作事件。可以看出,同一時間段內大量的報警事件只對應了少量的操作事件,這就說明操作人員對大部分報警并沒有響應動作,因此大量報警都可能是風險等級不高的報警或無效的報警。隨著過程工業自動化、智能化水平的提高,DCS、PLC、FCS等廣泛應用,工藝報警的設置變得越來越容易,由于過程系統的復雜性和報警系統設計的不合理,產生了大量甚至無效的報警,這些報警信息對生產安全運行產生了重大影響。

圖1 報警事件與操作事件對比圖
信息挖掘的本質是大數據的挖掘,通過訓練大量數據樣本,得到數據對象彼此之間的內在關聯和特征,并以此為依據提取目標信息,隨著計算機和人工智能的快速發展,信息挖掘與深度學習、機器學習、混合現實等多個領域的理論和技術進行了充分的融合。目前,國內外學者主要研究數據挖掘中的分類、優化、識別、預測等技術在眾多領域中的應用技術。而對于石油化工行業來說,大數據時代的來臨既是機遇又是挑戰,生產裝置規模越大數據規模就越大,對其進行挖掘分析所能得到的價值就越大。用于信息挖掘的算法主要包括關聯規則法、決策樹法、神經網絡法和遺傳算法等。
關聯規則法利用交易數據、關系數據或其他信息載體,分析、挖掘和查找存在于項目集合或對象集合之間的頻繁模式、關聯、相關性或因果結構關系。Apriori算法是挖掘關聯規則的基本算法,也是最著名的關聯分析算法。但Apriori算法在較大數據集上需要花費大量的運算開銷從而造成性能低下,而FP-growth卻不會有這個問題,FPgrowth可以從源數據中挖掘出滿足最小支持度和最小可信度的關聯規則。
除了上述常見方法外,還有目前在人工智能諸多領域(如語音識別、自然語言處理、計算機視覺等)取得了突破性進展的深度學習方法。
本文按照獨立、靜態或變量值線性化設計,通過信息挖掘的關聯規則法,使用FP-Growth算法對歷史報警數據進行優化得到正常工作區A,如圖2所示。

圖2 報警工作區
確定報警數據對于異常工況的貢獻度大小和各過程變量之間的相關性,通過數據預處理及FP-Growth算法將重要報警從眾多關聯信息中挖掘出來,使操作員不必疲于處理無效警報。報警信息優化主要流程如圖3所示。

圖3 報警優化流程
煉化企業的報警數據一般都存儲在DCS的報警日志里,煉化企業工藝過程復雜、報警數據龐大,數據更新頻繁,不同廠商CS的報警數據的存儲格略有不同。
本文中,基于橫河DCS報警服務器,采用Mediator模式,利用OPC通信技術實時采集DCS報警數據,將報警數據預處理成具備時間戳、報警位、報警類型、報警狀態和報警優先級等屬性參數的數據信息。圖4為中石油四川石化AAM系統報警數據采集格式。
根據FP-Growth算法頻繁項集的挖掘原則,將圖4報警數據預處理成報警數據事務項集數據庫,見表1。

表1 報警數據事務項集數據庫

圖4 報警數據
關聯規則是信息挖掘理論中最活躍的研究方法之一,也是目前應用最廣泛和最重要的信息挖掘方法。關聯規則挖掘旨在挖掘隱藏在大型數據庫中有意義的聯系,所挖掘出的聯系主要用頻繁項集來表示,其中基于頻繁項集的算法主要是Apriori算法和FP-Growth算法。
FP-Growth算法是J.Han等人針對Apriori需要頻繁的便利數據庫、產生大量候選項集這些缺陷提出的改進算法,FP-Growth算法對不同長度的規則具有普遍的適用性。本文選用FP-Growth算法,是為了獲取較長的頻繁模式,并且可生成大量的候選短頻繁模式。在信息挖掘領域,FP-Growth算法的引用次數位列三甲。
3.3.1 定義
支持度S——支持度規則用來設定數據集的頻繁程度統計項的出現頻率,將出現次數小的項剔除掉,本文支持度S最低閾值為20%。
頻繁項集——項集的支持度超過設定的閾值時,該項集即稱為頻繁項集。
置信度C——置信度規則用來確定項集Y在包含項集X的事務中出現的頻繁程度。分子是項集XY同時出現的次數,分母是含有項集X的事務數。

如在表1中,可令X=F,Y=E,則

3.3.2 項頭表的建立
建立FP-Tree之前首先建立項頭表,項頭表按降序排列,FP-Growth算法通過FP-Tree來挖掘頻繁項集,若一個數據集包含K個項會產生2k-1個頻繁項集,K值越大,產生的頻繁項集的數目就越大。為了減少頻繁項集的計算數量,堅持的原則:一個項集的支持度要小于其自己的支持度。
首先,對表1進行初次掃描,得到所有頻繁1項集的計數,刪除支持度低于閾值的項,在表1報警數據事務項集數據庫T{AT-3201-A1,AT-3201-A6}的6條事務中掃描數據發現,C、I只出現一次,支持度低于閾值20%,因此它們不會出現在項頭表中,將頻繁1項集放入項頭表,并按照支持度降序排列,將剩下的E、B、G、D、F、G按照支持度的大小降序排列,組成了項頭表,如圖5左圖。
其次,剔除表1事物項中每條數據的非頻繁項集,按照支持度降序排列。如AT-3201-A1中,剔除B、C、F、G、I,剩下D、E、H,按照支持度的由大到小排序成E、D、H。其他事務項以此類推,形成項集合I2,如圖5右圖。

圖5 項頭表和項集合I2
3.3.3 FP-Tree的建立
有了項頭表和排序后的項集合I2,就可以開始TP-Tree的建立了。首先,插入項集合I2的第一條數據E、D、H,此時FP-Tree沒有結點,因此E、D、H是一個獨立的路徑,所有結點的計數都為1,項頭表通過結點鏈表鏈接上對應的新增結點;其次,插入G、D,如果有共用的祖先,則對應的公用祖先結點計數加1;再者,插入EBG,公用祖先節點E計數加1,此時為E2;用同樣的辦法可以更新最后1條數據,直到所有的數據都插入到FP-Tree中,最后形成FP-Tree構造圖,如圖6所示。

圖6 FP-Tree構造圖
3.3.4 FP-Tree的挖掘
基于圖6FP-Tree構造圖和圖5項頭表,先從最底部的H結點開始依次向上挖掘,開始尋找H結點的條件模式基,如圖6所示,H有三個葉子結點,先畫出H的FP子 樹{E:5,B:4,G:3,D:1,F:1,H:1}、{E:5,D:1,H:1}和{E:5,B:4,F:1,H:1};接著,將所有的祖先結點計數設置為葉子結點的計數,H的FP子樹即變成{E:3,B:3,G:3,D:1,D:1,F:1,F:1,H:1,H:1,H:1};其中,D結點和F 結點由于在條件模式基里面的支持度低于閾值,所以被刪除;最終,去除了低支持度結點和葉子結點后的H結點的條件模式基為{E:3,B:3,G:3}。通過此條件模式基,得到H結點的 頻繁2項集為{E:3,H:3}、{B:3,H:3}、{G:3,H:3}。遞歸合并2項集,可得到頻繁3項集為{E:3,B:3,H:3}、{E:3,G:3,H:3}、{G:3,B:3,H:3}。遞歸合并3項集,得到頻繁4項集為{E:3,B:3,G:3,H:3},則H結點對應的最大的頻繁項集為頻繁4項集{E:3,B:3,G:3,H:3}。
H節點挖掘完畢后,依次挖掘F、D、G、B、E節點,用以上同樣的方法可以遞歸挖掘到每個節點的最大頻繁項集,則從上面的分析可以看到,遞歸挖掘得到最大的頻繁項集為4項集{E:3,B:3,G:3,H:3}。
本文針對煉化企業控制系統的無效報警問題,簡要概述報警管理現狀和信息挖掘技術,對報警數據采集及預處理技術和關聯規則方法的FP-Growth算法進行深入研究,通過支持度和置信度可根據不同工藝和工況手動配置的優勢,利用最大頻繁項集對報警數據節點進行信息挖掘,減少了DCS控制系統的無效報警頻次,有效提高了報警準確率,使DCS控制系統報警總數約下降62%~93%。