江 楠,馬江濤, 鄭遠攀
(鄭州輕工業學院 計算機與通信工程學院,鄭州 450002)
隨著農機自動化技術的不斷發展,農機的社會化服務越來越普遍,但目前對于農機的派出、組織生產、作業管理和質量監控缺少有效的管理技術手段,特別是在農忙時節,由于農機資源的不合理調度會造成農機的缺口比較大,農機作業效率低,農業作業生產需求得不到有效的滿足。
B/S架構即瀏覽器和服務器架構模式,是隨著Internet技術的興起對C/S架構的一種變化或者改進的架構。在這種架構下,用戶工作界面通過瀏覽器來實現。B/S架構是Web興起后的一種網絡架構模式,Web瀏覽器是客戶端最主要的應用軟件。這種模式統一了客戶端,將系統功能實現的核心部分集中到服務器上,簡化了系統的開發、維護和使用。將B/S架構應用到農機的遠程調度系統上,可以提高調度系統的可查詢和可視化水平,實現農機作業軌跡的實時動態顯示,對于提高調度系統的管理效率和水平具有重要的意義。
收割機軌跡數據分析系統主要是根據農機作業的實時動態情況,通過傳感器收集農機動態作業信息,再將數據返回到遠程數據庫系統;利用數據分析服務器和應用服務器對數據進行可視化分析后,將農機的行駛軌跡可視化地呈現給農機管理人員和駕駛操作人員。為了提高軌跡數據分析系統的可查詢功能和可視化功能,采用MySQL數據庫和Web技術對系統進行改進。Web技術對MySQL數據庫進行訪問需要數據交互的基本框架,而采用Browser/Server(簡稱B/S)結構可以實現應用服務器訪問數據服務器的功能,其基本結構框架如圖1所示。
在B/S 結構的架構下,進行收割機數據可視化分析后,用戶可以方便地采用Web瀏覽器進行瀏覽,并獲取網頁的信息。收割機作業時,可以將作業行駛軌跡數據實時返回給遠程數據分析系統;數據分析系統通過可視化處理形成軌跡,并呈現在瀏覽器頁面上;農機管理人員根據作業情況對收割機做出合理的調度和安排,規劃其行駛路徑,提高作業效率。當作業的農機較多時,管理人員還可以根據每一臺收割機的作業情況,對其后期作業做出合理的分配,從而提高收割機的作業效率。
以韭菜收獲機為例,割刀電機是韭菜收割機的關鍵所在,因此選擇合適的割刀電機尤為重要。筆者通過實驗計算韭菜被割斷時的切割力,選擇比較合適的割刀電機。
實驗主要是利用特制的夾具固定20根韭菜,然后用割刀割斷,同時記下韭菜被割斷時候割刀所收到的力。選取6組韭菜進行割斷實驗,然后測量6組隔斷力并計算平均值。割刀受力實驗數據如表1所示。

表1 割刀受力實驗數據Table 1 The experimental data of cutting force N
根據表1,計算出20根韭菜被隔斷時割刀受到的力為4.6N。因此,割刀電機需要輸出的扭矩T為
T=F×r=0.46(N·m)
(1)
韭菜收割機的割刀在作業過程中,某一時間點相對于被切割的韭菜做余擺線運動,那么刀片根部即與韭菜接觸的地方為最低速度,即
(2)
當ωt+γ=(2k+1)π(k=0,1,2,…,n)時,刀片某一點的速度va為
va=vamin=rω-vb
(3)
其中,vamin為刀片某一點最小速度,r為刀片半徑,vb為刀具前進速度。
使用割刀切割韭菜時,速度較小,會破壞韭菜根部,給果農造成損失,則確定割刀的最合適的速度非常重要。根據文獻查詢和實驗得出:割刀速度為12~32m/s時對韭菜根據傷害最小,因此設計取vb=0.7m/s。
結合前文介紹,可以計算出刀片根部的轉速計算公式為
(4)
割刀的半徑為10cm,將其帶入公式可以計算出割刀轉速為1800~8500r/min。本文選擇57BL75S10-280TF9高速直流無刷電機,電機采用節能環保領域的驕子-釹鐵磁硼鋼,保證設備的良好性能。電機電壓24V,功率100W,轉速最高8000r/min,額定扭矩0.12N·m。具體參數如表2所示。

表2 韭菜收割機割刀電機參數Tab le 2 The electric parameters of cutting knife of leek harvester
為了實現收割機軌跡數據的可視化,需要對收割機的移動數據進行實時采集,捕捉動態運動目標。與靜止目標圖像的捕捉不同,動態目標的捕捉需要使用圖像逼近的方法,捕捉過程需要對實時圖像的各幀進行掃描。假設運動圖像的第k和k-1幀圖像的灰度值分別為fk(x,y)、fk-1(x,y),Dk(x,y)表示差分運算結果,其表達式為

(5)
采用圖像幀間差分算法可以對運動的收割機目標圖像進行捕捉,但在處理時會發生空洞現象。因此,在對目標進行識別時,可以采用外接矩形的方法,在收割機目標周圍建立一個外接矩形,將處理圖像和第1幀圖像相減,得到完整的收割機目標區域。為了提高目標捕捉的精度,在進行圖像處理之前可以對圖像進行去噪聲處理,處理過程可以采用迭代計算的方法,流程如圖2所示。

如果同時滿足以上3個條件,則稱Bk、Ck、Ek、Fk、Dk為圖像M的二次多分裂。
幀間差分分裂迭代模糊聚類過程如圖3所示。圖3中:在去除噪聲時,由于分裂迭代計算會產生較多數量的圖像,因此引入模糊分類方法對圖像進一步處理,從而獲取更加準確的收割機運行軌跡。在進行模糊分類時,其隸屬度函數為

圖3 幀間差分分裂迭代模糊聚類過程Fig.3 The splitting iterative fuzzy clustering process of interframe difference
(6)
其中,mi為聚類中心;a、b為計算參數,其數值一般是正數;μ(x)表示隸屬度函數,λ(x)表示非隸屬度函數;π(x)表示直覺指數π(x)。三者的關系式為
μ(x)+λ(x)+π(x)=1
(7)
聚類K-means算法是一種智能化程度較高的算法,利用關聯規則進行數據挖掘和分析。在進行分類時,首先統計含有一個元素項集出現的頻率決定一維項目集;然后統計項目集的支持度。表3為一個簡單的數據記錄表。

表3 數據記錄表Table 3 Data Record Table
在關聯算法中,需要創建每個數據記錄候選集的支持度,再通過數據之間的關聯性對數據進行分類。其步驟如下:


(8)
其中,Nj為第j個聚類域Sj中所包含的樣本個數。求出均值向量后,將其作為聚類中心,計算均值,其函數規則為
(9)
最后,對每個聚類的數據進行均值核算。

通過模糊聚類后,圖像運動后的位置將被確定,利用可視化技術便可以繪制出農機的軌跡。為了實現農機軌跡的可視化顯示,搭建了基于B/S架構的可視化平臺。其開發主要采用ASP.NET開發環境,編程語言采用C語言,可視化顯示的數據庫采用SQL數據庫。這樣,在收割機作業過程中遠程端可以實時顯示作業動態軌跡。
采用平移傾斜裝置,在垂直平面中上下旋轉工業相機獲取同一行但不同距離的農作物位置。作物行和聯合收割機間距離示意如圖4所示。

圖4 作物行和聯合收割機間距離示意圖Fig.4 Diagram of the distance between crop rows and combines
圖4中,GPS用于收割機的自身實時定位;IMU為慣性測量裝置;P1處的農作物通過工業相機以48°的傾斜角拍攝得到;P2是在傾斜角度為69°時檢測到的另一作物的位置。P1、P2間的直線可以認定為分離切割與未切割區域的作物行,其在笛卡爾坐標系下的表達式為
ax+by+c=0
(10)
其中,a、b、c為直線系數值。
將橫向偏移ε和偏轉角δ作為兩個參數來確定轉向角φ,表達式為
φ=A1ε+A2δ
(11)

ASP.NET是一種動態的Web技術,利用該技術用戶可以更加快速地開發Web應用程序。該技術支持各種類型的瀏覽器,結合Web站點和Web服務技術,遠程端只需要在瀏覽器界面操作便可以查看收割機的作業軌跡。編程主要采用了C#編程語言,較為簡單,可以與.NET框架完美結合。數據庫采用了SQL數據庫,具有強大的數據庫創建、開發、設計和管理功能,且具有較好的可擴展性。搭建好可視化平臺后,對采集得到的收割機運動目標數據進行處理,如圖5所示。

圖5 軌跡可視化顯示過程Fig.5 The visual display process of trajectory
基于B/S架構的可視化顯示平臺,采用C#語言編程和SQL數據庫技術,可以對之前采集和去噪的收割機運動數據進行處理,然后在遠程端對收割機的運行軌跡進行可視化顯示。除此之外,還可以對軌跡數據進行保存,以便后期對歷史數據進行查詢。
農業收割機軌跡的數字化顯示可以為調度系統提供可靠的數據支持,根據農機作業的實時軌跡顯示農機管理人員可以對農機進行合理的調度,通過最短路徑規劃、多收割機系統作業等方式 提高收割機的作業效率。
收割機可視化管理用戶注冊成功后,將收割機信息存入數據庫,其實現采用java編碼實現,核心程序如下:
//創建收割機可視化管理員用戶相關實體
farm machinery fmzh = new farm machineryZh();
farm machineryJb fmjb = new farm machineryJb();
farm machineryLx fmlx = new farm machineryLx();
//將學員信息存入對應實體
fmzh.setname(a);
fmzh.setPassword(b);
fmjb.setfmSf(xysf);
fmjb.setFdWay(Qualification);
fmjb.setPosition(Position_b);
fmlx.setPhone(request.getParameter("Tel"));
//通過調用manage方法將數據存入數據庫
farm machineryManage.savefmLx(fmlx)
farm machineryManage.savefmLx(fmjb)
farm machineryManage.savefmLx(fmzh)
注冊完成后,便可以進行登錄操作。采用前端JSP的Lgin.jsp來實現登錄功能,在LoginAction類中判斷用戶是否可以正常登錄系統。功能的實現采用Java語言編寫,流程如圖6所示。

圖6 收割機可視化管理員登錄流程Fig.6 Log-in process of agricultural mechanic
驗證收割機可視化管理員登錄用戶的賬號是否合法核心代碼如下:
//獲取收割機可視化系統管理員用戶名和密碼
String username = request.getParameter("name");
String password = request.getParameter("password ");
//調用manage判斷用戶名和密碼是否合法
Boolean flag1=checkUserManage.ckuserZh (name,password);
//如果登錄成功則進入相關系統,如果不成功則
if(flag1&&flag2){
return new ModelAndView(this.getViewPage());
}
else
{
return new ModelAndView(this.getLoginPage());
}
通過Java語言,可以開發出收割機可視化管理的各個模塊的登錄及錄入信息和管理頁面等功能;再結合Web服務器平臺,可以架構整個收割機軌跡數據可視化分析系統。
圖7為雷沃重工收割機聯合作業是的作業情景。收割機聯合作業時,為了提高收割機的協同化作業效率,需要對收割機進行合理的調度,并對收割作業的路徑進行規劃。
完整的收割機調度系統主要由調度系統、調度臺、基于B/S框架的可視化系統、GPS、手持終端和通信網絡組成,可以實現定位、軌跡數據顯示及農機調度等多種業務,如圖8所示。為了實現收割機數據的可視化顯示,需要對數據管理系統進行設計。考慮使用的用戶較多,數據傳輸量和占用的數據量較大,為了保證24h不間斷的服務,設計了硬件配置架構。

圖8 收割機調度系統框架圖Fig.8 The framework diagram of harvester dispatching system
軌跡數據分析系統主要由可視化數據庫服務器和應用服務器組成,如圖9所示。可視化數據庫服務器主要采用MySQL數據庫來承擔所有子模塊的數據應用,內存采用16GB×8,硬盤采用1T×8,應用服務器采用8GB×4,硬盤采用512GB×2,操作系統主要采用64位Windows操作系統。通過軌跡可視化分析,得到了如圖10所示的軌跡顯示圖像。

圖9 收割機軌跡數據可視化分析系統Fig.9 The visual analysis system of harvester trajectory datas

圖10 收割機運行軌跡實時顯示圖像Fig.10 The real-time display image of harvester trajectory
通過軌跡數據可視化顯示后,得到了收割機的實時運行軌跡。在進行大面積作業時,遠程調度系統可以對收割機的行走路徑做出合理的安排,以提高收割機作業的效率。在進行協同作業時,農機管理人員可以根據作業區域的面積和主要特征,對收割機做出合理的安排;另外,還可以提高農機作業的安全性,特別是一些急轉彎或者存在障礙物較多的作業區塊,遠程調度系統可以對農機發出警報,避免作業事故的發生。
為了提高農機調度系統的可視化水平,將B/S架構和軌跡動態顯示技術引入到了調度系統的設計中。通過對動態軌跡數據的可視化顯示,農機管理人員可以對農機的行駛路徑做出合理的規劃,在多農機作業時可以有效提高農機的作業調度分配效率。為了驗證方法的可行性,搭建了收割機行駛軌跡的實時數據分析系統平臺,并對系統進行了測試。結果表明:采用該方案可以成功地顯示農機的作業動態軌跡,對于提高農機的自動化作業質量和作業水平具有重要的意義。