王瑞波 姚曉東
(浙江吉利新能源商用車集團有限公司)
懸架是汽車的重要組成部分,對汽車的行駛平順性和操縱穩定性有著決定性影響。懸架系統的運動學分析不僅能展現各零件間的運動狀態,而且還能評判懸架系統的優劣。要優化汽車設計就必須對懸架運動學變化規律進行針對性改善[1-2],所以在汽車設計過程中經常依據不同的懸架硬點參數建立眾多的懸架運動學模型進行對比分析和優化驗證。而懸架硬點參數等設計文件常使用Office 辦公軟件交流儲存,未與CAD 類工程設計軟件建立聯系。基于上述問題,文章提出一種方法,在Office 辦公軟件和CAD 類工程設計軟件之間建立橋梁,實現自動化建模,經實例驗證,達到設計預期。
VBA(Visual Basic for Applications)是 Visual Basic的一種宏語言,是微軟開發出來在其桌面應用程序中執行通用的自動化任務的編程語言[3-4]。VBA 提供了面向對象的程序設計方法和相當完整的程序設計語言,但必須寄生于已有的應用程序。即VBA 的項目(Project) 僅由使用 VBA 的 Excel、Word、PowerPoint 等稱為宿主(Host)的應用程序(Application)來調用。
CATIA 是CAD/CAE/CAM 一體化軟件,在世界CAD/CAE/CAM領域中處于領先地位。它的集成解決方案涵蓋了從產品造型設計、三維模型設計、運動仿真、有限元分析、人機工程、圖紙繪制到生產加工的全過程。CATIA 廣泛應用于航空航天、汽車、機械、電子電器、船舶等諸多行業領域[5-12]。大部分世界主流的車企將CATIA 作為其核心設計軟件。
二次開發是在現有軟件上進行定制修改,實現功能擴展。CATIA 為二次開發提供了多種接口,外部程序可以將CATIA 作為一個OLE(Object Linking and Embedding)自動化服務器,通過 COM(Component Object Model)接口來訪問 CATIA 內部的對象。Excel VBA 程序設計本質上就是對Excel 的二次開發。
在汽車設計研發過程中,需要不斷地對懸架零件結構、硬點進行調整優化,某些時候甚至要進行多方案對比驗證。依據同種類型懸架拓撲結構相同或類似的特點,使用懸架系統硬點,應用參數化的方法搭建懸架運動仿真模型成為常用的運動仿真分析方法[13]。
由于汽車懸架硬點坐標直接確定了四輪定位參數、轉向梯形結構,直接影響了懸架的運動學特性、汽車的操縱穩定性和行駛平順性,一直以來其都是汽車設計的重點。以汽車懸架的硬點和其他重要的安裝固定點建立懸架系統數學模型,麥弗遜式前懸架,如圖1 所示。

圖1 汽車麥弗遜懸架數學模型簡化示意圖
CATIA 軟件的DMU Kinematics 模塊是專門用于建立DMU(Digital Mock Up)運動仿真的模塊。其建立的運動學懸架將懸架系統中的彈性元件(橡膠襯套、橫向穩定桿等)理想化,使用運動副代替或轉化為剛性元件,運動仿真時不考慮彈性元件變形的影響[14]。在DMU中將橫向穩定桿轉化成剛性元件后,橫向穩定桿不再有彈性變形,為避免左右輪的上下跳動相互影響,需將橫向穩定桿從中間斷開成2 個零件。麥弗遜式前懸架的運動副定義有多種組合形式,表1 示出了其中的一種。無論哪種組合形式,懸架機構的自由度必須和驅動的數量相同。在不存在虛約束和局部自由度的懸架系統中,可用空間機構自由度計算公式計算懸架機構自由度[15]。

式中:W——機構的自由度;
m——機構各構件在運動時所受到的公共約束數(m 的值可依次取 0~4);
n——機構的活動構件數;
Pk——機構的k 類運動副的數量;
k——機構運動副的配合級別,由運動副所產生的約束數來決定,其數值相應 k=5、4、3、2、1。

表1 一種麥弗遜式前懸架的運動副定義
在編輯運行程序以前,需要在VBAProject 引用對話框中引用所有的以“CATIA”開頭的Object Library 類庫文件。引用后不但能使用VBA 代碼的自動完成功能,而且還能在對象瀏覽器查看CATIA 的所有對象及其使用方法和屬性[16]。
可用如下代碼,通過COM 接口訪問CATIA,并在初始化時新建產品文件:

需要注意的是,CATIA Automation 中 Product、Part-Document、part、Reference 等數據類型不能定義成為數組的數據類型,須以Variant 變體類型定義變量,尤其是函數中作為傳入參數的數組必須定義為Variant 變體類型,否則程序會出錯。
在已經建立好的Product 中,依據CATIA 文檔結構,通過API(Application Program Interface)逐級建立和獲取各層級對象。CATIA 中Application 對象的層級關系,與Product 文檔結構樹的對照關系,如圖2 所示。零件建立完成后,再依據EXCEL 表格中的硬點坐標數據建立點、線、面等模型,如此產品文檔中所有組件均使用整車坐標系,免去了裝配過程中繁瑣的坐標系轉換。

圖2 Application 對象與Product 結構樹的對照關系界面示意圖
和CATIADMU Kinematics 模塊建立DMU 運動仿真模型一樣,VBA 程序的第一步也是建立Mechanism和固定車架組件。但建立運動副和驅動命令,不同于工程設計人員在DMU Kinematics 模塊的操作,必須先提取用到的 Point、Line、Plane 的完整路徑,再在運動副建立的函數AddJoint()中引用這些路徑的Reference。
在mechanism 中添加運動副的AddJoint()函數不僅需要一個Reference 數組,還需要一個特殊字符串Type string 來確定運動副類型。表2 示出了懸架常用運動副和Type string、Reference 三者的對應關系。

表2 懸架常用運動副和Type string、Reference 關系表
在CATIA 初始化并新建產品文件后,逐級建立和獲取Product、Documents、Part 等各層級對象。在零件幾何體Body 內創建點、線、面等非基于草圖的特征元素需要啟用混合設計(HybridShapeFactory)模式,否則需將其建立在幾何圖形集HybridBody 內。

讀取Excel 表單元格內的硬點坐標,并在各Part 零件的‘零件幾何體’內生成點、線、面等特征元素。

為在CATIA 程序界面看到三維圖形,所有特征模型建立完成后,必須激活所有端節點并啟動設計模式。

新建機械裝置Mechanism,并固定車架組件oRoot-Product (1),再提取DMU 用到的所有元素的完整路徑名,建立提取的路徑名的Reference。

對于麥弗遜懸架的運動副,依據表1 和表2,AddJoint()函數的傳入參數用數組需要兩個元素或四個元素,分別定義擁有2 個一維數組就能滿足編程要求。

按需求添加運動副和命令既能完成模型建立,以下代碼列舉了定義車架和轉向齒條之間的運動副、驅動命令的代碼。

在Excel 表格中輸入相關的硬點坐標數據,如圖3所示。在Excel 2013 和CATIA V5-6R2015 環境下實測,點擊“建立DMU”命令按鈕后,程序執行完成僅需兩秒,即完成運動仿真模型建立。相對于手工操作,節省了大量的時間,且避免了過程中的操作失誤。

圖3 Excel 表格程序操作界面示意圖
提出使用Excel-VBA 對CATIA 進行二次開發,一鍵完成運動仿真模型建立,并開發了相關軟件。以麥弗遜前懸架為實例,說明了CATIA 懸架運動仿真模型的搭建方法,并給出了關鍵程序段,實際驗證了程序的正確性及可行性,確定輸入硬點后,自動完成懸架運動仿真模型建立,避免了繁瑣重復的操作,大幅度提高了工作效率。本方法可簡單快捷地建立起汽車懸架參數化運動仿真模型,大幅提高工作效率,提升工作質量,并且對其他機械機構的運動仿真模型參數化建模也有參考和使用價值。