- modelica/
- Modelica 如何理解;“限制步长”;及;“控制错误”;在迪莫拉
Modelica 如何理解;“限制步长”;及;“控制错误”;在迪莫拉
Modelica 如何理解;“限制步长”;及;“控制错误”;在迪莫拉,modelica,dymola,Modelica,Dymola,Dymola提供了一个分析数值积分过程的函数,主要的两个结果是“限制步长”和“控制误差”,我在我的模型中做了一些测试,如下面的屏幕截图所示
但我在分析这些数据时遇到了几个问题:
积分器如何选择Dymola中的积分步长
对于“限制步长”,这是否意味着积分器必须使用较小的步长,以便相应变量的积分可以收敛
对于“支配误差”,这是否意味着相应变量在迭代过程中会导致临界误差
我对OpenModelica的了解比Dymola多,但我想以下几点通常是正确的:
Dassl积分器(标准)使用BDF方法
(向后微
Dymola提供了一个分析数值积分过程的函数,主要的两个结果是“限制步长”和“控制误差”,我在我的模型中做了一些测试,如下面的屏幕截图所示
但我在分析这些数据时遇到了几个问题:
积分器如何选择Dymola中的积分步长
对于“限制步长”,这是否意味着积分器必须使用较小的步长,以便相应变量的积分可以收敛
对于“支配误差”,这是否意味着相应变量在迭代过程中会导致临界误差
我对OpenModelica的了解比Dymola多,但我想以下几点通常是正确的:
Dassl积分器(标准)使用BDF方法
(向后微分公式)并求解一个非线性系统
用牛顿来计算状态导数。你可以去的地方
提供一个积分器容差(我想默认值是10^-6)。这个
“解算器”为牛顿选择步长,以便它能够尊重该步长
容错性。我认为这是通过观察
雅可比矩阵的正则性。它离奇点有多近。特征值
限制步长:变量是约束性最强的变量。不是为了收敛,而是为了容错。加上步长实际上必须降低,否则我想这里不会跟踪李>
主要错误:我认为这是因为这个变量导致的收敛失败。它离应该的值最远。通常情况下,在这里会做一些事情,比如完全旋转和对值进行小的调整(除了降低步长之外)。关于最后一个,我不是100%确定
我对OpenModelica的了解比Dymola多,但我想以下几点通常是正确的:
Dassl积分器(标准)使用BDF方法
(向后微分公式)并求解一个非线性系统
用牛顿来计算状态导数。你可以去的地方
提供一个积分器容差(我想默认值是10^-6)。这个
“解算器”为牛顿选择步长,以便它能够尊重该步长
容错性。我认为这是通过观察
雅可比矩阵的正则性。它离奇点有多近。特征值
限制步长:变量是约束性最强的变量。不是为了收敛,而是为了容错。加上步长实际上必须降低,否则我想这里不会跟踪李>
主要错误:我认为这是因为这个变量导致的收敛失败。它离应该的值最远。通常情况下,在这里会做一些事情,比如完全旋转和对值进行小的调整(除了降低步长之外)。关于最后一个,我不是100%确定
Dymola中有几个不同的积分器。使用哪种阶跃控制器取决于所选积分器最适合什么。如前所述,默认的集成器是Dassl,它实现了BDF方法。选择步长的逻辑相当复杂,它与积分顺序选择交织在一起。简而言之,Dassl对局部误差进行估计,然后选择步长和顺序,以使估计值与用户提供的公差相匹配。有关详细信息,请参阅,尽管可能会对Dymola中使用的解算器进行自适应
“限制步长”是指该变量的误差(可能还有其他变量的误差)太大,以至于积分器必须放弃该步长,并用较小的步长重复该步长
从Dymola手册:
变量控制误差的次数,即
积分误差大于任何其他状态变量
因此,回答您的问题:这并不意味着严重错误(请参阅上面的“限制步长”)。相反,这只是意味着在这一特定步骤中,该状态的误差是所有状态中最大的。这一步骤可能已经成功
Dymola中有几个不同的积分器。使用哪种阶跃控制器取决于所选积分器最适合什么。如前所述,默认的集成器是Dassl,它实现了BDF方法。选择步长的逻辑相当复杂,它与积分顺序选择交织在一起。简而言之,Dassl对局部误差进行估计,然后选择步长和顺序,以使估计值与用户提供的公差相匹配。有关详细信息,请参阅,尽管可能会对Dymola中使用的解算器进行自适应
“限制步长”是指该变量的误差(可能还有其他变量的误差)太大,以至于积分器必须放弃该步长,并用较小的步长重复该步长
从Dymola手册:
变量控制误差的次数,即
积分误差大于任何其他状态变量
因此,回答您的问题:这并不意味着严重错误(请参阅上面的“限制步长”)。相反,这只是意味着在这一特定步骤中,该状态的误差是所有状态中最大的。这一步骤可能已经成功
我认为“严重错误”并不完全正确。支配误差意味着变量比其他变量有更大的估计数值误差,但这是由数值解算器管理的。我认为“临界误差”并不完全正确。支配误差意味着该变量比其他变量具有更大的估计数值误差,但这将由数值解算器进行管理。