【问题标题】:Displaying parameter in annotation in DYMOLA在 DYMOLA 的注释中显示参数
【发布时间】:2018-10-02 12:23:16
【问题描述】:

我有一个使用不同组件的仿真模型。为了快速了解使用的参数,我使用注释的功能来显示某些模型参数(例如 m_flow_nominal),方法是:

textString="Nominal Flow Rate = %m_flow_nominal"

在注释对话框中。 这会给出类似

标称流量 = 5

这对于整数参数非常有效。


我还有一个根据其他值计算的参数。就像,让我们说一个身体的体积。当我尝试通过以下方式显示此参数时:

textString="Volume = %volume"

我将给出计算体积的公式,而不是最终值。例如

音量 = a * b * c

在这种情况下如何显示体积的最终值,而不是公式?


这是实际的问题:

  parameter Modelica.SIunits.Length xBorFie = 10 "Borefield length";
  parameter Modelica.SIunits.Length yBorFie = 30 "Borefield width";
  parameter Modelica.SIunits.Length dBorHol = 5 "Distance between two boreholes";

  parameter Integer nXBorHol = integer((xBorFie+dBorHol)/dBorHol) "Number of boreholes in x-direction";
  parameter Integer nYBorHol = integer((yBorFie+dBorHol)/dBorHol) "Number of boreholes in y-direction";
  final parameter Integer nBorHol = nXBorHol*nYBorHol "Number of boreholes";

使用时

textString="Number of boreholes = %nBorHol"

我明白了

钻孔数 = nXBorHol*nYBorHol

【问题讨论】:

    标签: parameters annotations dymola


    【解决方案1】:

    我认为唯一的可能是使用DynamicSelect() 函数。这可用于显示变化的值,例如一个图标。要使用它,您必须手动调整图标注释。它记录在 Modelica 语言规范 3.4 的第 18.6.6 节中。

    如何使用 DynamicSelect() 的一些很好的例子是:

    • Modelica.Blocks.Interaction.Show.RealValue 显示如何显示值
    • Modelica.Blocks.Interfaces.partialBooleanSO 展示了如何更改图标的线条和填充颜色
    • Modelica.StateGraph.Examples.Utilities.Tank 展示了如何更改矩形的大小以显示罐内的液位

    DynamicSelect() 的缺点是它有时需要在显示值之前初始化/模拟模型(我认为如果它不是从文字或参数计算出来的)。优点是在模拟过程中查看模型时会更新它们。

    对于您的情况,图标的实现可能如下所示:

        annotation (Icon(graphics={Text(
          extent={{-100,-20},{100,20}},
          lineColor={0,0,0},
          textString="NoB=" + DynamicSelect("?", String(nBorHol)))}));
    

    这导致图标显示

    NoB=21

    对我来说,当更改相应参数之一时,它也会立即适应。

    【讨论】:

    • 实际上该参数由其他计算参数组成。尝试 Modelica.Blocks.Interaction.Show.RealValue 实际上会返回值,但只有在我开始模拟之后。我猜没有“在线”解决方案?
    • 我想要显示的值几乎是串联的。预先进行了 3-4 次计算。
    • 我用我正在使用的实际代码更新了问题,以显示问题。我只是错过了什么吗?
    • 你是对的,它只显示用于计算最终参数的字符串。我将编辑我的答案并删除误导性的 cmets...
    猜你喜欢
    • 1970-01-01
    • 2012-01-21
    • 2023-03-25
    • 2020-10-24
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2015-03-09
    • 2019-03-22
    相关资源
    最近更新 更多