关于Modelica中非零实验StartTime是否会引发模型初始稳态行为的技术问询
关于Modelica中非零实验StartTime是否会引发模型初始稳态行为的技术问询
我最近在研究Modelica实验注解里设置非零StartTime参数时的建模行为,原本以为它只是会隐藏StartTime之前的输出结果,不会影响模型本身的运行逻辑,但实际测试下来发现并不是这样。
我写了一个最小测试模型(MWE):
model testStartTime Real x; Real y; Real z; initial equation x = 1; equation der(x)=x; y = 200*time; z = exp(time); annotation ( experiment(StartTime = 3, StopTime = 8, Tolerance = 1e-06, Interval = 0.01)); end testStartTime;
按照我的预期,x和z应该在数值精度范围内保持一致:也就是x(3.0)应该等于z(3.0),也就是exp(3.0)≈20.08。但实际运行结果是,z(3.0)确实是20.08(符合预期),但x(3.0)却等于1。
我调整初始方程里x的初始值后,x(3.0)就会变成我设置的那个初始值,完全没有考虑0≤time<3.0这段时间内系统的演化过程。我在多个Modelica工具里测试都遇到了同样的行为。
我现在的核心疑问是:Modelica里实验注解的非零StartTime,是不是本质上是把这个时间点当作模型的初始仿真起点,直接用初始方程的条件作为该时间点的状态,而不是让模型从t=0开始演化到StartTime?这和我一开始理解的“只是截取输出时段”的逻辑完全不符,有没有熟悉Modelica仿真逻辑的朋友能帮我理清这个点?
备注:内容来源于stack exchange,提问作者mkindig
相关产品推荐
相关产品推荐

