李昌敏,熊俊俏
(武漢工程大學(xué) 電氣信息學(xué)院,武漢430205)
民以食為天, 農(nóng)業(yè)發(fā)展一直是國家的首要問題,農(nóng)業(yè)的發(fā)展直接或間接的影響著國家安全。 傳統(tǒng)的溫室大棚種植產(chǎn)業(yè),一般情況下都是依靠農(nóng)民多年的經(jīng)驗(yàn),定性地估計(jì)各種環(huán)境因素對(duì)農(nóng)作物的影響,無法做到科學(xué)、合理地判斷環(huán)境信息,很難進(jìn)行集中管理,以達(dá)到最優(yōu)化生產(chǎn)的目的[1-2]。 在現(xiàn)有的種植監(jiān)測(cè)中,基本都是對(duì)環(huán)境因素的單個(gè)考慮和調(diào)節(jié),但是各個(gè)環(huán)境因素之間是相互影響的。 如溫度就會(huì)受到濕度、光照度等因素的影響,因而這種基于單一因素的決策是不合理的;同時(shí)作物生長的各要素之間是相互制約的,當(dāng)其中的某一環(huán)境信息發(fā)生變化時(shí),與其關(guān)聯(lián)的環(huán)境信息也會(huì)隨之發(fā)生改變。 因此,如果能夠?qū)y(cè)量到的因素經(jīng)過有效的融合,得到一個(gè)全面而準(zhǔn)確的決策,更有利于溫室的控制。
基于上述, 提出一種基于PSO-BP 算法的決策系統(tǒng)。 該系統(tǒng)能對(duì)大棚內(nèi)的環(huán)境信息的進(jìn)行實(shí)時(shí)采集和傳輸。 采用克里金插值法構(gòu)建環(huán)境的分布圖,利用ECDS 算法對(duì)大棚內(nèi)節(jié)點(diǎn)進(jìn)行精確能量控制。同時(shí)改進(jìn)BP 神經(jīng)網(wǎng)絡(luò)進(jìn)行數(shù)據(jù)融合, 能夠?qū)崿F(xiàn)系統(tǒng)的自主科學(xué)決策。 決策信息通過反饋調(diào)節(jié)系統(tǒng)控制大棚內(nèi)的環(huán)境,使農(nóng)作物一直處于最佳的生長環(huán)境。 設(shè)計(jì)實(shí)現(xiàn)了對(duì)大棚環(huán)境的自動(dòng)監(jiān)測(cè)、反饋調(diào)控,對(duì)推動(dòng)我國農(nóng)業(yè)全自動(dòng)化有著重要的意義。
環(huán)境監(jiān)控系統(tǒng)框架如圖1 所示。 主要包括三部分:傳感器對(duì)數(shù)據(jù)的采集、系統(tǒng)對(duì)數(shù)據(jù)的分析決策和反饋調(diào)節(jié)設(shè)備。 在大棚內(nèi)部署適量的節(jié)點(diǎn),每個(gè)節(jié)點(diǎn)上連接4 種傳感器:溫濕度傳感器、pH 傳感器、光照強(qiáng)度傳感器, 用來采集溫室大棚內(nèi)的環(huán)境信息。 然后將采集的數(shù)據(jù)通過ZigBee 網(wǎng)絡(luò)傳輸至網(wǎng)關(guān),網(wǎng)關(guān)的功能是將接收到的數(shù)據(jù)信息通過互聯(lián)網(wǎng)轉(zhuǎn)發(fā)至服務(wù)器, 最后在服務(wù)器數(shù)據(jù)進(jìn)行處理和分析。 其中服務(wù)器運(yùn)行著分析決策系統(tǒng),根據(jù)采集到的大棚4 種環(huán)境信息做出科學(xué)的決策。 最后服務(wù)器將決策結(jié)果通知大棚內(nèi)調(diào)節(jié)系統(tǒng),控制溫室內(nèi)設(shè)備自動(dòng)運(yùn)轉(zhuǎn),例如啟動(dòng)滴灌等,在大棚內(nèi)形成一個(gè)完整的控制閉環(huán)回路。
圖1 環(huán)境監(jiān)測(cè)系統(tǒng)結(jié)構(gòu)Fig.1 Structure of environmental monitoring system
硬件設(shè)計(jì)主要分為兩部分:傳感器節(jié)點(diǎn)設(shè)計(jì)和ZigBee 通信模塊設(shè)計(jì)。 在傳感器節(jié)點(diǎn)上安裝傳感器用以采集和存儲(chǔ)環(huán)境信息。 ZigBee 模塊選用了CC2530 芯片進(jìn)行組網(wǎng)通信,它具有低功耗、安全可靠、自組網(wǎng)等優(yōu)點(diǎn)。
傳感器是一種檢測(cè)裝置, 能感受物理界的信息,并能將感受到的信息按一定規(guī)律變換成為電信號(hào)輸出,同時(shí)它也是本系統(tǒng)獲取環(huán)境信息的源頭[3]。本設(shè)計(jì)用到的傳感器有溫濕度、pH 值、 光照強(qiáng)度。圖2 為傳感器節(jié)點(diǎn)結(jié)構(gòu)。
圖2 節(jié)點(diǎn)結(jié)構(gòu)Fig.2 Node structure
結(jié)構(gòu)中電池模塊負(fù)責(zé)給控制器供電,STM32 控制器通過遍歷傳感器,每分鐘采集一次信息。 通過ECDS 算法對(duì)路由節(jié)點(diǎn)的配置可大大延長整個(gè)系統(tǒng)的使用時(shí)間。 STM32 單片機(jī)通過串口連接各傳感器,采集大棚內(nèi)環(huán)境信息。 并將數(shù)據(jù)封裝成數(shù)據(jù)幀,通過ZigBee 無線網(wǎng)將數(shù)據(jù)幀發(fā)送到網(wǎng)關(guān),最后上傳至服務(wù)器。 如圖3 所示為傳感器采集信息。
圖3 傳感器信息采集Fig.3 Sensor information collection
本次設(shè)計(jì)為了提高網(wǎng)絡(luò)通信效率、減少冗余傳輸,利用ECDS 算法構(gòu)建ZigBee 網(wǎng)絡(luò)[4-5]。 選擇其中一些節(jié)點(diǎn)作為整個(gè)網(wǎng)絡(luò)的路由節(jié)點(diǎn),稱其為骨干節(jié)點(diǎn)。 打開骨干節(jié)點(diǎn)的通信功能,關(guān)閉其他節(jié)點(diǎn)的通信功能。 這些骨干節(jié)點(diǎn)構(gòu)建一個(gè)最小連通集網(wǎng)絡(luò)來負(fù)責(zé)數(shù)據(jù)的路由轉(zhuǎn)發(fā), 這樣可以保證通信覆蓋度,并降低能耗。 ZigBee 組網(wǎng)結(jié)構(gòu)如圖4 所示。
圖4 ZigBee 組網(wǎng)原理圖Fig.4 ZigBee network diagram
ECDS 算法:為每個(gè)節(jié)點(diǎn)分配一個(gè)權(quán)值,假設(shè)節(jié)點(diǎn)i 的權(quán)值數(shù)表示為w(i),這個(gè)值的大小是根據(jù)節(jié)點(diǎn)剩余能量和在網(wǎng)絡(luò)圖中的有效度數(shù)來計(jì)算的。 節(jié)點(diǎn)權(quán)值的計(jì)算方法如下:
f 函數(shù)是以電池剩余能量energy(i),節(jié)點(diǎn)穩(wěn)定性stability(i)和節(jié)點(diǎn)的有效度數(shù)effective_degree(i)為參考函數(shù)。
通過計(jì)算出節(jié)點(diǎn)的值,具有較大值的節(jié)點(diǎn)有較高的能力。 能量越高、覆蓋越多鄰居節(jié)點(diǎn),越適合擔(dān)當(dāng)骨干網(wǎng)節(jié)點(diǎn)。 通過為網(wǎng)絡(luò)節(jié)點(diǎn)設(shè)置這樣的優(yōu)先級(jí)之后,算法構(gòu)建的支配集不僅考慮了支配集規(guī)模的大小,同時(shí)把能量也考慮進(jìn)去了,這樣的系統(tǒng)作為傳感器節(jié)點(diǎn)更為合理。
本系統(tǒng)對(duì)4 種環(huán)境信息進(jìn)行采集。 這些信息如果不借助系統(tǒng)分析,很難直觀地了解它們的分布情況,就很難實(shí)現(xiàn)大棚的有效管理。 本設(shè)計(jì)根據(jù)采集的環(huán)境信息值,結(jié)合Kriging 插值算法構(gòu)建環(huán)境分布圖,直觀展現(xiàn)了環(huán)境信息。
Kriging 插值算法在進(jìn)行插值預(yù)測(cè)前,我們需要得到半變異函數(shù)。 根據(jù)兩節(jié)點(diǎn)之間的距離和節(jié)點(diǎn)對(duì)應(yīng)環(huán)境信息。 計(jì)算經(jīng)驗(yàn)半變異函數(shù):
式中:h 為兩節(jié)點(diǎn)間距離;N 為樣本;z(xi)和z(xi+h)在分別代表節(jié)點(diǎn)i 和節(jié)點(diǎn)i+h 采集到的信息。 根據(jù)式(2)得到散點(diǎn)圖,利用最小二乘法得到半變異函數(shù),如圖5 所示。 當(dāng)變異函數(shù)接近半變異函數(shù)時(shí),選擇該模型作為Kriging 的預(yù)測(cè)模型。
圖5 模型構(gòu)建圖Fig.5 Model building diagram
模型中根據(jù)各節(jié)點(diǎn)采集的信息可進(jìn)行插值預(yù)測(cè)。 假設(shè)x0是所研究區(qū)域的一點(diǎn),z(x0)是該點(diǎn)的測(cè)量值,假設(shè)距離待預(yù)測(cè)位置x0最近的n 個(gè)節(jié)點(diǎn)在t時(shí)刻采集的環(huán)境因子值分別為z(xi),i∈[1,n],則位置x0處的估計(jì)值z(mì)*(x0)計(jì)算方法如下:
式中:n 為待預(yù)測(cè)點(diǎn)附近的n 個(gè)監(jiān)測(cè)點(diǎn);λi為第i 個(gè)節(jié)點(diǎn)對(duì)應(yīng)的權(quán)值;z(xi)為第i 個(gè)節(jié)點(diǎn)采集的信息。
在算法中估計(jì)值z(mì)*(x0)的好壞取決于權(quán)重值λi。λi必須滿足2 個(gè)條件:①z*(x0)的偏差數(shù)學(xué)期望為0;②估計(jì)值z(mì)*(x0)和實(shí)際值z(mì)(xi)之差的平方和最小。 計(jì)算方法如下:
具體流程如下: 假設(shè)k 號(hào)位置是待預(yù)測(cè)位置,周圍有4 個(gè)傳感器節(jié)點(diǎn)。首先建立Kriging 模型計(jì)算y(hi,j),其中hi,j表示節(jié)點(diǎn)i 和節(jié)點(diǎn)j 之間的距離;然后根據(jù)式(4)的變換式(5)計(jì)算每個(gè)已知樣本節(jié)點(diǎn)的權(quán)值。 根據(jù)式(3)即可預(yù)測(cè)出位置k 處對(duì)應(yīng)的環(huán)境因子值。
根據(jù)大棚內(nèi)已有的節(jié)點(diǎn)位置,對(duì)尚未安裝節(jié)點(diǎn)的區(qū)域進(jìn)行預(yù)測(cè),得到該區(qū)域所對(duì)應(yīng)的環(huán)境信息,最后利用這些環(huán)境信息得到環(huán)境因子的整體分布圖。
由于一般的BP 神經(jīng)網(wǎng)絡(luò)算法收斂速度慢、易陷入局部最優(yōu),而PSO 算法收斂速度快、全局搜索性強(qiáng)。 因此,本系統(tǒng)將PSO 算法與BP 算法進(jìn)行融合,優(yōu)化BP 神經(jīng)網(wǎng)絡(luò),使得優(yōu)化后的算法有更好的優(yōu)化能力和映射能力[6]。 PSO-BP 算法能對(duì)環(huán)境特征參數(shù)進(jìn)行有效融合,精確判斷出大棚內(nèi)的真實(shí)情況。
PSO 初始化為一群隨機(jī)粒子,然后通過不斷迭代,更新最優(yōu)的速度和位置,直到最優(yōu)解。 PSO算法是一種基于速度-位置搜索模型[7],其在D維解空間中,有n 個(gè)粒子,群體中第i 個(gè)粒子的位置,速度1,2,3,…,n。將xi帶入函數(shù)可得到其適用值。更新最優(yōu)位置: 設(shè)第i 個(gè)粒子的最優(yōu)位置為pi=, 整個(gè)粒子群搜索到的最優(yōu)位置為粒子狀態(tài)更新操作如下:
式中:i=1,2,…,n;d=1,2,…,D;C1,C2為加速度因子,通常取C1=C2=2;w 為慣性因子,其值為非負(fù),該值可以對(duì)局部和全局尋優(yōu)能力進(jìn)行調(diào)整, 取值為0.1~0.9,取最大迭代次數(shù)Tmax=1500。
已知BP 算法由大量神經(jīng)元組成,有三層機(jī)構(gòu):輸入層、隱含層和輸出層,如圖6 所示。 算法每次根據(jù)訓(xùn)練得到的結(jié)果與預(yù)想結(jié)果進(jìn)行誤差分析,進(jìn)而修改權(quán)值和閾值,一步一步得到能輸出和預(yù)想結(jié)果一致的模型[8]。 利用PSO 算法訓(xùn)練BP 網(wǎng)絡(luò)時(shí),優(yōu)化后的算法具有良好的映射能力和優(yōu)化能力。 算法首先初始化粒子, 然后利用訓(xùn)練誤差作為適應(yīng)度函數(shù),并記錄當(dāng)前最優(yōu)位置和全局最優(yōu)位置。 不斷更新直到找到最優(yōu)的位置,用其作為最優(yōu)權(quán)值和閾值來對(duì)BP 網(wǎng)絡(luò)進(jìn)行訓(xùn)練。 輸入輸出的均方差指標(biāo)J用最小二乘法表示。
式中:N 為樣本數(shù)量;o 為輸出神經(jīng)元的個(gè)數(shù), 這里取4;J 為第i 個(gè)樣本的第j 個(gè)網(wǎng)絡(luò)輸出節(jié)點(diǎn)的樣本值;yj,i為網(wǎng)絡(luò)輸出節(jié)點(diǎn)的實(shí)際輸出值。
圖6 BP 網(wǎng)絡(luò)結(jié)構(gòu)圖Fig.6 BP network structure diagram
利用PSO 算法對(duì)BP 神經(jīng)網(wǎng)絡(luò)進(jìn)行訓(xùn)練, 避免了BP 算法中初始權(quán)值和閾值對(duì)整個(gè)模型的精度和運(yùn)行速率的影響。 PSO 優(yōu)化BP 神經(jīng)網(wǎng)絡(luò)的流程如圖7 所示。
圖7 PSO-BP 混合算法流程Fig.7 PSO-BP hybrid algorithm flow chart
本設(shè)計(jì)建立的PSO-BP 神經(jīng)網(wǎng)絡(luò)模型, 輸入層有4 個(gè)節(jié)點(diǎn)為4 種環(huán)境因素, 輸出層有4 個(gè)節(jié)點(diǎn)。隱藏層有12 個(gè)節(jié)點(diǎn), 由公式得到,m是輸入層節(jié)點(diǎn)數(shù),n 是輸出層節(jié)點(diǎn)數(shù),a 為隨機(jī)數(shù)。利用PSO 優(yōu)化BP 網(wǎng)絡(luò)的權(quán)值和閾值[9],為了消除輸入輸出在數(shù)量級(jí)上的差異,讓模型更具泛化能力。 對(duì)輸入、輸出值進(jìn)行歸一化處理。 其公式為
式中:xmax是輸入變量的最大值;xmin是輸入變量的最小值;xt,xt′為輸入樣本歸一化前后的值。
在仿真實(shí)驗(yàn)中,我們以溫室大棚黃瓜為例。 黃瓜的最適宜生長溫度為22 ℃~32 ℃, 相對(duì)濕度為60%RH~85%RH, 一般喜歡pH 5.5~7.2 之間的土壤,黃瓜是日照中性植物,有較高的光飽和補(bǔ)償點(diǎn)。
建立的模型中輸入量分別是x1(溫度)、x2(濕度)、x3(pH 值)、x4(光照強(qiáng)度)。 輸出量為y1(光照度不足)、y2(溫度偏高)、y3(pH 值不足)和y4(濕度偏低)4 種狀態(tài)。 網(wǎng)絡(luò)訓(xùn)練后實(shí)際上的輸出結(jié)果送到分析結(jié)構(gòu)進(jìn)行決策,并判斷溫室的環(huán)境狀況。 實(shí)驗(yàn)選取了幾組典型數(shù)據(jù)對(duì)PSO-BP 優(yōu)化算法進(jìn)行訓(xùn)練,其中編號(hào)為1、2 的樣本表示溫度偏低,編號(hào)為3、4的樣本表示濕度偏低,編號(hào)為5、6 的樣本表示光照度不足,編號(hào)為7、8 的樣本表示pH 值偏低。 將網(wǎng)絡(luò)訓(xùn)練后的實(shí)際輸出結(jié)果送到判別模塊進(jìn)行判別,判斷溫室大棚內(nèi)的環(huán)境狀況。 仿真結(jié)果如表1所示。
通過仿真對(duì)比可知,實(shí)驗(yàn)的結(jié)果非常接近預(yù)期結(jié)果,PSO-BP 網(wǎng)絡(luò)找到了預(yù)期的輸入輸出映射規(guī)律, 其規(guī)律隱含在整個(gè)神經(jīng)網(wǎng)絡(luò)的權(quán)值和結(jié)構(gòu)當(dāng)中。 實(shí)驗(yàn)結(jié)果顯示改進(jìn)后的BP 算法達(dá)到了預(yù)期目的,能夠有效地提高溫室管理的精確性。
表1 仿真結(jié)果輸出對(duì)照表Tab.1 Simulation result output comparison table
本文以溫室種植黃瓜為例。 針對(duì)目前溫室大棚的研究中存在的不足的地方,設(shè)計(jì)一種基于PSO-BP融合算法的智慧大棚監(jiān)控系統(tǒng)。 系統(tǒng)首先利用ZigBee 協(xié)議提出無線傳感器組網(wǎng)結(jié)構(gòu), 再利用ECDS 算法合理分配骨干節(jié)點(diǎn),節(jié)省傳輸能耗,延遲網(wǎng)絡(luò)使用時(shí)間。 并在溫室內(nèi)部署適量的檢測(cè)節(jié)點(diǎn)用于采集和傳輸環(huán)境信息。利用Kriging 插值算法預(yù)測(cè)未布置節(jié)點(diǎn)區(qū)域的環(huán)境信息,并構(gòu)建環(huán)境信息分布圖,用于直觀顯示環(huán)境狀況。 最后使用決策系統(tǒng)得到溫室決策結(jié)果,通過反饋控制系統(tǒng)調(diào)節(jié)大棚內(nèi)環(huán)境。 本系統(tǒng)最主要的是利用了PSO-BP 神經(jīng)網(wǎng)絡(luò)進(jìn)行數(shù)據(jù)融合,可以有效地監(jiān)測(cè)并給出作物環(huán)境的決策結(jié)果。 經(jīng)實(shí)驗(yàn)驗(yàn)證,本設(shè)計(jì)在整體性能上表現(xiàn)優(yōu)越,降低了能耗,提高了溫室控制的準(zhǔn)確性。