Modelica 使用;将开始值保存在模型中;有助于Dymola收敛的选项

Modelica 使用;将开始值保存在模型中;有助于Dymola收敛的选项,modelica,dymola,Modelica,Dymola,我用dymola建立了一个模型。虽然初始化过程中出现了一些错误,但最终计算成功。 在模型成功收敛后,我尝试使用“在模型中保存起始值”选项来获取存储到模型中的正确迭代变量strat值,以便模型在下一次计算中不会出错。但在我这样做并再次尝试计算之后,我仍然得到相同的错误 所以,我的问题是: 我可以使用“在模型中保存起始值”来帮助收敛吗? 如果是,我应该怎么做 您确定有错误消息吗 模拟日志表明您已启用 模拟设置>调试>非线性迭代 这将在模拟日志中为非线性解算器的每次迭代提供调试消息,而不管是否存在

我用dymola建立了一个模型。虽然初始化过程中出现了一些错误,但最终计算成功。

在模型成功收敛后,我尝试使用“在模型中保存起始值”选项来获取存储到模型中的正确迭代变量strat值,以便模型在下一次计算中不会出错。但在我这样做并再次尝试计算之后,我仍然得到相同的错误

所以,我的问题是: 我可以使用“在模型中保存起始值”来帮助收敛吗? 如果是,我应该怎么做


您确定有错误消息吗

模拟日志表明您已启用 模拟设置>调试>非线性迭代

这将在模拟日志中为非线性解算器的每次迭代提供调试消息,而不管是否存在问题。(这有助于分析错误,但不应作为默认设置启用,因为它会生成大型日志文件。)


如果禁用该标志不能删除所有消息,则需要查看其余消息和模型以了解问题;正如前面指出的过程应该可以工作。

原因是我将某些参数的固定属性设置为false,将某些变量的固定属性设置为true,因此我可以使用变量的值初始化系统,并计算相应的参数。当使用“在模型中保存开始值”选项时,它会将结果存储到参数的开始属性中,但其值属性将保持不变。当我再次进行模拟时,Dymola不会使用参数的start属性,它仍然会使用参数的value属性。手动更改value属性后,将不再出现错误。

related:我也在上尝试了答案,如果我使用dfinal.txt继续模拟,它确实可以正常工作。但问题是,我只构建了整个模型的一小部分,如果我在模型中添加更多组件,计算就无法收敛,因此我无法获得有用的dfinal.txt文件。我认为我需要首先使模型收敛。以前,您的起始值没有更新,因为您没有更改它们。我认为在使用dsfinal.txt作为dsin.txt并进行第二次成功的模拟后,可以再次单击存储开始值,这一次它应该更新开始值。在成功计算后,我导入dfinal.txt文件作为初始值,然后计算结束,没有错误。因此,我再次使用“在模型中保存起始值”选项,每个组件中的起始值实际上都会改变。下面是Dymola生成的自定义参数的屏幕截图。但是当我尝试做另一个模拟时,仍然存在错误。这个想法来自《ThermoSysPro对火力发电厂的建模和模拟》一书。以下是提供更好的初始化值的过程。就像你说的,不是那种错误导致计算停止。我认为这是因为提供的猜测值是合适的,因此需要更多的步骤来收敛模型。我想做的是从结果中提取正确的猜测值并将其存储到模型中,以便使模型更快收敛。显示的消息是调试消息,而不是错误消息。它们可以通过禁用来禁用:模拟设置>调试>非线性迭代。也可能有错误消息,但我们无法看到它们。