王鳳花 劉志迎 賴慶輝 熊海輝 陳可凡 魯超宇
(昆明理工大學現代農業工程學院, 昆明 650500)
農機裝備是我國農業生產實現高效化、實現資源的有效利用、推動農業生產可持續性的重要工具[1-3],隨著農業科學技術的發展,農業裝備更新換代周期縮短,在實際生產中產品的設計以適應性設計和變型設計為主[4-5],據統計,制造業中約有75%的產品設計采用修改已有產品來解決設計問題[6]。因此,有效地利用企業已經存在的成熟設計模型,將分散、異構的設計知識和實例模型進行組織和融合到動態的設計上,提高產品的設計效率和知識重用水平,已成為產品開發過程的一個迫切需求。
近年來參數化設計技術得到了廣泛的應用[7-10],目前大多是根據實例的設計理論、行業規則和設計經驗等相關知識建立用戶輸入參數和模型實例驅動關系[11-14]。李長林等[15]基于參數化設計思想,研究了插秧機底盤設計系統;劉宏新等[16]研究了基于骨架設計的參數化設計方法,將模型、參數、知識信息等資源與平臺結合,完成了脫粒裝置交互設計系統;張延安等[17]將知識庫、推理機和參數化模型相結合,提出了一種基于知識的拖拉機變速箱箱體快速設計方法;YOON 等[18]使用計算流體力學與試驗設計方法研究了一種可用于農作物保護的無人機參數化設計原型系統。以上的研究是將模型的參數設計規則和系統構建建立直接聯系,其設計過程依托于專業人員對系統的搭建,對設計技術具有專業依賴性。運用模型參數標記的方法提取設計參數,基于知識元描述的方法對模型參數知識進行表達,可提高知識管理和重用的程度,降低參數化設計的門檻,提高設計效率。畢經元等[19]利用知識鏈接的方法搭建了以汽車零部件為知識背景的知識管理系統;李海生等[20]提出基于設計過程知識元的模具設計方法,實現了沖壓模具設計的智能化;LI等[21]利用知識元理論構建了Green development system模型的理論框架。
本文構建一套基于知識元描述的模型參數化設計交互系統,即使用基于知識元對模型設計知識進行獲取和表示,利用SolidWorks的二次開發技術,以模型的參數標記、提取為基礎,建立模型參數關聯與修改的可視化操作,使用VB.NET語言和MySQL數據庫管理進行系統集成,通過人機交互式的參數填充過程完成實例的參數化構建,以保證系統的獨立性,弱化專業背景知識的限制,有效提高產品參數化設計的準確性與專業性,以谷物收獲機械的切割裝置為研究對象,采用知識元描述的方法對切割裝置的設計知識進行定量、定性的知識表達,構建切割裝置的設計重用實例庫,為農業裝備的設計重用技術提供一種方案的借鑒。
為降低農機模型參數化設計過程的專業素質要求,實現高效率和高質量的設計水平,本文通過構建具有通用性的參數化設計的交互式創建系統,將模型參數信息的提取、設計知識的填充、參數化模型的調用、生成等數據化資源封裝設計,以人機交互的方式完成模型實例的參數化設計過程,自動化實現具備專業知識的模型參數化過程。系統的總體方案如圖1所示。
知識獲取和整理是完成實例參數化的前提,主要任務是將模型設計知識和設計參數進行分析、關聯,完成模型關鍵零部件設計參數的知識整理[22]。農機模型的設計知識主要來源于文獻專利、專家知識、設計手冊和國家標準等,通過檢索和咨詢的方式對添加的模型實例相關知識進行整理、歸納,根據知識之間的差異將知識分為選型規則、設計規則和計算規則。
參數化模型是實現設計重用的基礎,通過 Visual Studio平臺對 SolidWorks進行二次開發,讀取模型實例的特征信息和標記參數信息,并結合整理的模型知識以人機交互的方式分別完成用戶輸入參數、驅動參數、設計規則及求解參數的填充,輸入完成后,系統將模型參數信息和輸入信息整理融合形成知識元信息,進而轉換為可以被系統驅動修改的模型實例,儲存在參數化實例庫。
參數化實例庫的功能是將模型實例設計知識轉換成相應的參數概念集,根據用戶對模型的選擇,從數據庫匹配符合要求的參數化實例,構建模型的參數設計文檔,建立模型設計重用的人機交互界面,從而滿足設計人員在產品設計過程中對實例的修改和完善,實現設計參數與產品數據資源的關聯,解決復雜產品參數散亂、關聯性差和設計知識重用性低的問題。
根據用戶設計需求,選擇重用模型,并打開該模型的UI設計界面,根據系統推送的相應參數的知識元信息,輸入設計參數的值,系統從參數化實例庫中調用該實例,通過輸入值與設計規則建立聯系,求解參數,調用封裝化的模型驅動函數,完成驅動變型,實現實例的重構和裝配,最終輸出到設置導出的儲存位置,并將本次設計信息保存到實例信息庫。
參數化實例庫由實例信息庫、實例模型庫、知識元數據庫組成,其中實例信息庫用于儲存實例的特征、功能、結構等信息,即通過系統對模型的數據集讀取后轉換為知識信息存儲于MySQL數據庫中。實例模型庫存儲了通過系統進行操作處理后轉換為可以被系統驅動的三維模型,用于實例模型的調用和修改。知識元數據庫儲存了模型的參數設計知識,是由系統通過人機交互的方式進行建立,用于完成模型驅動參數的關聯與求解。
通過系統對實例知識的抽取和整理,將實例的領域知識以可視化的表達形式展現在系統中,這種組織結構一方面可以讓用戶準確定位知識,找到所需求的模型設計要求,另一方面便于后續模型信息的管理維護。
本文使用五元組來定義實例的特征信息,即
CK={PID,BI,CKA,KC,UK}
(1)
其中:PID為實例唯一標識;BI表示實例的基本信息,如實例的創建時間、創建者、格式信息、案例所屬知識庫等;CKA表示實例特征信息,是系統通過實例數據集讀取到的結構信息,如實例材料、密度、體積等;KC表示實例的視圖信息;UK表示實例設計信息,包括實例結構、設計信息、功能描述信息、用戶設計該實例時需要輸入的參數信息、該產品的求解參數信息以及該實例衍生出來的案例。
系統將實例的知識信息進行整理融合,如圖2所示,以人機交互的形式顯示,便于用戶查找使用。
實例模型庫的構建流程包括配置開發環境、設置實例庫路徑、模型預處理、參數信息讀取、參數分析與填充、生成實例驅動程序等,如圖3所示。
2.2.1模型預處理
為了完成系統對用戶設計參數進行讀取,保證模型實例在驅動過程中的穩健性,需對入庫的模型實例作預處理操作,即參數標記處理和裝配基準的調整。
(1)參數標記
參數標記方法是將默認參數名稱更改為系統能夠讀取到的名稱格式,如圖4所示, V是系統識別參數的標識符,用戶可以使用系統默認定義“Var_”的格式,也可以進行自定義設置,A則是用戶對參數標記時定義的名稱,為便于參數特性的識別,可以使用包含參數含義的命名方法,T是由系統進行定義,其含義是參數所屬特征名稱。
操作方式如圖5所示,選擇模型特征樹下的參數特征,雙擊參數數值,在跳出的窗體中將原參數名稱更改為用戶定義的形式。
(2)裝配基準調整
為了解決由裝配關系約束不當引起實例參數化驅動過程出現干涉現象的問題,需要將實例所使用的配合基準進行調整,調整方法是在模型實例裝配關系多變的情況下,考慮裝配關系和使用的參照基準是否隨模型的變更一直有效,如無法一直有效,采用以基準軸、基準線等參考體替代實體的點、線、面等作為基準。
2.2.2標記參數提取
參數化設計實際是一個參數分類、關聯和求解的過程,為便于用戶對參數的操作,利用編程語言和SolidWorks二次開發環境對實例數據集的數據進行讀取,提取實例的特征信息及標記參數信息,圖6為讀取實例標記參數信息的流程。
系統通過驅動SolidWorks打開預處理模型,判定模型文件的分類,根據模型格式為.sldasm和.sldprt 選擇不同的遍歷函數。
其部分代碼如下
∥打開模型
SwMode=swApp.OpenDoc6
∥讀取模型的特征樹下的第一個特征信息
thisDisplayDim=feature.GetFirstDisplayDimension
∥遍歷邊界數據
For i = 0 To UBound(vChildComp)
While Not swFeat Is Nothing
While Not thisDisplayDim Is Nothing
∥判斷是否是標記參數信息
dimen=thisDisplayDim.GetDimension()
If Contains(ValStr) = True Then
∥讀取當前標記參數信息
thisDisplayDim=feature.GetNextDisplayDimension(thisDisplayDim)
∥退出當前特征循環
End While
∥遍歷下一個特征信息
swFeat=swFeat.GetNextFeature
End While
Next i
注:SwMode:模型對象,UBound:模型中組成特征的數據數量
系統通過遍歷實例的特征及組成特征的草圖,包括線段、角度、曲線方程等信息獲取標記參數集,將參數信息儲存到數據中,讀取模型信息所使用的部分函數如表1所示。

表1 參數信息讀取應用函數類別Tab.1 Parameter information read by application function category
將提取到的參數在系統中清晰、完整地表達,是實現參數知識元構建的重要步驟,系統將讀取的實例數據集進行統一方式的表達,形成結構化的參數矩陣,使用R表示當前實例的參數信息集合,記為

(2)
式中Mn——模型中的子裝配體名稱
Kn——子裝配體模型基本信息,包括質量、材料等
On——模型中參數標識名稱
Fn——參數所屬特征
Tn——參數所屬類別
Dn——當前參數數值
m——參數屬性數目,m∈N
n——模型中子裝配體數目,n∈N
利用參數的信息矩陣,建立人機交互式的操作界面,便于用戶對參數定性和定量的信息表達,解決設計過程中參數復雜、冗余的問題。
2.2.3參數類別劃分
為了便于實例添加過程中對參數知識進行組織、分類,需要對用戶標記參數進行特征標識,本文將設計過程中的所涉及參數劃分為用戶輸入參數、驅動參數、規則參數和求解參數。
(1)用戶輸入參數:決定模型功能、結構的參數,在添加中提供并設置其變量名稱,也是用戶快速設計時需要填充的參數,在系統中,用戶輸入參數定義為全局變量,例如:作業幅寬、作物類型等。
(2)驅動參數:能夠反映模型變化程度的參數集合,與用戶輸入參數直接建立聯系,根據系統求解的具體數值驅動模型生成,由不同的關聯優先級別決定驅動順序。
(3)規則參數:定義規則選擇的變量參數,在對模型設計規則表達上,可能出現因輸入參數的取值不同,導致某一關聯參數的取值不同,為了解決這一問題,設置了規則參數,用于儲存規則表達過程中的變量參數數據。
(4)求解參數:通過對用戶輸入參數和模型的設計知識建立聯系,根據用戶輸入的值求解模型的功能、結構、行為信息。
2.2.4參數分析
對于復雜農機模型實例,參數之間關聯復雜,如果僅使用單層的參數關系描述會造成實例參數表過長,不利于參數之間的規則表達,且對于系統來說,在無法判定參數驅動順序的情況下,參數關聯計算時會出現錯誤的現象,無法保證模型在參數驅動過程中的穩健性。
針對這一問題,本文采用遞階驅動參數的方法,在實例參數分析階段,對參數進行層次劃分[23],如圖7所示,把一個復雜的實例處理為多個簡單的單層模型,按照參數層次劃分順序建立參數關聯關系,系統通過讀取層次等級判定參數驅動的優先順序,從1到n依次取整數數值,參數等級為1表明該參數的優先級別最高,根據n取值的遞增依次降低參數驅動的優先級。
2.2.5驅動模型參數變更
通過訪問存儲在數據庫參數知識元信息,如圖8所示,遍歷循環參數等級、參數序號,根據參數的定義函數求解驅動數值,定義驅動數組,完成模型的驅動更新,模型驅動參數修改的部分代碼為:
myDimension=swModel.Parameter(ParName(i))
myDimension.SystemValue=ParValue(i)/1 000
其中ParName(i)為第i個驅動參數命名,ParValue(i)為第i個驅動參數的數值。
知識元數據庫由設計規則和參數知識元信息構成,將實例參數設計過程轉換為知識元的表達,采用參數類型分類的方法,從頂層參數構建數據模式,逐步展開,形成參數驅動的層次分類,將設計參數實體添加到相應層次中。
2.3.1設計規則表達
農機模型在設計領域存在著大量的設計規則,這些規則大多以邏輯判斷或者是計算公式的方式存在。本文采用產生式規則和設計知識的公式表達方法進行實例在參數化設計過程中的規則設置,產生式表示法的模型一般是:“If條件then結論”,由參數名、參數規則及參數結論3部分組成,表示了在A的情況下B出現的結果[24]。參數的規則設計主要包括對尺寸的計算、裝配方案的選擇、模型組件的替換規則。
利用SolidWorks的二次開發函數,將設計規則的表達進行封裝化設計,裝配關系的選擇使用SolidWorks中的特征壓縮EditSuppress2和解壓EditUnsuppress2函數,根據設計規則選擇不同類型的裝配方案。模型替換方案使用PacKandGo函數,將具有相同裝配信息的零部件進行打包替換操作。部分設計規則表示如表2所示。

表2 實例設計部分選擇規則Tab.2 Selection rules of example design section
2.3.2參數知識元表達
參數作為模型參數化設計中知識傳遞的載體,對其進行準確且易于理解的表示是設計過程的關鍵,利用參數設計中蘊涵的關鍵概念、屬性、結構、功能等信息作為參數驅動的依據,建立參數之間的關聯信息。為便于對參數信息的使用、管理,本文將知識元的概念引入到參數信息的描述上。
參數知識元信息可以表達為一個六元組
KU={ID,PBI,PT,PF,PI,PK}
(3)
式中:ID表示參數所屬實例的唯一標識;PBI表示參數的基本屬性集合,包括參數標記名稱、變量定義名稱、參數所屬類別等,信息屬性來源于系統提取的參數信息矩陣;PT表示參數的類型,根據模型知識整理過程中對參數類型的劃分,系統完成模型參數集合的整理與分類;PF表示經驗、規則和公理的集合,定義參數屬性的約束范圍和設計規則;PI表示參數驅動優先級別;PK表示參數設計知識的解釋,通過對該參數的設計知識描述,引導用戶完成參數的填充。
本文定義的知識元之間的邏輯關系主要有如下的關系集:①上下游關系,兩個及以上知識元之間具有順序關系,它們之間的讀取順序由參數驅動的優先級別進行判定。②共同作用關系,兩個及以上知識元需要共同作用才能做出決策,其主要用于參數的數值計算,系統根據參數的計算函數判定共同作用的知識元數據來源。③互斥關系,根據設計規則的不同,兩個及以上知識元應用場景不同,只能選擇其中之一。圖9給出了建立參數知識元關系的部分模型。
切割裝置是稻麥收獲機械主要組成部件,根據切割的方式分為往復式和圓盤式兩種,目前使用較多的是往復式切割,它是由偏心軸式曲柄連桿機構驅動,利用動刀片與護刃器上的定刀片進行往復的剪切運動,割斷作物。切割裝置的設計過程重要工作是對國標件的選型和裝配關系的確定,其工作性能受到許多因素影響,如機器前進速度、切割幅寬、作物類型、切割器類型等,用戶在設計過程中,根據不同的需求完成正確的選擇和結構尺寸的確定,是切割裝置設計的關鍵[25-26]。以往復式切割為設計實例完成系統的操作,實例的設計結構如圖10所示。
不同標準的切割器作用于不同的工作環境下,Ⅰ型切割器主要適用于割草機、Ⅱ~Ⅳ型切割器適用于谷物收獲機、Ⅴ型適用于小型收獲機械、Ⅵ型用于半喂入式聯合收獲機,Ⅶ型適用于谷物收獲機械,通過切割器的各項參數和選擇分析進行關聯對應,如圖11所示,完成設計參數的分析過程。
3.2.1割刀進距
割刀進距是切割器的重要工作參數,它是動刀片左側運動極限和右側運動極限之間的機器前進的距離,為了不造成漏割的情況,進距H1計算式為
(4)
式中σ——動刀片刃口傾角
r——動刀片一半寬度,mm
h——動刀片刃口的高度,mm
在求解割刀進距時,對于小麥收割機械H1應為70~120 mm,水稻收割機械取值為50~55 mm。
3.2.2動刀片刃口的剪切負荷
動刀片的刃口剪切負荷是切割器設計和刀片磨損研究的重要參數,在其他條件相同的情況下,刃口的負荷越大,動刀片的耐磨性就越差。采用單位長為1 cm的動刀片刃口所剪切作物的生長面積f的計算公式為
(5)
式中t0——切割器的護指間距,m
α——動刀片刃口傾角,(°)
為滿足切割器設計要求,一般f為6~10 cm2。
3.2.3切割器所需功率
切割器功率包括切割功率Ng和空轉功率Nk兩部分,計算公式為
N=Ng+Nk=vmBL0×10-3+Nk
(6)
式中vm——機器前進速度,m/s
B——機器割幅,cm
L0——切割每平方米莖稈所需的功,小麥為100~200 N·m/m2,牧草為200~300 N·m/m2
3.2.4切割器類型
往復式切割器根據切割行程S、動刀片間距t和定刀片間距(護刃齒間距)t0的不同組合,將切割器的型號分為普通型、雙刀距行程型和低割型,其不同型號的切割裝置S、t和t0如表3所示。

表3 往復式切割裝置的類型
3.2.5動刀片平均速度
動刀片平均速度是切割器設計的關鍵參數,切割干禾株平均速度取0.8 m/s已經足夠,如果禾株比較濕應取較大的值,其選值的關系式為
vp=βvm
(7)
式中β——刀機速比,小麥收獲機、割曬機、水稻收獲機、聯合收獲機分別為1.2、1.1、1.6、0.865
以Visual Studio 2019作為開發工具,在Windows操作系統環境下進行農機模型參數設計交互式創建系統的構建,以MySQL為關聯數據庫對實例模型設計知識進行儲存,以谷物收獲機械的切割裝置參數化設計過程作為實例,完成參數化實例的添加和使用,驗證本文提出方法可行性與有效性。
模型預處理后,進入模型信息讀取界面。系統對模型的基本信息進行提取,包括模型的質量、體積、格式、尺寸、視圖信息等,如圖12所示。
模型基本特征信息讀取完畢后,進入到模型參數設計步驟,如圖13所示,依次對不同類型的設計參數進行知識添加。
(1)設置用戶輸入參數
進入到“設置用戶輸入參數”界面(圖14),根據整理的設計規則完成參數定義、參數輸入值范圍及模型結構圖示的添加。
(2)設置模型驅動參數
進入“設置模型驅動參數”界面,如圖15所示,通過數據庫的連接將讀取參數信息顯示在DataGridView的控件中,在選中的參數信息中完成該參數的定義變量、關聯參數、驅動等級、知識描述等。
參數知識信息填充完成后,系統對知識進行分類、融合,完成參數知識元的構建,如圖16所示,保存在實例參數信息庫。
(3)設置模型設計規則
以切割器的類型選擇為例,根據不同切割類型確定切割器的切割行程、動刀片間距和定刀片間距,填入如圖17所示的系統交互界面中。
(4)設置模型求解參數
將切割器的求解參數、求解規則、知識解釋信息輸入到控件框中,如圖18所示,即完成切割器參數化模型產品的實例添加。
通過對切割裝置的相關設計知識的分析、聚類,建立參數化設計模型,圖19為模型實例選擇界面,用戶可根據界面的模型信息、特征信息、知識內容、結構內容及模型預覽選擇所需的模型。
選中切割器模型后,進入到實例設計重用界面,如圖20所示,在設置實例參數區域,設計人員可根據推送的知識元信息完成切割器的參數輸入,點擊求解控件,系統根據參數之間的知識元關系完成推理計算,其結果顯示在參數求解區域。
用戶可在功能區域完成模型的驅動、導出及預覽功能。系統通過對用戶輸入的參數值以及系統中對參數關聯信息、裝配信息的計算選擇,調用SolidWorks驅動相應零部件進行參數變更,實現該模型的重構,最終輸出到用戶設置導出的儲存位置,并將本次設計信息保存到實例信息庫。
(1)構建了一套模型參數化設計交互式創建系統,該系統能通過標記參數的方法獲取模型參數化設計過程中所涉及到的變量參數,并封裝參數的信息獲取、參數驅動變更等操作指令,同時,通過人機交互式操作平臺來實現模型的參數化建模,保證了系統的獨立性,降低了模型參數化開發的專業性,提高了農機產品的研發效率。
(2)根據參數的屬性類別將模型設計參數劃分為用戶輸入參數、驅動參數、規則參數和求解參數;運用參數驅動遞階模型的分析方法,對各類參數的設計規則進行整理,增強了知識表達的靈活性與適應性。
(3)采用參數知識元描述的方法將農機三維模型的參數屬性特征、關聯信息、范圍限定、知識描述等信息進行定性、定量表達,使得實例添加過程中對知識整理、分類、表達更加簡單、規范。以切割器實例庫的構建為例,從實例的添加和生成兩個方面對系統整個操作過程進行演示,完成了模型實例的設計重用。