/ h. w# E( l# t( i0 z% Z3 {' L) P$ E& X& g3 C# a! m
0 c, y% Q9 `. v) s- ~) A4 j! Z3 w' `
xunzai.com_基于ADAMS的列车系统参数化建模的二次开发研究.pdf
(799.19 KB, 下载次数: 10)
% m# u+ `2 B4 _3 F; ?4 L基于ADAMS 的列车系统参数化建模的二次开发研究 薛运锋1, 石明全2
7 @# {/ f6 A' N; C" l g W- d6 c( q4 o
, G( H0 @8 P# n* R) o (1 华东交通大学 机电工程学院, 江西南昌330013 ;2 成都电子科技大学 机电工程学院, 四川成都610054) 摘 要 近年来许多学者开始利用虚拟样机技术来研究列车系统的动态性能, 但是由于列车模型的复杂性, 所建模型都比实际模型简化了许多。鉴于此, 对铁道车辆模块ADAMS/ Rail 进行了二次开发研究 , 在该模块中添加了大量的车体、转向架、轨道的各种模板, 并且建立了列车系统参数化建模的对话框, 仿真研究的对话框, 块建模过程更加简单快捷, 所建模型更加完善。关键词 虚拟样机; 参数化建模; 二次开发; ADAMS/ Rail 中图分类号: U26012 ; U27012 文献标志码:A 评估 , 提高产品质量〔1〕对列车的整车运行性能提出了更高的要求。近年来国内许多学者开始利用虚拟样机技术来研究列车的动态性能。但是由于列车模型的复杂性, 所建模型一般只有1 节或两三节车辆, 不能充分反映整列车的运行性能。ADAMS/ RAIL 是美国MDI 公司开发的专用铁道车辆模块, 但是其建立列车模型的过程比较繁琐, 要通过模板建立、子系统建立、子系统装配3 个步骤才能完成建模。而且其本身所具有的列车模板不能直接用来研究我国各种列车的动态性能。本文正是基于这样的目的对其进行开发, 建立更加详细的且符合我国各种列车的模板, 开发建立列车整车模型的专用模块。从而达到建模更加方便操作, 模型更加完善。 1 ADAMS/ View 模块下的二次开发方法111 使用自定义函数 ADAMS 软件提供了方便的用户操作界面, 具有强大的分析求解功能, 具有很丰富的函数库。但某些情况下, 用户可能要以子程序或函数的形式来定义自己的力和驱动, 或者用来和其它程序进行数据交换, 此时就要用到软件的开放式结构和用户自定义函数。软件的函数有运行函数和设计函数两种类型, 设计函数用来创建模型和定义测量等, 运行函数在仿真过程中进行调用。其二次开发支持C 语言和FORTRAN 语言。 用户子程序编写好以后, 可以在DOS 命令窗口利用下面两条语句进行编译: df/ c/ automatic/ architecture : pn3/ Ob2/ MD xxx1f ! 编译Fortran 文件cl/ c/ G6/ Ox/ MD xxx1c ! 编译C 语言文件假设用户利用Fortran 语言编写好一子程序a1f, 在没有语法错误的情况下, 生成动态链接库的步骤如下: (1) 把用户子程序代码文件a1f 文件复制到C 盘根目录下(假设Windows 和ADAMS 都安装在C 盘), 在DOS 命令窗口输入如下命令: C : \ > df/ c/ automatic/ architecture :pn3/ Ob2/ MD a1f 命令执行后, 会在C 盘根目录下生成目标文件a1obj 。 1 (2) 执行ADAMS -Command , 在出现的窗口中输入cr-user, 按回车后会出现“Would you like to link in Debug mode ? (CR = n) or EXIT:”, 直接按回车略过。 (3) 在“Enter name of first ADAMS/ Solver object file (<CR> =none) , or EXIT: ”后输入a1obj , 按回车后出现: Enter name of next ADAMS/ Solver object file ( < CR > = none) , or EXIT: 按回车略过。 2 (4) 在“Enter name of your ADAMS/ Solver User -DLL or EXIT: ”后输入想要得到的动态连接库的文件名, 本例中输入a1dll , 回车后就开始生成该文件。112 使用文本文件 记事本是一个简单的文本文件编辑器应用程序。用户可以使用它完成一些简单的文字输入及文本编辑工作, 也可以编辑一些程序文件〔2〕。在记事本中按照ADAM 软件本身提供的命令语法编辑目的程序, 也可以直接将宏命令引入, 完成后以英文命名且以1cmd 为 薛运锋(1982 -) 男, 山西运城人, 硕士(收稿日期: 2005 -10 -09) 第3 期基于ADAMS 的列车系统参数化建模的二次开发研究31 后缀存储, 便可以顺利调入到ADAMS/ View 中执行。利用文本文件可以一次完成多个同类型零件的建模。例如创建从MAR1 到MAR10 的10 个markers , 并且X 坐标为9~0 。在记事本中编辑如下程序, 然后以1cmd 为后缀将其保存, 这样利用Import 对话框就可以将其导入到ADAMS/ View 创建出10 个markers 。for variable name = tempreal start value = 1 end value = marker create marker name = (eval (”MAR”/ / RTOI (tempreal) ) ) & location = (eval (tempreal -1) ) , 0 , 0 下面以ADAMS/ Rail 为开发平台, 建立一个针对列车系统的专用分析模块。本模块能以菜单和对话框为人机交互界面自动完成任意节列车系统的动力学建模, 并且根据输入的工况条件自动完成动力学分析。 end 和一个 环境的初始化文件113 使用菜单、对话框 该模块包含3 种程序文件夹, 分别是菜单(menus) 文件夹、对话框(dialog boxes) 文件夹和宏命令(macros) 文件夹。分别用来存储二次开发过程中的所有菜单文件、对话框文件和ADAMS 命令文件夹。此外建立一个用来储存模板、子系统、装配体以及各种属性文件的数据库文件夹(xyfmoban1cdb) 。另外还有一个利用记事本建立的模块启动文件( rail 建立一ADAMS/ View 的界面对象都是以层次结构存储在个adamrail 文件夹来存放所有的这些二次开发文件。模型数据库中〔3〕, 211 启动文件 利用该数 如图1 。最上层的界面对象是窗口和对话框。窗口通常是在用户工作时在屏幕上停留一段时间, 而对话框则是在输入数据或进行访问控制时才出现。通常情况下, 用户定制界面是指用户制作自己的菜单和对话框, 通常使用菜单编辑器和对话框编辑器来定制界面, 通过它们可以很快地访问并改变大多数界面对象和功能。如图1 所示
) B1 U) H4 Q" k- }0 ]: h, I! p: I
% K0 l- ]: f% W/ r! b# H$ W7 `
# B# V) }' R! @9 z$ I5 k+ o& X
4 E. E) b3 P6 d8 ~& p 图1 界面对象的层次结构2 列车系统参数化建模的模块开发 ADAMS/ Rail 作为ADAMS 软件的重要部分, 是美国MDI 公司、荷兰铁道组织(NS) 、Delf 工业大学以及德国ARGE CARE 公司合作开发的专用于研究铁路机车、车辆、列车和线路相互作用的动力学分析模块。利用它用户可以方便快速地建立完整的、参数化的机车车辆或列车模型以及各种子系统模型和各种线路模型, 并且根据分析目的不同而定义相应的轮轨接触模型。然后自动组装成用户所需要的系统模型并执行相应的分析。 该文件的主要作用是设定二次开发模块的运行路径, 启动ADAMS/ Rail , 并调用railmain1cmd 文件, 用于对ADAMS/ Rail 进行初始化设置。下面是启动文件rail start1bat 的主要代码: set MDI ADAMSRAIL = E : / adamsrail ! 设定二次 开发模块的运行路径set MDI CMD = mdi ! 启动ADAMS/ Rail cd %MDI adamsrail % copy railmain1cmd arailAS1cmd ! 调用railmain1cmd 文件212 初始化文件 该文件是用来初始化ADAMS 环境, 以及有关二次开发的初始化。即把所有参数化菜单及对话框调入用户的参数化设计环境。下面是一些主要代码: ifcond= (! db exists ( “1MDI1adamsrail dir”)) ! 定义路径变量 variable create variable = 1MDI1adamsrail dir string = (e2 val ( “e:”// “/ ”// “adamsrail”)) defaults units length = Meter angle = deg force = newton mass = kg time = sec ! 设置单位defaults units coordinate system type = cartesian orientation type = body313 设置坐标系end if condition = ( ! cdb db exists ( ( eval ( ( cdb alias2path (“canshuhua”)))))) ! 设定模板文件的来源 variable set variable name = 1ACAR1dboxes1dbox too dat add1errorFlag integer value = 0 acar toolkit database add & database name = “canshuhua”& 32 铁道机车车辆第26 卷 database path =“E : \ \ adamsrail \ \ xyfmoban1cdb”& error variable = 1ACAR1dboxes1dbox too dat add1errorFlag end ⋯⋯ ! 读入一系列建模的命令文件⋯⋯ ! 读入主菜单的菜单文件限于篇幅, 以上为部分程序。213 菜单文件及对话框文件 在该模块中, 主界面用户菜单是在ADAMS/ Rail 主界面菜单栏上由用户插入的Parametric design 用户菜单及相应下拉菜单。所有参数化菜单及对话框均在ADAMS 中完成。而且对话框里的程序均利用软件本身提供的语言来完成二次开发。见图2 和图3 。
, ?. H4 O \( w( c' z% y; |% g# c! q! b* P$ e% S' ^6 S
。。。。。。。。。。。。 % }4 {3 }- R0 e9 y4 H, K
3 L9 e2 ~/ c/ C' X7 X# X- a( i
3 K2 r% L1 y0 ~( d' g( @
4 G" s/ Z7 ^& J2 P; y6 a5 b+ A+ J* D
k0 W( i Y; e" [) w |