【问题标题】:Show a percentage of progress of simulation in anylogic parameter variation experiment在任意逻辑参数变化实验中显示模拟进度百分比
【发布时间】:2021-08-24 19:45:28
【问题描述】:

我目前正在做一个参数变化实验。我想显示每个模拟的进度条(类似于任何逻辑“并行运行的进度”提供的动画),它将计算为根(模拟)中经过的天数超过将模拟的总天数。我无法访问该信息,因为我只能选择在模拟运行之前和之后进行编码,而不是介于两者之间(并且事件不是一个选项)。我该如何手动编程?

提前致谢, 调频

注意:我要的是EACH模拟的进度条,不是实验的一般进度。

【问题讨论】:

    标签: anylogic


    【解决方案1】:

    使用以下方法计算模型中的值:

    double totalDays = getEngine().getStopTime(DAY) - getEngine().getStartTime(DAY);
    double progressSoFar = time(DAY) / totalDays; // ratio between 0 and 1
    

    把它放在一个函数 getProgress 返回 progressSoFarMain

    现在在Main 上有一个定期事件,将值“推”到实验。这可以使用类型转换来完成:

    if (getExperiment() instanceof ParameterVariation) {
        ((ParameterVariation)getExperiment()).myText.setText(getProgress());
    }
    

    为此,您需要在实验中添加一个名为 myText 的文本元素。理想情况下,将其复制到您拥有的运行次数,将它们放在彼此下方并使用其getIteration() 从模型中访问它们。然后,每次迭代都会更新自己的文本元素。

    【讨论】:

      猜你喜欢
      • 2014-12-25
      • 1970-01-01
      • 2018-12-14
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2018-05-21
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多