前言

本文主要介绍Matlab Simulink与ADAMS实现联合仿真,实现两个软件间的参数传递。

一、本文介绍

本文以六自由度工业机器人为例,介绍ADAMS与Matlab的联合仿真功能,通过MatlabSimulink向ADAMS中的机器人模型输入控制参数(期望轨迹),在ADAMS中实现仿真功能,并将ADAMS仿真结果数据(关节角度值)输出到Matlab中。
在这里插入图片描述

二、具体步骤

1.建立函数变量

打开需要进行仿真的ADAMS模型,本文使用的是六自由度工业机器人模型,建模过程可参考上一篇文章《ADAMS串联机器人仿真与轨迹规划》,在上一文中我们直接在ADAMS中给出了机器人的末端轨迹,在这里我们只在ADAMS中建立机器人的运动学关系,轨迹参数由MATLAB中输入。

在ADAMS中建立变量,用于与MATLAB进行数据交互;
点击图中所示x按钮,然后进行变量设置:
在这里插入图片描述

Name栏定义变量名
Definition选择Run-Time Expression
F(time)栏设置时,如果你希望该参数是MATLAB向ADAMS传递驱动值,则设置为0;如果是ADAMS向MATLAB传递的数据反馈值,则设置为相应函数。

如下图Tran_Y为MATLAB向ADAMS传递的末端轨迹参数(Y向移动量)
在这里插入图片描述

如下图T1变量为仿真过程中移动关节的角度变换量,该值为ADAMS向MATLAB的反馈值
在这里插入图片描述

在本文中建立机器人末端轨迹的两个参数变量,Tran_Y(机器人末端轨迹的长度)和Tran_Z(机器人末端轨迹的高度),作为MATLAB向ADAMS的驱动值;
建立两个关节数据变量,T1(机器人移动关节移动量)和R1(机器人第一个旋转角度值),作为ADAMS向MATLAB的数据反馈值;

在这里插入图片描述

2 .在ADAMS中设置驱动函数

接下来,将定义的驱动函数变量Tran_Y和Tran_Z添加到Motion中

在这里插入图片描述
修改Y向移动的函数表达式,将原先设置的固定数值更改为
VARVAL(.MODEL_1_20210521.Tran_Y),完整表达式如下:

STEP( time , 5 , 0 , 10 , -VARVAL(.MODEL_1_20210521.Tran_Y) )+STEP( time , 15 , 0 , 20 , VARVAL(.MODEL_1_20210521.Tran_Y) )

Z向表达式按同样方式修改。

3.ADAMS插件设置

点击Plugins标签下的Controls按钮,然后选择Plant Export

在这里插入图片描述
进行如下设置:
输入参数右键选择Tran_Y和Tran_Z;
输出参数右键选择R1和Z1;

软件选择MATLAB,求解器选择C++
如无特殊需求,其余按照默认设置即可
在这里插入图片描述

最后点击OK,在工作文件夹内便自动生成了一系列以模型名为开头的文件。

4 MATLAB Simulink设置

打开MATLAB,并进入ADAMS生成文件的文件夹,右键点击运行上一步中生成的.m文件

在这里插入图片描述
出现如下信息,核对驱动变量与反馈变量是否正确;
在这里插入图片描述

然后输入adams_sys,进入simulink界面
在这里插入图片描述

进入adams_sub,设置MSC.Software
在这里插入图片描述

在这里插入图片描述
仿真方式可以选择interactive(实时交换)或者batch(仅在matlab中运行),两者均可

simulation mode可以选择连续的或者离散的,本文选择离散的(笔者曾尝试选择连续的,但是没成功,每次都算崩,可能是因为求解器选择不合适……)

然后设置两个输入参数值均为200,如下图所示:

在这里插入图片描述

5 仿真实现与数据交互

点击仿真按钮,最终实现了MATLAB与ADAMS的实时交互计算
在这里插入图片描述

输出关节角度曲线图,如下图所示:
在这里插入图片描述
在这里插入图片描述

三、 总结

本文实现了六自由度机器人的ADAMS与Matlab的联合仿真,实现了两个软件平台的数据交互,充分利用ADAMS的动力学、运动学仿真功能和Matlab的数据处理功能。
如有问题,欢迎评论区讨论~

源文件在这里哦
https://download.csdn.net/download/yuyu_94/85072408