劉晟昱 付偉 張維 陳志剛 唐寧
(1.株洲易力達機電有限公司;2.邵陽學院)
在汽車電動助力轉向系統(EPS)的碰撞力學特性分析與優化設計中,需要反復建立EPS 減速機構的幾何模型,進而建立減速機構的有限元模型,而蝸輪蝸桿由于其外形曲面比較復雜,應用傳統方法繪制過程繁雜、效率低且易出錯。因此,有必要開發一種方便有效的建模模塊,以提高產品設計效率,縮短設計周期,為EPS 的性能優化奠定必要的基礎。文章以UG 為軟件開發平臺,通過UIStyler 對話框設計和用Visual C++編程來調用API 函數,設計開發了EPS 減速機構模塊,實現了對蝸輪蝸桿設計參數進行查詢和修改,根據新的參數值更新模型。
汽車行駛需要助力時,控制器依照既定的控制策略,計算電機助力轉矩的大小,并輸出相應控制信號給驅動電路,驅動電路提供相應的電壓或者電流給電動機[1]。EPS 的減速機構結構圖,如圖1所示。電動機輸出的轉矩通過蝸桿和蝸輪等傳動機構驅動轉向軸轉動從而實現助力。
程序要實現針對某個模型的設計參數進行查詢和修改,主要的思路是先讀取對話框中的參數,然后把對話框中的參數傳遞給模型中的表達式,改變表達式中相應參數的值,更新模型。程序運行后,就能實現把設計者輸入對話框的參數轉化成模型尺寸的變化,實現設計目的[2]。由于此種參數化設計的方法是建立在模型的基礎上進行的,因此,在程序運行時,應首先檢測當前打開的模型是否就是該程序和對話框所對應的模型,只有打開了相對應的模型時,程序才繼續運行,否則退出。為了方便設計者使用,讓使用者在打開對話框時,就能直接看到當前模型的各個參數,在調用對話框時應將當前模型中表達式中的對應參數讀出,并傳遞給對話框,顯示在對話框上。模塊實現原理示意圖,如圖2所示。
EPS 減速機構模塊的開發包含UIStyler 對話框設計和相應的API 應用程序設計。模型模板創建以后,應用程序是實現手段。程序要將對話框和部件模型聯系起來,在程序中必然要調用對話框,并有相應的程序和相應對話框中的控件。API 程序將模型中的表達式的值與對話框聯系起來。
啟動UG 后,選擇“應用”→“用戶界面編輯器”,進入User Interfaced Styler 窗口設計環境,系統會自動創建一個基本對話框框架,只需向對話框中插入控件,在資源編輯器中編輯控件屬性,最后保存,即可獲得所需的接口界面對話框。用戶可以通過它輸入數據或者執行操作,應用程序則通過回調函數來響應用戶事件。對話框可以在UG 菜單項上調用,從而將用戶所編寫的程序與UG 完全融合,實現用戶與API 應用程序的交互[3]。
編輯好對話框后,將對話框保存在開發路徑下的application 文件夾中。蝸輪和蝸桿對話框設計結果,如圖3所示。
采用“internal application”內部模式,在 Visual C++中進行API 程序設計的步驟如下:
創建Unipraphics NX App Wizsrd V1 項目工程;
修改UG/OPEN UIStyler 生成的*_temple.c 文件的后綴為cpp,并將其和*.h 文件添加至項目工程;
依據功能需要編輯添加的*_temple.cpp 文件,修改相應函數;
編譯鏈接生成*.dll 文件。
從前面的程序設計思路可知,該程序中主要包括:入口函數程序、獲取表達式程序以及傳遞對話框中數值程序。菜單欄的“蝸輪蝸桿參數化設計”下面的4 個按鈕的響應行為為調用對話框。調用對話框后,單擊對話框中的控件時要有相應的程序來響應它,對話框中包括有確定、應用及取消3 個控件。加上調用對話框時應讀取表達式中的參數,要加一個構造函數。因此對話框程序主要包含有這4 個程序,其中取消按鈕的程序系統已自動生成,確定和應用這2 個按鈕程序所執行的功能大體是一樣的,只是在執行程序后確定是退出對話框,而應用是返回到對話框[4]。因此主要有2 段程序,現簡要介紹如下:
1)構造函數主要程序:
data.item_attr=UF_STYLER_VALUE;//指定獲取控件的值
data.item_id=SHIXIN_PIDAILUN_REAL_0;//控件標識
UF_MODL_eval_exp("z",&data.value.real);//根據表達式名稱計算表達式的數值
UF_STYLER_set_value (dialog_id,&data);// 給對話框中的相應控件賦值應用和確定主要程序
data.item_attr=UF_STYLER_VALUE;//指定獲取控件的值
data.item_id=SHIXIN_PIDAILUN_REAL_Z;// 控件標識,可從對話框頭文件中獲得
UF_STYLER_ask_value (dialog_id,&data);//查詢對話框控件中的值
PRO_DESIGN_edit_exp ("z",data.value.real);//修改表達式中的值
UF_MODL_update();//更新模型
2)程序中引用了PRO_DESIGN_edit_exp 子程序,該程序主要代碼如下:
strcpy(exp,dim_name);//表達式參數
strcat(exp,"=");
sprintf(temp,"%.5f",dim_value);//獲取控件中數值
strcat(exp,temp);
err=UF_MODL_edit_exp(exp);//修改表達式
蝸輪蝸桿運行效果,如圖4所示。
上述實例表明,打開相應部件后,就可調用對話框,輸入中心距、模數及基圓半徑等設計參數后,單擊“確定”或“應用”就可實現模型的更新,滿足了實際設計需要。對于不同的零件模板,其關鍵驅動尺寸參數不同,只要在建立模板文件的時候,定義好各個參數間的表達式關系,即可依據上述相同的方法完成程序設計并實現幾何模型的自動更新。采用模塊化設計,大大降低了產品設計和結構優化的時間[5],為汽車EPS 產品的結構和性能優化奠定必要的基礎。