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