教程介绍
本教程适用于以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工作路径下会出现如下文件: 函数,而该输入系统变量的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的联合仿真已经实现。 接下来是然后进入到最终的联合仿真。