john152 发表于 2010-5-5 20:53:03

ADAMS/Rail与Matlab/Simulink联合仿真设置方法

本人用ADAMS2005r2和Matlab7.1版本,其他版本未尝试
下面的步骤是在模板中建立相应状态变量的基础上进行的。
1.首先将adams的路径改为matlab下的work工作目录;file/select directory
2.进行only-files的动力学仿真,比如analysis name设置为test1car(这里的仿真时间和步长可以设置得非常小,比如0.01s和1个步长)
3.在设置好input和output后,用controls/plant export将模型输出,比如file prefix设置为semiactive1s
4.再进行一次only files的动力学仿真,设置与前一次相同;
5.这时,你将在work文件夹下找到6个文件,如:
test1car_dyn.acf
test1car_dyn.adm
test1car_dyn.log
test1car_dyn.nam
semiactive1s.adm
semiactive1s.m
6.用记事本把 test1car_dyn.acf 打开,将前4行和后3行删掉,剩余内容为:
array/3, numbers = 2, 1, 50.000000
simulate/static
control/function=user(917,6,50.000000)
control/function=user(300,50.000000,328)
7.用记事本打开semiactive1s.m,将ADAMS_prefix = 'semiactive1s' 项修改为:
ADAMS_prefix = 'test1car_dyn' ;
再将ADAMS_init = '' 项修改为:
ADAMS_init = 'file/command=test1car_dyn.acf' ;
8.打开matlab,在命令窗口输入:semiactive1s,按回车,将显示出所有的输入和输出变量
再输入命令:adams_sys,后回车,将出现adams模型窗口,把adams_sub拷贝到新的simulink窗口,关掉adams_sys,注意:不要保存修改(弹出save *** before closing?时选择NO),不然下次会出错
9.建立控制系统,进行仿真即可

仿真时易出现各种错误,有很多是adams与matlab信息交换不畅造成的,一般解决方法是:
1.关掉防火墙或杀毒软件,比如卡巴斯基开着的话,仿真总是失败
2.彻底关掉matlab,重新执行各种操作




——————————————————————————————
未尽事宜,欢迎交流
http://blog.163.com/liuyq125@126/

java125 发表于 2010-10-27 16:14:46

你好,我最近接触ADAMS/rail,在做和simulink的联合仿真,我按照你发的帖子《ADAMS/Rail与Matlab/Simulink联合仿真设置方法》分别使用如下版本做联合仿真。
(1)ADAMS/Rail2005r2+matlab2007b。
(2)ADAMS/Rail2005r2+matlab7.1。
(3)ADAMS/Rail2005r2+matlab7.0。
机车仿真模型选用的是Erri_wagon,进行的是Dynamic analysis,file_only仿真,参数设置和ADAMS/Rail帮助文档中的相同。Control导出的时候发现可以使用的变量很少,我选择了ERRI_Wagon.testrig.longvel作为输入,
RAIL.forces.Krettek_airspring.vz为输出。仿真时还关闭了相应的杀毒软件和防火墙,并且将ADAMS_Plant.dll,ADAMS_server.py,decode.m放置到工作目录上(把ADAMS工作目录和matlab的工作设置为相同),结果出现相同的错误:
Error reported by S-function 'adams_plant' in 'model/adams_sub/ADAMS Plant/S-Function':error in startup

在这里,非常期待能够得到你的帮助,已经连了好几天了,一直这个错误,非常苦恼。
现在也在考虑改用Simpack,也希望你能给我点意见。

java125 发表于 2010-11-1 16:31:41

我自己回复一下,主要是输入和输出的问题,大家注意一下。

john152 发表于 2010-11-1 20:24:17

你好,我最近接触ADAMS/rail,在做和simulink的联合仿真,我按照你发的帖子《ADAMS/Rail与Matlab/Simulink联合仿真设置方法》分别使用如下版本做联合仿真。
(1)ADAMS/Rail2005r2+matlab2007b。
(2)ADAMS/Rail20 ...
java125 发表于 2010-10-27 16:14 http://forum.simwe.com/images/common/back.gif

“现可以使用的变量比较少”是什么意思?你将振动台的纵向速度作为输入,将空气弹簧的z向速度作为输出是为了什么?
你的控制系统目的是什么?怎么不自己建状态变量作为输入和输出呢?
Error reported by S-function 'adams_plant' in 'model/adams_sub/ADAMS Plant/S-Function':error in startup
这个问题比较常见,模型输出有问题也可以导致失败。如果你不嫌麻烦,请将你的问题讲清楚,找一个屏幕录像软件将你的操作过程录下来发给我,我帮你看看。

java125 发表于 2010-12-2 11:33:57

非常感谢!

xiaoshuang9418 发表于 2011-2-24 14:13:31

照着做成功了,谢谢楼主

muzi13 发表于 2015-4-22 16:46:34

先收藏了,谢楼主分享

杨过的雕 发表于 2015-6-9 16:23:30

十分感谢!!
页: [1]
查看完整版本: ADAMS/Rail与Matlab/Simulink联合仿真设置方法