0

首先,我是一个相对较新的用户。我正在尝试将物理测试数据与我使用 Dymola/Modelica 构建的模型相关联。在这个模型中,“变量 1”具有一个初始值,基于该初始值计算“变量 2,3 和 4”,这些变量(2,3 和 4)用于重新计算“变量 1”和“变量”的这个值1" 必须用于下一个时间步,并且必须进行后续的重新计算。

我不确定如何将这个“更新的变量 1”作为输入传递给每个时间步的模型?有人可以帮我解决这个问题吗?

谢谢。

4

1 回答 1

0

如果我很好地理解了这个问题,您有一个要解耦的方程组,即使用系统在前一个时间步的一些初始值或值求解一组方程,我们称这个方程组为 A,然后用它的结果作为下一个时间步的输入求解方程组 B,依此类推。下面是离散解耦系统的示例,其中通过时钟周期偏移获得解耦: 在此处输入图像描述 然后以耦合方式求解同一系统,因此在每个时刻,所有方程都同步求解: 在此处输入图像描述

要回复您的评论,您还可以使用 pre 运算符将模型实现到 when 语句中的方程式部分,该运算符用于在事件期间引用离散变量的最后一个值。

model test
  parameter Real timeStep = 0.1;
  Real T_i[4];
  Real K[4];
  Real M[4];
initial equation 
  T_i = {1,2,3,4}; //starting value of a T  
  K = T_i .* 1.1 .+ 4;
  M = K .* 1.1 .+ 4;
equation 
  when sample(timeStep,timeStep) then
      K = T_i .* 10 .+ 4;
      M = K .* 10 .+ 4;
      T_i = pre(M) + pre(K);
  end when;
end test;

我希望这有帮助

于 2016-02-22T21:39:10.760 回答