我想在Modelica中建立一个与时间相关的微分方程的模型。

说我想建模

Real x(start=1);
der(x) = t;

在Modelica中。访问时间变量t的正确方法是什么?

最佳答案

Modelica中的时间变量称为time,它可以在任何模型或块中访问(但不能在包,记录,连接器或函数中访问)。

另外,建议不要使用start属性,而是使用初始方程式。因此,您的完整模型应如下所示:

model FirstOrder
  Real x;
initial equation
  x = 1;
equation
  der(x) = time;
end FirstOrder;
initial equation部分中的方程式仅用于求解状态的初始值。上面显示的方程式很简单,但是您可以做一些有趣的事情,例如:
model FirstOrder_IC2
  Real x;
initial equation
  x*x*x = 3.0*time+7.0;
equation
  der(x) = time;
end FirstOrder_IC2;

这里的要点是,除了可以直接指定状态值的方程式之外,还可以使用其他方程式。上面的初始方程式不是“物理上”有趣的,而是在数学上是因为它既是非线性的又是随时间变化的(即对模拟的开始时间敏感)。

关于differential-equations - 如何在Modelica中访问时间变量,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/6963112/

10-11 07:42