翁 正,陳 明,池 濤,劉亞蕊
(1上海海洋大學信息學院,上海 201306;2 農(nóng)業(yè)農(nóng)村部漁業(yè)信息重點實驗室,上海 201306)
2019年全國水產(chǎn)養(yǎng)殖產(chǎn)值共達9 761.89億元[1],水產(chǎn)品總產(chǎn)量逐年上升。加強水產(chǎn)養(yǎng)殖的信息化建設(shè),建立水產(chǎn)養(yǎng)殖監(jiān)測、預(yù)警和管理的綜合體系顯得十分重要[2-3]。水質(zhì)的安全關(guān)乎水產(chǎn)養(yǎng)殖的產(chǎn)量和質(zhì)量[4]。在養(yǎng)殖過程中,對水質(zhì)實現(xiàn)動態(tài)的監(jiān)測和預(yù)警[5],能提升養(yǎng)殖過程的穩(wěn)健性。傳統(tǒng)的水質(zhì)監(jiān)測系統(tǒng),存在系統(tǒng)精度低,系統(tǒng)控制延遲高,不能進行預(yù)測和提前預(yù)警等不足。江先亮等[6]設(shè)計了基于自動無人船的水產(chǎn)養(yǎng)殖水質(zhì)動態(tài)監(jiān)測系統(tǒng),提升了監(jiān)測效率。Fang等[7]設(shè)計了具有較好性能的環(huán)境監(jiān)測系統(tǒng),降低了系統(tǒng)的延遲。劉雨青等[8]開發(fā)了基于物聯(lián)網(wǎng)3層體系架構(gòu)的螃蟹養(yǎng)殖基地監(jiān)控系統(tǒng),但這3項研究都不能預(yù)測數(shù)據(jù)和提前預(yù)警。Ren等[9]采用變分模式分解(VMD)方法對數(shù)據(jù)去噪,基于深度信念網(wǎng)絡(luò)實現(xiàn)溶氧含量的預(yù)測。Heddam等[10]使用最小二乘支持向量機、多元自適應(yīng)回歸樣條和M5模型樹成功估算溶氧的質(zhì)量濃度。溶氧是水質(zhì)的關(guān)鍵指標,通常是監(jiān)測和分析工作的主要目標[11-12],其含量過低過高都會影響魚類的生長發(fā)育[13]。
綜合以上研究的優(yōu)缺點,提出了一種基于溶氧預(yù)測的低延遲水產(chǎn)養(yǎng)殖監(jiān)測系統(tǒng)。本系統(tǒng)中內(nèi)嵌了WT-LSTM溶氧預(yù)測模型,實現(xiàn)了對水產(chǎn)養(yǎng)殖水質(zhì)的實時監(jiān)測和溶氧的實時預(yù)測,預(yù)測精度不亞于文獻[9-10]和當前溶氧主流預(yù)測方法中的精度。
系統(tǒng)架構(gòu)包括數(shù)據(jù)采集模塊、傳輸模塊、控制模塊和應(yīng)用模塊??刂颇K主要由python上位機、MySQL和云服務(wù)組成,應(yīng)用模塊包括Web服務(wù)、App客戶端、用戶服務(wù)3部分[14],用戶可通過網(wǎng)頁客戶端查看實時水質(zhì)數(shù)據(jù)[15]。系統(tǒng)整體架構(gòu)如圖1所示。
圖1 系統(tǒng)架構(gòu)圖Fig.1 System architecture diagram
數(shù)據(jù)采集模塊實現(xiàn)水質(zhì)數(shù)據(jù)采集和處理的功能,采樣周期為1 min。采集系統(tǒng)電路連接多種傳感器獲取模擬信號,經(jīng)過MCU識別和計算后將結(jié)果值保存到本地寄存器。采集節(jié)點的MCU選用具有超低功耗、快速蘇醒、低電壓特點的MSP430F149作為控制芯片[16],MSP430F149芯片選用來自高頻時鐘源XT2(8 MHz)的MCLK信號作為時鐘源,時鐘周期為125 ns。采集節(jié)點的原理實物圖如圖2所示。
圖2 采集節(jié)點原理實物圖Fig.2 Schematic and physical diagram of acquisition node
傳感器電極端直接與水溶液接觸產(chǎn)生電勢差,信號通過緩沖和放大后送入模數(shù)轉(zhuǎn)換模塊,溫度補償信號同時送入該模塊。MCU對不同傳感器的信號進行濾波處理,綜合溫補計算出結(jié)果值,保存到本地寄存器。系統(tǒng)通過SX1268 LoRa射頻芯片,與上位機進行數(shù)據(jù)通信。系統(tǒng)中有PC-101品誠pH、pt100溫度、博取儀器DOG-209FYA溶氧、任氏Jenco3020M電導率和LENSHER氨氮5種傳感器,性能如表1所示。
表1 傳感器性能Tab.1 Performance of sensors
采集終端連接SX1268 LoRa芯片,與上位機端的LoRa射頻終端實現(xiàn)無線傳輸,實現(xiàn)系統(tǒng)的邊緣組網(wǎng)。上位機作為主機,發(fā)送查詢指令[17]給一臺或多臺從機,與各個采集終端進行點對點通信或廣播通信[18],采集終端作為從機,接收信號后將寄存器中的數(shù)據(jù)返回給上位機。系統(tǒng)采用modbus協(xié)議RTU模式進行通訊[19],4個采集設(shè)備的地址碼,按照01至04的順序編號。每個終端節(jié)點分別用2個寄存器存儲不同傳感器的數(shù)據(jù)。終端應(yīng)答指令中,傳感器數(shù)據(jù)占4個字節(jié),CRC16校驗碼在最后兩個字節(jié)。
本研究中,基于SX1268射頻芯片,針對不同距離進行了數(shù)據(jù)通信延遲測試。接收信號強度指示(RSSI)的計算如公式(1)所示。為確保通信延遲和RSSI的準確性,數(shù)據(jù)通信進行了多次記錄,結(jié)果取平均值,如公式(2)、(3)所示。
(1)
(2)
(3)
式中:r、ri為分別表示單次和第i次通信的RSSI,dBm;Rp為單包的信號強度,dBm;ti為第i次通信時間,s;tm為平均通信時間,s;Rm為平均通信的RSSI,dBm。
基于速率和有效通訊距離的考慮[20],本試驗中,LoRa空中速率設(shè)定為2.4 kbps,分包包長為32 B。傳輸方式為透明傳輸,通信頻率為433.125 MHz。按照不同的距離進行分段測試,最長通信距離為1 000 m[21],選取6種不同字節(jié)長度的數(shù)據(jù)進行雙向通信,通信延遲結(jié)果圖3所示。
圖3 LoRa通信延遲Fig.3 LoRa communication latency
丟包測試發(fā)現(xiàn),1 000 m距離的通信出現(xiàn)了丟包的情況,丟包率在1.2%左右?;趫D3、4發(fā)現(xiàn),數(shù)據(jù)通信延遲與距離和RSSI存在正向關(guān)聯(lián),地理環(huán)境對延遲也有一定的影響。1 000 m的通信距離上,地勢較開闊,使得延遲相對之前降低了,總體來看,單次通信延遲最低在1 s左右。該測試可為降低系統(tǒng)通信整體延遲提供參考。
圖4 LoRa的RSSIFig.4 The RSSI for LoRa
上位機與匯聚芯片通過RS232轉(zhuǎn)USB數(shù)據(jù)線相連,控制中心代碼基于python3編碼實現(xiàn),通過串口實現(xiàn)傳輸功能。上位機收到終端節(jié)點的數(shù)據(jù)后,識別數(shù)據(jù)地址碼,提取傳感器數(shù)據(jù)值,對CRC16校驗碼進行計算和對比,確認CRC16無誤后,將數(shù)據(jù)保存本地數(shù)據(jù)庫并上傳到云服務(wù)器。系統(tǒng)對數(shù)據(jù)中的溶氧進行判斷,若出現(xiàn)異常,則開啟增氧機。上位機的主要功能有下發(fā)查詢指令、接收檢驗應(yīng)答數(shù)據(jù)、計算CRC16校驗碼、數(shù)據(jù)保存和上傳、數(shù)據(jù)預(yù)測與溶氧預(yù)警6大功能。其工作流程圖如圖5所示。
圖5 上位機工作流程Fig.5 Workflow of upper computer
應(yīng)用邊緣計算[22-23]的方法,將云服務(wù)器的計算和控制任務(wù)卸載到上位機,來降低系統(tǒng)控制延遲。上位機系統(tǒng)實現(xiàn)數(shù)據(jù)預(yù)測的功能,當數(shù)據(jù)預(yù)測或采集數(shù)據(jù)中出現(xiàn)預(yù)警值時,上位機及時向增氧機[24]發(fā)出增氧的指令,防范水中出現(xiàn)低氧的情況。上位機系統(tǒng)配置有預(yù)測進程和數(shù)據(jù)收發(fā)進程,兩個進程并行計算。數(shù)據(jù)預(yù)測流程如圖6所示。
圖6 數(shù)據(jù)預(yù)測流程Fig.6 Data prediction process
系統(tǒng)通過線性插值或取平均值的方法,對異常數(shù)據(jù)進行替換,再通過小波變換(WT)的分解和重構(gòu)消除噪聲[25]。對數(shù)據(jù)進行歸一化處理并進行訓練,生成參數(shù)模型,對溶氧數(shù)據(jù)進行預(yù)測,保存到本地數(shù)據(jù)庫并上傳云服務(wù)器。
長短期記憶網(wǎng)絡(luò)(LSTM)是一種遞歸神經(jīng)網(wǎng)絡(luò),使用時間反向傳播進行訓練,可以解決梯度消失的問題。LSTM模型單元有遺忘門、輸入門和輸出門,來保護和控制單元狀態(tài)[26],如圖7所示。LSTM模型的關(guān)鍵是單元狀態(tài),即貫穿圖表頂部的水平線。每個單元就像一個微型狀態(tài)機,單元三個門的權(quán)重在訓練過程中學習得到。遺忘門是主要由σ層組成,σ層根據(jù)ht-1和xt的輸入,通過sigmoid激活函數(shù)計算信息的丟棄情況,生成一個0到1之間的結(jié)果ft,0表示全部丟棄,1表示全部保留。ft用于與Ct-1輸入矩陣做點乘運算[27],如公式(4)所示。輸入門會生成新的信息存儲到單元狀態(tài)中,主要由σ層和tanh層決定,如公式(5),(6)所示。通過公式(7)的運算,單元狀態(tài)從Ct-1更新為Ct。輸出門決定輸出的結(jié)果,由σ層、tanh層和更新后的單元狀態(tài)Ct共同決定,如公式8,9所示。
圖7 LSTM單元狀態(tài)圖Fig.7 LSTM cell state diagram
ft=σ(Wf·[ht-1,xt]+bf)
(4)
it=σ(Wi·[ht-1,xt]+bi)
(5)
(6)
(7)
ot=σ(Wo[ht-1,xt]+bo)
(8)
ht=ot*tanh(Ct)
(9)
溶氧預(yù)警是基于數(shù)據(jù)監(jiān)測和溶氧預(yù)測來完成。實時監(jiān)測的溶氧值或1 h內(nèi)的溶氧預(yù)測值,超出正常值范圍,系統(tǒng)啟動溶氧預(yù)警機制,及時告知用戶,控制增氧機。當溶氧值回歸正常范圍十分鐘后,系統(tǒng)確認增氧機狀態(tài),關(guān)閉增氧機。
Web服務(wù)包括水質(zhì)數(shù)據(jù)監(jiān)測、數(shù)據(jù)庫管理、溶氧預(yù)警、增氧機控制和系統(tǒng)設(shè)置5個模塊。水質(zhì)數(shù)據(jù)監(jiān)測用于顯示01至04號監(jiān)測點的水質(zhì)狀態(tài)和溶氧預(yù)測數(shù)據(jù)。數(shù)據(jù)庫管理可查詢歷史水質(zhì)數(shù)據(jù),溶氧預(yù)警模塊監(jiān)測實時的溶氧值和溶氧預(yù)測值,智能化控制增氧機。增氧機控制模塊可直接打開或關(guān)閉增氧機。
本研究在上海海洋大學內(nèi)搭建監(jiān)測平臺進行測試,共設(shè)置4個終端監(jiān)測節(jié)點,一個匯聚節(jié)點,4個節(jié)點與匯聚節(jié)點的距離分別為118、104、479、917 m,通信區(qū)域中間包括樹木和教學樓等建筑物,如圖8所示。
圖8 測試節(jié)點設(shè)置Fig.8 Test node setup
2021年3月13日15時21分,4個采集節(jié)點的數(shù)據(jù)如表2所示,經(jīng)過與測量的標準值比較,pH、溫度、溶氧、電導率和氨氮的相對誤差分別小于1.4%、0.7%、0.2%、12%、5%。本次試驗中,4個節(jié)點分別采集了2021年3月9日至3月17日13 160個數(shù)據(jù),采用周期為1 min,01號節(jié)點溶氧的數(shù)據(jù)如圖9所示。
圖9 01號監(jiān)測點溶氧數(shù)據(jù)Fig.9 Dissolved oxygen data at No.01
表2 各監(jiān)測點平均相對誤差(MRE)Tab.2 Mean relative error (MRE) of each monitoring point
針對01號節(jié)點采集的13 160份數(shù)據(jù)中,將80%的采集數(shù)據(jù)分配到訓練集,用于訓練模型,20%的數(shù)據(jù)作為測試集,用于測試模型效果。LSTM網(wǎng)絡(luò)中,time_step長度為80,每個數(shù)據(jù)包含pH、溫度、溶氧和氨氮4個參數(shù),輸入層輸入的樣本尺寸為80×4。由于電導率對溶氧預(yù)測基本無影響[28],經(jīng)過實際驗證,本試驗未考慮電導率。網(wǎng)絡(luò)中隱藏層神經(jīng)元個數(shù)1 000個,輸出層以1 h的溶氧預(yù)測值作為輸出,輸出維度為60×1。LSTM模型是基于keras框架下的模型來構(gòu)建[29-30]。模型訓練時,迭代次數(shù)為50次,batch_size為100。生成LSTM模型參數(shù)后,用測試集的數(shù)據(jù)進行預(yù)測,預(yù)測結(jié)果能較好地顯示溶氧的變化過程,如圖10所示。
圖10 測試集預(yù)測結(jié)果Fig.10 Test set prediction results
LSTM方法對長距離數(shù)據(jù)依賴關(guān)系具有較強的建模能力,與其他預(yù)測模型比較,具有記憶性,更適合處理時序數(shù)據(jù)。本試驗中將監(jiān)測數(shù)據(jù)設(shè)置為經(jīng)過小波變換前后的2種數(shù)據(jù),基于LSTM、RNN和GRU 3種預(yù)測方法,產(chǎn)生6種預(yù)測結(jié)果。本研究選擇均方根誤差(RMSE)、納什系數(shù)(NSE)、平均絕對誤差(MAE)和相關(guān)系數(shù)(R2)對結(jié)果進行評測分析[31],如表3所示,預(yù)測結(jié)果如圖11所示。
表3 模型性能對比分析Tab.3 Comparative analysis of model performance
從圖11可看出,對pH、溫度、溶氧和氨氮四種參數(shù)的數(shù)據(jù)經(jīng)過小波變換后,其中的噪聲被去除,監(jiān)測數(shù)據(jù)變得相對緩和,這更加符合實際情況。
圖11 溶氧預(yù)測對比Fig.11 Comparison of DO prediction
監(jiān)測數(shù)據(jù)去除噪聲后,對比預(yù)測結(jié)果可知,WT-LSTM模型相比LSTM模型的結(jié)果,RMSE降低了21.27%,NSE提高了0.3%,MAE降低了21.91%,R2升高了0.1%,預(yù)測性能得到全面提升。WT-GRU與GRU結(jié)果比較、WT-RNN與RNN結(jié)果比較,情況也與之類似??傮w來看,經(jīng)過小波變換除噪后,采用LSTM進行溶氧預(yù)測的結(jié)果,在RMSE、NSE、MAE、R24種評測系數(shù)上表現(xiàn)最佳,因此本研究采用該方法進行數(shù)據(jù)處理與預(yù)測,這一情況在圖11的預(yù)測結(jié)果中也可比較得出。溶氧的預(yù)測結(jié)果,能較好地解決增氧機控制滯后的問題,這為現(xiàn)代化淡水漁業(yè)養(yǎng)殖提供了便利。
帶有溶氧預(yù)測、低延遲的淡水養(yǎng)殖監(jiān)測系統(tǒng)實現(xiàn)了對水質(zhì)的實時監(jiān)測,pH、溫度、溶氧、電導率和氨氮監(jiān)測數(shù)據(jù)的相對誤差分別小于1.4%、0.7%、0.2%、12%、5%。采用小波變換對采集數(shù)據(jù)去噪后,利用LSTM預(yù)測模型能夠較為準確地預(yù)測1 h內(nèi)的溶氧含量,預(yù)測結(jié)果的RMSE為0.074,NSE為0.993,MAE為0.057,R2為0.997?;谏衔粰C實現(xiàn)溶氧預(yù)測和控制任務(wù),降低了系統(tǒng)控制延遲。本研究實現(xiàn)了大面積養(yǎng)殖區(qū)域的多點實時監(jiān)測和溶氧數(shù)據(jù)的預(yù)測,可提前做好溶氧預(yù)警防范工作,解決了增氧機控制滯后的問題。由于訓練數(shù)據(jù)集有限,當氣溫短時間出現(xiàn)較大的變化或開啟增氧機后一段時間,系統(tǒng)溶氧預(yù)測的準確度會下降。
□