馮小廣,劉 磊
(上海理工大學 機械工程學院,上海 200093)
一般而言,工程機械臂是多輸入輸出、高非線性、強耦合的多體系統。機械臂基于自身動力完成多種作業需求,可用于裝備制造、焊接檢測、重型裝配等生產環節,在礦山機械、智慧交通、航空航天、軍工制造等諸多領域有著廣泛應用。現代化工業技術飛速發展,社會生產規模大、自動化程度高,工程機械在整個生產建設中發揮著越來越重要的作用。機械臂是各種工程機械設施的主要組成部件之一,其動力學特性決定了工程機械整機的性能發揮。工程機械臂作業工況在一般情形下較為惡劣,所受載荷復雜。因此,為保證機械臂可靠運行、安全作業并提高工作效率,對其結構進行優化設計尤為必要。
在機械臂結構設計中,傳統的產品設計方案是根據設計需求,參考同類產品的經驗數據,憑借一定理論判斷以選定設計參數,再進行校核計算。其結構復雜,如果對每個零件進行個性化設計,會導致工作量大、開發周期長、效率低下等問題。隨著計算機技術的普及,產品設計技術日益成熟,計算機輔助設計已成為現代制造業的發展新趨勢,在CAD 技術的實際應用中,參數化設計技術是目前主流的發展方向之一。所謂參數化設計是指將模型中的約束信息變量化,使之成為可以調整的參數,給變量化參數賦以不同數值,就可以得到不同大小和不同形狀的零件模型,這種設計方法效率高、實現簡單、可移植性強,對形狀或功能相似的產品設計具有重要意義。用戶在設計輪廓時無需準確定位和定形,只需勾畫出大致輪廓,然后通過修改標注的尺寸值以達到最終形狀,或者只需將鄰近的關鍵部分定義為幾個參數,通過對參數的修改實現產品設計。參數化設計在機械臂機械結構中的應用不僅極大地提高了設計和繪圖效率,而且體現出很高的應用價值。
目前,Chugunov 等研究了SolidWorks 二次開發程序在實際應用和優化方面的問題,對參數化建模與界面實現進行了比較全面的概述;Yu系統闡述了基于SolidWorks的參數化設計和智能化裝配工作原理及簡單的開發方法,以上方法提供了參數化設計思路,但未進行相關實際應用;Reddy 等基 于SolidWorks API(Application Programming Interface)開發了一套智能化的軸承設計數據庫;張小鵬等基于SolidWorks 實現了球閥閥體參數化設計,該方法解決了參數化設計過程中零部件的自動生成問題,但并未涉及復雜裝配問題;劉宏新等采用關聯尺寸鏈驅動復雜結構的關鍵參數,該方法解決了參數化設計過程中的數據沖突,但未準確定義裝配關系。
綜上所述,機械設計過程中的參數化技術得到了廣泛運用,提高了產品設計效率與企業競爭力,但其在工程機械臂結構設計領域的應用還處于初步階段。因此,本文開展工程機械臂的參數化設計方法研究,以六自由度工程機械臂為對象,開發出一套可視化操作界面的參數化設計系統,設計人員輸入相關零部件基本參數,系統可精準、快速生成機構的零部件、裝配體三維模型以及工程圖,避免了大量繁瑣建模工作,成功實現了產品快速設計系統,從而極大縮短了產品設計周期、節約了開發成本。同時,降低了對設計人員的專業要求,能夠滿足當代機械臂結構設計過程中的個性化與定制化新需求,為機械臂結構設計問題提供了一種通用的新方法。
參數化設計大多數通過三維軟件(如SolidWorks、Pro∕E、CATIA、UG 等)進行二次開發,以實現在輸入基本參數的情況下自動建立零件的三維模型。SolidWorks 是一套基于Windows 平臺的優秀三維設計軟件,具有用戶界面友好、上手快的優點,采用特征建模、變量化驅動可方便地實現三維建模、裝配并生成工程圖。
尺寸驅動法與程序驅動法為SolidWorks 二次開發的兩種主要方法。尺寸驅動法基于零件模型結構不變,通過編寫程序語言改變現有零件模型的相關尺寸以實現參數化建模。程序驅動法又稱模型驅動法,是通過應用程序將零件三維建模的全過程嚴格按照順序完成構建。兩種方法都可以實現參數化建模,各有其優勢。尺寸驅動法代碼程序量少、編程難度小,對于相似模型無需重復編程;程序驅動法適用范圍廣,對于需要在設計過程中動態生成零件的外形結構情況下亦適用。
基于對象鏈接與嵌套技術OLE(Object Linking and Embedding)和基于對象模型重組技術COM(Component Object Model)是基于SolidWorks 進行二次開發的兩種原理。OLE 技術為微軟公司開發,通過嵌入技術和數據鏈接輕松實現應用程序間的數據互換。COM 技術為面向對象模式,將系統功能分解為單一功能組件,在組件與組件之間、組件與開發人員之間制定統一通信標準,再將各組件有序結合形成統一整體。
以OLE 技術或COM 技術為基礎的API 能函數是Solid-Works 提供的二次開發編程接口,開發人員可以便捷地調用API 函數開發出自己所需的應用程序。用戶在應用程序中對SolidWorks API 進行操作,等效于在SolidWorks 軟件中進行操作。
VB、VB.net、C++、C#等是適用于OLE 技術和COM 技術的計算機常用開發語言,都可以用來進行SolidWorks 二次開發。開發者可根據自身需求選擇其中一種合適的作為開發語言。C#是一種語法簡單、類型安全的面向對象的編程語言。作為當前主流編程語言之一,作為SolidWorks二次開發的編程語言具有相當廣闊的應用前景。
C#
。機械臂參數化系統總體構架包括三大部分:進行人機交互的用戶層,傳遞設計參數信息,實現系統功能;處于系統核心的開發層,連接用戶層與數據層,提供技術支撐;負責儲存功能的數據層,儲存產品信息,提供數據支撐。通過在三者之間建立邏輯關系實現機械臂參數化設計,為用戶搭建簡單、快捷的人機交互平臺。系統總體構架框圖如圖2 所示。Fig.1 System overall architecture圖1 系統總構架
參數設計流程如圖3 所示,具體流程為:首先用戶登錄進入可視化界面獲取零件的關鍵特征參數;然后根據所需模型修改設計參數,點擊生成模型,系統將自動檢測所輸參數是否符合參數規范,若不符合將給出警告并返回上級重新輸入參數,若符合直接自動更新設計參數并生成新的零件三維模型;最后將新零件模型進行配合生成裝配體并保存;最后導出機械臂工程圖完成設計。
Fig.2 Parametric design flow圖2 參數設計流程
本文對機械臂模型進行參數化設計系統開發,機械臂整體結構如圖3 所示,本文機械臂共有6個自由度,由電機驅動,主要由底座、前臂、上臂、手腕、手爪、肩關節、腰關節、肘關節、腕關節、手爪關節組成。其中,底座起安裝與固定機器的作用;手爪用來抓取重物;運動機構由前臂、上臂、手腕、手爪、肩關節、腰關節、肘關節、腕關節共同組成,使手爪完成移動、轉動及復合運動,實現變更物體抓持姿勢與位置。機械臂自由度指機器所具有獨立坐標軸運動的數目,由運動機構決定,為抓取空間中任意方位的物體,最少需要6個自由度。自由度是機械臂結構設計的關鍵,表示機械臂的靈活程度,但并不是自由度越多越好,隨著自由度的增加,其結構變得更加復雜。
Fig.3 Overall structure of manipulator圖3 機械臂整體結構
本文選用尺寸驅動法和程序驅動法相結合實現零件參數化建模。通過對系統零部件進行結構特征分析,可以分為固定參數零部件和關鍵零部件,固定參數零部件是不經過任何更改直接調用的零件,關鍵零部件是指需要經過尺寸參數及特征的更改變化,重新進行建模的零件。零件模塊的加載即對機械臂參數化設計系統中的關鍵零件進行重新三維建模,其核心內容便是對模型尺寸參數進行修改。
將關鍵尺寸定義為全局變量,直接控制零件模型結構變化。關鍵零件設計參數如表1 所示,包括:底座直徑、高度、厚度;前臂高度、寬度、長度、厚度;上臂高度、寬度、長度、厚度。為保證參數設計合理,符合基本工程作業要求,通過制定相關參數規范進行監測。
Table 1 Key parameters表1 關鍵參數
零級模型參數設計部分代碼如下:
自底向上設計方法(Bottom-Up)和自頂向下設計方法(Top-bottom)是模型裝配的兩種基本方式。兩種方法各有其優缺點,Bottom-Up 的主要思路是先設計各零件,然后用零件組裝裝配體;Top-bottom 設計數據先從裝配體總裝出發,然后逐步傳遞到子裝配體、零件過程。
系統中的零件模型已通過參數化完成,因此本文采取Bottom-Up 方法進行模型裝配。在裝配過程中選擇與零件接觸面最多的個體作為固定零件,以免在發生配合錯誤時引起連鎖反應。完成裝配主要分為3 步:首先導入零件模型,遵循先導入固定零件,再根據配合的難易程度導入其他關鍵零件;然后根據零件之間的相對位置通過基準坐標系、基準點、基準線、基準軸、基準面等基準特征反應裝配約束關系。常用配合關系有垂直、重合、平行等;選定零件待配合面按照配合關系完成裝配。
裝配具體步驟和部分相關代碼如下:
工程圖模塊是設計系統中的最后部分,主要實現三維模型轉換二維工程圖功能,用于指導后期產品的制造加工。因此,工程圖模塊同樣至關重要,生成的圖紙質量直接關系到成品優劣。工程圖模塊中,通過提前建立好零件與裝配體模板,當用戶輸入修改的模型設計參數時,工程圖自動隨之修改參數與其相匹配,并實現自動標注。
其部分代碼如下:
在Visual studio 中建立可視化界面,零件模塊、裝配體模塊、工程圖模塊的可視化操作界面如圖4—圖6 所示。用戶登錄進入零件模塊獲取機械臂關鍵零件模型參數,通過輸入修改參數點擊生成按鈕就會重建相關零件模型。當零件模型全部完成重建后導入裝配體模塊,點擊裝配體生成按鈕可進行機械臂裝配。最后進入工程圖模塊,可自動生成模型工程圖。
Fig.4 Part module圖4 零件模塊
Fig.5 Assembly module圖5 裝配體模塊
Fig.6 Engineering drawing module圖6 工程圖模塊
系統各功能模塊中主要步驟運行時間如表2 所示,其中人工繪制時長參考作者本人,該方法大大節省了時長,將繪圖效率提高了數十倍,并且此表僅為每個零部件尺寸修改一次的對比,實際設計過程中需反復修改,效率提高更為顯著。
Table 2 Comparison of system operating efficiency and manual efficiency表2 系統運行效率與人工效率對比
本文在Visual Studio2012 開發環境下,以C#為開發語言,應用SolidWorksAPI 接口技術對SolidWorks2018 進行二次開發,建立了基于尺寸驅動法的六自由度機械臂快速設計系統。該系統主要實現了機械臂零部件的參數化設計、自動生成裝配體、工程圖的導出等功能。用戶通過可視化界面,能夠快速精確地選擇和設計出滿足定制化的機械臂結構,在確保設計質量的前提下提高了設計效率,節約了開發成本,也為機械臂后續的動力學研究、軌跡規劃奠定了基礎,具有一定現實意義。該研究方法具備通用性,可應用于其他同類產品設計與研究,后續研究可考慮優化系統運行效率、改善可視化界面以及添加其他功能模塊。