Simulin万博1manbetxk上的家伙

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

Modecharts:在Simscape中建模离散模式

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

对于大多数系统来说,在Simulink中有许多方法来建模这个框表系统。万博1manbetx我认为这将是一个有趣的模型相同的系统使用一个新的Simscape功能:Modecharts

背景

在某种程度上类似于作为Stateflow状态的S万博1manbetximulink子系统,Simscape模态被设计为具有离散操作模式的系统建模。

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

  • 锁定:盒子和桌子以相同的速度一起运动,桌子能够产生任何需要的力来保持他们的速度相等。
  • 不锁:盒子在空中飞行,桌子与盒子之间不产生力

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

离合器的逻辑

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

模式的图表

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

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

Simscape代码

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

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

模式

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

转换

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

模式

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

Simscape组件块

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

该模型

结果

现在轮到你了

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

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

|
  • 打印
  • 发送电子邮件

コメント

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