首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >求解Dymola中非线性系统模型的最大能力是多少?

求解Dymola中非线性系统模型的最大能力是多少?
EN

Stack Overflow用户
提问于 2020-04-24 12:51:18
回答 2查看 192关注 0票数 2

在Dymola中,我经常会遇到一个非线性系统初始化失败,或者是一个在大型热流体系统中很难解决的刚性系统,但是对于一个简单的系统来说,不会出现这样的问题。我的问题是:

  1. ,所以我想知道,求解非线性系统模型的最大能力是多少?例如,我最多可以在我的模型中包含多少个非线性方程?
  2. ,在Dymola中是否有允许提高求解非线性系统能力的设置?
  3. ,如何在不损害模型精度的情况下减少模型中的非线性方程的数量?
EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2020-04-29 14:00:53

这些都是相当困难的问题,要以普遍有效的方式来回答。尽管如此,我仍将尝试与Dymola和非线性系统分享我的一些经验。

  1. 没有硬数字来限制大小。它更多地取决于方程的非线性程度,而不是它们的数目。我用尺寸为150的非线性系统模拟了模型,这些非线性系统相当稳定,而其他尺寸为10的系统可以刹车.
  2. 这个

有多个方面。

代码语言:javascript
运行
复制
- I have worked on some models that made the C-Compiler run out of memory during compilation. If you have this sort of problem, forcing 64Bit compilation by setting `Advanced.CompileWith64=2` can help. Then you shouldn't run out of memory any more. This only refers to the size only.
- Performance for non-linear systems can be improved by activating DAE-mode by setting `Advanced.Define.DAEsolver=true`. This does not work with all solvers though.
- Additionally to the above it can help to set `Advanced.MoveEquationsToDynamics=true`, for which the manual states: "It forces the integrator to solve the nonlinear equations each integrator step and thereby it also updates the initial guesses more often."
- As mentioned by Erik, the `homotopy()`-operator can be very important as it helps the solver converging in case of difficult initialization.

  1. ,这是非常特定于模型的。解耦可以帮助,例如,通过添加能量存储元件/状态将系统分解成较小的系统。这可以根据系统的物理进行,如果可能的话是最好的解决方案。作为一种(更人工的)替代滤波器/延迟可以被添加。这通常会对准确性产生负面影响。
票数 7
EN

Stack Overflow用户

发布于 2020-04-30 06:49:30

我非常同意Markus的建议,但也想提醒大家一下Modelica的同伦算子。一个精心选择的简化模型可以极大地帮助Dymola对一个大而困难的非线性系统的模型进行初始化。

通常,在求解非线性系统时,良好的初始猜测是非常重要的。使用同伦只是提供这些好猜测的一种隐式方法。

票数 5
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/61408790

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档