Adams与Matlab的机器人联合仿真

机器人仿真 同时被 2 个专栏收录
2 篇文章 1 订阅
2 篇文章 1 订阅

提示:建议本文与前文《ADAMS串联机器人仿真与轨迹规划》一起食用,效果更佳。


前言

本文主要介绍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的数据处理功能。
如有问题,欢迎评论区讨论~

  • 5
    点赞
  • 0
    评论
  • 14
    收藏
  • 一键三连
    一键三连
  • 扫一扫,分享海报

©️2021 CSDN 皮肤主题: 大白 设计师:CSDN官方博客 返回首页
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、C币套餐、付费专栏及课程。

余额充值