Adams与matlab联合仿真的一些小技巧

Adams与simulink联合仿真之快速设置初值

去年到现在一直做的两个项目要用到Adams与simulnk联合仿真,虽然网上有很多这方面的教程,但都比较基本,要实现一些稍微复杂的要求就比较困难了,比如我需要改变模型的初始位姿,原来的方式是在adams中设置,再生成联合仿真需要的文件,再在matlab中进行调用和仿真,如果工况多的话这样就特别耗时耗力,经过长时间的摸索,终于找出了在matlab中直接改变Adams模型参数的方法,下面具体说明一下。
在这里插入图片描述

我这里的模型是一个小球通过弹簧连接在坐标原点,仿真开始后在重力作用下会振荡运动,模型的输出是小球的速度和位移,输入是作用在小球上的控制力。建立两个设计变量,分别为小球的初始速度和弹簧的刚度。由于建模到这一部分网上有很多教程,此处不再赘述。
在这里插入图片描述

然后在simulink中导入Adams模型并加上自己的控制模块,连成回路。这一步网上也有很多其他教程,所以不详细讲了。
再然后创建一个matlab脚本,如下所示:

clear
clc

simus_ctrl

cmd1= 'variable modify  variable_name = .test.y0  real_value = -0.1!';
cmd2='move translation part = ball c1=0.0 c2=-200 c3=0.0!';
cmd3 = 'variable modify variable_name = .test.K real_value = 0.1!';

ADAMS_init =[cmd1 cmd2 cmd3];

sim('ball_ctrl')

其中,第4行为Adams导出的文件名,运行以生成联合仿真需要的参数;
第6行设置小球的初速度y0,这是之前在Adams中建立的设计变量,并和小球的初速度关联起来了;
第7行设置小球的初始位置,c1,c2,c3为小球在惯性系里 的位置坐标;
第8行设置弹簧刚度K,这也是这是之前在Adams中建立的设计变量,并和弹簧刚度关联起来了。


注意:第6行到第8行每行后边都要加感叹号!!要不然只能执行第一句,然后会出错!


第10行是把上面的三条命令赋值给ADAMS_init,这个参数在simulink中Adams模块点开会看到,初值设置的命令就行通过它传给Adams模型的。
最后,第12行,运行simulink,进行仿真。
通过这样的方式,直接在matlab中就可以修改你关心的量,不用再去Adams中修改,然后导出文件,再导入matlab,大大提高了工作效率!

  • 1
    点赞
  • 1
    评论
  • 16
    收藏
  • 一键三连
    一键三连
  • 扫一扫,分享海报

©️2021 CSDN 皮肤主题: 游动-白 设计师:白松林 返回首页
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、C币套餐、付费专栏及课程。

余额充值