宋美艷,王炎初,劉 佩,王海東,賈澤冰
(1.西安熱工研究院有限公司,陜西 西安 710054; 2.南京南瑞繼保電氣有限公司,江蘇 南京 211002)
分散控制系統(tǒng)(DCS)是以控制功能分散、管理操作集中為主要特征的計(jì)算機(jī)控制系統(tǒng)[1],具有可靠性高、功能完善和靈活性強(qiáng)等特點(diǎn)。DCS在工程應(yīng)用中經(jīng)常需要對(duì)很多重要測(cè)點(diǎn)進(jìn)行實(shí)時(shí)監(jiān)控(如壁溫),但又不需要壁溫[2]等測(cè)點(diǎn)全部時(shí)刻的數(shù)據(jù)都顯示在畫面上,而更關(guān)注測(cè)點(diǎn)數(shù)據(jù)的某些通體特征(如極值),以便運(yùn)行值班人員進(jìn)行及時(shí)有效地監(jiān)測(cè)和分析判斷。目前DCS監(jiān)控測(cè)點(diǎn)數(shù)據(jù)的通體特征一般采用2種方法獲得:1)通過(guò)DCS外部極值監(jiān)測(cè)系 統(tǒng)或者計(jì)算系統(tǒng)[3]導(dǎo)入特征值;2)通過(guò)在下位機(jī)組態(tài)[4]中搭建功能塊來(lái)計(jì)算特征值,并上送給上位機(jī)。第1種方法需建立DCS與外部計(jì)算測(cè)點(diǎn)極值系統(tǒng)間的數(shù)據(jù)通信[5],可靠性完全依賴于內(nèi)外部系統(tǒng)間所 采用的通信方法[6],實(shí)時(shí)性和安全性很難滿足要求;第2種方法僅適合監(jiān)測(cè)少量測(cè)點(diǎn)的極值變化,一旦監(jiān)測(cè)點(diǎn)數(shù)量達(dá)到幾百個(gè)以上,下位機(jī)組態(tài)工作量會(huì)很大,修改維護(hù)也非常不便,且一旦數(shù)據(jù)出現(xiàn)問(wèn)題很難排查,給現(xiàn)場(chǎng)維護(hù)帶來(lái)了很大的困擾與隱患。
本文以機(jī)組啟動(dòng)狀態(tài)下壁爐溫度監(jiān)測(cè)過(guò)程為例,如果DCS監(jiān)控畫面不能自動(dòng)計(jì)算并監(jiān)測(cè)壁爐極值信息,將會(huì)影響運(yùn)行人員做出準(zhǔn)確判斷,對(duì)安全生產(chǎn)非常重要。為保障現(xiàn)場(chǎng)運(yùn)行的穩(wěn)定性、實(shí)時(shí)性,實(shí)現(xiàn)更好的人機(jī)交互[7],排除現(xiàn)場(chǎng)人員的困擾與隱患,本文提出一種基于畫面組態(tài)的聚類[8]極值實(shí)時(shí)計(jì)算方法。該方法通過(guò)二次聚類算法在歷史站進(jìn)行測(cè)點(diǎn)極值計(jì)算,在DCS工程師站節(jié)點(diǎn)制作畫面后,不需復(fù)雜的算法組態(tài),就能在工程師站監(jiān)視到目標(biāo)測(cè)點(diǎn)數(shù)據(jù)極 值[9],有效滿足了值班人員對(duì)實(shí)時(shí)監(jiān)測(cè)壁爐溫度局部突變的需求,具有快速、高效、實(shí)時(shí)穩(wěn)定的特點(diǎn)。
初次聚類計(jì)算采用基于距離的k-means聚類算法。其計(jì)算過(guò)程是從畫面組態(tài)提取測(cè)點(diǎn)數(shù)據(jù)集作為輸入樣本集,T={x1,x2, …,xn},然后根據(jù)對(duì)測(cè)點(diǎn)數(shù)據(jù)集 的先驗(yàn)知識(shí)選擇最合適的聚類特征個(gè)數(shù)k,記為C={C1,C2, ...,Ck};隨后從輸入樣本集T中隨機(jī)選擇k個(gè)樣本作為初始的k個(gè)質(zhì)心向量(聚類中心),U={u1,u2, ...,uk};接著計(jì)算畫面組態(tài)中測(cè)點(diǎn)數(shù)據(jù)集每個(gè)樣本xi到k個(gè)聚類中心的距離[10],計(jì)算過(guò)程如公式(1)所示,并將其劃分到距離k個(gè)聚類中心最近的質(zhì)心所對(duì)應(yīng)的類別yi[11],計(jì)算過(guò)程如式(2)所示;然后更新每個(gè)聚類簇,并針對(duì)每個(gè)聚類簇,重新計(jì)算其聚類中心,如此反復(fù)迭代,直至最后所有k個(gè)聚類中心不再發(fā)生變化,輸出聚類簇劃分C={C1,C2, …,Ck}。
計(jì)算完初次聚類后,針對(duì)已劃分的每一個(gè)聚類簇采用基于密度的局部離群因子(LOF)聚類分析進(jìn)行二次聚類,并計(jì)算出每一個(gè)聚類簇內(nèi)的極值點(diǎn)。其計(jì)算過(guò)程為:首先根據(jù)初次聚類得到的每個(gè)簇的聚類中心p,計(jì)算該簇中每個(gè)點(diǎn)q與聚類中心p之間的距離,記為d(p,q);然后計(jì)算聚類中心p的第k距離dk(p),即點(diǎn)p第k遠(yuǎn)點(diǎn)的距離;接著計(jì)算點(diǎn)q的第k距離鄰域Nk(q),即點(diǎn)q的第k距離以內(nèi)的所有點(diǎn);隨后定義簇內(nèi)點(diǎn)q到聚類中心p的第k可達(dá)距離[12],計(jì)算過(guò)程如式(3)所示,由其定義可知,距離聚類中心p最近的k個(gè)點(diǎn)到聚類中心p的距離是相等的,并且都為dk(p);下一步計(jì)算點(diǎn)q的局部可達(dá)密度,記為lk(q)[13],計(jì)算過(guò)程如公式(4)所示,局部可達(dá)密度值越高代表了簇內(nèi)點(diǎn)q與聚類中心在二次聚類時(shí)屬于同一簇,反之lk(q)值越小,則代表簇內(nèi)點(diǎn)q與聚類中心不屬于同一簇,即有可能是需要計(jì)算的極值點(diǎn);最后,基于以上計(jì)算結(jié)果計(jì)算點(diǎn)q局部離群因子密度值—ρLOF[14],計(jì)算過(guò)程如式(5)所示。本文將ρLOF值大于1的點(diǎn)視為所計(jì)算的測(cè)點(diǎn)極值,而將ρLOF值小于1的點(diǎn)判別為正常點(diǎn)。
在歷史站節(jié)點(diǎn),通過(guò)連接實(shí)時(shí)數(shù)據(jù)庫(kù),建立測(cè)點(diǎn)值內(nèi)存索引庫(kù),實(shí)時(shí)獲取測(cè)點(diǎn)值。根據(jù)二次聚類計(jì)算的測(cè)點(diǎn)范圍、測(cè)點(diǎn)所屬的聚類簇以及每個(gè)測(cè)點(diǎn)的局部離群因子ρLOF值,基于對(duì)測(cè)點(diǎn)數(shù)據(jù)ρLOF值的判斷分析,可實(shí)時(shí)計(jì)算每個(gè)簇的極值。隨后將計(jì)算得到的測(cè)點(diǎn)極值通過(guò)內(nèi)存索引表存儲(chǔ)到實(shí)時(shí)數(shù)據(jù)庫(kù)中,畫面監(jiān)控軟件將測(cè)點(diǎn)對(duì)象標(biāo)識(shí)符(OID)作為輸入在實(shí)時(shí)數(shù)據(jù)庫(kù)庫(kù)中進(jìn)行查詢,獲取該測(cè)點(diǎn)在數(shù)據(jù)庫(kù)中的極值信息,并將查詢結(jié)果實(shí)時(shí)展示在監(jiān)控畫面上。由于測(cè)點(diǎn)實(shí)時(shí)數(shù)據(jù)一直在變化,極值信息也會(huì)不斷發(fā)生變化,因此需要?dú)v史站服務(wù)節(jié)點(diǎn)實(shí)時(shí)將測(cè)點(diǎn)極值信息通過(guò)組播報(bào)文發(fā)送到歷史站非服務(wù)節(jié)點(diǎn)和工程師站節(jié)點(diǎn)上。對(duì)測(cè)點(diǎn)值實(shí)時(shí)內(nèi)存索引庫(kù)進(jìn)行更新包括2種方式:
1)通過(guò)OID對(duì)比進(jìn)行全部更新和響應(yīng)DPU報(bào)文部分更新,歷史站二次聚類極值計(jì)算流程為接收DPU測(cè)點(diǎn)變化信息、更新測(cè)點(diǎn)值內(nèi)存實(shí)時(shí)索引庫(kù)、計(jì)算得到極值測(cè)點(diǎn)信息、發(fā)布極值測(cè)點(diǎn)信息。其中,測(cè)點(diǎn)數(shù)據(jù)列表信息包含測(cè)點(diǎn)KKS、標(biāo)記名、標(biāo)記名對(duì)應(yīng)的硬件地址字段等信息,并且部署在DCS歷史站節(jié)點(diǎn)上。
2)部署測(cè)點(diǎn)數(shù)據(jù)列表的歷史站節(jié)點(diǎn)有主、備服務(wù)節(jié)點(diǎn),當(dāng)歷史站主服務(wù)節(jié)點(diǎn)關(guān)機(jī)后,系統(tǒng)會(huì)自動(dòng)啟動(dòng)備用節(jié)點(diǎn)計(jì)算服務(wù)功能。
工程師站節(jié)點(diǎn)部署實(shí)時(shí)數(shù)據(jù)庫(kù)接收歷史站的極值數(shù)據(jù)更新,圖1為工程師站節(jié)點(diǎn)測(cè)點(diǎn)數(shù)據(jù)實(shí)時(shí)內(nèi)存索引庫(kù)更新過(guò)程。
圖1 工程師站測(cè)點(diǎn)數(shù)據(jù)更新流程 Fig.1 Flow chart of measuring point data update of engineer station
工程師站節(jié)點(diǎn)在收到組播報(bào)文后,接收DPU測(cè)點(diǎn)變化信息,校驗(yàn)本地測(cè)點(diǎn)值實(shí)時(shí)內(nèi)存索引庫(kù)的OID和工程師站服務(wù)節(jié)點(diǎn)發(fā)送過(guò)來(lái)的OID。工程師站節(jié)點(diǎn)在收到組播報(bào)文后,接收DPU測(cè)點(diǎn)變化信息,校驗(yàn)本地測(cè)點(diǎn)值實(shí)時(shí)內(nèi)存索引庫(kù)的OID和工程師站服務(wù)節(jié)點(diǎn)發(fā)送過(guò)來(lái)的OID。如不相同,則更新工程師站非服務(wù)節(jié)點(diǎn)畫面顯示極值的測(cè)點(diǎn)值內(nèi)存索引庫(kù)的OID,獲取最新內(nèi)存索引庫(kù)中的OID;如相同,代表本地標(biāo)記名實(shí)時(shí)內(nèi)存索引庫(kù)最新,不用在工程師站對(duì)測(cè)點(diǎn)信息進(jìn)行更新。
組態(tài)畫面啟動(dòng)后,從畫面組態(tài)文件提取測(cè)點(diǎn)列表,建立測(cè)點(diǎn)值內(nèi)存索引庫(kù),更新本節(jié)點(diǎn)測(cè)點(diǎn)內(nèi)存索引庫(kù)。根據(jù)本節(jié)點(diǎn)測(cè)點(diǎn)值內(nèi)存索引庫(kù)生成以“OID—測(cè)點(diǎn)值”為輸入的哈希表數(shù)據(jù)結(jié)構(gòu)。在畫面極值計(jì)算過(guò)程中,利用哈希表快速查找功能,對(duì)數(shù)據(jù)值進(jìn)行快速比較校驗(yàn)。通過(guò)工程師站服務(wù)節(jié)點(diǎn)建立測(cè)點(diǎn)值內(nèi)存索引庫(kù),實(shí)時(shí)比較得到測(cè)點(diǎn)OID對(duì)應(yīng)的測(cè)點(diǎn)值數(shù)據(jù)表,并在歷史站進(jìn)行二次聚類極值計(jì)算,其計(jì)算結(jié)果供工程師站畫面獲取并顯示。為保證工程師站畫面刷新效率,對(duì)于沒(méi)有打開(kāi)顯示畫面極值的特定畫面的工程師站非服務(wù)節(jié)點(diǎn),測(cè)點(diǎn)值實(shí)時(shí)內(nèi)存索引庫(kù)的信息是不完備的;打開(kāi)特定畫面后,通過(guò)更新校驗(yàn)才能夠保證畫面所有顯示測(cè)點(diǎn)極值的準(zhǔn)確性。打開(kāi)畫面獲取測(cè)點(diǎn)實(shí)時(shí)內(nèi)存索引庫(kù)并進(jìn)行極值計(jì)算過(guò)程為畫面啟動(dòng)、獲取測(cè)點(diǎn)配置信息、建立內(nèi)存索引庫(kù)、極值計(jì)算。
中國(guó)華能集團(tuán)某電廠百萬(wàn)千瓦超超臨界機(jī)組全國(guó)產(chǎn)化DCS項(xiàng)目中,鍋爐壁溫包括螺旋水冷壁壁溫、垂直水冷壁壁溫、低過(guò)屏管壁溫、高溫過(guò)熱器壁溫、一次再熱壁溫、二次再熱壁溫、省煤器壁溫及隔墻壁溫[15]等,共3 000多個(gè)壁溫測(cè)點(diǎn)?;诙嗄甑倪\(yùn)維經(jīng)驗(yàn),鍋爐壁溫的超溫爆漏是危及機(jī)組安全運(yùn)行的重要原因。
鍋爐壁溫雖可以通過(guò)專門的外部計(jì)算系統(tǒng)計(jì)算測(cè)點(diǎn)極值,但外部計(jì)算系統(tǒng)與DCS之間需要建立單獨(dú)的數(shù)據(jù)通信通道,其實(shí)時(shí)性與安全性完全依賴于內(nèi)外部系統(tǒng)間所采用的通信方法。一旦出現(xiàn)問(wèn)題,需要排查的故障點(diǎn)多,實(shí)時(shí)性和穩(wěn)定性較差。如果從下位機(jī)搭建復(fù)雜的功能塊邏輯組態(tài)來(lái)計(jì)算極值,組態(tài)工作量很大,后期維護(hù)、擴(kuò)容及查錯(cuò)很復(fù)雜,難以保證系統(tǒng)的可靠性與實(shí)時(shí)性。
基于畫面組態(tài)的二次聚類極值實(shí)時(shí)計(jì)算方法已在瑞金智慧電廠改造項(xiàng)目中成功應(yīng)用,在歷史站通過(guò)二次聚類算法計(jì)算出監(jiān)測(cè)測(cè)點(diǎn)初始聚類簇中每個(gè)測(cè)點(diǎn)的局部離群因子,根據(jù)測(cè)點(diǎn)的局部離群因子篩選出極值,隨后將計(jì)算得到的測(cè)點(diǎn)極值通過(guò)內(nèi)存索引表存儲(chǔ)到實(shí)時(shí)數(shù)據(jù)庫(kù)中,最后畫面監(jiān)控軟件以測(cè)點(diǎn)OID作為輸入從實(shí)時(shí)數(shù)據(jù)庫(kù)中獲得測(cè)點(diǎn)極值信息并將查詢結(jié)果展示在監(jiān)控畫面上。實(shí)際工程表明該方法能保障測(cè)點(diǎn)極值計(jì)算的準(zhǔn)確性、實(shí)時(shí)性與穩(wěn)定性,并避免了外部極值計(jì)算系統(tǒng)與DCS通信可能產(chǎn)生的安全問(wèn)題。
采用基于畫面組態(tài)的二次聚類極值實(shí)時(shí)計(jì)算方法,可以直觀地獲得各測(cè)點(diǎn)壁溫,極值點(diǎn)通過(guò)二次聚類算法自動(dòng)完成計(jì)算,并由工程師站監(jiān)聽(tīng)測(cè)點(diǎn)實(shí)時(shí)內(nèi)存索引庫(kù)的變化,將測(cè)點(diǎn)極值信息進(jìn)行更新,直觀顯示在監(jiān)視畫面上,工作效率相比依靠下位機(jī)組態(tài)和外部系統(tǒng)計(jì)算極值提升了10倍以上,后期維護(hù)、擴(kuò)容、查錯(cuò)很方便。實(shí)時(shí)性、可靠性和穩(wěn)定性得到有力保障。
基于畫面組態(tài)的二次聚類極值實(shí)時(shí)計(jì)算方法,在DCS工程師站節(jié)點(diǎn)中,通過(guò)畫面測(cè)點(diǎn)配置信息更新,建立內(nèi)存索引庫(kù),方便畫面進(jìn)行快速定位并通過(guò)聚類算法計(jì)算測(cè)點(diǎn)極值信息,大大提高了測(cè)點(diǎn)極值信息的計(jì)算效率和準(zhǔn)確度。畫面可根據(jù)需要快速計(jì)算測(cè)點(diǎn)極值,直觀展示在用戶面前,避免了組態(tài)工作站搭建復(fù)雜邏輯帶來(lái)的不確定性及運(yùn)行人員由于經(jīng)驗(yàn)不足帶來(lái)的安全隱患問(wèn)題,保證了數(shù)據(jù)計(jì)算的實(shí)時(shí)性與準(zhǔn)確性,可及時(shí)發(fā)現(xiàn)壁溫等數(shù)據(jù)局部過(guò)高等極值相關(guān)問(wèn)題,輔助運(yùn)行人員能快速準(zhǔn)確定位問(wèn)題,更好地保障電廠的安全生產(chǎn)。