Simscape Multiboby学习笔记3——在Multibody中建立零件
手把手教你如何在Matlab Multibody中建立封装零件,如何建立坐标系,如何从外部导入三维零件。
一. 建立零件
和三维建模软件一样,Multibody中的模型也是由一个个零件组合起来的,所以建立零件是组成复杂系统的基础。
本文的目标是建立一个简单的杆件,并为它建立两个端部坐标系。
-
在Matlab command里面输入smnew,使用Multibody的模板建立一个文件(也可以在simulink中新建,如图示,注意把右上角搜索那个地方改成all)
看看模板文件里的内容,左边的三个东东从上到下分别是求解器(Solver Configuration)、世界坐标系(World Frame)、基本配置(Mechanism Configuration),求解器暂时不管他,默认就行,世界坐标系也不用改,Mechanism Configuration里面主要是重力加速度方向,默认是沿z轴负方向,职位-9.8左右,不用管它。底部的文字是提示的,可以打开里面的链接学习。Rigid Transform是坐标旋转,这个东西是重中之重,以后会经常打交道。
-
删掉 Simulink-PS Converter, PS-Simulink Converter, 以及 Scope 模块,因为在本历程中用不到。
Simulink-PS Converter和PS-Simulink Converter顾名思义,转换器的意思,因为Multibody的blocks与Simulink的blocks是两种系统,不能直接连起,所以要转换一下再连。
-
显示零部件的名字,可以右击部件, Format> Show Block Name> On,或者随便点一个部件,在上面SCOPE标签页下勾选Name On(对当前的起作用)或取消勾选 Hide Automatic Block Name(全局设置)。 初学时建议把零件名字都显示出来。
-
复制一个rigid transform模块,得到rigid transform1,按CTRL+R旋转180度,B和F换位置。这里B是basis,F是follower,就是基坐标系和跟随坐标系,也是F绕着B来转。位置不能弄反,否则结果就是反的。
-
连线,像上面这样。
-
双击Brick Solid,在这里面设置零件的参数,包括形状、质量、密度、颜色等。(打字太累了,直接看图吧,设置完之后点右侧图形区的刷新按钮就可以更新图形了)
-
现在设置坐标系,刚才新增加了两个坐标系rigid transform和rigid transform1,现在定义他们的旋转关系。这样分别在头部和尾部建立了两个坐标系,没有旋转。
-
点击运行,在Matlab中就会出现一个新的窗口Mechanics Explorer,零件就显示出来了。左侧浏览器中显示了所有的零件,以及左右的坐标系和坐标变换关系。都点一下看看,就知道刚才定义的两个坐标系是什么意思了。强烈建议回到第七步,在Rotation里面也改一下,增加坐标系的旋转。看看新的坐标系是什么样子
二. 封装零件
以上我们已经完成了一个零件的完整的创建,但是在装配体里零件多了就很乱,所以要做封装,等装配的时候就很美观,可读性和维护性强。
-
双击Brick Solid,将上面我们直接用数字表示的量改成字母,如图
双击两个Rigid Transform,修改如下:
改完之后这三个部件都会变成红框,提示错误,暂且不用管它,应为这些量都没有定义。
-
框选两个坐标系部件和Brick Solid部件,右键Create Subsystem from Selection,这就创建了一个Subsystem 。
-
连接起来
-
创建Mask。点击Subsystem,右键 Mask > Create Mask,弹出Mask Editor对话框,选择Parameters & Dialog对话框,点击左边的Edit,没点一次就会在右边新增一个参数,然后Prompt(提示)和Name(名字,对应里面刚才定义的变量)按下面这样写。点击Apply。
-
再次双击刚才的Mask,就会出现参数设置框,如下设置,与最开始直接设置的参数一样。
-
运行,观察,可以看到结果是一样的。
三. 导入外部零件
Multibody中虽然提供了诸如方块、旋转体、拉伸体等基本图形,在简单的场合用用还行,建立复杂的模型简直就是灾难了。Multibody中提供了file solid模块,可以直接导入外部模型,建议在SolidWorks软件或其他三维软件中另存为STEP格式。
以一个舵机为例,介绍怎么导入外部文件。
smnew新建一个slx文件,拖拽进来一个File Solid模块,双击打开,在File Name哪里填入STEP文件的路径,然后再右侧点更新,就可以看到导入的模型了。可自己建一个模型试试哈。
开放原子开发者工作坊旨在鼓励更多人参与开源活动,与志同道合的开发者们相互交流开发经验、分享开发心得、获取前沿技术趋势。工作坊有多种形式的开发者活动,如meetup、训练营等,主打技术交流,干货满满,真诚地邀请各位开发者共同参与!
更多推荐
所有评论(0)