摘 要:豬舍作為典型多參數(shù)共存的復(fù)雜環(huán)境,難以建立精確的數(shù)學(xué)模型進(jìn)行有效的監(jiān)控。為此,提出了一種采用PID算法的物聯(lián)網(wǎng)生豬監(jiān)管養(yǎng)殖系統(tǒng)。該系統(tǒng)采用積分分離型的PID算法,通過(guò)將實(shí)時(shí)值與用戶值的偏差跟安全閾值進(jìn)行比對(duì)獲取PID算法模式(離散型和積分分離型),輸出反饋調(diào)節(jié)量來(lái)啟、停養(yǎng)殖設(shè)備,從而完成生豬自動(dòng)化養(yǎng)殖。將2種PID算法進(jìn)行對(duì)比,結(jié)果表明:積分分離型PID算法能使智慧豬欄系統(tǒng)具有良好的精確性和穩(wěn)定性,能夠高效完成自動(dòng)化生豬養(yǎng)殖工作。
關(guān)鍵詞:積分分離PID算法;智慧豬欄;生豬養(yǎng)殖;農(nóng)業(yè)物聯(lián)網(wǎng);Django框架
中圖分類號(hào):S818.5 文獻(xiàn)標(biāo)識(shí)碼:A 文章編號(hào):1006-060X(2018)02-0089-06
The Application of Integral Separation PID Algorithm in Intelligent Pigsty System
ZHANG Chao1,LIU Bo1,2
(1. Information Science and Technology College of Hunan Agricultural University, Changsha 410128, PRC; 2. Hunan Engineering Technology Research Center of Agricultural amp; Rural Information, Changsha 410128, PRC)
Abstract:It is difficult to establish accurate mathematical model for effective monitoring because the piggery is a complex environment with typical multi-parameter coexistence. In view of the above situation, a kind of PID algorithm iot second-pollution regulatory system is put forward. The system adopts the integral separation PID algorithm, through the real value and the user value of deviation and compares the safety threshold algorithm model, output feedback control quantity to stop farming equipment for automatic breeding, breeding complete automation. Comparing the two kinds of PID algorithm, the intelligent pigsty system with the integral separation PID algorithm system has a good accuracy and stability, can efficiently complete the automation pig breeding work.
Key words: integral separation PID controller; intelligent pigsty system; pig breeding; agricultural internet of things; Django Framework
近年來(lái),生豬養(yǎng)殖業(yè)正朝著集約化、規(guī)模化的方向發(fā)展。相對(duì)傳統(tǒng)的農(nóng)戶散養(yǎng)而言,養(yǎng)殖場(chǎng)中生豬的養(yǎng)殖密度不斷增加,導(dǎo)致生豬養(yǎng)殖環(huán)境越來(lái)越惡劣,豬群常常處于亞健康狀態(tài),進(jìn)而頻頻爆發(fā)疾病。研究也表明,豬群疾病爆發(fā)率與其生存環(huán)境密切相關(guān)[1]。中國(guó)農(nóng)業(yè)大學(xué)的王新謀教授提出,豬舍環(huán)境調(diào)控必須從工藝設(shè)計(jì)、改善場(chǎng)區(qū)環(huán)境、豬舍建筑、舍內(nèi)環(huán)境調(diào)控工藝和設(shè)備、加強(qiáng)飼養(yǎng)管理、控制環(huán)境污染等多方面采取綜合措施;同時(shí),必須考慮諸因素相互影響制約,注意多因素綜合作用,盡量采取多因素綜合調(diào)控措施[2]。
目前,我國(guó)養(yǎng)豬場(chǎng)基本為半自動(dòng)化養(yǎng)殖,特別在豬舍環(huán)境數(shù)據(jù)采集與監(jiān)控環(huán)節(jié)依然停留在人工作業(yè)階段,完全依靠豬場(chǎng)管理員的經(jīng)驗(yàn)與主觀判斷來(lái)控制各種養(yǎng)殖機(jī)械設(shè)備[2]。與發(fā)達(dá)國(guó)家相比,我國(guó)生豬養(yǎng)殖的自動(dòng)化水平相對(duì)落后,智能化程度較低,難以滿足現(xiàn)代化管理的需要[3]。為了提高生豬養(yǎng)殖的自動(dòng)化作業(yè)水平,筆者構(gòu)建了一套物聯(lián)網(wǎng)生豬監(jiān)管養(yǎng)殖系統(tǒng),該系統(tǒng)采用積分分離型的PID算法,通過(guò)將實(shí)時(shí)值與用戶值的偏差跟安全閾值進(jìn)行比對(duì)獲取算法模式,輸出反饋調(diào)節(jié)量來(lái)啟、停養(yǎng)殖設(shè)備,從而實(shí)現(xiàn)生豬自動(dòng)化養(yǎng)殖。
1 PID控制器
PID是一種線性調(diào)節(jié)器,控制單元由比例(Proportion)、積分(Integral)、微分(Derivative)3種運(yùn)算組成復(fù)雜的函數(shù)關(guān)系,最后的運(yùn)算結(jié)果將用于控制養(yǎng)殖設(shè)備[4]。在該系統(tǒng)中,設(shè)定算法輸入變量為豬舍的主要環(huán)境參數(shù)如溫度、濕度、氨氣濃度等,設(shè)定算法的輸出變量為各類養(yǎng)殖設(shè)備的執(zhí)行機(jī)構(gòu),例如刮糞板、糞便輸送帶、通風(fēng)扇、電動(dòng)窗簾等,算法控制器結(jié)構(gòu)如圖1所示。圖1中的r(t)代表的是系統(tǒng)的輸入值,c(t)代表的是系統(tǒng)的輸出值,e(t)代表的是系統(tǒng)輸入值和系統(tǒng)輸出值的偏差值,計(jì)算公式為e(t)=c(t)-r(t),u(t)代表的是控制器的輸出值。在PID控制器中,Kp為比例系數(shù),Ti為積分時(shí)間常數(shù),Td為微分時(shí)間常數(shù)。該系統(tǒng)主要針對(duì)溫度、濕度、氨氣濃度、光照強(qiáng)度等豬舍環(huán)境變量進(jìn)行實(shí)時(shí)監(jiān)控,為滿足生豬的健康成長(zhǎng)需要,根據(jù)PID控制算法使用比例運(yùn)算、積分運(yùn)算、微分運(yùn)算對(duì)環(huán)境參數(shù)進(jìn)行調(diào)控,將實(shí)時(shí)環(huán)境參數(shù)采樣值與用戶預(yù)設(shè)值進(jìn)行對(duì)比獲得實(shí)際反饋控制量,進(jìn)行反饋控制。
生豬養(yǎng)殖的豬舍環(huán)境監(jiān)控系統(tǒng)存在非線性、時(shí)變、滯后性和多干擾參數(shù)并存等復(fù)雜問(wèn)題,環(huán)境中各參數(shù)相互耦合、相互干擾,難以搭建精確的數(shù)學(xué)模型。目前生產(chǎn)中應(yīng)用的自動(dòng)化控制技術(shù)遵循的都是基于反饋理論的閉環(huán)控制概念,控制器將實(shí)際觀測(cè)值與期望值進(jìn)行比較,得出偏差值,再通過(guò)系統(tǒng)糾正執(zhí)行相應(yīng)反饋控制。在實(shí)際運(yùn)用中,PID控制器是最廣泛的反饋調(diào)節(jié)器[5]。筆者采用PID控制算法對(duì)豬舍養(yǎng)殖環(huán)境進(jìn)行自動(dòng)化控制,PID控制算法具有效果表現(xiàn)直觀、魯棒性能良好等特點(diǎn),使用該算法能夠有效地調(diào)整豬舍各項(xiàng)環(huán)境參數(shù),為生豬提供最佳的生活環(huán)境。
2 算法演化
2.1 離散演變
根據(jù)PID控制算法的控制規(guī)律,反饋控制量e(t)=c(t)-r(t),控制器輸出量u(t)與前者的線性關(guān)系式如下:
式中,Kp為比例系數(shù),Ti為積分時(shí)間常量,TD 為微分時(shí)間常量。PID算法控制器的傳遞函數(shù)為:
上述線性關(guān)系式為PID控制算法的經(jīng)典表達(dá)式,但計(jì)算機(jī)控制一般都采用離散型控制系統(tǒng),通過(guò)設(shè)置采樣時(shí)間范圍,再根據(jù)時(shí)間內(nèi)的偏差值計(jì)算反饋量,將反饋量轉(zhuǎn)換為機(jī)械調(diào)節(jié)動(dòng)作,則實(shí)現(xiàn)了PID算法的回環(huán)控制,故采用離散型表達(dá)式。
假設(shè)采樣的時(shí)間間隔為T,在k時(shí)刻的偏差為e(t)=e(k);
積分為e(k)=e(k-1)+e(k+2)+…e(0);
微分為[e(k)-e(k-1)]/T;
經(jīng)典線性關(guān)系式離散化后推算過(guò)程如下:
推算到此,使用Ki替代目前的積分系數(shù),
使用Kd替代目前的微分系數(shù),則可求得PID算
法的離散形式,也稱為位置式PID代數(shù)式:
該線性代數(shù)式中的系統(tǒng)輸出量u(k)為全量輸出,當(dāng)豬舍養(yǎng)殖設(shè)備的執(zhí)行控制不需要反饋控制量的絕對(duì)值,而是需要增量時(shí),則需要將上述位置式表達(dá)式轉(zhuǎn)換為增量式表達(dá)式:
上述增量式表達(dá)式的輸出值是每一次反饋控制量e(t)的增量。這就避免了累計(jì)計(jì)算絕對(duì)量,因此使用PID控制算法的離散形式優(yōu)于標(biāo)準(zhǔn)表達(dá)式。
2.2 積分分離演變
普通PID控制器,依靠3個(gè)計(jì)算單元進(jìn)行調(diào)節(jié),分別是比例放大運(yùn)算、積分運(yùn)算和微分運(yùn)算。在生產(chǎn)系統(tǒng)的實(shí)際應(yīng)用中,積分運(yùn)算很容易造成系統(tǒng)控制的超調(diào)。原PID控制器中積分運(yùn)算的作用是消除靜態(tài)誤差,目的是提高系統(tǒng)精度,但是在生產(chǎn)系統(tǒng)的日常使用中,往往會(huì)因?yàn)橄到y(tǒng)啟停或用戶更新預(yù)設(shè)值的瞬時(shí)偏差過(guò)大而造成誤運(yùn)算,這種運(yùn)算一般會(huì)使系統(tǒng)控制超調(diào),嚴(yán)重則導(dǎo)致系統(tǒng)震蕩。
PID算法積分分離公式如下:
該式中各項(xiàng)系數(shù)含義與上節(jié)相同。其中:T為采樣時(shí)間;β為積分的開(kāi)關(guān)系數(shù),其取值遵循如下規(guī)則。
3 算法應(yīng)用
在針對(duì)智慧豬欄系統(tǒng)的改進(jìn)過(guò)程中,應(yīng)結(jié)合PID積分分離思想:當(dāng)豬舍環(huán)境實(shí)時(shí)采集值與用戶預(yù)設(shè)值產(chǎn)生的偏差較大時(shí),取消積分運(yùn)算環(huán)節(jié),因積分運(yùn)算會(huì)導(dǎo)致系統(tǒng)超調(diào),使豬舍參數(shù)調(diào)節(jié)紊亂;當(dāng)豬舍環(huán)境實(shí)時(shí)采集值與用戶預(yù)設(shè)值產(chǎn)生的偏差較小時(shí),引入積分預(yù)算環(huán)節(jié),作用是消除誤差,提高精度。如圖2所示:(1)根據(jù)豬舍環(huán)境實(shí)際監(jiān)測(cè)情況,設(shè)定安全閾值ε>0;(2)當(dāng)采集值與預(yù)設(shè)值計(jì)算的偏差小于安全閾值,即∣e(k)∣≤ε時(shí),引入積分運(yùn)算,采用完整的P(比例)、I(積分)、D(微分)運(yùn)算,消除靜態(tài)誤差,確保計(jì)算精度;(3)當(dāng)采集值與預(yù)設(shè)值計(jì)算的偏差大于安全閾值,即∣e(k)∣>ε時(shí),除去積分運(yùn)算,僅采用P(比例)、D(微分)運(yùn)算,避免因積分運(yùn)算使系統(tǒng)超調(diào)。
智慧豬欄系統(tǒng)的下位機(jī)由智能終端和養(yǎng)殖設(shè)備執(zhí)行機(jī)構(gòu)組成[6],系統(tǒng)會(huì)根據(jù)豬舍管理員的各項(xiàng)預(yù)設(shè)值與實(shí)時(shí)采集值結(jié)合進(jìn)行PID運(yùn)算后,再發(fā)送PID反饋輸出值調(diào)用養(yǎng)殖設(shè)備實(shí)現(xiàn)自動(dòng)化養(yǎng)殖。下位機(jī)中的智能終端采用ST公司基于CortexM3內(nèi)核生產(chǎn)的ZET6控制芯片[7],通過(guò)調(diào)用智能終端的內(nèi)部定時(shí)器,設(shè)定控制算法程序采樣周期T,每間隔一個(gè)采樣周期運(yùn)行一次算法運(yùn)算,輸出每個(gè)周期的反饋控制量e(T),由算法離散公式可知,其參數(shù)Kp、Ti和TD分別為比例系數(shù)、積分時(shí)間常量和微分時(shí)間常量,三者與誤差ei的積分運(yùn)算通過(guò)對(duì)誤差的累加實(shí)現(xiàn),差分計(jì)算則需要記錄連續(xù)3組周期的反饋控制量獲得。通過(guò)數(shù)組儲(chǔ)存最近3個(gè)周期的數(shù)據(jù),通過(guò)迭代的方式能夠良好地處理控制器的輸入輸出,從而完成PID算法運(yùn)算。其過(guò)程如圖3 所示。
為了讓用戶可通過(guò)手機(jī)和電腦2種途徑訪問(wèn)管理系統(tǒng),搭建了Web后臺(tái)網(wǎng)站作為智慧豬欄的上位機(jī)來(lái)實(shí)現(xiàn)良好的用戶交互。智慧豬欄養(yǎng)殖系統(tǒng)的上位機(jī)程序是基于Python語(yǔ)言開(kāi)發(fā)的Web網(wǎng)站管理系統(tǒng)(圖4),養(yǎng)殖場(chǎng)管理員可以不受地理?xiàng)l件的約束,隨時(shí)隨地進(jìn)行遠(yuǎn)程養(yǎng)殖作業(yè)。管理員還可以通過(guò)該系統(tǒng)完成養(yǎng)殖場(chǎng)關(guān)鍵參數(shù)的實(shí)時(shí)監(jiān)測(cè)、養(yǎng)殖場(chǎng)的遠(yuǎn)程視頻監(jiān)控、養(yǎng)殖設(shè)備的遠(yuǎn)程操控和自動(dòng)化養(yǎng)殖等功能。
4 仿真與分析
使用MATLAB中的Simulink模組進(jìn)行PID的仿真模擬。
數(shù)據(jù)由湖南農(nóng)業(yè)大學(xué)信科院實(shí)驗(yàn)室采集,MySQL數(shù)據(jù)庫(kù)表單中已存儲(chǔ)20 000條以上數(shù)據(jù),將溫度值的變化作為PID輸入值輸入算法進(jìn)行計(jì)算,表1是現(xiàn)存數(shù)據(jù)的簡(jiǎn)單展示。
通過(guò)將溫度值作為輸入變量代表豬舍的主要環(huán)境參數(shù),再將算法的輸出變量為各類養(yǎng)殖設(shè)備的執(zhí)行機(jī)構(gòu)進(jìn)行養(yǎng)殖作業(yè),輸出變量再對(duì)環(huán)境進(jìn)行反饋控制是環(huán)境各項(xiàng)參數(shù)穩(wěn)定在用戶設(shè)定范圍內(nèi),完成生豬養(yǎng)殖的初步無(wú)人化管理。為了驗(yàn)證理論,使用MATLAB軟件進(jìn)行系統(tǒng)的模擬運(yùn)行仿真,導(dǎo)入MySQL數(shù)據(jù)庫(kù)中的若干數(shù)據(jù),根據(jù)PID算法規(guī)則編寫控制程序[8-9]。
設(shè)被控對(duì)象的傳遞函數(shù)為:
根據(jù)公式(9),采樣時(shí)間設(shè)置為0.01 s,仿真指令信號(hào)為rin(k)=1,控制系數(shù)Kp=8.5、Ti=0.29、TD=4,輸入設(shè)置為MATLAB階躍信號(hào),運(yùn)行仿真程序輸出曲線如圖5A中虛線所示,其曲線符合普通PID算法控制器的控制規(guī)律,但調(diào)節(jié)時(shí)間明顯過(guò)長(zhǎng),超調(diào)量為1.336,震蕩次數(shù)為3次。若針對(duì)智慧豬欄的豬舍進(jìn)行積分分離PID運(yùn)算模擬,當(dāng)偏差超過(guò)設(shè)定閾值則拋棄積分運(yùn)算,僅用比例和微分運(yùn)算,則輸出曲線如圖5A中實(shí)線所示,其曲線調(diào)整時(shí)間明顯縮短,超調(diào)量為1.138,震蕩次數(shù)為2次。
由2種PID算法的仿真結(jié)果可知,積分分離PID算法更加穩(wěn)定并且能夠有效克服偏差過(guò)大的情況,通過(guò)表2的對(duì)比能夠更加直觀地看出積分分離型PID算法更加穩(wěn)定。
為了驗(yàn)證PID算法實(shí)際使用的可靠性和實(shí)效性,智慧豬欄系統(tǒng)將PID算法程序運(yùn)行在下位機(jī)中,通過(guò)無(wú)線模塊向上位機(jī)回傳狀態(tài)信號(hào)和豬舍環(huán)境數(shù)據(jù),再提交給后臺(tái)系統(tǒng)分析。后臺(tái)系統(tǒng)采用Python語(yǔ)言進(jìn)行開(kāi)發(fā),十分善于做科學(xué)數(shù)值的計(jì)算與分析。
驗(yàn)證試驗(yàn)在湖南農(nóng)業(yè)大學(xué)信科院物聯(lián)網(wǎng)實(shí)驗(yàn)室進(jìn)行,設(shè)計(jì)1個(gè)試驗(yàn)組,1個(gè)對(duì)照組,試驗(yàn)時(shí)間統(tǒng)一設(shè)定為60 min,試驗(yàn)組采用PID算法進(jìn)行溫度調(diào)控,對(duì)照組不做任何操作。測(cè)試前試驗(yàn)區(qū)域室溫34℃,試驗(yàn)組算法中預(yù)設(shè)溫度參數(shù)閾值為[23,28],即當(dāng)采集值不滿足條件式時(shí)自動(dòng)開(kāi)啟散熱裝置。由圖6得知,試驗(yàn)開(kāi)始后,對(duì)照組溫度值隨自然環(huán)境呈現(xiàn)起伏波動(dòng)變化;因起始參數(shù)超出算法的用戶預(yù)設(shè)閾值,智慧豬欄系統(tǒng)隨即調(diào)用PID算法進(jìn)行溫度控制,調(diào)控4 min后,試驗(yàn)組溫度基本維持在(26±1)℃范圍內(nèi),達(dá)到控制精度。
該試驗(yàn)中PID算法的應(yīng)用原理是:當(dāng)傳感器將實(shí)時(shí)采集值發(fā)送至終端與用戶預(yù)設(shè)值進(jìn)行比對(duì),再通過(guò)PID運(yùn)算輸出反饋控制量,根據(jù)反饋量的值調(diào)用通風(fēng)散熱扇來(lái)對(duì)指定區(qū)域進(jìn)行降溫操作,溫度下降到用戶預(yù)設(shè)值則停止,通過(guò)PID算法的調(diào)節(jié)實(shí)現(xiàn)自動(dòng)化控制,其他環(huán)境參數(shù)的PID算法應(yīng)用同理[10-11]。
5 結(jié) 論
PID算法是機(jī)械自動(dòng)化控制的常用方法[12-13],該文分別演化了離散型與積分分離型的PID算法,并使用Matlab軟件進(jìn)模擬仿真,輸出2種算法的偏差曲線。結(jié)果顯示,積分分離型PID算法更加高效、穩(wěn)定,于是研究決定采用積分分離型PID算法改進(jìn)智慧豬欄生豬養(yǎng)殖系統(tǒng)。在實(shí)際運(yùn)用中,通過(guò)在STM32的嵌入式硬件上編寫C語(yǔ)言程序封裝PID算法,當(dāng)系統(tǒng)設(shè)置為自動(dòng)養(yǎng)殖模式時(shí),則調(diào)用STM32的定時(shí)器,設(shè)置采樣周期,每次完成采樣則輸出相應(yīng)的PID反饋控制量。通過(guò)PID算法改進(jìn)后的智慧豬欄系統(tǒng)將PID反饋控制量轉(zhuǎn)化為動(dòng)作執(zhí)行量即可達(dá)到初步自動(dòng)化生豬養(yǎng)殖。研究結(jié)果表明,積分分離型PID算法具有較好的系統(tǒng)動(dòng)態(tài)特性,可降低靜差影響,并提高系統(tǒng)操作精度,為農(nóng)業(yè)物聯(lián)網(wǎng)自動(dòng)養(yǎng)殖技術(shù)的發(fā)展提供了良好的發(fā)展思路。
參考文獻(xiàn):
[1] 亓良元. 基于Zigbee的智能生豬養(yǎng)殖環(huán)境監(jiān)控系統(tǒng)的設(shè)計(jì)[J]. 農(nóng)業(yè)開(kāi)發(fā)與裝備,2017,(10):77-79.
[2] 房佳佳,李海軍. 規(guī)?;i養(yǎng)殖環(huán)境監(jiān)控系統(tǒng)研究現(xiàn)狀與發(fā)展趨勢(shì)[J]. 黑龍江畜牧獸醫(yī),2017,(5):115-119,293.
[3] 安 潔,翟國(guó)印,韓址楠,等. 我國(guó)生豬養(yǎng)殖環(huán)境智能控制標(biāo)準(zhǔn)體系建設(shè)研究[J]. 標(biāo)準(zhǔn)科學(xué),2017,(6):67-69,74.
[4] 劉艷昌,張志霞,蔡 磊,等. 基于FPGA的畜禽養(yǎng)殖環(huán)境智能監(jiān)控系統(tǒng)的設(shè)計(jì)[J]. 黑龍江畜牧獸醫(yī),2017,(6):127-131.
[5] 李先鋒,孫 帥,王 也. 豬舍環(huán)境和生豬行為信息管理系統(tǒng)設(shè)計(jì)[J]. 農(nóng)村經(jīng)濟(jì)與科技,2017,28(10):63-64.
[6] 陸蓓蓓. 豬場(chǎng)智能化管理系統(tǒng)的設(shè)計(jì)思路[J]. 中國(guó)畜牧業(yè),2017,(11):57-58.
[7] 劉金浩,林 都,鮮 浩,等. 基于ARM一體機(jī)的改進(jìn)生豬智能飼喂系統(tǒng)設(shè)計(jì)[J]. 中國(guó)農(nóng)機(jī)化學(xué)報(bào),2016,37(2):97-100,104.
[8] 陳英義,程倩倩,成艷君,等. 基于GA-BP神經(jīng)網(wǎng)絡(luò)的池塘養(yǎng)殖水溫短期預(yù)測(cè)系統(tǒng)[J].農(nóng)業(yè)機(jī)械學(xué)報(bào),2017,48(8):126-128.
[9] 徐云娟. 基于BP神經(jīng)網(wǎng)絡(luò)和遺傳算法的養(yǎng)殖水域預(yù)警模型[J]. 計(jì)算機(jī)科學(xué),2017,44(6):126-128.
[10] 李香宇,王世功,王 萌,等. 基于PID算法和PWM控制的溫控系統(tǒng)設(shè)計(jì)[J]. 儀表技術(shù),2016,(5):31-33.
[11] 王艷紅,吳小峰. 一種基于WSN的水產(chǎn)養(yǎng)殖水環(huán)境監(jiān)測(cè)系統(tǒng)[J].智能計(jì)算機(jī)與應(yīng)用,2017,7(4):90-91.
[12] 董海運(yùn),肖 航. 積分分離與變速積分PID算法的比較研究[J]. 儀器儀表用戶,2009,(2):79-80.
[13] 楚東來(lái). 積分分離PID在火炮控制的應(yīng)用及MATLAB仿真[J]. 信息通信,2015,(8):30-31.