何建強(qiáng),韓美林
(1.商洛學(xué)院 電子信息與電氣工程學(xué)院,商洛 726000;2.商洛市人工智能研究中心,商洛 726000)
習(xí)近平總書記強(qiáng)調(diào):“秦嶺的自然生態(tài)美景,誰(shuí)都不能破壞”。 保護(hù)好秦嶺生態(tài)環(huán)境,既是貫徹落實(shí)新發(fā)展理念、建設(shè)生態(tài)文明、維護(hù)國(guó)家生態(tài)安全的必然要求,也是推進(jìn)“五新”戰(zhàn)略、促進(jìn)秦嶺地區(qū)人與自然和諧發(fā)展的重大舉措, 具有重要的社會(huì)、經(jīng)濟(jì)、生態(tài)、文化價(jià)值,功在當(dāng)代,利在千秋[1]。 丹江發(fā)源于陜西省商洛地區(qū)西北部的秦嶺南麓,流經(jīng)陜西省、河南省、湖北省,在湖北省丹江口市注入丹江口水庫(kù),與漢江交匯[2]。 干流全長(zhǎng)390 km,是漢江最長(zhǎng)的支流,流域面積17300 km2,占漢江流域總面積的10%[3]。 丹江是“南水北調(diào)”中線工程的重要水源地,近年來(lái),商洛市全面實(shí)施循環(huán)發(fā)展戰(zhàn)略,保護(hù)水源地,建設(shè)生態(tài)商洛,確保“一江清水供京津”。 但雖隨著移民搬遷工程的推進(jìn)及經(jīng)濟(jì)社會(huì)的發(fā)展,越來(lái)越多的生活污水排放至丹江, 直接影響丹江流域水質(zhì)。 丹江流域的污水監(jiān)測(cè)每年耗費(fèi)巨大的人力、財(cái)力,不具備實(shí)時(shí)、智能的特點(diǎn)。 本文針對(duì)目前丹江流域污水源水質(zhì)監(jiān)測(cè)方面存在的問(wèn)題,設(shè)計(jì)了一種水質(zhì)監(jiān)測(cè)預(yù)警系統(tǒng),該系統(tǒng)可通過(guò)ZigBee 無(wú)線傳感器網(wǎng)絡(luò)和4G 網(wǎng)絡(luò)完成水質(zhì)參數(shù)的采集和傳輸, 通過(guò)ABC-BP 預(yù)測(cè)模型,實(shí)現(xiàn)pH 值、DO(溶解氧)、導(dǎo)電率、水溫等水質(zhì)的實(shí)時(shí)顯示和預(yù)警功能[4]。 本系統(tǒng)的設(shè)計(jì)有助于提升丹江流域水污染的治理和防控能力,提高水質(zhì)自動(dòng)化監(jiān)測(cè)的準(zhǔn)確性,為政府的水環(huán)境監(jiān)測(cè)與治理提供有效的基礎(chǔ)信息和有力的技術(shù)支撐,促進(jìn)了智慧城市建設(shè)。
本系統(tǒng)主要由監(jiān)測(cè)終端部分、4G 網(wǎng)絡(luò)模塊和上位機(jī)軟件部分組成,系統(tǒng)總體結(jié)構(gòu)如圖1 所示。 監(jiān)測(cè)終端部分主要實(shí)現(xiàn)pH 值、DO、導(dǎo)電率、水溫等水質(zhì)參數(shù)的采集, 該模塊主要由PH 傳感器、DO 傳感器、導(dǎo)電率傳感器、溫度傳感器、CC2530 處理器、電源模塊及相應(yīng)的信號(hào)調(diào)理電路構(gòu)成。 采集節(jié)點(diǎn)通過(guò)ZigBee 無(wú)線網(wǎng)絡(luò)將采集到的水質(zhì)參數(shù)傳至處理器上,再通過(guò)高速率的4G 網(wǎng)絡(luò)傳輸?shù)竭h(yuǎn)程監(jiān)測(cè)中心。為了降低節(jié)點(diǎn)消耗的能量,采用光伏板和蓄電池相結(jié)合的方式對(duì)系統(tǒng)供電[5]。 遠(yuǎn)程監(jiān)測(cè)中心對(duì)數(shù)據(jù)進(jìn)行分析存儲(chǔ)、處理并建立水質(zhì)預(yù)測(cè)模型,預(yù)測(cè)水質(zhì)情況。 采用JAVA 語(yǔ)言編寫監(jiān)測(cè)中心上位機(jī)軟件。
圖1 丹江流域水質(zhì)監(jiān)測(cè)系統(tǒng)總體結(jié)構(gòu)圖Fig.1 Overall structure of water quality monitoring system in Danjiang river basin
終端節(jié)點(diǎn)主要由傳感器、ZigBee 網(wǎng)絡(luò)和電源3部分組成[6]。主要負(fù)責(zé)采集信息并傳至ZigBee 模塊,由ZigBee 模塊將其傳輸?shù)骄W(wǎng)關(guān),其系統(tǒng)框圖如圖2所示。
圖2 數(shù)據(jù)采集節(jié)點(diǎn)框圖Fig.2 Block diagram of data acquisition node
ZigBee 模塊的核心芯片采用CC2530, 該芯片可構(gòu)建超低功耗、低成本、功能強(qiáng)大的無(wú)線傳感網(wǎng)絡(luò),其各方面性能優(yōu)于CC2430 芯片[6]。CC2530 的基本電路如圖3 所示。L1和C1~C8形成去耦電路,為芯片工作提供穩(wěn)定的電源。
圖3 CC2530 的基本電路Fig.3 Basic circuit of CC2530
網(wǎng)關(guān)節(jié)點(diǎn)是整個(gè)ZigBee 無(wú)線網(wǎng)絡(luò)的核心。接收終端數(shù)據(jù)采集節(jié)點(diǎn)發(fā)送的pH 值、DO、導(dǎo)電率、水溫等數(shù)據(jù),經(jīng)處理器處理后,通過(guò)4G 無(wú)線網(wǎng)絡(luò)傳輸至監(jiān)測(cè)中心[6]。 由于整個(gè)監(jiān)測(cè)網(wǎng)絡(luò)中數(shù)據(jù)處理量大,網(wǎng)關(guān)節(jié)點(diǎn)數(shù)量比較少,還要執(zhí)行來(lái)自遠(yuǎn)程監(jiān)控中心的命令信息。 因此,采用基于ARM11 內(nèi)核的S3C6410芯片作為本設(shè)計(jì)的網(wǎng)關(guān)節(jié)點(diǎn)處理器[7],網(wǎng)關(guān)節(jié)點(diǎn)系統(tǒng)框圖如圖4 所示。
圖4 網(wǎng)關(guān)節(jié)點(diǎn)系統(tǒng)框圖Fig.4 System block diagram of gateway node
為克服S3C6410 存儲(chǔ)和運(yùn)行程序內(nèi)存不足的弊端,本系統(tǒng)的程序代碼采用AM29LV160D 型號(hào)間,將程序存入擴(kuò)展存儲(chǔ)器中執(zhí)行。擴(kuò)展電路如圖5所示。芯片存儲(chǔ),采用HY57V641620 HG 型號(hào)芯片作為擴(kuò)展存儲(chǔ)器。為了降低程序讀寫過(guò)程中的延遲時(shí)
圖5 存儲(chǔ)器擴(kuò)展電路Fig.5 Memory expansion circuit diagram
nSCS0 是片選網(wǎng)絡(luò)標(biāo)號(hào),nOE 是讀允許網(wǎng)絡(luò)標(biāo)號(hào),nSWE 是寫允許網(wǎng)絡(luò)標(biāo)號(hào),DATA0-DATA15 是輸入與輸出的數(shù)據(jù)網(wǎng)絡(luò)標(biāo)號(hào)。 它們分別與S3C6410 的XM1CSN0[PINL23],XM0OEN[PINL4],XM1WEN[PINM19],XM0DATA0~XM0DATA15 相連接[6]。
HY57V641620HG 中的BA1 和BA0 分別與S3C-6410的XM1ADDR0[PINH24]和XM1ADDR1[PINJ24]引腳相連接。 行地址選通信號(hào)線nSRAS、列地址選通信號(hào)線nSCS0、寫允許信號(hào)nSWE、讀允許信號(hào)線nOE 分別與S3C6410 的XM1RASN[PINL44],XM1CASN[PINL24],XM1WEN[PINM19]和XM0OEN[PINL42]引腳相連接[6]。
數(shù)據(jù)采集節(jié)點(diǎn)上電開始工作后,硬件設(shè)備初始化并加入網(wǎng)絡(luò)。 入網(wǎng)成功后,采集pH 值、DO、導(dǎo)電率、水溫等數(shù)據(jù)并將數(shù)據(jù)傳輸至下個(gè)節(jié)點(diǎn)。 無(wú)采集命令時(shí),處于休眠工作模式[8]。 程序流程如圖6 所示。
圖6 終端信息采集節(jié)點(diǎn)程序流程圖Fig.6 Flow chart of terminal information collection node progr am
網(wǎng)關(guān)節(jié)點(diǎn)上電后,設(shè)備初始化并建立WSN 網(wǎng)絡(luò),在接收到終端節(jié)點(diǎn)的入網(wǎng)請(qǐng)求信息后,判斷是否允許加入網(wǎng)絡(luò)。 如果允許加入網(wǎng)絡(luò),則為其分配網(wǎng)絡(luò)地址,接收傳輸?shù)膒H 值、含氧量、導(dǎo)電率、水溫等水質(zhì)參數(shù)數(shù)據(jù),并向4G 模塊發(fā)送數(shù)據(jù)。 網(wǎng)關(guān)節(jié)點(diǎn)程序流程如圖7 所示。
圖7 網(wǎng)關(guān)節(jié)點(diǎn)程序流程Fig.7 Gateway node program flow chart
3.3.1 系統(tǒng)架構(gòu)
本文采用C/S 架構(gòu)設(shè)計(jì)丹江流域水質(zhì)監(jiān)測(cè)預(yù)警系統(tǒng), 將預(yù)測(cè)模型轉(zhuǎn)換為計(jì)算機(jī)可以完成的功能,保障水質(zhì)預(yù)測(cè)的高效性、穩(wěn)定性和安全性。 系統(tǒng)整體架構(gòu)分為3 層,如圖8 所示。 依次為基礎(chǔ)數(shù)據(jù)層、功能服務(wù)層和用戶層。 每一層之間是相互獨(dú)立且具有一定的聯(lián)系。
圖8 水質(zhì)監(jiān)測(cè)預(yù)警系統(tǒng)架構(gòu)圖Fig.8 Architecture of water quality monitoring and early warning system
3.3.2 系統(tǒng)功能
采用java 語(yǔ)言實(shí)現(xiàn)水質(zhì)監(jiān)測(cè)預(yù)警系統(tǒng)的整體功能,選用關(guān)系型數(shù)據(jù)庫(kù)MySQL 5.7 作為數(shù)據(jù)庫(kù)管理系統(tǒng)。 系統(tǒng)主要包括用戶管理模塊、核心模塊和系統(tǒng)設(shè)置模塊。 系統(tǒng)整體功能模塊如圖9 所示。
圖9 系統(tǒng)整體功能模塊Fig.9 Overall functional modules of system
ABC-BP 預(yù)測(cè)模型主要是采用人工蜂群算法對(duì)BP 神經(jīng)網(wǎng)絡(luò)中各層的權(quán)值和閾值進(jìn)行優(yōu)化,將通過(guò)人工蜂群算法求得最優(yōu)解轉(zhuǎn)換為BP 神經(jīng)網(wǎng)絡(luò)各層的權(quán)值和閾值,提升BP 神經(jīng)網(wǎng)絡(luò)預(yù)測(cè)的精確度,使其預(yù)測(cè)輸出速度更快、更準(zhǔn)確[9]。 ABC-BP 的基本流程如圖10 所示。
圖10 ABC-BP 算法流程Fig.10 ABC-BP algorithm flow chart
步驟1創(chuàng)建一個(gè)BP 神經(jīng)網(wǎng)絡(luò);
步驟2對(duì)種群及算法中最大循環(huán)搜索次數(shù)MCN,limit 和初始種群Ns 進(jìn)行初始化,Ns 中所有解都為一個(gè)D 維向量,該向量Xi(i=1,…,Ns)表示連接權(quán)值和閥值,維數(shù)D 滿足公式(1):
式中:n,i 和o 分別表示隱層神經(jīng)元、輸入神經(jīng)元和輸出神經(jīng)元的數(shù)量。
步驟3雇傭蜂按照公式(2)搜索新解,按照公式(3)求解各個(gè)解的適應(yīng)度值,采用貪婪法選擇新解;
式中:i 和fi分別表示第i 個(gè)食物源和當(dāng)前目標(biāo)函數(shù)值,k∈{1,2,…,Ns}和j∈{1,2,…,D}是隨機(jī)值,且k≠i。
步驟4跟隨蜂依據(jù)公式(4)計(jì)算收益率,按照收益率搜索新解并選擇新解:
式中:f(x)為適應(yīng)度值。
步驟5對(duì)解的更新失敗次數(shù)和limit 值進(jìn)行比較,若limit 的值小于更新失敗次數(shù),產(chǎn)生新解進(jìn)行替換,并保存最優(yōu)解;
步驟6判斷循環(huán)次數(shù)(MCN)是否達(dá)到最大,若達(dá)到最大值則結(jié)束,否則返回步驟3;
步驟7將所得最優(yōu)解轉(zhuǎn)換為BP 神經(jīng)網(wǎng)絡(luò)各層的權(quán)值和閾值,然后對(duì)BP 神經(jīng)網(wǎng)絡(luò)進(jìn)行訓(xùn)練。
為驗(yàn)證ABC-BP 算法進(jìn)行水質(zhì)預(yù)測(cè)的可靠性和有效性, 以丹江流域商洛市商州區(qū)段6 個(gè)監(jiān)測(cè)點(diǎn)2019年11月水質(zhì)實(shí)測(cè)數(shù)據(jù)100 組作為研究對(duì)象,前80 組作為訓(xùn)練樣本,其余數(shù)據(jù)作為檢驗(yàn)樣本,進(jìn)行實(shí)驗(yàn)研究。 實(shí)測(cè)數(shù)據(jù)水質(zhì)監(jiān)測(cè)點(diǎn)地理分布和經(jīng)緯度信息分別如圖11 和表1 所示。
表1 站點(diǎn)名稱和經(jīng)緯度信息Tab.1 Site name and latitude and longitude information
圖11 水質(zhì)監(jiān)測(cè)點(diǎn)地理分布圖Fig.11 Geographical distribution of water quality monitoring points
ABC-BP 算法參數(shù)設(shè)置: 為兼顧最優(yōu)解和算法搜索時(shí)間本文選取蜂群的數(shù)量為200,Ns=Ne=No=100。 解的維數(shù)D 通過(guò)公式(1)計(jì)算可得D=49,limit設(shè)定為100,最大循環(huán)次數(shù)MCN 為110[10]。
ABC-BP 算法和BP 算法的仿真結(jié)果如圖12 所示, 從圖中可以明顯的看出ABC-BP 算法得到的仿真結(jié)果更加精確,誤差更小。 計(jì)算可得,最大誤差值為0.05,誤差最小值為0,平均誤差0.013,總誤差量值為0.279。 與BP 神經(jīng)網(wǎng)絡(luò)算法相比誤差減少了45.8%。 ABC-BP 算法和BP 神經(jīng)網(wǎng)絡(luò)算法輸出的誤差百分比如圖13 所示, 從圖中可以看出優(yōu)化后的算法大大降低了預(yù)測(cè)誤差。
圖12 ABC-BP 算法和BP 算法的仿真結(jié)果對(duì)比Fig.12 Comparison of simulation results between ABC-BP algorithm and BP algorithm
圖13 ABC-BP 算法和BP 算法輸出的誤差百分比比較Fig.13 Comparison of error percentage output between ABC-BP algorithm and BP algorithm
采用Java 語(yǔ)言來(lái)編寫監(jiān)測(cè)中心上位機(jī)軟件系統(tǒng),可實(shí)現(xiàn)水質(zhì)參數(shù)的實(shí)時(shí)顯示、歷史數(shù)據(jù)查詢、數(shù)據(jù)導(dǎo)出,數(shù)據(jù)分析和參數(shù)預(yù)警等功能[11]。歷史數(shù)據(jù)查詢界面如圖14 所示,數(shù)據(jù)實(shí)時(shí)顯示界面如圖15所示。
圖14 歷史數(shù)據(jù)查詢界面Fig.14 Historical data query interface diagram
圖15 數(shù)據(jù)實(shí)時(shí)顯示界面Fig.15 Data real-time display interface diagram
本文利用ZigBee 無(wú)線傳感網(wǎng)絡(luò)對(duì)各個(gè)水源地水質(zhì)數(shù)據(jù)進(jìn)行采集,通過(guò)4G 移動(dòng)網(wǎng)絡(luò)進(jìn)行數(shù)據(jù)傳輸,監(jiān)測(cè)中心建立了ABCBP 預(yù)測(cè)模型,實(shí)現(xiàn)了對(duì)數(shù)據(jù)的顯示、分析、處理和預(yù)警等功能。 以丹江流域源頭商洛市商州區(qū)段作為測(cè)試點(diǎn),進(jìn)行了測(cè)試,結(jié)果顯示本系統(tǒng)能夠準(zhǔn)確地完成數(shù)據(jù)的傳輸、處理、分析、顯示和預(yù)測(cè),并且運(yùn)行穩(wěn)定可靠。 因此,本監(jiān)測(cè)系統(tǒng)的設(shè)計(jì)與實(shí)現(xiàn),對(duì)促進(jìn)智慧商洛、生態(tài)商洛的發(fā)展,保護(hù)丹江水源地,確?!耙唤逅途┙颉本哂惺种匾膬r(jià)值。