有人请解释为什么在Windows中的OMEdit v1.9.1 beta2中编译和模拟的以下openmodelica模型中正确处理初始条件,但是如果第5行被注释并且6未注释(x,y)被初始化为(0.5,0)? 谢谢。
class Pendulum "Planar Pendulum"
constant Real PI = 3.141592653589793;
parameter Real m = 1,g = 9.81,L = 0.5;
Real F "Force of the Rod";
output Real x(start=L*sin(PI/4)) ,y(start=-0.35355);
//output Real x(start = L * sin(PI / 4)), y(start=-L*sin(PI/4));
output Real vx,vy;
equation
m * der(vx) = -x / L * F;
m * der(vy) = (-y / L * F) - m * g;
der(x) = vx;
der(y) = vy;
x ^ 2 + y ^ 2 = L ^ 2;
end Pendulum;
答案 0 :(得分:1)
简短的回答是,初始值仅被视为提示,您必须添加fixed = true属性以强制它们如下:
output Real x(start=L*cos(PI/4),fixed=true);
如果初始化变量受到约束,则不应在所有已初始化的变量上使用fixed属性,而应使用“<子集,在这种情况下只有一个。
可以找到长答案here