方 杰,張 杰,馬 娟,田 翔,于秀針,馮 斌
(1.新疆農(nóng)業(yè)大學(xué)機(jī)電工程學(xué)院,烏魯木齊 830000;2.新疆農(nóng)業(yè)科學(xué)院農(nóng)業(yè)機(jī)械化研究所,烏魯木齊 830000)
【研究意義】畜牧養(yǎng)殖是新疆傳統(tǒng)優(yōu)勢[1-2]。飼料的科學(xué)配制是實現(xiàn)精細(xì)化養(yǎng)殖的關(guān)鍵。在給料過程中物料下落中出現(xiàn)滯后性、非線性,在配料稱重系統(tǒng)中容易產(chǎn)生較大的稱重誤差并直接影響著精度和配比,使得傳統(tǒng)的配料系統(tǒng)還不能滿足當(dāng)前精細(xì)化養(yǎng)殖的要求?!厩叭搜芯窟M(jìn)展】車璐等[3]對物料稱重誤差分析并探明影響誤差的主要因素;何武林等[4]在研究配料系統(tǒng)中使用PLC作為主控設(shè)備實現(xiàn)飼料生產(chǎn)過程自動控制系統(tǒng);劉文秀等[5]通過模糊自適應(yīng)控制算法替代PID算法實現(xiàn)工業(yè)上的誤差控制。劉超等[6]在總結(jié)自適應(yīng)平滑預(yù)測等傳統(tǒng)模型提出了利用神經(jīng)網(wǎng)絡(luò)的學(xué)習(xí)能力提高預(yù)測精度?!颈狙芯壳腥朦c】目前在中小型牧場中飼料配制仍較多采用人力上料稱重和無控制策略的控制平臺等方式,神經(jīng)網(wǎng)絡(luò)具有逼近一切函數(shù)的優(yōu)點,近年來在智能控制中獲得了廣泛應(yīng)用,BP神經(jīng)網(wǎng)絡(luò)模型具有前向傳播和后向傳播的特點,擁有更好的自學(xué)習(xí)能力,但在反向傳播算法中,容易出現(xiàn)在局部最小化問題,針對中小型牧場飼料稱重配料的作業(yè)需求以及飼料動態(tài)稱重存在的稱重誤差問題,需研究基于神經(jīng)網(wǎng)絡(luò)PID算法的優(yōu)化飼料配制系統(tǒng)?!緮M解決的關(guān)鍵問題】針對肉用牛配方的飼料稱重系統(tǒng)設(shè)計方案;搭建附加動量項BP神經(jīng)網(wǎng)絡(luò)PID網(wǎng)絡(luò)模型作為控制策略并通過OPC技術(shù)實現(xiàn)復(fù)雜算法在PLC控制器中的應(yīng)用,獲得并調(diào)整PID控制器參數(shù),實現(xiàn)飼料稱重系統(tǒng)結(jié)果最優(yōu);利用網(wǎng)關(guān)完成PLC數(shù)據(jù)的云端保存,實現(xiàn)牧場的包含飼料配比和重量在內(nèi)的基礎(chǔ)數(shù)據(jù)的存儲,為優(yōu)質(zhì)、高效的飼料配制和牧場管理提供保障。
1.1.1 多集成肉牛飼料制機(jī)組
精料采取5個傾斜式螺旋給料的方式將原料從入料槽運送到稱重料倉中;料倉稱重后精料由底部的水平螺旋輸送機(jī)運出至一端,再通過傾斜螺旋輸送機(jī)依次傳送物料到粉碎和攪拌機(jī);完畢后隨垂直輸送機(jī)傳入存儲料罐,料罐存儲同一比例精料。粗料為粉碎后物料,備好的粗料由皮帶輸送機(jī)運送到混合料倉(TMR混合機(jī))里稱重,兩個皮帶輸送機(jī)依次按量給定粗料,料罐的固定比例精料由水平輸送機(jī)傳入混合倉,混合后充分?jǐn)嚢韬筮M(jìn)入喂食階段:1.精料稱重倉 2.螺旋給料機(jī) 3.水平排料機(jī) 4.精料粉碎機(jī) 5.混合料倉 6.存儲料罐 7.混合精料給料機(jī) 8.攪拌倉 9.粗料傳送帶。圖1
圖1 工藝流程示意
配料系統(tǒng)以PLC為控制核心。配料工作過程中PLC采用西門子S-200 smart型,其指令集豐富、支持多通訊協(xié)議等特點在中小規(guī)模的農(nóng)牧場建設(shè)中得到廣泛的應(yīng)用。運行在工控機(jī)上的組態(tài)軟件WinCC作為交互界面,控制柜開關(guān)作為輔助控制,PLC稱重數(shù)據(jù)通過ModBus協(xié)議反饋于組態(tài)軟件作為數(shù)據(jù)顯示和本地存儲,同時利用網(wǎng)關(guān)實現(xiàn)數(shù)據(jù)傳送云端。組態(tài)軟件提供配方的新建和增刪,電機(jī)控制,數(shù)據(jù)實時顯示和報警等功能。
1.1.2 系統(tǒng)控制的硬件
稱重料倉與支撐架間安置4個稱重傳感器用于稱量。稱重傳感器采用量程為1 000 kg麗景傳感器,該型傳感器為電阻應(yīng)變式傳感器,輸出信號為電壓型模擬量,傳感器應(yīng)變區(qū)域表面上粘貼四片應(yīng)變電阻,組成惠斯汀電橋[6]。當(dāng)受外力時,彈性體發(fā)生形變使電橋失去平衡,輸出與外力成正比的電壓信號,實現(xiàn)傳感器對重量的感知。
傳感器的輸出信號是以毫伏級電壓呈現(xiàn)的模擬量[7]。一個稱重平臺使用4個稱重傳感器并聯(lián)輸出,傳感器與PLC之間使用JB-154S稱重變送器和數(shù)字儀表連接。稱重變送器對傳感器輸出的毫伏級微弱信號進(jìn)行放大、轉(zhuǎn)換等方式;同時變送器“四進(jìn)一出”的特點,輸出模擬量連接數(shù)字儀表,變換成可讀的重量信號,利用變送器和儀表可將連接的4個稱重傳感器信號轉(zhuǎn)換成穩(wěn)定的,可供儀表顯示和PLC接收的信號[8]。同時數(shù)字儀表支持可編程和獨立供電,一端接傳感器,另一端通過RS485接口,ModBus-RTU通信協(xié)議將稱重信號傳入PLC,利用可編程功能在編程中實現(xiàn)去皮重等。
電機(jī)控制采用AC70型變頻器,分布在精料稱重段的給料和排料以及混合日糧給料段控制電機(jī)轉(zhuǎn)速和轉(zhuǎn)動方向。稱重段一臺變頻器控制5臺給料器,另一臺變頻器控制水平的螺旋輸送器?;旌先占Z段變頻器連接4臺電機(jī),電機(jī)分別控制2個粗料傳送皮帶和2個螺旋輸送器傳送粗料和精料。變頻器獨立供電并接收PLC中模擬量信號。變頻器開啟設(shè)置波特率和站地址等。變頻器以“一帶多”的方式,控制多臺電機(jī),為確保安全,變頻器采取中間繼電器的方式控制電機(jī),每次運送物料僅啟動一臺電機(jī),關(guān)閉其他電機(jī)。
網(wǎng)關(guān)模塊。在設(shè)計中使用網(wǎng)關(guān)實現(xiàn)這一功能,當(dāng)電機(jī)停止、稱臺稱重穩(wěn)定后,對應(yīng)的實際稱重數(shù)據(jù)數(shù)據(jù)傳輸?shù)轿锫?lián)網(wǎng)平臺。云平臺新建設(shè)備并復(fù)制https地址和秘鑰,在網(wǎng)關(guān)設(shè)備初始化中設(shè)置數(shù)據(jù)發(fā)送地址。使用手機(jī)APP鏈接該https地址及訪問秘鑰接收數(shù)值。
此外控制系統(tǒng)還包含其他電路,如粉碎、攪拌電機(jī)的啟停等。
1.1.3 系統(tǒng)控制的軟件
控制系統(tǒng)分為精料制作部分和日糧混合部分,精料加工部分包含原料稱重、加工和存儲。
在精料制作部分,上位機(jī)為組態(tài)軟件并通過以太網(wǎng)接口,modbus RTU與PLC通信。用戶自建配方,由于稱重容器容積限制,組態(tài)軟件將對精飼料總值和粗飼料總值分別做判斷是否超出稱重范圍。配料過程中組態(tài)軟件作為控制端。在自動配料模式下,精料制作端最先由5個螺旋輸送器順序啟動輸送不同精原料;稱重完畢后精料加工部分提前開機(jī),由于設(shè)備安全考慮啟動設(shè)置自鎖,僅當(dāng)加工段的后置機(jī)器運行后前置機(jī)器才能開啟,計時器20s后精料稱重料倉排料;料倉復(fù)零后10s水平螺旋輸送停機(jī),隨后每隔10秒粉碎機(jī)給料器、粉碎機(jī)、粉碎出料器和攪拌給料器依次停機(jī),攪拌倉內(nèi)則繼續(xù)攪拌3 min后停機(jī)并聲光報警提示加工完畢,此時暫存料罐前的輸送器開始運行;打開排料門,物料進(jìn)入暫存料罐,同時系統(tǒng)可進(jìn)入下一輪精料稱重與加工。
在日糧混合部分,輸入已加工精料總值和各粗料值。系統(tǒng)運行皮帶機(jī)順序給料至設(shè)定值時停機(jī),配料結(jié)束進(jìn)入攪拌環(huán)節(jié)。
在各稱重部分,設(shè)置配方參數(shù)后,精料原料按照順序依次稱重。物料1開始稱重時,PLC先訪問可編輯的稱重模塊,通過指令可實現(xiàn)稱重平臺的歸零及初始化,上位機(jī)將配料各相關(guān)參數(shù)傳輸給現(xiàn)場的PLC控制系統(tǒng)作為各部分稱重的額定重量值。稱重平臺的傳感器并聯(lián)傳輸?shù)碾妷褐祩鬟f至變送器經(jīng)過數(shù)模轉(zhuǎn)換后得到對應(yīng)的稱重數(shù)值為稱重當(dāng)前值,稱重模塊提供當(dāng)前值的現(xiàn)場顯示,同時也可將稱重當(dāng)前值反饋至PLC中,并做條件語句判斷,當(dāng)實時重量值達(dá)到額定值時,PLC控制電機(jī)停止,這樣完成了第一個物料的稱重存儲過程。每臺電機(jī)完成當(dāng)前稱重后,組態(tài)軟件的數(shù)值顯示當(dāng)前料倉累計值?;旌先占Z端稱重與精料稱重端相似,精料進(jìn)入攪拌機(jī)內(nèi)與粗料混合后啟動攪拌功能,攪拌完畢即進(jìn)入喂食環(huán)節(jié)。圖2
稱重完成前的空中余料和物料下落沖擊力所引發(fā)的傳感器值不準(zhǔn)確機(jī)器未停止給料是誤差的主要原因。配料控制算法程序在每次配料結(jié)束后讀取存儲寄存器地址進(jìn)行相關(guān)參數(shù)的更新??刂扑惴ㄒ蕾嘜PC工具箱完成MATLAB文件與組態(tài)軟件之間通信,實現(xiàn)復(fù)雜算法在PLC上智能控制。
圖2 PLC給料稱重程序流程
1.2.1 受控模型與PID算法
PID算法被廣泛應(yīng)用在PLC控制過程中,PID的內(nèi)在含義是比例積分微分控制器,是對三種不同的控制策略的組合。該算法被廣泛應(yīng)用于工業(yè)控制系統(tǒng)中并起回路反饋的作用[9]。比例積分微分控制器的算法通過測量過程操作參數(shù)即連續(xù)的下落顆粒體物料,使得自動化控制系統(tǒng)能夠以安全且實用的方式操作復(fù)雜的生產(chǎn)過程。
PID控制器根據(jù)給定值與實際輸出構(gòu)成偏差做控制,在PID算法中設(shè)置采樣時間并用離散信號表示[10]。圖3
經(jīng)典PID控制器數(shù)學(xué)關(guān)系如下:
(1)
拉式變換后得到:
(2)
圖3 PID算法示意
由上得經(jīng)典的增量式PID控制算法為:
u(k)=u(k-1)
+Kp(error(k)-error(k-1))
+Kierror(k)
+Kd(error(k)-2error(k-1)
+error(k-2)).
(3)
PID控制器所需的輸出可以通過調(diào)整控制器來獲得。有多種不同的技術(shù)可用于從控制器獲得所需的輸出,例如試錯法、Zeigler-Nichols和過程反應(yīng)曲線等[11]。
1.2.2 動量項BP神經(jīng)網(wǎng)絡(luò)PID算法
人工神經(jīng)網(wǎng)絡(luò)的設(shè)計用節(jié)點代表神經(jīng)元,并代表一個特定的函數(shù),兩個節(jié)點之間的連接代表信號的權(quán)重[12-14]。
該神經(jīng)網(wǎng)絡(luò)模型由三部分組成:輸入層、隱藏層和輸出層。輸入層為信息的輸入,用于輸入?yún)?shù)信息,并將參數(shù)轉(zhuǎn)換為向量。隱藏層也可以被稱為中間層,是除了輸入與輸出層以外的所有層,增加該層使得網(wǎng)絡(luò)獲得更高的精度的同時也變的復(fù)雜。
設(shè)計中優(yōu)先只有一個隱藏層的網(wǎng)絡(luò)。通過調(diào)節(jié)隱藏層中的神經(jīng)元個數(shù)可以降低錯誤,最終選取了由5個神經(jīng)元組成的單隱藏層結(jié)構(gòu)。輸出層輸出PID三個參數(shù)。神經(jīng)網(wǎng)絡(luò)的數(shù)學(xué)計算主要由前向傳播、后向反饋和梯度下降三部分構(gòu)成。向傳播算法是根據(jù)網(wǎng)絡(luò)的輸入值和輸出值得到誤差,據(jù)此實現(xiàn)對網(wǎng)絡(luò)的再調(diào)解。后向傳播算法的思想就在于學(xué)習(xí)完訓(xùn)練樣本后誤差要盡量的小[15]。
梯度下降涉及分析成本函數(shù)曲線的斜率?;谛甭?調(diào)整權(quán)重,以逐步最小化成本函數(shù)。梯度下降過程是參數(shù)沿著梯度相反的方向進(jìn)行迭代搜索直到遇見最小值的過程[16]。在前向傳播中由線性變換和非線性變換組成,線性變換可以視為一個線性回歸[17-18]。非線性變換將線性回歸的結(jié)果轉(zhuǎn)換為一個實數(shù)值,也稱激活函數(shù)。激活函數(shù)是對輸入做非線性映射,激活函數(shù)有多種,使用在不同的場景,其中比較典型的是輸出(0,1)和(-1,1)的函數(shù)。在訓(xùn)練中為了得到一組最優(yōu)的權(quán)值,通過損失函數(shù)不斷優(yōu)化并得到最優(yōu)的權(quán)值。損失函數(shù)的選取與激活函數(shù)一樣,需要考慮適合的場景。反向傳播是一種高級算法,能夠同時更新神經(jīng)網(wǎng)絡(luò)中的所有權(quán)重[19]。
設(shè)計了輸入層3個神經(jīng)元,隱藏層5個神經(jīng)元,輸出層3個神經(jīng)元的網(wǎng)絡(luò)結(jié)構(gòu)。輸入層用公式表示。圖4
圖4 BP神經(jīng)網(wǎng)絡(luò)算法示意
Oj(1)=x(j).
(4)
具體的輸入層各個神經(jīng)元如下:
x1=Win(k).
(5)
x2=Wout(k).
(6)
x3=error(k).
(7)
隱藏層采用雙曲正切函數(shù)作為激活函數(shù),其值域在(-1,1)。
(8)
輸入層神經(jīng)元和權(quán)重相乘后疊加經(jīng)過激活函數(shù)后輸出。
(9)
Oi(2)(k)=[neti(2)(k)].
(10)
一般輸出層采用值為非負(fù)數(shù)的激活函數(shù),設(shè)計中值域為(0,1)之間:
(11)
隱藏層神經(jīng)元的輸出乘以權(quán)重疊加至輸出層,并經(jīng)過激活函數(shù)得到訓(xùn)練目標(biāo)。
(12)
Ol(3)(k)=g[netl(3)(k)].
(13)
其中輸出層各神經(jīng)元表示為PID控制器的三個參數(shù)值。
Ol(3)(k)=Kp.
(14)
Ol(3)(k)=Ki.
(15)
Ol(3)(k)=Kd.
(16)
在算法中采用的平方差函數(shù)作為成本函數(shù)。
(17)
附加慣性項bp神經(jīng)網(wǎng)絡(luò)的權(quán)重更新公式:
(18)
(19)
上述公式中的一未知項近似的用sgn()來表示,由此帶來的變化通過學(xué)習(xí)率的調(diào)節(jié)來補(bǔ)償。
(20)
同時由輸入層、隱藏層、輸出層傳輸公式可得如下:
(21)
(22)
(23)
(24)
由上可知:
Δwli(3)(k)=αδl(3)Oi(2)(k)+ηΔwli(3)(k-1).
(25)
(26)
同時由tanh()函數(shù)特性可得:
g'(·)=g(x)(1-g(x)).
(27)
神經(jīng)網(wǎng)絡(luò)根據(jù)成本函數(shù)和梯度下降法反向傳播逐層更新權(quán)值。由前式同理可得輸入層與隱藏層間的權(quán)值更新公式
Δwli(2)(k)=α(k)δl(2)Oi(1)(k)
+η(k)Δwli(2)(k-1).
(28)
(29)
(30)
研究表明,在MATLAB中搭建simulink仿真,其中神經(jīng)網(wǎng)絡(luò)模型和PID算法通過使用S函數(shù)進(jìn)行自定義封裝。clock函數(shù)提供時鐘信號,當(dāng)t=0時進(jìn)行初始化,學(xué)習(xí)率為0.001,動量項系數(shù)為0.001,權(quán)值矩陣使用隨機(jī)函數(shù)初始化,訓(xùn)練數(shù)據(jù)預(yù)處理方式為均值化。仿真中建立了受控對象的系統(tǒng)函數(shù),并將輸入信號確定為階躍信號,另搭建了PID模型作為對比。圖5~7
圖5 BPNN_PID算法示意
圖6 simulink仿真
圖7 響應(yīng)曲線
研究表明,作為對比搭建的常規(guī)PID并出現(xiàn)約28%的超調(diào)現(xiàn)象并有較長的超調(diào)量調(diào)節(jié)時間,與常規(guī)PID相比新算法沒有超調(diào)現(xiàn)象,改進(jìn)BP神經(jīng)網(wǎng)絡(luò)PID有更好的適應(yīng)性,上升時間更短,響應(yīng)速度對比為3∶1,調(diào)節(jié)速度更快。改進(jìn)BP神經(jīng)網(wǎng)絡(luò)PID控制器可以能夠?qū)θ齻€參數(shù)進(jìn)行及時的調(diào)整,進(jìn)而對任意非線性輸入信號實現(xiàn)良好的跟蹤控制,能大大改善控制過程的響應(yīng)速度、調(diào)節(jié)時間、超調(diào)量等,表現(xiàn)出更強(qiáng)的抗擾能力及適應(yīng)性,提高控制過程的穩(wěn)定性、精確性與魯棒性。表1,表2,圖8
圖8 系統(tǒng)裝置
表1 對比試驗
表2 配料試驗
該系統(tǒng)與何武林等[4]系統(tǒng)比較,能夠通過算法對系統(tǒng)進(jìn)行學(xué)習(xí)和調(diào)節(jié)配料誤差,更加符合智能化的需求;與劉超等[6]系統(tǒng)在方法上比較,該系統(tǒng)通過神經(jīng)網(wǎng)絡(luò)動態(tài)調(diào)整PID算法參數(shù),使得模型可以根據(jù)實際配料誤差的變化控制機(jī)組狀態(tài)實現(xiàn)精準(zhǔn)配料,避免了僅采用BP神經(jīng)網(wǎng)絡(luò)時原始樣本數(shù)據(jù)對控制系統(tǒng)的直接影響,適應(yīng)性更強(qiáng)。
稱重系統(tǒng)精料原料和加工料采用螺旋給料器、粗料采用帶式輸送機(jī)作為物料的給料機(jī)構(gòu)。依據(jù)《農(nóng)業(yè)機(jī)械設(shè)計手冊》[20],螺旋機(jī)構(gòu)設(shè)計的主要參數(shù)為傾角40°、軸徑40 mm、葉片直徑200 m、螺距160 mm,間隙5 mm、填充率0.35、電機(jī)功率4 kW。皮帶輸送機(jī)參數(shù)為帶寬600 mm、傾角10°、電機(jī)功率3 kW。各變頻器默認(rèn)頻率給定為20 Hz。
在驗證配料系統(tǒng)和優(yōu)化算法中,采用玉米作為精料原料,粉碎的苜蓿秸稈作為粗料進(jìn)行試驗,不同機(jī)構(gòu)以400 kg為目標(biāo)值,通過單一條件下系統(tǒng)運行的對比試驗并以配料精度為指標(biāo)評估算法的優(yōu)化效果。
4.1BPNN-PID神經(jīng)網(wǎng)絡(luò)算法對系統(tǒng)實現(xiàn)了優(yōu)化,在運輸精料的螺旋給料試驗中,相同條件下,神經(jīng)網(wǎng)絡(luò)算法使得誤差相比于傳統(tǒng)控制系統(tǒng)平均值從402.62 kg降低到401.17 kg;在運輸粗料的皮帶給料試驗中,同條件下誤差從平均值從401.31 kg降低到400.27 kg。精度明顯提高并且標(biāo)準(zhǔn)偏差小,誤差趨向平穩(wěn)。
4.2經(jīng)計算平均配料精度為99.6%。在試驗中單個傳輸機(jī)構(gòu)多次開關(guān)機(jī),重復(fù)了空中余料下落環(huán)節(jié)使得配方試驗誤差比單機(jī)構(gòu)試驗誤差略大,但總體誤差仍能得到有效控制。
4.3附加動量項BP神經(jīng)網(wǎng)絡(luò)PID算法作為控制算法。在控制中具有更高效的表現(xiàn)。
4.4在驗證試驗中算法優(yōu)化后的稱重誤差得到降低,在1 200 kg日糧配制中,配料精度為99.6%。