刘晟昱 付伟 张维 陈志刚 唐宁
(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 产品的结构和性能优化奠定必要的基础。