魯超宇,王鳳花,賴(lài)慶輝,劉志迎
(昆明理工大學(xué)農(nóng)業(yè)與食品學(xué)院,云南 昆明 650500)
旋耕機(jī)有較好的碎土平地能力,是目前最常見(jiàn)的耕整機(jī)械。旋耕刀輥是其主要耕作部件,其性能直接影響耕作質(zhì)量[1–2]??焖僭O(shè)計(jì)旋耕刀輥可滿足用戶(hù)的多樣化需求,促進(jìn)產(chǎn)品質(zhì)量的提升。
基于知識(shí)工程(KBE)的智能設(shè)計(jì)在航空航天、汽車(chē)、機(jī)床等領(lǐng)域已有了較深入的研究[3–9]。部分針對(duì)農(nóng)業(yè)機(jī)械領(lǐng)域的研究:李長(zhǎng)林等[10]基于知識(shí)工程理論開(kāi)發(fā)了高速插秧機(jī)底盤(pán)快速設(shè)計(jì)專(zhuān)家系統(tǒng),將知識(shí)庫(kù)、推理機(jī)和參數(shù)化模型融合一體,實(shí)現(xiàn)了底盤(pán)的快速設(shè)計(jì);丁昌文等[11]開(kāi)發(fā)了拖拉機(jī)的智能設(shè)計(jì)系統(tǒng),實(shí)現(xiàn)了設(shè)計(jì)知識(shí)的重用;GUJARATHI等[12]開(kāi)發(fā)了一種CAD和CAE集成的參數(shù)化模型,可以快速設(shè)計(jì)產(chǎn)品并進(jìn)行分析。
筆者將對(duì)旋耕機(jī)刀輥設(shè)計(jì)知識(shí)分類(lèi)整理并存儲(chǔ),建立旋耕機(jī)刀輥參數(shù)庫(kù)、規(guī)則庫(kù)、實(shí)例庫(kù); 通過(guò)SQL語(yǔ)言實(shí)現(xiàn)對(duì)數(shù)據(jù)庫(kù)的修改、查詢(xún)等操作,建立基于規(guī)則和實(shí)例相結(jié)合的混合推理法,用計(jì)算實(shí)例差異度的方式快速尋找實(shí)例庫(kù)中相似實(shí)例,定位用戶(hù)需求;設(shè)計(jì)用戶(hù)友好的人機(jī)交互界面,利用尺寸驅(qū)動(dòng)模型變更法,基于 VisualStudio 2017中的VB.NET和API方法對(duì)SolidWorks二次開(kāi)發(fā),實(shí)現(xiàn)輸入?yún)?shù)驅(qū)動(dòng)模型變更,開(kāi)發(fā)了旋耕機(jī)刀輥快速設(shè)計(jì)系統(tǒng),3~5 min即可設(shè)計(jì)出用戶(hù)需求的刀輥CAD模型,旋耕機(jī)刀輥的設(shè)計(jì)效率較高。
根據(jù)刀輥的結(jié)構(gòu),將刀輥劃分成刀軸、刀座、旋耕刀3個(gè)部分。目前市場(chǎng)上使用較多的旋耕機(jī)特征參數(shù)列于表1。將刀輥的設(shè)計(jì)知識(shí)大致分為查表類(lèi)、經(jīng)驗(yàn)類(lèi)、設(shè)計(jì)規(guī)則類(lèi)和實(shí)例類(lèi)4類(lèi)知識(shí)。
表1 旋耕機(jī)刀輥的特征參數(shù)Table 1 Parameter survey of existing common models
1) 查表類(lèi)知識(shí)。主要為旋耕刀的各個(gè)參數(shù),包括刀輥回轉(zhuǎn)半徑、側(cè)切刃和正切刃起始與終點(diǎn)半徑、工作幅寬等,由農(nóng)業(yè)機(jī)械設(shè)計(jì)手冊(cè)查得。
2) 經(jīng)驗(yàn)類(lèi)知識(shí)。通過(guò)參考現(xiàn)有機(jī)型、專(zhuān)家的研究設(shè)計(jì)與實(shí)踐經(jīng)驗(yàn)來(lái)確定,主要包括相鄰刀座錯(cuò)位角度、刀座厚度、旋耕刀排列方式、旋耕刀數(shù)量的設(shè)計(jì)等。為了保證耕作效果,隨著旋耕機(jī)耕幅的加大,旋耕刀數(shù)量增多,不同型號(hào)旋耕刀有不同的工作幅寬。由于每組刀座上2把旋耕刀的正切刃方向相反,故每組旋耕刀的有效工作幅寬為單個(gè)旋耕刀工作幅寬的2倍。規(guī)則排布的情況下,所有旋耕刀組工作幅寬之和大于或等于旋耕機(jī)耕幅、且無(wú)漏耕。
3) 設(shè)計(jì)規(guī)則類(lèi)知識(shí)。根據(jù)耕深選擇不同型號(hào)的旋耕刀;根據(jù)旋耕刀型號(hào)確定刀座間距;根據(jù)耕幅確定單側(cè)刀輥上旋耕刀總數(shù)量和刀軸直徑等設(shè)計(jì)公式。刀座間距直接決定耕作效果。不同型號(hào)的旋耕刀工作幅寬不同,所適用的刀座間距也不同。根據(jù)表1中常見(jiàn)旋耕機(jī)上不同型號(hào)旋耕刀的工作幅寬與刀座間距,繪制散點(diǎn)圖,并擬合曲線,得到刀座間距與旋耕刀工作幅寬的規(guī)則公式,如圖1所示。
圖1 旋耕刀工作幅寬和刀座間距擬合曲線Fig.1 Fitting curve of the rotary blade seat spacing dependent on the working width
4) 實(shí)例類(lèi)知識(shí)。即已有的零部件模型,在系統(tǒng)應(yīng)用中,當(dāng)現(xiàn)有實(shí)例符合用戶(hù)需求時(shí),可直接供用戶(hù)選用;或在現(xiàn)有實(shí)例的基礎(chǔ)上加以改動(dòng),達(dá)成用戶(hù)需要的模型。
將獲取旋耕機(jī)刀輥的知識(shí)存儲(chǔ)在Access數(shù)據(jù)庫(kù)中,建立Visual Studio與數(shù)據(jù)庫(kù)的聯(lián)系,通過(guò)SQL語(yǔ)句對(duì)數(shù)據(jù)庫(kù)數(shù)據(jù)的增減、調(diào)用、修改、查詢(xún)等,實(shí)現(xiàn)開(kāi)發(fā)平臺(tái)對(duì)數(shù)據(jù)庫(kù)參數(shù)的調(diào)用。如圖2所示,查表類(lèi)知識(shí)以旋耕刀各項(xiàng)參數(shù)為例;設(shè)計(jì)規(guī)則類(lèi)知識(shí)、經(jīng)驗(yàn)類(lèi)知識(shí)以耕深耕幅為初始參數(shù)的公式為例;實(shí)例類(lèi)知識(shí)分為零件和裝配體兩類(lèi)。
圖2 旋耕機(jī)刀輥設(shè)計(jì)知識(shí)庫(kù)Fig.2 Datebase of rotary blade roller
推理方法是刀輥快速設(shè)計(jì)系統(tǒng)的核心,分為基于實(shí)例的推理(CBR)和基于規(guī)則的推理(RBR)。在刀輥快速設(shè)計(jì)系統(tǒng)中使用這2種方法相結(jié)合的混合推理法。推理流程(圖3):當(dāng)用戶(hù)輸入需要的參數(shù)后,系統(tǒng)根據(jù)設(shè)計(jì)規(guī)則設(shè)計(jì)出完整的刀輥參數(shù),并根據(jù)特定的方法檢索實(shí)例庫(kù),當(dāng)有符合條件的實(shí)例時(shí),直接輸出三維模型和工程圖;當(dāng)實(shí)例庫(kù)中沒(méi)有符合條件的實(shí)例時(shí),系統(tǒng)則會(huì)尋找與用戶(hù)需求最相似的實(shí)例,并通過(guò)二次開(kāi)發(fā)的方法修改,以達(dá)成用戶(hù)需求,將設(shè)計(jì)出的新實(shí)例保存到實(shí)例庫(kù)中,同時(shí)還達(dá)到擴(kuò)充實(shí)例庫(kù)的目的。
圖3 刀輥快速設(shè)計(jì)系統(tǒng)的推理流程Fig.3 Flow chart of system inference
刀輥各零件的具體參數(shù)均是由上層部件的特征參數(shù)推理而來(lái),系統(tǒng)推理機(jī)會(huì)根據(jù)用戶(hù)輸入的參數(shù)對(duì)數(shù)據(jù)庫(kù)進(jìn)行檢索并找到相對(duì)應(yīng)的規(guī)則或參數(shù),基于計(jì)算機(jī)語(yǔ)言完成整機(jī)參數(shù)的計(jì)算,實(shí)現(xiàn)系統(tǒng)對(duì)設(shè)計(jì)參數(shù)的自動(dòng)推理。
運(yùn)用最近相鄰法[13]進(jìn)行實(shí)用性更強(qiáng)、且易于程序化的差異度計(jì)算法推理。
如2個(gè)實(shí)例的總差異度
式中:wi為第i特征的權(quán)重因子;di為2個(gè)實(shí)例第i特征的差異度。
由知識(shí)庫(kù)構(gòu)建的設(shè)計(jì)規(guī)則可知,刀輥耕幅、耕深直接影響整個(gè)部件的結(jié)構(gòu)和相鄰刀座間距、單側(cè)刀軸刀數(shù)2個(gè)特征,故將權(quán)重值安排如表2。
表2 參數(shù)與權(quán)重Table 2 Parameter and proportion
計(jì)算得到實(shí)例1與用戶(hù)需求的差異度為0.228,實(shí)例2與用戶(hù)需求的差異度為0.097。相比之下,選擇實(shí)例2為相似實(shí)例作為進(jìn)行二次開(kāi)發(fā)模塊的基準(zhǔn)模型。
在利用VisualStudio對(duì)SolidWorks二次開(kāi)發(fā)之前,首先需要引入 SolidWorks類(lèi)型庫(kù) SolidWorks Type Library,建立二者之間的聯(lián)系;其次通過(guò)在VisualStudio中添加一個(gè)類(lèi),命名為AccessHelper,來(lái)實(shí)現(xiàn)參數(shù)庫(kù)、規(guī)則庫(kù)、實(shí)例庫(kù)與系統(tǒng)的數(shù)據(jù)交互,主要用到的有 CREATE、DELETE、ALTER、INSERT、UPDATE、SELECT、GRANT、REVOKE等SQL命令;最后新建一個(gè)exe文件,編寫(xiě)VB.NET程序,使得推理算法程序化,實(shí)現(xiàn)按照Textbox控件中的尺寸信息,自動(dòng)改變模型零件的相應(yīng)尺寸特征,并自動(dòng)裝配。主要代碼和API方法如下。
Dim S wapp As Sld Works.SldWorks'聲明SldWorks對(duì)象
Swapp = Cr eateObject("sldworks.application")'創(chuàng)建并返回SldWorks的對(duì)象引用
Swapp.OpenDoc("裝配體文件路徑".SLDASM,2) '獲得指定路徑的文件
Dim Part As Sld Works.ModelDoc2 '聲明文件對(duì)象
Part = Swapp.ActiveDoc '獲得目前展現(xiàn)的文檔對(duì)象
Dim My dimension As Sld Works.Dimension '聲明尺寸對(duì)象
Mydimension = Part.Parameter("對(duì)應(yīng)尺寸特征名稱(chēng)") '獲得尺寸對(duì)象的引用
Mydimension.System Value = A_size / 1000 '根據(jù)Textbox控件輸入信息驅(qū)動(dòng)模型變更。
…
Part.EditRebuild3() '重建模型。
選擇64位Windows 10操作系統(tǒng),開(kāi)發(fā)環(huán)境為VisualStudio 2017。用戶(hù)通過(guò)登錄界面進(jìn)入系統(tǒng),輸入所需參數(shù)后,混合推理算法根據(jù)設(shè)計(jì)規(guī)則知識(shí)進(jìn)行推理,并根據(jù)所有Textbox控件中的參數(shù)信息驅(qū)動(dòng)SolidWorks模塊,實(shí)現(xiàn)實(shí)例變更,并輸出相應(yīng)的設(shè)計(jì)結(jié)果,同時(shí)將設(shè)計(jì)結(jié)果存入實(shí)例庫(kù)。系統(tǒng)界面如圖4所示,在Intel i5處理器、系統(tǒng)內(nèi)存8 GB配置環(huán)境下,完成刀輥設(shè)計(jì)僅耗時(shí)3~5 min。
圖4 旋耕機(jī)刀輥快速設(shè)計(jì)系統(tǒng)界面Fig.4 System interface of the rotary blade roller rapid design system