【问题标题】:Why Attributes min, max in Dymola/Modelica doesn't work?为什么 Dymola/Modelica 中的属性 min、max 不起作用?
【发布时间】:2023-03-06 17:11:01
【问题描述】:

我正在尝试使用 'min'、'max' 属性来限制值,如下所示。

SI.Angle thetta_out(start=0, min=0, max=31.4)

但是 min 和 max 属性不起作用。该值不受约束地变化,仅开始值按我设置的方式工作。

谁能找出问题所在?

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

【问题讨论】:

    标签: attributes modelica dymola


    【解决方案1】:

    您需要在

    中手动激活检查

    模拟设置 -> 调试

    看起来像这样:

    如果我没记错的话,该设置默认不活动的原因与激活它时性能下降有关,再加上它通常不需要它。

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

    【讨论】:

    • 全局激活此功能的另一个问题是许多模型的最小值/最大值不正确,但库在这方面正在稳步改进。请注意,即使“最小/最大断言”未激活,如果文字起始值超出范围也会发出警告。
    【解决方案2】:

    最小值和最大值仅用作提示,而不是硬限制。在 Dymola 中,您可以设置标志以将其强制为硬限制,转到“编辑”、“选项”、“标志”,然后搜索“min”:

    设置Advanced.AssertNonLinearInsideMinMax = true; 可能就足够了。 作为标志编辑器 GUI 的替代方案,您还可以从命令窗口设置标志。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2012-08-26
      • 1970-01-01
      • 1970-01-01
      • 2012-01-06
      • 2021-11-05
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多