基于 Excel VBA 与 CATIA 的汽车悬架运动仿真模型参数化建模
2021-01-04王瑞波姚晓东
王瑞波 姚晓东
(浙江吉利新能源商用车集团有限公司)
悬架是汽车的重要组成部分,对汽车的行驶平顺性和操纵稳定性有着决定性影响。悬架系统的运动学分析不仅能展现各零件间的运动状态,而且还能评判悬架系统的优劣。要优化汽车设计就必须对悬架运动学变化规律进行针对性改善[1-2],所以在汽车设计过程中经常依据不同的悬架硬点参数建立众多的悬架运动学模型进行对比分析和优化验证。而悬架硬点参数等设计文件常使用Office 办公软件交流储存,未与CAD 类工程设计软件建立联系。基于上述问题,文章提出一种方法,在Office 办公软件和CAD 类工程设计软件之间建立桥梁,实现自动化建模,经实例验证,达到设计预期。
1 Excel VBA 与 CATIA 简介
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 的二次开发。
2 参数化悬架运动仿真模型
在汽车设计研发过程中,需要不断地对悬架零件结构、硬点进行调整优化,某些时候甚至要进行多方案对比验证。依据同种类型悬架拓扑结构相同或类似的特点,使用悬架系统硬点,应用参数化的方法搭建悬架运动仿真模型成为常用的运动仿真分析方法[13]。
2.1 建立数学模型
由于汽车悬架硬点坐标直接确定了四轮定位参数、转向梯形结构,直接影响了悬架的运动学特性、汽车的操纵稳定性和行驶平顺性,一直以来其都是汽车设计的重点。以汽车悬架的硬点和其他重要的安装固定点建立悬架系统数学模型,麦弗逊式前悬架,如图1 所示。
图1 汽车麦弗逊悬架数学模型简化示意图
2.2 定义运动副
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 一种麦弗逊式前悬架的运动副定义
3 自动建模功能的实现
在编辑运行程序以前,需要在VBAProject 引用对话框中引用所有的以“CATIA”开头的Object Library 类库文件。引用后不但能使用VBA 代码的自动完成功能,而且还能在对象浏览器查看CATIA 的所有对象及其使用方法和属性[16]。
3.1 在VBA 中访问CATIA
可用如下代码,通过COM 接口访问CATIA,并在初始化时新建产品文件:
需要注意的是,CATIA Automation 中 Product、Part-Document、part、Reference 等数据类型不能定义成为数组的数据类型,须以Variant 变体类型定义变量,尤其是函数中作为传入参数的数组必须定义为Variant 变体类型,否则程序会出错。
3.2 三维模型建模
在已经建立好的Product 中,依据CATIA 文档结构,通过API(Application Program Interface)逐级建立和获取各层级对象。CATIA 中Application 对象的层级关系,与Product 文档结构树的对照关系,如图2 所示。零件建立完成后,再依据EXCEL 表格中的硬点坐标数据建立点、线、面等模型,如此产品文档中所有组件均使用整车坐标系,免去了装配过程中繁琐的坐标系转换。
图2 Application 对象与Product 结构树的对照关系界面示意图
3.3 定义运动学模型
和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 关系表
3.4 关键代码分析
在CATIA 初始化并新建产品文件后,逐级建立和获取Product、Documents、Part 等各层级对象。在零件几何体Body 内创建点、线、面等非基于草图的特征元素需要启用混合设计(HybridShapeFactory)模式,否则需将其建立在几何图形集HybridBody 内。
读取Excel 表单元格内的硬点坐标,并在各Part 零件的‘零件几何体’内生成点、线、面等特征元素。
为在CATIA 程序界面看到三维图形,所有特征模型建立完成后,必须激活所有端节点并启动设计模式。
新建机械装置Mechanism,并固定车架组件oRoot-Product (1),再提取DMU 用到的所有元素的完整路径名,建立提取的路径名的Reference。
对于麦弗逊悬架的运动副,依据表1 和表2,AddJoint()函数的传入参数用数组需要两个元素或四个元素,分别定义拥有2 个一维数组就能满足编程要求。
按需求添加运动副和命令既能完成模型建立,以下代码列举了定义车架和转向齿条之间的运动副、驱动命令的代码。
4 实例验证
在Excel 表格中输入相关的硬点坐标数据,如图3所示。在Excel 2013 和CATIA V5-6R2015 环境下实测,点击“建立DMU”命令按钮后,程序执行完成仅需两秒,即完成运动仿真模型建立。相对于手工操作,节省了大量的时间,且避免了过程中的操作失误。
图3 Excel 表格程序操作界面示意图
5 结论
提出使用Excel-VBA 对CATIA 进行二次开发,一键完成运动仿真模型建立,并开发了相关软件。以麦弗逊前悬架为实例,说明了CATIA 悬架运动仿真模型的搭建方法,并给出了关键程序段,实际验证了程序的正确性及可行性,确定输入硬点后,自动完成悬架运动仿真模型建立,避免了繁琐重复的操作,大幅度提高了工作效率。本方法可简单快捷地建立起汽车悬架参数化运动仿真模型,大幅提高工作效率,提升工作质量,并且对其他机械机构的运动仿真模型参数化建模也有参考和使用价值。