本文主要是介绍3. SimMechanics/Multibody二连杆平面臂仿真,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!
目录
1. 引言
2. 搭建仿真模型
3. 仿真结果
4. 总结
1. 引言
前面两篇文章分别介绍了Multibody的基本使用方法以及模型驱动和信号测量的基础。接下来我们就可以搭建一些典型机构的仿真模型了。这篇文章主要介绍利用Multibody搭建二连杆平面臂的仿真模型。利用Multibody可以非常方便地实现机器人运动学及动力学相关验证工作。
2. 搭建仿真模型
首先我们复用1. SimMechanics/Multibody入门(以下简称入门文章)这篇文章的成果先把Multibody的基本框架搭建出来。打开simulink创建一个Simscape --> Multibody的模板项目(Matlab 2018b)。接下来我们创建一个圆柱形的连杆,由于存在额外的旋转变换,因此圆柱形连杆的创建相较于入门文章显得稍微复杂一些,这里展开介绍一下,首先在框图中添加一个Solid模块,双击该模块进入属性编辑菜单,进行如下配置。
参数 | 参数值 | 单位 |
---|---|---|
Geometry --> Shape | Cylinder | 无 |
Geometry --> Radius | r | m |
Geometry --> Length | l | m |
Graphic -->Visual Properties --> Color | rgb | 无 |
Inertia --> Density | rho | 默认 |
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二连杆平面臂仿真的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!