首页 文章

如何在基于AnyLogic代理的模拟中使用单独条件

提问于
浏览
0

我试图通过使用代理来模拟客户 . 在我构建的状态图中,我想通过定义不同的变量向每个代理应用在系统中花费的等待时间:

WatingTimeStart,WaitingTimeEnd和WaitingTime

为了给每个代理分配等待时间,我在状态之前的转换中使用以下命令我想应用条件:

this.WaitingTimeStart=time();

在下一个州,我正在使用以下内容:

this.WaitingTimeEnd=time();
this.WaitingTime=this.WaitingTimeEnd-this.WaitingTimeStart;

接下来是条件的下一个转换(TolerarableWaitingTime是一个预定义的变量)

this.WaitingTime>TolerarableWaitingTime;

我的问题是转换不接受条件,并且不处理代理到下一个状态 .

我可能犯了一个错误:

  • 将变量WaitingTime分配给每个代理

  • 正确应用条件

非常感谢任何想法 .

巴斯蒂安

1 回答

  • 0

    很难理解你的问题,但是在这里:首先,你不需要使用“this”,你可以在有问题的状态之前的过渡中做:

    WaitingTimeStart=time();
    

    按惯例,您的变量应以小写字母开头,因此它应该是 waitingTimeStart .

    但是你不需要条件转换,你只需使用超时转换,其中超时时间等于 TolerarableWaitingTime

    statechart timeout transition

相关问题