网易首页 > 网易号 > 正文 申请入驻

58 张图,手把手教会你 Simscape Multibody 物理建模与刚体变换!

0
分享至

  作者 |安布奇

  责编 | 胡巍巍

  本文干货满满,主要以一个单摆为例,讲述如何进行物理建模。58张实操图,手把手带你学会Simscape Multibody物理建模与刚体变换!

  创建模型

  在MatLab命令行输入smnew,打开一个新的simscape multibody项目。

  在命令行输入sm_lib,打开Simscape Multibody block library选择自己想要添加的块。

  创建机械连接

  块类型说明:

  Rigid Transform(刚体变换)块:提供端坐标系。

  Solid(立体)块:提供几何(geometry),惯性(inertia),颜色(color)特性。

  Rigid Transform块在Frame and Transform 下,Solid块在Body Element下。

  连接块图:

  设置Solid block 特性: 左键快速单击solid block两次,在弹出的对话框中将参数设置为如下图所示:

  将长宽高用变量LHW代替,密度用rho代替,颜色用rgb代替,方便修改参数。这里出现错误是因为我们输入的变量未定义,将在下面定义。

  设置Rigid Transform块:

  左键快速单击Rigid Transform block,在弹出的对话框中将参数设置为如下图所示:

  将Rigid Transform 设置为如下图所示:

  将Rigid Transform1 设置为如下图所示:

  生成子系统:

  同时选中Rigid Transform,Rigid Transform1和solid block,在高亮的地方右键选择Create Subsystem from Selection:

  得到如下所示子系统:

  定义前面的参数:

  右键单击Subsystem,在弹出的对话框中选择 Mask > Create Mask。

  在弹出的对话框中选择 Parameters & Dialog,在左边的栏中添加五个 到 Parameters,然后将变量名改为前面输入的变量名。

  在右边栏Properties > value中将各变量值设置为如下所示:

  确定,然后在simulink界面中选择Simulation > Update Diagram,更新块图,得到如下图的立体:

  添加旋转部件:

  在matlab命令行输入smnew,新建一个模型,删除不需要的块并将上述的Subsystem复制过来。

  从Simscape > Multibody > Joints 中添加一个 Revolute Joint(旋转节点)到图中,并连接成如下图所示:

  鼠标左键快速单击图中的solid block两次,在弹出的对话框中将其参数设置为如图所示:

  点击确定。

  设置重力:

  旋转节点(Revolute Joint block)使用底座和从动件坐标系的公共Z轴作为旋转轴,为了让从动件在重力的作用下旋转,需要使重力矢量偏移Z轴。鼠标左键快速单击Mechanism Configuration block两次,在弹出的窗口中将重力设置为[0 -9.81 0](-y方向)。

  设置单摆起始位置:

  鼠标在左键快速单击Revolute Joint两次,在弹出的对话框中选择State Targets > Position进行设置,默认为水平。

  配置求解器:

  在simulink中选择Simulation > Model Configuration Parameters,配置为如下图所示:

  选择确定。

  组装模型:

  选择Simulation > Update diagram,得到如图所示的模型。

  选择View convention将其设置为Y up (XY Front),保证重力与屏幕垂直对齐,选择view > standard view 中的一项来刷新视图。选择 来保存设置。

  运行模型:

  点击Simulation > Run,运行模型,将会看到单摆摆动。

  分析模型: 测量单摆运动:左键快速单击Revolute Joint block两次,在弹出的对话框中选择Sensing 下的Position 和Velocity。

  添加以下块到模型:

  PS-Simulink Converter:在Simscape > Utilities

  To Workspace:在Simulink > Sinks

  如图:

  将文件另存为一个新文件 simplependulumanalysis。 摆角、角速度关于时间的函数:

  打开刚刚的文件 simplependulumanalysis ,然后选择Simulation > Run,在matlab命令行中输入以下命令:

   figure;%Openanewfigure
holdon;
plot(q);%Plotthependulumangle
plot(W);%Plotthependulumangularvelocity

  得出摆角(蓝色)与角速度(红色)关于时间的函数图像:

  无阻尼条件下摆角与角速度关系

  在matlab命令行中输入以下命令:

  
plot(q.data,W.data);

  得到函数图像:纵轴为角速度,横轴为摆角。

  在 Revolute Joint block State 对话框的Targets> Position中设置不同的起始角:-80, -40, 0, 40和80 °,重复上述的命令得到不同起始角下摆角与角速度的关系:

  有阻尼下摆角与角速度关系:

  左键快速单击Revolute Joint block,在弹出的对话框中将 Internal Mechanics > Damping coefficient 设为8e-5(N*m)/(deg/s),确保State Targets > specify Position Target > Value为0(初始角为0)。

  在matlab命令行输入以下命令:

  
holdon;
plot(q);
plot(w);

  得到如下图所示摆角(蓝色)、角速度(红色)与时间的函数关系:

  
plot(q.data,W.data);

  得到摆角与角速度的关系。

  改变初始角为-240,-180, -120, -60, 0, and 60 °,重复上述命令可以得到如图:

  有阻尼和激励下的单摆:

  左键快速单击Revolute Joint两次,在弹出来的对话框中设置Actuation > Torque为 `Provided by Input。

  添加以下两个模块:

  连接成如下图所示:

  左键快速单击Sine Wave block 两次,在弹出的对话框中将Amplitude设置为0.06,在Revolute Joint block 对话框中将确认 State Targets > Position > Value为0。

  运行仿真,在matlab命令行中输入以下命令画出摆角、角速度与时间的关系:

  
holdon;
plot(q);
plot(w);

  如下图所示:

  在matlab命令行中输入以下命令画出摆角与角速度的函数关系:

   plot(q.data,W.Data);

  如下图所示:

  Simscape刚体变换

  创建坐标系:

  以一个L梁作为示例,在matlab命令行输入smdoc_lbeam_inertia。

  将会弹出一个L梁的坐标关系图:

  左键快速点击图中的立方体两次,弹出立体对话框:

  点击Frames左边的“+”号,选择new frame右边的加号。

  会弹出一个坐标对话框。

  从上到下依次为:

  坐标名称

  坐标原点

  主轴

  副轴

  按自己想要的设置即可。

  添加立体到模型中

  打开simulink:

  选择Simscape下的Multibody:

  将默认存在的块体删除,选择Library Browser >> Simscape >> Multibody >> Body Elements:

  将其中的solid拖到窗口中即可。

  建立坐标系及刚体变换

  刚体转动变换:将两个立方体连接起来,使立方体的世界坐标系在空间上是重合的。

  可视化立体坐标系:将Simscape >> Utilities >> Solver Configuration 拖到模型中,并与一个立方体连接:

  选择Simulation > Update Diagram更新流程图,将会打开Mechanics Explorer窗口

  应用刚体变换:在Multibody>Frames and Transforms拖一个rigid Transform,将它连接到两个立体的中间,左键快速单击两次,在弹出对话框中选择:

  Rotation > Method to Standard Axis.

  Rotation > Axis to -Z.

  Rotation > Angle to 45.

  选择OK然后Simulation > Update Diagram更新流程图,如下图,完成了一个刚体转动变换。

  点击Rigid Transform 可以看到,两个立体的坐标系原点和Z轴是重合的,X轴和Y轴彼此错开了45°。

  平动变换:将Translation > Method 设置为 Cartesian,Translation > Offset to [1 1 0]。

  offset数组表示相对于基础坐标系(Base Frame,就是与变换块“B“接口相连的立体坐标系)在x,y,z方向上的偏移量,后面的是单位。

  选择OK然后Simulation > Update Diagram更新流程图,如下图,完成了一个刚体平移变换。

  作者简介:单雨,90后工科男,伪文艺青年。目前就读于北京理工大学宇航系,喜欢研究AI,网络爬虫,微信小程序以及机器人,痴迷于Coding,睡前必撸码。

特别声明:以上内容(如有图片或视频亦包括在内)为自媒体平台“网易号”用户上传并发布,本平台仅提供信息存储服务。

Notice: The content above (including the pictures and videos if any) is uploaded and posted by a user of NetEase Hao, which is a social media platform and only provides information storage services.

相关推荐
热点推荐
东北某县级电视台餐厅午餐,着实没想到啊

东北某县级电视台餐厅午餐,着实没想到啊

微微热评
2026-04-15 22:25:29
河南13岁被锁喉男孩赴京治疗后已脱离生命危险,拉绳老人已被采取刑事强制措施

河南13岁被锁喉男孩赴京治疗后已脱离生命危险,拉绳老人已被采取刑事强制措施

极目新闻
2026-04-15 11:11:27
05后小妹「崩老头」正在悄悄流行,半黄全灰纯靠演

05后小妹「崩老头」正在悄悄流行,半黄全灰纯靠演

媒体人溪婉
2026-04-15 12:20:58
被打到求救才想起祖国?真主党日暮途穷连喊三件事!

被打到求救才想起祖国?真主党日暮途穷连喊三件事!

环球格局观
2026-04-15 19:15:59
河南一豫剧团下乡演出台下观众痛哭流涕,演员回应:现场观众超千人,一半人落了泪

河南一豫剧团下乡演出台下观众痛哭流涕,演员回应:现场观众超千人,一半人落了泪

极目新闻
2026-04-15 19:44:40
王博被驱逐!三大核心缺席广厦惜败山西 布朗空砍41分

王博被驱逐!三大核心缺席广厦惜败山西 布朗空砍41分

醉卧浮生
2026-04-15 21:51:38
善恶有报,许家印认罪仅1天,子女近况被扒,原来大儿子早有布局

善恶有报,许家印认罪仅1天,子女近况被扒,原来大儿子早有布局

八斗小先生
2026-04-15 17:47:57
吃相越来越难看,都开始硬抢了!

吃相越来越难看,都开始硬抢了!

胖胖说他不胖
2026-04-15 09:00:18
美军布什号航母及1.02万士兵将抵达中东,特朗普:战争“即将结束”,也可能持续至11月!超2400万伊朗人登记志愿为国捐躯,伊总统五问美国

美军布什号航母及1.02万士兵将抵达中东,特朗普:战争“即将结束”,也可能持续至11月!超2400万伊朗人登记志愿为国捐躯,伊总统五问美国

鲁中晨报
2026-04-15 21:53:08
炸穿台湾政坛!蒋友松强行迁走两蒋悬棺,半世纪漂泊终要归乡

炸穿台湾政坛!蒋友松强行迁走两蒋悬棺,半世纪漂泊终要归乡

陈漎侃故事
2026-04-14 17:28:18
特朗普“反向封锁”霍尔木兹海峡,伊朗8000万人恐难撑过一个月

特朗普“反向封锁”霍尔木兹海峡,伊朗8000万人恐难撑过一个月

民间胡扯老哥
2026-04-14 06:00:51
乌克兰首都基辅发生剧烈爆炸

乌克兰首都基辅发生剧烈爆炸

财联社
2026-04-15 15:18:11
罗志祥猝死只是冰山一角,不到一天内娱5大瓜,赵丽颖太让人意外

罗志祥猝死只是冰山一角,不到一天内娱5大瓜,赵丽颖太让人意外

翰飞观事
2026-04-15 19:42:06
两条新闻,看完让人后背发凉!

两条新闻,看完让人后背发凉!

胖胖说他不胖
2026-04-15 10:00:20
又一州加入,美国总统大选距终结“赢者通吃”规则就差48票了?

又一州加入,美国总统大选距终结“赢者通吃”规则就差48票了?

澎湃新闻
2026-04-15 16:52:26
杨某媛称已找到工作,结果立马被网友举报了……

杨某媛称已找到工作,结果立马被网友举报了……

麦杰逊
2026-04-15 11:53:46
伊朗总统质问美国和以色列:为什么攻击伊朗,袭击平民和儿童,破坏学校和医院?其称没有任何力量能迫使伊朗人民屈服

伊朗总统质问美国和以色列:为什么攻击伊朗,袭击平民和儿童,破坏学校和医院?其称没有任何力量能迫使伊朗人民屈服

极目新闻
2026-04-15 17:45:12
0-2!中国女足出局,亚洲杯决赛对阵出炉:日本女足对决朝鲜女足

0-2!中国女足出局,亚洲杯决赛对阵出炉:日本女足对决朝鲜女足

足球狗说
2026-04-15 22:54:41
央视曝光知名国酒!成本4元卖150!纯酒精兑水,年份包装全造假

央视曝光知名国酒!成本4元卖150!纯酒精兑水,年份包装全造假

阿凫爱吐槽
2026-04-16 01:10:39
78岁连路都走不稳还开演唱会,全网骂声一片,她却扬言回馈粉丝

78岁连路都走不稳还开演唱会,全网骂声一片,她却扬言回馈粉丝

LULU生活家
2026-04-14 18:43:54
2026-04-16 05:15:00
CSDN incentive-icons
CSDN
成就一亿技术人
26457文章数 242269关注度
往期回顾 全部

科技要闻

ChatGPT十亿用户又怎样?Anthropic直接贴脸

头条要闻

法国全票通过 “将不义之财归还中国”

头条要闻

法国全票通过 “将不义之财归还中国”

体育要闻

三球准绝杀戴大金链:轰30+10自我救赎

娱乐要闻

谢娜现身环球影城,牵手女儿温馨有爱

财经要闻

业绩失速的Lululemon:"健康"人设崩塌?

汽车要闻

空间丝毫不用妥协 小鹏GX首发评测

态度原创

房产
艺术
数码
健康
军事航空

房产要闻

重磅调规!341亩商改住+中小学用地!宝龙城这把稳了?

艺术要闻

看!波兰超模阿里亚纳的惊艳写真,身材让人心动不已!

数码要闻

明基新款显示器首发12499元:4K专业级色彩校准 根据环境光自动调整

干细胞抗衰4大误区,90%的人都中招

军事要闻

万斯:对当前美伊局势进展“感到乐观”

无障碍浏览 进入关怀版