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/ 你好,我最近接触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,也希望你能给我点意见。 我自己回复一下,主要是输入和输出的问题,大家注意一下。 你好,我最近接触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
这个问题比较常见,模型输出有问题也可以导致失败。如果你不嫌麻烦,请将你的问题讲清楚,找一个屏幕录像软件将你的操作过程录下来发给我,我帮你看看。 非常感谢! 照着做成功了,谢谢楼主 先收藏了,谢楼主分享 十分感谢!!
页:
[1]