用Simulink创建一个撸管

任务说明

此为官方教程How to Build a Multibody in Simulink的学习笔记。原教程后面还加上了PD控制器,本文的学习重点是Simscape的Multibody,故而只完成到如下程度,实际上是实现了一个可以撸动的管子。

在这里插入图片描述

在Matlab的命令行中输入下面的命令,可以弹出官方教程,同级目录下的【HowToBuildAMultibodyInSimulinkPlant.slx】文件,即为本文的学习目标。

openExample('sm/HowToBuildAMultibodyInSimulinkExample')

这个示例的设计图如下

在这里插入图片描述

此图用到了四个自定义的模块,这四个模块在同级目录下也可以找到,但本文并不调用这些模块,而是逐一封装。

本文用到的模块包括

这些模块均位于simscape->multibody中,具体位置如下

  • Body Elements:Brick Solid;Cylindrical Solid
  • Frames and Transforms:Rigid Transform;World Frame
  • Utilities:Mechanism Configuaration

Body D

首先,通过smnew命令创建一个新的Multibody模板。然后拖动模块,完成如下布局,注意坐标变换的F,B接口位置。

在这里插入图片描述

双击模块即可设置参数,

旋转方法Pair 1Pair 2平移方法平移参数
世界帧变换Aligned Axis+X, +Z+Z, -XStandard Axis-Z, L/2 cm
左孔帧变换Aligned Axis+Z, -Y+X, +ZStandard Axis-Z, L/2 cm
右孔帧变换Aligned Axis+Z, -Y+X, +ZStandard Axis+Z, L/2 cm

其旋转方法的参数依次是Follower和Base;平移参数是Axis和Offset。

圆柱体参数为

  • Radius R cm
  • Length L cm
  • Density rho kg/m^3
  • Diffuse Color [0.4 0.4 0.4]
  • Opacity 0.7

在完成参数设置后,选中自行拖入的四个坐标系和圆柱体,按下Ctrl+G,或右键->基于所选内容创建子系统,即可完成子系统的创建。创建完成后,将子系统重命名为【Rigid Body D】。双击进入子系统,将左孔、右孔、世界的端口参数设置为

端口号端口位置端口名
左孔1
右孔2
世界3世界

返回整体设计界面,双击这个子系统,将杆长、半径、密度分别设为40, 2, 2700。

至此,其设计界面和单机运行后的浏览窗口分别如下。

在这里插入图片描述

其他Body

其他实体的创建与封装过程,与D大同小异,下图是未经封装时的设计窗口

在这里插入图片描述

各坐标变换框架的参数如下表所示

旋转方法Pair 1Pair 2平移方法平移参数
左孔Aligned Axis+Z, -Y+X, +ZStandard Axis-Z, L/2 cm
右孔Aligned Axis+Z, -Y+X, +ZStandard Axis+Z, L/2 cm
SlideAligned Axis+Z, +X+Y, +ZNone
pegAligned Axis+Z, -Y+Y, +ZNone
孔帧Aligned Axis+Z, -Y+X, +ZStandard Axis-Z, L/2 cm
滑动帧Aligned Axis+Y, -X+X, +YNone

各集几何体的参数如下,其中后面是数字是封装完成后的设计值

Rigid Body B

  • Radius R 2
  • Length L 30
  • Density rho 2700
  • Diffuse Color [0.0 0.6 0.8]
  • Opacity 0.8

Rigid Body C

  • Dimensions [L B H] cm [10 8 8]
  • Density rho 2700
  • Diffuse Color [0.2 0.6 0.0]
  • Opacity 0.7

Rigid Body A

  • Radius R 2
  • Length L 80
  • Density rho 2700
  • Diffuse Color [1.0 0.4 0.0]
  • Opacity 0.7

参考Rigid Body D的封装方法,对这三个Body进行封装,得到设计图如下,点击运行,即可实现一开始的那个不断撸动的图了。

在这里插入图片描述

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

打赏作者

微小冷

请我喝杯咖啡

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

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

打赏作者

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

抵扣说明:

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

余额充值