Simulin万博1manbetxk上的Guy

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

Modecharts:在Simscape中建模离散模式

上周我介绍了如何使用Simulink子系统作为statflow状态在移动表上建模一个盒子万博1manbetx

正如大多数系统的情况一样,在Simulink中有许多方法来建模这个盒表系统。万博1manbetx我认为这周用一个新的Simscape特性来模拟相同的系统会很有趣:Modecharts

背景

在某种程度上类似于作为状态流状态的Simulin万博1manbetxk子系统,Simscape模型哈特被设计成具有离散运行模式的系统模型。

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

  • 锁定:箱子和桌子以相等的速度一起运动,桌子能够产生任何所需的力来保持它们的速度相等。
  • 解锁:箱子在空中飞行,桌子和箱子之间的力为零

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

离合器的逻辑

注意,我们不能像在statflow案例中那样只有两种模式。为了避免解算器在锁定和未锁定之间的抖动,我们引入了一个“等待”状态,在达到未锁定状态之前,我们在离开锁定状态后等待达到阈值速度。

模式的图表

现在,我们如何在Simscape中实现它呢?

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

Simscape代码

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

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

模式

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

转换

最后,我们可以指定在哪种模式下启动模拟。如果没有指定,则将使用定义的第一个模式。

模式

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

Simscape组件块

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

该模型

结果

现在轮到你了

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

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

|
  • 打印
  • 发送电子邮件

评论

如欲留言,请点击在这里登录您的MathWorks帐户或创建一个新帐户。