我该如何解决这个问题?有4个冗余方程

0 modelica

太简单了,但我无法修复它。非常感谢。

错误:
有4个冗余方程

代码:

model Test1
  Real T[4];
  Real S[3];
  Real alpha;
  Real beta;
equation 
  T[1] = 5;
  for i in 1:3 loop 
    if T[i] > 2 then 
      alpha = 2;
      beta = 1;
    else
      alpha = 1;
      beta = 2;
    end if;
    S[i] = T[i] - 1;
    T[i + 1] = T[i] - (alpha * 2) / (2 * S[i] + beta);
  end for;
end Test1;
Run Code Online (Sandbox Code Playgroud)

Ren*_*sen 5

alpha您对和都有多项“作业” beta

在循环的每次迭代中,为和for建立一个新方程,导致 4 太多。alphabeta

解决方法将使用“算法”部分而不是“方程”,这将根据您的意愿局部平衡变量和方程。

model Test1
  Real T[4];
  Real S[3];
  Real alpha;
  Real beta;
algorithm 
  T[1] := 5;
  for i in 1:3 loop
    if T[i] > 2 then
      alpha := 2;
      beta := 1;
    else
      alpha := 1;
      beta := 2;
    end if;
    S[i] := T[i] - 1;
    T[i + 1] := T[i] - (alpha*2)/(2*S[i] + beta);
    T[i + 1] := T[i];
  end for;
end Test1;
Run Code Online (Sandbox Code Playgroud)