劉洪靜,李 黎,高金輝
(1.河南師范大學(xué)電子與電氣工程學(xué)院 增材智能制造河南省工程實(shí)驗(yàn)室, 河南 新鄉(xiāng) 453007;2.新鄉(xiāng)水文水資源勘測(cè)局, 河南 新鄉(xiāng) 453000)
我國(guó)是一個(gè)農(nóng)業(yè)大國(guó),農(nóng)業(yè)灌溉用水占比較大,傳統(tǒng)的灌溉方式導(dǎo)致水資源的嚴(yán)重浪費(fèi)[1],不符合我國(guó)農(nóng)業(yè)節(jié)水灌溉的要求。為了解決這一問(wèn)題需要發(fā)展一種較高水平的灌溉技術(shù),以作物對(duì)水分的需求量為依據(jù),適時(shí)適量灌溉,使作物生長(zhǎng)在最佳狀態(tài)。
由于農(nóng)業(yè)灌溉對(duì)象是一個(gè)大慣性、 非線性和純時(shí)延的系統(tǒng),無(wú)法對(duì)其建立精確與統(tǒng)一的數(shù)學(xué)模型[2],傳統(tǒng)的PID控制,理論成熟,參數(shù)調(diào)整方便[3],但控制精度達(dá)不到要求,存在超調(diào)的現(xiàn)象;模糊控制是一種非線性控制,不需要建立精確的數(shù)學(xué)模型,根據(jù)領(lǐng)域?qū)<抑R(shí)或操作人員的經(jīng)驗(yàn)就可制定有效的控制策略,但其抗干擾能力欠佳[4]。
本文根據(jù)兩者的優(yōu)點(diǎn)設(shè)計(jì)了一種新的模糊PID控制方法,提高了控制精度和抗干擾能力;采用信電共線新的通訊方式,通過(guò)在2根低壓供電總線上調(diào)制通訊控制信號(hào)(滿幅電壓發(fā)送,電流回傳接收),系統(tǒng)無(wú)極性接線的方法替代傳統(tǒng)供電和通訊分離的多線制電纜,克服了傳統(tǒng)RS232、RS485有線通訊方式[5]傳輸距離有限、通訊線束多、接線復(fù)雜的問(wèn)題。并利用Modbus通信協(xié)議、Simulink仿真和滴灌實(shí)驗(yàn)驗(yàn)證了其可行性,取得了較好的效果,實(shí)現(xiàn)了節(jié)水灌溉的智能控制,在可控范圍內(nèi)最大限度地減少灌溉用水的浪費(fèi)[6],解決了我國(guó)灌溉水資源利用率低、管理水平滯后、勞動(dòng)強(qiáng)度大、人機(jī)交互能力差等弊端。
本系統(tǒng)由:模糊PID控制器、MCGS組態(tài)系統(tǒng)、信電共線主機(jī)模塊、從機(jī)模塊,土壤濕度傳感器,水流傳感器和電球閥組成。MCGS組態(tài)系統(tǒng)用于設(shè)定土壤濕度、顯示各個(gè)分機(jī)和傳感器狀態(tài),并能與主機(jī)模塊通信,控制相應(yīng)的從機(jī)。主機(jī)模塊和從機(jī)模塊之間通過(guò)Modbus協(xié)議進(jìn)行通信。從機(jī)土壤濕度傳感器采集土壤信息,并將信息通過(guò)主機(jī)模塊反饋給模糊PID控制器,經(jīng)算法運(yùn)算處理后,將輸出量通過(guò)組態(tài)系統(tǒng)反饋給主機(jī)模塊,從而控制相應(yīng)分機(jī)的電球閥的開(kāi)閉,實(shí)現(xiàn)節(jié)水灌溉的智能控制。水流傳感器檢測(cè)水流流量及反饋電動(dòng)球閥的開(kāi)閉狀態(tài)。系統(tǒng)總體結(jié)構(gòu)如圖1所示。
圖1 系統(tǒng)總體結(jié)構(gòu)圖
主機(jī)核心電路如圖2所示,系統(tǒng)支持總線電壓直流12~48 V,通過(guò)電壓變化信號(hào)向從機(jī)發(fā)送控制信號(hào)。模塊EV620通過(guò)485總線與MCGS組態(tài)屏通信,BRK為總線故障指示引腳。
圖2 主機(jī)核心電路
當(dāng)EV620接收到MCGS發(fā)來(lái)的串口信號(hào),需要向從機(jī)發(fā)送信號(hào)時(shí),通過(guò)控制引腳BH使總線輸出腳L1的電壓值在滿足供電的前提下小范圍內(nèi)上下波動(dòng),從而使總線上形成規(guī)律性變化的電壓信號(hào),以供從機(jī)識(shí)別。
當(dāng)EV620接收到從機(jī)發(fā)來(lái)的應(yīng)答信號(hào)時(shí),引腳BL檢測(cè)總線上的電流變化,將電流信號(hào)轉(zhuǎn)變?yōu)榭勺R(shí)別的電壓信號(hào),通過(guò)串口發(fā)送給MCGS并顯示。
從機(jī)核心電路如圖3所示,控制芯片PB331的PI引腳為信號(hào)輸入端,檢測(cè)主站發(fā)送來(lái)的電壓信號(hào),以識(shí)別主站發(fā)來(lái)的指令;PO引腳為信號(hào)輸出端,通過(guò)控制T1的導(dǎo)通控制總線電流,向主機(jī)發(fā)送應(yīng)答信號(hào)。MCU單片機(jī)為帶有 flash的增強(qiáng)型8位8051內(nèi)核微控制器,通過(guò)IO口讀取傳感器數(shù)值、電球閥狀態(tài),并控制電球閥運(yùn)行。TR為土壤濕度傳感器,SL為水流傳感器,Valve為電球閥。
圖3 從機(jī)核心電路
當(dāng)PB331的PI引腳檢測(cè)到主站發(fā)來(lái)的電壓信號(hào)后,通過(guò)串口發(fā)送給MCU執(zhí)行相關(guān)操作。
當(dāng)PB331接收到MCU發(fā)送來(lái)的應(yīng)答信號(hào)時(shí),控制PO腳使T1導(dǎo)通或關(guān)閉,從而使總線上形成小范圍規(guī)律性變化的電流信號(hào),以供主機(jī)識(shí)別。
MCGS組態(tài)屏是一套以Cortex-A8 CPU為核心的高性能嵌入式一體化觸摸屏[7],利用MCGS人機(jī)界面實(shí)時(shí)顯示系統(tǒng)參數(shù),進(jìn)行系統(tǒng)參數(shù)設(shè)置和運(yùn)行控制[8],其建立的組態(tài)系統(tǒng)工程由主控窗口、設(shè)備窗口、用戶窗口、實(shí)時(shí)數(shù)據(jù)庫(kù)及運(yùn)行策略等5個(gè)部分構(gòu)成。本組態(tài)系統(tǒng)設(shè)有登錄界面、主界面、分組界面等若干界面,系統(tǒng)主界面如圖4所示。
圖4 組態(tài)系統(tǒng)主界面
為了便于和MCGS組態(tài)系統(tǒng)通信,信電共線主、從機(jī)均采用Modbus-RTU通信協(xié)議[9,10],通過(guò)主機(jī)向從機(jī)發(fā)送請(qǐng)求,從機(jī)向主機(jī)響應(yīng)的方式,實(shí)現(xiàn)數(shù)據(jù)交互。
本設(shè)計(jì)是一臺(tái)主機(jī)對(duì)若干臺(tái)從機(jī)進(jìn)行監(jiān)控,定義的分機(jī)寄存器地址如表1所示,并根據(jù)具體情況編寫(xiě)了兩個(gè)控制指令:主機(jī)讀取從機(jī)狀態(tài)的命令和主機(jī)控制從機(jī)電球閥開(kāi)關(guān)的命令。其控制格式如下。
主機(jī)檢測(cè)灌溉狀態(tài),讀取從機(jī)狀態(tài)的命令格式:從機(jī)地址、0x04、0x00、0x04、0x00、0x05、低位CRC、高位CRC。第一個(gè)0x04為功能碼:?jiǎn)蝹€(gè)讀;0x00、0x04為讀取的第一個(gè)數(shù)據(jù)寄存器的地址, 0x00、0x05為讀取的寄存器個(gè)數(shù),即從寄存器0x04開(kāi)始順序讀取5個(gè)寄存器的地址;高、低位CRC為校驗(yàn)碼。
主機(jī)控制相應(yīng)從機(jī)電球閥開(kāi)關(guān)的命令格式:從機(jī)地址、0x06、0x00、0x04、0x00、0x01或0x00、低位CRC、高位CRC。0x06為功能碼:?jiǎn)蝹€(gè)寫(xiě);0x00、0x04為電球閥狀態(tài)寄存器地址;0x00、0x01為打開(kāi)電球閥指令,0x00、0x00為關(guān)閉電球閥指令;高位、低位CRC為校驗(yàn)碼。
表1 分機(jī)寄存器地址分配表
注:電球閥運(yùn)行狀態(tài):開(kāi)啟時(shí)為1,關(guān)閉時(shí)為2,空閑時(shí)為0,動(dòng)作超時(shí)為0xff。
模糊PID 控制器原理[11]如圖5所示。
圖5 模糊PID 控制器原理圖
控制器中,土壤濕度偏差e(k)由k時(shí)刻的土壤濕度設(shè)定值r(k)與實(shí)際檢測(cè)值y(k)構(gòu)成:
e(k)=r(k) -y(k)
(1)
偏差變化率ec(k) 由當(dāng)前時(shí)刻誤差e(k)與前一個(gè)時(shí)刻的誤差e(k-1)構(gòu)成:
ec(k)=e(k) -e(k-1)
(2)
輸出變量為u(k),由e(k)、ec(k)及變量Kp、Ki、Kd構(gòu)成:
(3)
通過(guò)偏差和變化率的輸入,依據(jù)模糊規(guī)則得出相應(yīng)的變化量ΔKp、ΔKi、ΔKd,并和原來(lái)設(shè)定的PID參數(shù)進(jìn)行相加,得出需要傳遞給輸出的變量Kp、Ki、Kd。
設(shè)置濕度偏差e(k)和偏差變化率ec(k)的基本論域分別為[-5,+5]和[-3,+3],對(duì)應(yīng)的離散論域均為{-3,-2,-1,0,1,2,3},則量化因子Ke=3/5=0.8,Kec=3/3=1。設(shè)置輸出量u基本論域?yàn)閇0,30],由于輸出量不存在負(fù)值,離散論域u設(shè)為{0,1,2,3,4,5},則比例因子Ku=30/5=6。濕度偏差e、濕度變化率ec和變量ΔKp、ΔKi、ΔKd均采用三角隸屬度函數(shù),函數(shù)曲線見(jiàn)圖6。
本模糊控制規(guī)則建立的原則是在輸入偏差e(k)變大的時(shí)候向誤差減小的方向進(jìn)行調(diào)整,當(dāng)誤差變小的時(shí)候要保持系統(tǒng)穩(wěn)定,盡可能避免出現(xiàn)超調(diào)現(xiàn)象,具體規(guī)則如下,邏輯控制表見(jiàn)表2。
(1)當(dāng)偏差e(k)較大時(shí),代表土壤濕度相差較大,應(yīng)該加快系統(tǒng)調(diào)節(jié),加大ΔKp并減小ΔKd使系統(tǒng)快速到達(dá)預(yù)定的值。為防止系統(tǒng)產(chǎn)生超調(diào),應(yīng)當(dāng)取較小的ΔKi值。
(2)當(dāng)偏差e(k)適中時(shí),代表土壤濕度在向設(shè)定濕度值靠近,變化范圍不易過(guò)大,系統(tǒng)應(yīng)盡量保持在一個(gè)相對(duì)穩(wěn)定的狀態(tài)下,應(yīng)當(dāng)把ΔKp向較小的方向調(diào)整,ΔKi、ΔKd取適中值即可。
(3)當(dāng)偏差e(k)較小時(shí),代表土壤濕度接近設(shè)定值,為了增加系統(tǒng)的容錯(cuò)性,應(yīng)取較大的ΔKp、ΔKi值,為了避免系統(tǒng)發(fā)生振蕩,ΔKd的取值尤為重要,一般取中等大小。
根據(jù)所述的模糊PID控制器,運(yùn)用 Simulink進(jìn)行仿真,來(lái)驗(yàn)證其可行性。由于實(shí)際土壤水勢(shì)曲線為非線性,土壤濕度受多種因素影響,經(jīng)過(guò)查閱文獻(xiàn)資料,采用土壤濕度基質(zhì)變化率的公式來(lái)反映變化函數(shù)[12]:
Δy= 100 sin (2 πx/400)
(4)
式中:x為經(jīng)過(guò)換算的開(kāi)閥時(shí)間;Δy為土壤濕度變化率。
通過(guò)單獨(dú) PID 控制器仿真分析,Kp、Ki、Kd的初始值分別為13、0.5、0.1 且Kp取值在[8,18],Ki取值在[0,1],Kd取值在[0,0.2]時(shí),系統(tǒng)的控制效果較好。因此輸出比例因子ap=18 -13/10=0.5,ai=1 -0.5/10=0.05,ad=0.2 -0.1/10=0.01,變量Kp、Ki、Kd表達(dá)式如下:
Kp=0.5ΔKp+13
(5)
Ki=0.05ΔKi+0.5
(6)
Kd=0.01ΔKd+0.1
(7)
表2 模糊PID邏輯控制表
以設(shè)定濕度為30%為例,仿真結(jié)果如圖7所示。發(fā)現(xiàn)經(jīng)過(guò)48 s后濕度達(dá)到設(shè)定值并保持水平,超調(diào)量較小,響應(yīng)時(shí)間短,效果優(yōu)于單一的模糊控制器和PID控制器。
圖7 simulink仿真結(jié)果
以組1中關(guān)閉的2號(hào)從機(jī)為例。檢測(cè)灌溉狀態(tài)時(shí),發(fā)送讀取2號(hào)從機(jī)狀態(tài)的指令為:
0x02、0x04、0x00、0x04、0x00、0x06、0x31、0xFA。調(diào)試工具返回值RX為:
0x02、0x04、0x0C、0x00、0x00、0x00、0x00、0x00、0x01、0x00、0x00、0x00、0x00、0x00、0x1C、0xC7、0xBF。
當(dāng)土壤濕度值未達(dá)到設(shè)定值,需要灌溉時(shí),發(fā)送開(kāi)啟2號(hào)從機(jī)電球閥的指令為:
0x02、0x06、0x00、0x04、0x00、0x01、0x09、0xF8。
調(diào)試工具返回值RX為:
0x02、0x06、0x00、0x04、0x00、0x01、0x09、0xF8。組態(tài)測(cè)試效果如圖8所示。
圖8 系統(tǒng)通訊測(cè)試圖1
當(dāng)土壤濕度值達(dá)到設(shè)定值,需要結(jié)束灌溉時(shí),發(fā)送閉2號(hào)電球閥的指令為:
0x02、0x06、0x00、0x04、0x00、0x00、0xC8、0x38。
調(diào)試工具返回值RX為:
0x02、0x06、0x00、0x04、0x00、0x00、0xC8、0x38。組態(tài)測(cè)試效果如圖9所示。
圖9 系統(tǒng)通訊測(cè)試圖2
根據(jù)已搭建好的節(jié)水灌溉系統(tǒng),設(shè)定土壤濕度為20%,采用滴灌的方式對(duì)某大型盆栽進(jìn)行實(shí)驗(yàn),土壤濕度傳感器插入土壤深度為7 cm,秒表計(jì)時(shí)100 s,測(cè)得數(shù)據(jù)曲線如圖10所示。實(shí)驗(yàn)結(jié)果表明該節(jié)水灌溉系統(tǒng)響應(yīng)上升時(shí)間短,在誤差允許范圍內(nèi)超調(diào)量較小,具有較強(qiáng)的穩(wěn)定性和魯棒性。
圖10 土壤濕度測(cè)試圖
本設(shè)計(jì)基于模糊PID算法,利用信電共線2線通訊方式和Modbus協(xié)議,結(jié)合MCGS組態(tài)系統(tǒng),以設(shè)定的土壤濕度值作為灌溉的依據(jù),研究并設(shè)計(jì)了一種節(jié)水灌溉智能控制系統(tǒng)。實(shí)驗(yàn)證明該系統(tǒng)具有設(shè)計(jì)合理、安全可靠、性能穩(wěn)定、操作簡(jiǎn)單、實(shí)用性強(qiáng)等優(yōu)點(diǎn)。解決了傳統(tǒng)灌溉水資源浪費(fèi)大、安全性差、人機(jī)交互能力不強(qiáng)的問(wèn)題,達(dá)到了節(jié)水灌溉的目的,在灌溉領(lǐng)域具有一定的實(shí)際應(yīng)用價(jià)值。