【问题标题】:How to use resources dynamically in anylogic?如何在anylogic中动态使用资源?
【发布时间】:2019-06-28 10:11:44
【问题描述】:

我正在 Anylogic 中模拟一个行业。它由三个相等的生产线组成,它们都具有相同数量的流程(在服务案例中),并且每个服务都附加了一个资源(又名机器)。三条生产线生产的产品最终只会连接在一起(在交货前的最终库存)。 但是,我每条线的最后一道工序在需要的时候可以有资源(机器)的增减。例如,生产线 1 出现机器故障并停止了一段时间,现在需要 6 台机器来完成订单,而不是需要 4 台机器。 此外,如果放置在此过程中的其中一台机器发生故障(由于故障),我需要该服务继续工作但资源较少。例如,我在 1 号线的最后一道工序中有 4 台机器,其中一台出现故障,我希望另外 3 台继续生产。 可以为此使用哪种可能的解决方案?我试图在服务本身中模拟这一点,但它不能使用比指定更少的资源。

【问题讨论】:

    标签: anylogic


    【解决方案1】:

    据我了解,我认为您需要分别对这三行进行建模,并为您的机器使用三个不同的资源池。这样做您将可以控制每条线路的资源容量,并可以根据任何事件更改它们。如果您的问题是关于如何在另一条线路故障时更改一条线路的容量,我建议在资源故障中使用“发送到流程图”选项,您可以使用流程图块来更改容量并执行任何其他必要的代码。

    如果您的 3 行相同,您可以创建一个自定义流程图块并将 resourcePool 作为参数传递给自定义块。这样您就不必重复您的逻辑三次。

    【讨论】:

    • 感谢您的回答!我实际上已经对这三行(分别)进行了建模,但是,我想为这三行的最后一个进程(服务)使用一个公共资源池。那是因为:我有 12 台相同类型的机器,它们可以在需要时在服务(和线路)之间互换。默认为每个进程 4 台机器(因此 3 行 = 12 台机器)。我的问题是:即使服务中的一台机器发生故障,我如何告诉系统处理我的产品。使用服务是不是最好的主意?
    • 好的。我认为您可以在不创建 12 个资源池的情况下做到这一点的一种方法是让您的单个资源具有 12 个容量并手动为您的故障建模。除了使用资源池中的故障设置,您可以创建一个简单的逻辑,其中资源任务的来源以您的故障率进入并占用池中的一个单元,延迟修复时间并离开。这样你的容量会减少,但剩余容量仍然可以使用。
    • 我不太明白你的逻辑。我想使用容量 = 12 的资源池是智能的。但是,我应该如何创建这个逻辑?我应该在所有三行上创建它吗?用更简单的方式思考,如果我只有一条线和一个进程,并且在这个过程中我可以改变资源的容量(所以有动态资源),这将如何工作?
    • 我的意思是,当一台机器发生故障时,您可以使用不同的代理来占用一个容量,而不是尝试更改资源的容量。假设您有每小时发生一次的故障,需要 5 分钟才能修复。添加一个到达率为 1 的源块(与您当前的逻辑分开),添加一个占用资源 1 容量且延迟为 5 分钟的服务块,并添加一个接收器块。每次代理到达此源时,您都会将容量减少 1,当他们离开服务块时,容量会恢复。
    猜你喜欢
    • 2021-10-13
    • 2020-10-03
    • 2020-09-17
    • 2020-02-20
    • 2017-07-31
    • 2021-11-01
    • 2022-01-15
    • 2019-08-05
    • 2018-09-16
    相关资源
    最近更新 更多