在初次使用modelic不知道如何定义一个变量的初值,一般系统会默认其初值为0,导致有些仿真不能进行,学习了一会之后发现是个很简单的事。
常见的错误格式
theta= if time=0 then 0.1;
theta(0)=0.1;
系统默认时间是一个维度,但是不会将随着时间变化的值用时间参数来调用。。。。。
- 代码
model Model4
model Model4
annotation (Diagram(coordinateSystem(extent = {{-140.0, -100.0}, {140.0, 100.0}},
preserveAspectRatio = false,
grid = {2.0, 2.0})),
Icon(coordinateSystem(extent = {{-100.0, -100.0}, {100.0, 100.0}},
preserveAspectRatio = false,
grid = {2.0, 2.0})),
experiment(StartTime = 0, StopTime = 10, NumberOfIntervals = 500, Algorithm = “Dassl”, Tolerance = 0.0001, DoublePrecision = true));
parameter Real L = 2;
constant Real g = 9.8;
Real theta(start = 0.1);
Real omega;
// theta(0)=0.1;
equation
der(theta) = omega;
der(omega) = -(g / L) * theta;
end Model4;`