如何知道执行 Anylogic 模型之前的剩余时间

How to know time remaining until Anylogic Model is executed

有什么方法可以知道 Anylogic 模型使用 traceln 实时完成执行之前的剩余时间。

我正在尝试使用 vba 触发任何逻辑模型 jar 文件,并希望显示一个进度条,显示实验进度和模型执行完成之前的剩余时间。

double remaingTimeSeconds=getEngine().getStopTime(SECOND)-time(SECOND);
traceln(remaingTimeSeconds);

以更一般的方式,如果您的模型不是从 t=0 开始的,那么您可以执行以下操作以获得剩余进度:

double totalSimTimeSeconds=getEngine().getStopTime(SECOND)-getEngine().getStartTime(SECOND);
double timeSinceStartSeconds=time(SECOND)-getEngine().getStartTime(SECOND);
double remaingingTimeSeconds=totalSimTimeSeconds-timeSinceStartSeconds;
double fractionRemaining=remaingingTimeSeconds/totalSimTimeSeconds;

traceln(fractionRemaining*100+"%");

我想你想知道模型执行将花费的实时时间,并让我们用它来显示进度条。 Felipe展示了如何根据模拟实验中设置的开始时间和结束时间以及当前模拟时间来计算模拟时间。

我认为没有一种简单的方法可以做您想做的事。基于反复试验,您可以在模型中插入一些 traceln 并使用它来计时进度条。尽管它会根据您的输入而改变。即使您在 Microsoft 应用程序/安装上看到的进度条也不太准确,所以这绝非易事。