Simulin万博1manbetxk上的家伙

万博1manbetxSimulink与基于模型的设计

Modecharts:在Simscape中建模离散模式

上周我描述了如何使用Simulink子系统作为Stateflow状态,在移动工作台上对长万博1manbetx方体建模

与大多数系统一样,有很多方法可以在Simulink中对这个箱表系统进行建模。我认为本周使用新的Simscape功能对同一个系统进行建模会很有趣:万博1manbetxModecharts

背景

与Simulink子系统的statflow状态类万博1manbetx似,Simscape模态图被设计为使用离散操作模式对系统建模。

在我们的表格上的盒子的例子中,有两种模式:

  • 锁住:盒子和桌子以相等的速度一起移动,桌子能够产生任何力来保持它们的速度相等。
  • 无锁:箱体在空中飞行,工作台与箱体之间不产生任何力

为了实现我与桌上盒子的关系,我想从基本摩擦离合器.如果您查看文档,您会发现下面的单向情况的图表,这与我需要的非常接近。唯一需要改变的是锁定的条件,这是位置的函数,而不是速度的函数。

离合器的逻辑

注意,我们不能像Stateflow那样只有两种模式。为了避免求解器在锁定和解锁之间抖动,我们引入了一个“等待”状态,即我们在离开锁定状态后等待达到一个阈值速度,然后才到达解锁状态。

模式图

现在,我们如何在Simscape中实现这一点?

首先,我们使用Simscape语言创建一个标准组件,该组件具有来自机械转换域的两个端口。为了帮助实现这一点,我建议从基础库中的一个组件开始,例如spring。这看起来像:

模拟风景代码

然后我们可以开始定义我们的模式。在modecharts中,我们需要定义3个部分:模式,
转换和初始模式。

关于模态,在锁定的情况下,我们想要的方程是两个端口之间的速度为零。在所有其他模式中,我们想要的方程是两个端口之间的力为零。

模式

对于转换,对于上图中的每个转换,我们指定源状态、目标状态以及应该发生转换的条件。

过渡

最后,我们可以指定模拟将在哪种模式下开始。如果未指定,将使用定义的第一个模式。

模式

现在我们的组件已经完成了,我们可以获取一个Simscape组件块并指定我们刚刚创建的SSC文件。

Simscape组件块

为了创造一个类似上周的模拟,我们将一个理想速度源连接到基地(这将是我们的移动基地),并将一个质量连接到另一个端口(这将是我们的盒子)。使用运动传感器块,我们可以确认运动是预期的。

模型

结果

现在轮到你了

在完成了在statflow和Simscape中建模这个系统的练习之后,您知道我的结论是什么吗?我想要两者的混合,这样我就可以使用statflow用户界面的便利创建Simscape模dechart。这不是很神奇吗?

你认为这样的功能对你有用吗?请在下面的评论中告诉我们,您将如何使用Simscape modecharts。

|
  • 打印
  • 发送电子邮件

评论

要留下评论,请点击在这里登录到您的MathWorks帐户或创建一个新帐户。