曹守啟 葛照瑞 張 錚
(上海海洋大學工程學院, 上海 201306)
近年來我國水產(chǎn)養(yǎng)殖業(yè)高速發(fā)展,水產(chǎn)養(yǎng)殖經(jīng)濟產(chǎn)值不斷增加,其中海水養(yǎng)殖產(chǎn)業(yè)占據(jù)很大比重,對我國經(jīng)濟發(fā)展具有重要影響[1-2]。在近海養(yǎng)殖中,水體環(huán)境質(zhì)量對水產(chǎn)養(yǎng)殖具有較大的影響,水質(zhì)環(huán)境是養(yǎng)殖產(chǎn)物賴以生存的根本,其中溶解氧濃度直接影響著漁業(yè)產(chǎn)品的品質(zhì)[3],它不僅反映了水質(zhì)的標準,同時也反映了水產(chǎn)品的生長狀況,溶解氧濃度作為近海養(yǎng)殖環(huán)境中重要的一個因子已經(jīng)引起人們重視[4],不過,海水中的溶解氧濃度極不穩(wěn)定,很容易受外界環(huán)境的影響,如溫度、風速以及人類活動等都會造成溶解氧濃度的變化,所以實現(xiàn)近海水體的水質(zhì)監(jiān)測并做出相關判斷對水產(chǎn)養(yǎng)殖業(yè)高效高產(chǎn)具有非常重要的現(xiàn)實意義[5]。
物聯(lián)網(wǎng)的高速發(fā)展在很大程度上為我國近海養(yǎng)殖業(yè)的發(fā)展提供了便利,同時也對我國近海水產(chǎn)養(yǎng)殖提出了更高的要求。國內(nèi)外眾多學者針對水產(chǎn)養(yǎng)殖環(huán)境監(jiān)測系統(tǒng)[6-7]及環(huán)境參數(shù)預測模型進行了大量研究[8-10],金光等[11]設計的基于低功耗廣域物聯(lián)網(wǎng)的海島養(yǎng)殖環(huán)境監(jiān)測系統(tǒng),使用多節(jié)點提高監(jiān)測范圍但增加了成本和網(wǎng)絡復雜度,不易管理。孟憲法等[12]在基于單片機MSP430的海洋浮標低功耗設計中,利用北斗衛(wèi)星實現(xiàn)通信,但通信天線的瞬時功率較大。袁紅春等[13]基于XGBoost的溶解氧預測模型研究利用長短時記憶(LSTM) 神經(jīng)網(wǎng)絡實現(xiàn)了溶解氧的預測,但忽略了對環(huán)境因素的考量。劉晶晶等[14]提出的基于K-Similarity降噪的LSTM神經(jīng)網(wǎng)絡水質(zhì)多因子預測模型在一定程度上減小了誤差,但依然沒有考慮氣象環(huán)境的影響。
本文設計一種基于物聯(lián)網(wǎng)的浮標水質(zhì)遠程監(jiān)測系統(tǒng),并根據(jù)監(jiān)測數(shù)據(jù)利用改進的算法建立溶解氧濃度預測模型。利用浮標平臺實現(xiàn)傳感器的搭載,借助物聯(lián)網(wǎng)實現(xiàn)遠程數(shù)據(jù)監(jiān)控,并針對傳統(tǒng)遺傳算法BP神經(jīng)網(wǎng)絡模型存在的誤差浮動問題進行研究,提出改進方案,利用遠程監(jiān)控數(shù)據(jù)實現(xiàn)溶解氧濃度預測。
本文設計的基于物聯(lián)網(wǎng)的近海養(yǎng)殖水質(zhì)監(jiān)測系統(tǒng),終端節(jié)點基于自主設計的海洋浮標實現(xiàn),集數(shù)據(jù)采集、遠程傳輸、存儲管理和遠程監(jiān)測等功能為一體,整體架構如圖1所示。
系統(tǒng)中浮標[15-17]作為承載裝置,利用太陽能系統(tǒng)實現(xiàn)自供電,采集系統(tǒng)利用水質(zhì)和氣象傳感器進行數(shù)據(jù)采集,采集的數(shù)據(jù)經(jīng)過RS485通信傳輸?shù)轿⒖刂破鳎⑼ㄟ^無線網(wǎng)絡傳輸?shù)接脩艚K端,實現(xiàn)數(shù)據(jù)監(jiān)控和數(shù)據(jù)分析。
監(jiān)控系統(tǒng)電源電路選用TPS54302同步降壓轉換器,可最大限度提高輕負載效率并降低功率損耗;主控制器選用STM32L475芯片[18-19];無線通信模塊選用EC20 4G網(wǎng)絡通信模塊,其內(nèi)置高精度定位芯片在實現(xiàn)數(shù)據(jù)傳輸?shù)耐瑫r又能精確地定位到浮標監(jiān)測系統(tǒng)的實時位置,為后期系統(tǒng)維護提供了便捷。監(jiān)控系統(tǒng)采用RS485通信模式,有效提高了數(shù)據(jù)的傳輸速率,并增加了系統(tǒng)抗噪聲干擾的性能,為系統(tǒng)遠距離的數(shù)據(jù)傳輸提供了保障,同時保證了多數(shù)據(jù)參數(shù)采集的準確性,電路結構圖如圖2所示。
電浮標監(jiān)控系統(tǒng)的供電主要來源于太陽能,儲能設備是由鉛酸蓄電池組成的電池組,監(jiān)控系統(tǒng)的負載作為整個系統(tǒng)消耗電能的主要部分,主要包括傳感器模塊、數(shù)據(jù)處理模塊、通信定位模塊等。本監(jiān)測系統(tǒng)傳感器主要包括溶解氧濃度、pH值、氨氮濃度、鹽度、葉綠素、大氣壓、光照、溫濕度、風速、風向、雨量等,由于近海氣象環(huán)境不穩(wěn)定,養(yǎng)殖用戶需要隨時了解近海環(huán)境信息,所以選擇溶解氧濃度、pH值、大氣壓、光照、溫濕度、風速、風向、雨量等參數(shù)進行監(jiān)測。
在設計外圍傳感器和通信電路時,為降低傳感器和通信模塊的功耗采用繼電器控制,采取間隔關斷,當需要采集數(shù)據(jù)或者發(fā)送數(shù)據(jù)時,利用繼電器可控關斷接通電路,當數(shù)據(jù)采集發(fā)送結束,便不再對外部電路進行供電以達到降低消耗的目的。同時為傳感器留有持續(xù)供電端口方便測試??紤]到海水腐蝕性較強,在連接時采用防水接頭以延長系統(tǒng)的使用時間,系統(tǒng)測試實物圖如圖3所示。
在選擇傳感器時,要求傳感器兩端工作電壓小于12 V,以RDO-206型溶解氧濃度傳感器為例,其供電電壓12 V,精度為0.01 mg/L,額定電流40 mA,正常情況下功耗為480 mW,其余傳感器參數(shù)如表1所示。則正常情況下所有傳感器每天的功率消耗為34 560 mW·h,當采用繼電器控制電路時,可根據(jù)實際情況設置每小時進行4次數(shù)據(jù)采集,每次采集功率消耗為192 mW·h,則所有傳感器正常情況下每天功率能耗為4 608 mW·h。故本文所采取的繼電器開關電路能夠起到節(jié)約能源的作用。
表1 負載額定參數(shù)Tab.1 Load rating parameters
云監(jiān)測平臺是浮標環(huán)境監(jiān)測系統(tǒng)的核心組成部分,利用Linux系統(tǒng)下的開發(fā)工具CentOS進行服務器搭建與配置[20],網(wǎng)絡服務平臺整體架構如圖4。
服務器搭建主要包括遠程監(jiān)控數(shù)據(jù)接收、數(shù)據(jù)庫、后臺信息管理等部分。監(jiān)控信息接收主要用于獲取浮標監(jiān)測系統(tǒng)各傳感器采集的數(shù)據(jù)以及視頻監(jiān)控畫面并將數(shù)據(jù)存入數(shù)據(jù)庫,本文利用IntelliJ IDEA軟件進行開發(fā),采用Java語言Netty高并發(fā)框架,使用maven進行jar包構建,在CentOS服務器上進行部署[21]。后臺信息管理主要為計算機端訪問提供接口,開發(fā)時采用SpringMVC框架,并使用Mybatis框架實現(xiàn)對數(shù)據(jù)庫表的操作[22]。數(shù)據(jù)端監(jiān)控部分利用HTML、CSS、JS進行開發(fā),以訪問頁面的形式實現(xiàn)用戶對環(huán)境的實時監(jiān)控,頁面訪問如圖5所示。只需要點擊對應的養(yǎng)殖標識就可以顯示此地的水質(zhì)情況和氣象信息。
用戶可通過監(jiān)控終端實現(xiàn)多區(qū)域養(yǎng)殖環(huán)境的監(jiān)控,并實時反映監(jiān)控信息,開發(fā)時考慮到環(huán)境參數(shù)眾多,首頁內(nèi)各窗口間采用星狀鏈接結構,避免瀏覽信息時的繁瑣操作,而首頁與后臺的切換采用樹狀鏈接結構[23],條理清晰,系統(tǒng)還添加了養(yǎng)殖日志窗口,可實時查看近海養(yǎng)殖過程中的投喂信息,并集成有視頻監(jiān)控窗口實現(xiàn)遠程監(jiān)控。監(jiān)控人員可以通過后臺服務隨時有選擇地下載監(jiān)測數(shù)據(jù),實現(xiàn)數(shù)據(jù)的分析。浮標系統(tǒng)采集的氣象數(shù)據(jù)、水質(zhì)數(shù)據(jù)使用json格式協(xié)議與遠程服務器進行通信,并在CentOS服務器上開啟TCP通信端口進行監(jiān)聽。平臺使用MYSQL作為數(shù)據(jù)庫,具有高性能、低成本、高可靠性的特點。本系統(tǒng)GIS地圖引擎選用Open Layers作為地圖引擎。Open Layers是一個開源的輕量級可支持離線的地圖引擎,提供強大的展示和交互功能。它是一個高性能、功能豐富的庫,用于在Web上創(chuàng)建交互式地圖。它可以顯示任何網(wǎng)頁上任何來源加載的地圖塊、矢量數(shù)據(jù)和標記。同時,開發(fā)有手機APP終端,水質(zhì)監(jiān)測、氣象監(jiān)測等部分詳情如圖6所示。
手機端可以隨時監(jiān)測水質(zhì)氣象環(huán)境的數(shù)據(jù),APP程序將水質(zhì)數(shù)據(jù)繪制成曲線,方便觀察環(huán)境變化趨勢,同時設置有數(shù)據(jù)報警門限,當監(jiān)測的水質(zhì)因子超出正常范圍時會自動報警,與頁面訪問一樣,手機端也可同時監(jiān)控多個養(yǎng)殖基地的數(shù)據(jù),并開發(fā)有在線視頻監(jiān)測功能,可隨時隨地觀察養(yǎng)殖基地的實際情況。
針對傳統(tǒng)遺傳算法(GA)BP神經(jīng)網(wǎng)絡優(yōu)化存在的誤差浮動性問題進行優(yōu)化處理,通過對遺傳算法的改進和誤差判斷進行反復的網(wǎng)絡訓練,找到最優(yōu)的訓練結果,然后實施數(shù)據(jù)預測,使預測結果不斷接近真實值,從而達到誤差不斷尋優(yōu)的目的,減少了由于遺傳算法優(yōu)化神經(jīng)網(wǎng)絡模型預測產(chǎn)生的數(shù)據(jù)訓練不準確性造成的誤差波動。
傳統(tǒng)遺傳算法優(yōu)化的神經(jīng)網(wǎng)絡模型雖然具有高魯棒性和廣泛適用性的特點[24-25],能夠有效處理枚舉法等傳統(tǒng)優(yōu)化算法難以解決的復雜系統(tǒng)優(yōu)化問題,但由于網(wǎng)絡訓練的不確定性和不穩(wěn)定性,會造成預測數(shù)據(jù)不準確,這樣即使利用遺傳算法計算了最優(yōu)適應度,選擇最優(yōu)權值閾值[26],但最終預測結果也會有所偏差,計算的誤差也并非最優(yōu)誤差,結果仍存在一定的不確定性。
本試驗在傳統(tǒng)遺傳算法優(yōu)化神經(jīng)網(wǎng)絡模型的基礎上進行改進,改進后優(yōu)化過程可以分為4部分,分別為BP神經(jīng)網(wǎng)絡結構確定、遺傳算法優(yōu)化、BP神經(jīng)網(wǎng)絡預測、尋找最優(yōu)誤差輸出。主要區(qū)別是增加了尋優(yōu)過程,在完成數(shù)據(jù)訓練實現(xiàn)預測功能的基礎上,對得到的預測誤差進行判斷,并反復進行此過程,尋找誤差最小的一組預測結果進行輸出,提高預測的精度。改進后的遺傳算法優(yōu)化神經(jīng)網(wǎng)絡流程圖如圖7所示。
統(tǒng)計結果表明,算法大部分情況下在訓練200次左右后將會出現(xiàn)相對較小的誤差。因此可將訓練的步驟最大值設為250次,對于少數(shù)情況,可以通過判定訓練結束時的誤差,若大于可以承受的誤差,則重新開始訓練。
2.3.1BP神經(jīng)網(wǎng)絡模型構建
BP神經(jīng)網(wǎng)絡是單向多層前饋網(wǎng)絡,利用誤差反向傳播算法,根據(jù)梯度下降原理實現(xiàn)參數(shù)調(diào)節(jié)。該網(wǎng)絡由輸入層、輸出層以及一個或多個隱含層節(jié)點連接而成,其輸入信號從輸入節(jié)點通過隱含層傳遞到輸出節(jié)點。 在進行溶解氧預測試驗中,本文主要考慮時間、pH值、大氣壓、光照、溫度、風速等監(jiān)測參數(shù)作為預測模型的輸入層節(jié)點,水中溶解氧濃度作為預測模型的輸出層節(jié)點??紤]到在任何閉區(qū)域內(nèi)的一個連續(xù)型函數(shù)用一個隱含層的BP神經(jīng)網(wǎng)絡就可以達到較好的擬合效果,而多隱含層網(wǎng)絡雖然有較好的泛化能力和較高的預測精度,但是訓練時間較長,故對于模型中存在的映射關系,在網(wǎng)絡精度達到要求的情況下,選擇單隱含層,以加快速度訓練速度。
隱含層節(jié)點數(shù)計算式為
(1)
式中l(wèi)——隱含層節(jié)點數(shù)
n——輸入層節(jié)點數(shù)
m——輸出層節(jié)點數(shù)
α——1~10之間的常數(shù)
通過對比不同隱含層節(jié)點數(shù)下的輸出誤差最終確定隱含層節(jié)點數(shù)為13。因此,溶解氧濃度BP神經(jīng)網(wǎng)絡預測模型結構為6-13-1,模型結構如圖8所示。
在BP神經(jīng)網(wǎng)絡中,輸入層的節(jié)點決定了隱含層的神經(jīng)元數(shù)量,設第i個樣本的輸入向量為
xi=(x1,x2,…,xn)
(2)
期望輸出為
yi=(y1,y2,…,yn)
(3)
則隱含層輸出為
(4)
預測輸出為
(5)
預測誤差
ei=yk-gk(k=1,2,…,m)
(6)
輸入層、隱含層和輸出層神經(jīng)元之間的連接權重為ωij、ωjk,隱含層閾值aj,輸出層閾值bk,f為隱含層激勵函數(shù)。
激勵函數(shù)又稱激活函數(shù),用于給神經(jīng)元引入非線性的因素,使得神經(jīng)網(wǎng)絡可以逼近任意非線性函數(shù)應用于非線性模型中,常用的激活函數(shù)有Sigmoid 函數(shù)、tanh函數(shù)、ReLU函數(shù)和softmax函數(shù)。故經(jīng)過綜合考慮與試驗對比采用tanh函數(shù)作為激活函數(shù)。
2.3.2遺傳算法優(yōu)化
(1)初始化種群利用實數(shù)編碼的方式實現(xiàn)個體編碼,將所有個體均用實數(shù)串表示,包括輸入層和隱含層連接權值、隱含層閾值、隱含層與輸出層連接權值以及輸出層閾值4部分,神經(jīng)網(wǎng)絡的左右權值和閾值都包含在個體內(nèi),在已知網(wǎng)絡結構的情況下,便可以組成一個結構、權值、閾值都確定的神經(jīng)網(wǎng)絡。
(2)根據(jù)個體獲得的BP神經(jīng)網(wǎng)絡初始權值和閾值,利用80%的訓練數(shù)據(jù)進行BP神經(jīng)網(wǎng)絡的訓練預測輸出,將期望輸出和預測輸出的平方差絕對值的和定義為個體適應度F,計算公式為
(7)
式中yi——BP神經(jīng)網(wǎng)絡的第i個節(jié)點的期望輸出
oi——第i個節(jié)點的實際輸出
k——系數(shù)
(3)選擇操作:選用輪盤賭的方式進行選擇操作,每個個體i的選擇概率pi為
(8)
(9)
式中fi——個體i的適應度
N——種群個體數(shù)目
由于適應度越小越好,所以在個體選擇前對適應度求倒數(shù)。
(4)交叉操作:對多重個體采用實數(shù)交叉的方式,染色體k、l、i在第j位的交叉操作方法為
(10)
式中b——[0,1]之間的隨機數(shù)
(5)變異操作:選取第i個個體的第j個基因aij進行變異,操作方法為
(11)
其中
式中r2——隨機數(shù)
amax——基因aij上界
amin——基因aij下界
Gmax——最大進化次數(shù)
r——[0,1]間的隨機數(shù)
2.3.3神經(jīng)網(wǎng)絡預測
BP神經(jīng)網(wǎng)絡利用遺傳算法優(yōu)化的權值和閾值實現(xiàn)數(shù)據(jù)訓練,經(jīng)過訓練的神經(jīng)網(wǎng)絡便能對類似樣本的輸入信息進行處理,從而輸出誤差最小的經(jīng)過非線性轉換的信息。
2.3.4訓練尋優(yōu)
尋找最優(yōu)誤差環(huán)節(jié)主要是依托于BP神經(jīng)網(wǎng)絡預測部分進行,當計算出預測誤差后,判斷誤差是否達到最優(yōu)或滿足數(shù)據(jù)預測所需的精度,如果不能達到要求就重新對BP神經(jīng)網(wǎng)絡進行訓練,再次實現(xiàn)數(shù)據(jù)預測并計算預測誤差進行判斷,通過不斷地優(yōu)化誤差操作以實現(xiàn)誤差的尋優(yōu)過程,最后輸出最優(yōu)的數(shù)據(jù)預測結果。
選取上海海洋大學近海試驗基地作為浮標投放點,設置監(jiān)控系統(tǒng)每15 min進行一次數(shù)據(jù)采集,既保證對環(huán)境信息的準確把握,又在一定程度上節(jié)約了能源。將本浮標環(huán)境監(jiān)控系統(tǒng)放置在近海岸區(qū)域,通過網(wǎng)絡傳輸在監(jiān)控平臺實現(xiàn)數(shù)據(jù)監(jiān)控和采集,如圖9所示。
利用本文設計的監(jiān)測系統(tǒng),選取2020年4月15—17日3 d的監(jiān)測數(shù)據(jù),包括時間、溶解氧濃度、pH值、大氣壓、光照、溫濕度、風速、風向等,從監(jiān)控頁面選擇下載所需要的數(shù)據(jù)并選擇部分參數(shù)繪制曲線如圖10所示。
由圖10可知,近海區(qū)域的溶解氧濃度、pH值等參數(shù)呈周期性變化趨勢,由于氣候等因素會產(chǎn)生部分波動,隨著每天時間的變化可以看出環(huán)境溫度等也呈周期性變化,因此本文針對溶解氧濃度預測在傳統(tǒng)BP神經(jīng)網(wǎng)絡遺傳算法模型的基礎上提出改進方案,利用環(huán)境參數(shù)和少量水質(zhì)參數(shù)實現(xiàn)對海水中溶解氧濃度的預測。
3.2.1模型參數(shù)選擇
為了保證模型不提前收斂,同時提高模型的精確度,盡可能得到全局解,故種群模型應盡可能的大一些,為保證最終結果的精確度,在參數(shù)選擇過程中采用對比試驗的方法,對種群規(guī)模、進化代數(shù)等進行多次參數(shù)設置并運行程序,經(jīng)試驗對比最終種群規(guī)模設置為50,物種進化代數(shù)設置為20次。
由于交叉和變異概率太高或者太低都不利于種群發(fā)展,所以為了盡可能地提高模型精確度,提高預測準確度,并根據(jù)交叉和變異概率的一些性質(zhì),交叉概率一般選取0.6~0.9,變異概率一般選取0.01~0.3,經(jīng)過多次試驗結果對比,最終選用交叉概率為0.6,變異概率為0.1。
3.2.2預測試驗結果分析
利用Matlab編程,根據(jù)所采集的數(shù)據(jù),隨機選擇224組數(shù)據(jù)用作網(wǎng)絡訓練,剩下的56組作為測試數(shù)據(jù),運行程序得到改進后遺傳算法神經(jīng)網(wǎng)絡模型預測值與實際值的變化曲線如圖11所示,同時為驗證改進后算法的準確性,利用文獻[27-28]在試驗中所采用的方法形成對比試驗,將所得到的預測數(shù)據(jù)進行分析得到實際值與預測值如表2所示,3種方法預測誤差如表3所示,并繪制不同算法下相對誤差如圖12所示。
表2 測量數(shù)據(jù)與預測數(shù)據(jù)對比Tab.2 Comparison between measured and predicted data mg/L
表3 預測誤差對比Tab.3 Comparison of prediction errors
由表2、3可以看出,BP神經(jīng)網(wǎng)絡的運算時間雖短但結果的精度不高,傳統(tǒng)的遺傳算法BP神經(jīng)網(wǎng)絡模型預測時間較長,預測精度有所提高,而改進遺傳算法BP神經(jīng)網(wǎng)絡模型雖然所用時間較長,但預測精度有明顯提高,其預測平均誤差為0.017 8 mg/L,均方差為0.000 570 mg/L,標準差為0.023 909 mg/L,改進算法決定系數(shù)為0.990 8,故改進后算法具有更好的擬合度。通過圖12也可以明顯看出,改進遺傳算法BP神經(jīng)網(wǎng)絡模型的預測結果更加接近真實值,其預測誤差更加穩(wěn)定。結果表明,經(jīng)上述改進的算法訓練后得到的神經(jīng)網(wǎng)絡模型不僅對訓練樣本具有很好的擬合能力,而且對測試樣本也具有很高的擬合能力,由此可見利用改進遺傳算法BP神經(jīng)網(wǎng)絡模型預測溶解氧濃度的方法可行。
(1)針對近海養(yǎng)殖環(huán)境設計了浮標水質(zhì)監(jiān)測系統(tǒng),利用浮標平臺實現(xiàn)近海區(qū)域的環(huán)境監(jiān)測,試驗結果表明,本系統(tǒng)能夠穩(wěn)定可靠地在近海環(huán)境中工作,且各項監(jiān)測指標都能夠滿足近海環(huán)境監(jiān)測的需求。
(2)針對近海養(yǎng)殖中具有非線性變化特點的溶解氧參數(shù),在傳統(tǒng)遺傳算法BP神經(jīng)網(wǎng)絡優(yōu)化模型的基礎上提出改進方案,彌補網(wǎng)絡自身的不足,減少了由于初始權值和閾值的隨機選取而造成的網(wǎng)絡訓練時間較長等問題,同時提高了原有優(yōu)化算法的計算精度。試驗結果表明,改進遺傳算法BP神經(jīng)網(wǎng)絡優(yōu)化模型雖然訓練時間有所增加,但預測精度明顯提高,平均誤差由0.077 8 mg/L降至0.017 8 mg/L,建模研究結果表明,改進遺傳算法BP神經(jīng)網(wǎng)絡優(yōu)化模型能對溶解氧濃度進行可靠的預測。