










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