Modecharts:在Simscape中建模离散模式
上周我介绍了如何做使用Simulink子系统作为Stateflow状态,在移动的桌子上建模万博1manbetx一个盒子.
对于大多数系统来说,在Simulink中有许多方法来建模这个框表系统。万博1manbetx我认为这将是一个有趣的模型相同的系统使用一个新的Simscape功能:Modecharts
背景
在某种程度上类似于作为Stateflow状态的S万博1manbetximulink子系统,Simscape模态被设计为具有离散操作模式的系统建模。
在我们的表格上的盒子例子中,这两种模式是:
- 锁定:盒子和桌子以相同的速度一起运动,桌子能够产生任何需要的力来保持他们的速度相等。
- 不锁:盒子在空中飞行,桌子与盒子之间不产生力
为了实现我的表框关系,我认为从基础摩擦离合器.如果您查看文档,您将发现以下单向情况的图表,它非常接近我所需要的。我唯一需要改变的是锁定条件,这将是位置的函数而不是速度。
注意,我们不能像Stateflow那样只有两种模式。为了避免求解器在锁定和解锁之间的抖动,我们引入了一个“等待”状态,即我们在脱离锁定状态后等待达到阈值速度,然后再到达解锁状态。
模式的图表
我们如何在Simscape中实现它呢?
首先,我们使用Simscape语言创建一个标准组件,该组件具有来自机械转换领域的两个端口。为了帮助实现这一点,我建议从基础库中的一个组件开始,例如spring。这看起来像:
然后我们就可以开始定义模式了。在我们的模态表中,我们需要定义3个部分:模态,
转换和初始模式。
关于模式,在锁定的情况下,我们想要的方程是两个端口之间的速度为零。在所有其他模式下,我们想要的方程是两个端口之间的力为零。
对于转换,对于上面图中的每个转换,我们指定源状态、目标状态,以及转换应该发生的条件。
最后,我们可以指定以哪种模式启动模拟。如果没有指定,则将使用定义的第一个模式。
现在组件已经完成,我们可以获取一个Simscape组件块并指定我们刚刚创建的ssc文件。
为了创建类似于上周的模拟,我们将一个理想速度源连接到基座(这将是我们的移动基座),并将一个质量连接到另一个端口(这将是我们的盒子)。使用运动传感器块,我们可以确认运动是预期的。
现在轮到你了
在经历了在Stateflow和Simscape中建模这个系统的练习之后,您知道我的结论吗?我想要两者的混合,在这里我可以使用Stateflow用户界面的便利创建Simscape modechart。这不是很神奇吗?
你认为这样的功能对你有用吗?请在下面的评论中告诉我们,以及您将如何使用Simscape modecharts。
コメント
コメントを残すには,ここをクリックしてMathWorksアカウントにサインインするか新しいMathWorksアカウントを作成します。