季一木 李 航 堯海昌,3 陳 忱 王汝傳,2
1(南京郵電大學(xué)計算機學(xué)院 江蘇 南京 210023) 2(南京郵電大學(xué)江蘇省無線傳感網(wǎng)高技術(shù)研究重點實驗室 江蘇 南京 210023) 3(南京工業(yè)職業(yè)技術(shù)學(xué)院計算機學(xué)院 江蘇 南京 210023)
近年來,能源可持續(xù)問題的重要性日益彰顯。家用分布式光伏并網(wǎng)發(fā)電系統(tǒng)是發(fā)展可再生能源的關(guān)鍵因素[1-2]。光伏發(fā)電技術(shù)也逐步受到企業(yè)界和家庭用戶的重視,在通常光伏發(fā)電項目上,一個企業(yè)或個人為了完成項目部署,前期需要實地考察。考察包括光伏系統(tǒng)部署地點是否符合規(guī)范,部署地點光照、風速、氣候等條件是否合適,考察完外部條件后還需要預(yù)估項目部署成本,在客觀條件不斷變化的情況下無法科學(xué)準確預(yù)估成本,亦無法有效節(jié)省部署成本。同時,部署項目的運維工作也給工作人員帶來了巨大難題,傳統(tǒng)的項目記錄方式并不規(guī)范,具有易損易失性。為了解決上述問題,響應(yīng)國家“互聯(lián)網(wǎng)+”的號召[3],我們開發(fā)了一款企業(yè)級的光伏發(fā)電選配系統(tǒng)。本產(chǎn)品主要面向企業(yè)用戶,引入百度地圖和NASA發(fā)布的氣候信息輔助用戶完成光伏系統(tǒng)的實地選址、組件選擇、部署設(shè)計,針對不同地區(qū)的太陽輻射資源和日照時數(shù),分別作不同部署方案。設(shè)計了最優(yōu)布線算法最大化節(jié)省企業(yè)開支,并通過科學(xué)手段幫助企業(yè)預(yù)估資金等安裝需求。同時針對整個光伏選配系統(tǒng)所需的數(shù)據(jù)信息設(shè)計了具體的數(shù)據(jù)庫表結(jié)構(gòu),形成一個系統(tǒng)的、規(guī)范的關(guān)系型數(shù)據(jù)庫。實時記錄項目的各種變化,完成數(shù)據(jù)的持久化操作[4]。開發(fā)了一個用戶體驗良好的系統(tǒng)數(shù)據(jù)錄入和項目查詢展示模塊,交互部分設(shè)計符合當下頁面習慣,整套軟件系統(tǒng)做到了規(guī)范、易用、簡潔、穩(wěn)定。
本系統(tǒng)主要由四個部分構(gòu)成,分別是:系統(tǒng)管理、后臺組件管理系統(tǒng)、光伏項目設(shè)計系統(tǒng)、公共操作系統(tǒng)。系統(tǒng)管理實現(xiàn)對本系統(tǒng)全部用戶的登錄鑒權(quán)和注冊授權(quán)服務(wù)。后臺管理系統(tǒng)實現(xiàn)對本系統(tǒng)已注冊或未注冊用戶帳戶管理、權(quán)限管理、系統(tǒng)組件管理和報價管理。項目設(shè)計系統(tǒng)實現(xiàn)光伏系統(tǒng)的實地選址、組件選擇、部署設(shè)計、選取最優(yōu)布線方案、預(yù)估資金的功能。公共操作系統(tǒng)實現(xiàn)給本系統(tǒng)涉及的清單、方案列表的PDF預(yù)覽下載功能和EXCEL下載功能,系統(tǒng)總體功能如圖1所示。
圖1 系統(tǒng)總體功能
為方便企業(yè)用戶遠程使用,本系統(tǒng)采用B/S架構(gòu),通過Apache Tomcat容器將應(yīng)用部署在云服務(wù)器上,用戶通過瀏覽器可直接訪問。服務(wù)端采用Spring MVC+Mybatis+Spring的最新Java技術(shù)。其中,Mybatis位于持久層,完成數(shù)據(jù)的持久化操作和讀取操作,Spring MVC處于控制層,實現(xiàn)對前臺請求的調(diào)度。采用Spring Framework管理所有系統(tǒng)對象的創(chuàng)建與銷毀。該設(shè)計模式的可重用性、可維護性極高,部署方便,最重要的是可以使項目具體實現(xiàn)的業(yè)務(wù)邏輯、項目的數(shù)據(jù)部分和項目實際的界面展現(xiàn)進行解耦,且可以將業(yè)務(wù)邏輯聚集到一個部分里面,符合當下系統(tǒng)設(shè)計“低耦合,高內(nèi)聚”的思想。系統(tǒng)部署設(shè)計如圖2所示。
圖2 系統(tǒng)部署設(shè)計
本系統(tǒng)使用Mysql數(shù)據(jù)庫,建立了十多張互相關(guān)聯(lián)的數(shù)據(jù)庫表管理全局所有的數(shù)據(jù),并設(shè)計合理的數(shù)據(jù)庫組合索引提高查詢效率。系統(tǒng)的核心表主要有9個,包括:sys_user,主要存放光伏選配系統(tǒng)用戶的基本信息以及管理員的基本信息;project,存放所有的項目信息;sys_role_permission,用來存放后臺管理員用戶的菜單權(quán)限列表;sys_permission,存放后臺系統(tǒng)的所有菜單;material_list,存放所創(chuàng)建的項目對應(yīng)的物料的基本信息;log,存放后臺操作時產(chǎn)生的操作日志;component,存放光伏板組件的一些信息;cdkey,主要存放生成的cdkey以及cdkey的狀態(tài);NASA,用來存放收集的NASA全球氣候數(shù)據(jù)信息。
根據(jù)系統(tǒng)四個部分的作用劃分,本系統(tǒng)具體有10個主要功能模塊。系統(tǒng)管理部分包括登錄注冊模塊;后臺管理系統(tǒng)包括用戶系統(tǒng)管理模塊、組件系統(tǒng)管理模塊以及日志系統(tǒng)管理模塊;項目設(shè)計系統(tǒng)包括新建系統(tǒng)項目、編輯修改系統(tǒng)項目、項目查詢以及物料清單查詢修改模塊;公共操作系統(tǒng)包括系統(tǒng)報告PDF預(yù)覽和下載模塊以及物料清單EXCEL下載模塊。系統(tǒng)整個功能流程如圖3所示。
圖3 系統(tǒng)功能流程
1.3.1 登錄注冊模塊
登錄注冊模塊作為系統(tǒng)管理的核心,負責后臺管理員用戶和項目設(shè)計系統(tǒng)用戶的登錄鑒權(quán)和退出管理,根據(jù)不同的用戶判定本次登錄、退出的有效性,并記錄其登錄、退出的日志。此外,登錄注冊模塊還負責后臺管理員用戶和項目設(shè)計系統(tǒng)用戶的修改密碼工作,并記錄其操作日志。
1.3.2 用戶管理模塊
管理員進入后臺系統(tǒng)的用戶管理模塊可以查看系統(tǒng)當前的新注冊用戶,并激活新用戶賬號。也可以重置密碼、遷移用戶賬戶,同時記錄操作日志。管理員進入用戶管理模塊的授權(quán)管理頁面下,可以創(chuàng)建子賬號并且給不同的賬戶授予不同的操作權(quán)限。該模塊還提供生成激活碼功能,項目設(shè)計系統(tǒng)的用戶通過激活碼可以激活賬號。
1.3.3 組件/日志管理模塊
后臺組建管理模塊可以增刪改查項目設(shè)計系統(tǒng)可選的光伏組件、逆變器組件,管理員進入后臺管理系統(tǒng)的組件管理模塊,可以批量修改各個組件的報價。日志管理模塊記錄下后臺管理系統(tǒng)用戶的所以操作記錄,方便企業(yè)日常運維管理。
1.3.4 新建項目模塊
光伏選配系統(tǒng)的用戶通過新建系統(tǒng)項目模塊,可以完成具體光伏發(fā)電系統(tǒng)的部署設(shè)計。其中包括記錄項目名稱、項目聯(lián)系人、電話;通過第三方百度地圖的引入精確定位項目部署地址,查看項目部署地周邊配套設(shè)施;根據(jù)NASA官方提供的氣候數(shù)據(jù)信息,可以方便用戶獲取項目部署地的光照條件、風速條件等外部信息。確定項目部署地址后,用戶可以選擇要部署的光伏板、逆變器的型號和數(shù)量以及選擇具體的部署規(guī)劃,新建項目模塊根據(jù)用戶選定的光伏版和逆變器數(shù)量和部署方式通過最優(yōu)布線算法實現(xiàn)最短路徑布線。最后根據(jù)用戶之前步驟會生成項目報告以及物料清單PDF簡圖供用戶查看。以上所有操作都會記錄在數(shù)據(jù)庫完成數(shù)據(jù)持久化存儲。
1.3.5 查看/更新項目模塊
用戶可以編輯修改項目的基本信息,包括:項目名稱、部署地址、聯(lián)系人、聯(lián)系電話等;可以編輯修改項目的設(shè)計方案,包括:系統(tǒng)類型、組件安裝角度、安裝點類型、光伏板型號等;可以編輯修改項目的組件排布設(shè)計,通過本系統(tǒng)的算法實現(xiàn)最優(yōu)布線;可以查詢賬戶所有的項目,并進一步查看單個項目的詳細信息,包括通過NASA數(shù)據(jù)庫查詢計算出來的項目相關(guān)的信息。
1.3.6 公共下載模塊
提供本系統(tǒng)所有項目的物料清單、組件接線圖和系統(tǒng)分析報告的PDF預(yù)覽功能,同時提供本系統(tǒng)所有項目的物料清單、組件接線圖和系統(tǒng)分析報告的PDF、EXCEL下載功能。
本系統(tǒng)創(chuàng)新性地提出了一種光伏板最優(yōu)布線算法,解決了傳統(tǒng)光伏板部署時的地理困難、預(yù)估困難、排線困難等一系列問題。同時,由于不同用戶使用習慣的差異,以及不同時段系統(tǒng)訪問并發(fā)量的巨大變化,導(dǎo)致訪問數(shù)據(jù)庫的頻率也存在差異。若整個連接池使用固定參數(shù),則整個系統(tǒng)在數(shù)據(jù)庫處理方面無法達到最優(yōu)性能[5]。為此提出一種實時生成的動態(tài)參數(shù)技術(shù),提升數(shù)據(jù)庫操作的性能。服務(wù)器根據(jù)不同時間段連接池的負載情況以及整個數(shù)據(jù)庫服務(wù)器的負載情況實時計算出服務(wù)器適合的最大連接數(shù)和最小連接數(shù),保證系統(tǒng)的性能達到最優(yōu)。另外,本系統(tǒng)基于第三方開放應(yīng)用百度地圖API實現(xiàn)了在線實地部署項目的功能;基于網(wǎng)絡(luò)爬蟲技術(shù)實現(xiàn)獲取NASA數(shù)據(jù)庫不同地區(qū)(精確到經(jīng)緯度)的風速、日照等氣候數(shù)據(jù),這些數(shù)據(jù)將被用于提高部署效率,降低部署成本,優(yōu)化部署方案。
2.1.1 算法背景
傳統(tǒng)光伏矩陣的線路規(guī)劃需要工程師手動繪圖,這種方式耗時且依賴于工程師的經(jīng)驗,在小規(guī)模光伏矩陣架設(shè)中沒有體現(xiàn)出巨大劣勢。但隨著光伏產(chǎn)業(yè)的蓬勃發(fā)展,光伏板架設(shè)也逐步往集群化發(fā)展,一個光伏板集群可能需要多個逆變器布設(shè)多條線路且一個光伏板只能連通一條線路。傳統(tǒng)的局部路徑規(guī)劃算法無法滿足多目標小最短路徑的高效計算,因為一條線路的布設(shè)過程會對其他線路造成很大影響,在單條線路達到最短即局部最優(yōu)的情況下,可能會造成另外一個局部路線無法連通或者性能極差的情況,因此考慮使用貪心策略[6]。只有在逆變器剩余可負載光伏板個數(shù)為0或者該行所有光伏板都已被連通的情況下,才允許向下或者向上連接?;谶@個貪心策略快速連通光伏板,然后在遇到向下情況時,利用分治法實現(xiàn)局部最優(yōu)。本系統(tǒng)基于動態(tài)規(guī)劃算法[7]和貪心策略設(shè)計了光伏板集群最優(yōu)布線算法。該算法可精準快速地根據(jù)現(xiàn)有的光伏板集群布局以及光伏板型號選擇最優(yōu)逆變器組且計算出最優(yōu)布線策略,以解決上述背景技術(shù)中提出的問題。
2.1.2 算法詳細步驟
1) 將光伏板分布圖以及光伏板型號輸入逆變器組分配模型,根據(jù)不同逆變器的功率、電流、電壓計算出需要最優(yōu)的逆變器組,以及每一個逆變器上可以連接的光伏板數(shù)量。
2) 根據(jù)步驟1中計算出的逆變器組分割光伏板集群并存儲,同時存儲不同的分割策略存儲以便回溯。
3) 連接第一個不為空且存在未連通光伏板的行,如果此時逆變器能連接的光伏板數(shù)量少于該行上未連通的光伏板數(shù)量,則從入口往右連接光伏板,直至逆變器能連接的光伏板數(shù)量為0,此時選擇一個新的逆變器,跳轉(zhuǎn)到步驟6;否則連滿該行所有光伏板,然后根據(jù)下一行光伏板的分布選擇線路下折的位置,跳轉(zhuǎn)到步驟4。
4) 從入口位置開始向左連接光伏板直到該逆變器剩余能連接的光伏板數(shù)量為0,選擇一個新的逆變器,然后跳轉(zhuǎn)到步驟5;剩余光伏板大于0則先連滿該行上的全部光伏板,然后跳轉(zhuǎn)到步驟3。
5) 將該行和下一行還未連通的前M列拓展為一個2×M的二維數(shù)組,如果此時逆變器能連接的光伏板數(shù)量大于這個2×M二維數(shù)組中光伏板數(shù)量,則使用動態(tài)規(guī)劃最短路徑算法規(guī)劃出在該數(shù)組中連通所有光伏板的最短路線,然后跳轉(zhuǎn)到步驟3;如果此時逆變器能連接的光伏板數(shù)量小于這個2×M二維數(shù)組中光伏板數(shù)量,優(yōu)先連滿該行的光伏板,再連接下一行的光伏板,直到逆變器剩余能連接的光伏板數(shù)量為0,跳轉(zhuǎn)到步驟6。
6) 將該行的前k列(上一行已經(jīng)連接的列)連滿,再將該行和上一行還未連通的列拓展為一個2×T的二維數(shù)組,如果此時逆變器能連接的光伏板數(shù)量大于這個2×T的二維數(shù)組中光伏板數(shù)量,則根據(jù)下一行光伏板的分布來選擇線路下折的位置,使用動態(tài)規(guī)劃最短路徑算法規(guī)劃出在該數(shù)組中連通所有光伏板的最短路線,如圖4,然后跳轉(zhuǎn)到步驟4;如果此時逆變器能連接的光伏板數(shù)量小于這個2×T的二維數(shù)組中光伏板數(shù)量,優(yōu)先連滿上一行行的光伏板,再連接該行的光伏板,直到逆變器剩余能連接的光伏板數(shù)量為0,跳轉(zhuǎn)到步驟6。
此時期主要以防治白粉病和地下紅蜘蛛為主。白粉病主要傷害小麥葉片,在田間要做到早發(fā)現(xiàn)早防治??刹扇娛┺r(nóng)藥、殺蟲劑的化學(xué)防治措施。用藥量可根據(jù)病情的嚴重程度和紅蜘蛛的數(shù)量來確定。
7) 當出現(xiàn)一些線路無法走通的情況,需要回溯重現(xiàn)選擇逆變器,如果重現(xiàn)選擇逆變器也無效,則選擇另一種分割策略。
該算法時間復(fù)雜度低,對于大規(guī)模光伏集群布線算法仍保持較高的效率,隨著實驗數(shù)據(jù)的增多,算法動態(tài)調(diào)參部分的參數(shù)新能越來越優(yōu),可以在時間復(fù)雜度,施工難度,用料量上達到綜合最優(yōu)。
整個算法的流程如圖4所示。
圖4 最優(yōu)布線算法流程
在光伏板布線中需要考慮的參數(shù)主要有:光伏板型號、逆變器組、導(dǎo)線長度等。其中在具體的光伏項目部署前需要實地考察,這增加了項目的部署周期,加大了部署成本,加劇了工程師的工作負擔,帶來了一系列的問題。為了解決這個問題,本系統(tǒng)通過在線調(diào)用第三方百度地圖實現(xiàn)了實時在線的地址選取。通過光伏板集群最優(yōu)布線算法,可以精準高效地根據(jù)現(xiàn)有的光伏板集群布局以及光伏板型號選擇最優(yōu)逆變器組并計算出最優(yōu)布線策略,解決了在集群規(guī)模下采用手工標注難度巨大且無法保證布線策略在時間復(fù)雜度、負載壓力、施工難度、用料量上難以達到綜合最優(yōu)的問題。
2.2.1 參數(shù)定義
(1) maxGLinkConnection:光伏選配系統(tǒng)數(shù)據(jù)庫連接池所能允許的連接數(shù)的上限。
(2) minGLinkConnection:光伏選配系統(tǒng)數(shù)據(jù)庫連接池所能允許的連接數(shù)的下限。
(4) returnConnectionTime:預(yù)設(shè)收回空閑資源的時間,用戶持有的連接若超過該時間沒有連接交互則強制收回該連接資源。
(5) connectionUsedRate:用戶對連接資源的利用率,使用當前給用戶分配的連接數(shù)和整個系統(tǒng)總的連接資源的比值計算。
(6) connectionReqFailRate:用戶連接請求失敗率,使用給定的單位時間段內(nèi)用戶連接請求的失敗次數(shù)和請求總次數(shù)的比值計算。
最小連接數(shù)和最大連接數(shù)是數(shù)據(jù)庫連接池技術(shù)的兩項重要參數(shù)[8-10]。光伏發(fā)電選配系統(tǒng)數(shù)據(jù)庫的連接池的參數(shù)根據(jù)系統(tǒng)用戶的活躍程度實時動態(tài)計算,以此來提高系統(tǒng)吞吐量。每個客戶端(瀏覽器)在使用本系統(tǒng)服務(wù)的生命周期內(nèi)會產(chǎn)生一些用戶無關(guān),但是和系統(tǒng)性能相關(guān)的數(shù)據(jù),數(shù)據(jù)庫連接處理服務(wù)器將根據(jù)這些數(shù)據(jù)計算出每個客戶端的最大連接數(shù)(maxGLinkConnection)和最小連接數(shù)(minGLinkConnection), 并把這些情況發(fā)送主服務(wù)器,據(jù)此來分配每個客戶端的數(shù)據(jù)庫連接資源,即設(shè)置數(shù)據(jù)庫連接池最大和最小連接數(shù)。這樣,整個數(shù)據(jù)庫連接處理服務(wù)器就可以保證數(shù)據(jù)庫處理的最佳性能。另外,由于每個用戶都有區(qū)別明顯的個性化操作習慣,數(shù)據(jù)庫連接處理服務(wù)器依據(jù)這些用戶習慣可以更準確地計算每個客戶端的數(shù)據(jù)庫連接池的參數(shù)。
2.2.2 連接池資源管理
在光伏選配系統(tǒng)服務(wù)器開啟時,數(shù)據(jù)庫連接池會依據(jù)設(shè)置的默認最小連接數(shù)minGLinkConnection創(chuàng)建連接。當用戶需要運用數(shù)據(jù)庫操作時,光伏系統(tǒng)首先會向數(shù)據(jù)庫的連接池中發(fā)起一個連接請求。如果此時的數(shù)據(jù)庫連接池中還有可供使用的連接,則將空閑連接分配給請求的用戶,等待用戶處理完數(shù)據(jù)庫操作請求后,該連接將歸還至數(shù)據(jù)庫連接池。如果用戶的數(shù)據(jù)庫操作請求到達時,數(shù)據(jù)庫連接池中并沒可供使用的閑置連接,則數(shù)據(jù)庫連接池會計算已分配的數(shù)據(jù)庫連接數(shù)是否達到默認設(shè)置的最大連接數(shù)maxGLinkConnection,如果還沒達到預(yù)設(shè)的最大連接數(shù),系統(tǒng)會分配給該請求進程一個新的連接。如果已經(jīng)達到允許的最大連接數(shù),則該用戶的請求必須等待一定時間(獲取連接的超時時間getConnectionOutTime),如果等待間隔超過該時間,則連接獲取失敗。如果在獲取連接請求超時時間內(nèi)有其他用戶釋放了自己的連接,則將該連接資源分配給正在等待連接的用戶。光伏系統(tǒng)還需另外再開啟一條監(jiān)控線程,用于檢測當前已經(jīng)被分配的連接的使用詳情。若超過預(yù)設(shè)時間returnConnectionTime的連接一直沒有用戶交互,則數(shù)據(jù)庫連接池將強制性地執(zhí)行連接收回操作。這樣可以避免某一個已完成數(shù)據(jù)庫操作的進程過長時間占據(jù)連接,進而提高連接利用率[11-12]。
但是上述連接池管理技術(shù)在性能上依然存在缺陷,在數(shù)據(jù)庫操作效率上還可以提高??紤]到在光伏發(fā)電選配系統(tǒng)的實際使用中,不同用戶在使用習慣上的差異性,以及系統(tǒng)使用高峰期用戶量和低峰期用戶量的巨大變化會導(dǎo)致每個客戶端對數(shù)據(jù)庫操作頻率的差異性,如果系統(tǒng)使用絕對固定的連接池參數(shù),將影響數(shù)據(jù)庫處理方面的操作,因此整個選配系統(tǒng)的性能無法達到最優(yōu)。為了進一步優(yōu)化整個光伏選配系統(tǒng)的數(shù)據(jù)庫操作效率,可根據(jù)不同時段訪問量和每個用戶操作數(shù)據(jù)庫的頻率,實時、動態(tài)可變地設(shè)置最優(yōu)的連接池參數(shù)。
2.2.3 數(shù)據(jù)庫連接池優(yōu)化策略
為了實時并且動態(tài)地計算每個用戶端瀏覽器的數(shù)據(jù)庫連接池參數(shù),需構(gòu)建額外的數(shù)據(jù)庫連接處理服務(wù)器作為調(diào)度中心,它負責對各個客戶端在一定周期內(nèi)的請求率進行統(tǒng)計。若某時間段請求率較低時,則服務(wù)器收回相應(yīng)連接資源,同時將記錄資源和時間的變化關(guān)系用于進一步優(yōu)化分析使用,結(jié)構(gòu)如圖5所示。
圖5 動態(tài)連接池結(jié)構(gòu)
當服務(wù)器初始化時,數(shù)據(jù)庫連接調(diào)度服務(wù)器根據(jù)該時間段并發(fā)量預(yù)估情況為系統(tǒng)設(shè)置一組初始的數(shù)據(jù)庫連接池參數(shù)。
在系統(tǒng)的實際運行過程中,需要動態(tài)地計算所有用戶的資源利用率connectionUsedRate和連接請求失敗率connectionReqFailRate。數(shù)據(jù)庫連接調(diào)度服務(wù)器實時記錄這些數(shù)據(jù),同時記錄該時間段內(nèi)整個數(shù)據(jù)庫連接池的資源使用情況,并基于這些數(shù)據(jù)做壓力分析,得到系統(tǒng)在當前環(huán)境下最快的數(shù)據(jù)庫連接參數(shù)。在系統(tǒng)實際使用中,數(shù)據(jù)庫連接調(diào)度服務(wù)器會分析各個時段下用戶請求連接的成功率和失敗率,必要情況下會剝奪一些成功率非常高的用戶的連接資源分配給連接成功率較低的用戶,以此實現(xiàn)全系統(tǒng)用戶請求資源的負載均衡。極端情況下,如果超過一半以上的用戶均出現(xiàn)連接請求失敗率過高的情況,則該時段極有可能是光伏選配系統(tǒng)訪問高峰期,數(shù)據(jù)庫連接調(diào)度服務(wù)器需要記錄該時段壓力情況,下次在該時段到來前會提前反饋給系統(tǒng)服務(wù)器,已請求額外資源開啟更多的數(shù)據(jù)庫連接降低用戶連接失敗率。
傳統(tǒng)的光伏項目在部署的時候需要預(yù)先進行實地考察,考察的因素包括部署地點的風速、光照強度、天氣狀況等氣候類型。這些繁瑣的步驟增加了項目的部署周期,給企業(yè)帶來了額外的資金開銷和人力開銷?;贜ASA數(shù)據(jù)庫的開放數(shù)據(jù),本系統(tǒng)實現(xiàn)了精確到經(jīng)緯度級別的氣候狀態(tài)獲取,通過調(diào)用百度地圖API和NASA數(shù)據(jù)相結(jié)合的在線實地排布光伏板大大簡化了部署周期,節(jié)約了人力物力。
NASA官網(wǎng)提供了全球的氣候數(shù)據(jù)信息,為了快速獲取這些信息并集成到本項目的數(shù)據(jù)庫,我們在系統(tǒng)中集成了一個獨立的網(wǎng)絡(luò)爬蟲服務(wù),該爬蟲服務(wù)基于WebMagic實現(xiàn)了廣度優(yōu)先的爬蟲框架。網(wǎng)絡(luò)爬蟲的關(guān)鍵是信息獲取和數(shù)據(jù)存儲,NASA對于氣候信息是公開的,本系統(tǒng)在信息獲取方面只需實現(xiàn)數(shù)據(jù)篩。NASA爬蟲利用Java類庫分析HTML頁面,通過正則表達式篩選相關(guān)氣候信息并過濾無關(guān)信息。在數(shù)據(jù)存儲方面,本系統(tǒng)將獲取到的信息直接存儲到系統(tǒng)專門的氣候數(shù)據(jù)庫表中備用?;讷@取的NASA氣候數(shù)據(jù),通過調(diào)用百度地圖API即可實現(xiàn)根據(jù)氣候特性在線部署光伏項目。
本系統(tǒng)的所有功能已經(jīng)完成單元測試和集成測試,系統(tǒng)的使用情況滿足預(yù)期設(shè)計要求,下面詳細介紹本系統(tǒng)核心功能。
3.1 新建項目
登錄后點擊新建項目按鈕,進入新建項目頁面。其中有三個部分,第一部分是項目基本信息,包括項目名、項目地點(調(diào)用百度地圖)、項目聯(lián)系人和項目聯(lián)系電話其中對項目名稱、聯(lián)系人和聯(lián)系電話都做了正則校驗過濾掉非法輸入,如圖6所示;第二部分是項目設(shè)計方案填寫,包括系統(tǒng)類型選擇、組建類型選擇、安裝點類型選擇和項目相關(guān)設(shè)置,如圖7所示;第三部分是組建排布設(shè)計,在此可以選擇光伏板的個數(shù)、排列方式等信息,最優(yōu)布線算法會根據(jù)這些信息生成最優(yōu)布線圖,如圖8所示。
圖6 新建項目-基本信息
圖7 新建項目-設(shè)計方案
圖8 新建項目-光伏板排布
3.2 物料清單/最優(yōu)布線
進入我的項目列表,查看用戶已經(jīng)新建的項目,可以查看項目的具體信息,包括系統(tǒng)分析報告(可下載PDF格式或EXCEL表),組件接線圖,物料清單(可下載PDF格式或EXCEL表)等,具體如圖9-圖11所示。
圖9 系統(tǒng)分析報告
圖10 物料清單
圖11 最優(yōu)布線
本文介紹了光伏發(fā)電選配系統(tǒng)設(shè)計與實現(xiàn)。本系統(tǒng)是傳統(tǒng)光伏發(fā)電項目的互聯(lián)網(wǎng)化產(chǎn)品,是“互聯(lián)網(wǎng)+”時代的產(chǎn)物。本文使用了優(yōu)化的數(shù)據(jù)庫連接池策略解決了系統(tǒng)運行效率問題,設(shè)計了光伏板最優(yōu)布線算法幫助使用本系統(tǒng)的企業(yè)實現(xiàn)了利益最大化。目前,本套系統(tǒng)已通過系統(tǒng)測試并逐步投入實際使用。