在Modelica仿真中包含因果关系会导致扁平化模型时发生翻译错误

时间:2019-02-20 09:28:08

标签: modelica openmodelica jmodelica systemmodeler

我想模拟一个基于能量的质量弹簧模型的控制器:

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看到。

0 个答案:

没有答案