【发布时间】:2016-07-20 18:00:29
【问题描述】:
我正在使用 PowerSystem 库玩 OpenModelica,发现了一些奇怪的东西。
为了全面了解块类中的方程约束是什么,我总是单独打开每个块并对其进行实例化,以获得扁平模型的变量和方程的完整列表。
但是,我注意到,当我这样做时,实例化的模型有额外的方程,这些方程没有在代码中定义,涉及模块的类或任何父类的类,当我在另一个模型中使用模块时也不存在。
例如,在为简单电阻器 (AC1ph_DC) 实例化类时,它会添加使电流为零的方程式(最后四个方程式):
R[1] * i[1] = v[1];
R[2] * i[2] = v[2];
v[1] = term_p.v[1] - term_n.v[1];
v[2] = term_p.v[2] - term_n.v[2];
i[1] = term_p.i[1];
i[2] = term_p.i[2];
(...)
term_p.i[1] = 0.0;
term_p.i[2] = 0.0;
term_n.i[1] = 0.0;
term_n.i[2] = 0.0;
这是否由 OpenModelica 自动完成以在仅实例化电阻器时拥有一个可解的系统?是否有任何可用的文档?
另外,是否有任何“更正确”的方法来可视化任何块的扁平类代码?
【问题讨论】:
-
正确的方法是实例化模型以查看完整的方程(扁平化的 Modelica 代码)。
-
感谢 cmets。虽然实例化模型可能是“正确的”方法,但我觉得它不太有趣,因为我们无法追踪与特定变量/方程相关的类(块)。
-
然后您可以使用 OMEdit 中的静态调试器来了解最终方程系统。它提供了返回源代码的链接。
标签: modelica openmodelica