model H2_Vessel
parameter Integer nPorts=2;//代表几个端口 有可能只有入口 还有可能是进出口
Modelica.Fluid.Interfaces.FluidPort_a [nPorts]portArray
annotation (Placement(transformation(origin={-56.579,4.6322},
extent={{-10,-10},{10,10}})));
replaceable package H2_medium=Modelica.Media.IdealGases.SingleGases.H2;//氢气介质
parameter Modelica.Units.SI.SpecificEnthalpy h_initial=300e3;//罐内的初始焓值
parameter Modelica.Units.SI.AbsolutePressure P_initial=2e5;//罐内的初始压力
parameter Modelica.Units.SI.Volume V=2;//罐的体积
Modelica.Units.SI.Mass mass;//罐内的质量
Modelica.Units.SI.Density Rho;//罐内的密度
Modelica.Media.Interfaces.Types.SpecificEnthalpy h;//罐内的比焓
Modelica.Media.Interfaces.Types.AbsolutePressure P;//罐内的压力
Modelica.Media.Interfaces.Types.MassFraction[:] Xi={1};//纯氢气
H2_medium.ThermodynamicState H2_TankState;
initial equation
//为罐内的热力学参数赋值
P=P_initial;//罐内的初始压力
h=h_initial;//罐内的初始焓值
Rho=H2_medium.density_phX(P,h,Xi);//罐内的密度(代表在初始阶段和equation阶段都执行)
equation
//罐内的质量
Rho=H2_medium.density_phX(P,h,Xi);//罐内的密度(代表在初始阶段和equation阶段都执行)
mass=V*Rho;
//质量守恒
Vder(Rho)=sum(portArray.m_flow);//portArray[0].m_flow+portArray[1].m_flow;
//能量守恒
massder(h)=sum(portArray.m_flow.(portArray.h_outflow-hones(nPorts)))+Vder(P);//portArray[0].m_flow(portArray[0].h_outflow-h)+portArray[1].m_flow*(portArray[1].h_outflow-h);
//三大变量守恒
H2_TankState=H2_medium.setState_phX(P,h,Xi);//
der(Rho)=H2_medium.density_derh_p (H2_TankState)*der(h)+H2_medium.density_derp_h(H2_TankState)*der(P);
//压力平衡
portArray.p=Pones(nPorts);
//焓值平衡
portArray.h_outflow=hones(nPorts);
end H2_Vessel;函数 Modelica.Media.Interfaces.PartialMedium.density_derh_p 的定义中不包含算法区或外部函数接口.