Anylogic:如何有条件地关闭/打开阀门

时间:2018-03-21 16:12:15

标签: anylogic

我是Anylogic的新人。我有一个简单的模型,使用流体动力学库:两个罐和它们之间的阀门。阀门必须以一定的速度打开,比如X,只有当第一个油箱中的数量(比如tank_1)是第二个油箱的两倍时才会打开,比如坦克_2 你能帮帮我吗? 此致

1 个答案:

答案 0 :(得分:0)

根据不同的情况,您可能有更多关于阀门使用条件的条件。但是当tank_1正好比tank_2大2倍时,让某事发生是个坏主意......相反,创建一个布尔变量来告诉你当前情况是tank_1是否超过2 * tank_2。我们称之为“BelowTank2”。我将假设tank_1在模拟开始时低于2 * tank_2。所以underTank2是真的。

然后创建一个每秒循环运行的事件,如果需要,甚至更频繁地运行,并使用以下代码:

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

时,它将再次触发更改