有关Modelica初始化的一般问题

时间:2020-04-09 16:24:51

标签: modelica

如何为所有可能用作迭代变量的变量设置值,例如,有一个热交换器,其中包含一些连接器,并且每个连接器中包含一些变量,我不知道哪些变量可以用作迭代变量,在进行初始化时,我是否需要为每个变量设置值,以便无论选择哪个变量作为迭代变量,都有一个合理的值?

2 个答案:

答案 0 :(得分:1)

奇迹,

我认为您在寻找解决方案上走了一条错误的路:为所有可能成为迭代变量的变量设置值通常太多,并且会导致错误和问题。但我认为无论如何我都能给您一些有用的建议。

  1. 别名变量:Modelica模型有很多别名变量。您应该始终尝试仅选择其中之一来设置起始值。
  2. 起始值和迭代变量之间的反馈:大多数Modelica工具将更喜欢选择设置了起始值的迭代变量。因此,选择较少的内容可以指导算法选择良好的算法。因此:不要过度使用它。
  3. 选择迭代变量的一般建议。对于纯ODE,状态有时始终是一组完整的起始变量,即使有时不是最佳变量也是如此。对于DAE,您可以从以下练习开始:将整个物理奇异摄动产生的所有方程式都视为带状态的微分方程式。例如,在热交换器中,您需要考虑动态动量平衡,而不是仅考虑代数压力损失的最常用静态减少,即将质量流作为状态添加。在化学反应中类似:将其视为动力学,而不是平衡反应。即使您通常不是最好的起点,这也为您提供了一个很好的起点。

如果您的问题不能完全解决,我建议您通过www.modelon.com与我们联系:我们在模型工具中提供了处理硬初始化和稳态问题的高级方法。 :-)

答案 1 :(得分:1)

还有一种最简单的方法来回答您的问题,可以很好地处理流体模型。 考虑到您正在使用动态模型,您需要初始化的是系统的状态变量。要了解状态变量,您可以知道要使用的模型的类型,也可以使用Dymola中的“列出选定的连续时间状态”之类的选项(我不知道其他工具)来挖掘它们,从而为您提供状态变量在翻译日志中。 对于流体模型,大多数情况下是压力和能量(焓或温度)。所有其他变量都将基于这些变量进行计算。

对于复杂(或不复杂)的模型,此方法具有局限性,有时可以通过更改/校正模型的结构来解决。

静态模型还有别的...

希望这会有所帮助:)

相关问题