为什么 Dymola/Modelica 中的属性 min、max 不起作用?

JAG*_*KOO 3 attributes modelica dymola

我试图使用“min”、“max”属性来限制该值,如下所示。

SI.Angle thetta_out(start=0, min=0, max=31.4)
Run Code Online (Sandbox Code Playgroud)

但 min 和 max 属性不起作用。该值变化无限制,只有起始值按照我设置的方式工作。

有人能找出问题所在吗?

我不想像 if 语句那样制定逻辑来处理这个问题,因为这会使系统变得缓慢且扭曲。

Mar*_* A. 5

您需要手动激活检查

模拟设置 -> 调试

看起来像这样:

最小/最大断言设置

如果我没记错的话,该设置默认处于非活动状态的原因与激活它时性能下降有关,再加上通常没有必要拥有它。

如需更精确的描述,您可以查看 Dymola 手册 1,第 5.6.8 节“变量的边界检查”,其中提供了一些更详细的解释。这也是上面截图的来源。