Modelica 非线性求解器';在Dymola中初始化时不收敛
使用ThermoSysPro库时,我在初始化过程中遇到错误 看起来Turbine5.Pe比Turbine2.Pe大,所以结果是负数。但是我检查了我的参数,不应该有这样的问题 这是因为非线性解算器无法解下图中的方程吗Modelica 非线性求解器';在Dymola中初始化时不收敛,modelica,dymola,Modelica,Dymola,使用ThermoSysPro库时,我在初始化过程中遇到错误 看起来Turbine5.Pe比Turbine2.Pe大,所以结果是负数。但是我检查了我的参数,不应该有这样的问题 这是因为非线性解算器无法解下图中的方程吗 没有足够的信息,我建议在“模拟设置”>“调试”>“非线性解算器诊断”中设置详细信息和/或非线性迭代,以获取更多信息 导致问题的完整表达式是sqrt((Turbine2.Pe^2-Turbine5.Pe^2)/(Turbine2.Cst*Turbine2.proe.T)) 由于这两
没有足够的信息,我建议在“模拟设置”>“调试”>“非线性解算器诊断”中设置详细信息和/或非线性迭代,以获取更多信息 导致问题的完整表达式是
sqrt((Turbine2.Pe^2-Turbine5.Pe^2)/(Turbine2.Cst*Turbine2.proe.T))
由于这两个Pe值为fixed=true,因此它们似乎不太可能是错误的,但如果没有完整的模型,就不可能看到
然而,Cst
或proe.T
也可能为负值,或基于其他值计算为负值
没有一个完整的模型是不可能分辨出来的。没有足够的信息,我建议在模拟设置>调试>非线性求解器诊断中设置细节和/或非线性迭代,以获得更多信息 导致问题的完整表达式是
sqrt((Turbine2.Pe^2-Turbine5.Pe^2)/(Turbine2.Cst*Turbine2.proe.T))
由于这两个Pe值为fixed=true,因此它们似乎不太可能是错误的,但如果没有完整的模型,就不可能看到
然而,Cst
或proe.T
也可能为负值,或基于其他值计算为负值
没有一个完整的模型是不可能分辨的。根据ThermoSysPro(来自EDF的开源库)和ThermalPower(来自Modelon的商业库)之间的比较,对于面临同样情况的人来说,应该会有一些启示 以下是ThermoSysPro库的代码表:
Connectors.FluidInlet Ce
Connectors.FluidOutlet Cs
以下是热电库中的类型代码:
Interfaces.FlowPort feed(
h_outflow(start=hstartin))
Interfaces.FlowPort drain(
p(start=pstart),
h_outflow(start=hstartout))
从代码中,我们可以看到,在Thermal Power库中,每个连接器的属性都是根据参数指定的值,但在ThermasysPro库中,连接器使用的是默认值,可能是零。因此,这就是热电库在初始化收敛方面具有更好性能的原因。根据ThermoSysPro(来自EDF的开源库)和ThermalPower(来自Modelon的商业库)之间的比较,对于面临相同情况的人应该会有一些启示 以下是ThermoSysPro库的代码表:
Connectors.FluidInlet Ce
Connectors.FluidOutlet Cs
以下是热电库中的类型代码:
Interfaces.FlowPort feed(
h_outflow(start=hstartin))
Interfaces.FlowPort drain(
p(start=pstart),
h_outflow(start=hstartout))
从代码中,我们可以看到,在Thermal Power库中,每个连接器的属性都是根据参数指定的值,但在ThermasysPro库中,连接器使用的是默认值,可能是零。这就是为什么Thermal Power library在初始化收敛方面有更好的性能我只是想知道如何处理这个问题。这是因为初始化过程中迭代变量的起始值与正确的解决方案相差太远。通过将Advanced.DebugHomotopy标志设置为true,Dymola将创建一个名为continuation.csv的文件,其中包含导致问题的迭代变量。我只是想知道如何处理这个问题。这是因为初始化过程中迭代变量的起始值与正确的解决方案相差太远。通过将Advanced.DebugHomotopy标志设置为true,Dymola将创建一个名为continuation.csv的文件,其中包含导致问题的迭代变量。