日期参数随时间更新 Anylogic

Posted

技术标签:

【中文标题】日期参数随时间更新 Anylogic【英文标题】:date parameter updated with time Anylogic 【发布时间】:2021-09-13 06:18:01 【问题描述】:

我正在使用 Anylogic,我想为每个代理(代理是客户)分配一个日期类型的参数,称为 DueDate,表示他的机器故障的截止日期。我的目标是更新值参数并使其随着模型时间的流逝而变短(因为故障日期即将到来)。有一些我可以使用的功能或代码吗?我还想为代理分配一个优先级参数,该参数在故障日期最近时增加,以便在队列中,故障最近的客户在优先级较低的代理之前处理。我该怎么办?

非常感谢

【问题讨论】:

【参考方案1】:

这个问题似乎有些自相矛盾。所描述的参数是一个到期日期,因此,根据定义,应该是固定的。然而,参数值应该随着故障日期的临近而更新。你的意思是应该有两个参数:1)截止日期和2)直到截止日期的剩余时间?如果是这样,可以这样实现:

    截止日期 - 如果您想在模型启动后的 10 个时间单位设置截止日期,您可以创建一个参数(称为 p_dueDate 类型)并使用 timeToDate(100.0) 函数(help entry)。 剩余时间 - 在代理 f_getRemainingTime() 中创建一个函数,代码如下:
return dateToTime(p_dueDate) - time();

其中dateToTime() 会将p_dueDate 值转换回代表模拟时间单位的双精度值,time() 返回当前模拟时间(也作为双精度值)。

所以,假设一个模型从 1 月 1 日开始,时间单位 = 天;偏移量 10 将导致 p_dueDate = 10th Jan 并且在 1 月 3 日 f_getRemainingTime() 将返回 7.0

【讨论】:

以上是关于日期参数随时间更新 Anylogic的主要内容,如果未能解决你的问题,请参考以下文章

基于代理的 Anylogic,滑块和事件错误

Anylogic变量未更新

Anylogic:将参数值写入数据库表

AnyLogic 中的参数变化:特定变化的数据

AnyLogic 在一个过程中更改参数值

Anylogic - 使用特定参数限制行人的访问