8

我想在 Modelica 中建模一个明确的时间相关微分方程。

说我想建模

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

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

4

1 回答 1

14

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;

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

于 2011-08-07T16:50:13.240 回答