蔡小堯,車文剛,陳文兵
(1.昆明理工大學信息工程與自動化學院,云南 昆明 650500;2.云南煙草機械有限責任公司,云南 昆明 650106)
高速凸輪擺桿機構(gòu)在汽車發(fā)動機、包裝機、紡織機械等設備中具有廣泛應用,由于高速凸輪在運轉(zhuǎn)過程中容易產(chǎn)生振動、噪音及磨損等問題,因此凸輪擺桿機構(gòu)的設計需要在滿足擺桿運動的角速度、角加速度和躍度曲線都連續(xù)等約束條件下,盡可能降低角加速度。
由于凸輪機構(gòu)形式多樣,設計計算復雜,目前的機械設計軟件均未開發(fā)凸輪設計模塊。UG(Unigraphics NX)是目前比較通用的三維機械設計軟件,具有強大的數(shù)字化設計、數(shù)字化驗證和數(shù)字化制造等功能,同時也具有較強的二次開發(fā)功能[1],可以通過二次開發(fā)實現(xiàn)功能拓展。文獻[2]利用UG 二次開發(fā)技術及程序調(diào)用模型數(shù)據(jù),將對話框和模型聯(lián)系起來,通過對話框輸入?yún)?shù),自動生成或更新麻花鉆模型,提高了產(chǎn)品設計和修改效率。智能虛擬裝配技術[3-5]的引入能夠根據(jù)獲取到的三維形體特征自動捕捉設計者意圖,減少手動裝配造成的多余勞動,減少零件研發(fā)時間,降低花費,提高裝配效率。
曹澍等[6]通過NX/Open 應用程序開發(fā)接口結(jié)合VS 開發(fā)了適用于弧面分度凸輪機構(gòu)快速建模的參數(shù)化設計系統(tǒng),實現(xiàn)了弧面分度凸輪機構(gòu)的可視化交互設計,極大地縮短了設計時間和減少了繁瑣的重復勞動,證明了參數(shù)化設計的優(yōu)越性和可行性。目前凸輪擺桿機構(gòu)設計主要采用第三方設計軟件或工具設計完成后轉(zhuǎn)成通用文件導入三維機械設計軟件中實現(xiàn)凸輪建模,再進行后續(xù)的結(jié)構(gòu)設計和運動仿真[7]。該方法由于涉及到多個軟件之間數(shù)據(jù)格式轉(zhuǎn)換,其過程會產(chǎn)生一定的誤差,并且轉(zhuǎn)換格式后的數(shù)據(jù)無法在產(chǎn)品設計后期更改,造成產(chǎn)品設計和更改效率低下。參數(shù)化設計技術是指根據(jù)用戶設置的參數(shù)和約束條件,對應生成相應的模型和幾何形狀,當模型參數(shù)和約束條件發(fā)生變化時,將對幾何體模型進行形狀重建和更新,將參數(shù)化設計引入盤形凸輪擺桿機構(gòu)設計過程中,有望進一步提高凸輪擺桿機構(gòu)設計的效率和精度、縮短相關產(chǎn)品的開發(fā)周期[8-9]。
本文以改進正弦運動規(guī)律為例,基于UG 表達式和UG 二次開發(fā)實現(xiàn)了高速凸輪擺桿機構(gòu)的參數(shù)化設計,主要有以下4 點創(chuàng)新:
(1) 利用凸輪擺桿機構(gòu)解析法原理,針對高速凸輪擺桿機構(gòu)參數(shù)化設計過程中從動件擺動引起的凸輪轉(zhuǎn)角偏移問題,分析了凸輪轉(zhuǎn)角偏移問題產(chǎn)生的原因及影響。結(jié)果表明:推程階段和回程階段凸輪輪廓曲線對應的圓心角對比凸輪轉(zhuǎn)角都發(fā)生了不同程度的偏移;
(2) 通過引入轉(zhuǎn)角補償量,設計了基于轉(zhuǎn)角補償量的凸輪參數(shù)化設計數(shù)學模型,運動仿真結(jié)果表明,該設計可以降低從動件的最大加速度;
(3) 結(jié)合UG 規(guī)律曲線和NX/Open 二次開發(fā),實現(xiàn)了凸輪擺桿機構(gòu)參數(shù)化設計和修改,用戶只需通過人機交互界面修改關鍵參數(shù)即可完成修改,方便用戶在整個產(chǎn)品開發(fā)周期中進行參數(shù)的調(diào)整;
(4) 利用C#窗體和圖表功能與NX/Open 結(jié)合,實現(xiàn)凸輪擺桿機構(gòu)的角加速度、角速度以及位移曲線的可視化,方便用戶一鍵生成上述特征曲線,并通過UG 運動學仿真模塊驗證其正確性。
參數(shù)化設計是指零件的形狀相對固定,模型的幾何形狀由用戶設定的參數(shù)和約束來定義。當給定不同的參數(shù)序列值和不同的約束條件時,可以驅(qū)動新的目標幾何體,設計結(jié)果就是包含設計信息的模型。參數(shù)化為產(chǎn)品模型的可變性、重用性和并行設計提供了一種手段。使用戶可以方便地利用已有模型進行重構(gòu),在遵循原設計意圖的前提下,方便地修改系列產(chǎn)品模型,大大提高了設計效率[10-11]。
傳統(tǒng)凸輪參數(shù)化設計方法往往需要多個設計工具或軟件之間進行設計數(shù)據(jù)轉(zhuǎn)換和傳遞,轉(zhuǎn)換格式后的數(shù)據(jù)無法在產(chǎn)品設計后期更改,產(chǎn)品設計發(fā)生修改時會產(chǎn)生大量的重復步驟和工作,極大的影響了產(chǎn)品開發(fā)設計的效率[7],傳統(tǒng)參數(shù)化設計流程如圖1 所示。
圖1 傳統(tǒng)凸輪參數(shù)化設計流程 Fig.1 Traditional parametric design process of cam
在UG 軟件上進行參數(shù)化設計的主要方法有:尺寸驅(qū)動法、編程方法和表達式方法等[6]。由于凸輪輪廓曲線精度要求高、特征復雜,難以用簡單的尺寸和約束關系描述,因此本文采用表達式法來實現(xiàn)凸輪擺桿機構(gòu)的特征參數(shù)到凸輪輪廓曲線的映射,并利用編程法開發(fā)了人機交互設計和修改界面,實現(xiàn)了凸輪擺桿機構(gòu)速度和加速度等特征曲線的一鍵可視化,為凸輪擺桿機構(gòu)的設計提供參考。本文基于UG 二次開發(fā)的凸輪參數(shù)化設計流程如圖2 所示,對比傳統(tǒng)凸輪參數(shù)化設計方法,基于表達式的參數(shù)化設計方法簡化了設計修改流程從而提高設計效率。
圖2 基于UG 二次開發(fā)的凸輪參數(shù)化設計流程 Fig.2 Parametric design process of cam based on UG secondary development
本文以改進正弦運動規(guī)律為例建立凸輪擺桿機構(gòu)參數(shù)化設計數(shù)學模型,針對擺桿擺動對凸輪轉(zhuǎn)角的影響(即各運動階段凸輪理論轉(zhuǎn)角與凸輪輪廓曲線對應的角度不相等,存在一定的偏移量),提出了基于轉(zhuǎn)角補償量的凸輪參數(shù)化設計數(shù)學模型。假定凸輪朝順時針方向旋轉(zhuǎn),推程角大小為A1,遠休止角大小為A2,回程角大小為A3,近休止角大小為A4,基圓半徑大小為R0,凸輪升程為H,擺桿長度為RG,滾子半徑大小為R1,D0為擺桿旋轉(zhuǎn)中心與凸輪旋轉(zhuǎn)中心的距離,凸輪轉(zhuǎn)速為w(r/min)。
圖3 為凸輪擺桿機構(gòu)示意圖,以改進正弦運動規(guī)律中回程第一階段(0≤T1≤1/8×A3)為例構(gòu)建數(shù)學模型。點O為凸輪旋轉(zhuǎn)中心,點O1為擺桿旋轉(zhuǎn)中心,點Pi為凸輪轉(zhuǎn)過某角度T1(0≤T1≤1/8×A3)時從動件所在位置。擺桿初始角度θ0、最大角度θmax及擺桿總行程θ計算如下
圖3 凸輪擺桿機構(gòu)參數(shù)示意圖 Fig.3 Parameter diagram of cam swing bar mechanism
對于其他區(qū)間的計算方法與此類似,只需根據(jù)改進正弦運動規(guī)律調(diào)整θi計算公式,基于上述數(shù)學模型用UG 表達式生成凸輪輪廓曲線模板,如圖4 所示。
圖4 UG 表達式生成的凸輪輪廓曲線模板 Fig.4 Cam profile curve template generated by UG expression
UG 二次開發(fā)是指基于UG 軟件平臺,用戶針對自身需求,融合相關的行業(yè)經(jīng)驗和知識,開發(fā)面向行業(yè)和面向設計過程的應用工具。UG 軟件通過內(nèi)部程序規(guī)定了應用程序開發(fā)和擴展的方式為動態(tài)鏈接庫(dynamic link library,DLL)技術。UG 啟動時,系統(tǒng)自動加載DLL 文件或通過菜單、工具條啟動應用程序和對話框,由對話框和相應的內(nèi)部接口函數(shù)實現(xiàn)相應的程序調(diào)用,實現(xiàn)應用程序與UG 平臺的無縫集成。
凸輪擺桿機構(gòu)參數(shù)化設計系統(tǒng)應用程序與框架如圖5 所示,通過Menu Script 工具開發(fā)的菜單和工具條文件對應的擴展名分別是*.men 和*.tbr,這些文件放在參數(shù)化設計系統(tǒng)目錄下的Startup 子文件夾中,UG 啟動時會自動加載該子文件夾下的文件,凸輪擺桿機構(gòu)參數(shù)化設計系統(tǒng)的菜單工具條如圖6 所示。
圖5 凸輪擺桿機構(gòu)參數(shù)化設計系統(tǒng)框架 Fig.5 Framework of parametric design system for cam swing bar mechanism
圖6 凸輪擺桿機構(gòu)參數(shù)化設計系統(tǒng)菜單工具 Fig.6 Menu tool of parametric design system for cam swing bar mechanism
通過Block UI Styler 工具開發(fā)的對話框工具文件擴展名為*.dlx,同時會自動生成對話框?qū)?.cpp 和*.hpp 文件,根據(jù)應用程序功能對*.cpp 和*.hpp 文件在編程開發(fā)環(huán)境中進行編輯添加相應的函數(shù)和功能,經(jīng)編譯調(diào)試生成對應的DLL 文件。DLX 和DLL 這2 類文件放在參數(shù)化設計系統(tǒng)目錄下的Application 子文件夾中,當應用程序進入這些對話框?qū)腄LL 應用程序時,系統(tǒng)通過相應的菜單工具或操作按鈕實現(xiàn)這些特定應用模塊相關的文件調(diào)用。Data 子目錄下存放模板文件(*.prt),模板文件,模板文件中存儲了根據(jù)凸輪擺桿機構(gòu)參數(shù)化數(shù)學模型設計的表達式,供應用程序在創(chuàng)建凸輪模型時調(diào)用。
該參數(shù)化設計系統(tǒng)中,創(chuàng)建凸輪模型對應的應用程序為createModel.dll 和createModel.dlx,應用程序通過UF_PART_import()函數(shù)導入模板文件,通過UF_ASSEM_ask_work_part()函數(shù)獲取當前工作零件的tag,通過UF_MODL_ask_exps_of _part()函數(shù)獲取表達式,通過UF_MODL_edit_exp()函數(shù)對表達式進行編輯,從而實現(xiàn)了一鍵創(chuàng)建凸輪擺桿模型,創(chuàng)建凸輪模型對話框如圖7 所示。編輯凸輪模型對應的應用程序為editModel.dll 和editModel.dlx,該應用程序通過UF_MODL_ask_ exps_of_part()函數(shù)獲取表達式,通過UF_MODL_edit_exp()函數(shù)對表達式進行編輯,從而實現(xiàn)通過對話框?qū)ν馆啍[桿模型進行編輯。
以圖7 中給定的參數(shù)為例,假定凸輪沿順時針方向旋轉(zhuǎn),生成的凸輪模型如圖8 所示。生成的模型對應的凸輪轉(zhuǎn)角與輪廓曲線角度對比見表1,推程階段和回程階段凸輪輪廓曲線對應的圓心角對比凸輪轉(zhuǎn)角都發(fā)生了不同程度的偏移。
圖8 參數(shù)化建模效果 Fig.8 Parametric modeling results
表1 凸輪轉(zhuǎn)角與輪廓曲線角度對比(°) Table 1 Comparison of cam angle and profile curve angle (°)
由于UG 自帶的二次開發(fā)對話框不具有圖表顯示功能,因此本研究通過將C#窗體與NX Open 結(jié)合實現(xiàn)從動件角加速度、角速度和擺動角度的可視化。特征曲線可視化應用程序以NX Open C 作為編程接口,通過在C#窗體中引用NX Open,應用NXOpen.Session.GetSession()和FindObject()函數(shù)獲取當前工作部件的tag 和表達式。利用獲取的模型參數(shù)值通過式(11)~(13)分別計算得到從動件角加速度、角速度和擺動角度,再將計算結(jié)果通過C#窗體的圖表功能顯示出來。調(diào)試后的源程序經(jīng)編譯執(zhí)行后生成plotForCurve.dll,該文件存放到Application目錄下,供UG 菜單和工具條調(diào)用,從而實現(xiàn)凸輪擺桿機構(gòu)的角加速度、角速度以及位移曲線的一鍵可視化。以圖7 給定的參數(shù)為例,角加速度可視化效果如圖9 所示。
圖9 凸輪特征曲線可視化(角加速度) Fig.9 Visualization of cam characteristic curve (angular acceleration)
以圖7 給定的參數(shù)為例,分別用基于轉(zhuǎn)角補償量的凸輪參數(shù)化設計數(shù)學模型和不帶轉(zhuǎn)角補償?shù)臄?shù)學模型創(chuàng)建生成凸輪模型,在UG 仿真環(huán)境下運動仿真,仿真生成角加速度曲線如圖10 (基于轉(zhuǎn)角補償量模型的加速度曲線)和圖11 (無轉(zhuǎn)角補償量模型的加速度曲線)所示?;谵D(zhuǎn)角補償量的凸輪參數(shù)化設計數(shù)學模型生成的凸輪模型最大角加速度為175 500 °/s2,無轉(zhuǎn)角補償量的凸輪參數(shù)化設計數(shù)學模型生成的凸輪模型最大角加速度為242 600 °/s2,基于轉(zhuǎn)角補償量的凸輪參數(shù)化設計數(shù)學模型生成的凸輪模型最大角加速度下降了27.2%。
圖11 無轉(zhuǎn)角補償量模型的加速度曲線(400 r/min) Fig.11 Acceleration curve without angular compensation (400 r/min)
對比圖9 和圖10 可以看出,由凸輪曲線可視化生成的角加速度曲線與基于轉(zhuǎn)角補償量模型的運動仿真角加速度曲線一致,驗證了基于轉(zhuǎn)角補償量的凸輪參數(shù)化設計數(shù)學模型的準確性。
圖10 基于轉(zhuǎn)角補償量模型的加速度曲線(400 r/min) Fig.10 Acceleration curve based on angular compensation (400 r/min)
本文以凸輪擺桿機構(gòu)基本參數(shù)為基礎,應用和凸輪解析法和平面幾何理論,分析了凸輪擺桿機構(gòu)參數(shù)化設計過程中凸輪轉(zhuǎn)角偏移問題產(chǎn)生的原因及影響,提出了基于轉(zhuǎn)角補償量的凸輪參數(shù)化設計數(shù)學模型,并利用UG 表達式實現(xiàn)了凸輪擺桿機構(gòu)到凸輪輪廓曲線的映射。利用NX Open C 作為編程接口,在Microsoft Visual Studio 編程環(huán)境下實現(xiàn)了操作界面、模板模型與用戶模型之間的參數(shù)交互訪問和修改、表達式訪問和導入。通過UF_MODL_ ask_exps_of_part()函數(shù)獲取模型表達式的tag 和數(shù)量,利用 UF_PART_import()和 UF_MODL_edit_ exp()函數(shù)實現(xiàn)表達式的導入和參數(shù)的編輯。通過在C#窗體中引用NX Open,應用NXOpen.Session.GetSession()和FindObject()函數(shù)獲取當前工作部件的tag 和表達式,將模型參數(shù)傳遞到C#窗體的圖表中,從而實現(xiàn)凸輪擺桿機構(gòu)的角加速度、速度以及位移曲線的一鍵可視化。
研究結(jié)果表明,推程階段和回程階段凸輪輪廓曲線對應的圓心角對比凸輪轉(zhuǎn)角都發(fā)生了不同程度的偏移,基于UG 表達式并引入轉(zhuǎn)角補償量的凸輪參數(shù)化設計方法對比沒有考慮轉(zhuǎn)角補償?shù)姆椒梢越档蛷膭蛹淖畲蠹铀俣?,實現(xiàn)凸輪輪廓曲線的精確設計。相比通過其他軟件編寫曲線方程生成曲線點云的方法,本文方法在實現(xiàn)凸輪輪廓曲線的精確參數(shù)化設計的前提下,簡化了凸輪擺桿機構(gòu)的設計和修改流程,提高了產(chǎn)品設計效率,同時對實現(xiàn)產(chǎn)品的標準化、系列化設計也有著廣泛的應用價值。