Parameters 如何使用Agent';设置块中的s参数';行为

Parameters 如何使用Agent';设置块中的s参数';行为,parameters,delay,anylogic,Parameters,Delay,Anylogic,我正在根据进入块的代理的参数原型化块(延迟)行为 因此,这些都是源块,批处理代理根据表中的数据到达。 接下来是Delay块,释放代理在stopDelay()函数调用时使用它。 目前,我在退出操作时将stDelay函数的调用放入Source:stDelay(agent); timestage1end是由表中的数据确定的代理参数 stDelay(功能) 职能机构: b批=b1 双r=日期时间(b.timestage1end) 创建事件(r,b) 参数:b1,类型:批处理 StDelayEvent(

我正在根据进入块的代理的参数原型化块(延迟)行为

因此,这些都是源块,批处理代理根据表中的数据到达。 接下来是Delay块,释放代理在stopDelay()函数调用时使用它。 目前,我在退出操作时将stDelay函数的调用放入Source:stDelay(agent); timestage1end是由表中的数据确定的代理参数

stDelay(功能) 职能机构:

b批=b1

双r=日期时间(b.timestage1end)

创建事件(r,b)

参数:b1,类型:批处理

StDelayEvent(动态事件)

行动:

延迟。停止延迟(b)

参数:b,类型:批处理

问题在于,模型的行为并不像它根据数据应该做的那样:大量的代理被困在延迟块上


您能给我一个关于使用代理参数进行模型行为设置的正确方法的提示吗?

据我所知,您的错误是
dateToTime
返回模拟时间,但是当您设置动态事件时(在您的情况下,通过
create\u StDelayEvent
),您必须指定超时(即,从当前时刻开始的持续时间)。因此,对于动态事件超时,应该使用类似
time()-r
的内容

话虽如此,这是一种实现所需的过于复杂的方法。相反,只需将所需的延迟时间作为
批处理
代理中的参数或变量,并让延迟块使用它来定义延迟时间(例如
代理的延迟时间。预计算的延迟时间

[通常,如果延迟时间并非每个单独的
批次的唯一时间(例如,某些类型/类别的批次具有不同的延迟时间,但在一个类型/类别内,延迟时间相同),您还可以执行其他操作,例如在AnyLogic数据库表中定义不同的计时,并根据需要检查的相关代理属性在延迟块中查找适当的值。]