3. SimMechanics/Multibody二连杆平面臂仿真

2023-10-09 09:30

本文主要是介绍3. SimMechanics/Multibody二连杆平面臂仿真,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

目录

1. 引言

2. 搭建仿真模型

3. 仿真结果

4. 总结


1. 引言

        前面两篇文章分别介绍了Multibody的基本使用方法以及模型驱动和信号测量的基础。接下来我们就可以搭建一些典型机构的仿真模型了。这篇文章主要介绍利用Multibody搭建二连杆平面臂的仿真模型。利用Multibody可以非常方便地实现机器人运动学及动力学相关验证工作。

2. 搭建仿真模型

        首先我们复用1. SimMechanics/Multibody入门(以下简称入门文章)这篇文章的成果先把Multibody的基本框架搭建出来。打开simulink创建一个Simscape --> Multibody的模板项目(Matlab 2018b)。接下来我们创建一个圆柱形的连杆,由于存在额外的旋转变换,因此圆柱形连杆的创建相较于入门文章显得稍微复杂一些,这里展开介绍一下,首先在框图中添加一个Solid模块,双击该模块进入属性编辑菜单,进行如下配置。

Solid模块配置
参数参数值单位
Geometry --> ShapeCylinder
Geometry --> Radiusrm
Geometry --> Lengthlm
Graphic -->Visual Properties --> Colorrgb
Inertia --> Densityrho默认
Frames --> Show Port R取消勾选

在Frames属性下的New Frames处点击创建一个新的坐标系。坐标系配置如下图1所示。

 图1 刚体上新建F1坐标系

点击Save保存这个坐标系,再次点击Save保存Solid配置,这样Solid模块的R端口被隐藏,F1端口显示在模块上。r和l等为待定义参数,请暂时忽略掉模块配置的报错。Solid配置完成后如下图2所示。

图2 Solid模块配置

 接下来添加两个Rigid Transform模块,并分别将B端与上述Solid模块F1端连接。这两个坐标系将分别固定在Solid模块的两个端点上。如下图3所示。

 图3 添加Rigid Transform模块

Rigid Transform模块的属性配置如下图4所示。

 图4 Rigid Transform配置

Rigid Transform1模块的属性配置如下图5所示。

图5 Rigid Transform1配置 

接下来仿照入门文章的介绍,利用两个Rigid Transform模块和Solid模块创建一个子系统并添加Mask,只不过这里的参数变成了圆柱体的半径r,长度l,密度rho等。这个子系统就是连杆了。因为我们要仿真的是一个二连杆,所以将子系统复制一份作为连杆2。

        接下来添加两个Revolute Joint,引出关节位置控制端以及所有的信号测量端,添加两个关节的正弦激励信号(具体方式可以参考本专栏前面两篇文章),各个模块连接起来如下图6所示。

图6 二连杆平面臂仿真模型

link1参数如下图7所示

图7 link1配置

link2参数如下图8所示

图8 link2配置

Sine Wave配置如下图9所示

图9 Sine Wave配置 

Sine Wave1配置如下图10所示

图10 Sine Wave1配置

S-PS1和S-PS2配置相同,如下图11所示

 

 图11 S-PS1和S-PS2配置

Mechanism Configuration配置如下图12所示

图12 Mechanism Configuration配置

求解器依然选择ode15s (stiff/NDF)。以上配置在入门文章中均有相应的提及,这里不再赘述。

3. 仿真结果

        完成以上一系列配置之后点击simulink窗口下的开始仿真即可显示3D模型仿真窗口,如下图13所示。

 图13 3D可视化界面

二连杆平面臂的仿真结果如下图14所示。

 图14 二连杆平面臂仿真效果

二连杆平面臂模型已经上传到github:https://github.com/hitgavin/simmechanics/tree/master/two_link_planner_robot,感兴趣的读者可以下载看一下。

4. 总结

        这篇文章主要介绍了SimMechanics搭建二连杆平面臂仿真环境的过程,这个仿真模型可以用来做很多的事情,感兴趣的可以阅读一下机器人动力学专栏下二连杆平面臂动力学验证相关文章。

        由于个人能力有限,所述内容难免存在疏漏,欢迎指出,欢迎讨论。

这篇关于3. SimMechanics/Multibody二连杆平面臂仿真的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/171903

相关文章

基于UE5和ROS2的激光雷达+深度RGBD相机小车的仿真指南(五):Blender锥桶建模

前言 本系列教程旨在使用UE5配置一个具备激光雷达+深度摄像机的仿真小车,并使用通过跨平台的方式进行ROS2和UE5仿真的通讯,达到小车自主导航的目的。本教程默认有ROS2导航及其gazebo仿真相关方面基础,Nav2相关的学习教程可以参考本人的其他博客Nav2代价地图实现和原理–Nav2源码解读之CostMap2D(上)-CSDN博客往期教程: 第一期:基于UE5和ROS2的激光雷达+深度RG

perl的学习记录——仿真regression

1 记录的背景 之前只知道有这个强大语言的存在,但一直侥幸自己应该不会用到它,所以一直没有开始学习。然而人生这么长,怎就确定自己不会用到呢? 这次要搭建一个可以自动跑完所有case并且打印每个case的pass信息到指定的文件中。从而减轻手动跑仿真,手动查看log信息的重复无效低质量的操作。下面简单记录下自己的思路并贴出自己的代码,方便自己以后使用和修正。 2 思路整理 作为一个IC d

文章解读与仿真程序复现思路——电力自动化设备EI\CSCD\北大核心《考虑燃料电池和电解槽虚拟惯量支撑的电力系统优化调度方法》

本专栏栏目提供文章与程序复现思路,具体已有的论文与论文源程序可翻阅本博主免费的专栏栏目《论文与完整程序》 论文与完整源程序_电网论文源程序的博客-CSDN博客https://blog.csdn.net/liang674027206/category_12531414.html 电网论文源程序-CSDN博客电网论文源程序擅长文章解读,论文与完整源程序,等方面的知识,电网论文源程序关注python

求空间直线与平面的交点

若直线不与平面平行,将存在交点。如下图所示,已知直线L过点m(m1,m2,m3),且方向向量为VL(v1,v2,v3),平面P过点n(n1,n2,n3),且法线方向向量为VP(vp1,vp2,vp3),求得直线与平面的交点O的坐标(x,y,z): 将直线方程写成参数方程形式,即有: x = m1+ v1 * t y = m2+ v2 * t

高斯平面直角坐标讲解,以及地理坐标转换高斯平面直角坐标

高斯平面直角坐标系(Gauss-Krüger 坐标系)是基于 高斯-克吕格投影 的一种常见的平面坐标系统,主要用于地理信息系统 (GIS)、测绘和工程等领域。该坐标系将地球表面的经纬度(地理坐标)通过一种投影方式转换为平面直角坐标,以便在二维平面中进行距离、面积和角度的计算。 一 投影原理 高斯平面直角坐标系使用的是 高斯-克吕格投影(Gauss-Krüger Projection),这是 横

Matlab simulink建模与仿真 第十章(模型扩展功能库)

参考视频:simulink1.1simulink简介_哔哩哔哩_bilibili 一、模型扩展功能库中的模块概览         注:下面不会对Block Support Table模块进行介绍。 二、基于触发的和基于时间的线性化模块 1、Trigger-Based Linearization基于触发的线性化模块 (1)每次当模块受到触发时,都会调用linmod或者dlinmod函数

AMEsim和Simulink联合仿真生成新的.mexw64液压模型文件

AMEsim和Simulink进行联合仿真非常重要的就是AMEsim经过第四阶段Simulation会在相同文件下面生成一个与AMEsim液压模型相同名字的.mexw64文件,在Simulink进行联合仿真的S-Function需要找的也就是这个文件,只不过输入的时候除了液压模型名字之外,后面有一个短下划线。 简而言之: AMEsim和Simulink联合仿真, 首先是需要AMEsim软

【自动驾驶】控制算法(八)横向控制Ⅱ | Carsim 与 Matlab 联合仿真基本操作

写在前面: 🌟 欢迎光临 清流君 的博客小天地,这里是我分享技术与心得的温馨角落。📝 个人主页:清流君_CSDN博客,期待与您一同探索 移动机器人 领域的无限可能。 🔍 本文系 清流君 原创之作,荣幸在CSDN首发🐒 若您觉得内容有价值,还请评论告知一声,以便更多人受益。 转载请注明出处,尊重原创,从我做起。 👍 点赞、评论、收藏,三连走一波,让我们一起养成好习惯😜 在这里,您将

Matlab/Simulink和AMEsim联合仿真(以PSO-PID算法为例)

目录 安装软件和配置环境变量 Matlab/Simulink和AMEsim联合仿真详细流程 非常重要的一点 Simulink模型和AMEsim模型用S-Function建立连接 从AMEsim软件打开Matlab Matlab里的设置 Matlab的.m文件修改(对于PSO-PID算法) 运行程序 我印象中好像做过Matlab/Simulink和AMEsim联合仿真的分享似的

n条直线最多能划分出多少个平面?

N条直线,两两相交,其交点各不不同,则产生的交点数目为N个数中取2个数的组合; 同时,也只有这种情况下(两两相交,也交点不同),分割的平面数最多, 数目为: 2 + (N-1)(N+2)/2.  这里求最少平面数没有意义,因为最少平面数就是N+1, 即N条直线两两平行的时候,分割的平面最少。 举例: 1条直线分割平面数最多为2; a1 = 2 2条直线分割平面数最多为4;