1

如何在 Modelica 仿真期间确定上一个时间步的值?我有等式Q=m*c*(Ts2-Ts1-Tr),我需要从中提取Ts2价值Ts1

  • Ts2- 是时间步 2 的值
  • Ts1- 是上一个时间步的值
  • Ts是输入信号,它在时间上有变化。每一步都有不同的价值。在我的情况下,时间步长是 1s。其他值是固定的。

我可以在方程变量中设置time吗?例如:

Ts2 (start=time);
Ts (start=time-1);

还是应该在这个模型中输入?

关于 Tymofii

4

1 回答 1

4

这已经在一个类似的问题中得到解决。

关键是描述物理行为的方程不能参考时间步长。这是因为自然界或物理定律中没有“时间步长”,因此系统的响应不能依赖于它。

你并没有真正解释为什么你需要做你正在做的事情。您是否尝试提取模拟结果?您是否正在尝试与实验数据相关联?或者,你只是想解决一个微分方程?

目前还不清楚你想做什么。请详细说明,我们可能会给您一些关于如何在 Modelica 中进行操作的指导。

更新

使用“先前间隔”中的值很好。例如,如果您想定期对解决方案进行采样,表达“ z 变换”或在 Modelica 中实现卡尔曼滤波器,您可以非常轻松地完成其中的每一个(例如,请参见此处的“示例”关键字)。换句话说,可以存储任意数量的先前值。

您不能做的是使用连续求解器的时间步长来表达系统的行为方式。您引用的区间必须独立于求解器正在使用的任何区间。

于 2013-05-15T14:24:37.783 回答