夏國清 譚石堅(jiān) 陳華珍
摘 要:為了滿足當(dāng)今水產(chǎn)精細(xì)化養(yǎng)殖中減少人力、精準(zhǔn)投料及降低污染等市場需求,本文設(shè)計(jì)了一種基于微控制器STM32F103實(shí)現(xiàn)的智能精準(zhǔn)投料控制系統(tǒng)。該系統(tǒng)首先采用基于STM32F103+W5500網(wǎng)絡(luò)通訊器的數(shù)據(jù)網(wǎng)關(guān)實(shí)現(xiàn)投料機(jī)終端與PC上位機(jī)通信;其次,采用基于STM32F103+HX711數(shù)模轉(zhuǎn)換器的投料機(jī)終端實(shí)現(xiàn)精準(zhǔn)投料。為了實(shí)現(xiàn)系統(tǒng)的精準(zhǔn)投料,本系統(tǒng)利用中值濾波和均值濾波獲取實(shí)時投喂重量,并通過二級閉環(huán)控制降低稱料誤差,從而達(dá)到對喂投重量的精準(zhǔn)控制。實(shí)驗(yàn)結(jié)果證明:本系統(tǒng)能夠集散控制多臺投料終端且運(yùn)行穩(wěn)定,能夠?qū)崿F(xiàn)精準(zhǔn)投料。
關(guān)鍵詞:智能投料系統(tǒng);集散控制;PID控制;CAN通信;STM32F103;W5500;HX711
中圖分類號:TP29 文獻(xiàn)標(biāo)識碼:A 文章編號:2096-4706(2019)02-0159-04
Abstract:In order to meet the market demand of reducing manpower,precise feeding and pollution in aquaculture,an intelligent precise feeding control system based on microcontroller STM32F103 was designed. Firstly,the data gateway based on STM32F103 + W5500 network communicator is used to realize the communication between feeder terminal and PC host computer;secondly,the feeder terminal based on STM32F103 + HX711 digital-to-analog converter is used to realize accurate feeding. In order to realize the accurate feeding of the system,the system uses median filter and mean filter to obtain the real-time feeding weight,and reduces the weighing error through two-stage closed-loop control,so as to achieve the accurate feeding weight control. The experimental results show that the system can control multiple feeding terminals in a distributed way and run steadily. It can achieve accurate feeding.
Keywords:intelligent feeding system;distributed control;PID control;CAN communication;STM32F103;W5500;HX711
0 引 言
隨著社會現(xiàn)代化生產(chǎn)的快速發(fā)展,物聯(lián)網(wǎng)技術(shù)迅速普及,養(yǎng)殖業(yè)對養(yǎng)殖的生產(chǎn)效率、科學(xué)管理、智能化等提出了更高的要求。目前大多數(shù)養(yǎng)殖業(yè)使用的是比較簡單的投料裝置系統(tǒng),這些投料裝置對投料的精確度和投料時間控制遠(yuǎn)不成熟,需要操作人員手動稱料并及時關(guān)注投料的情況[1],工作人員不能對這些投料機(jī)進(jìn)行批量管理,管理效率較低,人力成本高,同時存在飼料浪費(fèi)沉底造成水質(zhì)污染[2]等問題。有鑒于此,本設(shè)計(jì)的目的在于克服現(xiàn)有技術(shù)的不足,提供一種智能投料系統(tǒng),減少人工參與投料的程序,并實(shí)現(xiàn)精準(zhǔn)投料。
1 系統(tǒng)總體設(shè)計(jì)
系統(tǒng)整體架構(gòu)如圖1所示,總體硬件結(jié)構(gòu)如圖2所示。為了實(shí)現(xiàn)養(yǎng)殖業(yè)中不同飼料或魚類的分類投喂管理和研究,本系統(tǒng)采用集散分組管理模式。系統(tǒng)由兩層網(wǎng)絡(luò)構(gòu)成,其中上層是以太網(wǎng),下層為CAN總線。
其控制思路如下:通過PC上位機(jī)軟件,設(shè)置好不同組別每天需要投喂的餐數(shù)和每餐時間、投喂量及投喂次數(shù)等,時間一到,自動下發(fā)命令給各組網(wǎng)關(guān)。網(wǎng)關(guān)接收到上位機(jī)的命令之后,轉(zhuǎn)發(fā)給該組下面的所有投料機(jī)終端。投料機(jī)終端接收到命令完成相應(yīng)的動作。如果是投料命令,則控制電機(jī)撥料,把料下到秤料倉中,控制器根據(jù)稱重傳感器實(shí)時讀取重量,當(dāng)重量接近目標(biāo)重量時,再通過PID算法控制減速電機(jī)來控制下料量,以達(dá)到想要的精確度,當(dāng)稱料完成后實(shí)施開倉投放飼料,飼料每餐會按設(shè)定次數(shù)分多次稱量并投放,其目的是使魚能夠充分吃完,盡可能使飼料不會沉底與垃圾混雜,造成浪費(fèi)和污染。上位機(jī)和網(wǎng)關(guān)之間通過以太網(wǎng)TCP/IP協(xié)議通信,網(wǎng)關(guān)跟投料機(jī)終端通過CAN總線通信。投料機(jī)終端稱重完成則上報自己實(shí)際所秤的重量,網(wǎng)關(guān)保存投料機(jī)終端返回的重量,最后把所有的終端狀態(tài)和重量一起上報給上位機(jī)。上位機(jī)則把數(shù)據(jù)顯示在相應(yīng)的功能區(qū)并保存到數(shù)據(jù)庫,供工作人員查看,同時上位機(jī)會將當(dāng)前返回的重量與設(shè)定目標(biāo)重量進(jìn)行對比,計(jì)算出誤差并補(bǔ)償?shù)较乱徊屯段鼓繕?biāo)重量中,從而達(dá)到一天或多天投喂重量的精準(zhǔn)控制。
2 系統(tǒng)控制算法與軟件設(shè)計(jì)
系統(tǒng)軟件由三部分構(gòu)成:第一,PC端上位機(jī)控制軟件;第二,數(shù)據(jù)網(wǎng)關(guān)控制軟件;第三,投料機(jī)控制軟件。其中,PC端上位機(jī)控制軟件主要是根據(jù)用戶功能需求來設(shè)計(jì)業(yè)務(wù)流程及相應(yīng)圖像界面,本文不再做具體介紹;數(shù)據(jù)網(wǎng)關(guān)控制軟件,實(shí)現(xiàn)上位機(jī)與投料機(jī)間命令及數(shù)據(jù)的交互;投料機(jī)控制軟件主要完成自動稱料與投料工作。由于上位機(jī)與數(shù)據(jù)網(wǎng)關(guān)采用TCP/IP通信,數(shù)據(jù)傳輸穩(wěn)定。本文將重點(diǎn)介紹數(shù)據(jù)網(wǎng)關(guān)與投料機(jī)之間的CAN總線自定義通信方案及投料機(jī)成料精度控制方案。
2.1 CAN總線通信方案
每組數(shù)據(jù)網(wǎng)關(guān)要與該組N臺(本設(shè)計(jì)中N=24)投料機(jī)終端進(jìn)行命令及數(shù)據(jù)的交互,CAN數(shù)據(jù)幀的格式設(shè)為標(biāo)準(zhǔn)幀格式,大小為8個字節(jié),即每次可實(shí)現(xiàn)8個字節(jié)的數(shù)據(jù)發(fā)送或接收。其數(shù)據(jù)幀的格式定義如表1所示。每臺投料機(jī)設(shè)置固定的機(jī)器ID以便識別(本設(shè)計(jì)ID號的設(shè)置通過控制板上的8位撥碼開關(guān)設(shè)置0、1來組合成8位編碼);命令是上位機(jī)或網(wǎng)關(guān)對投料機(jī)的命令(本設(shè)計(jì)中的命令包括:開始稱料、獲取已稱料重量、開倉投料、停止稱料、獲取投料機(jī)狀態(tài)、調(diào)試等);投喂編號用于通信中確認(rèn)命令或?yàn)榈趲状瓮段沟拿罨驍?shù)據(jù);重量為稱料重量;校驗(yàn)碼主要用于數(shù)據(jù)幀的校驗(yàn),以確保數(shù)據(jù)傳輸?shù)恼_性[3]。
數(shù)據(jù)網(wǎng)關(guān)與投料機(jī)終端通訊規(guī)則為:
第一,數(shù)據(jù)網(wǎng)關(guān)與該組投料機(jī)終端采用CAN接收中斷實(shí)現(xiàn)數(shù)據(jù)的接收(該中斷優(yōu)先級設(shè)置為較高級別),網(wǎng)關(guān)CAN過濾器設(shè)置能接收不同ID的數(shù)據(jù)幀,投料機(jī)CAN過濾器設(shè)置成只接收與自己ID號相同的數(shù)據(jù)幀;
第二,當(dāng)數(shù)據(jù)網(wǎng)關(guān)向投料機(jī)終端發(fā)送命令時,投料機(jī)終端收到信息后需回發(fā)一個確認(rèn)信息。如果數(shù)據(jù)網(wǎng)關(guān)在規(guī)定的時間內(nèi)未收到投料機(jī)終端的確認(rèn)信息,就進(jìn)行第2次命令發(fā)送。如果還未得到回應(yīng),就向上位機(jī)報送該投料機(jī)狀態(tài)為不在線,以便管理員能及時了解情況并進(jìn)行處理;
第三,投料機(jī)CAN接收中斷處理程序接收命令后,只保存當(dāng)前命令及數(shù)據(jù)參數(shù)(以便不影響下個中斷的響應(yīng))后立即退出,投料機(jī)終端main主程序以無限輪詢的方式查詢當(dāng)前命令狀態(tài),并根據(jù)命令執(zhí)行任務(wù),投料機(jī)處理完命令所需執(zhí)行的任務(wù)后,將主動上報結(jié)果。
網(wǎng)關(guān)在其下發(fā)的命令執(zhí)行限定時間到達(dá)后,如發(fā)現(xiàn)有某個投料機(jī)未上報執(zhí)行結(jié)果,就主動最多兩次向該投料機(jī)發(fā)送查詢結(jié)果命令,如果仍未得到回應(yīng),就向上位機(jī)報送該投料機(jī)狀態(tài)為不在線。
2.2 投料機(jī)稱料精度控制
投料機(jī)料倉由兩部分構(gòu)成,分別為儲料倉和投料倉。減速電機(jī)通過轉(zhuǎn)動帶動撥料盤將料從儲料倉撥落到投料倉中,投料倉懸掛在稱重傳感器之上,控制器通過查詢傳感器檢測數(shù)據(jù)以判斷是否達(dá)到投喂目標(biāo)重量。稱料的軟件控制流程如圖3所示。
臂梁式稱重傳感器因振動產(chǎn)生的噪聲多為隨機(jī)高頻雜波,符合椒鹽噪聲的特性,因此,采用中值濾波[5-7]可有效地濾去。為了避免周期性振動噪聲的出現(xiàn),可以在上述中值濾波的基礎(chǔ)上再加入均值濾波[8]。最終投料的實(shí)際重量是由參考零點(diǎn)和稱重結(jié)束后再次獲取重量AD值,根據(jù)式(1)計(jì)算出來的,這兩個值都是在靜態(tài)情況下(即電機(jī)未轉(zhuǎn)動下料)測量獲得的,受電機(jī)震動干擾少,因此相對精度高。
3 系統(tǒng)實(shí)驗(yàn)結(jié)果
實(shí)驗(yàn)主要從投料機(jī)單次投料誤差和一天多次投料累計(jì)誤差兩個方面觀察系統(tǒng)的精度和穩(wěn)定性,實(shí)際應(yīng)用中要求精度為1g,即 0.5g。圖6分析了投料機(jī)終端稱料加入PID控制和當(dāng)接近投喂目標(biāo)重量時僅通過降低撥料速度來控制稱料精度波形圖,從圖中可明顯看出加入了PID控制后,稱料結(jié)果更加趨近目標(biāo)重量(5g)且波動幅度小。圖7為投料機(jī)終端在一天多次投喂后累計(jì)誤差在加入補(bǔ)償和未加入補(bǔ)償?shù)膶Ρ冉Y(jié)果,從圖中可明顯看出加入了補(bǔ)償后誤差結(jié)果更接近單次誤差,有效地減小了累計(jì)誤差。
4 結(jié) 論
本設(shè)計(jì)以STM32F103作為主控芯片,敘述了系統(tǒng)的總體控制模型與原理,并給出了系統(tǒng)的硬件設(shè)計(jì)方案、算法與軟件設(shè)計(jì)方案。方案中,為了實(shí)現(xiàn)系統(tǒng)的精度控制,對傳感器信號噪聲采取了多種濾波方法,對稱料使用了兩級誤差控制(即投料機(jī)采用PID控制,上位機(jī)軟件采取誤差補(bǔ)償),同時描述了數(shù)據(jù)網(wǎng)關(guān)CAN總線通信方案,實(shí)驗(yàn)證明,該系統(tǒng)運(yùn)行穩(wěn)定可靠。本設(shè)計(jì)可應(yīng)用于精細(xì)化養(yǎng)殖廠或飼料研究部門等。
參考文獻(xiàn):
[1] 朱國棟,王啟睿,徐勝,等.基于STM32的智能魚塘投料機(jī)設(shè)計(jì) [J].時代農(nóng)機(jī),2018,45(3):151.
[2] 周智勇,王海華,王偉萍,等.草魚高產(chǎn)池塘測水投料精準(zhǔn)養(yǎng)殖試驗(yàn) [J].江西水產(chǎn)科技,2015(1):20-21+23.
[3] 王娟,包志華,楊永杰.用于智慧酒店客房控制系統(tǒng)的CAN總線協(xié)議研究 [J].現(xiàn)代電子技術(shù),2018,41(20):104-106.
[4] 張玉葉.基于應(yīng)變?nèi)珮虻蔫F質(zhì)懸臂梁傳感器的設(shè)計(jì)與實(shí)現(xiàn) [J].電子設(shè)計(jì)工程,2018,261(4):125-129.
[5] 托乎提努爾,張海龍,王杰,等.基于GPU的高速中值濾波算法 [J/OL].吉林大學(xué)學(xué)報(工學(xué)版):1-8 [2018-10-15].https://doi.org/10.13229/j.cnki.jdxbgxb20180050.
[6] 朱敏超,李莉莉.基于互補(bǔ)濾波的兩輪自平衡小車系統(tǒng)設(shè)計(jì) [J].機(jī)械工程師,2016(4):86-88.
[7] 梁光勝,杜夢楠,周子豪,等.基于互補(bǔ)濾波的兩輪自平衡車姿態(tài)控制 [J].測控技術(shù),2015,345(5):72-74.
[8] 錢德鵬.基于像素選擇的腦部磁共振圖像非局部均值濾波 [J].國外電子測量技術(shù),2018,37(9):6-9.
[9] 林偉捷,黃唯佳,蔡劍卿.基于四元數(shù)互補(bǔ)濾波和PID控制算法的兩輪自平衡車系統(tǒng)設(shè)計(jì) [J].軟件導(dǎo)刊,2016,15(6):80-82.
作者簡介:夏國清(1983-),男,安徽潛山人,講師,碩士,主要研究方向:智能控制、嵌入式系統(tǒng)、圖像處理與模式識別;譚石堅(jiān)(1982-),男,廣東廣州人,講師,碩士,研究方向:嵌入式系統(tǒng)、計(jì)算機(jī)應(yīng)用;陳華珍(1982-),女,江西樟樹人,講師,碩士,研究方向:網(wǎng)絡(luò)計(jì)算、多傳感器數(shù)據(jù)融合、智能科學(xué)。