【问题标题】:SetParameter of a source源的 SetParameter
【发布时间】:2021-07-14 16:20:03
【问题描述】:

我有以下问题:我的模型每天必须由固定数量的患者喂食。具体来说,从早上 8 点到下午 6 点,每 11 分钟必须有 3 名患者到达!我已将源块设置为“Interarrival”模式,这允许我定义患者之间的间隔并每 11 分钟有三个患者;为了阻止患者在下午 6 点到达,我创建了一个事件,将患者到达率重置为零!但是第二天早上如何通过事件重新设置源块的所有规范?

【问题讨论】:

  • 您的其他 cmets 表明您需要每 11 分钟 恰好 3 次(而不是平均每 11 分钟 3 次)。您应该在问题中明确说明。

标签: anylogic


【解决方案1】:

我会使用注入功能而不是到达间隔模式。

通过使用事件,您走在了正确的轨道上。将事件设置为循环,循环时间为 11 分钟。行动将是:

if( getHourOfDay() >= 8 &&  getHourOfDay() <= 18 )
source.inject(3);

以下是一些可进一步指导您的图片:

【讨论】:

  • 使用这种方法,但是不能确定患者8点到达,事件周期给他们的延迟可能是11分钟!对吗?
  • 要解决此问题,您可以将第一次出现指定为确切的日期和时间。例如,不要选择 0 秒,而是选择模型的开始日期和时间 8。这样您将知道第一个将在时间 8 到达,然后每 11 分钟从那里到达。
  • 不起作用!第一天才准时!没有办法通过事件为源设置参数??
  • 是的,这是因为我既需要到达间隔时间,又需要每次到达时的三个速率!好的,谢谢你!如果我想增加一个小时的午休时间,我必须修改为函数 inject() 指定的时间间隔??
  • 您需要在 if 中添加一个额外的条件,例如 if( getHourOfDay() >= 8 && getHourOfDay() = 2 && getHourOfDay()
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2014-08-17
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2021-07-25
  • 2021-06-23
相关资源
最近更新 更多