我想做一个实时模拟,如果我想在 Dymola 中使用固定步长求解器,具有不同的步长,结果可能会有所不同,那么是否有任何标准程序来选择步长?或者我是否必须进行大量计算来证明步长独立性,就像在 CFD 区域中我需要证明网格独立性一样?
我不知道是否有标准程序,但证明数值稳定性对于非线性/混合模型的数值求解并不简单。因此,我会采用一些不严格的数学程序。由于您可以自由选择步长,因此我将执行以下操作。
选项 1(至少有一点数学背景):
freq. [Hz]StepSize = 1/max(freq) * 1/10注意:“线性分析”的其他功能可能也包含有用的信息,因此值得尝试运行它们。
上述方法的问题在于,非 LTI 系统的极点可能取决于模型的输入/状态。因此它可能会出错,因为结果分别取决于系统状态或线性化时间。
选项 2(只是通过跟踪和错误):
鉴于您大致了解步长应该是多少,您可以这样做:
注意:上面的步骤可以颠倒过来,从一个大步长开始,然后减小它直到结果匹配得足够好。
验证/微调
为了证明上述两个选项中的任何一个的结果都不是完全关闭,执行以下操作是有意义的:
For both Options
Note that when you change the system's properties (poles) or input the above procedure(s) should be repeated - at least the validation part.