1

有人请解释为什么在 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;
4

1 回答 1

1

简短的回答是初始值仅被视为提示,您必须添加 fixed=true 属性来强制它们,如下所示:

 output Real x(start=L*cos(PI/4),fixed=true);

如果初始化变量受到约束,则固定属性不应用于所有初始化变量,而应用于“适当”子集,在这种情况下仅用于一个。

长答案可以在这里找到

于 2014-05-21T09:32:15.150 回答