Simscape Multiboby学习笔记4——在Multibody中建立装配体(自由单摆)

6 篇文章 7 订阅
6 篇文章 27 订阅

一. 建立自由单摆模型

单摆是最简单的机械系统,简单的单摆需要建立两个零件,一个是固定的滑块,一个是单摆,两个零件通过一个转动关节连接。

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-8dI0mrGk-1647610070165)(F:\A_Pro_Files\博客\Simscape Multibody系列教程\单摆.png)]

我们希望建立一个自由单摆,最后的效果如下:

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-s9YhJr2m-1647610070166)(F:\A_Pro_Files\博客\Simscape Multibody系列教程\MATLAB_BCuTHXIUgJ.gif)]

使用上一节建立的零件。步骤如下:

  1. 新建零件,命令smnew。

  2. 将上一节我们建立的mask复制进来,然后将mask复制一个,分别命名为pendulum和fixed slide。

  3. 增加旋转关节,拖动一个Revolute Joint模块进来,位置在 Simscape > Multibody > Joints ,把他们连接起来。这样就实现了装配过程。
    [外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-NxE7hPi3-1647610070166)(F:\A_Pro_Files\博客\Simscape Multibody系列教程\MATLAB_GdC9ant7ta.png)]

  4. 修改fixed slide和pendulum的尺寸和颜色
    在这里插入图片描述

    [外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-qPGJ5LfN-1647610070167)(F:\A_Pro_Files\博客\Simscape Multibody系列教程\MATLAB_0P97kX5UeV.png)]

  5. 修改关节的初始角度,如图,改成30度。想让单摆形成本文第一张图那个效果

  6. 运行,看看结果。
    [外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-8SCR8Lnd-1647610070167)(F:\A_Pro_Files\博客\Simscape Multibody系列教程\MATLAB_hPfsf9lCUQ.png)]

    什么,怎么是这个样子,设30度是想让单摆形成本文第一张图那个效果,好像转的方向不对?别急,原因出在坐标系上。

    点击Revolute Joint的B和F,分别如下图所示。Revolute Joint的B连接的是Fixed Slide的F,Revolute Joint的F连接的是pendulum的B,所以Revolute Joint的B和F分别和Fixed Slide、pendulum对齐了(有点绕,建议多读几遍),但是Revolute Joint默认是沿着z轴转的,Fixed Slide、pendulum两个零件的z轴都朝上的,所以就出现了这样的效果。转到方向不对。
    [外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-Kso61PAi-1647610070167)(F:\A_Pro_Files\博客\Simscape Multibody系列教程\MATLAB_Hyl8DxowBp.png)]
    [外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-vp0yzPIc-1647610070168)(F:\A_Pro_Files\博客\Simscape Multibody系列教程\MATLAB_GXaSibWV3Q.png)]

  7. 修改坐标系。

    图里面左下角的是地理坐标系,我们其实希望的是pendulum与Fixed Slide的转轴是沿着地理坐标系的y轴的。这样才能实现自由摆动。所以我们需要修改坐标系,将Fixed Slide的F、pendulum的B转到和地理y轴一个朝向。

    单击fixed slide,在block标签页下点击look under mask,进入到mask里面编辑。
    [外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-H0TYbEdJ-1647610070168)(F:\A_Pro_Files\博客\Simscape Multibody系列教程\MATLAB_u1xQpys2uM.png)]

    点击rigid transform(尾巴坐标系),增加一个坐标旋转
    [外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-BN226BUG-1647610070168)(F:\A_Pro_Files\博客\Simscape Multibody系列教程\MATLAB_6K62NlLibU.png)]

    同理修改pendulum的rigid transform1(头坐标系)
    在这里插入图片描述

  8. 再次运行,结果是这样的。这次结果对了,图中的坐标系是Revolute Joint的F,可以看到单摆pendulum是沿着旋转关节的z轴旋转的。
    [外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-n7ZUBtDg-1647610070169)(F:\A_Pro_Files\博客\Simscape Multibody系列教程\MATLAB_7HwrNATlhu.gif)]

二. 深刻理解坐标系与装配

经历了上面的修正过程,大家应该对装配就有一点理解了,想想我们是怎么建立零件的连接关系和约束关系的(也就是装配),其实就是通过坐标系:

第一步,将两个坐标系的原点重合。

第二步,建立约束。

如果直接将上面fixed slide的F和pendulum的B连在一起,两者其实就是原点重合加三个坐标系对齐,就是固定关系。

如果中间加一个关节,那么就增加了自由度,比如我们上面加的旋转关节,实现的就是fixed slide的F和pendulum的B原点对齐,z轴对齐,而x轴和y轴是可以转动的。

Matlab里面常用的关节是转动关节(Revolute Joint)和移动关节(Prismatic Joint)。这里重点提醒:

Matlab里面的Revolute Joint默认是绕z轴旋转的,Matlab里面的Revolute Joint默认是绕z轴旋转的,Matlab里面的Revolute Joint默认是绕z轴旋转的

Matlab里面的Prismatic Joint默认是绕z轴平移的,Matlab里面的Revolute Joint默认是绕z轴平移的,Matlab里面的Revolute Joint默认是绕z轴平移的

所以,在建模的时候,一定要把两个零件连接坐标系的z轴转到你想要的旋转轴上去,否则转动方向就会是错误的

(PS:我写的和Matlab官方有点不一样,因为我是写博客时完全重建了一遍,再加上自己的理解的,建议大家学完之后跟我一样,抛开所有教程,自己做一遍,理解会加深不少)

  • 7
    点赞
  • 13
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 2
    评论
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

何为其然

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值