李 鋒 張桂堂 梁 輝
(青島科技大學(xué)機(jī)電工程學(xué)院 青島 266061)
隨著生活水平的提高,越來越多的人已經(jīng)不滿足于當(dāng)季蔬菜的食用,他們更希望可以吃到一些新鮮的反季節(jié)蔬菜,這不禁要依靠于室內(nèi)溫濕度控制技術(shù)的發(fā)展。以往的室內(nèi)測溫技術(shù)采用分布式多點(diǎn)測溫,需要在室內(nèi)各處安裝測溫裝置,安裝過程復(fù)雜,并且該電路傳遞的是模擬信號,成本較高且傳遞過程中可能出現(xiàn)信號干擾等情況。本設(shè)計(jì)采用一種數(shù)字化單總線測溫技術(shù),該技術(shù)可以很好地解決以往設(shè)計(jì)中的問題。本次設(shè)計(jì)采用單片機(jī)系統(tǒng)作為基礎(chǔ),STM32F407ZGT6作為該系統(tǒng)的控制核心,STM32類屬于ARM系列單片機(jī),相較于C51系列單片機(jī),其交互界面更友好,處理速度更快,運(yùn)算能力更強(qiáng)[6~10]。此外,該系統(tǒng)還可以實(shí)時監(jiān)測室內(nèi)的溫濕度,并通過AM2305數(shù)字傳感器將測得的溫濕度信號,轉(zhuǎn)化為電流信號,再轉(zhuǎn)化為電壓信號,最后經(jīng)過單片機(jī)的處理,由LCD1602顯示元件將其顯示。并且還輔之以BT神經(jīng)網(wǎng)絡(luò)PID算法,該算法可以將單片機(jī)系統(tǒng)進(jìn)行調(diào)節(jié)和優(yōu)化,使得該系統(tǒng)更加智能化、精細(xì)化,從而更好地保證作物的生長和便于科研人員的管理。
本系統(tǒng)以一臺主控計(jì)算機(jī)作為上位機(jī),以多臺STM32單片機(jī)作為下位機(jī)組合成一個多分布式的分布系統(tǒng)。該系統(tǒng)工作原理:給上位機(jī)輸入一個編寫好的程序,上位機(jī)經(jīng)過一系列的運(yùn)算處理,給下位機(jī)發(fā)送啟動命令。下位機(jī)接收到命令后,一方面控制其下屬的DS18B20溫度傳感器[2]和AM2305數(shù)字溫濕度傳感器進(jìn)行溫度與濕度的實(shí)時檢測;另一方面將采集到的溫濕度信號轉(zhuǎn)化為電壓信號,上傳給上位機(jī)進(jìn)行顯示,儲存,以及與程序給定的標(biāo)準(zhǔn)數(shù)據(jù)相對比。如果溫度和濕度與給定的標(biāo)準(zhǔn)值偏差過大,則由上位機(jī)傳遞信號給下位機(jī)控制報(bào)警系統(tǒng)進(jìn)行報(bào)警提示,當(dāng)溫度過高且濕度過低時,由室內(nèi)的噴灑裝置進(jìn)行加濕降溫,反之則進(jìn)行升溫操作,從而可以實(shí)時控制室內(nèi)的溫濕度。此外,通過BT神經(jīng)網(wǎng)絡(luò)PID算法對下位機(jī)進(jìn)行優(yōu)化調(diào)節(jié),使得室內(nèi)溫濕度始終處于最佳狀態(tài),系統(tǒng)硬件電路原理如圖1所示。
該系統(tǒng)采用DS18B20智能溫度傳感器來對室內(nèi)的溫度進(jìn)行實(shí)時的檢測,采用AM2305數(shù)字溫濕度傳感器對室內(nèi)的濕度進(jìn)行檢測。DS18B20的特點(diǎn)在于其采用特殊的單總線設(shè)計(jì)思路[2],既可以與串行口線連接,也可與I/O口線連接,使用更加方便。此外,其溫度變化區(qū)間為-55℃~+125℃,完全滿足室內(nèi)的溫度變化。而AM2305數(shù)字傳感器的特點(diǎn)在于測量更加精確[4],結(jié)構(gòu)比較簡單,便于安裝。單總線測溫結(jié)構(gòu)如圖2,DS18B20的結(jié)構(gòu)原理如圖3,AM2305電路控制如圖4。
圖2 單總線測溫系統(tǒng)結(jié)構(gòu)圖
圖3 DS18B20結(jié)構(gòu)原理圖
圖4 AM2305電路控制圖
當(dāng)室內(nèi)溫度高于系統(tǒng)設(shè)定的上限值,或者濕度低于系統(tǒng)設(shè)定的下限值時,觸發(fā)聲光報(bào)警裝置,此時報(bào)警系統(tǒng)會發(fā)出響聲和亮光,并由單片機(jī)控制室內(nèi)的噴灑裝置進(jìn)行降溫加濕,直到溫濕度都回歸到系統(tǒng)設(shè)定的合理區(qū)間內(nèi),再由單片機(jī)控制噴灑裝置關(guān)閉。相反,當(dāng)室內(nèi)溫度低于系統(tǒng)設(shè)定的下限值,或者濕度高于系統(tǒng)設(shè)定的上限值時,也會觸發(fā)聲光報(bào)警裝置,此時報(bào)警系統(tǒng)也會發(fā)出響聲和亮光,并由單片機(jī)控制室內(nèi)的空調(diào)機(jī)進(jìn)行升溫操作,直至溫濕度回歸到系統(tǒng)設(shè)定的合理區(qū)間內(nèi),再由單片機(jī)控制空調(diào)機(jī)關(guān)閉,聲光報(bào)警電路如圖5所示。
圖5 聲光報(bào)警電路控制圖
通過對傳統(tǒng)的PID算法進(jìn)行研究[3],了解到其中存在著很大的不足,主要體現(xiàn)在其算法的單一性和不靈活性。傳統(tǒng)的PID算法主要依靠比例(KP),積分(KI),微分(KD)這三個參數(shù)進(jìn)行算法的整合,但是針對溫室系統(tǒng)這種既要求控制溫度,又要控制濕度的多變量程序,就很好地暴露出了它的不靈活性。因此,本次設(shè)計(jì)采用更加靈活的BP神經(jīng)網(wǎng)絡(luò)PID算法,該算法具有很好的自學(xué)能力,并且可以進(jìn)行任意的非線性運(yùn)算,可以在眾多的組合結(jié)果中,找到最優(yōu)解,然后將得到的結(jié)果參數(shù)kp,ki,kd傳遞給PID算法,這樣就可以靈活的控制室內(nèi)的溫濕度變化,并且隨著其不斷地算法訓(xùn)練,其結(jié)果會越來越精確。BP神經(jīng)網(wǎng)絡(luò)PID控制器結(jié)構(gòu)原理如圖6所示,三層BP網(wǎng)絡(luò)結(jié)構(gòu)原理如圖7所示。
圖6 BP神經(jīng)網(wǎng)絡(luò)PID控制器結(jié)構(gòu)原理圖
圖7 三層BP網(wǎng)絡(luò)結(jié)構(gòu)圖
PID增量式控制算法公式:
公式中變量分別為比例(KP),積分(KI),微分(KD),PID的輸出變量(uk),升溫裝置的加權(quán)位移值(y(k)),系統(tǒng)溫度的標(biāo)準(zhǔn)值(r(k)),k時的系統(tǒng)位移標(biāo)準(zhǔn)值與加權(quán)位移值的偏差(e(k))。
三層BP網(wǎng)絡(luò)結(jié)構(gòu)輸入層輸入公式[10~16]:
三層BP網(wǎng)絡(luò)結(jié)構(gòu)隱含層各點(diǎn)的輸入和輸出公式:
公式中各變量含義:隱含層中的加權(quán)系數(shù)值();需要輸入的神經(jīng)元節(jié)點(diǎn)個數(shù)為4;i表示隱含層神經(jīng)元節(jié)點(diǎn)的次序;公式中右上角的數(shù)字標(biāo)號(1),(2),(3)分別表示三層BP網(wǎng)絡(luò)結(jié)構(gòu)中的輸入層、隱含層和輸出層;隱含層輸入函數(shù)(),隱含層輸出函數(shù)()。
隱含層的正負(fù)對稱Sigmoid函數(shù)為激活函數(shù):
神經(jīng)網(wǎng)絡(luò)的輸出層的輸入、輸出各為
公式中各變量含義:輸出層的加權(quán)系數(shù)值為();神經(jīng)元輸出函數(shù)();輸出層數(shù)(l);神經(jīng)元節(jié)點(diǎn)次序數(shù)(I)。
輸出層神經(jīng)元非負(fù)Sigmoid函數(shù)為活化函數(shù)[6~10]:
性能指標(biāo)函數(shù):
公式中各變量含義:算法設(shè)定的標(biāo)準(zhǔn)值(rp),實(shí)際檢測值(yp)。
BP神經(jīng)網(wǎng)絡(luò)結(jié)構(gòu)的權(quán)限值采用梯度法來調(diào)節(jié),從當(dāng)前點(diǎn)出發(fā),取函數(shù)在該點(diǎn)處下降速度最快的方向(加權(quán)系數(shù)的減小方向)進(jìn)行搜索,此外,給該函數(shù)一個慣性變量使搜索速度加快,進(jìn)而推出以下公式:
公式中各變量含義:學(xué)習(xí)速率(η),平滑因子(α)。
由式(14)及PID增量式控制算法公式可得:
綜上可得,輸出層的加權(quán)系數(shù)學(xué)習(xí)算法為
隱含層的加權(quán)系數(shù)學(xué)習(xí)算法:
BP神經(jīng)網(wǎng)絡(luò)PID算法的步驟總結(jié)。
1)明確BP神經(jīng)網(wǎng)絡(luò)的結(jié)構(gòu)原理,將三層網(wǎng)絡(luò)結(jié)構(gòu)的各加權(quán)系數(shù)值,控制變量以及輸入變量的誤差都初始化,將控制器輸出均初始化為零[5]。
2)用下位機(jī)處理檢測到的溫濕度數(shù)據(jù),從而得到rp(k)和yp(k),再由BP神經(jīng)網(wǎng)絡(luò)算法計(jì)算出其所需的E(k)。
3)以三層網(wǎng)絡(luò)結(jié)構(gòu)的各加權(quán)系數(shù)值為基礎(chǔ),推算出各層結(jié)構(gòu)的輸入與輸出值,再由BP神經(jīng)網(wǎng)絡(luò)算法計(jì)算出PID算法所需的三個基本參數(shù)值:比例(KP),積分(KI),微分(KD),最后由PID增量式控制算法公式得出最后的控制變量值。
4)由于輸出層跟隱含層的學(xué)習(xí)算法具自主學(xué)習(xí),自動調(diào)節(jié)的功能。因此,該算法的加入就很好的改善了傳統(tǒng)PID算法運(yùn)算性能單一,算法不靈活的缺點(diǎn),使得控溫濕能力顯著提高。
5)重復(fù)以上步驟。
為了檢驗(yàn)BP神經(jīng)網(wǎng)絡(luò)PID算法的調(diào)節(jié)能力,現(xiàn)以一個種植有黃瓜的溫室為例進(jìn)行測試。測試的時間選在黃瓜的坐果期,該溫室的面積為60m×20m,選擇該時期的主要原因在于,這一時期的黃瓜對于室內(nèi)的溫濕度變化比較敏感,所以要保證室內(nèi)的溫濕度變化在一個合理的范圍內(nèi),否則就會影響作物的產(chǎn)量,這就可以很好地測試本系統(tǒng)的有效性。由已有的實(shí)驗(yàn)數(shù)據(jù)可知,該時期的溫濕度要求為白天的溫度范圍為26℃~29℃,夜間的溫度范圍為12℃~16℃,空氣內(nèi)的水分含有率保持在45%~55%[1]。現(xiàn)將該區(qū)域劃分為三小塊,每塊區(qū)域的面積為20m×20m,每塊區(qū)域內(nèi)都放置有相同的溫濕度傳感器,并由相同算法控制。一切準(zhǔn)備就緒后,分別測試了白天(8:00~18:00)以及晚上(20:00~5:00)的溫濕度變化情況。測試結(jié)果如表1,表2。由表可知,運(yùn)用BP神經(jīng)網(wǎng)絡(luò)算法后,棚內(nèi)溫濕度可以控制在合理的范圍內(nèi),滿足預(yù)期的要求。
表1 棚內(nèi)黃瓜坐果期溫濕度測試結(jié)果(8:00~18:00)
區(qū)域編號 棚內(nèi)濕度 棚內(nèi)最大 棚內(nèi)最小 有無報(bào)警均值/%RH濕度/%RH濕度/%RH 150.2652.5448.56無250.6852.6348.23無350.9852.8948.68無
表2 棚內(nèi)黃瓜坐果期溫濕度測試結(jié)果(20:00~5:00)
本設(shè)計(jì)在傳統(tǒng)室內(nèi)溫濕度控制的基礎(chǔ)上,增加了以STM32F407ZGT6為控制核心的單片機(jī)系統(tǒng)和BP神經(jīng)網(wǎng)絡(luò)PID算法,在很大程度上改善了室內(nèi)的溫濕度控制。并且由于BP神經(jīng)網(wǎng)絡(luò)PID算法具有自適應(yīng)學(xué)習(xí)能力、抗干擾能力以及任意非線性運(yùn)算能力,所以可以很好地優(yōu)化系統(tǒng)的功能,使得下位機(jī)的溫濕度控制能力更加完善,科研人員的管理更加方便,在農(nóng)業(yè)生產(chǎn)方面具有很大的應(yīng)用前景。