上课睡觉 发表于 2014-3-13 15:05

ADAMS与Matlab联合仿真方式的选择问题

资料中看到ADAMS与Matlab联合仿真有两种方式
一种是将机械系统导入Matlab的控制系统,利用Matlab进行仿真
另一种是将控制系统导入ADAMS中,利用ADAMS进行仿真

请问这两种方式各有什么优缺点,应该怎么选择?

牛小贱 发表于 2014-3-14 11:26

(1)当控制系统复杂时,就将机械系统导入Matlab的控制系统,利用Matlab进行仿真:Matlab控制功能强大;(2)当控制简单时,如只有PID控制时,利用自身的控制模块就可以完成。这时,就可以将控制系统导入ADAMS中,利用ADAMS进行仿真。

haibao 发表于 2014-4-2 17:21

当将Simulink的控制模型以DLL方式导入Adams中后,可利用Adams的优化功能对控制系统关键参数进行优化分析。

haibao 发表于 2014-4-16 18:09

haibao 发表于 2014-4-2 17:21
当将Simulink的控制模型以DLL方式导入Adams中后,可利用Adams的优化功能对控制系统关键参数进行优化分析。

那就用最简单的实例说明,比如弹簧振子模型中可将弹簧力用Matlab/Simulink进行计算,实时输入到Adams中,这个时候利用Matlab的RealTimeWorkshop功能将函数中的刚度进行参数化,这样在导入DLL到Adams中时,该刚度参数就可以像Adams自己创建的参数一样进行优化设计等分析工作。具体步骤:
1 利用Adams/Controls 输出对应的.m文件,并在Matlab中执行,建立联系;
2 在Matlab命令窗口中执行setup_rtw_for_adams命令;
3 创建描述弹簧的MDL文件在Matlab中(比如F=k*x+c*dx);
4 执行setio命令在Matlab命令窗口中,将输入/出端口与前面的MDl 文件融合为一个MDL文件;
5 在Matlab主窗口及MDl文件中修改,以创建参数变量,比如刚度系数;
6 在RTW工具中的Inline parameters中配置好上述参数,即可点击Build生成包含参数变量的DLL控制文件;
7 在Adams中导入该DLl即可。

haibao 发表于 2014-4-16 18:09

haibao 发表于 2014-4-16 18:09
那就用最简单的实例说明,比如弹簧振子模型中可将弹簧力用Matlab/Simulink进行计算,实时输入到Adams中, ...

具体的实例在网上搜以下Adams联合仿真的内容,第三个就是。
页: [1]
查看完整版本: ADAMS与Matlab联合仿真方式的选择问题