Simulin金宝appk上的Guy

金宝appSimulink &基于模型的设计

万圣节特辑:南瓜模拟!

你觉得今天的南瓜切块模拟器怎么样?
PumpkinChunkin.gif
本周早些时候,我注意到MATLAB社区博客上的最新帖子: 会飞的南瓜,跳舞的南瓜 .虽然Ned和Eric的帖子是关于使用MATLAB图形绘制南瓜的,但我认为将其中一个模拟放在一起会很有趣 南瓜切块机
为了获得一些灵感,我在MATLAB Central File Exchange上做了一些研究,很快就找到了一份2016年提交的题为 基于SimMechanics的面向设计的投石机模型 ,这封信原来是我以前的同事写的, 詹姆斯·埃里森
对于今天的文章,我决定采用James提交的内容并对其进行更新,以利用最新版本中引入的新功能。这将包括:
您可以下载并试用最终结果 在这里
让我们来看看细节!

地面接触

在模拟开始时,投掷物躺在地上,直到投石机将其抛向空中。
trebuchetGroundContact.gif
为了模拟这一点,原始模型是传感弹丸的高度,并实现了一个自定义的力定律使用Simulink块,将保持弹丸在地面上使用金宝app 外力和力矩 块。
在R2021b中,我们现在有 空间接触力 块,使实现这种类型的联系明显容易。你所要做的就是导出你想要计算接触动力学的实体块之间的几何形状。
暴露几何端口后,可以使用“空间接触力”块将它们连接在一起。在本例中,我使用了 无限平面 用块来模拟地面,用一个球形实心来模拟弹丸:

发射弹丸

原来的模型只模拟抛石机到抛石释放的时间。此时,停止仿真,保存弹丸的运动,并在MATLAB中使用 数值 函数,计算了自由飞行弹丸的抛物线轨迹。
在MATLAB R2019b中,Simscape Multibody增加了分离关节的能力。为了利用这个功能,我引入了一个 焊缝 在弹丸和投石机的其余部分之间,并将其啮合模式设置为由输入信号指定。这样,我可以感知吊带角度,并脱离焊接接头-释放弹丸-使用相同的逻辑,在原始模型中停止模拟:
以下是在Mechanics Explorer中投射物发射的动画效果:
trebuchetRelease.gif

南瓜弹

在这篇文章顶部的第一个动画中,你可以看到投射物有一个南瓜的外观和形状(好吧,一个幽灵南瓜)。为了做到这一点,我使用了File Solid并指定了一个 STL文件 我在网上找到的。(提示:3D打印网站对于查找这类文件非常有用)
我为这个块指定了零惯性,并将它刚性地连接到具有适当质量和惯性的实际抛射固体块上。这是最终模型的样子:

多个手指角度的模型模拟

在R2021b中,一个新的 多个模拟 面板已添加到Simulink。金宝app这个面板允许您交互式地创建实验,就像您通常使用MATLAB代码所做的那样 parsim
对于这个例子,我很想模拟多个模型 手指的角度 看看哪个角度能把弹丸扔得最远。
多重模拟面板可以从模拟选项卡的准备库中启动。我最喜欢的启动方式是点击快捷键“Ctrl+.”,然后开始输入。
在多重模拟面板中,我创建了一个新的研究,添加了对应于最终手指角度的变量,并指定了一个20个线性间隔值的向量:
MultipleSimulations.png
完成此操作后,您将注意到Run按钮现在有一个 运行所有 选项,允许您启动所有的模拟在一个点击。
运行开始后,您可以在Simulation Manager中监视流程。在这个例子中,我选择在X轴上显示手指角度,在Y轴上显示炮弹的最终位置。
PumpkinSimManager.gif
一旦运行完成,将在MATLAB基本工作空间中返回一个SimulationOutput对象数组,用于进一步的后处理。这是一个简单的代码绘制20个轨迹。(是的,在第一个模拟中,弹丸是向后的!)
ShowTrajs.gif

可定制的仪表板控件

最后,我决定尝试一下R2021b中新的可定制的仪表盘块。在下面的动画中,您可以看到 可自定义水平滑块 用于控制枢轴点的位置,以及 可定制的旋钮 用于控制手指角度。
PumpkinDashboard.gif
我没有在这篇文章中描述我是如何创建它们的,因为它已经变得很长了,但这个过程与我在文章中描述的类似 这篇博文 在那里我创建了自定义的仪表在几个版本之前。如果你想在后续文章中阅读更多关于这个主题的内容,请在下面的评论中告诉我。

现在轮到你了!

你尝试过这些新功能吗?今年万圣节你打算扔掉南瓜吗?请在下面的评论中告诉我们!
|

コメント

コメントを残すには,ここをクリックしてMathWorksアカウントにサインインするか新しいMathWorksアカウントを作成します。