低压断路器的建模仿真技术
上QQ阅读APP看书,第一时间看更新

2.7 ADAMS软件的二次开发技术

2.7.1 用户界面的开发

为使用户方便地利用模型得到动力学的分析结果,在ADAMS软件界面中编制一个MC- CB专用模块如图2-50所示。将修改原始参数到模拟计算的过程都以对话框形式显示出来,用户只需根据需要选中菜单项,执行目标任务。

978-7-111-58417-9-Chapter02-73.jpg

图2-50 二次开发的ADAMS软件用户界面

ADAMS/View软件具有很强的用户化设计功能,可以根据需要定制用户界面和设计应用程序,来模拟设计环境和自动完成设计分析过程。界面对象如窗口、菜单与对话框都是AD-AMS/View软件的模型数据,存储在一个名为GUI的数据库中。定制界面对象的语法结构的规则简单、易于修改。以菜单设计为例,打开菜单编辑器有两种方法,一种是选择菜单栏Tools>Menu>Modify;另一种是打开当前程序的*.mnu文件。在编辑器需修改或添加的位置上输入命令文本,即可完成菜单的定制。例如菜单按钮可以出现在主菜单、下拉菜单或子菜单中,其语法结构如下:

BUTTON n LABEL::ACCELERATOR

NAME=name

HELP=help

CMD=command

其中n2;LABEL为出现的按钮名称;ACCELERATOR定义键盘快捷命令;name为数据模型中定义的名称;help是对命令的解释性文本;command是按钮所执行的命令。

单击图2-50中程序界面中的下拉菜单按钮“Modify Axis Position”或“Modify Part Mass”,可出现修改机构关键轴位置或修改连杆质量的对话框,如图2-51所示。用户修改编辑框内的参数值后,单击Apply按钮,断路器操作机构会自动更新,对话框上的按钮“Start”、“Pause”和“Stop”用于控制仿真过程的开始、暂停和终止。

978-7-111-58417-9-Chapter02-74.jpg

图2-51 修改机构连杆质量的对话框

2.7.2 依靠接口程序的二次开发

ADAMS软件是一个开放的体系。ADAMS/Solver软件具有强大的二次开发功能,支持C++、Fortran语言,可按用户需求定制求解器,极大地满足用户的不同需要。ADAMS软件为用户提供两种子程序,它们是用户自定义子程序(User-written Subroutine)和功能子程序(Utility Subroutine),用户可以根据需要选用C或Fortran语言编写用户自定义子程序(Sub-routine),通过编译同ADAMS/View软件连接。ADAMS软件提供了多种自定义子程序的源代码模板,用户可以根据需要进行选用并按自身实际情况进行编写,如电动斥力计算程序sforce.f就是在ADAMS软件提供的SFOSUB自定义子程序模板上用Fortran语言编开发的。值得指出的是,将自定义过程模型连接到ADAMS软件中不会影响样机的计算效率和速度。

现以本章第2.3节电动斥力的计算为例来说明取名为sforce.f的编写。SFOSUB自定义子程序是用于计算力的一项子程序,它能自动由ADAMS软件导入第k步计算的时间tk和转角ak值到子程序中来,后者是通过在自定义程序中引用功能子程序SYSFUC来获得的,自编程序中首先由式2-9计算tk瞬间的电流ik,在已知电流ik和转角ak条件下,由电磁场计算获得的数据网格F=fai),按式2-10二元三点插值求得tk时的洛伦兹力FL,再按式2-1求得霍姆力,两个力加起来就得到总的作用在动触头上的电动斥力,但必须注意,当主轴转角大于触头超程时,动静触头分离,此后霍姆力消失,作用在动触头上电动斥力仅为洛伦兹力。由第k步运算获得的电动斥力输回到ADAMS软件中就可进行第k+1步的动力学仿真,直至机构运动结束。这样就把自定义的电动斥力子程序和ADAMS软件联系起来进行计入电动斥力的机构动力学仿真。图2-52为对应的流程图。

当用Fortran语言编好描述该过程的代码sforce.f,然后通过编译,使其生成动态数据库文件sforce.dll,然后用下述步骤导入至ADAMS软件中。

1)首先在Setting菜单下打开Solver Executable菜单,如图2-53所示。

978-7-111-58417-9-Chapter02-75.jpg

图2-52 子程序SFOCUB的流程图

978-7-111-58417-9-Chapter02-76.jpg

图2-53 菜单选择

2)打开Solver Executable菜单后,会出现图2-54所示的对话框。

978-7-111-58417-9-Chapter02-77.jpg

图2-54 对话框

注意,在Executable中,一定要选择Internal,以保证使用的是内部求解器。

然后,在Slover Library中输入sforce.dll文件所在的路径,完成这一链接后还要利用施加力的对话框,对作用在动触头上的电动斥力作专门的定义,包括定义力的方向为作用于一个物体,并随物体运动,即在项Direction输入On one Body,Moving with Body;指出作用力的对象,这个例子是动导电杆,即项Body输入Part名称;力的定义方法为自定义子程序,即在项Define Using输入Subroutine;用户参数,即项User Parameters需输入几何体上确定转角的2至3个MARKER号,具体可参考ADAMS软件系统中用户自定义子程序SFOSUB和功能子程序SYSFUC的有关规定。这样用户自编子程序SFORCE就和ADAMS软件主程序连接起来,就可进行计及动触头上电动斥力的操作机构多体动力学仿真。