我正在 Dymola 中构建一个类似于 Helmholtz-Media 的媒体库,但用于 Ammonia+Water,一种混合物。你会得到很多无法明确求解的方程。
由于 Modelica 中媒体和流体库的结构,我需要能够从 p、h 和 x 中获取我的热力学状态。状态向量由 d、T 和 x 组成。
这是一个如何获取状态向量的简单示例:
model getState_phX
parameter AbsolutePressure p = 500000 "pressure";
parameter SpecificEnthalpy h = 2500000 "enthalpy";
parameter SI.MassFraction x = 0.7 "mole fraction of amonia";
parameter Real[2] start = getStart_Td_phx(p,h,xL);
output ThermodynamicState state(d(start=start[2]),T(start=start[1]),X={(1 - xL),xL});
DerivateFull f = Derivates(state);
equation
p = (1 + f.delta*f.phirdelta)*R*state.T*state.d/molarMass(state);
h = state.T*R*(1 + f.delta*f.phirdelta + f.tau*f.phirtau + f.tau0*f.phi0tau0)/molarMass(state);
end getState_phX;
请不要介意方程式的部分。它们由取决于状态向量的许多部分(总和和对数)组成。这是由 Dymola 中的求解器以良好的起始值解决的。但我并不真正需要 Dassl 的所有“时间相关”解决能力。
是否有内置库可以在没有求解器的情况下求解此类静止方程系统?是否可以使用这些从这个模型中创建一个函数?
我知道我可以手动编写一个简单的求解器,但对于媒体模型(VLE)的其他部分,我也需要高度可靠的固定求解器(但有 4 个非线性独立方程)
如果我没有清楚地解释自己,请告诉我。感谢您的帮助。