找回密码
 注册
Simdroid-非首页
查看: 477|回复: 3

[联合仿真] Matlab到Adams的多工况、快速协同仿真技术的实现(基于DLL库文件)

[复制链接]
发表于 2007-12-12 13:41:40 | 显示全部楼层 |阅读模式 来自 湖南长沙
通常,我们做机电液控制系统的联合仿真采用的是Adams到Matlab的仿真方法,即Adams机械模型输出到Matlab中。仿真过程中由于调用了两个求解器,仿真速度是不太理想的。
这里,我来探讨Matlab到Adams的多工况快速协同仿真技术。该方法求解只需要Adams/Solver,完全脱离Matlab环境,在一定意义上实现了分布式仿真。很好理解,即将Matlab的控制模型编译输出为DLL文件(我把它称为控制库文件);Adams引用该控制库文件,并转化为广义状态矩阵。然后即可在Adams中实现多机械模型的工况快速仿真。

仿真环境的搭建:a. WindowsXP操作系统(其他系统未测试);b.Adams2005版(其他版本未测试);c.Matlab7.01(其他版本未测试,python脚本支持6.0~7.01版本)均可;d.C/C++编译器(安装VC6.0即可)

1. 创建real-time实时文件;可采用Adams的MDI.BAT,调用Adams提供的Python脚本文件(process.py);
2. 创建机械模型并定义控制系统的输入输出,这和常规的联合仿真完全一致,在Adams中实现;
3. 调用步骤2输出模型的io口,设计控制系统。在Matlab中做;
4. 编译该控制模型得到控制库文件(DLL文件)。这一步骤中,需要用mex -setup指令将C/C++编译器安装到Matlab中,然后采用Matlab/Simulink/Real-Time Workshop代码生成平台得到。
5. Adams可以导入外部控制器,使用得到的控制库文件即可实现仿真!

附图1为Adams使用外部输入的控制器窗口;附图2为Adams将控制库文件转化为广义矩阵。

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有账号?注册

×

评分

1

查看全部评分

 楼主| 发表于 2007-12-14 14:47:36 | 显示全部楼层 来自 湖南长沙
Simdroid开发平台
大家可以来讨论下啊。。。。
回复 不支持

使用道具 举报

发表于 2007-12-20 10:28:05 | 显示全部楼层 来自 北京

求教

你所说的 第四步 具体是怎么实现的 我用real-time workshop ->build model 只能生成 .exe文件呀
能不能指点一下 生成dll文件的具体步骤!
回复 不支持

使用道具 举报

发表于 2008-1-23 13:20:43 | 显示全部楼层 来自 江苏南京

求教

我也是只出现.exe文件,找不到.dll,我用的是adams2005r2和matlab7.1,
我的电脑上没装C或者VC,不知这个是不是问题呢
回复 不支持

使用道具 举报

您需要登录后才可以回帖 登录 | 注册

本版积分规则

Archiver|小黑屋|联系我们|仿真互动网 ( 京ICP备15048925号-7 )

GMT+8, 2024-4-29 01:34 , Processed in 0.041045 second(s), 17 queries , Gzip On, MemCache On.

Powered by Discuz! X3.5 Licensed

© 2001-2024 Discuz! Team.

快速回复 返回顶部 返回列表