【发布时间】:2021-12-24 09:54:31
【问题描述】:
总的来说,我对 Modelica 很陌生,但我有一个项目需要尽快完成。如果我说的内容真的很基本,我深表歉意。我已经尝试了一些调整并在互联网上进行了搜索,但我似乎无法弄清楚如何做到这一点。
我创建了一个模型。里面有一个带有布尔输出的块,我们将这个输出布尔变量称为Y1。
连接到该块我使用Modelica.Blocks.Logical.Change 或Modelica.Blocks.MathBoolean.ChangingEdge 块。我都试过了,因为如果我理解正确,他们会做同样的事情。 Y1 是这个块的输入。
所以基本上当Y1 从true 变为false 或从false 变为true 时,Change 块的输出(我们称之为Y2)应该是true只是为了那个时间步。
这不会发生。 Y2 一直在 false。我已经检查过了,Y1 会随着时间而改变。
我也尝试过运行示例Modelica.Blocks.Examples.BooleanNetwork1,但我也看到了同样的情况。所需的输出也不会更改为示例。
作为参考,我使用 OpenModelica 1.17 和 Modelica 标准库 3.2.3。这些是我有义务使用的版本,我不能使用新旧版本。
任何提示将不胜感激!谢谢。
PS 如果这不起作用,我想使用不同的东西。有没有一种方法可以访问另一个块中 Y1 的所有先前值(历史记录),并使用那里的算法找到这些更改?因此,假设我在时间步 N 上,并且在一个块内,我想从 0 到 N-1 访问 Y1 并找到 Y1 更改的最后一个时间步。
【问题讨论】:
标签: modelica openmodelica