我想模拟一个基于能量的质量弹簧模型的控制器:
model model
//constants
parameter Real m = 1;
parameter Real k = 1;
parameter Real Fmax = 3;
parameter Real x0 = 1;
parameter Real x1 = 2;
parameter Real t1 = 1;
//variables
Real x, v, a, xy, vm;
initial equation
x = x0;
v = 2;
equation
v = der(x);
a = der(v);
m * a + k * x = F;
algorithm
vm := sign(xy - x)*sqrt(2 * (Fmax * abs(xy - x) + k * (xy^2 - x^2) / 2) / m);
// step signal
if time < t1 then
xy := x0;
else
xy := x1;
end if;
if xy == x then
F := k * x;
else
F := sign(vm - v) * Fmax;
end if;
end model;
但这会导致erorr消息:
翻译错误
展平模型时发生错误
如果您能帮助我知道问题出在哪里以及如何解决,我将不胜感激。
P.S.1。 SIMULINK也无法完成!
P.S.2。。新版本的代码可以here看到。