- 积分
- 3
- 注册时间
- 2006-10-29
- 仿真币
-
- 最后登录
- 1970-1-1
|
通常,我们做机电液控制系统的联合仿真采用的是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
查看全部评分
-
|