任务说明
此为官方教程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 1 | Pair 2 | 平移方法 | 平移参数 | |
---|---|---|---|---|---|
世界帧变换 | Aligned Axis | +X, +Z | +Z, -X | Standard Axis | -Z, L/2 cm |
左孔帧变换 | Aligned Axis | +Z, -Y | +X, +Z | Standard Axis | -Z, L/2 cm |
右孔帧变换 | Aligned Axis | +Z, -Y | +X, +Z | Standard 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 1 | Pair 2 | 平移方法 | 平移参数 | |
---|---|---|---|---|---|
左孔 | Aligned Axis | +Z, -Y | +X, +Z | Standard Axis | -Z, L/2 cm |
右孔 | Aligned Axis | +Z, -Y | +X, +Z | Standard Axis | +Z, L/2 cm |
Slide | Aligned Axis | +Z, +X | +Y, +Z | None | |
peg | Aligned Axis | +Z, -Y | +Y, +Z | None | |
孔帧 | Aligned Axis | +Z, -Y | +X, +Z | Standard Axis | -Z, L/2 cm |
滑动帧 | Aligned Axis | +Y, -X | +X, +Y | None |
各集几何体的参数如下,其中后面是数字是封装完成后的设计值
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进行封装,得到设计图如下,点击运行,即可实现一开始的那个不断撸动的图了。