蔡小堯,車文剛,陳文兵
(1.昆明理工大學信息工程與自動化學院,云南 昆明 650500;2.云南煙草機械有限責任公司,云南 昆明 650106)
高速凸輪擺桿機構在汽車發動機、包裝機、紡織機械等設備中具有廣泛應用,由于高速凸輪在運轉過程中容易產生振動、噪音及磨損等問題,因此凸輪擺桿機構的設計需要在滿足擺桿運動的角速度、角加速度和躍度曲線都連續等約束條件下,盡可能降低角加速度。
由于凸輪機構形式多樣,設計計算復雜,目前的機械設計軟件均未開發凸輪設計模塊。UG(Unigraphics NX)是目前比較通用的三維機械設計軟件,具有強大的數字化設計、數字化驗證和數字化制造等功能,同時也具有較強的二次開發功能[1],可以通過二次開發實現功能拓展。文獻[2]利用UG 二次開發技術及程序調用模型數據,將對話框和模型聯系起來,通過對話框輸入參數,自動生成或更新麻花鉆模型,提高了產品設計和修改效率。智能虛擬裝配技術[3-5]的引入能夠根據獲取到的三維形體特征自動捕捉設計者意圖,減少手動裝配造成的多余勞動,減少零件研發時間,降低花費,提高裝配效率。
曹澍等[6]通過NX/Open 應用程序開發接口結合VS 開發了適用于弧面分度凸輪機構快速建模的參數化設計系統,實現了弧面分度凸輪機構的可視化交互設計,極大地縮短了設計時間和減少了繁瑣的重復勞動,證明了參數化設計的優越性和可行性。目前凸輪擺桿機構設計主要采用第三方設計軟件或工具設計完成后轉成通用文件導入三維機械設計軟件中實現凸輪建模,再進行后續的結構設計和運動仿真[7]。該方法由于涉及到多個軟件之間數據格式轉換,其過程會產生一定的誤差,并且轉換格式后的數據無法在產品設計后期更改,造成產品設計和更改效率低下。參數化設計技術是指根據用戶設置的參數和約束條件,對應生成相應的模型和幾何形狀,當模型參數和約束條件發生變化時,將對幾何體模型進行形狀重建和更新,將參數化設計引入盤形凸輪擺桿機構設計過程中,有望進一步提高凸輪擺桿機構設計的效率和精度、縮短相關產品的開發周期[8-9]。
本文以改進正弦運動規律為例,基于UG 表達式和UG 二次開發實現了高速凸輪擺桿機構的參數化設計,主要有以下4 點創新:
(1) 利用凸輪擺桿機構解析法原理,針對高速凸輪擺桿機構參數化設計過程中從動件擺動引起的凸輪轉角偏移問題,分析了凸輪轉角偏移問題產生的原因及影響。結果表明:推程階段和回程階段凸輪輪廓曲線對應的圓心角對比凸輪轉角都發生了不同程度的偏移;
(2) 通過引入轉角補償量,設計了基于轉角補償量的凸輪參數化設計數學模型,運動仿真結果表明,該設計可以降低從動件的最大加速度;
(3) 結合UG 規律曲線和NX/Open 二次開發,實現了凸輪擺桿機構參數化設計和修改,用戶只需通過人機交互界面修改關鍵參數即可完成修改,方便用戶在整個產品開發周期中進行參數的調整;
(4) 利用C#窗體和圖表功能與NX/Open 結合,實現凸輪擺桿機構的角加速度、角速度以及位移曲線的可視化,方便用戶一鍵生成上述特征曲線,并通過UG 運動學仿真模塊驗證其正確性。
參數化設計是指零件的形狀相對固定,模型的幾何形狀由用戶設定的參數和約束來定義。當給定不同的參數序列值和不同的約束條件時,可以驅動新的目標幾何體,設計結果就是包含設計信息的模型。參數化為產品模型的可變性、重用性和并行設計提供了一種手段。使用戶可以方便地利用已有模型進行重構,在遵循原設計意圖的前提下,方便地修改系列產品模型,大大提高了設計效率[10-11]。
傳統凸輪參數化設計方法往往需要多個設計工具或軟件之間進行設計數據轉換和傳遞,轉換格式后的數據無法在產品設計后期更改,產品設計發生修改時會產生大量的重復步驟和工作,極大的影響了產品開發設計的效率[7],傳統參數化設計流程如圖1 所示。

圖1 傳統凸輪參數化設計流程 Fig.1 Traditional parametric design process of cam
在UG 軟件上進行參數化設計的主要方法有:尺寸驅動法、編程方法和表達式方法等[6]。由于凸輪輪廓曲線精度要求高、特征復雜,難以用簡單的尺寸和約束關系描述,因此本文采用表達式法來實現凸輪擺桿機構的特征參數到凸輪輪廓曲線的映射,并利用編程法開發了人機交互設計和修改界面,實現了凸輪擺桿機構速度和加速度等特征曲線的一鍵可視化,為凸輪擺桿機構的設計提供參考。本文基于UG 二次開發的凸輪參數化設計流程如圖2 所示,對比傳統凸輪參數化設計方法,基于表達式的參數化設計方法簡化了設計修改流程從而提高設計效率。

圖2 基于UG 二次開發的凸輪參數化設計流程 Fig.2 Parametric design process of cam based on UG secondary development
本文以改進正弦運動規律為例建立凸輪擺桿機構參數化設計數學模型,針對擺桿擺動對凸輪轉角的影響(即各運動階段凸輪理論轉角與凸輪輪廓曲線對應的角度不相等,存在一定的偏移量),提出了基于轉角補償量的凸輪參數化設計數學模型。假定凸輪朝順時針方向旋轉,推程角大小為A1,遠休止角大小為A2,回程角大小為A3,近休止角大小為A4,基圓半徑大小為R0,凸輪升程為H,擺桿長度為RG,滾子半徑大小為R1,D0為擺桿旋轉中心與凸輪旋轉中心的距離,凸輪轉速為w(r/min)。
圖3 為凸輪擺桿機構示意圖,以改進正弦運動規律中回程第一階段(0≤T1≤1/8×A3)為例構建數學模型。點O為凸輪旋轉中心,點O1為擺桿旋轉中心,點Pi為凸輪轉過某角度T1(0≤T1≤1/8×A3)時從動件所在位置。擺桿初始角度θ0、最大角度θmax及擺桿總行程θ計算如下


圖3 凸輪擺桿機構參數示意圖 Fig.3 Parameter diagram of cam swing bar mechanism

對于其他區間的計算方法與此類似,只需根據改進正弦運動規律調整θi計算公式,基于上述數學模型用UG 表達式生成凸輪輪廓曲線模板,如圖4 所示。

圖4 UG 表達式生成的凸輪輪廓曲線模板 Fig.4 Cam profile curve template generated by UG expression
UG 二次開發是指基于UG 軟件平臺,用戶針對自身需求,融合相關的行業經驗和知識,開發面向行業和面向設計過程的應用工具。UG 軟件通過內部程序規定了應用程序開發和擴展的方式為動態鏈接庫(dynamic link library,DLL)技術。UG 啟動時,系統自動加載DLL 文件或通過菜單、工具條啟動應用程序和對話框,由對話框和相應的內部接口函數實現相應的程序調用,實現應用程序與UG 平臺的無縫集成。
凸輪擺桿機構參數化設計系統應用程序與框架如圖5 所示,通過Menu Script 工具開發的菜單和工具條文件對應的擴展名分別是*.men 和*.tbr,這些文件放在參數化設計系統目錄下的Startup 子文件夾中,UG 啟動時會自動加載該子文件夾下的文件,凸輪擺桿機構參數化設計系統的菜單工具條如圖6 所示。

圖5 凸輪擺桿機構參數化設計系統框架 Fig.5 Framework of parametric design system for cam swing bar mechanism

圖6 凸輪擺桿機構參數化設計系統菜單工具 Fig.6 Menu tool of parametric design system for cam swing bar mechanism
通過Block UI Styler 工具開發的對話框工具文件擴展名為*.dlx,同時會自動生成對話框對應的*.cpp 和*.hpp 文件,根據應用程序功能對*.cpp 和*.hpp 文件在編程開發環境中進行編輯添加相應的函數和功能,經編譯調試生成對應的DLL 文件。DLX 和DLL 這2 類文件放在參數化設計系統目錄下的Application 子文件夾中,當應用程序進入這些對話框對應的DLL 應用程序時,系統通過相應的菜單工具或操作按鈕實現這些特定應用模塊相關的文件調用。Data 子目錄下存放模板文件(*.prt),模板文件,模板文件中存儲了根據凸輪擺桿機構參數化數學模型設計的表達式,供應用程序在創建凸輪模型時調用。
該參數化設計系統中,創建凸輪模型對應的應用程序為createModel.dll 和createModel.dlx,應用程序通過UF_PART_import()函數導入模板文件,通過UF_ASSEM_ask_work_part()函數獲取當前工作零件的tag,通過UF_MODL_ask_exps_of _part()函數獲取表達式,通過UF_MODL_edit_exp()函數對表達式進行編輯,從而實現了一鍵創建凸輪擺桿模型,創建凸輪模型對話框如圖7 所示。編輯凸輪模型對應的應用程序為editModel.dll 和editModel.dlx,該應用程序通過UF_MODL_ask_ exps_of_part()函數獲取表達式,通過UF_MODL_edit_exp()函數對表達式進行編輯,從而實現通過對話框對凸輪擺桿模型進行編輯。
以圖7 中給定的參數為例,假定凸輪沿順時針方向旋轉,生成的凸輪模型如圖8 所示。生成的模型對應的凸輪轉角與輪廓曲線角度對比見表1,推程階段和回程階段凸輪輪廓曲線對應的圓心角對比凸輪轉角都發生了不同程度的偏移。

圖8 參數化建模效果 Fig.8 Parametric modeling results

表1 凸輪轉角與輪廓曲線角度對比(°) Table 1 Comparison of cam angle and profile curve angle (°)
由于UG 自帶的二次開發對話框不具有圖表顯示功能,因此本研究通過將C#窗體與NX Open 結合實現從動件角加速度、角速度和擺動角度的可視化。特征曲線可視化應用程序以NX Open C 作為編程接口,通過在C#窗體中引用NX Open,應用NXOpen.Session.GetSession()和FindObject()函數獲取當前工作部件的tag 和表達式。利用獲取的模型參數值通過式(11)~(13)分別計算得到從動件角加速度、角速度和擺動角度,再將計算結果通過C#窗體的圖表功能顯示出來。調試后的源程序經編譯執行后生成plotForCurve.dll,該文件存放到Application目錄下,供UG 菜單和工具條調用,從而實現凸輪擺桿機構的角加速度、角速度以及位移曲線的一鍵可視化。以圖7 給定的參數為例,角加速度可視化效果如圖9 所示。

圖9 凸輪特征曲線可視化(角加速度) Fig.9 Visualization of cam characteristic curve (angular acceleration)
以圖7 給定的參數為例,分別用基于轉角補償量的凸輪參數化設計數學模型和不帶轉角補償的數學模型創建生成凸輪模型,在UG 仿真環境下運動仿真,仿真生成角加速度曲線如圖10 (基于轉角補償量模型的加速度曲線)和圖11 (無轉角補償量模型的加速度曲線)所示?;谵D角補償量的凸輪參數化設計數學模型生成的凸輪模型最大角加速度為175 500 °/s2,無轉角補償量的凸輪參數化設計數學模型生成的凸輪模型最大角加速度為242 600 °/s2,基于轉角補償量的凸輪參數化設計數學模型生成的凸輪模型最大角加速度下降了27.2%。

圖11 無轉角補償量模型的加速度曲線(400 r/min) Fig.11 Acceleration curve without angular compensation (400 r/min)
對比圖9 和圖10 可以看出,由凸輪曲線可視化生成的角加速度曲線與基于轉角補償量模型的運動仿真角加速度曲線一致,驗證了基于轉角補償量的凸輪參數化設計數學模型的準確性。

圖10 基于轉角補償量模型的加速度曲線(400 r/min) Fig.10 Acceleration curve based on angular compensation (400 r/min)
本文以凸輪擺桿機構基本參數為基礎,應用和凸輪解析法和平面幾何理論,分析了凸輪擺桿機構參數化設計過程中凸輪轉角偏移問題產生的原因及影響,提出了基于轉角補償量的凸輪參數化設計數學模型,并利用UG 表達式實現了凸輪擺桿機構到凸輪輪廓曲線的映射。利用NX Open C 作為編程接口,在Microsoft Visual Studio 編程環境下實現了操作界面、模板模型與用戶模型之間的參數交互訪問和修改、表達式訪問和導入。通過UF_MODL_ ask_exps_of_part()函數獲取模型表達式的tag 和數量,利用 UF_PART_import()和 UF_MODL_edit_ exp()函數實現表達式的導入和參數的編輯。通過在C#窗體中引用NX Open,應用NXOpen.Session.GetSession()和FindObject()函數獲取當前工作部件的tag 和表達式,將模型參數傳遞到C#窗體的圖表中,從而實現凸輪擺桿機構的角加速度、速度以及位移曲線的一鍵可視化。
研究結果表明,推程階段和回程階段凸輪輪廓曲線對應的圓心角對比凸輪轉角都發生了不同程度的偏移,基于UG 表達式并引入轉角補償量的凸輪參數化設計方法對比沒有考慮轉角補償的方法可以降低從動件的最大加速度,實現凸輪輪廓曲線的精確設計。相比通過其他軟件編寫曲線方程生成曲線點云的方法,本文方法在實現凸輪輪廓曲線的精確參數化設計的前提下,簡化了凸輪擺桿機構的設計和修改流程,提高了產品設計效率,同時對實現產品的標準化、系列化設計也有著廣泛的應用價值。