徐川子,徐成司,趙堅(jiān)鵬,向新宇,葛蔚蔚
(國(guó)網(wǎng)浙江省電力有限公司杭州供電公司,浙江 杭州 310000)
隨著工商業(yè)用電、農(nóng)業(yè)用電、居民用電量的激增,電力系統(tǒng)對(duì)電力設(shè)備的要求越來(lái)越高,現(xiàn)場(chǎng)維護(hù)成本也隨之越來(lái)越高[1-2]。在地圖信息不完善的農(nóng)村地區(qū),一方面現(xiàn)有的導(dǎo)航軟件中缺乏有效可靠的建筑物信息及線路數(shù)據(jù),制約了線路維修人員快速定位故障地理位置及快速修復(fù)故障;另一方面,傳統(tǒng)電力設(shè)備的管理和維護(hù)需要依賴(lài)大量信息采集人員,特別是在線路數(shù)據(jù)缺失區(qū)域,需要通過(guò)人工問(wèn)詢等方式到達(dá)故障維修點(diǎn)或采集點(diǎn),再利用書(shū)面記錄完成設(shè)備信息采集,最后錄入公司管理系統(tǒng)保存。此類(lèi)方式獲取的信息較為抽象,后續(xù)維修或采集只能通過(guò)模糊的路徑信息重新尋找設(shè)備位置,不但加重了人員的工作負(fù)擔(dān),也為故障發(fā)生后的快速定位埋下隱患,因此集抄運(yùn)維系統(tǒng)應(yīng)運(yùn)而生。
目前,集抄運(yùn)維系統(tǒng)的研究主要集中在系統(tǒng)的平臺(tái)設(shè)計(jì)和流程管控分析等方面[3-6],對(duì)解決信息采集和故障設(shè)備定位等問(wèn)題的支持有限,鑒于此,提出一種農(nóng)村電網(wǎng)集抄運(yùn)維系統(tǒng)構(gòu)建方案。該系統(tǒng)主要面向農(nóng)村電網(wǎng)維護(hù)人員,根據(jù)特定場(chǎng)景下的實(shí)際工作需要,將用戶角色劃分為兩種:第一種是數(shù)據(jù)采集人員,主要負(fù)責(zé)農(nóng)村線路信息采集,包括電表位置數(shù)據(jù)信息和連接電表的線路數(shù)據(jù)信息,并在完成信息采集后及時(shí)上傳數(shù)據(jù);第二種是維修作業(yè)人員,其主要根據(jù)最新線路數(shù)據(jù)及時(shí)定位故障位置實(shí)現(xiàn)故障快速清除,同時(shí)還可依照系統(tǒng)路徑規(guī)劃功能生成的最短路徑實(shí)現(xiàn)故障快速響應(yīng)。
農(nóng)村電網(wǎng)集抄運(yùn)維系統(tǒng)客戶端基于Android平臺(tái)實(shí)現(xiàn),根據(jù)農(nóng)村電網(wǎng)數(shù)據(jù)采集人員和維修作業(yè)人員實(shí)際工作的需要,設(shè)計(jì)線路采集、普通作業(yè)、用電戶信息、數(shù)據(jù)更新和離線地圖管理五大功能模塊,其中線路采集和普通作業(yè)功能基于位置服務(wù)(location based services,LBS)實(shí)現(xiàn)??蛻舳斯δ苣K架構(gòu)如圖1 所示。
圖1 客戶端功能模塊架構(gòu)
服務(wù)端采用Python 的Django 框架,采用HTTP 協(xié)議進(jìn)行服務(wù)端接口設(shè)計(jì)??蛻舳烁鶕?jù)具體功能發(fā)起請(qǐng)求,服務(wù)器收到請(qǐng)求后進(jìn)行相應(yīng)數(shù)據(jù)處理,并將處理結(jié)果返回客戶端。農(nóng)村電網(wǎng)集抄運(yùn)維系統(tǒng)結(jié)構(gòu)如圖2 所示。
圖2 農(nóng)村電網(wǎng)集抄運(yùn)維系統(tǒng)結(jié)構(gòu)
服務(wù)端包含以下功能模塊。
1) 線路采集模塊。該模塊包含定位顯示、途經(jīng)點(diǎn)(節(jié)點(diǎn))信息記錄及線路繪制三個(gè)功能。定位顯示提供當(dāng)前位置信息,途經(jīng)點(diǎn)(節(jié)點(diǎn))信息記錄提供定位節(jié)點(diǎn)信息錄入功能,而線路繪制則是在一段線路節(jié)點(diǎn)信息錄入完畢后根據(jù)行進(jìn)軌跡統(tǒng)一繪制線路。
2) 普通作業(yè)模塊。該模塊包含路徑規(guī)劃和導(dǎo)航兩個(gè)功能。在路徑規(guī)劃功能中,在線路采集過(guò)程中記錄的途經(jīng)點(diǎn)(節(jié)點(diǎn))可根據(jù)相關(guān)信息進(jìn)行查詢,根據(jù)查詢結(jié)果選中位置點(diǎn)后,由線路路徑構(gòu)成帶權(quán)無(wú)向圖,然后利用特定的最短路徑算法構(gòu)建起點(diǎn)到終點(diǎn)的最短路徑,進(jìn)而將該段路徑繪制在地圖上。在實(shí)時(shí)導(dǎo)航功能中,系統(tǒng)根據(jù)作業(yè)人員當(dāng)前所在實(shí)際位置與所查詢位置進(jìn)行實(shí)時(shí)導(dǎo)航,指引作業(yè)人員到達(dá)指定位置。
3) 用戶信息模塊。該模塊可進(jìn)行用戶信息(節(jié)點(diǎn)信息)的二次修改,對(duì)于已經(jīng)錄入的節(jié)點(diǎn),信息采集人員或者維修人員可根據(jù)實(shí)際情況進(jìn)行用戶信息核對(duì)及修改。此模塊保證了用戶信息(節(jié)點(diǎn)信息)能夠不斷更新,滿足實(shí)際需要。
4) 其他模塊。數(shù)據(jù)更新模塊提供線路信息和用戶信息(節(jié)點(diǎn)信息)的批量上傳、下載功能,同時(shí)控制服務(wù)端和客戶端之間信息交互頻率,避免造成系統(tǒng)阻塞。離線地圖模塊支持離線地圖下載功能,保證系統(tǒng)部分業(yè)務(wù)功能不受網(wǎng)絡(luò)中斷限制。管理平臺(tái)模塊提供導(dǎo)入導(dǎo)出數(shù)據(jù)(如線路信息、節(jié)點(diǎn)信息等)、管理系統(tǒng)權(quán)限賬號(hào)等功能。
農(nóng)村電網(wǎng)由于其特有的地理因素影響,其負(fù)荷呈現(xiàn)點(diǎn)狀聚集分布,往往需要很長(zhǎng)的輸配電線路才能將各個(gè)村舍連接起來(lái)[7-8]。同時(shí),農(nóng)村用戶居所分散,房屋排列沒(méi)有規(guī)律,導(dǎo)致電網(wǎng)在村舍內(nèi)部分支級(jí)數(shù)眾多[9-10]。因此,根據(jù)上述農(nóng)村電網(wǎng)的特點(diǎn),研究適用于農(nóng)村電網(wǎng)結(jié)構(gòu)的最短路徑算法不僅可以輔助農(nóng)村電網(wǎng)故障搶修,更可將其應(yīng)用于農(nóng)村電網(wǎng)規(guī)劃設(shè)計(jì),為農(nóng)村電網(wǎng)設(shè)計(jì)的科學(xué)化、規(guī)范化提供依據(jù)。
最短路徑算法研究的重點(diǎn)在于路徑搜索中的通用技術(shù),該技術(shù)可分為組合技術(shù)和代數(shù)方法兩種,其中組合技術(shù)中的標(biāo)號(hào)算法是絕大多數(shù)最短路徑算法的核心。標(biāo)號(hào)算法可分為標(biāo)號(hào)設(shè)定(label setting,LS)和標(biāo)號(hào)改正(label correcting,LC)兩類(lèi)[11]。
2.1.1 松弛操作
不管是LS 算法還是LC 算法,此類(lèi)最短路徑算法中最基本的操作均為松弛操作,如圖3 所示。
圖3 松弛操作示意
圖3 中對(duì)于一條從頂點(diǎn)A到頂點(diǎn)B的邊A→B,如果滿足dist[A]+ω(A,B)<dist[B],則更新dist[B],使dist[B]=dist[A]+ω(A,B)。式中:ω(A,B)表示邊的權(quán)重,dist[A] 表示頂點(diǎn)A到源點(diǎn)S的目前已知的最短距離,dist[B]表示頂點(diǎn)B到源點(diǎn)S的目前已知的最短距離。
2.1.2 Dijkstra 算法
Dijkstra 算法屬于LS 算法,是典型的單源最短路徑算法,其主要特點(diǎn)是以起始點(diǎn)為中心向外逐點(diǎn)擴(kuò)展,直至擴(kuò)展至全部頂點(diǎn)。設(shè)G=(V,E)為帶權(quán)圖,將頂點(diǎn)集合V分成兩組,一組為已求出最短路徑的頂點(diǎn)集合(以S表示),另一組為其余未確定最短路徑的頂點(diǎn)集合(以U表示)。其算法步驟如圖4 所示。
圖4 Dijkstra 算法流程
2.1.3 最短路徑快速算法
最短路徑快速算法(shortest path faster algorithm,SPFA)是求單源最短路徑的一種算法,也是貝爾曼-福特(Bellman-ford)算法的隊(duì)列優(yōu)化實(shí)現(xiàn)。其算法步驟如圖5 所示。
圖5 SPFA 算法流程
根據(jù)農(nóng)村電網(wǎng)負(fù)荷呈點(diǎn)狀聚集分布、村舍內(nèi)部分支級(jí)數(shù)眾多等特點(diǎn),可構(gòu)建農(nóng)村電網(wǎng)典型結(jié)構(gòu)如圖6 所示。兩個(gè)村舍間通過(guò)村外節(jié)點(diǎn)相連,村舍間的距離一般較村舍內(nèi)部節(jié)點(diǎn)距離大得多,單個(gè)村舍內(nèi)部節(jié)點(diǎn)間支路眾多而無(wú)規(guī)律。
圖6 農(nóng)村電網(wǎng)典型結(jié)構(gòu)
不同最短路徑算法在農(nóng)村電網(wǎng)結(jié)構(gòu)下的計(jì)算效率存在一定差異,可通過(guò)實(shí)驗(yàn)對(duì)比選取更適用于農(nóng)村電網(wǎng)的算法。這里將分別使用Dijkstra 算法和SPFA 進(jìn)行農(nóng)村電網(wǎng)節(jié)點(diǎn)間最短路徑規(guī)劃。兩種算法計(jì)算過(guò)程將進(jìn)行多次松弛操作,而松弛操作次數(shù)將直接影響算法效率,因此可通過(guò)對(duì)兩種算法在農(nóng)村電網(wǎng)結(jié)構(gòu)下的松弛次數(shù)比較,分析兩種算法對(duì)于農(nóng)村電網(wǎng)計(jì)算效率和適用性。
在Java 8 語(yǔ)言環(huán)境下進(jìn)行算例分析。首先建立某典型農(nóng)村電網(wǎng)部分結(jié)構(gòu)如圖7 所示,各圓圈代表節(jié)點(diǎn),連接節(jié)點(diǎn)的線段代表路徑,線段上數(shù)字代表路徑長(zhǎng)度。
注:路徑長(zhǎng)度量綱為10 m。
根據(jù)該電網(wǎng)結(jié)構(gòu)構(gòu)建節(jié)點(diǎn)的鄰接表。假設(shè)此時(shí)某工作人員需要從節(jié)點(diǎn)3 到節(jié)點(diǎn)25,分別運(yùn)行兩種最短路徑算法,得到的最短路徑如圖8 所示,其中Dijkstra 算法松弛操作次數(shù)為31 次,SPFA 松弛操作次數(shù)為65 次。
由圖8 和松弛操作次數(shù)可知,兩種最短路徑算法均能計(jì)算得出節(jié)點(diǎn)3 到節(jié)點(diǎn)25 的最短路徑,而Dijkstra 算法進(jìn)行的松弛操作次數(shù)比SPFA 少。
隨機(jī)選擇路徑的起點(diǎn)和終點(diǎn),運(yùn)行程序5 次。兩種算法進(jìn)行松弛操作的次數(shù)對(duì)比如圖9 所示??芍珼ijkstra 算法在農(nóng)村電網(wǎng)下獲取最短路徑過(guò)程中執(zhí)行松弛操作的次數(shù)較SPFA 少,且較為穩(wěn)定。因此,Dijkstra 算法相比SPFA 更適合用于農(nóng)村電網(wǎng)最短路徑規(guī)劃。
圖9 兩種算法松弛次數(shù)對(duì)比
將構(gòu)建的農(nóng)村電網(wǎng)集抄運(yùn)維系統(tǒng)上線運(yùn)行。系統(tǒng)客戶端較好實(shí)現(xiàn)了線路采集、普通作業(yè)、用電戶信息修改、數(shù)據(jù)更新和離線地圖管理等功能,且可實(shí)現(xiàn)路線規(guī)劃和實(shí)時(shí)導(dǎo)航等輔助功能。現(xiàn)場(chǎng)將部分?jǐn)?shù)據(jù)錄入系統(tǒng)后,后臺(tái)系統(tǒng)能夠?qū)︿浫氲恼军c(diǎn)信息進(jìn)行管理,同時(shí)能批量導(dǎo)入用戶信息等數(shù)據(jù)從而實(shí)現(xiàn)對(duì)數(shù)據(jù)庫(kù)進(jìn)行批量新增或修改。除此之外,后臺(tái)系統(tǒng)能夠記錄管理員賬號(hào)的最近操作記錄,用于糾錯(cuò)和回溯。
由于農(nóng)村電網(wǎng)設(shè)備管理和維護(hù)依賴(lài)人工操作、難以快速定位故障的問(wèn)題,提出了一種農(nóng)村電網(wǎng)集抄運(yùn)維系統(tǒng)構(gòu)建方案并進(jìn)行具體實(shí)現(xiàn),同時(shí)對(duì)比研究了農(nóng)村電網(wǎng)應(yīng)用場(chǎng)景下不同最短路徑算法的性能,得出以下結(jié)論。
1) 針對(duì)農(nóng)村電網(wǎng)負(fù)荷呈點(diǎn)狀聚集分布、村舍內(nèi)部分支級(jí)數(shù)眾多的結(jié)構(gòu)特征,Dijkstra 算法較SPFA 更適合用于該場(chǎng)景下最短路徑規(guī)劃。
2) 農(nóng)村電網(wǎng)集抄運(yùn)維系統(tǒng)構(gòu)建方案能夠滿足數(shù)據(jù)采集人員和維修作業(yè)人員工作需求,有效解決農(nóng)村電網(wǎng)設(shè)備運(yùn)行管理和維護(hù)困難的問(wèn)題。