我使用 OpenModelica v1.20.0 尝试了一个简单的示例,但发现结果令人困惑。
代码如下:
model test
Boolean state1;
Boolean state2;
Real f;
equation
f = if time<1 then 0.5 else if time<3 then 0.4 else if time<5 then 0.3 else if time<7 then 0.4 else 0.5;
state1 = f<=0.4;
state2 = f<0.4 or f==0.4;
end test;
Run Code Online (Sandbox Code Playgroud)
显然,state1(<=)的结果不等于state2(<或==),state1不是期望的结果。
为什么?