Simulink+AMESim+Adams联合仿真详细教程(三)Adams+matlab仿真案例制作
教程介绍
本教程适用于以simulink为主导,在simulink中搭建仿真流程,并调用AMESim和Adams完成计算的联合仿真项目。
第二节主要介绍Adams和matlab的联合仿真。
案例是一个小球,受重力向-Y,受力SForce向上。通过simulink控制SForce的大小,使小球保持平衡。
Adams联合案例制作
- 创建一个adams项目
搭建仿真模型如下:质量为5KG的球体,中心受向上的力,大小为0,测量球质心在Y方向的位移。提交求解后,球做自由落体运动。
Adams联仿参数设置
- 菜单栏-单元-系统单元中,点击X,创建一个系统变量,并命名为Input_F,点击确定。在树节点、单元、系统单元下会出现定义的状态变量
- 同样的方法创建另一个变量Output_DisY
- 将力与输入系统单元进行绑定。
双击SFORCE_1,在“函数”框中输入“VARVAL(Input_F)”,点击确定。这里的VARVAL函数用来获取指定参数的值。在此处还可以添加一些其他简单计算函数,例如弧度制角度制转换、单位换算等数学运算。 - 将位移与输出系统单元进行绑定
双击“Output_DisY”,在F(time,…)后面点击“…”,在函数编辑器中,将测量量插入其中,并确定。
- 创建输入输出数据单元
菜单栏-单元-数据单元,点击,创建一个输出数据单元。在变量名称处插入Output_DisY,如果有多个,用英文逗号隔开。不可重复填写。然后确定。
完成后在树节点、单元、数据单元下会出现定义的POUTPUT_1。
菜单栏-单元-数据单元,点击,创建一个输入数据单元。在变量名称处插入Input_F,如果有多个,用英文逗号隔开。不可重复填写。然后确定。
完成后在树节点、单元、数据单元下会出现定义的PINPUT_1。
- 保存项目文件,这里需要将bin文件在adams工作路径中保存一份作为备份,然后点击另存,在AMESim的项目文件夹中也保存一份bin文件。
- 输出adams仿真模块,在菜单栏-插件中点击AdamsControls,点击第一项“机械系统导出”
在弹出的界面中点击机械系统输入,在弹出的界面中双击刚才定义的输入数据单元,如下图:
然后点击机械系统输出,在弹出的界面中双击刚才定义的输出数据单元,如下图:
将目标软件改为matlab,其他不动,点击确定。
此时在树节点会出现:
同时,AMESim工作路径下会出现如下文件:
此时adams的工作已经完成,可以关掉adams。接下来在Matlab中创建联仿流程。
加课
-
输出参数可以为测量值,也可以为函数;
例如测量两个mark点的Y方向位移差可以使用DY函数。如果使用函数做输出,则不需要创建测量对象,在系统单元的输出中,直接填写相关函数即可。
-
系统单元中分为输入和输出两类;
输入参数绑定方法是,在使用该输入的对象中填写VARVAL()函数,而该输入系统变量的F(time,…)中的内容不用修改;
输出参数绑定的方法是,在该输出系统单元的F(time,…)中填写输出的对象。两者有较大差异,需要明确区分。
-
在数据单元中也分输入和输出两个数据单元。在填写其变量名称时,必须按照约定好的输入输出参数顺序填写。即第二节表格中的顺序。
Matlab仿真流程搭建
- 打开matlab,将工作路径切换到AMESim的项目路径下;
- 在matlab界面中点击打开,在AMESim的项目路径下选择adams生成的.m文件;
3.在打开的脚本中需要修改内容,直接点击运行,即可看到adams中定义的输入输出参数。
- 在matlab命令窗口输入“adams_sys”,会自动启动一个simulink项目。
其中的adams_sub模块即为联合仿真需要的simulink模块。 - 创建一个simulink项目,将adams_sub模块复制过来。
- 然后添加一些计算程序,根据自己的案例进行修改,第一次联仿建议越简单越好。
案例中,将小球的下落位移与0做差,然后乘200,再将落差求导乘2与前者相加,返回给adams。即加弹力项和阻尼项。注意正负号。
再给adams的输出添加一个示波器。
这时已经完成了matlab的参数设置,提交求解后,matlab会后台调用adams然后进行仿真计算。
##Adams前台运行设置
在前期模型调试阶段,可以将adams在前台运行,下面是设置方法
在simulink中双击adams_sub,再双击ADAMS Plant。
在打开的窗体中将Animationmode修改为Interavctive。然后点击计算。即可看到adams运行过程。
至此,simulink和Adams的联合仿真已经实现。
接下来是然后进入到最终的联合仿真。