在线时间:8:00-16:00
迪恩网络APP
随时随地掌握行业动态
扫描二维码
关注迪恩网络微信公众号
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解决 |
2023-10-27
2022-08-15
2022-08-17
2022-09-23
2022-08-13
请发表评论