王琪明, 李懷良,2, 榮文鉦, 程亮瑋
(1.西南科技大學(xué) 國防科技學(xué)院,四川 綿陽 621010;2.成都理工大學(xué) 地質(zhì)災(zāi)害防治與地質(zhì)環(huán)境保護國家重點實驗,四川 成都 610059;3.四川輕化工大學(xué),四川 自貢 643000; 4.西南科技大學(xué) 信息工程學(xué)院,四川 綿陽 621010)
地震勘探是鉆探前勘測石油、天然氣資源和固體資源地質(zhì)找礦的重要手段[1]。因此地震勘探設(shè)備處于重要發(fā)展地位。電源是目前野外勘探儀器設(shè)備中必不可少的核心單元。目前的野外勘探主要以傳統(tǒng)的鉛蓄電池、發(fā)電機、太陽能等供電方式為主,供電方式繁多,未形成統(tǒng)一的標(biāo)準(zhǔn)。而且目前的電源功能較為單一,主要以單純供電為主,電源保護主要依賴電源自身的內(nèi)部或外部結(jié)構(gòu),未考慮不同使用環(huán)境下的電源保護問題,輕則容易引起電源供電問題,重則會對勘探設(shè)備造成損壞[2]。野外勘探工區(qū)范圍較廣,電源設(shè)備數(shù)量龐大,人工很難及時發(fā)現(xiàn)電源的異常情況,導(dǎo)致隱患排除不及時,從而引發(fā)用電設(shè)備及電源故障,影響勘探效率。針對上述問題,本文設(shè)計了一種可以實時在線監(jiān)測電源各項工作狀態(tài)的便攜式智能電源系統(tǒng)。
系統(tǒng)總體結(jié)構(gòu)包括電源數(shù)據(jù)采集單元、云服務(wù)器、通用分組無線業(yè)務(wù)(general packet radio service,GPRS)網(wǎng)絡(luò)、互聯(lián)網(wǎng)(Internet)和客戶端組成。電源數(shù)據(jù)采集單元主要進行電源數(shù)據(jù)采集,包括電源溫度、電源電壓和電源位置等信息,通過GPRS網(wǎng)絡(luò)將采集到的數(shù)據(jù)信息發(fā)送至云服務(wù)器進行數(shù)據(jù)處理與存儲;利用WiFi和4G網(wǎng)絡(luò),客戶端可以遠(yuǎn)程訪問云服務(wù)器獲取電源的相關(guān)信息。
電源數(shù)據(jù)采集單元主要包括電源保護單元和通信單元兩部分。電源保護單元通過外圍電路采集電源的電壓、溫度等狀態(tài)信息,通過通用同步異步收發(fā)機(universal synchronous asychronous receiver transmitter,USART)接口傳輸給通信模塊。同時,通信模塊通過USART接口接收到電源的GPS定位信息之后,將定位信息和狀態(tài)信息進行數(shù)據(jù)打包,并封裝協(xié)議幀發(fā)送至云服務(wù)器進行數(shù)據(jù)處理。
本文主控芯片使用意法半導(dǎo)體生產(chǎn)的STM32F103[3]。電量檢測電路選用STM32F103內(nèi)部自帶的模/數(shù)轉(zhuǎn)換器(analog to digital converter,ADC),通過單片機的PA0口與上拉電阻R8和下拉電阻R10組成的分壓電路可直接對電源電量進行檢測,可由式(1)計算得出
(1)
式中Vo為測量電壓,Vi為輸入電壓。采用下拉電容C16和C18濾除雜波來確保測量精度。
溫度測量電路主要采用一種“一線總線”接口的溫度傳感器DS18B20。DS18B20的數(shù)據(jù)線與單片機的PB12引腳相連,通過上拉電阻的方式進行數(shù)據(jù)采集。溫度采集精度為±0.5 ℃。
由于本文使用的單線圈宏發(fā)磁保持繼電器需要正負(fù)脈沖作為其打開閉合的激發(fā)信號,所以本文設(shè)計了由LTV—816和UD2—4.5NU組成的脈沖激發(fā)電路,其電路圖如圖1所示。
圖1 脈沖激發(fā)電路
系統(tǒng)對電壓精度要求比較高,因此選用LTV—816作為光耦合器。LTV—816作為信號隔離的接口器件,可以大大增加電路的可靠性,而且利用線性光耦合器可構(gòu)成光耦反饋電路,通過調(diào)節(jié)控制端電流來改變占空比,達(dá)到精密穩(wěn)壓目的。同時光耦可以完成電—光—電的轉(zhuǎn)換,從而達(dá)到輸入信號與輸出信號隔離的作用[4]。UD2—4.5NU為一個單刀雙擲開關(guān),通過管腳3與管腳2,管腳4的閉合關(guān)斷以及管腳6與管腳5,管腳7的閉合關(guān)斷來形成一個±12 V的脈沖作為單線圈宏發(fā)磁保持繼電器的激發(fā)信號,從而控制電路的充放電狀態(tài),達(dá)到電源保護的目的。
本文通信模塊選用具有4 G傳輸功能和GPS定位功能[5]的SIM808模塊[6]。電路圖如圖2所示。為了實時獲取設(shè)備位置信息,需要SIM808模塊實時處于開機狀態(tài),所以使用R25作為下拉電阻來實現(xiàn)模塊的上電自啟動。本模塊通過SIM_TXD串口和SIM_RXD串口實現(xiàn)與SIM卡的通信,以此獲得網(wǎng)絡(luò)支持。圖中電感R20和電阻R21采用上拉的方式為GPS天線的射頻引腳提供阻抗匹配,以保證線路阻抗和負(fù)載阻抗處于最佳傳輸狀態(tài)。
圖2 SIM808模塊電路
為使系統(tǒng)能夠穩(wěn)定運行,高并發(fā)的服務(wù)器軟件是系統(tǒng)的重要組成部分之一,在一定程度上決定了該系統(tǒng)的根本性能。服務(wù)器采用分層式結(jié)構(gòu)進行設(shè)計,主要包括三層:硬件網(wǎng)絡(luò)接入層、API管理層和應(yīng)用(App)展示層。整體結(jié)構(gòu)圖如圖3所示。硬件網(wǎng)絡(luò)接入層主要接收來自電源數(shù)據(jù)采集單元的數(shù)據(jù)并進行打包;API管理層主要進行數(shù)據(jù)處理和報警系統(tǒng)管理,Redis和MYSQL進行數(shù)據(jù)存儲;App展示層進行數(shù)據(jù)展示,包括實時監(jiān)控、工區(qū)與設(shè)備管理和歷史數(shù)據(jù)查詢[7]。
圖3 服務(wù)器整體結(jié)構(gòu)
硬件網(wǎng)絡(luò)接入層主要基于T-io技術(shù)框架結(jié)構(gòu)編程,以提高系統(tǒng)吞吐量。為了實現(xiàn)高負(fù)載和高并發(fā),所以采用非阻塞(NIO)的模式[8]。此模式為雙向通道,可以同時在通道上發(fā)送和讀取數(shù)據(jù),可以提高程序的執(zhí)行效率。當(dāng)啟動框架配置之后,T-io框架數(shù)據(jù)接口訪問設(shè)備IP,并通過TCP/IP協(xié)議將電源數(shù)據(jù)采集單元的數(shù)據(jù)進行打包,通過Zbus消息隊列傳至API管理層。
數(shù)據(jù)總體管理結(jié)構(gòu)如圖4所示。小程序訪問接口或Web瀏覽器訪問接口通過數(shù)據(jù)管理接口調(diào)用Redis和MYSQL數(shù)據(jù)庫中的數(shù)據(jù)。其中MYSQL數(shù)據(jù)庫中可以存放所有數(shù)據(jù),包括報警記錄、工區(qū)設(shè)備、用戶和歷史數(shù)據(jù)等。而Redis中主要存放調(diào)用比較頻繁的一些數(shù)據(jù),包括實時數(shù)據(jù)、報警規(guī)則和用戶Session等信息。Redis為高性能的Key-value數(shù)據(jù)庫,采用HashMap的方式存放數(shù)據(jù)結(jié)構(gòu)[9]。HashMap的優(yōu)勢是查找和操作的時間復(fù)雜度為0,可以減少系統(tǒng)訪問數(shù)據(jù)庫的壓力,提高系統(tǒng)性能。
圖4 數(shù)據(jù)總體管理結(jié)構(gòu)
由于JFinal具有MVC架構(gòu),設(shè)計精巧,使用簡單,遵循OCO原則,在ActiveRecord的支持下,可以是數(shù)據(jù)庫開發(fā)到極致,所以App展示層采用JFinal為主體框架[10]。以RESTful為數(shù)據(jù)接口,RESTful在調(diào)用一個接口時可以不用考慮上下文,不用考慮當(dāng)前的狀態(tài),這就極大地降低了復(fù)雜度[11]。用Shiro安全框架來處理身份驗證、授權(quán)、密碼以及會話管理,以保證用戶登錄信息的安全。在App展示層與API管理層利用RPC作為業(yè)務(wù)橋梁,App展示層通過Zbus消息隊列實現(xiàn)RPC來調(diào)用API管理層的接口,從而實現(xiàn)實時數(shù)據(jù)展示層與業(yè)務(wù)邏輯層的分離,便于后期軟件維護升級。
為了提高用戶使用體驗感,減少用戶手機使用內(nèi)存,本文采用了“用完即走”特性的微信小程序進行開發(fā),實現(xiàn)與用戶實時交互的功能。微信小程序端的設(shè)計包括數(shù)據(jù)動態(tài)獲取和用戶交互界面的設(shè)計。通過Request請求以Post方法動態(tài)向服務(wù)器請求數(shù)據(jù),實現(xiàn)數(shù)據(jù)動態(tài)獲取。采用框架設(shè)計的標(biāo)簽語言WXML,結(jié)合基礎(chǔ)組件、事件系統(tǒng),構(gòu)建出各個頁面的結(jié)構(gòu),通過樣式語言WXSS描述 WXML 的組件樣式,再利用JavaScript腳本通過Https協(xié)議實現(xiàn)向服務(wù)器發(fā)起請求,動態(tài)獲取數(shù)據(jù)驅(qū)動WXML進行實時渲染。用戶交互界面通過對地圖軟件的調(diào)用,實現(xiàn)地圖信息查詢功能。功能菜單頁列出工區(qū)管理、數(shù)據(jù)查看、設(shè)備管理與報警設(shè)置四個功能。工區(qū)管理和設(shè)備管理實現(xiàn)對工區(qū)和設(shè)備的增刪查改,數(shù)據(jù)查看實現(xiàn)對歷史數(shù)據(jù)的查看,報警設(shè)置實現(xiàn)對報警規(guī)則的設(shè)置和修改。
電源在充放電過程中出現(xiàn)的過充過放情況都會導(dǎo)致電源損傷影響電源壽命。測試條件:放電時用電源(容量為100 Ah)給功率為300 W的用電設(shè)備供電,直至電源電量降至臨界值,之后用C300充電器(輸出電壓14.6 V,輸出電流10 A)對電源進行充電。為了獲得可靠電量信息,此處軟件處理部分對ADC數(shù)據(jù)進行10次采集并求平均值得出最后的實際電量,精度可達(dá)±0.01 V。
圖5 電量測試
放電曲線中,電源在初始階段電壓快速下降,之后進入電源的平臺區(qū),電壓變化緩慢。在電源電量接近放完時,電源負(fù)載電壓開始急劇下降,直至達(dá)到放電截止電壓。充電曲線中,在充電初始階段由于電源處于低電量狀態(tài),所以此時充電速率較快。之后充電過程進入平緩階段,電量變化緩慢。當(dāng)電源電量接近滿電狀態(tài)時電源進入虛充狀態(tài),直至達(dá)到充電截止電壓。綜上所述,充電和放電曲線符合電源充放電特性,表明系統(tǒng)的電量監(jiān)測功能達(dá)到設(shè)計需求,且具有較高的可靠性。
客戶端的功能主要包括對電源工作狀態(tài)實時監(jiān)控和位置信息查詢。圖6為客戶端界面。
圖6 客戶端界面
在一個工區(qū)中有三條測試線,每條測試線有12個電源設(shè)備,共36個電源設(shè)備。電源的工作狀態(tài)由顏色區(qū)分可分為三種狀態(tài):綠色為工作正常,黃色為需要充電,紅色為電源故障。在客戶端可以快速定位需充電或發(fā)生故障的電源的地理位置,及時對電源進行充電或故障維修,以保證勘探工程的順利進行。對于GPS定位,主要采用GPS坐標(biāo)轉(zhuǎn)火星坐標(biāo)進行定位,經(jīng)過實際測量定位精確度在5 m以內(nèi),達(dá)到實際定位需求。
本文設(shè)計實現(xiàn)了一種基于物聯(lián)網(wǎng)的智能電源監(jiān)控系統(tǒng)。系統(tǒng)由電源數(shù)據(jù)采集單元、云服務(wù)器和客戶端組成。電源數(shù)據(jù)采集單元采集數(shù)據(jù)之后通過GPRS網(wǎng)絡(luò)傳輸至云服務(wù)器,實現(xiàn)對數(shù)據(jù)的處理與存儲,客戶端以Post方法動態(tài)向服務(wù)器請求數(shù)據(jù),使電源數(shù)據(jù)達(dá)到界面化顯示的效果,實現(xiàn)了對電源工作狀態(tài)的實時監(jiān)控和位置跟蹤。最終,本系統(tǒng)實現(xiàn)了對電源狀態(tài)的實時遠(yuǎn)程監(jiān)控、電源位置信息追蹤和電源特性分析。相較于傳統(tǒng)電源提高了電源的使用壽命和安全性。通過對定位信息的獲取減少了電源的人為損耗,在地震勘探中具有很大的實際應(yīng)用價值。