Modelica

时间:2016-01-18 12:42:58

标签: function modelica

首先,请原谅我没有提供一个最小的工作示例,这是我真的想不到一个。我只是提供一些代码并“原则上”问我的问题。

我正在使用真实的气体模型(Peng-Robinson)进行热物理性质计算,在这里我在翻译模型时遇到问题,我使用压力 p 和特定的焓 h 作为计算所有其他属性的输入。当计算温度 T 时,它通过称为离开函数的等式链接到焓 h ,它本身就是一个函数Ť。在Modelica中它看起来像这样:

Dh_real = R_m*T*(Z - 1) + (T*dadT - a)/(sqrt(8)*b)*log((Z + (1 + sqrt(2))*B)/(Z + (1 - sqrt(2))*B));

此处adadTZ也是与温度相关的标量,部分使用矩阵运算(dadT)或多项式根计算({{1在函数中,Zb是参数。

从输入温度(在另一个模型中)计算焓非常简单且工作正常,解算器可以解析地解决离开函数。另一个方向必须以数字方式解决,我认为,这就是为什么Dymola在翻译时会给我这个错误。

B

现在Cannot find differentiation function: DadT_Unique2([some parameters and T]) with respect to time Failed to differentiate the equation dadT = DadT_Unique2([some parameters and T]); in order to reduce the DAE index. Failed to reduce the DAE index. 是模型中的一个函数,我使用一些简单的矩阵运算从某些参数和温度 T 计算DadT。显然,Dymola需要一些内部dadT - 函数的导数。 我在规范和网络上找不到任何关于此的内容。我能以某种方式提供功能的衍生物吗?我尝试了_Unique2 - 注释,但没有效果。我怎么处理这个?

1 个答案:

答案 0 :(得分:2)