【问题标题】:Anylogic: How to conditionally close/open a valveAnylogic:如何有条件地关闭/打开阀门
【发布时间】:2018-08-30 20:55:22
【问题描述】:

我是 Anylogic 的新手。我有一个简单的模型,使用流体动力学库:两个罐和它们之间的阀门。只有当第一个水箱(例如 tank_1)中的量是第二个水箱(例如 tank_2)的量的两倍时,阀门才必须以某个速率(例如 X)打开 你能帮我解决这个问题吗? 问候

【问题讨论】:

    标签: anylogic


    【解决方案1】:

    根据不同的情况,您可能对阀门的使用有更多的条件。但是当 tank_1 正好是 tank_2 的 2 倍时发生某些事情是一个坏主意...相反,创建一个布尔变量来告诉您当前情况是 tank_1 是大于还是小于 2*tank_2。我们称它为“belowTank2”。我将假设 tank_1 在模拟开始时低于 2*tank_2。所以下面的Tank2 是真的。

    然后您创建一个每秒循环运行的事件,如果您愿意,可以更频繁地运行,并使用以下代码:

    if(belowTank2){
        if(tank_1.amount()>2*tank_2.amount()){
            valve.set_openRate(0.1);
            belowTank2=false;
        }   
    }else{
        if(tank_1.amount()<2*tank_2.amount()){
            valve.set_openRate(0.3);
            belowTank2=true;
        }
    }
    

    所以这意味着只要 tank_1 超过 2*tank_2,就会触发阀门上的速率变化。当它低于 2*tank_2 时会再次触发变化

    【讨论】:

      猜你喜欢
      • 2021-02-23
      • 1970-01-01
      • 2018-07-19
      • 2021-06-28
      • 2017-07-11
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多