于 游,魏琳洹,田景輔,田鵬飛,馬 強(qiáng)
(1.國(guó)網(wǎng)遼寧省電力有限公司,遼寧 沈陽 110006;2.沈陽工程學(xué)院,遼寧 沈陽 110136)
整定計(jì)算軟件是電網(wǎng)繼電保護(hù)整定計(jì)算工作中不可或缺的工具,其隨著計(jì)算機(jī)技術(shù)的進(jìn)步而不斷向前發(fā)展[1-6]。目前國(guó)內(nèi)應(yīng)用的整定計(jì)算軟件都是基于C/S架構(gòu)[7-8](Client/Server,即客戶端/服務(wù)器架構(gòu)),這種軟件架構(gòu)下整定計(jì)算程序安裝在客戶端電腦上,定值計(jì)算等主要業(yè)務(wù)在客戶端完成,服務(wù)器不參與定值計(jì)算,主要用來管理整定計(jì)算數(shù)據(jù),包括與上下級(jí)電網(wǎng)的整定計(jì)算系統(tǒng)交互數(shù)據(jù),以滿足多終端用戶和電網(wǎng)一體化整定計(jì)算的需要。
電網(wǎng)的整定計(jì)算尤其是大電網(wǎng)的整定計(jì)算需要進(jìn)行大量的運(yùn)算。如計(jì)算電網(wǎng)中線路的某側(cè)保護(hù),其定值需要與其下級(jí)所有線路和元件的保護(hù)進(jìn)行配合,計(jì)算時(shí)要在每個(gè)被配合設(shè)備的不同位置設(shè)置故障點(diǎn),并且考慮線路正?;蛳嗬^、母線其他線路輪斷、電廠和變壓器的不同運(yùn)行方式,將這些因素進(jìn)行組合計(jì)算,選出最嚴(yán)重方式下的結(jié)果作為定值整定依據(jù),因此一個(gè)定值就可能涉及到成百上千個(gè)計(jì)算案例。當(dāng)整定的電網(wǎng)面積較大時(shí),客戶端電腦有限的計(jì)算資源將難以勝任這海量的運(yùn)算,例如整定一個(gè)220 kV中等規(guī)模的地區(qū)電網(wǎng)后備保護(hù),用當(dāng)前整定計(jì)算軟件計(jì)算一遍,快則需要幾十分鐘,慢則需要幾個(gè)小時(shí)。如果電網(wǎng)規(guī)模更大,或者選擇多級(jí)輪斷方式,計(jì)算量將呈幾何級(jí)增加,計(jì)算需要時(shí)間將更長(zhǎng),甚至無法計(jì)算。
整定計(jì)算軟件服務(wù)器的計(jì)算能力將遠(yuǎn)超客戶端的電腦,應(yīng)用服務(wù)器來計(jì)算將會(huì)有效提高整定計(jì)算速度,而且電網(wǎng)一體化整定計(jì)算系統(tǒng)中省調(diào)及各地調(diào)都設(shè)置了2臺(tái)服務(wù)器,調(diào)度系統(tǒng)中還存在數(shù)量可觀的其他業(yè)務(wù)服務(wù)器,如果將這些服務(wù)器資源組織利用起來開展云計(jì)算,將進(jìn)一步提高整定計(jì)算能力。使用云計(jì)算來進(jìn)行整定計(jì)算是一種全新的模式,本文研究了基于任務(wù)分拆的云計(jì)算方法,將整定計(jì)算任務(wù)進(jìn)行了合理分解,然后分配到云計(jì)算資源上,最后進(jìn)行匯總得出結(jié)果,在計(jì)算效率最大化同時(shí),保證計(jì)算結(jié)果準(zhǔn)確與數(shù)據(jù)安全。
首先選擇多臺(tái)服務(wù)器組建整定計(jì)算私有云,搭建起基于后端云組件化的云計(jì)算系統(tǒng)框架,該框架由客戶端+云組件管理中心+負(fù)載均衡器+后端框架組成。
云組件管理中心部署在核心云服務(wù)器中,負(fù)責(zé)管理所有云組件,云組件有電網(wǎng)參數(shù)管理云組件、計(jì)算模型云組件、計(jì)算工具云組件、整定高級(jí)應(yīng)用云組件、裝置計(jì)算云組件、故障計(jì)算核心云組件等,分別負(fù)責(zé)整定計(jì)算不同的功能。云組件以軟件包的形式存儲(chǔ)在云組件管理中心,當(dāng)云組件管理中心接收到云服務(wù)器的云組件安裝請(qǐng)求時(shí),云組件管理中心負(fù)責(zé)將請(qǐng)求的云組件軟件包推送至對(duì)應(yīng)的云服務(wù)器。
云組件管理中心、負(fù)載均衡器分別部署在2臺(tái)云服務(wù)器中,負(fù)載均衡器包括基于AMQP協(xié)議的任務(wù)代理服務(wù)器和數(shù)據(jù)存儲(chǔ)代理服務(wù)器,后臺(tái)框架包括1臺(tái)主服務(wù)器和多臺(tái)算力支撐云服務(wù)器,能夠提供強(qiáng)大的云計(jì)算能力。當(dāng)進(jìn)行整定計(jì)算時(shí),負(fù)載均衡器會(huì)向后臺(tái)框架內(nèi)的所有云服務(wù)器發(fā)送主服務(wù)器的計(jì)算模型數(shù)據(jù),從而同步更新后臺(tái)框架內(nèi)的所有云服務(wù)器中計(jì)算模型云組件的計(jì)算模型數(shù)據(jù),為整定配合云計(jì)算做好準(zhǔn)備。
應(yīng)用木桶理論,即1只水桶能裝多少水取決于其最短的那塊木板;反木桶理論,在計(jì)算系統(tǒng)中,運(yùn)算速度取決于運(yùn)行速度最慢的那個(gè)子任務(wù)有多大,執(zhí)行時(shí)間有多長(zhǎng);例如一個(gè)任務(wù)不拆分的情況下執(zhí)行完畢耗時(shí)1 min,當(dāng)它被拆分為2個(gè)任務(wù)時(shí),最快也要30 s才能執(zhí)行完畢,假如拆分不當(dāng),一個(gè)耗時(shí)10 s,另一個(gè)耗時(shí)50 s,整個(gè)任務(wù)執(zhí)行完畢也需要耗時(shí)50 s才能執(zhí)行完,執(zhí)行效率取決于耗時(shí)最長(zhǎng)的那個(gè)任務(wù)。因此任務(wù)分拆時(shí)要盡可能細(xì)化任務(wù),將計(jì)算壓力(計(jì)算耗時(shí))盡可能的平均分?jǐn)偝鋈ィ鼓就暗拿繅K木板盡可能的短,這樣才能使用到的所有服務(wù)器計(jì)算效率最高。
云計(jì)算體系通過任務(wù)代理服務(wù)器將計(jì)算任務(wù)按照配置的規(guī)則,包括預(yù)算分析量、配合規(guī)則、計(jì)算案例逐層拆分并下發(fā)。如一個(gè)整定工程計(jì)算任務(wù),由主服務(wù)器拆分為若干個(gè)保護(hù)定值的計(jì)算任務(wù),上交代理后再繼續(xù)按預(yù)算分析量進(jìn)行拆分,同時(shí)將需要生成配合關(guān)系的計(jì)算任務(wù)按照配合規(guī)則層層拆分,直至拆分至最小顆粒,然后將拆分得到的計(jì)算案例上交代理,再將計(jì)算案例下發(fā)至云服務(wù)器計(jì)算池進(jìn)行并行計(jì)算,將計(jì)算結(jié)果回執(zhí)到代理服務(wù)器按照拆分層級(jí)逐層匯總,得到計(jì)算結(jié)果并輸出。
在整定計(jì)算中,大部分計(jì)算力會(huì)用在以下幾個(gè)功能上,因此計(jì)算任務(wù)拆分時(shí)會(huì)按以下3個(gè)功能來拆分:
功能1:生成配合關(guān)系、計(jì)算場(chǎng)景、計(jì)算案例;
功能2:計(jì)算功能1中生成的計(jì)算案例;
功能3:存儲(chǔ)功能1中所生成的相關(guān)數(shù)據(jù)至數(shù)據(jù)庫(kù)。
在云計(jì)算中,各個(gè)計(jì)算單元具有完全一樣的計(jì)算模型,為了保證計(jì)算結(jié)果的準(zhǔn)確,一般只安排1臺(tái)或幾臺(tái)服務(wù)器擁有對(duì)數(shù)據(jù)庫(kù)的操作權(quán)利,據(jù)此把上述功能1和功能2拆分的子任務(wù)定義為非關(guān)鍵任務(wù),功能3拆分出來的子任務(wù)定義為關(guān)鍵任務(wù)。一些能操作數(shù)據(jù)庫(kù)服務(wù)器,如主服務(wù)器,可處理關(guān)鍵與非關(guān)鍵任務(wù),數(shù)量更多的是不能操作數(shù)據(jù)庫(kù)的副服務(wù)器,只能處理非關(guān)鍵任務(wù),如圖1所示。
圖1 功能拆分與服務(wù)器分配
因此,拆分任務(wù)時(shí),應(yīng)盡可能減少關(guān)鍵任務(wù)比重,增加非關(guān)鍵任務(wù)比例,因?yàn)榉顷P(guān)鍵任務(wù)能被所有計(jì)算單元執(zhí)行,而關(guān)鍵任務(wù)只能被有限幾個(gè)計(jì)算單元執(zhí)行,這樣就可以在保證計(jì)算結(jié)果準(zhǔn)確的情況下達(dá)到整體效率最高。
一般系統(tǒng)在處理數(shù)據(jù)存儲(chǔ)和數(shù)據(jù)計(jì)算時(shí)絕大多數(shù)采用串行邏輯,即先把數(shù)據(jù)存完才能執(zhí)行計(jì)算,而本系統(tǒng)采用了并行邏輯壓縮耗時(shí),當(dāng)前線程將計(jì)算案例(功能1)生成完后立即生成存儲(chǔ)子任務(wù)(功能2)和計(jì)算子任務(wù)(功能3),提交到任務(wù)代理服務(wù)器分配2個(gè)任務(wù)進(jìn)行并行計(jì)算,當(dāng)前線程通過RPC(Remote Procedure Call,遠(yuǎn)程過程調(diào)用)技術(shù),等待2個(gè)子任務(wù)執(zhí)行完畢后,將匯總的計(jì)算結(jié)果寫入數(shù)據(jù)庫(kù)中,這樣做可以提高計(jì)算速度。
a.客戶端將整定計(jì)算的主任務(wù)發(fā)送到任務(wù)代理服務(wù)器,任務(wù)代理服務(wù)器查找當(dāng)前配置的云服務(wù)器計(jì)算池,并將所述主任務(wù)下發(fā)給云服務(wù)器計(jì)算池中的主服務(wù)器進(jìn)行處理,如圖2所示。
圖2 任務(wù)代理服務(wù)器下發(fā)主任務(wù)
b.主服務(wù)器接收到主任務(wù)后,根據(jù)計(jì)算量的大小判斷所述主任務(wù)是否需要拆分。如果計(jì)算量較小,則不需要拆分,主服務(wù)器直接對(duì)任務(wù)進(jìn)行計(jì)算并得到計(jì)算結(jié)果;如果計(jì)算量較大,主服務(wù)器判斷所述主任務(wù)需要拆分,則根據(jù)配置的規(guī)則(包括細(xì)化任務(wù)和劃分關(guān)鍵/非關(guān)鍵任務(wù))進(jìn)行計(jì)算工程的任務(wù)拆分,將主任務(wù)拆為多個(gè)計(jì)算案例子任務(wù)后,將拆分的多個(gè)子任務(wù)上交至所述任務(wù)代理服務(wù)器,如圖3所示。
圖3 主服務(wù)進(jìn)行任務(wù)拆分
c.任務(wù)代理服務(wù)器接收到拆分的多個(gè)子任務(wù)時(shí),使用單一隊(duì)列算法(計(jì)算單元主動(dòng)向負(fù)載均衡器索要任務(wù))進(jìn)行任務(wù)分發(fā),將所有要處理的計(jì)算任務(wù)放到一個(gè)隊(duì)列中,云服務(wù)器計(jì)算池中空閑計(jì)算單元主動(dòng)向負(fù)載均衡器索要任務(wù)進(jìn)行并行計(jì)算;當(dāng)子任務(wù)之間具有依賴關(guān)系時(shí),如果依舊按照一般任務(wù)分配邏輯執(zhí)行,則這些任務(wù)都無法正常處理,這種請(qǐng)求被稱之為粘滯任務(wù),為了處理這種情況,粘滯任務(wù)通常會(huì)被分配給同一個(gè)計(jì)算單元的同一個(gè)線程中進(jìn)行計(jì)算。
計(jì)算池內(nèi)所有計(jì)算單元在將拆分的多個(gè)子任務(wù)計(jì)算完成后,將計(jì)算結(jié)果回執(zhí)到任務(wù)代理服務(wù)器并由其回執(zhí)到主服務(wù)器,主服務(wù)器負(fù)責(zé)匯總所有子任務(wù)的計(jì)算結(jié)果,并將最終匯總后的計(jì)算結(jié)果回執(zhí)到任務(wù)代理服務(wù)器,如圖4所示。
圖4 下發(fā)子任務(wù)與計(jì)算結(jié)果回執(zhí)
d.任務(wù)代理服務(wù)器將最終匯總后的計(jì)算結(jié)果轉(zhuǎn)發(fā)至數(shù)據(jù)存儲(chǔ)代理服務(wù)器,再由所述數(shù)據(jù)存儲(chǔ)代理服務(wù)器廣播至云服務(wù)器計(jì)算池進(jìn)行云存儲(chǔ);云計(jì)算過程結(jié)束,如圖5所示。
圖5 形成最終結(jié)果和云廣播存儲(chǔ)
遼寧電網(wǎng)省地一體化整定計(jì)算平臺(tái)設(shè)立了2臺(tái)服務(wù)器,再利用另一業(yè)務(wù)的1臺(tái)服務(wù)器進(jìn)行擴(kuò)展,形成共3臺(tái)服務(wù)器的小規(guī)模“私有云”。將上述任務(wù)拆分原則和云計(jì)算方法在該平臺(tái)進(jìn)行實(shí)際應(yīng)用,計(jì)算結(jié)果表明,對(duì)比當(dāng)前的整定計(jì)算軟件,采用云整定計(jì)算方法后,整定計(jì)算速度有了大幅提高。
以計(jì)算鞍山地區(qū)的某基建工程定值為例,選取計(jì)算范圍為鞍山地區(qū)整個(gè)220 kV電網(wǎng),共有4座500 kV變電站和25座220 kV變電站,如果使用base2000整定計(jì)算軟件,計(jì)算1遍相間距離、接地距離和零序電流保護(hù),共需要25 min左右,而采用云計(jì)算方法,計(jì)算時(shí)間僅為25.83 s。
當(dāng)計(jì)算范圍更大,整定方式更復(fù)雜時(shí),云整定計(jì)算的計(jì)算能力和計(jì)算速度優(yōu)勢(shì)更大,此時(shí)一般的整定計(jì)算軟件可能需要幾個(gè)小時(shí)以上的計(jì)算時(shí)間,甚至系統(tǒng)崩潰計(jì)算不了,而云計(jì)算則不會(huì)存在這種情況,而且云計(jì)算能力會(huì)隨著云資源的擴(kuò)展而不斷提高。
云整定計(jì)算是新一代整定計(jì)算軟件的發(fā)展方向,本文研究了基于整定計(jì)算任務(wù)拆分的云計(jì)算方法,設(shè)計(jì)了任務(wù)拆分原則與云整定計(jì)算過程,然后在遼寧省地一體化整定計(jì)算平臺(tái)上進(jìn)行工程應(yīng)用,實(shí)踐結(jié)果證明了本方法能夠顯著提高整定計(jì)算能力和計(jì)算速度,對(duì)提高整定計(jì)算工作效率有很大幫助。
云整定計(jì)算的應(yīng)用將促進(jìn)整定計(jì)算向智能化、全模型一體化方向發(fā)展。依托強(qiáng)大的計(jì)算能力,大量人工智能技術(shù)將會(huì)在整定計(jì)算工作中得到應(yīng)用,大電網(wǎng)的一體化全模型整定計(jì)算也能夠?qū)崿F(xiàn),這將進(jìn)一步提升整定計(jì)算工作效率,降低定值計(jì)算誤差。