MATLAB/multibody初学
软件版本:MATLAB R2019a
学习目标:理清物理建模时的坐标转换问题,建立简单的单摆模型。
1.创建一个新文件:命令行输入smnew,会生成一个Simscape Multibody模型模板,或者直接在simulink中自己创建;
2. 为了更好的理解坐标系的转换功能,我们先建立一个简单的连杆模型,了解一下坐标系的变换。
3. 复制一个Rigid Transform,完成如下图所示的连线,Solid、Transform1和Transform中的参数设置如下:
系统连接图:
参数设置:
4.完成参数设置和系统连接之后将它们设置成一个子系统,然后对子系统进行Mask(封装),打开Mask编辑器,然后在Parameters&Dialog中将我们之前在创建Solid时填写的参数写进去,如下图所示:
5.然后双击子系统块,就可以对实体的相关参数进行设置,具体参数如下图:
6.最后点击Simulation>Update Diagram就可以看到可视化的3D模型,你可以查看Solid块通过两个坐标变换生成的坐标系,以及他原来的坐标系。
通过上面这个简单的例子应该可以很清晰的了解整个物理建模以及坐标转换的过程。
下面来制作一个单摆:
1.拖入一个Solid和Revolute Joint,要使用上面建好的连杆模块,然后连接如下图:
2.Solid参数设置如下:
3.旋转副默认使用base和follower坐标系的Z轴作为旋转轴,所以在Mechanism Configuration中将重力方向设置在-Y方向,保证单摆能够在重力作用下运动。
4.设置好单摆旋转关节的初始位置:
关节参数设置:
5.在Simulation>Model Configuration Parameters中将求解器改为ode15s(stiff/NDF),是官方推荐的求解物理模型的求解器。然后将最大仿真步长改为0.01,Help文档里边描述的是这个步长在仿真速度和准确性之间达到了一个很好的平衡。
6.电机运行,在Mechanics Explore里边可以看到结果。
7.可以调整一下视图方向再查看结果,在view convention当中将Y轴设置成朝上。最后发现摆杆连接旋转副的位置是在正方体块的中心的,两个坐标系正好重合。
本文大部分内容来自MATLAB Help文档。