李 鋒 張桂堂 梁 輝
(青島科技大學機電工程學院 青島 266061)
隨著生活水平的提高,越來越多的人已經不滿足于當季蔬菜的食用,他們更希望可以吃到一些新鮮的反季節蔬菜,這不禁要依靠于室內溫濕度控制技術的發展。以往的室內測溫技術采用分布式多點測溫,需要在室內各處安裝測溫裝置,安裝過程復雜,并且該電路傳遞的是模擬信號,成本較高且傳遞過程中可能出現信號干擾等情況。本設計采用一種數字化單總線測溫技術,該技術可以很好地解決以往設計中的問題。本次設計采用單片機系統作為基礎,STM32F407ZGT6作為該系統的控制核心,STM32類屬于ARM系列單片機,相較于C51系列單片機,其交互界面更友好,處理速度更快,運算能力更強[6~10]。此外,該系統還可以實時監測室內的溫濕度,并通過AM2305數字傳感器將測得的溫濕度信號,轉化為電流信號,再轉化為電壓信號,最后經過單片機的處理,由LCD1602顯示元件將其顯示。并且還輔之以BT神經網絡PID算法,該算法可以將單片機系統進行調節和優化,使得該系統更加智能化、精細化,從而更好地保證作物的生長和便于科研人員的管理。
本系統以一臺主控計算機作為上位機,以多臺STM32單片機作為下位機組合成一個多分布式的分布系統。該系統工作原理:給上位機輸入一個編寫好的程序,上位機經過一系列的運算處理,給下位機發送啟動命令。下位機接收到命令后,一方面控制其下屬的DS18B20溫度傳感器[2]和AM2305數字溫濕度傳感器進行溫度與濕度的實時檢測;另一方面將采集到的溫濕度信號轉化為電壓信號,上傳給上位機進行顯示,儲存,以及與程序給定的標準數據相對比。如果溫度和濕度與給定的標準值偏差過大,則由上位機傳遞信號給下位機控制報警系統進行報警提示,當溫度過高且濕度過低時,由室內的噴灑裝置進行加濕降溫,反之則進行升溫操作,從而可以實時控制室內的溫濕度。此外,通過BT神經網絡PID算法對下位機進行優化調節,使得室內溫濕度始終處于最佳狀態,系統硬件電路原理如圖1所示。
該系統采用DS18B20智能溫度傳感器來對室內的溫度進行實時的檢測,采用AM2305數字溫濕度傳感器對室內的濕度進行檢測。DS18B20的特點在于其采用特殊的單總線設計思路[2],既可以與串行口線連接,也可與I/O口線連接,使用更加方便。此外,其溫度變化區間為-55℃~+125℃,完全滿足室內的溫度變化。而AM2305數字傳感器的特點在于測量更加精確[4],結構比較簡單,便于安裝。單總線測溫結構如圖2,DS18B20的結構原理如圖3,AM2305電路控制如圖4。

圖2 單總線測溫系統結構圖

圖3 DS18B20結構原理圖

圖4 AM2305電路控制圖
當室內溫度高于系統設定的上限值,或者濕度低于系統設定的下限值時,觸發聲光報警裝置,此時報警系統會發出響聲和亮光,并由單片機控制室內的噴灑裝置進行降溫加濕,直到溫濕度都回歸到系統設定的合理區間內,再由單片機控制噴灑裝置關閉。相反,當室內溫度低于系統設定的下限值,或者濕度高于系統設定的上限值時,也會觸發聲光報警裝置,此時報警系統也會發出響聲和亮光,并由單片機控制室內的空調機進行升溫操作,直至溫濕度回歸到系統設定的合理區間內,再由單片機控制空調機關閉,聲光報警電路如圖5所示。

圖5 聲光報警電路控制圖
通過對傳統的PID算法進行研究[3],了解到其中存在著很大的不足,主要體現在其算法的單一性和不靈活性。傳統的PID算法主要依靠比例(KP),積分(KI),微分(KD)這三個參數進行算法的整合,但是針對溫室系統這種既要求控制溫度,又要控制濕度的多變量程序,就很好地暴露出了它的不靈活性。因此,本次設計采用更加靈活的BP神經網絡PID算法,該算法具有很好的自學能力,并且可以進行任意的非線性運算,可以在眾多的組合結果中,找到最優解,然后將得到的結果參數kp,ki,kd傳遞給PID算法,這樣就可以靈活的控制室內的溫濕度變化,并且隨著其不斷地算法訓練,其結果會越來越精確。BP神經網絡PID控制器結構原理如圖6所示,三層BP網絡結構原理如圖7所示。

圖6 BP神經網絡PID控制器結構原理圖

圖7 三層BP網絡結構圖
PID增量式控制算法公式:

公式中變量分別為比例(KP),積分(KI),微分(KD),PID的輸出變量(uk),升溫裝置的加權位移值(y(k)),系統溫度的標準值(r(k)),k時的系統位移標準值與加權位移值的偏差(e(k))。
三層BP網絡結構輸入層輸入公式[10~16]:

三層BP網絡結構隱含層各點的輸入和輸出公式:

公式中各變量含義:隱含層中的加權系數值();需要輸入的神經元節點個數為4;i表示隱含層神經元節點的次序;公式中右上角的數字標號(1),(2),(3)分別表示三層BP網絡結構中的輸入層、隱含層和輸出層;隱含層輸入函數(),隱含層輸出函數()。
隱含層的正負對稱Sigmoid函數為激活函數:

神經網絡的輸出層的輸入、輸出各為

公式中各變量含義:輸出層的加權系數值為();神經元輸出函數();輸出層數(l);神經元節點次序數(I)。
輸出層神經元非負Sigmoid函數為活化函數[6~10]:

性能指標函數:

公式中各變量含義:算法設定的標準值(rp),實際檢測值(yp)。
BP神經網絡結構的權限值采用梯度法來調節,從當前點出發,取函數在該點處下降速度最快的方向(加權系數的減小方向)進行搜索,此外,給該函數一個慣性變量使搜索速度加快,進而推出以下公式:

公式中各變量含義:學習速率(η),平滑因子(α)。
由式(14)及PID增量式控制算法公式可得:

綜上可得,輸出層的加權系數學習算法為

隱含層的加權系數學習算法:

BP神經網絡PID算法的步驟總結。
1)明確BP神經網絡的結構原理,將三層網絡結構的各加權系數值,控制變量以及輸入變量的誤差都初始化,將控制器輸出均初始化為零[5]。
2)用下位機處理檢測到的溫濕度數據,從而得到rp(k)和yp(k),再由BP神經網絡算法計算出其所需的E(k)。
3)以三層網絡結構的各加權系數值為基礎,推算出各層結構的輸入與輸出值,再由BP神經網絡算法計算出PID算法所需的三個基本參數值:比例(KP),積分(KI),微分(KD),最后由PID增量式控制算法公式得出最后的控制變量值。
4)由于輸出層跟隱含層的學習算法具自主學習,自動調節的功能。因此,該算法的加入就很好的改善了傳統PID算法運算性能單一,算法不靈活的缺點,使得控溫濕能力顯著提高。
5)重復以上步驟。
為了檢驗BP神經網絡PID算法的調節能力,現以一個種植有黃瓜的溫室為例進行測試。測試的時間選在黃瓜的坐果期,該溫室的面積為60m×20m,選擇該時期的主要原因在于,這一時期的黃瓜對于室內的溫濕度變化比較敏感,所以要保證室內的溫濕度變化在一個合理的范圍內,否則就會影響作物的產量,這就可以很好地測試本系統的有效性。由已有的實驗數據可知,該時期的溫濕度要求為白天的溫度范圍為26℃~29℃,夜間的溫度范圍為12℃~16℃,空氣內的水分含有率保持在45%~55%[1]?,F將該區域劃分為三小塊,每塊區域的面積為20m×20m,每塊區域內都放置有相同的溫濕度傳感器,并由相同算法控制。一切準備就緒后,分別測試了白天(8:00~18:00)以及晚上(20:00~5:00)的溫濕度變化情況。測試結果如表1,表2。由表可知,運用BP神經網絡算法后,棚內溫濕度可以控制在合理的范圍內,滿足預期的要求。

表1 棚內黃瓜坐果期溫濕度測試結果(8:00~18:00)

區域編號 棚內濕度 棚內最大 棚內最小 有無報警均值/%RH濕度/%RH濕度/%RH 150.2652.5448.56無250.6852.6348.23無350.9852.8948.68無

表2 棚內黃瓜坐果期溫濕度測試結果(20:00~5:00)
本設計在傳統室內溫濕度控制的基礎上,增加了以STM32F407ZGT6為控制核心的單片機系統和BP神經網絡PID算法,在很大程度上改善了室內的溫濕度控制。并且由于BP神經網絡PID算法具有自適應學習能力、抗干擾能力以及任意非線性運算能力,所以可以很好地優化系統的功能,使得下位機的溫濕度控制能力更加完善,科研人員的管理更加方便,在農業生產方面具有很大的應用前景。