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