Buildings.Fluid.CHPs.OrganicRankine
Package for the rankine cycle
Information
Package with a model of an organic Rankine cycle.
Extends from Modelica.Icons.VariantsPackage (Icon for package containing variants).
Package Content
Name | Description |
---|---|
![]() |
Organic Rankine cycle as a bottoming cycle |
![]() |
Organic Rankine cycle as a bottoming cycle |
![]() |
Package with working fluid data |
![]() |
Package containing example models |
![]() |
Collection of validation models |
![]() |
Package with base classes |
Buildings.Fluid.CHPs.OrganicRankine.ConstantEvaporation
Organic Rankine cycle as a bottoming cycle
Information
Model of an organic Rankine cycle (ORC) as a bottoming cycle.
The thermodynamic cycle is steady-state while the evaporator and the condenser
can be configured to have first order dynamics.
The fluid stream 1 (using Medium1
, port_a1
, etc.)
is the evaporator hot fluid, e.g., waste heat,
and the stream 2 is the condenser cold fluid.
The working fluid of the cycle is not based on a typical Modelica medium model.
See the Thermodynamic Properties section of this document for the rational.
Cycle Architecture and Governing Equations
The implemented ORC is modeled based on the simplified cycle shown in the figure below. The cycle has two variants depending on the shape of the saturation lines of the working fluid and ηexp. For any given working fluid, the cycle is fully determined by providing the working fluid evaporating temperature Tw,eva, the working fluid condensing temperature Tw,con, the expander efficiency ηexp, and the pump efficiency ηpum. The superheating temperature difference ΔTsup is minimized, meaning it is zero whenever possible; otherwise it assumes the smallest value not to cause the expander outlet state to fall under the two-phase region, i.e. the "dome". Subcooling after the condenser is not considered. The Thermodynamic Properties section of this document details how these state points are found.
An important assumption is that all heat is dissipated, i.e., the cycle is not controlled by thermal load.
The cycle processes the heat at a fixed Tw,eva provided by the user. The evaporator heat exchange is governed by
Q̇eva = ṁh cp,h (Th,out - Th,in),
Q̇eva = ṁw (hpum,out - hexp,in),
where the subscripts are eva for evaporator, exp for expander, h for hot fluid of the evaporator, i.e. the fluid carrying heat, pum for pump, and w for working fluid.
The cycle accommodates the variable flow rate and temperature of the waste heat stream by changing the working fluid mass flow rate ṁw to maintain a constant pinch point (PP) temperature difference at the evaporator ΔTpin,eva. This difference is found from
(Tpin,eva - Th,out) (hexp,in - hpum,out)
= (Th,in - Th,out) (heva,pin - hpum,out),
ΔTpin,eva = Tpin,eva - Tw,eva.
The condenser side uses the same equations with the evaporator variables replaced by their condenser counterparts where appropriate. Hence,
Q̇con = ṁc cp,c (Tc,out - Tc,in),
Q̇con = ṁw (hpum,in - hexp,out),
(Tc,pin - Tc,in) (hexp,out - hpum,in)
= (Tc,out - Tc,in) (hcon,pin - hpum,in),
ΔTcon,pin = Tw,con - Tc,pin,
where the subscripts are
con for condenser, and
c for cold fluid in the condenser.
The electric power output of the expander is
Pexp = ṁw (hexp,in - hexp,out).
The electric power consumption of the pump is
Ppum = ṁw (hpum,out - hpum,in).
The pump work is
Ppum = ṁw (peva - pcon) / (ρpum,in ηpum).
This takes advantage of the negligible density change of the liquid to avoid a property search in the subcooled liquid region.
In summary, the model has the following information flow:
User-specified parameters | Inputs | Outputs |
---|---|---|
Tw,eva - Working fluid evaporating temperature, ΔTpin,eva - Evaporator pinch point temperature difference, ΔTpin,con - Condenser pinch point temperature difference, ηexp - Expander efficiency, ηpum - Pump efficiency. |
Th,in - Evaporator hot fluid incoming temperature, ṁh - Evaporator hot fluid flow rate, Tc,in - Condenser cold fluid incoming temperature, ṁc - Condenser cold fluid flow rate. |
ṁw - Working fluid flow rate, Tw,con - Working fluid condensing temperature, Th,out - Evaporator hot fluid outgoing temperature, Tc,out - Condenser cold fluid outgoing temperature, Q̇eva - Evaporator heat flow rate, Q̇con - Condenser heat flow rate, Pexp - Expander power output, Ppum - Pump power consumption. |
Constraints
The ORC system controls ṁw to maintain the prescribed evaporator PP temperature difference set point. Although the model does not implement this as a control loop, an upper limit and a lower limit are imposed on ṁw to reflect the capacity constraints of a sized cycle.
- The working fluid mass flow rate ṁw will not go higher than a prescribed upper limit. Rather, ṁw stays at the user-specified upper limit and ΔTpin,eva increases beyond its set point. This may happen when the incoming hot fluid has a high flow rate or a high incoming temperature, i.e., it carries more energy than the cycle is sized to process.
- When the working fluid mass flow rate ṁw needs to go below a prescribed lower limit, ṁw is set to zero and the cycle is switched off. This may happen when the incoming waste heat fluid has a low flow rate or a low incoming temperature, i.e., it carries too little energy.
How these constraints affect the cycle's behavior reacting to a variable waste heat fluid stream is demonstrated in Buildings.Fluid.CHPs.OrganicRankine.Validation.VariableSource.
Thermodynamic Properties
The thermodynamic properties of the working fluid are not computed by a typical
Modelica medium model, but by interpolating data records in
Buildings.Fluid.CHPs.OrganicRankine.Data.
Specific enthalpy and specific entropy values are provided as support points
on the saturated liquid line, the saturated vapor line, and
a superheated vapor line (called the reference line).
The values of these support points were obtained using CoolProp
(https://www.coolprop.org;
Bell et al., 2014) through its Python wrapper and stored as Modelica records.
An example Python file is provided in
Buildings/Resources/Python-Sources/MakeORCFluidRecord.py
,
but note that this file is not maintained.
The records included in this library have ten data points for each line.
It is recommended to have at least four points to take full advantage of
the cubit Hermite spline interpolation that is set up in this model.
Thermodynamic state points in the cycle are determined by various schemes of interpolation and extrapolation.
-
On the saturation line, the specific enthalpy, specific
entropy or density, here labeled as yA, are obtained
using cubic Hermite spline interpolation as
yA = s(uA,d)
where s(·,·) is a cubic Hermite spline, uA is the input property, and d are the support points. For the saturation curves, the user can configure the model to use either the saturation pressure or the saturation temperature for uA. For the reference line uA is the pressure. -
If the fluid is wet, the isentropic expander outlet point is in between
the saturation lines. In this case, its enthalpy hB
is obtained from
(hB - h1) / (sB - s1) = (h2 - h1) / (s2 - s1)
where sB is known because it equals the expander inlet entropy, and all other points are on the saturation line and therefore can be found as point A. - C is a point in the superheated vapor region. This is the case for the expander inlet or outlet depending on the shape of the cycle. The isobaric lines are not straight in this section, but they are assumed linear so that the method for B can be applied using the saturated vapor line and the reference line, albeit with less accuracy.
The cycle can be completely defined by providing the following quantities: evaporating temperature Teva or pressure peva, condensing temperature Tcon or pressure pcon, expander efficiency ηexp, and pump efficiency ηpum. Most of the important state points can be found via the interpolation schemes described above. The only exceptions are the expander inlet, expander outlet, and the pump outlet.
-
A dry cycle is a cycle where the expansion starts from
the saturated vapor line and ends in the superheated vapor region.
For either a dry fluid (a) or a wet fluid (b) undergoing such a cycle,
hexp,out - hexp,in = (hexp,out,ise - hexp,in) ηexp
where hexp,out is solved and hexp,in is known. -
A wet cycle is a cycle where the expansion starts from
the superheated vapor region and ends on the saturated vapor line.
In this scenario,
hexp,out - hexp,in = (hexp,out - hexp,inl,ise) ηexp
where hexp,out is known and hexp,in is solved. For this fluid and this ηexp, if the expansion started from the saturated vapor line, the outlet point would end up under the dome.
Implementation
The user can parameterise the evaporating condition by providing either the evaporating temperatureTWorEva
or the evaporating pressure
pWorEva
. To support this, a default parameter assignment is
provided to both. Otherwise there would be unassigned parameters even though
they are not needed.
References
Bell IH, Wronski J, Quoilin S, Lemort V. Pure and pseudo-pure fluid thermophysical property evaluation and the open-source thermophysical property library CoolProp. Industrial & engineering chemistry research. 2014 Feb 12;53(6):2498-508. https://doi.org/10.1021/ie4033999
Extends from Buildings.Fluid.Interfaces.FourPortHeatMassExchanger (Model transporting two fluid streams between four ports with storing mass or energy).
Parameters
Type | Name | Default | Description |
---|---|---|---|
replaceable package Medium1 | PartialMedium | Medium 1 in the component | |
replaceable package Medium2 | PartialMedium | Medium 2 in the component | |
Nominal condition | |||
MassFlowRate | m1_flow_nominal | mHot_flow_nominal | Nominal mass flow rate [kg/s] |
MassFlowRate | m2_flow_nominal | mCol_flow_nominal | Nominal mass flow rate [kg/s] |
PressureDifference | dp1_nominal | dpHot_nominal | Pressure difference [Pa] |
PressureDifference | dp2_nominal | dpCol_nominal | Pressure difference [Pa] |
Cycle | |||
Generic | pro | redeclare parameter Building... | Property records of the working fluid |
MassFlowRate | mWor_flow_max | Upper bound of working fluid flow rate [kg/s] | |
MassFlowRate | mWor_flow_min | Lower bound of working fluid flow rate [kg/s] | |
MassFlowRate | mWor_flow_hysteresis | mWor_flow_min + (mWor_flow_m... | Hysteresis for turning off the cycle when flow too low [kg/s] |
Efficiency | etaExp | Expander efficiency [1] | |
Efficiency | etaPum | Pump efficiency [1] | |
Evaporator | |||
MassFlowRate | mHot_flow_nominal | Nominal mass flow rate of the evaporator fluid [kg/s] | |
PressureDifference | dpHot_nominal | Nominal pressure drop of the hot fluid in evaporator [Pa] | |
TemperatureDifference | dTPinEva_set | 5 | Set evaporator pinch point temperature difference [K] |
Boolean | useEvaporatingPressure | false | Set true to specify working fluid evaporating pressure instead of temperature |
ThermodynamicTemperature | TWorEva | max(pro.T)*2/3 + min(pro.T)*... | Evaporating temperature of the working fluid [K] |
Pressure | pWorEva | max(pro.p)*2/3 + min(pro.p)*... | Evaporating pressure of the working fluid [Pa] |
Condenser | |||
MassFlowRate | mCol_flow_nominal | Nominal mass flow rate of the condenser fluid [kg/s] | |
PressureDifference | dpCol_nominal | Nominal pressure drop of the cold fluid in condenser [Pa] | |
TemperatureDifference | dTPinCon | 10 | Condenser pinch point temperature difference [K] |
Boolean | useLowCondenserPressureWarning | true | If true, issues warning if pCon < 101325 Pa |
Assumptions | |||
Boolean | allowFlowReversal1 | true | = false to simplify equations, assuming, but not enforcing, no flow reversal for medium 1 |
Boolean | allowFlowReversal2 | true | = false to simplify equations, assuming, but not enforcing, no flow reversal for medium 2 |
Advanced | |||
MassFlowRate | m1_flow_small | 1E-4*abs(m1_flow_nominal) | Small mass flow rate for regularization of zero flow [kg/s] |
MassFlowRate | m2_flow_small | 1E-4*abs(m2_flow_nominal) | Small mass flow rate for regularization of zero flow [kg/s] |
Diagnostics | |||
Boolean | show_T | false | = true, if actual temperature at port is computed |
Flow resistance | |||
Medium 1 | |||
Boolean | from_dp1 | false | = true, use m_flow = f(dp) else dp = f(m_flow) |
Boolean | linearizeFlowResistance1 | false | = true, use linear relation between m_flow and dp for any flow rate |
Real | deltaM1 | 0.1 | Fraction of nominal flow rate where flow transitions to laminar |
Medium 2 | |||
Boolean | from_dp2 | false | = true, use m_flow = f(dp) else dp = f(m_flow) |
Boolean | linearizeFlowResistance2 | false | = true, use linear relation between m_flow and dp for any flow rate |
Real | deltaM2 | 0.1 | Fraction of nominal flow rate where flow transitions to laminar |
Dynamics | |||
Nominal condition | |||
Time | tau1 | 30 | Time constant at nominal flow [s] |
Time | tau2 | 30 | Time constant at nominal flow [s] |
Conservation equations | |||
Dynamics | energyDynamics | Modelica.Fluid.Types.Dynamic... | Type of energy balance: dynamic (3 initialization options) or steady state |
Initialization | |||
Medium 1 | |||
AbsolutePressure | p1_start | Medium1.p_default | Start value of pressure [Pa] |
Temperature | T1_start | max(pro.T)*2/3 + min(pro.T)*... | Start value of temperature [K] |
MassFraction | X1_start[Medium1.nX] | Medium1.X_default | Start value of mass fractions m_i/m [kg/kg] |
ExtraProperty | C1_start[Medium1.nC] | fill(0, Medium1.nC) | Start value of trace substances |
ExtraProperty | C1_nominal[Medium1.nC] | fill(1E-2, Medium1.nC) | Nominal value of trace substances. (Set to typical order of magnitude.) |
Medium 2 | |||
AbsolutePressure | p2_start | Medium2.p_default | Start value of pressure [Pa] |
Temperature | T2_start | max(pro.T)*1/10 + min(pro.T)... | Start value of temperature [K] |
MassFraction | X2_start[Medium2.nX] | Medium2.X_default | Start value of mass fractions m_i/m [kg/kg] |
ExtraProperty | C2_start[Medium2.nC] | fill(0, Medium2.nC) | Start value of trace substances |
ExtraProperty | C2_nominal[Medium2.nC] | fill(1E-2, Medium2.nC) | Nominal value of trace substances. (Set to typical order of magnitude.) |
Connectors
Type | Name | Description |
---|---|---|
FluidPort_a | port_a1 | Fluid connector a1 (positive design flow direction is from port_a1 to port_b1) |
FluidPort_b | port_b1 | Fluid connector b1 (positive design flow direction is from port_a1 to port_b1) |
FluidPort_a | port_a2 | Fluid connector a2 (positive design flow direction is from port_a2 to port_b2) |
FluidPort_b | port_b2 | Fluid connector b2 (positive design flow direction is from port_a2 to port_b2) |
input BooleanInput | ena | Enable cycle; set false to force working fluid flow to zero |
output RealOutput | PExp | Expander power generation [W] |
output RealOutput | QEva_flow | Evaporator heat flow rate into the cycle [W] |
output RealOutput | QCon_flow | Condenser heat flow rate out of the cycle [W] |
output BooleanOutput | on_actual | Actual on off status of the cycle |
output RealOutput | PPum | Electrical power consumption of the pump [W] |
Modelica definition
Buildings.Fluid.CHPs.OrganicRankine.Cycle
Organic Rankine cycle as a bottoming cycle
Information
Model of an organic Rankine cycle (ORC) as a bottoming cycle.
The thermodynamic cycle is steady-state while the evaporator and the condenser
can be configured to have first order dynamics.
The fluid stream 1 (using Medium1
, port_a1
, etc.)
is the evaporator hot fluid carrying waste heat
and the stream 2 is the condenser cold fluid carrying the cooling fluid.
The working fluid of the cycle is not based on a typical Modelica medium model.
See the Thermodynamic Properties section of this document for the rational.
Cycle Architecture and Governing Equations
The implemented ORC is modeled based on the simplified cycle shown in the figure below. The cycle has two variants depending on the shape of the saturation lines of the working fluid and ηexp. For any given working fluid, the cycle is fully determined by providing the working fluid evaporating temperature Tw,eva, the working fluid condensing temperature Tw,con, the expander efficiency ηexp, and the pump efficiency ηpum. The superheating temperature difference ΔTsup is minimized, meaning it is zero whenever possible; otherwise it assumes the smallest value not to cause the expander outlet state to fall under the dome. Subcooling after the condenser is not considered. The Thermodynamic Properties section of this document details how these state points are found.
An important assumption is that all heat is dissipated, i.e., the cycle is not controlled thermal load.
The cycle processes the heat at a fixed Tw,eva provided by the user. The evaporator heat exchange is governed by
Q̇eva = ṁh cp,h (Th,out - Th,in),
Q̇eva = ṁw (hpum,out - hexp,in),
where the subscripts are eva for evaporator, exp for expander, h for hot fluid of the evaporator, i.e. the fluid carrying heat, pum for pump, and w for working fluid.
The cycle accommodates the variable flow rate and temperature of the waste heat stream by changing the working fluid mass flow rate ṁw to maintain a constant pinch point (PP) temperature difference at the evaporator ΔTpin,eva. This difference is found from
(Tpin,eva - Th,out) (hexp,in - hpum,out)
= (Th,in - Th,out) (heva,pin - hpum,out),
ΔTpin,eva = Tpin,eva - Tw,eva.
The condenser side uses the same equations with the evaporator variables replaced by their condenser counterparts where appropriate. Hence,
Q̇con = ṁc cp,c (Tc,out - Tc,in),
Q̇con = ṁw (hpum,in - hexp,out),
(Tc,pin - Tc,in) (hexp,out - hpum,in)
= (Tc,out - Tc,in) (hcon,pin - hpum,in),
ΔTcon,pin = Tw,con - Tc,pin,
where the subscripts are
con for condenser, and
c for cold fluid in the condenser.
The electric power output of the expander is
Pexp = ṁw (hexp,in - hexp,out).
The electric power consumption of the pump is
Ppum = ṁw (hpum,out - hpum,in).
The pump work is
Ppum = ṁw (peva - pcon) / (ρpum,in ηpum).
This takes advantage of the negligible density change of the liquid to avoid a property search in the subcooled liquid region.
In summary, the model has the following information flow:
User-specified parameters | Inputs | Outputs |
---|---|---|
Tw,eva - Working fluid evaporating temperature, ΔTpin,eva - Evaporator pinch point temperature difference, ΔTpin,con - Condenser pinch point temperature difference, ηexp - Expander efficiency, ηpum - Pump efficiency. |
Th,in - Evaporator hot fluid incoming temperature, ṁh - Evaporator hot fluid flow rate, Tc,in - Condenser cold fluid incoming temperature, ṁc - Condenser cold fluid flow rate. |
ṁw - Working fluid flow rate, Tw,con - Working fluid condensing temperature, Th,out - Evaporator hot fluid outgoing temperature, Tc,out - Condenser cold fluid outgoing temperature, Q̇eva - Evaporator heat flow rate, Q̇con - Condenser heat flow rate, Pexp - Expander power output, Ppum - Pump power consumption. |
Constraints
The ORC system controls ṁw to maintain the prescribed evaporator PP temperature difference set point. Although the model does not implement this as a control loop, an upper limit and a lower limit are imposed on ṁw to reflect the characteristics of a sized cycle.
- The working fluid mass flow rate ṁw will not go higher than a prescribed upper limit. Rather, ṁw stays at the user-specified upper limit and ΔTpin,eva increases beyond its set point. This may happen when the incoming hot fluid has a high flow rate or a high incoming temperature, i.e., it carries more energy than the cycle is sized to process.
- When the working fluid mass flow rate ṁw needs to go below a prescribed lower limit, ṁw is set to zero and the cycle is switched off. This may happen when the incoming waste heat fluid has a low flow rate or a low incoming temperature, i.e., it carries too little energy.
How these constraints affect the cycle's behavior reacting to a variable waste heat fluid stream is demonstrated in Buildings.Fluid.CHPs.OrganicRankine.Validation.VariableSource.
Thermodynamic Properties
The thermodynamic properties of the working fluid are not computed by a typical Modelica medium model, but by interpolating data records in Buildings.Fluid.CHPs.OrganicRankine.Data. Specific enthalpy and specific entropy values are provided as support points on the saturated liquid line, the saturated vapor line, and a superheated vapor line (called the reference line). The values of these support points were obtained using CoolProp (https://www.coolprop.org; Bell et al., 2014) through its Python wrapper and stored as Modelica records. The records included in this library have ten data points for each line. It is recommended to have at least four points to take full advantage of the cubit Hermite spline interpolation that is set up in this model.
Thermodynamic state points in the cycle are determined by various schemes of interpolation and extrapolation.
-
On the saturation line, the specific enthalpy, specific
entropy or density, here labeled as yA, are obtained
using cubic Hermite spline interpolation as
yA = s(uA,d)
where s(·,·) is a cubic Hermite spline, uA is the input property, and d are the support points. For the saturation curves, the user can configure the model to use either the saturation pressure or the saturation temperature for uA. For the reference line uA is the pressure. -
If the fluid is wet, the isentropic expander outlet point is in between
the saturation lines. In this case, its enthalpy hB
is obtained from
(hB - h1) / (sB - s1) = (h2 - h1) / (s2 - s1)
where sB is known because it equals the expander inlet entropy, and all other points are on the saturation line and therefore can be found as point A. - C is a point in the superheated vapor region. This is the case for the expander inlet or outlet depending on the shape of the cycle. The isobaric lines are not straight in this section, but they are assumed linear so that the method for B can be applied using the saturated vapor line and the reference line, albeit with less accuracy.
The cycle can be completely defined by providing the following quantities: evaporating temperature Teva or pressure peva, condensing temperature Tcon or pressure pcon, expander efficiency ηexp, and pump efficiency ηpum. Most of the important state points can be found via the interpolation schemes described above. The only exceptions are the expander inlet, expander outlet, and the pump outlet.
-
A dry cycle is a cycle where the expansion starts from
the saturated vapor line and ends in the superheated vapor region.
For either a dry fluid (a) or a wet fluid (b) undergoing such a cycle,
hexp,out - hexp,in = (hexp,out,ise - hexp,in) ηexp
where hexp,out is solved and hexp,in is known. -
A wet cycle is a cycle where the expansion starts from
the superheated vapor region and ends on the saturated vapor line.
In this scenario,
hexp,out - hexp,in = (hexp,out - hexp,inl,ise) ηexp
where hexp,out is known and hexp,in is solved. For this fluid and this ηexp, if the expansion started from the saturated vapor line, the outlet point would end up under the dome.
References
Bell IH, Wronski J, Quoilin S, Lemort V. Pure and pseudo-pure fluid thermophysical property evaluation and the open-source thermophysical property library CoolProp. Industrial & engineering chemistry research. 2014 Feb 12;53(6):2498-508. https://doi.org/10.1021/ie4033999
Extends from Buildings.Fluid.Interfaces.FourPortHeatMassExchanger (Model transporting two fluid streams between four ports with storing mass or energy).
Parameters
Type | Name | Default | Description |
---|---|---|---|
replaceable package Medium1 | PartialMedium | Medium 1 in the component | |
replaceable package Medium2 | PartialMedium | Medium 2 in the component | |
Nominal condition | |||
MassFlowRate | m1_flow_nominal | mHot_flow_nominal | Nominal mass flow rate [kg/s] |
MassFlowRate | m2_flow_nominal | mCol_flow_nominal | Nominal mass flow rate [kg/s] |
PressureDifference | dp1_nominal | dpHot_nominal | Pressure difference [Pa] |
PressureDifference | dp2_nominal | dpCol_nominal | Pressure difference [Pa] |
Cycle | |||
Generic | pro | redeclare parameter Building... | Property records of the working fluid |
MassFlowRate | mWor_flow_max | Upper bound of working fluid flow rate [kg/s] | |
MassFlowRate | mWor_flow_min | Lower bound of working fluid flow rate [kg/s] | |
MassFlowRate | mWor_flow_hysteresis | mWor_flow_min + (mWor_flow_m... | Hysteresis for turning off the cycle when flow too low [kg/s] |
Efficiency | etaExp | Expander efficiency [1] | |
Efficiency | etaPum | Pump efficiency [1] | |
Evaporator | |||
MassFlowRate | mHot_flow_nominal | Nominal mass flow rate of the evaporator fluid [kg/s] | |
PressureDifference | dpHot_nominal | Nominal pressure drop of the hot fluid in evaporator [Pa] | |
TemperatureDifference | dTPinEva_set | 5 | Set evaporator pinch point temperature difference [K] |
Boolean | useEvaporatingPressure | false | Set true to specify working fluid evaporating pressure instead of temperature |
ThermodynamicTemperature | TWorEva | max(pro.T)*2/3 + min(pro.T)*... | Evaporating temperature of the working fluid [K] |
Pressure | pWorEva | max(pro.p)*2/3 + min(pro.p)*... | Evaporating pressure of the working fluid [Pa] |
Condenser | |||
MassFlowRate | mCol_flow_nominal | Nominal mass flow rate of the condenser fluid [kg/s] | |
PressureDifference | dpCol_nominal | Nominal pressure drop of the cold fluid in condenser [Pa] | |
TemperatureDifference | dTPinCon | 10 | Condenser pinch point temperature difference [K] |
Boolean | useLowCondenserPressureWarning | true | If true, issues warning if pCon < 101325 Pa |
Assumptions | |||
Boolean | allowFlowReversal1 | true | = false to simplify equations, assuming, but not enforcing, no flow reversal for medium 1 |
Boolean | allowFlowReversal2 | true | = false to simplify equations, assuming, but not enforcing, no flow reversal for medium 2 |
Advanced | |||
MassFlowRate | m1_flow_small | 1E-4*abs(m1_flow_nominal) | Small mass flow rate for regularization of zero flow [kg/s] |
MassFlowRate | m2_flow_small | 1E-4*abs(m2_flow_nominal) | Small mass flow rate for regularization of zero flow [kg/s] |
Diagnostics | |||
Boolean | show_T | false | = true, if actual temperature at port is computed |
Flow resistance | |||
Medium 1 | |||
Boolean | from_dp1 | false | = true, use m_flow = f(dp) else dp = f(m_flow) |
Boolean | linearizeFlowResistance1 | false | = true, use linear relation between m_flow and dp for any flow rate |
Real | deltaM1 | 0.1 | Fraction of nominal flow rate where flow transitions to laminar |
Medium 2 | |||
Boolean | from_dp2 | false | = true, use m_flow = f(dp) else dp = f(m_flow) |
Boolean | linearizeFlowResistance2 | false | = true, use linear relation between m_flow and dp for any flow rate |
Real | deltaM2 | 0.1 | Fraction of nominal flow rate where flow transitions to laminar |
Dynamics | |||
Nominal condition | |||
Time | tau1 | 30 | Time constant at nominal flow [s] |
Time | tau2 | 30 | Time constant at nominal flow [s] |
Conservation equations | |||
Dynamics | energyDynamics | Modelica.Fluid.Types.Dynamic... | Type of energy balance: dynamic (3 initialization options) or steady state |
Initialization | |||
Medium 1 | |||
AbsolutePressure | p1_start | Medium1.p_default | Start value of pressure [Pa] |
Temperature | T1_start | max(pro.T)*2/3 + min(pro.T)*... | Start value of temperature [K] |
MassFraction | X1_start[Medium1.nX] | Medium1.X_default | Start value of mass fractions m_i/m [kg/kg] |
ExtraProperty | C1_start[Medium1.nC] | fill(0, Medium1.nC) | Start value of trace substances |
ExtraProperty | C1_nominal[Medium1.nC] | fill(1E-2, Medium1.nC) | Nominal value of trace substances. (Set to typical order of magnitude.) |
Medium 2 | |||
AbsolutePressure | p2_start | Medium2.p_default | Start value of pressure [Pa] |
Temperature | T2_start | max(pro.T)*1/10 + min(pro.T)... | Start value of temperature [K] |
MassFraction | X2_start[Medium2.nX] | Medium2.X_default | Start value of mass fractions m_i/m [kg/kg] |
ExtraProperty | C2_start[Medium2.nC] | fill(0, Medium2.nC) | Start value of trace substances |
ExtraProperty | C2_nominal[Medium2.nC] | fill(1E-2, Medium2.nC) | Nominal value of trace substances. (Set to typical order of magnitude.) |
Connectors
Type | Name | Description |
---|---|---|
FluidPort_a | port_a1 | Fluid connector a1 (positive design flow direction is from port_a1 to port_b1) |
FluidPort_b | port_b1 | Fluid connector b1 (positive design flow direction is from port_a1 to port_b1) |
FluidPort_a | port_a2 | Fluid connector a2 (positive design flow direction is from port_a2 to port_b2) |
FluidPort_b | port_b2 | Fluid connector b2 (positive design flow direction is from port_a2 to port_b2) |
input BooleanInput | ena | Enable cycle; set false to force working fluid flow to zero |
output RealOutput | PExp | Expander power generation [W] |
output RealOutput | QEva_flow | Evaporator heat flow rate into the cycle [W] |
output RealOutput | QCon_flow | Condenser heat flow rate out of the cycle [W] |
output BooleanOutput | on_actual | Actual on off status of the cycle |
output RealOutput | PPum | Electrical power consumption of the pump [W] |