• 设为首页
  • 点击收藏
  • 手机版
    手机扫一扫访问
    迪恩网络手机版
  • 关注官方公众号
    微信扫一扫关注
    迪恩网络公众号

【Matlab】SimMechanics机械臂建模流程

原作者: [db:作者] 来自: [db:来源] 收藏 邀请

1.前言

最近做毕业设计使用了SimMechanics进行机械臂的建模仿真,网上资料也比较少,当然官方的文档才是最香的:https://ww2.mathworks.cn/help/physmod/sm/rigid-bodies-1.html?s_tid=CRUX_lftnav

自己摸爬滚打后,终于成功实现了建模并和S-Function写的控制算法一起仿真成功。这里记录一下自己的使用流程。

Matlab版本:2018及以上,本人使用2016a和2019b,当用到部分只在2018以上版本才有的功能时才使用2019b,太卡了,平时主力还是2016a。

本文采用i关节连接i个连杆方式,即每个Link与首端关节坐标系固连。

2.坐标系建立

我比较喜欢先把机械臂的坐标系照着实物建好,如果有需要的话可以先列出DH参数,在进行建立。

使用AxGlyph软件画的坐标关系图,这软件真香,支持国产!买买买!接下来就是在SimMechanics中建立该组坐标系。

3.使用smnew命令建立新的SimMechanics仿真文件,也即启动Simulink

中间的World Frame顾名思义就是惯性系,我们可以通过将其连接到Solid、Frame,来确定惯性系与我们坐标系的关系,在本例中,惯性系与机械臂第一个关节坐标系相连。

4.使用Frame Transform进行坐标系之间的变换

注意:本文坐标系之间只考虑旋转变化,平移变化由Link实现,具体做法就是让Link的两端都是同一方向坐标系,再连接一个Transform

因第一个坐标系与惯性系之间不需要变换,故设置保持默认为none

第二个关节为第一个关节绕x1轴旋转-90°,故设置为

后面如法炮制,把每个关节坐标系之间的关系表示出来。

5.添加Link和关节

这一步就很简单了,主要是要注意Link两端的坐标系要与该Link首端关节坐标系一致,如果需要用到质心位置,则也要将质心位置的坐标系调整到与关节一致。可以设置Link的惯性参数,如果为了省事可以直接设置成由形状计算,只需要设定质量or密度即可。

关节则直接使用Joint模块,连接Transform和Link即可

全部连接上即可。

6.一些需要用到的参数的测量

6.1.两个关节之间的位置关系

使用Transform Sensor即可,注意设置测量参考坐标系,如果以该Link的首段关节坐标系为参考,则将模块的B连接至该坐标系,F连接目标坐标系,设置为Base即可。

6.2.质量、转动惯量测量

此功能只有2018以上才有,我每次测量这些量的时候,就切换至2019。

使用Inertia Sensor,同样需要设置参考系和Sensor Extent,Sensor Extent的说明就不翻译了,以关节为终点,可以参考官方文档https://ww2.mathworks.cn/help/physmod/sm/ref/inertiasensor.html

附录 控制器仿真报错

可能出现了除以0或者NAN等情况,如果确认程序算法没问题,可以通过调参数或者更换solver解决


鲜花

握手

雷人

路过

鸡蛋
该文章已有0人参与评论

请发表评论

全部评论

专题导读
上一篇:
【Matlab】编程风格摘录发布时间:2022-07-18
下一篇:
matlab:二分法工具箱发布时间:2022-07-18
热门推荐
阅读排行榜

扫描微信二维码

查看手机版网站

随时了解更新最新资讯

139-2527-9053

在线客服(服务时间 9:00~18:00)

在线QQ客服
地址:深圳市南山区西丽大学城创智工业园
电邮:jeky_zhao#qq.com
移动电话:139-2527-9053

Powered by 互联科技 X3.4© 2001-2213 极客世界.|Sitemap