AMESim与ADAMS联合仿真
1.引言
AMESim(Advanced Modeling Environment for Simulation of engineering systems)软件是由法国IMAGINE公司于1995年推出的多学科复杂领域系统工程高级建模和仿真平台,该软件不要求用户具备完备的仿真专业知识,采用面向系统原理图建模的方法,便于工程技术人员掌握和使用。
机构动力学分析软件ADAMS (automatic dynamic of mechanical system)集建模、求解和可视化技术于一体,能有效分析和比较多种参数方案。
运用AMESim与ADAMS的联合仿真,可以有效的对设备的动态过程进行分析,根据交互分析产生的结果来评价设备的性能,为了更加真实的符合实际情况,理论分析用来完成检验产生的数值结果。
这种虚拟产品开发方法与得出的结论将对设计人员提供一定帮助。
通过AMESim/ADAMS之间的接口,有两种方式实现联合仿真:
1)将模型从一个平台中输入到另一个平台中,采用单一的积分器进行计算。
2)各个平台分别利用自己的积分器计算自己的模型,通过预先统一的通讯间隔进行信息交换。
2.软件环境要求:
首先AMESim软件需要4.2级以上版本; ADAMS需要2003级以上版本(含A/Control模块)。
其次必须要有Microsoft Visual C++ 编译器。
如果需要从ADAMS环境中使用接口,那么还强烈推荐Fortran编译器,这样可以将AMESim的模型编译成为ADAMS的子函数(Subroutine)。
该接口支持的操作系统包括Windows、Sun、SGI和IBM。
3.AMESim与ADAMS接口操作:
要成功使用接口,必须在Windows中设置环境变量%AME_ADAMS_HOME%,该环境变量的值为ADAMS的安装路径(例如C :\ADAMS2003。
注意在ADAMS 的安装路径中不能出现空格)。
如果需要从ADAMS环境中使用接口,那么还需要将dfvars.bat文件拷贝至AMESim的安装路径下。
3.1.在ADAMS中设置用于输入到AMESim的模型
在这种情况下,AMESim是主控软件,用户需要在AMESim中运行并控制ADAMS的仿真进程。
从ADAMS输出到AMESim有两种方式:
1)共同仿真模式,AMESim通知ADAMS在给定的时间间隔提供它的输出。
由ADAMS自己来求解它的模型。
2)连续模式,AMESim从ADAMS输入完整的系统模型并将所有的方程集成起来在AMESim中求解,此时ADAMS只起到函数评估器的作用。
不管上述哪种模式,在ADAMS中的设置过程是一样的。
用户只需要在AMESim中选择是共同仿真方式或是连续模式输出方式。
3.1.1:创建/检查需要交换的变量。
在这个步骤中,用户需要检查一些状态变量的定义,使用这些状态变量作为两个软件间的交换变量。
例如,如果用在AMESim建立的液压作动器模型来驱动ADAMS中建立的机构模型,那么这些变量就应该是力、位移以及速度等。
事实上, AMESim需要根据位移和速度计算得到力。
ADAMS中的输出变量,通常是速度和位移,主要是使用ADAMS内部函数来定义;如AZ()用于角度测量,WZ()用于转速,DM()用于位移。
注意变量的单位。
也就是说需要注意ADAMS中变量的单位和AMESim 中的单位之间是否一致,如果不一致而用户又不希望分别在AMESim和ADAMS中修改单位,那么可以在AMESim的模型中加入信号控制库中的增益模块来实现单位的协调。
ADAMS的输入变量,通常是力或者扭矩,以标准的单元使用,比如单个单元力/扭矩或者通用力(6个元件)。
在创建时,这些变量设置为0,因为它们的值是由其它软件(AMESim)计算得到。
在本例中,唯一的输入变量是扭矩,采用函数VARVAL来定义。
在ADAMS/View中,点击菜单Tools/Database Navigator…来定义azimuth_zctuator单元。
点击菜单Build/System Elements/State Variables/Modify…来定义状态变量control_torque。
当用户完成创建输入、输出变量后,下一步需要在ADAMS中定义接口了。
3.1.2:定义接口
利用上一步创建的变量,使用现存的Plant Input和Plant Output建立接口模型。
Plant Input:{control_torque}, 其中扭矩以单一单元扭矩使用,即VARVAL(control_touque)。
Plant Output : {rotor_velocity, azimuth_position}, 这些变量由ADAMS的函数计算得到。
3.1.3:输出系统模型
ADAMS中用于存储结果的文件名(File prefix);
在第二步中创建的“plant input”和“plant output”;
在控制包(Control package)中选择“EASY5_和_MATRIXx”;
输出类型,选择线性还是非线性;
如果用户希望让ADAMS在运行系统前计算初始稳态分析的话,则需要选择“yes”反之选“no”;如果需要的话,填入用户定义的库名字。
经过上述的步骤后, ADAMS将在用户的当前的工作路径中创建了3个文件:adams2amesim.inf…adm和…cmd。
用户只需要注意adams2amesim.inf 即可。
在此简单介绍一下这三个文件:
inf文件包括接口软件的基本信息:ADAMS的路径,ADAMS写入的文件名,求解器需要的信息,交换变量的定义,状态变量的数量。
adm文件包括ADAMS求解器进行仿真运算时需要读取的ADAMS系统的信息。
cmd文件包括所有AMDAMS/View需要的相关系统的信息。
到此为止,在ADAMS软件中的操作部分就完成了。
3.2 在AMESim中输入模型
用户已经在ADAMS中定义并生成了接口使用所需要的文件:.inf, .adm 以及.cmd文件。
然后将在AMESim中建立的相关部分的模型保存到上述三个文件所在的目录中。
3.2.1:打开AMESim中的Interface菜单,选择Import Adams model,如下图所示。
在随后打开的对话框中选择在ADAMS中生成的.inf文件,然后可以出现下列窗口:
在左边的窗口中,AMESim将会自动将在ADAMS中定义的输入输出变量填入到相关的空格中。
用户可以检查变量的名字并为该接口命名。
在右边的窗口中各项的含义如下:
Output prefix name : 是ADAMS输出文件的名字;
User executable : 必要时可以在此加入ADAMS模型中需要的用户自定义应用库的路径,它通常包括一些子函数。
Simulation mode:Continuous代表将ADAMS的模型全部输入到AMESim 中进行仿真, Discrete代表共仿真。
Animation mode : Interactive代表在仿真的同时,运行A/View进行动画处理。
Batch代表在仿真的时候不运行A/View,而是仿真结束后根据需要,用户自己运行A/View进行动画处理。
Output step size : 给出ADAMS写入结果文件时的时间间隔。
最后三项可以选择缺省设置。
3.2.2:从AMESim的Sketch模式进入AMESim的Parameter模式后,
点击接口方块,进入Co-simulation接口方块参数设置。
根据用户选择的接口方式不一样,需要设置的参数稍微有所区别。
其中值得注意的是communication interval,该参数的含义是共仿真时AMESim和ADAMS的通讯步长。
如果用户选择的是连续输出方式,那么需要设置的参数如下图所示:
3.2.3:进入AMESim的Run模式,运行AMESim的仿真。
如果用户选择的是共仿真方式,那么此时AMESim会启动A/Solver,两个软件同时计算。
3.3.在两个软件中分析仿真结果
仿真的结果可以在AMESim与ADAMS中均可以访问。
在AMESim中,点击接口模块,用户可以获得下列仿真结果:
在ADAMS中,用户可以将仿真结果加载到模型中。
打开ADAMS的File 菜单,选择Import后选择ADAMS/Solver Analysis(req, gra, res),选择在联合仿真时创建的三个文件中的一个并将输入相关联的模型名字,然后用户可以在ADAMS中进行动画演示以及通过A/Postprocessor来绘制相关变量的曲线
4.结论:
同时利用了AMESim和ADAMS的最佳功能,发挥了各个软件平台的优势分别建立各个子系统的模型并通过模型输出或者共仿真来实现联合仿真。
避免在不同平台之间重新建立模型,大大提高了建模过程中不同工作组之间的通讯和连续性。
采用AMESim和ADAMS之间的接口,可以容易的利用两个软件高效便捷的进行联合仿真。