概述
文章目录
- 前言
- 一、本文介绍
- 二、具体步骤
- 1.建立函数变量
- 2 .在ADAMS中设置驱动函数
- 3.ADAMS插件设置
- 4 MATLAB Simulink设置
- 5 仿真实现与数据交互
- 三、 总结
前言
本文主要介绍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的数据处理功能。
如有问题,欢迎评论区讨论~
看到很多同学要源文件,我放到评论区置顶啦~
最后
以上就是时尚羊为你收集整理的Adams与Matlab的机器人联合仿真【附源文件】前言一、本文介绍二、具体步骤三、 总结的全部内容,希望文章能够帮你解决Adams与Matlab的机器人联合仿真【附源文件】前言一、本文介绍二、具体步骤三、 总结所遇到的程序开发问题。
如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。
发表评论 取消回复