Simulin金宝appk上的家伙

金宝appSimulink &基于模型的设计

Modecharts:在Simscape中建模离散模式

上周我描述了如何使用Simulink子系统作为Stateflow状态对移动桌上的盒子进行金宝app建模

对于大多数系统来说,有很多方法可以在Simulink中对这个盒表系统建模。金宝app我认为在本周使用新的Simscape功能来模拟相同的系统会很有趣:Modecharts

背景

以一种类似于作为状态流状态的Simulink子系金宝app统的方式,Simscape模型图被设计为具有离散操作模式的系统建模。

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

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

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

离合器的逻辑

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

模式的图表

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

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

Simscape代码

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

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

模式

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

转换

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

模式

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

Simscape组件块

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

该模型

结果

现在轮到你了

在完成了在Stateflow和Simscape中对该系统建模的练习之后,您知道我的结论了吗?我想要两者的混合,我可以使用statflow用户界面的便利性来创建Simscape模型。那不是很神奇吗?

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

|
  • 打印
  • 发送电子邮件

评论

要发表评论,请点击此处2017-07-29 13:313:00