(哈爾濱理工大學(xué) 測(cè)控技術(shù)與通信工程學(xué)院,哈爾濱 150080)
農(nóng)作物種子萌芽階段是在特定的環(huán)境中進(jìn)行的,在萌芽過(guò)程中受到外界環(huán)境各種因素的影響,其中影響最大的是溫度與濕度[1]。特別是在我國(guó)東北地區(qū),初春時(shí)晝夜溫差與濕度的變化起伏巨大,對(duì)種子萌芽及其不利。因此必須對(duì)溫度和濕度進(jìn)行監(jiān)查和控制,使其在健康的環(huán)境中生長(zhǎng),提高種子的成活率。而隨著傳感技術(shù)和網(wǎng)絡(luò)水平的不斷提高,無(wú)線通訊技術(shù)在很多領(lǐng)域已經(jīng)相當(dāng)成熟,在農(nóng)業(yè)方面實(shí)行新技術(shù)的規(guī)模化生產(chǎn)已是發(fā)展的必然趨勢(shì)。本文從控制系統(tǒng)和監(jiān)察系統(tǒng)2個(gè)方面對(duì)農(nóng)業(yè)大棚監(jiān)控系統(tǒng)進(jìn)行設(shè)計(jì)。在控制系統(tǒng)方面應(yīng)用解耦控制技術(shù)對(duì)大棚內(nèi)的溫濕度參數(shù)進(jìn)行控制;在監(jiān)控系統(tǒng)方面,利用上位機(jī)和WiFi模塊結(jié)合Android手機(jī)2種監(jiān)控手段對(duì)控制系統(tǒng)進(jìn)行了直觀遠(yuǎn)程的監(jiān)控。
控制系統(tǒng)主要采用解耦控制原理。在大棚內(nèi)溫度的變化與濕度的變化存在強(qiáng)耦合關(guān)系,當(dāng)大棚內(nèi)加熱設(shè)備進(jìn)行工作時(shí),大棚內(nèi)的溫度會(huì)升高,同時(shí)濕度會(huì)相對(duì)降低;當(dāng)大棚內(nèi)的加濕設(shè)備進(jìn)行工作時(shí),大棚內(nèi)濕度會(huì)增高,與此同時(shí)溫度會(huì)降低[2]。其溫濕度解耦控制示意圖如圖1所示。

圖1 大棚內(nèi)溫濕度解耦示意Fig.1 Schematic diagram of the temperature and humidity decoupling in greenhouse
圖1中,棚內(nèi)的溫度和濕度可以進(jìn)行相互之間的補(bǔ)償,通過(guò)溫度的變化去影響濕度的改變,其作用是相互的。由于對(duì)溫度、濕度控制不準(zhǔn)確,只能知道其相互之間存在著強(qiáng)耦合的關(guān)系,而采用解耦的PID控制方法,就能實(shí)現(xiàn)對(duì)溫濕度的準(zhǔn)確控制,從而對(duì)溫濕度的控制達(dá)到很好的效果。
解耦控制系統(tǒng)[3]是多輸入輸出系統(tǒng)綜合理論中的重要組成部分。對(duì)于常用的多輸入輸出控制系統(tǒng)來(lái)說(shuō),系統(tǒng)的每個(gè)輸入分量常與系統(tǒng)的各輸出分量存在耦合關(guān)系,即一個(gè)輸出分量可以受到多個(gè)輸入分量控制。這給系統(tǒng)的設(shè)計(jì)與分析帶來(lái)了很大的困擾。解耦的目的是通過(guò)計(jì)算分析尋求適當(dāng)?shù)目刂坡剩馆斎胼敵鱿嚓P(guān)聯(lián)的多變量系統(tǒng)實(shí)現(xiàn)每個(gè)輸出僅受一個(gè)輸入的控制,每一個(gè)輸入也只能控制一個(gè)輸出。在大棚內(nèi)使溫度、濕度的輸出受本身溫濕給定值的控制,其解耦控制原理如圖2所示。

圖2 大棚溫濕度解耦控制原理Fig.2 Decoupling control of the greenhouse temperature and humidity
其中,PID1和PID2分別為溫度控制器與濕度控制器;F11(S)、F21(S)、F12(S)、F22(S)均為設(shè)計(jì)的解耦器;G11(S)、G21(S)、G12(S)、G22(S)分別為溫度、溫度與濕度、濕度與溫度、濕度控制對(duì)象的傳遞函數(shù)。設(shè)定輸入調(diào)節(jié)量,輸出控制量 Y=,根據(jù)圖2可知大棚溫濕度解耦系統(tǒng)的傳遞矩陣函數(shù)為

故輸出控制量Y與輸入調(diào)節(jié)量U的關(guān)系為

對(duì)角解耦的原理就是將系統(tǒng)的傳遞矩陣變成對(duì)角矩陣,即:

設(shè)F(S)為解耦器的矩陣模型,則根據(jù)式(3)可以得出 F(S)為

求解出F(S)就可以得出解耦器的矩陣函數(shù)模型,從而得出對(duì)角解耦的結(jié)果。
通過(guò)式(2)、式(3)可以得出輸出控制量Y與輸入調(diào)節(jié)量U的解耦關(guān)系為

解耦后的等效原理圖如圖3所示。
在溫濕度控制系統(tǒng)中將PID控制器與對(duì)角矩陣運(yùn)算相結(jié)合,所得到的解耦系統(tǒng)是一個(gè)對(duì)角矩陣,運(yùn)算實(shí)現(xiàn)了一個(gè)輸入量只控制一個(gè)輸出量,最終實(shí)現(xiàn)了將耦合系統(tǒng)解耦的效果[4]。

圖3 解耦溫濕度等效原理Fig.3 Equivalent diagram of decoupling temperature and humidity
現(xiàn)今是信息技術(shù)蓬勃發(fā)展的時(shí)代,隨著現(xiàn)代計(jì)算機(jī)技術(shù)、通信技術(shù)、控制技術(shù)及圖形技術(shù)的發(fā)展,監(jiān)察系統(tǒng)的設(shè)計(jì)也越來(lái)越靈活化、多變化[5]。本套監(jiān)查系統(tǒng)采用實(shí)現(xiàn)最流行的無(wú)線WiFi通信技術(shù)和Android手機(jī)應(yīng)用平臺(tái),設(shè)計(jì)選用溫度傳感器AD590、濕度傳感器HS1101對(duì)棚內(nèi)溫濕度進(jìn)行采集,硬件選用上主要圍繞著高速IAP15F2K61S2單片機(jī)為控制核心,WiFi通信模塊選用USR-WIFI232-G模塊,由于監(jiān)控系統(tǒng)工作在農(nóng)間大棚,故選用太陽(yáng)能供電方式進(jìn)行供電,系統(tǒng)的總體框架圖如圖4所示。

圖4 監(jiān)察系統(tǒng)總體框架Fig.4 Overall frame diagram of the system
根據(jù)圖4所示:首先通過(guò)溫度、濕度等傳感器采集棚內(nèi)各項(xiàng)數(shù)據(jù),數(shù)據(jù)經(jīng)過(guò)信號(hào)調(diào)節(jié)傳送給單片機(jī),單片機(jī)內(nèi)事前設(shè)定出給定值比較出的偏差值,并進(jìn)行數(shù)字解耦PID運(yùn)算。通過(guò)單片機(jī)判斷大棚環(huán)境是否正常并將信號(hào)通過(guò)無(wú)線WiFi傳送到遠(yuǎn)程上位機(jī)和Android手持設(shè)備。在WiFi覆蓋的范圍內(nèi),用戶可以通過(guò)上位機(jī)實(shí)時(shí)明確地觀測(cè)控制系統(tǒng)的運(yùn)行效果。并且可以通過(guò)手持Android設(shè)備對(duì)大棚內(nèi)的環(huán)境變化進(jìn)行遠(yuǎn)程監(jiān)控。
Android是一種使用于移動(dòng)設(shè)備基于Linux平臺(tái)的開(kāi)源嵌入式操作系統(tǒng)[6]。該平臺(tái)主要由操作系統(tǒng)、中間件、用戶界面和應(yīng)用軟件4部分組成,采用軟件疊層的(Software Stack)方式構(gòu)建。設(shè)計(jì)系統(tǒng)采用客戶機(jī)/服務(wù)器的模式,客戶機(jī)端部分采用Java語(yǔ)言進(jìn)行開(kāi)發(fā),數(shù)據(jù)存儲(chǔ)則利用Android自身數(shù)據(jù)庫(kù)SQLite來(lái)實(shí)現(xiàn),結(jié)合Socket完成網(wǎng)絡(luò)通信;服務(wù)器端部分采用VB結(jié)合SQL以及Socket編程實(shí)現(xiàn)。最終編譯結(jié)果打包生成APK文件,該文件可以在Android手機(jī)上直接安裝并運(yùn)行。相比于傳統(tǒng)的農(nóng)業(yè)大棚無(wú)線監(jiān)控系統(tǒng),本設(shè)計(jì)在用戶手持設(shè)備上設(shè)計(jì)控制界面,具有不受時(shí)間、環(huán)境、地域位置等因素限制的優(yōu)點(diǎn),操作方便靈活。
Android系統(tǒng)采用XML布局文件和Java語(yǔ)言混合完成界面設(shè)計(jì),把行為比較固定的組件放在XML布局文件中管理,行為比較復(fù)雜的交給Java代碼進(jìn)行管理[7]。系統(tǒng)主要包括登錄界面、控制界面和主功能界面。在主功能界面中,可以通過(guò)點(diǎn)擊方式進(jìn)入各級(jí)控制界面。1號(hào)大棚節(jié)點(diǎn)的主控制界面如圖5所示。在該控制界面可以實(shí)時(shí)接收1號(hào)大棚內(nèi)的溫濕度參數(shù)并顯示,用戶還可以手動(dòng)改變棚內(nèi)的溫度與濕度,根據(jù)自行要求對(duì)棚內(nèi)進(jìn)行升/降溫和加/減濕度的操作。

圖5 大棚Android控制界面Fig.5 Android control interface of greenhouse
在多個(gè)設(shè)備之間實(shí)現(xiàn)相互通信,常見(jiàn)的方法有2種:Socket通信與UDP通信[7]。Socket是一種基于TCP/IP協(xié)議,在通信兩端各建立一個(gè)Socket,從而通信兩端形成網(wǎng)絡(luò)虛擬鏈路,其具有安全性高等優(yōu)點(diǎn)。本設(shè)計(jì)選用Socket通信方式,建立Socket客戶端,客戶端的主機(jī)名為服務(wù)器的IP地址,客戶端的端口號(hào)是服務(wù)器用來(lái)監(jiān)聽(tīng)該程序的端口,通過(guò)服務(wù)器的IP和端口號(hào)使客戶端與服務(wù)器相連接,使用Socket獲取輸入流讀取數(shù)據(jù),在建立的Android項(xiàng)目程序界面中包含文本框用于顯示從服務(wù)器端讀取的字符串?dāng)?shù)據(jù),從而接受服務(wù)器傳送過(guò)來(lái)的棚內(nèi)溫濕度環(huán)境參數(shù)。利用消息Message處理來(lái)接收數(shù)據(jù)并進(jìn)行顯示。
在局域網(wǎng)Socket連接問(wèn)題上,要使Activity之間公用一個(gè)Socket連接,通常使用Application的方法,在Android中的不同Activity中傳遞變量,通常使用Intent中Bundle添加變量的操作方法[8]。在向目標(biāo)Activity內(nèi)保存參數(shù)數(shù)據(jù),其他Activity可以從目標(biāo)Activity中讀取參數(shù)。在本設(shè)計(jì)中具體的操作為分別向目標(biāo)Activity中傳遞棚內(nèi)溫度和濕度的實(shí)時(shí)數(shù)據(jù),其它Activity從目標(biāo)Activity中讀取溫濕度參數(shù)。在從服務(wù)器端讀取的字符串?dāng)?shù)據(jù)經(jīng)分割處理后結(jié)合數(shù)據(jù)單位送往界面進(jìn)行顯示。
本系統(tǒng)的軟件設(shè)計(jì)部分主要包括2部分,分別是單片機(jī)控制系統(tǒng)的軟件設(shè)計(jì)和基于Android系統(tǒng)的手機(jī)監(jiān)控軟件設(shè)計(jì)。在單片機(jī)控制部分,主要有系統(tǒng)的溫濕度測(cè)量與數(shù)據(jù)處理,控制程序功能包括定時(shí)與數(shù)據(jù)處理、PID控制程序與解耦程序等;手機(jī)監(jiān)控部分設(shè)計(jì)監(jiān)控平臺(tái)軟件,實(shí)現(xiàn)數(shù)據(jù)的顯示和歷史數(shù)據(jù)的存儲(chǔ)。
系統(tǒng)的控制部分主要包括:系統(tǒng)溫度的升/降,濕度的加/減,控制程序功能包括定時(shí)與數(shù)據(jù)處理、PID控制程序與解耦程序等。這一系列的操作都是在單片機(jī)的控制下完成的操作,無(wú)需工作人員進(jìn)行手動(dòng)控制,現(xiàn)場(chǎng)的溫濕度控制要求嚴(yán)格,種子的萌芽對(duì)溫濕度的要求很高,所以在進(jìn)行控制時(shí)一定要將誤差控制在合理的范圍之內(nèi),在傳感器的誤差允許范圍之內(nèi),進(jìn)行精準(zhǔn)的控制和調(diào)節(jié)。系統(tǒng)控制流程如圖6所示。

圖6 系統(tǒng)控制流程Fig.6 System control flow chart
本設(shè)計(jì)的亮點(diǎn)在于Android的手機(jī)應(yīng)用平臺(tái)的設(shè)計(jì),實(shí)現(xiàn)農(nóng)業(yè)的移動(dòng)化和智能化、精準(zhǔn)化。手機(jī)客戶端的數(shù)據(jù)來(lái)源是下位的數(shù)據(jù)采集部分的數(shù)據(jù),傳輸?shù)氖侄问菬o(wú)線傳輸,無(wú)線傳輸?shù)脑O(shè)備是WiFi和路由,智能手機(jī)可以直接訪問(wèn)路由節(jié)點(diǎn),即可訪問(wèn)上傳來(lái)的數(shù)據(jù)。本部分的軟件設(shè)計(jì)應(yīng)用的語(yǔ)言是Java高級(jí)語(yǔ)言。Android應(yīng)用程序的開(kāi)發(fā)屬于第4層次。應(yīng)用的開(kāi)發(fā)軟件是Eclipse 4.0。圖7為Android程序流程。

圖7 Android程序流程Fig.7 Android program flow chart
在寶泉嶺農(nóng)場(chǎng)某實(shí)驗(yàn)大棚根據(jù)種子萌芽時(shí)所需的溫濕度的要求對(duì)監(jiān)控系統(tǒng)進(jìn)行了調(diào)試,溫度的給定值為32℃,濕度的給定值為50%,溫度控制器PID 的各項(xiàng)參數(shù)設(shè)定為 P=35%、I=80 s、D=20 s;濕度控制器各項(xiàng)參數(shù)設(shè)定為 P=45%、I=30 s、D=40 s,現(xiàn)場(chǎng)采集數(shù)值并進(jìn)行分析。系統(tǒng)采集一天內(nèi)不同時(shí)段的溫濕度數(shù)據(jù),通過(guò)上位機(jī)或手持Android設(shè)備進(jìn)行觀察,其數(shù)據(jù)如表1所示。

表1 檢測(cè)結(jié)果Tab.1 Test results
根據(jù)表1所示,證明系統(tǒng)設(shè)計(jì)良好,可以滿足對(duì)大棚內(nèi)溫濕度的嚴(yán)格控制。大棚內(nèi)溫度的誤差不大于0.3℃,濕度誤差不大于3%,具有良好的效果,符合大棚內(nèi)種子萌芽的標(biāo)準(zhǔn)。
本文從大棚內(nèi)種子萌芽溫濕度監(jiān)控的角度出發(fā),使用溫濕度解耦PID的方法控制溫濕度設(shè)備,從而保證了大棚內(nèi)的良好環(huán)境。并結(jié)合通信技術(shù)、控制技術(shù)及圖形技術(shù)提出了基于Android手機(jī)對(duì)農(nóng)業(yè)大棚實(shí)行遠(yuǎn)程監(jiān)控。操作簡(jiǎn)單方便、應(yīng)用性好,通過(guò)實(shí)驗(yàn)證明對(duì)大棚溫濕度的檢測(cè)精度高,大棚內(nèi)溫度的誤差不大于0.3℃,濕度不大于3%,具有良好的效果,為農(nóng)業(yè)大棚監(jiān)控系統(tǒng)提供了一個(gè)新的方案。
[1]盧佩,劉效勇.溫室大棚溫濕度模糊解耦控制系統(tǒng)設(shè)計(jì)與仿真[J].農(nóng)機(jī)化研究,2010,32(1):44-46.
[2]吳興純,吳瑞武,楊燕云.基于對(duì)角解耦的大棚溫濕度控制系統(tǒng)設(shè)計(jì)與研究[J].計(jì)算機(jī)技術(shù)與應(yīng)用,2011,37(12):137-139.
[3]金以慧.過(guò)程控制[M].北京:清華大學(xué)出版社,1993.
[4]劉偉,馮向軍.關(guān)于多變量PID自適應(yīng)解耦控制器的設(shè)計(jì)[J].微計(jì)算機(jī)信息,2004,20(4):22-24.
[5]易順明,趙海蘭,袁然.基于單片機(jī)的大棚溫濕度控制系統(tǒng)設(shè)計(jì)[J].現(xiàn)代電子技術(shù),2011,34(7):129-131.
[6]徐兵,廖友成,劉文杰,等.基于Android平臺(tái)的車載導(dǎo)航系統(tǒng)研究[J].計(jì)算機(jī)測(cè)量與控制,2014,22(2):601-603.
[7]李慧,劉星橋,李景,等.基于物聯(lián)網(wǎng) Android平臺(tái)的水產(chǎn)養(yǎng)殖遠(yuǎn)程監(jiān)控系統(tǒng)[J].農(nóng)業(yè)工程學(xué)報(bào),2013,29(13):175-181.
[8]江燕良.基于Android智能終端的遠(yuǎn)程控制系統(tǒng)[J].電子技術(shù)應(yīng)用,2012,38(8):129-132.