最近在使用联合仿真,做下记录,后续继续补充,欢迎大家提问,指出问题。
简单的联合仿真基本流程
Adams:
1)添加 adams controls模块
工具(Tools)-----插件管理器(Plugin Manager)----Adams controls(选中)---ok
2)搭建Adams模型
3)确认系统的输入和输出
4)构建状态变量
具体操作:
1)创建状态变量
若该状态变量作为Adams输出到matlab的量,则在F(time,...)中选择要输出的量,若作为matlab输入到Adams的量,此处默认值0即可,但需要在adams接收matlab输入的量的部件上添加此状态量,如下:
若想给此力矩输入matlab的量,则在1中选择自定义的变量,这里浏览2选择Data Element并选择3,点击3上面的Assist按钮,进行变量选择,在输入框处右键浏览模型中的变量选中即可(记得要把之前的函数内容删除干净)。
函数的使用举例
AZ(**,**)返回环绕Z轴旋转的转角
WZ(**,**)返回环绕Z轴旋转的角速度
2)创建输入/输出变量
在Variable Name中选取关联的状态量
3)定义Adams/Controls 模块
- 该控制模块名称
- 生成的相关文件的前缀名
- 选取输入变量
- 选取输出变量
- 选择控制软件为Matlab
- 完成后生成的.m文件用来储存输入输出信息;.cmd和.adm文件在联合仿真分析时使用
-
Matlab:
- 设置matlab文件路径(添加子文件夹)中包含Adams生成的相关文件(即adams模型的工作路径)
-
命令行窗口输入Adams控制模块中设置的文件前缀名,返回输入输出的相关信息(用于检查输入输出是否正确)
命令行窗口输入who,显示文件中定义的变量,输入变量名,查看相关信息
- 命令行窗口输入adams_sys,生成simulink模块
- 新建model,将上一步生成的adams相关模块(adams_sub,只需要这一部分)复制到新model(不占用最原始的simulink模型,所以每次都新建)
- 打开adams_sub模块,双击MSC Sofeware模块
- 命名输出文件前缀(用单引号括起来)
- 设置动态显示为交互或者批处理模式
- 设置仿真分析模式为离散参数
- 设置adams与matlab的交互频率
- 设置完成后在simulink中进行控制系统模块的搭建和仿真参数的设置
- 最后,执行联合仿真。