diff --git a/IBPSA/Fluid/BaseClasses/FlowModels/basicFlowFunction_dp_der.mo b/IBPSA/Fluid/BaseClasses/FlowModels/basicFlowFunction_dp_der.mo index 335c0fa6cb..0e6f795b48 100644 --- a/IBPSA/Fluid/BaseClasses/FlowModels/basicFlowFunction_dp_der.mo +++ b/IBPSA/Fluid/BaseClasses/FlowModels/basicFlowFunction_dp_der.mo @@ -11,7 +11,7 @@ function basicFlowFunction_dp_der "Mass flow rate where transition to turbulent flow occurs"; input Real dp_der "Derivative of pressure difference between port_a and port_b (= port_a.p - port_b.p)"; - output Real m_flow_der(unit="kg/s2") + output Real m_flow_der "Derivative of mass flow rate in design flow direction"; protected Modelica.Units.SI.PressureDifference dp_turbulent=(m_flow_turbulent/k)^2 @@ -30,8 +30,14 @@ Documentation(info="
Function that implements the first order derivative of -IBPSA.Fluid.BaseClasses.FlowModels.basicFlowFunction_dp -with respect to the mass flow rate. +IBPSA.Fluid.BaseClasses.FlowModels.basicFlowFunction_dp, +assuming a constant flow coefficient. +
+
+When called with dp_der=der(dp)
, this function returns
+the time derivative of m_flow
.
+When called with dp_der=1
, this function returns
+the derivative of m_flow
with respect to dp
.
Function that implements the second order derivative of -IBPSA.Fluid.BaseClasses.FlowModels.basicFlowFunction_dp -with respect to the mass flow rate. +IBPSA.Fluid.BaseClasses.FlowModels.basicFlowFunction_dp, +assuming a constant flow coefficient. +
+
+When called with dp_der=der(dp)
and dp_der2=der(dp_der)
,
+this function returns the second order derivative of m_flow
+with respect to time.
+When called with dp_der=1
and dp_der2=0
,
+this function returns the second order derivative of m_flow
+with respect to dp
.
Function that implements the first order derivative of -IBPSA.Fluid.BaseClasses.FlowModels.basicFlowFunction_m_flow -with respect to the mass flow rate. +IBPSA.Fluid.BaseClasses.FlowModels.basicFlowFunction_m_flow, +assuming a constant flow coefficient. +
+
+When called with m_flow_der=der(m_flow)
, this function returns
+the time derivative of dp
.
+When called with m_flow_der=1
, this function returns
+the derivative of dp
with respect to m_flow
.
Function that implements the second order derivative of -IBPSA.Fluid.BaseClasses.FlowModels.basicFlowFunction_m_flow -with respect to the mass flow rate. +IBPSA.Fluid.BaseClasses.FlowModels.basicFlowFunction_m_flow, +assuming a constant flow coefficient. +
+
+When called with m_flow_der=der(m_flow)
and m_flow_der2=der(m_flow_der)
,
+this function returns the second order derivative of dp
+with respect to time.
+When called with m_flow_der=1
and m_flow_der2=0
,
+this function returns the second order derivative of dp
+with respect to m_flow
.
+This model computes the pinch points and the energy exchange, +and interfaces with the input and output variables. +The evaporating temperature is fixed as a parameter. +See the documentation of + +IBPSA.Fluid.CHPs.OrganicRankine.ConstantEvaporation +for more details. +", revisions=" +
+This model performs the property interpolations of a given working fluid. +See the documentation of + +IBPSA.Fluid.CHPs.OrganicRankine.ConstantEvaporation +for more details. +", revisions=" +
+This model validates the basic use of + +IBPSA.Fluid.CHPs.OrganicRankine.BaseClasses.InterpolateStates. +
+",revisions=" ++This model is largely the same as + +IBPSA.Fluid.CHPs.OrganicRankine.BaseClasses.Validation.DryFluid, +except that it validates the handling of wet working fluids. +As a result, a superheating temperature is computed that ensures +the expansion does not land under the dome. +How this superheating temperature is found is explained in the documentation of + +IBPSA.Fluid.CHPs.OrganicRankine.ConstantEvaporation. +
+",revisions=" ++Package for validation models for the base classes. +
+")); +end Validation; diff --git a/IBPSA/Fluid/CHPs/OrganicRankine/BaseClasses/Validation/package.order b/IBPSA/Fluid/CHPs/OrganicRankine/BaseClasses/Validation/package.order new file mode 100644 index 0000000000..bfd2d4d207 --- /dev/null +++ b/IBPSA/Fluid/CHPs/OrganicRankine/BaseClasses/Validation/package.order @@ -0,0 +1,2 @@ +DryFluid +WetFluid diff --git a/IBPSA/Fluid/CHPs/OrganicRankine/BaseClasses/package.mo b/IBPSA/Fluid/CHPs/OrganicRankine/BaseClasses/package.mo new file mode 100644 index 0000000000..9395391a20 --- /dev/null +++ b/IBPSA/Fluid/CHPs/OrganicRankine/BaseClasses/package.mo @@ -0,0 +1,9 @@ +within IBPSA.Fluid.CHPs.OrganicRankine; +package BaseClasses "Package with base classes" + extends Modelica.Icons.BasesPackage; + annotation (Documentation(info=" ++Package for base classes. +
+")); +end BaseClasses; diff --git a/IBPSA/Fluid/CHPs/OrganicRankine/BaseClasses/package.order b/IBPSA/Fluid/CHPs/OrganicRankine/BaseClasses/package.order new file mode 100644 index 0000000000..52d5e32f17 --- /dev/null +++ b/IBPSA/Fluid/CHPs/OrganicRankine/BaseClasses/package.order @@ -0,0 +1,3 @@ +FixedEvaporating +InterpolateStates +Validation diff --git a/IBPSA/Fluid/CHPs/OrganicRankine/ConstantEvaporation.mo b/IBPSA/Fluid/CHPs/OrganicRankine/ConstantEvaporation.mo new file mode 100644 index 0000000000..3e051e3624 --- /dev/null +++ b/IBPSA/Fluid/CHPs/OrganicRankine/ConstantEvaporation.mo @@ -0,0 +1,504 @@ +within IBPSA.Fluid.CHPs.OrganicRankine; +model ConstantEvaporation "Organic Rankine cycle as a bottoming cycle" + + extends IBPSA.Fluid.Interfaces.FourPortHeatMassExchanger( + final m1_flow_nominal = mHot_flow_nominal, + final dp1_nominal = dpHot_nominal, + final m2_flow_nominal = mCol_flow_nominal, + final dp2_nominal = dpCol_nominal, + energyDynamics=Modelica.Fluid.Types.Dynamics.FixedInitial, + T1_start = max(pro.T)*2/3 + min(pro.T)*1/3, + T2_start = max(pro.T)*1/10 + min(pro.T)*9/10, + redeclare final IBPSA.Fluid.MixingVolumes.MixingVolume vol2( + V=m2_flow_nominal*tau2/rho2_nominal, + nPorts=2, + final prescribedHeatFlowRate=true), + final vol1( + final prescribedHeatFlowRate=true)); + + replaceable parameter IBPSA.Fluid.CHPs.OrganicRankine.Data.Generic pro + constrainedby IBPSA.Fluid.CHPs.OrganicRankine.Data.Generic + "Property records of the working fluid" + annotation(choicesAllMatching = true,Dialog(group="Cycle")); + parameter Modelica.Units.SI.MassFlowRate mHot_flow_nominal + "Nominal mass flow rate of the evaporator fluid" + annotation(Dialog(group="Evaporator")); + parameter Modelica.Units.SI.PressureDifference dpHot_nominal( + displayUnit="Pa") + "Nominal pressure drop of the hot fluid in evaporator" + annotation(Dialog(group="Evaporator")); + parameter Modelica.Units.SI.TemperatureDifference dTPinEva_set( + final min = 0) = 5 + "Set evaporator pinch point temperature difference" + annotation(Dialog(group="Evaporator")); + parameter Boolean useEvaporatingPressure = false + "Set true to specify working fluid evaporating pressure instead of temperature" + annotation(Dialog(group="Evaporator")); + parameter Modelica.Units.SI.ThermodynamicTemperature TWorEva = + max(pro.T)*2/3 + min(pro.T)*1/3 + "Evaporating temperature of the working fluid" + annotation(Dialog(group="Evaporator", enable = not useEvaporatingPressure)); + parameter Modelica.Units.SI.Pressure pWorEva(displayUnit="kPa") = + max(pro.p)*2/3 + min(pro.p)*1/3 + "Evaporating pressure of the working fluid" + annotation(Dialog(group="Evaporator", enable = useEvaporatingPressure)); + parameter Modelica.Units.SI.MassFlowRate mCol_flow_nominal + "Nominal mass flow rate of the condenser fluid" + annotation(Dialog(group="Condenser")); + parameter Modelica.Units.SI.PressureDifference dpCol_nominal( + displayUnit="Pa") + "Nominal pressure drop of the cold fluid in condenser" + annotation(Dialog(group="Condenser")); + parameter Modelica.Units.SI.TemperatureDifference dTPinCon( + final min = 0) = 10 + "Condenser pinch point temperature difference" + annotation(Dialog(group="Condenser")); + parameter Boolean useLowCondenserPressureWarning = true + "If true, issues warning if pCon < 101325 Pa" + annotation(Dialog(group="Condenser")); + parameter Modelica.Units.SI.MassFlowRate mWor_flow_max( + final min = 0) + "Upper bound of working fluid flow rate" + annotation(Dialog(group="Cycle")); + parameter Modelica.Units.SI.MassFlowRate mWor_flow_min( + final min = 0) + "Lower bound of working fluid flow rate" + annotation(Dialog(group="Cycle")); + parameter Modelica.Units.SI.MassFlowRate mWor_flow_hysteresis + = mWor_flow_min + (mWor_flow_max - mWor_flow_min) * 0.1 + "Hysteresis for turning off the cycle when flow too low" + annotation(Dialog(group="Cycle")); + parameter Modelica.Units.SI.Efficiency etaExp + "Expander efficiency" + annotation(Dialog(group="Cycle")); + parameter Modelica.Units.SI.Efficiency etaPum + "Pump efficiency" + annotation(Dialog(group="Cycle")); + + Modelica.Blocks.Interfaces.BooleanInput ena + "Enable cycle; set false to force working fluid flow to zero" annotation ( + Placement(transformation(extent={{-140,-20},{-100,20}}), + iconTransformation(extent={{-120,-10},{-100,10}}))); + + Modelica.Blocks.Interfaces.RealOutput PExp( + final quantity="Power", + final unit="W") "Expander power generation" + annotation (Placement( + transformation(extent={{100,10},{140,50}}), iconTransformation(extent={{100,20}, + {120,40}}))); + Modelica.Blocks.Interfaces.RealOutput QEva_flow( + final quantity="HeatFlowRate", + final unit="W") "Evaporator heat flow rate into the cycle" annotation ( + Placement(transformation(extent={{100,70},{140,110}}),iconTransformation( + extent={{-10,-10},{10,10}}, + rotation=0, + origin={110,90}))); + Modelica.Blocks.Interfaces.RealOutput QCon_flow( + final quantity="HeatFlowRate", + final unit="W") "Condenser heat flow rate out of the cycle" annotation ( + Placement(transformation(extent={{100,-110},{140,-70}}), + iconTransformation(extent={{-10,-10},{10,10}}, + rotation=0, + origin={110,-90}))); + Modelica.Blocks.Interfaces.BooleanOutput on_actual(start = false) + "Actual on off status of the cycle" annotation (Placement(transformation( + extent={{100,-20},{140,20}}), iconTransformation(extent={{100,-10},{ + 120,10}}))); + Modelica.Blocks.Interfaces.RealOutput PPum( + final quantity="Power", + final unit="W") + "Electrical power consumption of the pump" annotation (Placement( + transformation(extent={{100,-50},{140,-10}}),iconTransformation(extent={{100,-40}, + {120,-20}}))); + + IBPSA.Fluid.CHPs.OrganicRankine.BaseClasses.FixedEvaporating cyc( + final pro=pro, + final mWor_flow_max=mWor_flow_max, + final mWor_flow_min=mWor_flow_min, + final mWor_flow_hysteresis=mWor_flow_hysteresis, + final TWorEva = + if useEvaporatingPressure + then IBPSA.Utilities.Math.Functions.smoothInterpolation( + x = pWorEva, + xSup = pro.p, + ySup = pro.T) + else TWorEva, + final dTPinEva_set=dTPinEva_set, + final dTPinCon=dTPinCon, + final cpHot=Medium1.specificHeatCapacityCp(sta1_nominal), + final cpCol=Medium2.specificHeatCapacityCp(sta2_nominal), + final etaExp=etaExp, + final etaPum=etaPum, + final useLowCondenserPressureWarning=useLowCondenserPressureWarning) + "Thermodynamic computations of the organic Rankine cycle" + annotation (Placement(transformation(extent={{-10,-10},{10,10}}))); + +protected + Modelica.Thermal.HeatTransfer.Sources.PrescribedHeatFlow preHeaFloEva + "Prescribed heat flow rate" + annotation (Placement(transformation(extent={{39,30},{19,50}}))); + Modelica.Thermal.HeatTransfer.Sources.PrescribedHeatFlow preHeaFloCon + "Prescribed heat flow rate" + annotation (Placement(transformation(extent={{41,-70},{21,-50}}))); + Modelica.Blocks.Sources.RealExpression expTHotIn(y=Medium1.temperature( + state=Medium1.setState_phX( + p=port_a1.p, + h=inStream(port_a1.h_outflow), + X=inStream(port_a1.Xi_outflow)))) + "Expression for evaporator hot fluid incoming temperature" + annotation (Placement(transformation(extent={{-60,20},{-40,40}}))); + Modelica.Blocks.Sources.RealExpression expMHot_flow(y=m1_flow) + "Expression for evaporator hot fluid flow rate" + annotation (Placement(transformation(extent={{-60,0},{-40,20}}))); + Modelica.Blocks.Sources.RealExpression expTColIn(y=Medium2.temperature( + state=Medium2.setState_phX( + p=port_a2.p, + h=inStream(port_a2.h_outflow), + X=inStream(port_a2.Xi_outflow)))) + "Expression for condenser cold fluid incoming temperature" + annotation (Placement(transformation(extent={{-60,-20},{-40,0}}))); + Modelica.Blocks.Sources.RealExpression expMCol_flow(y=m2_flow) + "Expression for condenser cold fluid flow rate" + annotation (Placement(transformation(extent={{-60,-40},{-40,-20}}))); +equation + connect(preHeaFloEva.port, vol1.heatPort) annotation (Line(points={{19,40},{-16, + 40},{-16,60},{-10,60}}, color={191,0,0})); + connect(preHeaFloCon.port, vol2.heatPort) annotation (Line(points={{21,-60},{12, + -60}}, color={191,0,0})); + connect(expTHotIn.y, cyc.THotIn) annotation (Line(points={{-39,30},{-20,30},{-20, + 8},{-11,8}}, color={0,0,127})); + connect(expMHot_flow.y, cyc.mHot_flow) annotation (Line(points={{-39,10},{-30, + 10},{-30,4},{-11,4}}, color={0,0,127})); + connect(expTColIn.y, cyc.TColIn) annotation (Line(points={{-39,-10},{-30,-10}, + {-30,-4},{-11,-4}}, color={0,0,127})); + connect(expMCol_flow.y, cyc.mCol_flow) annotation (Line(points={{-39,-30},{-20, + -30},{-20,-8},{-11,-8}}, color={0,0,127})); + connect(cyc.PExp,PExp) annotation (Line(points={{11,4},{84,4},{84,30},{120,30}}, + color={0,0,127})); + connect(ena, cyc.ena) + annotation (Line(points={{-120,0},{-11,0}}, color={255,0,255})); + connect(cyc.QEva_flow, QEva_flow) annotation (Line(points={{11,8},{80,8},{80,90}, + {120,90}}, color={0,0,127})); + connect(cyc.QCon_flow, QCon_flow) annotation (Line(points={{11,-8},{80,-8},{ + 80,-70},{96,-70},{96,-90},{120,-90}}, + color={0,0,127})); + connect(cyc.on_actual, on_actual) annotation (Line(points={{11,0},{120,0}}, + color={255,0,255})); + connect(cyc.PPum, PPum) annotation (Line(points={{11,-4},{84,-4},{84,-30},{120, + -30}}, color={0,0,127})); + connect(cyc.QEva_flow, preHeaFloEva.Q_flow) + annotation (Line(points={{11,8},{80,8},{80,40},{39,40}}, color={0,0,127})); + connect(cyc.QCon_flow, preHeaFloCon.Q_flow) annotation (Line(points={{11,-8}, + {80,-8},{80,-60},{41,-60}}, color={0,0,127})); + annotation (defaultComponentName = "orc", + Icon(coordinateSystem(preserveAspectRatio=false), graphics={ + Line( + points={{-60,-60},{-28,-20},{16,32},{40,60},{52,60},{54,30},{48,2},{ + 52,-38},{58,-58}}, + color={255,255,255}, + smooth=Smooth.Bezier, + thickness=0.5), + Line( + points={{6,20},{52,20},{66,-6},{50,-18},{-26,-18}}, + color={255,255,255}, + thickness=0.5, + pattern=LinePattern.Dash)}), Diagram( + coordinateSystem(preserveAspectRatio=false)), +Documentation(info=" ++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.
+
+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. + |
+
+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. +
++How these constraints affect the cycle's behavior reacting to +a variable waste heat fluid stream is demonstrated in + +IBPSA.Fluid.CHPs.OrganicRankine.Validation.VariableSource. +
+
+The thermodynamic properties of the working fluid are not computed by a typical
+Modelica medium model, but by interpolating data records in
+
+IBPSA.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
+IBPSA/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. +
++
++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. ++(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. ++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. +
++
++hexp,out - hexp,in += (hexp,out,ise - hexp,in) ηexp +
+where hexp,out is solved and hexp,in is known. ++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. +TWorEva
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.
++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 +
+", revisions=" ++Record containing parameters for working fluid properties. +A figure in the documentation of + +IBPSA.Fluid.CHPs.OrganicRankine.ConstantEvaporation +shows which lines these arrays represent. +
+")); +end Generic; diff --git a/IBPSA/Fluid/CHPs/OrganicRankine/Data/WorkingFluids/Acetone.mo b/IBPSA/Fluid/CHPs/OrganicRankine/Data/WorkingFluids/Acetone.mo new file mode 100644 index 0000000000..fb4f3c0a26 --- /dev/null +++ b/IBPSA/Fluid/CHPs/OrganicRankine/Data/WorkingFluids/Acetone.mo @@ -0,0 +1,58 @@ +within IBPSA.Fluid.CHPs.OrganicRankine.Data.WorkingFluids; +record Acetone "Data record for acetone" + extends Generic( + T = { + 263.15 ,289.255555556,315.361111111,341.466666667, + 367.572222222,393.677777778,419.783333333,445.888888889, + 471.994444444,498.1 }, + p = { + 5344.990110825, 20650.833566074, 61555.897854858, + 151351.563616118, 321797.046994737, 612178.548912226, + 1068684.448400072,1745219.888869215,2707418.650799205, + 4046245.515470347}, + rhoLiq = { + 822.882971808,794.503127301,765.124111199,734.248636529, + 701.245557689,665.234774298,624.858127478,577.729019236, + 518.607501298,426.621585717}, + dTRef = 30, + sSatLiq = { + -479.028530758,-280.940806531, -94.928726727, 81.991049561, + 252.145020847, 417.505066333, 580.003385303, 742.022980174, + 907.767378748,1092.563132257}, + sSatVap = { + 1681.191059012,1596.661258221,1542.5487283 ,1510.043720587, + 1492.612391749,1484.868192175,1481.705802931,1477.167997198, + 1461.519799448,1404.254266854}, + sRef = { + 1817.036318829,1731.286422698,1677.739234558,1647.046003462, + 1632.468103167,1628.870285847,1632.074409953,1638.412725056, + 1644.396794592,1646.431943962}, + hSatLiq = { + -141608.840175549, -86907.602970965, -30644.702178538, + 27561.220566805, 88109.595870881, 151467.211307906, + 218265.291981649, 289522.609167944, 367363.173547648, + 459910.837559632}, + hSatVap = { + 426852.944874144,456199.225381078,485752.007459114, + 515193.605967011,544070.943987246,571664.354771464, + 596784.938528286,617315.603980879,628731.239715757, + 615164.191702174}, + hRef = { + 464617.330003106,497136.67139577 ,530386.531973482, + 563997.6626978 ,597536.243125905,630465.696202391, + 662097.963586358,691534.659141209,717607.015924844, + 738837.945805182}); + annotation ( + defaultComponentPrefixes = "parameter", + defaultComponentName = "pro", + Documentation(info=" ++Record containing properties of acetone. +Its name in CoolProp is \"Acetone\". +A figure in the documentation of + +IBPSA.Fluid.CHPs.OrganicRankine.ConstantEvaporation +shows which lines these arrays represent. +
+")); +end Acetone; \ No newline at end of file diff --git a/IBPSA/Fluid/CHPs/OrganicRankine/Data/WorkingFluids/Ethanol.mo b/IBPSA/Fluid/CHPs/OrganicRankine/Data/WorkingFluids/Ethanol.mo new file mode 100644 index 0000000000..61427d8ba1 --- /dev/null +++ b/IBPSA/Fluid/CHPs/OrganicRankine/Data/WorkingFluids/Ethanol.mo @@ -0,0 +1,56 @@ +within IBPSA.Fluid.CHPs.OrganicRankine.Data.WorkingFluids; +record Ethanol "Data record for ethanol" + extends Generic( + T = { + 263.15,289.99,316.83,343.67,370.51,397.35,424.19,451.03,477.87, + 504.71}, + p = { + 7.689358061e+02,4.849943515e+03,2.156311297e+04,7.357097999e+04, + 2.046081847e+05,4.845344677e+05,1.008761409e+06,1.891911004e+06, + 3.263511383e+06,5.282165193e+06}, + rhoLiq = { + 814.799753232,792.036393251,768.756136609,744.093991385, + 716.886637425,685.51349857 ,647.811686098,601.669643931, + 543.369863156,438.527983321}, + dTRef = 30, + sSatLiq = { + -726.973851775,-505.583513991,-286.35608663 , -65.626950104, + 159.007283346, 389.527126652, 627.103332946, 869.931756177, + 1118.157181986,1411.006366334}, + sSatVap = { + 2902.952478464,2699.032398467,2551.227443872,2442.903267896, + 2361.504494341,2297.490986936,2243.294159242,2191.508999328, + 2129.791721023,2005.324094606}, + sRef = { + 3048.947765906,2841.665343912,2692.531793967,2585.157296558, + 2507.385719926,2450.24466807 ,2407.200424972,2373.310666428, + 2343.951307193,2312.828603679}, + hSatLiq = { + -223584.403049121,-162359.292050491, -95822.158648172, + -22850.994379185, 57554.398921637, 146473.200208431, + 244865.515469934, 352554.405086509, 470265.911621738, + 618471.162521627}, + hSatVap = { + 731630.710753397,766947.276403163,803209.431320732, + 839255.585640969,873601.64056746 ,904602.640092255, + 930437.502076461,948625.389064672,953695.708791375, + 918429.263157366}, + hRef = { + 772225.371527353, 810437.156029444, 850086.320725499, + 890262.545389702, 929818.501889787, 967557.529390266, + 1002370.800231913,1033259.201313757,1059056.681099724, + 1077479.396060467}); + annotation ( + defaultComponentPrefixes = "parameter", + defaultComponentName = "pro", + Documentation(info=" ++Record containing properties of ethanol. +Its name in CoolProp is \"Ethanol\". +A figure in the documentation of + +IBPSA.Fluid.CHPs.OrganicRankine.ConstantEvaporation +shows which lines these arrays represent. +
+")); +end Ethanol; \ No newline at end of file diff --git a/IBPSA/Fluid/CHPs/OrganicRankine/Data/WorkingFluids/Heptane.mo b/IBPSA/Fluid/CHPs/OrganicRankine/Data/WorkingFluids/Heptane.mo new file mode 100644 index 0000000000..3e56924888 --- /dev/null +++ b/IBPSA/Fluid/CHPs/OrganicRankine/Data/WorkingFluids/Heptane.mo @@ -0,0 +1,57 @@ +within IBPSA.Fluid.CHPs.OrganicRankine.Data.WorkingFluids; +record Heptane "Data record for n-heptane" + extends Generic( + T = { + 263.15 ,292.814444444,322.478888889,352.143333333, + 381.807777778,411.472222222,441.136666667,470.801111111, + 500.465555556,530.13 }, + p = { + 7.989173434e+02,4.640431854e+03,1.836462559e+04,5.521023193e+04, + 1.357341530e+05,2.872627666e+05,5.428996069e+05,9.414295237e+05, + 1.530128640e+06,2.375428955e+06}, + rhoLiq = { + 708.744161335,684.005361466,658.664692095,632.281562559, + 604.301119943,573.933259524,539.893343103,499.714554172, + 447.233450033,353.248453405}, + dTRef = 30, + sSatLiq = { + -796.989852616,-565.365137693,-345.670277761,-134.519732505, + 70.367270161, 270.657778517, 467.830116908, 663.725205376, + 861.998498724,1078.641393707}, + sSatVap = { + 672.954567605, 692.831668803, 739.301918155, 803.885808983, + 880.494448383, 964.465721538,1051.759799165,1137.935524319, + 1215.655239687,1260.938470215}, + sRef = { + 841.855369762, 858.118161463, 902.502690963, 966.060882441, + 1042.44988716 ,1127.000908946,1216.047379616,1306.364617459, + 1394.627619853,1477.085968924}, + hSatLiq = { + -251949.774148952,-187591.55369971 ,-120007.324894362, + -48744.573432347, 26561.273589323, 106252.748227298, + 190762.393341302, 280852.494718802, 378399.475308805, + 492237.654496714}, + hSatVap = { + 134866.100032261,180826.645196058,229873.303319793, + 281708.681968285,335874.131225473,391735.444337536, + 448355.186941404,504111.239777487,555392.492651129, + 588878.803666001}, + hRef = { + 181833.569133815,231695.382441082,284942.600720626, + 341242.380998298,400129.988352552,461040.039711463, + 523275.529594887,585905.759075288,647581.728725064, + 706410.769546266}); + annotation ( + defaultComponentPrefixes = "parameter", + defaultComponentName = "pro", + Documentation(info=" ++Record containing properties of n-heptane. +Its name in CoolProp is \"n-Heptane\". +A figure in the documentation of + +IBPSA.Fluid.CHPs.OrganicRankine.ConstantEvaporation +shows which lines these arrays represent. +
+")); +end Heptane; \ No newline at end of file diff --git a/IBPSA/Fluid/CHPs/OrganicRankine/Data/WorkingFluids/Pentane.mo b/IBPSA/Fluid/CHPs/OrganicRankine/Data/WorkingFluids/Pentane.mo new file mode 100644 index 0000000000..487640a3b1 --- /dev/null +++ b/IBPSA/Fluid/CHPs/OrganicRankine/Data/WorkingFluids/Pentane.mo @@ -0,0 +1,58 @@ +within IBPSA.Fluid.CHPs.OrganicRankine.Data.WorkingFluids; +record Pentane "Data record for n-pentane (R601)" + extends Generic( + T = { + 263.15 ,284.988888889,306.827777778,328.666666667, + 350.505555556,372.344444444,394.183333333,416.022222222, + 437.861111111,459.7 }, + p = { + 15196.961880746, 40847.01461526 , 93347.760875795, + 188229.761547615, 344161.604577882, 582381.684493329, + 926479.361144566,1402869.463375476,2042636.912945348, + 2888164.842888385}, + rhoLiq = { + 654.994012423,634.140752869,612.406165595,589.474257693, + 564.920053506,538.129125681,508.125336463,473.116841092, + 428.954697374,359.39054261 }, + dTRef = 30, + sSatLiq = { + -364.770358607,-188.383459065, -18.245572622, 147.200487718, + 309.214016986, 468.928951023, 627.576629898, 786.91058507 , + 950.457609042,1131.212144756}, + sSatVap = { + 1124.757616955,1132.064676189,1153.78271919 ,1185.735649416, + 1224.628540081,1267.744136879,1312.410414419,1355.214297416, + 1390.117806445,1397.022012012}, + sRef = { + 1296.158077524,1301.28713228 ,1321.950521732,1353.859341364, + 1393.796088528,1439.208143314,1487.913190685,1537.898827489, + 1587.138246557,1633.295767519}, + hSatLiq = { + -104421.898943934, -56052.79734228 , -5633.016486273, + 47087.837000979, 102370.736056908, 160525.092863763, + 221987.014134065, 287509.248703003, 358766.967642045, + 442086.536306975}, + hSatVap = { + 287547.387825234,320260.24955903 ,353977.819783112, + 388419.726812333,423228.612037831,457959.489455307, + 491937.078095822,523936.222010323,551277.070188378, + 564279.332284564}, + hRef = { + 335209.266682762,371013.610228284,408087.525730008, + 446185.930365794,485045.348695265,524354.800753776, + 563719.721538978,602626.895309489,640395.197254024, + 676083.07721731 }); + annotation ( + defaultComponentPrefixes = "parameter", + defaultComponentName = "pro", + Documentation(info=" ++Record containing properties of n-pentane (R601). +Its name in CoolProp is \"n-Pentane\". +A figure in the documentation of + +IBPSA.Fluid.CHPs.OrganicRankine.ConstantEvaporation +shows which lines these arrays represent. +
+")); +end Pentane; \ No newline at end of file diff --git a/IBPSA/Fluid/CHPs/OrganicRankine/Data/WorkingFluids/Propane.mo b/IBPSA/Fluid/CHPs/OrganicRankine/Data/WorkingFluids/Propane.mo new file mode 100644 index 0000000000..e092686f71 --- /dev/null +++ b/IBPSA/Fluid/CHPs/OrganicRankine/Data/WorkingFluids/Propane.mo @@ -0,0 +1,58 @@ +within IBPSA.Fluid.CHPs.OrganicRankine.Data.WorkingFluids; +record Propane "Data record for propane (R290)" + extends Generic( + T = { + 263.15 ,273.898888889,284.647777778,295.396666667, + 306.145555556,316.894444444,327.643333333,338.392222222, + 349.141111111,359.89 }, + p = { + 345279.941449901, 485400.605038304, 664016.115440719, + 887052.541165123,1160724.363224234,1491611.619687285, + 1886825.956981318,2354347.829390035,2903681.060029375, + 3547408.027345188}, + rhoLiq = { + 541.798297226,527.579836833,512.585365108,496.632038772, + 479.466931165,460.721062294,439.816371148,415.748472388, + 386.451358179,346.106437325}, + dTRef = 30, + sSatLiq = { + 908.965062614,1006.779440037,1103.648845716,1200.001618811, + 1296.323530695,1393.220337369,1491.541227233,1592.663453966, + 1699.311221116,1819.013862619}, + sSatVap = { + 2384.567612711,2371.574136657,2361.266030228,2352.732953327, + 2345.022612092,2337.032274329,2327.310860571,2313.560971451, + 2291.337848494,2249.306043938}, + sRef = { + 2566.79611772 ,2555.493081644,2547.750842968,2542.843699325, + 2540.115085679,2538.952119832,2538.763840737,2538.951963132, + 2538.886989404,2537.853328788}, + hSatLiq = { + 175348.350832337,201875.066749143,229271.052773913, + 257657.444992465,287189.506335636,318079.809438811, + 350645.399680575,385417.4820846 ,423455.88738496 , + 467665.980896495}, + hSatVap = { + 563653.161890421,575690.817715341,587248.989642776, + 598170.43877048 ,608244.069220794,617168.568861843, + 624479.74824603 ,629363.595020986,630156.721875167, + 622523.83403136 }, + hRef = { + 614311.232841951,628792.518193016,643090.993507643, + 657134.020145737,670838.112039704,684105.52633736 , + 696821.020909884,708845.675908959,720012.482475496, + 730115.169718242}); + annotation ( + defaultComponentPrefixes = "parameter", + defaultComponentName = "pro", + Documentation(info=" ++Record containing properties of propane (R290). +Its name in CoolProp is \"Propane\". +A figure in the documentation of + +IBPSA.Fluid.CHPs.OrganicRankine.ConstantEvaporation +shows which lines these arrays represent. +
+")); +end Propane; \ No newline at end of file diff --git a/IBPSA/Fluid/CHPs/OrganicRankine/Data/WorkingFluids/R123.mo b/IBPSA/Fluid/CHPs/OrganicRankine/Data/WorkingFluids/R123.mo new file mode 100644 index 0000000000..423a9d7632 --- /dev/null +++ b/IBPSA/Fluid/CHPs/OrganicRankine/Data/WorkingFluids/R123.mo @@ -0,0 +1,57 @@ +within IBPSA.Fluid.CHPs.OrganicRankine.Data.WorkingFluids; +record R123 "Data record for R123" + extends Generic( + T = { + 263.15 ,283.559,303.968,324.377,344.786,365.195,385.604,406.013, + 426.422,446.831}, + p = { + 20246.950661932, 51440.14631405 , 112811.739858567, + 220592.87790875 , 394048.867245572, 654989.103061425, + 1027610.766894902,1539001.458950504,2221087.046991277, + 3117580.036383462}, + rhoLiq = { + 1550.145747115,1500.60589786 ,1448.898149661,1394.435970728, + 1336.357791907,1273.304710472,1202.9813059 ,1121.108147556, + 1018.10852222 , 859.35313126 }, + dTRef = 30, + sSatLiq = { + 963.291211716,1037.235356603,1107.652872739,1175.077198776, + 1240.006769354,1302.97149577 ,1364.616830223,1425.874631908, + 1488.488045482,1558.197778977}, + sSatVap = { + 1667.453790836,1662.601605167,1663.373652146,1667.947333911, + 1674.895925087,1683.00895072 ,1691.101277177,1697.69913848 , + 1700.178917251,1689.912023319}, + sRef = { + 1737.810016884,1731.404036564,1730.991249439,1734.765535334, + 1741.355559816,1749.682490995,1758.849314222,1768.045202032, + 1776.452208741,1783.116337598}, + hSatLiq = { + 190149.271365683,210376.227418011,231098.48911094 , + 252352.625193384,274200.267099774,296749.550182631, + 320190.923599748,344878.267191074,371581.94622093 , + 402995.865537189}, + hSatVap = { + 375449.654061047,387704.455494463,400019.822985702, + 412228.361018181,424143.959548608,435537.32854304 , + 446084.632282771,455242.550578245,461851.591142172, + 461849.873050608}, + hRef = { + 395009.975047329,408236.58362893 ,421577.684105208, + 434894.002641602,448042.779209191,460871.335148106, + 473205.248708475,484829.998039268,495465.443515065, + 504727.638630622}); + annotation ( + defaultComponentPrefixes = "parameter", + defaultComponentName = "pro", + Documentation(info=" ++Record containing properties of R123. +Its name in CoolProp is \"R123\". +A figure in the documentation of + +IBPSA.Fluid.CHPs.OrganicRankine.ConstantEvaporation +shows which lines these arrays represent. +
+")); +end R123; \ No newline at end of file diff --git a/IBPSA/Fluid/CHPs/OrganicRankine/Data/WorkingFluids/R134a.mo b/IBPSA/Fluid/CHPs/OrganicRankine/Data/WorkingFluids/R134a.mo new file mode 100644 index 0000000000..0265b1f00c --- /dev/null +++ b/IBPSA/Fluid/CHPs/OrganicRankine/Data/WorkingFluids/R134a.mo @@ -0,0 +1,58 @@ +within IBPSA.Fluid.CHPs.OrganicRankine.Data.WorkingFluids; +record R134a "Data record for R134a" + extends Generic( + T = { + 263.15 ,274.378888889,285.607777778,296.836666667, + 308.065555556,319.294444444,330.523333333,341.752222222, + 352.981111111,364.21 }, + p = { + 200603.307472702, 306065.144055732, 449719.915074148, + 639730.094514731, 884904.588817354,1194757.011967908, + 1579685.738808544,2051381.787343061,2623740.847778454, + 3315235.242079038}, + rhoLiq = { + 1327.126163441,1290.706177259,1252.384215745,1211.660788636, + 1167.846607299,1119.946901702,1066.43367865 ,1004.714189346, + 929.529223158, 825.767527903}, + dTRef = 30, + sSatLiq = { + 950.647690901,1006.000704972,1060.270839535,1113.712093542, + 1166.611338723,1219.319709948,1272.312300214,1326.324896806, + 1382.758644761,1445.49325885 }, + sSatVap = { + 1733.350797261,1726.412875563,1721.041565618,1716.692460392, + 1712.816408039,1708.79575006 ,1703.835616881,1696.731056518, + 1685.221329816,1663.254186971}, + sRef = { + 1825.651782765,1819.26336679 ,1814.857399221,1811.970391363, + 1810.194406344,1809.157628299,1808.50662669 ,1807.888965926, + 1806.93261727 ,1805.200478092}, + hSatLiq = { + 186696.59112921 ,201653.015599322,216960.445937552, + 232677.402848669,248882.679090854,265687.289291076, + 283257.907432927,301870.718852068,322069.176904733, + 345362.177321903}, + hSatVap = { + 392664.913567861,399318.906508085,405681.704634567, + 411664.085009797,417149.647216853,421974.269587487, + 425886.432468616,428457.847058395,428832.791544889, + 424672.884952779}, + hRef = { + 418317.035128306,426163.587402212,433855.473474184, + 441342.371701698,448569.586759484,455475.412466164, + 461988.043511396,468022.071596944,473474.189346821, + 478212.639980691}); + annotation ( + defaultComponentPrefixes = "parameter", + defaultComponentName = "pro", + Documentation(info=" ++Record containing properties of R134a. +Its name in CoolProp is \"R134a\". +A figure in the documentation of + +IBPSA.Fluid.CHPs.OrganicRankine.ConstantEvaporation +shows which lines these arrays represent. +
+")); +end R134a; \ No newline at end of file diff --git a/IBPSA/Fluid/CHPs/OrganicRankine/Data/WorkingFluids/R245fa.mo b/IBPSA/Fluid/CHPs/OrganicRankine/Data/WorkingFluids/R245fa.mo new file mode 100644 index 0000000000..74dda59b71 --- /dev/null +++ b/IBPSA/Fluid/CHPs/OrganicRankine/Data/WorkingFluids/R245fa.mo @@ -0,0 +1,58 @@ +within IBPSA.Fluid.CHPs.OrganicRankine.Data.WorkingFluids; +record R245fa "Data record for R245fa" + extends Generic( + T = { + 263.15 ,280.245555556,297.341111111,314.436666667, + 331.532222222,348.627777778,365.723333333,382.818888889, + 399.914444444,417.01 }, + p = { + 33074.455269577, 72887.366701788, 144193.124203996, + 261432.955364019, 441494.101343335, 703414.198474153, + 1068359.342462996,1560145.848431753,2206880.485192474, + 3045794.17123294 }, + rhoLiq = { + 1428.970464918,1385.766605559,1340.65562986 ,1293.01283556 , + 1241.96829885 ,1186.239888383,1123.767592805,1050.81390283 , + 959.216593671, 822.828460561}, + dTRef = 30, + sSatLiq = { + 956.193112483,1035.364417516,1111.944630847,1186.435838862, + 1259.293596381,1330.986299328,1402.082979051,1473.433817707, + 1546.692369155,1626.938235226}, + sSatVap = { + 1753.339480749,1752.701557681,1756.61081491 ,1763.705762957, + 1772.828904987,1782.876329527,1792.610957024,1800.320573857, + 1802.878905152,1791.348871671}, + sRef = { + 1843.301914471,1841.682942619,1845.068883248,1852.125571196, + 1861.778475563,1873.119878874,1885.336511854,1897.653409147, + 1909.296310246,1919.468376844}, + hSatLiq = { + 188217.135523087,209752.050428183,231916.973241534, + 254789.508127216,278461.658759156,303057.594061445, + 328767.54169158 ,355926.037457738,385245.530754186, + 418981.075267556}, + hSatVap = { + 397986.202332377,410782.595794416,423602.732706635, + 436304.338826503,448715.160811117,460599.011089822, + 471592.735555778,481064.462239284,487698.226971601, + 487541.954771701}, + hRef = { + 422999.193929367,437043.348637611,451220.086433009, + 465419.510903738,479522.71650364 ,493393.292575899, + 506866.898229809,519740.667011956,531767.47525367 , + 542662.050436945}); + annotation ( + defaultComponentPrefixes = "parameter", + defaultComponentName = "pro", + Documentation(info=" ++Record containing properties of R245fa. +Its name in CoolProp is \"R245fa\". +A figure in the documentation of + +IBPSA.Fluid.CHPs.OrganicRankine.ConstantEvaporation +shows which lines these arrays represent. +
+")); +end R245fa; \ No newline at end of file diff --git a/IBPSA/Fluid/CHPs/OrganicRankine/Data/WorkingFluids/R32.mo b/IBPSA/Fluid/CHPs/OrganicRankine/Data/WorkingFluids/R32.mo new file mode 100644 index 0000000000..5d27e81c87 --- /dev/null +++ b/IBPSA/Fluid/CHPs/OrganicRankine/Data/WorkingFluids/R32.mo @@ -0,0 +1,58 @@ +within IBPSA.Fluid.CHPs.OrganicRankine.Data.WorkingFluids; +record R32 "Data record for R32" + extends Generic( + T = { + 263.15 ,271.828333333,280.506666667,289.185 , + 297.863333333,306.541666667,315.22 ,323.898333333, + 332.576666667,341.255 }, + p = { + 582632.423455563, 779227.155447199,1022507.826631392, + 1319243.784536832,1676689.244070605,2102683.141551342, + 2605825.859299297,3195797.469126429,3883981.451679397, + 4684958.748097608}, + rhoLiq = { + 1088.762616995,1059.796758515,1029.295189956, 996.920197574, + 962.201981414, 924.453822345, 882.605293946, 834.832837403, + 777.582757731, 702.054968683}, + dTRef = 30, + sSatLiq = { + 936.52451307 , 991.659733916,1046.223239241,1100.490775854, + 1154.795359523,1209.572891273,1265.450416315,1323.441013333, + 1385.463021423,1456.23976066 }, + sSatVap = { + 2191.530923721,2159.130803487,2127.849016758,2097.105691514, + 2066.253567277,2034.508896214,2000.819981866,1963.579527028, + 1919.859591813,1862.561221543}, + sRef = { + 2304.157093291,2274.544797147,2246.748153968,2220.383262429, + 2195.095643776,2170.551795417,2146.430627551,2122.413280091, + 2098.166495379,2073.295617553}, + hSatLiq = { + 182764.696330276,197695.34939879 ,212996.704346489, + 228747.503919312,245052.432711042,262058.639462482, + 279988.045994578,299208.744263246,320424.342790452, + 345361.467556621}, + hSatVap = { + 513019.633293376,515047.064455002,516399.945778408, + 516953.588304626,516542.412668788,514935.89731114 , + 511791.24044753 ,506548.541951439,498152.172848862, + 484020.697690199}, + hRef = { + 544272.165701895,548069.095566735,551444.02060146 , + 554348.972337043,556731.55185084 ,558534.039175514, + 559692.26585121 ,560133.992100001,559775.669486533, + 558511.071672622}); + annotation ( + defaultComponentPrefixes = "parameter", + defaultComponentName = "pro", + Documentation(info=" ++Record containing properties of R32. +Its name in CoolProp is \"R32\". +A figure in the documentation of + +IBPSA.Fluid.CHPs.OrganicRankine.ConstantEvaporation +shows which lines these arrays represent. +
+")); +end R32; \ No newline at end of file diff --git a/IBPSA/Fluid/CHPs/OrganicRankine/Data/WorkingFluids/Toluene.mo b/IBPSA/Fluid/CHPs/OrganicRankine/Data/WorkingFluids/Toluene.mo new file mode 100644 index 0000000000..97423305d3 --- /dev/null +++ b/IBPSA/Fluid/CHPs/OrganicRankine/Data/WorkingFluids/Toluene.mo @@ -0,0 +1,56 @@ +within IBPSA.Fluid.CHPs.OrganicRankine.Data.WorkingFluids; +record Toluene "Data record for toluene" + extends Generic( + T = { + 263.15,298.55,333.95,369.35,404.75,440.15,475.55,510.95,546.35, + 581.75}, + p = { + 4.658645382e+02,3.878506476e+03,1.913620075e+04,6.607278574e+04, + 1.775240880e+05,3.982149511e+05,7.826031771e+05,1.394511614e+06, + 2.312008822e+06,3.647284909e+06}, + rhoLiq = { + 894.591737923,861.787657162,828.382229573,793.747189122, + 757.123274828,717.4577212 ,673.073614045,620.835702655, + 553.321381336,437.838439728}, + dTRef = 30, + sSatLiq = { + -670.300584422,-462.345778557,-265.173474299, -75.486089983, + 108.735317728, 288.918011292, 466.37022759 , 642.81477669 , + 821.684991655,1017.475208721}, + sSatVap = { + 978.30668321 , 919.722310325, 907.690979281, 926.229656023, + 964.682067033,1015.530364113,1072.870878952,1130.921098435, + 1181.095766989,1195.352192032}, + sRef = { + 1091.412085347,1033.610736055,1022.489953315,1042.016294547, + 1081.594543273,1133.917046387,1193.599794878,1256.201212851, + 1317.428314692,1372.739080272}, + hSatLiq = { + -215928.299658583,-157558.83018377 , -95210.963812949, + -28467.959306084, 42965.246838653, 119373.480365183, + 201168.191553062, 289147.81263614 , 385288.937285889, + 498520.557921947}, + hSatVap = { + 217902.702818657,255057.597752471,296467.120460337, + 341515.751482012,389409.693620114,439191.907459599, + 489589.576308111,538545.73773166 ,581653.014389845, + 602000.492963232}, + hRef = { + 249364.004857819,290767.909737456,336525.499214213, + 386015.721699957,438478.677428664,493067.399188192, + 548799.919772023,604412.858652115,658123.631255034, + 707533.724749596}); + annotation ( + defaultComponentPrefixes = "parameter", + defaultComponentName = "pro", + Documentation(info=" ++Record containing properties of toluene. +Its name in CoolProp is \"Toluene\". +A figure in the documentation of + +IBPSA.Fluid.CHPs.OrganicRankine.ConstantEvaporation +shows which lines these arrays represent. +
+")); +end Toluene; \ No newline at end of file diff --git a/IBPSA/Fluid/CHPs/OrganicRankine/Data/WorkingFluids/package.mo b/IBPSA/Fluid/CHPs/OrganicRankine/Data/WorkingFluids/package.mo new file mode 100644 index 0000000000..af0fe1a2ec --- /dev/null +++ b/IBPSA/Fluid/CHPs/OrganicRankine/Data/WorkingFluids/package.mo @@ -0,0 +1,9 @@ +within IBPSA.Fluid.CHPs.OrganicRankine.Data; +package WorkingFluids "Package with working fluid data" + extends Modelica.Icons.Package; + annotation (Documentation(info=" ++Package for data records of specific working fluids. +
+")); +end WorkingFluids; diff --git a/IBPSA/Fluid/CHPs/OrganicRankine/Data/WorkingFluids/package.order b/IBPSA/Fluid/CHPs/OrganicRankine/Data/WorkingFluids/package.order new file mode 100644 index 0000000000..a579853c54 --- /dev/null +++ b/IBPSA/Fluid/CHPs/OrganicRankine/Data/WorkingFluids/package.order @@ -0,0 +1,10 @@ +Acetone +Ethanol +Heptane +Pentane +Propane +R123 +R134a +R245fa +R32 +Toluene diff --git a/IBPSA/Fluid/CHPs/OrganicRankine/Data/package.mo b/IBPSA/Fluid/CHPs/OrganicRankine/Data/package.mo new file mode 100644 index 0000000000..66dbc9604a --- /dev/null +++ b/IBPSA/Fluid/CHPs/OrganicRankine/Data/package.mo @@ -0,0 +1,9 @@ +within IBPSA.Fluid.CHPs.OrganicRankine; +package Data "Package with working fluid data" + extends Modelica.Icons.MaterialPropertiesPackage; + annotation (Documentation(info=" ++Package for data records of working fluids. +
+")); +end Data; diff --git a/IBPSA/Fluid/CHPs/OrganicRankine/Data/package.order b/IBPSA/Fluid/CHPs/OrganicRankine/Data/package.order new file mode 100644 index 0000000000..954861e71c --- /dev/null +++ b/IBPSA/Fluid/CHPs/OrganicRankine/Data/package.order @@ -0,0 +1,2 @@ +Generic +WorkingFluids diff --git a/IBPSA/Fluid/CHPs/OrganicRankine/Examples/ORCHotWater.mo b/IBPSA/Fluid/CHPs/OrganicRankine/Examples/ORCHotWater.mo new file mode 100644 index 0000000000..2f9103521f --- /dev/null +++ b/IBPSA/Fluid/CHPs/OrganicRankine/Examples/ORCHotWater.mo @@ -0,0 +1,224 @@ +within IBPSA.Fluid.CHPs.OrganicRankine.Examples; +model ORCHotWater "ORC that outputs hot water at a fixed temperature" + extends Modelica.Icons.Example; + + package MediumHot = IBPSA.Media.Air "Evaporator hot fluid"; + package MediumCol = IBPSA.Media.Water "Condenser cold fluid"; + + parameter Modelica.Units.SI.MassFlowRate mHot_flow_nominal = 1 + "Nominal mass flow rate of evaporator hot fluid"; + parameter Modelica.Units.SI.MassFlowRate mCol_flow_nominal = 1.35 + "Nominal mass flow rate of condenser cold fluid"; + parameter Modelica.Units.SI.PressureDifference dpCon_nominal( + displayUnit = "Pa") = 10000 + "Nominal pressure drop across the ORC condenser"; + parameter Modelica.Units.SI.PressureDifference dpValCol_nominal( + displayUnit = "Pa") = 10000 + "Nominal pressure difference used for valves in the cold fluid loop"; + parameter Modelica.Units.SI.ThermodynamicTemperature TCol_start = 35 + 273.15 + "Start value for cold fluid temperature"; + + IBPSA.Fluid.CHPs.OrganicRankine.ConstantEvaporation orc( + redeclare final package Medium1 = MediumHot, + redeclare final package Medium2 = MediumCol, + T2_start=TCol_start, + redeclare IBPSA.Fluid.CHPs.OrganicRankine.Data.WorkingFluids.R123 pro, + final mHot_flow_nominal=mHot_flow_nominal, + dTPinEva_set=5, + TWorEva=373.15, + pWorEva(displayUnit="bar"), + final mCol_flow_nominal=mCol_flow_nominal, + dpHot_nominal=0, + dpCol_nominal=0, + dTPinCon=5, + mWor_flow_max=0.5, + mWor_flow_min=0.1, + mWor_flow_hysteresis=0.05, + etaExp=0.8, + etaPum=0.6) "Organic Rankine cycle" + annotation (Placement(transformation(extent={{-40,-44},{-20,-24}}))); + + IBPSA.Fluid.Sources.MassFlowSource_T souHot( + redeclare final package Medium = MediumHot, + m_flow=mHot_flow_nominal, + T=423.15, + nPorts=1) "Evaporator hot fluid source" + annotation (Placement(transformation(extent={{-180,80},{-160,100}}))); + IBPSA.Fluid.Sources.Boundary_pT sinHot( + redeclare final package Medium = MediumHot, + nPorts=1) "Evaporator hot fluid sink" + annotation (Placement(transformation(extent={{120,80},{100,100}}))); + IBPSA.Controls.Continuous.LimPID conPI( + controllerType=Modelica.Blocks.Types.SimpleController.PI, + k=0.25, + Ti=30, + Ni=0.2, + initType=Modelica.Blocks.Types.Init.InitialOutput, + y_start=0, + reverseActing=false) "PI controller" + annotation (Placement(transformation(extent={{40,0},{60,20}}))); + Modelica.Blocks.Sources.Constant TWatOut_set(k=55 + 273.15) + "Set point of hot water output" + annotation (Placement(transformation(extent={{0,0},{20,20}}))); + IBPSA.Fluid.Sources.Boundary_pT colBou( + redeclare final package Medium = MediumCol, + use_T_in=true, + nPorts=2) "Cold fluid boundary conditions" + annotation (Placement(transformation(extent={{10,-10},{-10,10}},rotation=0,origin={110,-60}))); + IBPSA.Fluid.Sensors.TemperatureTwoPort senTWatSup( + redeclare final package Medium = MediumCol, + m_flow_nominal=mCol_flow_nominal, + T_start=TCol_start) + "Water supply temperature" annotation (Placement(transformation( + extent={{-10,-10},{10,10}}, + rotation=0, + origin={70,-80}))); + IBPSA.Fluid.Sensors.TemperatureTwoPort senTWatRet( + redeclare final package Medium = MediumCol, + m_flow_nominal=mCol_flow_nominal, + T_start=TCol_start) + "Water return temperature" annotation (Placement(transformation( + extent={{10,-10},{-10,10}}, + rotation=0, + origin={70,-40}))); + Modelica.Blocks.Sources.TimeTable TWatRet( + y(final unit="K", displayUnit="degC"), + table=[0,35; 3,35; 6,45; 9,45], + timeScale=100, + offset=273.15) "Water return temperature values" + annotation (Placement(transformation(extent={{170,-70},{150,-50}}))); + IBPSA.Fluid.Actuators.Valves.ThreeWayEqualPercentageLinear val( + redeclare final package Medium = MediumCol, + energyDynamics=Modelica.Fluid.Types.Dynamics.FixedInitial, + T_start=TCol_start, + from_dp=false, + use_strokeTime=false, + final m_flow_nominal=mCol_flow_nominal, + final dpValve_nominal=dpValCol_nominal, + final dpFixed_nominal=fill(dpCon_nominal, 2)) "Control valve" + annotation (Placement(transformation( + extent={{-10,10},{10,-10}}, + rotation=180, + origin={40,-40}))); + IBPSA.Fluid.Movers.Preconfigured.FlowControlled_m_flow pum( + redeclare final package Medium = MediumCol, + energyDynamics=Modelica.Fluid.Types.Dynamics.SteadyState, + T_start=TCol_start, + addPowerToMedium=false, + m_flow_nominal=mCol_flow_nominal, + dp_nominal=dpCon_nominal + dpValCol_nominal, + m_flow_start=0) "Cooling water pump" + annotation (Placement(transformation(extent={{-100,-50},{-120,-30}}))); + IBPSA.Fluid.FixedResistances.Junction spl( + redeclare final package Medium = MediumCol, + energyDynamics=Modelica.Fluid.Types.Dynamics.SteadyState, + final dp_nominal=fill(0,3), + final m_flow_nominal=mCol_flow_nominal .* {1,-1,-1}, + final from_dp=false, + T_start=TCol_start) "Flow splitter" + annotation (Placement(transformation( + extent={{10,-10},{-10,10}}, + rotation=180, + origin={40,-80}))); + Modelica.Blocks.Math.BooleanToReal booToRea( + realTrue = mCol_flow_nominal) + "Constant speed primary pump control signal" + annotation (Placement(transformation(extent={{-140,0},{-120,20}}))); + Modelica.Blocks.Logical.Hysteresis hys( + uLow=mCol_flow_nominal/3, + uHigh=mCol_flow_nominal/2) "Hysteresis" + annotation (Placement(transformation(extent={{-180,40},{-160,60}}))); + Modelica.Blocks.Logical.And and1 + annotation (Placement(transformation(extent={{-140,40},{-120,60}}))); + IBPSA.Fluid.Sensors.TemperatureTwoPort senTColOut( + redeclare final package Medium = MediumCol, + m_flow_nominal=mCol_flow_nominal, + T_start=TCol_start) annotation (Placement( + transformation( + extent={{10,-10},{-10,10}}, + rotation=0, + origin={-70,-40}))); + IBPSA.Fluid.Sensors.MassFlowRate senMasFlo( + redeclare final package Medium = MediumCol) + "Mass flow rate sensor for the ORC condenser cold fluid" + annotation (Placement(transformation(extent={{-140,-50},{-160,-30}}))); + Modelica.Blocks.Sources.BooleanTable booTab(table={100}, startValue=false) + "Boolean table with initial false" + annotation (Placement(transformation(extent={{-180,0},{-160,20}}))); +equation + connect(orc.port_b1, sinHot.ports[1]) annotation (Line(points={{-20,-28},{-14, + -28},{-14,90},{100,90}}, + color={0,127,255})); + connect(souHot.ports[1], orc.port_a1) annotation (Line(points={{-160,90},{-46, + 90},{-46,-28},{-40,-28}}, + color={0,127,255})); + connect(TWatOut_set.y, conPI.u_s) + annotation (Line(points={{21,10},{38,10}}, color={0,0,127})); + connect(colBou.ports[1], senTWatSup.port_b) annotation (Line(points={{100,-61}, + {100,-80},{80,-80}}, color={0,127,255})); + connect(senTWatRet.port_a, colBou.ports[2]) annotation (Line(points={{80,-40}, + {100,-40},{100,-59}}, color={0,127,255})); + connect(TWatRet.y, colBou.T_in) annotation (Line(points={{149,-60},{132,-60}, + {132,-56},{122,-56}},color={0,0,127})); + connect(senTWatRet.port_b, val.port_1) + annotation (Line(points={{60,-40},{50,-40}}, color={0,127,255})); + connect(spl.port_3, val.port_3) annotation (Line(points={{40,-70},{40,-50}}, + color={0,127,255})); + connect(spl.port_2, senTWatSup.port_a) annotation (Line(points={{50,-80},{60,-80}}, + color={0,127,255})); + connect(conPI.y, val.y) + annotation (Line(points={{61,10},{80,10},{80,-20},{40,-20},{40,-28}}, + color={0,0,127})); + connect(and1.y, orc.ena) annotation (Line(points={{-119,50},{-54,50},{-54,-34}, + {-41,-34}},color={255,0,255})); + connect(orc.port_b2,senTColOut. port_a) annotation (Line(points={{-40,-40},{-60, + -40}}, color={0,127,255})); + connect(senTColOut.port_b, pum.port_a) + annotation (Line(points={{-80,-40},{-100,-40}}, color={0,127,255})); + connect(senTColOut.T, conPI.u_m) annotation (Line(points={{-70,-29},{-70,-12}, + {50,-12},{50,-2}}, color={0,0,127})); + connect(val.port_2, orc.port_a2) annotation (Line(points={{30,-40},{-20,-40}}, + color={0,127,255})); + connect(pum.m_flow_in, booToRea.y) + annotation (Line(points={{-110,-28},{-110,10},{-118,10}}, + color={0,0,127})); + connect(spl.port_1, senMasFlo.port_b) annotation (Line(points={{30,-80},{-180, + -80},{-180,-40},{-160,-40}}, + color={0,127,255})); + connect(senMasFlo.port_a, pum.port_b) + annotation (Line(points={{-140,-40},{-120,-40}}, color={0,127,255})); + connect(booTab.y, booToRea.u) + annotation (Line(points={{-159,10},{-142,10}}, color={255,0,255})); + connect(booTab.y, and1.u2) annotation (Line(points={{-159,10},{-150,10},{-150, + 42},{-142,42}}, color={255,0,255})); + connect(hys.y, and1.u1) + annotation (Line(points={{-158,50},{-142,50}}, color={255,0,255})); + connect(senMasFlo.m_flow, hys.u) annotation (Line(points={{-150,-29},{-150,-20}, + {-190,-20},{-190,50},{-182,50}}, color={0,0,127})); +annotation(experiment(StopTime=900,Tolerance=1E-6), + __Dymola_Commands(file="modelica://IBPSA/Resources/Scripts/Dymola/Fluid/CHPs/OrganicRankine/Examples/ORCHotWater.mos" + "Simulate and plot"), + Documentation(info=" ++This example model demonstrates how + +IBPSA.Fluid.CHPs.OrganicRankine.ConstantEvaporation +can be integrated in a system. +The three-way valve is controlled to track the hot water +output temperature, which is the cold fluid of the ORC, +at a set point of 55°C. +In addition, a safety control sequence prevents the ORC from turning on +until a minimum flow rate is established in the condenser water loop. +
+",revisions=" ++This package contains examples. +
+")); +end Examples; diff --git a/IBPSA/Fluid/CHPs/OrganicRankine/Examples/package.order b/IBPSA/Fluid/CHPs/OrganicRankine/Examples/package.order new file mode 100644 index 0000000000..8ad1dded5c --- /dev/null +++ b/IBPSA/Fluid/CHPs/OrganicRankine/Examples/package.order @@ -0,0 +1 @@ +ORCHotWater diff --git a/IBPSA/Fluid/CHPs/OrganicRankine/Validation/VariableSource.mo b/IBPSA/Fluid/CHPs/OrganicRankine/Validation/VariableSource.mo new file mode 100644 index 0000000000..9df9da0be9 --- /dev/null +++ b/IBPSA/Fluid/CHPs/OrganicRankine/Validation/VariableSource.mo @@ -0,0 +1,155 @@ +within IBPSA.Fluid.CHPs.OrganicRankine.Validation; +model VariableSource + "ORC with waste heat stream with variable flow rate and temperature" + extends Modelica.Icons.Example; + + package MediumHot = IBPSA.Media.Air "Evaporator hot fluid"; + package MediumCol = IBPSA.Media.Water "Condenser cold fluid"; + + parameter IBPSA.Fluid.CHPs.OrganicRankine.Data.WorkingFluids.R245fa pro + "Property record of the working fluid" + annotation (Placement(transformation(extent={{20,60},{40,80}}))); + parameter Modelica.Units.SI.MassFlowRate mHot_flow_nominal = 1 + "Nominal mass flow rate of evaporator hot fluid"; + parameter Modelica.Units.SI.MassFlowRate mCol_flow_nominal = 1 + "Nominal mass flow rate of condenser cold fluid"; + + IBPSA.Fluid.CHPs.OrganicRankine.ConstantEvaporation orc( + redeclare package Medium1 = MediumHot, + redeclare package Medium2 = MediumCol, + pro=pro, + tau1=0, + tau2=0, + energyDynamics=Modelica.Fluid.Types.Dynamics.SteadyState, + T1_start(displayUnit="K") = 350, + T2_start(displayUnit="K") = 290, + dpHot_nominal = 0, + dpCol_nominal = 0, + mHot_flow_nominal=mHot_flow_nominal, + mCol_flow_nominal=mCol_flow_nominal, + mWor_flow_max = + 3E4 / ( + IBPSA.Utilities.Math.Functions.smoothInterpolation( + x = orc.TWorEva, + xSup = pro.T, + ySup = pro.hSatVap) - + IBPSA.Utilities.Math.Functions.smoothInterpolation( + x = 300, + xSup = pro.T, + ySup = pro.hSatLiq)), + mWor_flow_min = orc.mWor_flow_max * 0.2, + TWorEva=350, + etaExp=0.7, + etaPum=0.7) "Organic Rankine cycle" + annotation (Placement(transformation(extent={{-10,-10},{10,10}}))); + IBPSA.Fluid.Sources.MassFlowSource_T souHot( + redeclare final package Medium = MediumHot, + m_flow=mHot_flow_nominal, + T=orc.TWorEva + 20, + nPorts=1, + use_m_flow_in=true, + use_T_in=true) "Evaporator hot fluid source" + annotation (Placement(transformation(extent={{-40,20},{-20,40}}))); + IBPSA.Fluid.Sources.Boundary_pT sinHot( + redeclare final package Medium = MediumHot, + nPorts=1) "Evaporator hot fluid sink" + annotation (Placement(transformation(extent={{80,20},{60,40}}))); + IBPSA.Fluid.Sources.MassFlowSource_T souCol( + redeclare final package Medium = MediumCol, + m_flow=mCol_flow_nominal, + nPorts=1) "Condenser cold fluid source" + annotation (Placement(transformation(extent={{40,-40},{20,-20}}))); + IBPSA.Fluid.Sources.Boundary_pT sinCol( + redeclare final package Medium = MediumCol, + nPorts=1) "Condenser cold fluid sink" + annotation (Placement(transformation(extent={{-80,-40},{-60,-20}}))); + IBPSA.Fluid.Sensors.TemperatureTwoPort THotOut( + redeclare final package Medium = MediumHot, + final m_flow_nominal=mHot_flow_nominal, + tau=0) "Outgoing temperature of evaporator hot fluid" + annotation (Placement(transformation(extent={{30,20},{50,40}}))); + IBPSA.Fluid.Sensors.TemperatureTwoPort TColOut( + redeclare final package Medium = MediumCol, + final m_flow_nominal=mCol_flow_nominal, + tau=0) "Outgoing temperature of condenser cold fluid" + annotation (Placement(transformation(extent={{-30,-40},{-50,-20}}))); + + Modelica.Blocks.Sources.BooleanConstant tru(k=true) "Constant true" + annotation (Placement(transformation(extent={{-40,-10},{-20,10}}))); + + Modelica.Blocks.Sources.TimeTable mHot_flow_set(table=[ + 0,0; + 20,0; + 50,mHot_flow_nominal*1.5; + 250,mHot_flow_nominal*1.5; + 280,0; + 300,0]) + "Sets the hot fluid flow rate in the evaporator" + annotation (Placement(transformation(extent={{-80,40},{-60,60}}))); + Modelica.Blocks.Sources.TimeTable THotIn_set(table=[ + 0,orc.TWorEva + 20; + 100,orc.TWorEva + 20; + 150,orc.TWorEva - 5; + 200,orc.TWorEva + 20; + 300,orc.TWorEva + 20]) + "Sets the hot fluid incoming temperature in the evaporator" + annotation (Placement(transformation(extent={{-80,0},{-60,20}}))); +equation + connect(souHot.ports[1],orc. port_a1) annotation (Line(points={{-20,30},{-16,30}, + {-16,6},{-10,6}}, color={0,127,255})); + connect(souCol.ports[1],orc. port_a2) annotation (Line(points={{20,-30},{16,-30}, + {16,-6},{10,-6}}, color={0,127,255})); + connect(sinHot.ports[1],THotOut. port_b) + annotation (Line(points={{60,30},{50,30}}, color={0,127,255})); + connect(THotOut.port_a,orc. port_b1) annotation (Line(points={{30,30},{16,30}, + {16,6},{10,6}}, color={0,127,255})); + connect(TColOut.port_a,orc. port_b2) annotation (Line(points={{-30,-30},{-16,-30}, + {-16,-6},{-10,-6}}, color={0,127,255})); + connect(sinCol.ports[1], TColOut.port_b) + annotation (Line(points={{-60,-30},{-50,-30}}, color={0,127,255})); + connect(tru.y, orc.ena) + annotation (Line(points={{-19,0},{-11,0}},color={255,0,255})); + connect(mHot_flow_set.y, souHot.m_flow_in) annotation (Line(points={{-59,50},{ + -50,50},{-50,38},{-42,38}}, color={0,0,127})); + connect(THotIn_set.y, souHot.T_in) annotation (Line(points={{-59,10},{-50,10}, + {-50,34},{-42,34}}, color={0,0,127})); + annotation(experiment(StopTime=300,Tolerance=1E-6), + __Dymola_Commands(file="modelica://IBPSA/Resources/Scripts/Dymola/Fluid/CHPs/OrganicRankine/Validation/VariableSource.mos" + "Simulate and plot"), + Documentation(info=" ++This model demonstrates how the ORC model reacts to variable flow rate +and temperature of the incoming hot fluid carrying waste heat. +Normally, the working fluid flow rate of the cycle +ṁw is found from +the set point for the evaporator pinch point temperature differential +ΔTpin,eva. +This constraint is relaxed under any of the following two conditions: +
++This package contains validation models for the classes in + +IBPSA.Fluid.CHPs.OrganicRankine. +
++Note that most validation models contain simple input data +which may not be realistic, but for which the correct +output can be obtained through an analytic solution. +The examples plot various outputs, which have been verified against these +solutions. These model outputs are stored as reference data and +used for continuous validation whenever models in the library change. +
+")); +end Validation; diff --git a/IBPSA/Fluid/CHPs/OrganicRankine/Validation/package.order b/IBPSA/Fluid/CHPs/OrganicRankine/Validation/package.order new file mode 100644 index 0000000000..cd35ba383f --- /dev/null +++ b/IBPSA/Fluid/CHPs/OrganicRankine/Validation/package.order @@ -0,0 +1 @@ +VariableSource diff --git a/IBPSA/Fluid/CHPs/OrganicRankine/package.mo b/IBPSA/Fluid/CHPs/OrganicRankine/package.mo new file mode 100644 index 0000000000..9a4fcf0106 --- /dev/null +++ b/IBPSA/Fluid/CHPs/OrganicRankine/package.mo @@ -0,0 +1,9 @@ +within IBPSA.Fluid.CHPs; +package OrganicRankine "Package for the rankine cycle" + extends Modelica.Icons.VariantsPackage; + annotation (Documentation(info=" ++Package with a model of an organic Rankine cycle. +
+")); +end OrganicRankine; diff --git a/IBPSA/Fluid/CHPs/OrganicRankine/package.order b/IBPSA/Fluid/CHPs/OrganicRankine/package.order new file mode 100644 index 0000000000..cdf4e1c5fa --- /dev/null +++ b/IBPSA/Fluid/CHPs/OrganicRankine/package.order @@ -0,0 +1,5 @@ +ConstantEvaporation +Data +Examples +Validation +BaseClasses diff --git a/IBPSA/Fluid/CHPs/package.mo b/IBPSA/Fluid/CHPs/package.mo new file mode 100644 index 0000000000..91192f873f --- /dev/null +++ b/IBPSA/Fluid/CHPs/package.mo @@ -0,0 +1,10 @@ +within IBPSA.Fluid; +package CHPs "Package with model for combined heat and power device" + extends Modelica.Icons.VariantsPackage; + +annotation (preferredView="info", Documentation(info=" ++This package contains models for combined heat and power plant. +
+")); +end CHPs; diff --git a/IBPSA/Fluid/CHPs/package.order b/IBPSA/Fluid/CHPs/package.order new file mode 100644 index 0000000000..7ec1bfe1a5 --- /dev/null +++ b/IBPSA/Fluid/CHPs/package.order @@ -0,0 +1 @@ +OrganicRankine diff --git a/IBPSA/Fluid/FixedResistances/CheckValve.mo b/IBPSA/Fluid/FixedResistances/CheckValve.mo index 883f7acc25..2ba8be8f9f 100644 --- a/IBPSA/Fluid/FixedResistances/CheckValve.mo +++ b/IBPSA/Fluid/FixedResistances/CheckValve.mo @@ -27,48 +27,85 @@ model CheckValve "Check valve that avoids flow reversal" else 0 "Flow coefficient of fixed resistance that may be in series with valve, k=m_flow/sqrt(dp), with unit=(kg.m)^(1/2)."; - - Real k(min=Modelica.Constants.small) - "Flow coefficient of valve and pipe in series in allowed/forward direction, - k=m_flow/sqrt(dp), with unit=(kg.m)^(1/2)."; - protected - Real a - "Scaled pressure variable"; - Real cv - "Twice differentiable Heaviside check valve characteristic"; - Real kCv - "Smoothed restriction characteristic"; - + parameter Real k_min=if dpFixed_nominal > Modelica.Constants.eps then + sqrt(1 / (1 / kFixed ^ 2 + 1 /(l * Kv_SI) ^ 2)) else l * Kv_SI + "Minimum flow coefficient (valve closed)"; + parameter Real k_max=if dpFixed_nominal > Modelica.Constants.eps then + sqrt(1 / (1 / kFixed ^ 2 + 1 / Kv_SI ^ 2)) else Kv_SI + "Maximum flow coefficient (valve fully open)"; + parameter Modelica.Units.SI.MassFlowRate m1_flow = 0 + "Flow rate through closed valve with zero pressure drop"; + parameter Modelica.Units.SI.MassFlowRate m2_flow = + IBPSA.Fluid.BaseClasses.FlowModels.basicFlowFunction_dp( + dp=dpValve_closing, + k=k_max, + m_flow_turbulent=m_flow_turbulent) + "Flow rate through fully open valve exposed to dpValve_closing"; + parameter Real dm1_flow_dp = + IBPSA.Fluid.BaseClasses.FlowModels.basicFlowFunction_dp_der( + dp=0, + k=k_min, + m_flow_turbulent=m_flow_turbulent, + dp_der=1) + "Derivative of closed valve flow function at dp=0"; + parameter Real dm2_flow_dp = + IBPSA.Fluid.BaseClasses.FlowModels.basicFlowFunction_dp_der( + dp=dpValve_closing, + k=k_max, + m_flow_turbulent=m_flow_turbulent, + dp_der=1) + "Derivative of open valve flow function at dp=dpValve_closing"; + parameter Real d2m1_flow_dp = + IBPSA.Fluid.BaseClasses.FlowModels.basicFlowFunction_dp_der2( + dp=0, + k=k_min, + m_flow_turbulent=m_flow_turbulent, + dp_der=1, + dp_der2=0) + "Second derivative of closed valve flow function at dp=0"; + parameter Real d2m2_flow_dp = + IBPSA.Fluid.BaseClasses.FlowModels.basicFlowFunction_dp_der2( + dp=dpValve_closing, + k=k_max, + m_flow_turbulent=m_flow_turbulent, + dp_der=1, + dp_der2=0) + "Second derivative of open valve flow function at dp=dpValve_closing"; + Modelica.Units.SI.MassFlowRate m_flow_smooth + "Smooth interpolation result between two flow regimes"; initial equation - assert(dpFixed_nominal > -Modelica.Constants.eps, - "In " + getInstanceName() + ": We require dpFixed_nominal >= 0. + assert(dpFixed_nominal > - Modelica.Constants.eps, "In " + getInstanceName() + + ": We require dpFixed_nominal >= 0. Received dpFixed_nominal = " + String(dpFixed_nominal) + " Pa."); - assert(l > -Modelica.Constants.eps, - "In " + getInstanceName() + ": We require l >= 0. Received l = " + String(l)); + assert(l > - Modelica.Constants.eps, "In " + getInstanceName() + + ": We require l >= 0. Received l = " + String(l)); equation - a = dp/dpValve_closing; - cv = smooth(2, max(0, min(1, a^3*(10+a*(-15+6*a))))); - kCv = Kv_SI*(cv*(1-l) + l); - - if (dpFixed_nominal > Modelica.Constants.eps) then - k = sqrt(1/(1/kFixed^2 + 1/kCv^2)); - else - k = kCv; - end if; - + m_flow_smooth=noEvent(smooth(2, + if dp <= 0 then IBPSA.Fluid.BaseClasses.FlowModels.basicFlowFunction_dp( + dp=dp, + k=k_min, + m_flow_turbulent=m_flow_turbulent) + elseif dp >= dpValve_closing then IBPSA.Fluid.BaseClasses.FlowModels.basicFlowFunction_dp( + dp=dp, + k=k_max, + m_flow_turbulent=m_flow_turbulent) + else IBPSA.Utilities.Math.Functions.quinticHermite( + x=dp, + x1=0, + x2=dpValve_closing, + y1=0, + y2=m2_flow, + y1d=dm1_flow_dp, + y2d=dm2_flow_dp, + y1dd=d2m1_flow_dp, + y2dd=d2m2_flow_dp))); if homotopyInitialization then - m_flow = homotopy( - actual=IBPSA.Fluid.BaseClasses.FlowModels.basicFlowFunction_dp( - dp = dp, - k = k, - m_flow_turbulent = m_flow_turbulent), - simplified = m_flow_nominal_pos*dp/dp_nominal_pos); + m_flow=homotopy( + actual=m_flow_smooth, + simplified=m_flow_nominal_pos * dp / dp_nominal_pos); else - m_flow = IBPSA.Fluid.BaseClasses.FlowModels.basicFlowFunction_dp( - dp = dp, - k = k, - m_flow_turbulent = m_flow_turbulent); + m_flow=m_flow_smooth; end if; annotation (Icon(coordinateSystem(preserveAspectRatio=true, extent={{-100,-100}, {100,100}}), graphics={ @@ -103,7 +140,7 @@ defaultComponentName="cheVal", Documentation(info="Implementation of a hydraulic check valve. -Note that the small reverse flows can still occur with this model. +Note that small reverse flows can still occur with this model.
@@ -113,26 +150,22 @@ The basic flow function ṁ = sign(Δp) k √ Δp ,
-with regularization near the origin, is used to compute the pressure drop. -The flow coefficient -
-- k = ṁ ⁄ √ Δp -
-
-is increased from l*KV_Si
to KV_Si
,
-where KV_Si
is equal to Kv
but in SI units.
-Therefore, the flow coefficient k
is set to a value close to zero for negative pressure differences, thereby
-restricting reverse flow to a small value.
-The flow coefficient k
saturates to its maximum value at the pressure dpValve_closing
.
-For larger pressure drops, the pressure drop is a quadratic function of the flow rate.
+with regularization near the origin, is used to compute the mass flow rate
+through the fully closed and fully open valve, respectively.
+The valve is considered fully closed when subjected to a negative pressure drop,
+and its flow coefficient k is then equal to l * Kv_SI
,
+where Kv_SI
is equal to Kv
but in SI units.
+The valve is considered fully open when the pressure drop exceeds
+dpValve_closing
,
+and its flow coefficient k is then equal to Kv_SI
.
+For valve positions between these two extremes, a quintic spline interpolation
+is applied to determine the mass flow rate as a function of
+the pressure drop across the valve.
The parameters m_flow_nominal
and dpValve_nominal
-determine the flow coefficient of the check valve when it is fully opened.
-A typical value for a nominal flow rate of 1 m/s is
-dpValve_nominal = 3400 Pa
.
+determine the flow coefficient of the check valve when it is fully open.
The leakage ratio l
determines the minimum flow coefficient,
for negative pressure differences.
The parameter dpFixed_nominal
allows to include a series
@@ -156,8 +189,13 @@ by default.
", revisions="
\n') + f.write(f'Record containing properties of {nDS}.\n') + f.write(f'Its name in CoolProp is \\"{nCP}\\".\n') + f.write('A figure in the documentation of\n') + f.write(f'\n') + f.write(f'{WITHIN}Fluid.CHPs.OrganicRankine.ConstantEvaporation\n') + f.write('shows which lines these arrays represent.\n') + f.write('
\n') + f.write('"));\n') + + # end + f.write(f'end {nMO};') + print(f'File written: {nMO}.mo') + +####################################################################### + +WriteOneFile(FLUIDNAME,dTRef = dTRef) \ No newline at end of file diff --git a/IBPSA/Resources/ReferenceResults/Dymola/IBPSA_Fluid_CHPs_OrganicRankine_BaseClasses_Validation_DryFluid.txt b/IBPSA/Resources/ReferenceResults/Dymola/IBPSA_Fluid_CHPs_OrganicRankine_BaseClasses_Validation_DryFluid.txt new file mode 100644 index 0000000000..3815da5c55 --- /dev/null +++ b/IBPSA/Resources/ReferenceResults/Dymola/IBPSA_Fluid_CHPs_OrganicRankine_BaseClasses_Validation_DryFluid.txt @@ -0,0 +1,9 @@ +last-generated=2024-08-20 +statistics-simulation= +{ + "linear": " ", + "nonlinear": " ", + "numerical Jacobians": "0" +} +time=[0e+00, 1e+00] +cyc.etaThe=[1.980379521846771e-01, 1.980379521846771e-01] diff --git a/IBPSA/Resources/ReferenceResults/Dymola/IBPSA_Fluid_CHPs_OrganicRankine_BaseClasses_Validation_WetFluid.txt b/IBPSA/Resources/ReferenceResults/Dymola/IBPSA_Fluid_CHPs_OrganicRankine_BaseClasses_Validation_WetFluid.txt new file mode 100644 index 0000000000..ddb05ccefa --- /dev/null +++ b/IBPSA/Resources/ReferenceResults/Dymola/IBPSA_Fluid_CHPs_OrganicRankine_BaseClasses_Validation_WetFluid.txt @@ -0,0 +1,10 @@ +last-generated=2024-08-20 +statistics-simulation= +{ + "linear": " ", + "nonlinear": " ", + "numerical Jacobians": "0" +} +time=[0e+00, 1e+00] +cyc.etaThe=[8.098627626895905e-02, 8.098627626895905e-02] +cyc.dTSup=[3.80600905418396e+00, 3.80600905418396e+00] diff --git a/IBPSA/Resources/ReferenceResults/Dymola/IBPSA_Fluid_CHPs_OrganicRankine_Examples_ORCHotWater.txt b/IBPSA/Resources/ReferenceResults/Dymola/IBPSA_Fluid_CHPs_OrganicRankine_Examples_ORCHotWater.txt new file mode 100644 index 0000000000..77a99cfb65 --- /dev/null +++ b/IBPSA/Resources/ReferenceResults/Dymola/IBPSA_Fluid_CHPs_OrganicRankine_Examples_ORCHotWater.txt @@ -0,0 +1,21 @@ +last-generated=2024-10-17 +statistics-initialization= +{ + "nonlinear": "1, 0, 1", + "numerical Jacobians": "0" +} +statistics-simulation= +{ + "linear": "0", + "nonlinear": "1, 4, 1", + "number of continuous time states": "9", + "numerical Jacobians": "0" +} +time=[0e+00, 9e+02] +pum.m_flow=[0e+00, 0e+00, 0e+00, 0e+00, 0e+00, 0e+00, 0e+00, 0e+00, 0e+00, 0e+00, 0e+00, 0e+00, 3.600000143051147e-01, 7.649999856948853e-01, 1.169999957084656e+00, 1.350000023841858e+00, 1.350000023841858e+00, 1.350000023841858e+00, 1.350000023841858e+00, 1.350000023841858e+00, 1.350000023841858e+00, 1.350000023841858e+00, 1.350000023841858e+00, 1.350000023841858e+00, 1.350000023841858e+00, 1.350000023841858e+00, 1.350000023841858e+00, 1.350000023841858e+00, 1.350000023841858e+00, 1.350000023841858e+00, 1.350000023841858e+00, 1.350000023841858e+00, 1.350000023841858e+00, 1.350000023841858e+00, 1.350000023841858e+00, 1.350000023841858e+00, 1.350000023841858e+00, 1.350000023841858e+00, 1.350000023841858e+00, 1.350000023841858e+00, 1.350000023841858e+00, 1.350000023841858e+00, 1.350000023841858e+00, 1.350000023841858e+00, 1.350000023841858e+00, 1.350000023841858e+00, 1.350000023841858e+00, 1.350000023841858e+00, 1.350000023841858e+00, 1.350000023841858e+00, 1.350000023841858e+00, 1.350000023841858e+00, 1.350000023841858e+00, 1.350000023841858e+00, 1.350000023841858e+00, 1.350000023841858e+00, 1.350000023841858e+00, 1.350000023841858e+00, 1.350000023841858e+00, 1.350000023841858e+00, 1.350000023841858e+00, 1.350000023841858e+00, 1.350000023841858e+00, 1.350000023841858e+00, 1.350000023841858e+00, 1.350000023841858e+00, 1.350000023841858e+00, 1.350000023841858e+00, 1.350000023841858e+00, 1.350000023841858e+00, 1.350000023841858e+00, 1.350000023841858e+00, 1.350000023841858e+00, 1.350000023841858e+00, 1.350000023841858e+00, 1.350000023841858e+00, 1.350000023841858e+00, 1.350000023841858e+00, 1.350000023841858e+00, 1.350000023841858e+00, 1.350000023841858e+00, 1.350000023841858e+00, 1.350000023841858e+00, 1.350000023841858e+00, 1.350000023841858e+00, 1.350000023841858e+00, 1.350000023841858e+00, 1.350000023841858e+00, 1.350000023841858e+00, 1.350000023841858e+00, 1.350000023841858e+00, 1.350000023841858e+00, 1.350000023841858e+00, 1.350000023841858e+00, 1.350000023841858e+00, 1.350000023841858e+00, 1.350000023841858e+00, 1.350000023841858e+00, 1.350000023841858e+00, 1.350000023841858e+00, 1.350000023841858e+00] +orc.PExp=[-0e+00, -0e+00, -0e+00, -0e+00, -0e+00, -0e+00, -0e+00, 0e+00, -0e+00, -0e+00, -0e+00, -0e+00, -0e+00, -5.047607421875e+03, -5.679322265625e+03, -5.591501953125e+03, -5.2858798828125e+03, -4.98615576171875e+03, -4.69414501953125e+03, -4.418654296875e+03, -4.21325390625e+03, -4.1798173828125e+03, -4.560865234375e+03, -4.90720751953125e+03, -4.82639501953125e+03, -4.6282041015625e+03, -4.5874912109375e+03, -4.679552734375e+03, -4.73887353515625e+03, -4.71108349609375e+03, -4.6709755859375e+03, -4.67110400390625e+03, -4.69270556640625e+03, -4.7004765625e+03, -4.68892431640625e+03, -4.67389501953125e+03, -4.673931640625e+03, -4.6816318359375e+03, -4.68426953125e+03, -4.6811083984375e+03, -4.678287109375e+03, -4.67847705078125e+03, -4.679673828125e+03, -4.67972412109375e+03, -4.67879443359375e+03, -4.67798388671875e+03, -4.67763232421875e+03, -4.67743115234375e+03, -4.6770263671875e+03, -4.676416015625e+03, -4.6757939453125e+03, -4.67519970703125e+03, -4.6745322265625e+03, -4.6737783203125e+03, -4.67298046875e+03, -4.67210205078125e+03, -4.67109228515625e+03, -4.669974609375e+03, -4.66876123046875e+03, -4.66739404296875e+03, -4.6658291015625e+03, -4.6640751953125e+03, -4.66210107421875e+03, -4.65984521484375e+03, -4.657267578125e+03, -4.6543369140625e+03, -4.651001953125e+03, -4.64889501953125e+03, -4.66262939453125e+03, -4.6811357421875e+03, -4.690380859375e+03, -4.69413720703125e+03, -4.6951064453125e+03, -4.69359130859375e+03, -4.69105859375e+03, -4.68932421875e+03, -4.688853515625e+03, -4.689189453125e+03, -4.68971728515625e+03, -4.69006201171875e+03, -4.6901416015625e+03, -4.6900625e+03, -4.6899580078125e+03, -4.68989892578125e+03, -4.6898857421875e+03, -4.6898916015625e+03, -4.68990185546875e+03, -4.6899140625e+03, -4.689923828125e+03, -4.68992578125e+03, -4.68992041015625e+03, -4.6899150390625e+03, -4.6899150390625e+03, -4.6899169921875e+03, -4.68991748046875e+03, -4.68991650390625e+03, -4.68991455078125e+03, -4.6899140625e+03, -4.689916015625e+03, -4.68991845703125e+03, -4.6899208984375e+03] +orc.PPum=[0e+00, 0e+00, 0e+00, 0e+00, 0e+00, 0e+00, 0e+00, 0e+00, 0e+00, 0e+00, 0e+00, 0e+00, 0e+00, 2.16175048828125e+02, 2.278022003173828e+02, 2.262939300537109e+02, 2.207820129394531e+02, 2.149391479492188e+02, 2.087775573730469e+02, 2.024923248291016e+02, 1.974808654785156e+02, 1.966373596191406e+02, 2.057969207763672e+02, 2.133211822509766e+02, 2.116288604736328e+02, 2.073166198730469e+02, 2.064012145996094e+02, 2.0845654296875e+02, 2.097534942626953e+02, 2.091485443115234e+02, 2.082672576904297e+02, 2.082700958251953e+02, 2.087459411621094e+02, 2.089164276123047e+02, 2.08662841796875e+02, 2.083317260742188e+02, 2.083325500488281e+02, 2.085023498535156e+02, 2.085604400634766e+02, 2.084908142089844e+02, 2.084286346435547e+02, 2.084328308105469e+02, 2.084592132568359e+02, 2.084603118896484e+02, 2.084398193359375e+02, 2.084219512939453e+02, 2.084141998291016e+02, 2.084097595214844e+02, 2.084008331298828e+02, 2.083873748779297e+02, 2.083736419677734e+02, 2.083605346679688e+02, 2.083458099365234e+02, 2.083291625976562e+02, 2.083115386962891e+02, 2.082921447753906e+02, 2.082698364257812e+02, 2.082451324462891e+02, 2.082183074951172e+02, 2.081880798339844e+02, 2.081534576416016e+02, 2.081146392822266e+02, 2.080709381103516e+02, 2.080209503173828e+02, 2.079638061523438e+02, 2.078987884521484e+02, 2.078247222900391e+02, 2.077778930664062e+02, 2.080826263427734e+02, 2.084914245605469e+02, 2.086948699951172e+02, 2.087773742675781e+02, 2.087986450195312e+02, 2.08765380859375e+02, 2.087097473144531e+02, 2.08671630859375e+02, 2.086612854003906e+02, 2.086686706542969e+02, 2.086802825927734e+02, 2.086878509521484e+02, 2.086896057128906e+02, 2.086878662109375e+02, 2.086855621337891e+02, 2.086842803955078e+02, 2.086839752197266e+02, 2.086841125488281e+02, 2.086843414306641e+02, 2.086846008300781e+02, 2.086848297119141e+02, 2.086848602294922e+02, 2.086847381591797e+02, 2.086846313476562e+02, 2.086846160888672e+02, 2.086846618652344e+02, 2.086846771240234e+02, 2.086846466064453e+02, 2.086846160888672e+02, 2.086846008300781e+02, 2.086846466064453e+02, 2.086847076416016e+02, 2.086847534179688e+02] +orc.QEva_flow=[0e+00, 0e+00, 0e+00, 0e+00, 0e+00, 0e+00, 0e+00, 0e+00, 0e+00, 0e+00, 0e+00, 0e+00, 0e+00, -6.16321484375e+04, -6.3274328125e+04, -6.30512109375e+04, -6.226166796875e+04, -6.146783203125e+04, -6.067626953125e+04, -5.991373828125e+04, -5.93358359375e+04, -5.924104296875e+04, -6.030921875e+04, -6.125556640625e+04, -6.10369453125e+04, -6.049511328125e+04, -6.0382828125e+04, -6.06362578125e+04, -6.079865234375e+04, -6.07226640625e+04, -6.061271484375e+04, -6.06130703125e+04, -6.067232421875e+04, -6.06936171875e+04, -6.06619609375e+04, -6.062073046875e+04, -6.062083203125e+04, -6.06419609375e+04, -6.06491953125e+04, -6.06405234375e+04, -6.063278515625e+04, -6.06333046875e+04, -6.063658984375e+04, -6.06367265625e+04, -6.063417578125e+04, -6.0631953125e+04, -6.063098828125e+04, -6.063043359375e+04, -6.062932421875e+04, -6.06276484375e+04, -6.062594140625e+04, -6.06243125e+04, -6.062248046875e+04, -6.062041015625e+04, -6.061821875e+04, -6.061580859375e+04, -6.06130390625e+04, -6.060996875e+04, -6.060663671875e+04, -6.06028828125e+04, -6.05985859375e+04, -6.059376953125e+04, -6.058834765625e+04, -6.05821484375e+04, -6.057506640625e+04, -6.056701171875e+04, -6.055784375e+04, -6.055205078125e+04, -6.0589796875e+04, -6.064059765625e+04, -6.0665953125e+04, -6.067625e+04, -6.067890625e+04, -6.067475390625e+04, -6.066780859375e+04, -6.06630546875e+04, -6.0661765625e+04, -6.06626875e+04, -6.06641328125e+04, -6.0665078125e+04, -6.0665296875e+04, -6.0665078125e+04, -6.066479296875e+04, -6.06646328125e+04, -6.066459375e+04, -6.0664609375e+04, -6.0664640625e+04, -6.0664671875e+04, -6.066469921875e+04, -6.066470703125e+04, -6.066469140625e+04, -6.066467578125e+04, -6.066467578125e+04, -6.06646796875e+04, -6.066468359375e+04, -6.06646796875e+04, -6.066467578125e+04, -6.0664671875e+04, -6.06646796875e+04, -6.06646875e+04, -6.066469140625e+04] +orc.QCon_flow=[0e+00, 0e+00, 0e+00, 0e+00, 0e+00, 0e+00, 0e+00, 0e+00, 0e+00, 0e+00, 0e+00, 0e+00, 0e+00, 5.680071484375e+04, 5.782280859375e+04, 5.768600390625e+04, 5.71965703125e+04, 5.66966171875e+04, 5.619090234375e+04, 5.569757421875e+04, 5.53200625e+04, 5.525786328125e+04, 5.595415234375e+04, 5.65616796875e+04, 5.64221796875e+04, 5.60742265625e+04, 5.600173828125e+04, 5.616516015625e+04, 5.626953515625e+04, 5.622073046875e+04, 5.61500078125e+04, 5.6150234375e+04, 5.61883671875e+04, 5.620205859375e+04, 5.618169921875e+04, 5.615516796875e+04, 5.615523046875e+04, 5.616883203125e+04, 5.6173484375e+04, 5.616790625e+04, 5.616292578125e+04, 5.616326171875e+04, 5.6165375e+04, 5.61654609375e+04, 5.61638203125e+04, 5.6162390625e+04, 5.616176953125e+04, 5.61614140625e+04, 5.616069921875e+04, 5.615962109375e+04, 5.61585234375e+04, 5.615747265625e+04, 5.615629296875e+04, 5.61549609375e+04, 5.615355078125e+04, 5.6152e+04, 5.615021484375e+04, 5.614823828125e+04, 5.614609375e+04, 5.614367578125e+04, 5.614091015625e+04, 5.613780859375e+04, 5.613431640625e+04, 5.613032421875e+04, 5.612576171875e+04, 5.612057421875e+04, 5.61146640625e+04, 5.611093359375e+04, 5.613525e+04, 5.6167953125e+04, 5.6184265625e+04, 5.6190890625e+04, 5.619259765625e+04, 5.618992578125e+04, 5.61854609375e+04, 5.618240234375e+04, 5.618157421875e+04, 5.61821640625e+04, 5.618309765625e+04, 5.6183703125e+04, 5.618384375e+04, 5.618370703125e+04, 5.618351953125e+04, 5.618341796875e+04, 5.618339453125e+04, 5.618340234375e+04, 5.6183421875e+04, 5.61834453125e+04, 5.61834609375e+04, 5.618346484375e+04, 5.6183453125e+04, 5.61834453125e+04, 5.61834453125e+04, 5.618344921875e+04, 5.618344921875e+04, 5.618344921875e+04, 5.61834453125e+04, 5.61834453125e+04, 5.61834453125e+04, 5.6183453125e+04, 5.618345703125e+04] +senTWatSup.T=[3.081499938964844e+02, 3.081499938964844e+02, 3.081499938964844e+02, 3.081499938964844e+02, 3.081499938964844e+02, 3.081499938964844e+02, 3.081499938964844e+02, 3.081499938964844e+02, 3.081499938964844e+02, 3.081499938964844e+02, 3.081499938964844e+02, 3.081499938964844e+02, 3.081499938964844e+02, 3.081499938964844e+02, 3.081499938964844e+02, 3.081499938964844e+02, 3.081500244140625e+02, 3.081500244140625e+02, 3.081500244140625e+02, 3.08884521484375e+02, 3.15165283203125e+02, 3.242608642578125e+02, 3.277221984863281e+02, 3.278239440917969e+02, 3.275229797363281e+02, 3.275411376953125e+02, 3.278572998046875e+02, 3.280862426757812e+02, 3.28076904296875e+02, 3.280145874023438e+02, 3.280353088378906e+02, 3.281051635742188e+02, 3.281397094726562e+02, 3.281302185058594e+02, 3.2812060546875e+02, 3.28140380859375e+02, 3.281753845214844e+02, 3.28195068359375e+02, 3.281971435546875e+02, 3.281977233886719e+02, 3.282046203613281e+02, 3.282132263183594e+02, 3.282182922363281e+02, 3.282203369140625e+02, 3.282225646972656e+02, 3.282260437011719e+02, 3.282298278808594e+02, 3.282331848144531e+02, 3.282361755371094e+02, 3.282393493652344e+02, 3.282429504394531e+02, 3.282467956542969e+02, 3.282508239746094e+02, 3.282551879882812e+02, 3.282599487304688e+02, 3.282650756835938e+02, 3.282706909179688e+02, 3.282768859863281e+02, 3.282837829589844e+02, 3.282913513183594e+02, 3.282994079589844e+02, 3.283086242675781e+02, 3.283192749023438e+02, 3.283303527832031e+02, 3.28345947265625e+02, 3.283599548339844e+02, 3.283786926269531e+02, 3.283974304199219e+02, 3.284041137695312e+02, 3.283757019042969e+02, 3.283257141113281e+02, 3.282757568359375e+02, 3.282337951660156e+02, 3.282029113769531e+02, 3.281841125488281e+02, 3.281746215820312e+02, 3.28169921875e+02, 3.281665954589844e+02, 3.281632690429688e+02, 3.28159912109375e+02, 3.281569519042969e+02, 3.2815478515625e+02, 3.281533508300781e+02, 3.281524963378906e+02, 3.281518859863281e+02, 3.281514587402344e+02, 3.28151123046875e+02, 3.281508483886719e+02, 3.28150634765625e+02, 3.281504516601562e+02, 3.281502990722656e+02, 3.281502380371094e+02, 3.281501770019531e+02, 3.28150146484375e+02, 3.281500854492188e+02, 3.281500854492188e+02, 3.281500549316406e+02, 3.281500549316406e+02, 3.281500549316406e+02, 3.281500244140625e+02, 3.281500244140625e+02] +senTWatRet.T=[3.081499938964844e+02, 3.081499938964844e+02, 3.081499938964844e+02, 3.081499938964844e+02, 3.081499938964844e+02, 3.081499938964844e+02, 3.081499938964844e+02, 3.081499938964844e+02, 3.081499938964844e+02, 3.081499938964844e+02, 3.081499938964844e+02, 3.081499938964844e+02, 3.081499938964844e+02, 3.081499938964844e+02, 3.081499938964844e+02, 3.081499938964844e+02, 3.081499938964844e+02, 3.081500244140625e+02, 3.081500244140625e+02, 3.081500244140625e+02, 3.081500244140625e+02, 3.081499938964844e+02, 3.081499938964844e+02, 3.081499938964844e+02, 3.081499938964844e+02, 3.081499938964844e+02, 3.081499938964844e+02, 3.081499938964844e+02, 3.081499938964844e+02, 3.081499938964844e+02, 3.081499938964844e+02, 3.081499938964844e+02, 3.081499938964844e+02, 3.081499938964844e+02, 3.0828564453125e+02, 3.085830383300781e+02, 3.088848876953125e+02, 3.091864929199219e+02, 3.094873352050781e+02, 3.097879943847656e+02, 3.100889892578125e+02, 3.1039013671875e+02, 3.106912231445312e+02, 3.109921875e+02, 3.112931518554688e+02, 3.115941467285156e+02, 3.118951721191406e+02, 3.121961669921875e+02, 3.124971618652344e+02, 3.127981567382812e+02, 3.130991516113281e+02, 3.13400146484375e+02, 3.137011108398438e+02, 3.140021057128906e+02, 3.143031005859375e+02, 3.146040649414062e+02, 3.149050598144531e+02, 3.152060241699219e+02, 3.155070190429688e+02, 3.158079833984375e+02, 3.161089172363281e+02, 3.164098510742188e+02, 3.167108154296875e+02, 3.1701171875e+02, 3.173127746582031e+02, 3.176136169433594e+02, 3.179146118164062e+02, 3.181482543945312e+02, 3.181500854492188e+02, 3.181499938964844e+02, 3.181499938964844e+02, 3.181499938964844e+02, 3.181499938964844e+02, 3.181499938964844e+02, 3.181499938964844e+02, 3.181499938964844e+02, 3.181499938964844e+02, 3.181499938964844e+02, 3.181499938964844e+02, 3.181499938964844e+02, 3.181499938964844e+02, 3.181499938964844e+02, 3.181499938964844e+02, 3.181499938964844e+02, 3.181499938964844e+02, 3.181499938964844e+02, 3.181499938964844e+02, 3.181499938964844e+02, 3.181499938964844e+02, 3.181499938964844e+02, 3.181499938964844e+02, 3.181499938964844e+02, 3.181499938964844e+02, 3.181499938964844e+02, 3.181499938964844e+02, 3.181499938964844e+02, 3.181499938964844e+02, 3.181499938964844e+02, 3.181499938964844e+02, 3.181499938964844e+02, 3.181499938964844e+02] diff --git a/IBPSA/Resources/ReferenceResults/Dymola/IBPSA_Fluid_CHPs_OrganicRankine_Validation_VariableSource.txt b/IBPSA/Resources/ReferenceResults/Dymola/IBPSA_Fluid_CHPs_OrganicRankine_Validation_VariableSource.txt new file mode 100644 index 0000000000..2eb4c2d937 --- /dev/null +++ b/IBPSA/Resources/ReferenceResults/Dymola/IBPSA_Fluid_CHPs_OrganicRankine_Validation_VariableSource.txt @@ -0,0 +1,18 @@ +last-generated=2024-08-20 +statistics-simulation= +{ + "linear": "0, 0, 0", + "nonlinear": "4", + "numerical Jacobians": "0" +} +time=[0e+00, 3e+02] +mHot_flow_set.y=[0e+00, 0e+00, 0e+00, 0e+00, 0e+00, 0e+00, 0e+00, 5.000000074505824e-02, 2.000000029802322e-01, 3.499999940395355e-01, 5e-01, 6.499999761581421e-01, 8.00000011920929e-01, 9.49999988079071e-01, 1.100000023841858e+00, 1.25e+00, 1.399999976158142e+00, 1.5e+00, 1.5e+00, 1.5e+00, 1.5e+00, 1.5e+00, 1.5e+00, 1.5e+00, 1.5e+00, 1.5e+00, 1.5e+00, 1.5e+00, 1.5e+00, 1.5e+00, 1.5e+00, 1.5e+00, 1.5e+00, 1.5e+00, 1.5e+00, 1.5e+00, 1.5e+00, 1.5e+00, 1.5e+00, 1.5e+00, 1.5e+00, 1.5e+00, 1.5e+00, 1.5e+00, 1.5e+00, 1.5e+00, 1.5e+00, 1.5e+00, 1.5e+00, 1.5e+00, 1.5e+00, 1.5e+00, 1.5e+00, 1.5e+00, 1.5e+00, 1.5e+00, 1.5e+00, 1.5e+00, 1.5e+00, 1.5e+00, 1.5e+00, 1.5e+00, 1.5e+00, 1.5e+00, 1.5e+00, 1.5e+00, 1.5e+00, 1.5e+00, 1.5e+00, 1.5e+00, 1.5e+00, 1.5e+00, 1.5e+00, 1.5e+00, 1.5e+00, 1.5e+00, 1.5e+00, 1.5e+00, 1.5e+00, 1.5e+00, 1.5e+00, 1.5e+00, 1.5e+00, 1.5e+00, 1.399999976158142e+00, 1.25e+00, 1.100000023841858e+00, 9.49999988079071e-01, 8.00000011920929e-01, 6.499999761581421e-01, 5e-01, 3.499999940395355e-01, 2.000000029802322e-01, 5.000000074505806e-02, 0e+00, 0e+00, 0e+00, 0e+00, 0e+00, 0e+00, 0e+00] +souHot.T_in=[3.7e+02, 3.7e+02, 3.7e+02, 3.7e+02, 3.7e+02, 3.7e+02, 3.7e+02, 3.7e+02, 3.7e+02, 3.7e+02, 3.7e+02, 3.7e+02, 3.7e+02, 3.7e+02, 3.7e+02, 3.7e+02, 3.7e+02, 3.7e+02, 3.7e+02, 3.7e+02, 3.7e+02, 3.7e+02, 3.7e+02, 3.7e+02, 3.7e+02, 3.7e+02, 3.7e+02, 3.7e+02, 3.7e+02, 3.7e+02, 3.7e+02, 3.7e+02, 3.7e+02, 3.7e+02, 3.69e+02, 3.675e+02, 3.66e+02, 3.645e+02, 3.63e+02, 3.615e+02, 3.6e+02, 3.585e+02, 3.57e+02, 3.555e+02, 3.54e+02, 3.525e+02, 3.51e+02, 3.495e+02, 3.48e+02, 3.465e+02, 3.45e+02, 3.465e+02, 3.48e+02, 3.495e+02, 3.51e+02, 3.525e+02, 3.54e+02, 3.555e+02, 3.57e+02, 3.585e+02, 3.6e+02, 3.615e+02, 3.63e+02, 3.645e+02, 3.66e+02, 3.675e+02, 3.69e+02, 3.7e+02, 3.7e+02, 3.7e+02, 3.7e+02, 3.7e+02, 3.7e+02, 3.7e+02, 3.7e+02, 3.7e+02, 3.7e+02, 3.7e+02, 3.7e+02, 3.7e+02, 3.7e+02, 3.7e+02, 3.7e+02, 3.7e+02, 3.7e+02, 3.7e+02, 3.7e+02, 3.7e+02, 3.7e+02, 3.7e+02, 3.7e+02, 3.7e+02, 3.7e+02, 3.7e+02, 3.7e+02, 3.7e+02, 3.7e+02, 3.7e+02, 3.7e+02, 3.7e+02, 3.7e+02] +orc.cyc.TWorEva=[3.5e+02, 3.5e+02] +orc.cyc.mWor_flow=[0e+00, 0e+00, 0e+00, 0e+00, 0e+00, 0e+00, 0e+00, 0e+00, 0e+00, 0e+00, 0e+00, 0e+00, 7.782351970672607e-02, 9.241543710231781e-02, 1.07007347047329e-01, 1.215992569923401e-01, 1.326909810304642e-01, 1.326909810304642e-01, 1.326909810304642e-01, 1.326909810304642e-01, 1.326909810304642e-01, 1.326909810304642e-01, 1.326909810304642e-01, 1.326909810304642e-01, 1.326909810304642e-01, 1.326909810304642e-01, 1.326909810304642e-01, 1.326909810304642e-01, 1.326909810304642e-01, 1.326909810304642e-01, 1.326909810304642e-01, 1.326909810304642e-01, 1.326909810304642e-01, 1.326909810304642e-01, 1.326909810304642e-01, 1.215992569923401e-01, 1.070073470473289e-01, 9.241543710231781e-02, 7.782351970672607e-02, 6.323160976171494e-02, 4.863970354199409e-02, 3.404778987169273e-02, 0e+00, 0e+00, 0e+00, 0e+00, 0e+00, 0e+00, 0e+00, 0e+00, 0e+00, 0e+00, 0e+00, 0e+00, 0e+00, 0e+00, 0e+00, 0e+00, 0e+00, 0e+00, 0e+00, 0e+00, 7.782351970672607e-02, 9.241543710231781e-02, 1.070073470473289e-01, 1.215992569923401e-01, 1.326909810304642e-01, 1.326909810304642e-01, 1.326909810304642e-01, 1.326909810304642e-01, 1.326909810304642e-01, 1.326909810304642e-01, 1.326909810304642e-01, 1.326909810304642e-01, 1.326909810304642e-01, 1.326909810304642e-01, 1.326909810304642e-01, 1.326909810304642e-01, 1.326909810304642e-01, 1.326909810304642e-01, 1.326909810304642e-01, 1.326909810304642e-01, 1.326909810304642e-01, 1.326909810304642e-01, 1.326909810304642e-01, 1.215992569923401e-01, 1.070073470473289e-01, 9.241543710231781e-02, 7.782351970672607e-02, 6.323160976171494e-02, 4.863970354199409e-02, 3.404778987169266e-02, 0e+00, 0e+00, 0e+00, 0e+00, 0e+00, 0e+00, 0e+00, 0e+00, 0e+00] +orc.cyc.mWor_flow_max=[1.326909810304642e-01, 1.326909810304642e-01] +orc.cyc.mWor_flow_min=[2.653819508850574e-02, 2.653819508850574e-02] +orc.cyc.dTPinEva=[9.397287368774414e+00, 9.397287368774414e+00, 9.397287368774414e+00, 9.397287368774414e+00, 9.397287368774414e+00, 9.397287368774414e+00, 9.397287368774414e+00, 2e+01, 2e+01, 2e+01, 2e+01, 2e+01, 5e+00, 5e+00, 5e+00, 5e+00, 5.38550853729248e+00, 6.359807968139648e+00, 6.359807968139648e+00, 6.359807968139648e+00, 6.359807968139648e+00, 6.359807968139648e+00, 6.359807968139648e+00, 6.359807968139648e+00, 6.359807968139648e+00, 6.359807968139648e+00, 6.359807968139648e+00, 6.359807968139648e+00, 6.359807968139648e+00, 6.359807968139648e+00, 6.359807968139648e+00, 6.359807968139648e+00, 6.359807968139648e+00, 6.359807968139648e+00, 5.359807968139641e+00, 5e+00, 5e+00, 5e+00, 5e+00, 5e+00, 5e+00, 5e+00, 7e+00, 5.5e+00, 4e+00, 2.5e+00, 1e+00, -5e-01, -2e+00, -3.5e+00, -5e+00, -3.5e+00, -2e+00, -5e-01, 1e+00, 2.5e+00, 4.000000000000014e+00, 5.499999999999986e+00, 7e+00, 8.5e+00, 1e+01, 1.15e+01, 5e+00, 5e+00, 5e+00, 5e+00, 5.359807968139648e+00, 6.359807968139648e+00, 6.359807968139648e+00, 6.359807968139648e+00, 6.359807968139648e+00, 6.359807968139648e+00, 6.359807968139648e+00, 6.359807968139648e+00, 6.359807968139648e+00, 6.359807968139648e+00, 6.359807968139648e+00, 6.359807968139648e+00, 6.359807968139648e+00, 6.359807968139648e+00, 6.359807968139648e+00, 6.359807968139648e+00, 6.359807968139648e+00, 6.359807968139648e+00, 5.38550853729248e+00, 5e+00, 5e+00, 5e+00, 5e+00, 5e+00, 5e+00, 5e+00, 2e+01, 2e+01, 2e+01, 2e+01, 2e+01, 2e+01, 2e+01, 2e+01, 2e+01] +orc.cyc.dTPinEva_set=[5e+00, 5e+00] +orc.ena=[1e+00, 1e+00] +orc.on_actual=[0e+00, 0e+00, 0e+00, 0e+00, 0e+00, 0e+00, 0e+00, 0e+00, 0e+00, 0e+00, 0e+00, 0e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 0e+00, 0e+00, 0e+00, 0e+00, 0e+00, 0e+00, 0e+00, 0e+00, 0e+00, 0e+00, 0e+00, 0e+00, 0e+00, 0e+00, 0e+00, 0e+00, 0e+00, 0e+00, 0e+00, 0e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 1e+00, 0e+00, 0e+00, 0e+00, 0e+00, 0e+00, 0e+00, 0e+00, 0e+00, 0e+00] diff --git a/IBPSA/Resources/ReferenceResults/Dymola/IBPSA_Fluid_FixedResistances_Examples_CheckValve.txt b/IBPSA/Resources/ReferenceResults/Dymola/IBPSA_Fluid_FixedResistances_Examples_CheckValve.txt index 6d707d7536..378082829f 100644 --- a/IBPSA/Resources/ReferenceResults/Dymola/IBPSA_Fluid_FixedResistances_Examples_CheckValve.txt +++ b/IBPSA/Resources/ReferenceResults/Dymola/IBPSA_Fluid_FixedResistances_Examples_CheckValve.txt @@ -1,4 +1,4 @@ -last-generated=2019-11-12 +last-generated=2024-10-14 statistics-initialization= { "nonlinear": "1", @@ -10,12 +10,9 @@ statistics-simulation= "nonlinear": "1", "numerical Jacobians": "0" } -checkValve_m_flow.dp=[0e+00, 3.960315884060042e+02, 4.979421423140869e+02, 5.719583783842938e+02, 6.329558765751018e+02, 6.862586631956844e+02, 7.344693665035837e+02, 7.790868517328123e+02, 8.210711132373215e+02, 8.610861675664777e+02, 8.996207829058955e+02, 9.370541403838025e+02, 9.736955663731899e+02, 1.009809709502961e+03, 1.045634031071492e+03, 1.081392678865522e+03, 1.117307874241905e+03, 1.153611199524893e+03, 1.190556369828231e+03, 1.228435067793452e+03, 1.267598498888221e+03, 1.308490872376382e+03, 1.351700811020757e+03, 1.398052470264349e+03, 1.448769682342921e+03, 1.5058056640625e+03, 1.572553172094486e+03, 1.655370751378253e+03, 1.764267563724527e+03, 1.892250109272729e+03, 2.024999839604022e+03, 2.162249966847894e+03, 2.304000103318098e+03, 2.450249805861401e+03, 2.600999945443962e+03, 2.756250094145607e+03, 2.91599976890092e+03, 3.080249920821444e+03, 3.249000081753658e+03, 3.422250251697565e+03, 3.59999989298034e+03, 3.782250066143122e+03, 3.969000248424991e+03, 4.160249861920649e+03, 4.356000047314002e+03, 4.556250241933832e+03, 4.760999827641354e+03, 4.970250025266439e+03, 5.184000232225395e+03, 5.402249790145509e+03, 5.625e+03, 5.852250219294815e+03, 6.084000447171622e+03, 6.320250683630421e+03, 6.560999479555489e+03, 6.806249705497506e+03, 7.055999940024965e+03, 7.310250183782338e+03, 7.569000436334702e+03, 7.832250697469057e+03, 8.099999357351735e+03, 8.372249607978039e+03, 8.648999867179351e+03, 8.930250135395712e+03, 9.216000412627123e+03, 9.506250698433543e+03, 9.800999222285474e+03, 1.010024949757744e+04, 1.040399978145605e+04, 1.071225007413772e+04, 1.102500037603841e+04, 1.134225068652911e+04, 1.166399907433225e+04, 1.199024937430152e+04, 1.232099968286209e+04, 1.265625e+04, 1.299600032658136e+04, 1.334025066174005e+04, 1.368900100549005e+04, 1.404224923816076e+04, 1.439999957138933e+04, 1.476224991320311e+04, 1.51290002642455e+04, 1.550025062408615e+04, 1.587600099251346e+04, 1.625624908913537e+04, 1.664099944704124e+04, 1.703024981353375e+04, 1.742400018903665e+04, 1.782225057354995e+04, 1.82250009666499e+04, 1.863224892723467e+04, 1.904399930981784e+04, 1.946024970099464e+04, 1.988100010095899e+04, 2.030625051014659e+04, 2.073600092792384e+04, 2.117024875245865e+04, 2.160899915973774e+04, 2.205224957557555e+04, 2.25e+04] -checkValve.dp=[-2e+05, -1.959999999105931e+05, -1.919999998211861e+05, -1.879999997317794e+05, -1.839999996423722e+05, -1.800000002980232e+05, -1.759999994635583e+05, -1.720000001192095e+05, -1.679999992847457e+05, -1.640000014305086e+05, -1.600000005960452e+05, -1.559999997615819e+05, -1.519999989271186e+05, -1.479999980926552e+05, -1.440000002384181e+05, -1.40000002384181e+05, -1.359999985694914e+05, -1.320000007152543e+05, -1.280000028610172e+05, -1.239999990463276e+05, -1.200000011920905e+05, -1.159999973774009e+05, -1.119999995231638e+05, -1.080000016689267e+05, -1.039999978542371e+05, -1e+05, -9.599999618531046e+04, -9.200000429152572e+04, -8.800000047683618e+04, -8.399999666214666e+04, -8.000000476836192e+04, -7.600000095367238e+04, -7.199999713898284e+04, -6.80000052451981e+04, -6.400000143050856e+04, -5.999999761581905e+04, -5.600000572203431e+04, -5.200000190734477e+04, -4.799999809265523e+04, -4.399999427796569e+04, -4.000000238418095e+04, -3.599999856949144e+04, -3.19999947548019e+04, -2.800000286101715e+04, -2.399999904632762e+04, -1.999999523163808e+04, -1.600000333785334e+04, -1.199999952316382e+04, -7.99999570847428e+03, -4.000003814689539e+03, 1.164153218269348e-10, 4.000003814632696e+03, 8.000007629265392e+03, 1.200001144389809e+04, 1.599999141707646e+04, 1.999999523170915e+04, 2.399999904631343e+04, 2.80000028609745e+04, 3.20000066756072e+04, 3.600001049023989e+04, 3.999999046341826e+04, 4.399999427805096e+04, 4.799999809268365e+04, 5.200000190731635e+04, 5.600000572194904e+04, 6.000000953658174e+04, 6.399998950976011e+04, 6.799999332439281e+04, 7.199999713902549e+04, 7.600000095368657e+04, 8.000000476829085e+04, 8.400000858292355e+04, 8.799998855610192e+04, 9.19999923707346e+04, 9.59999961853673e+04, 1e+05, 1.040000038146327e+05, 1.080000076292654e+05, 1.120000114438981e+05, 1.159999914170765e+05, 1.199999952317092e+05, 1.239999990463134e+05, 1.280000028609745e+05, 1.320000066756072e+05, 1.360000104902399e+05, 1.399999904634182e+05, 1.43999994278051e+05, 1.479999980926836e+05, 1.520000019073164e+05, 1.56000005721949e+05, 1.600000095365818e+05, 1.639999895097601e+05, 1.679999933243928e+05, 1.719999971390255e+05, 1.760000009536866e+05, 1.800000047682908e+05, 1.840000085829235e+05, 1.879999885561019e+05, 1.919999923707346e+05, 1.959999961853673e+05, 2e+05] time=[0e+00, 1e+00] -checkValveDpFix.m_flow=[-7.752520032227039e-03, -7.599784523558206e-03, -7.446909782158223e-03, -7.293898136333848e-03, -7.140752845714168e-03, -6.987476267168542e-03, -6.834071574638226e-03, -6.680541210728288e-03, -6.526887855012931e-03, -6.373114938909741e-03, -6.219224561592291e-03, -6.065219631548481e-03, -5.911103408406907e-03, -5.756878220479694e-03, -5.602546976767384e-03, -5.448112822010223e-03, -5.293577854182275e-03, -5.13894579345031e-03, -4.984218737908994e-03, -4.829399250776375e-03, -4.67449151871845e-03, -4.519496942729751e-03, -4.364419244363853e-03, -4.20926098667588e-03, -4.054024732261188e-03, -3.898714203387499e-03, -3.743331032660968e-03, -3.587879407322825e-03, -3.432360729118528e-03, -3.276778953676437e-03, -3.121136873263832e-03, -2.965436586984429e-03, -2.809681585389971e-03, -2.653874894049948e-03, -2.49801884391909e-03, -2.342116693226281e-03, -2.186171467934309e-03, -2.030185265347777e-03, -1.874161693365501e-03, -1.71810331313372e-03, -1.562013616696936e-03, -1.40589458406368e-03, -1.2497494743465e-03, -1.09358166339218e-03, -9.373931889544362e-04, -7.811873685991841e-04, -6.249675201043239e-04, -4.687356518131292e-04, -3.124951105628847e-04, -1.562492287461338e-04, 4.547460986276609e-18, 1.084652798285731e+00, 1.53393065803649e+00, 1.878673719564719e+00, 2.169304019994485e+00, 2.425355857604131e+00, 2.656844562701449e+00, 2.869720366144158e+00, 3.067860206100095e+00, 3.253957266227621e+00, 3.429971284003748e+00, 3.597384456255098e+00, 3.757345601458287e+00, 3.910769534033575e+00, 4.058397499694961e+00, 4.200840805913738e+00, 4.338608861907587e+00, 4.472135800495924e+00, 4.601789859640423e+00, 4.727889567398091e+00, 4.850712443547709e+00, 4.97050167621754e+00, 5.08746972307351e+00, 5.201809190129118e+00, 5.313689126079652e+00, 5.423261642456055e+00, 5.530663114694668e+00, 5.636018951750249e+00, 5.739440733831591e+00, 5.841031334895346e+00, 5.940884948756617e+00, 6.039088225945917e+00, 6.135719844618598e+00, 6.230853238066126e+00, 6.324555640593955e+00, 6.416889448639107e+00, 6.507913459999518e+00, 6.597682433472111e+00, 6.686245960167954e+00, 6.773651723949516e+00, 6.859943594076367e+00, 6.945163027574508e+00, 7.029350140936665e+00, 7.11254066267086e+00, 7.194769401947633e+00, 7.276068783704507e+00, 7.356469802585306e+00, 7.436001074249104e+00, 7.514691203389503e+00, 7.592565939375051e+00, 7.669650077819824e+00] +checkValve.dp=[-2e+05, -1.959999999105931e+05, -1.919999998211861e+05, -1.879999997317794e+05, -1.839999996423722e+05, -1.800000002980232e+05, -1.759999994635583e+05, -1.720000001192095e+05, -1.679999992847457e+05, -1.640000014305086e+05, -1.600000005960452e+05, -1.559999997615819e+05, -1.519999989271186e+05, -1.479999980926552e+05, -1.440000002384181e+05, -1.40000002384181e+05, -1.359999985694914e+05, -1.320000007152543e+05, -1.280000028610172e+05, -1.239999990463276e+05, -1.200000011920905e+05, -1.159999973774009e+05, -1.119999995231638e+05, -1.080000016689267e+05, -1.039999978542371e+05, -1e+05, -9.599999618531046e+04, -9.200000429152572e+04, -8.800000047683618e+04, -8.399999666214666e+04, -8.000000476836192e+04, -7.600000095367238e+04, -7.199999713898284e+04, -6.80000052451981e+04, -6.400000143050856e+04, -5.999999761581905e+04, -5.600000572203431e+04, -5.200000190734477e+04, -4.799999809265523e+04, -4.399999427796569e+04, -4.000000238418095e+04, -3.599999856949144e+04, -3.19999947548019e+04, -2.800000286101715e+04, -2.399999904632762e+04, -1.999999523163808e+04, -1.600000333785334e+04, -1.199999952316382e+04, -7.99999570847428e+03, -4.000003814689539e+03, 0e+00, 4.000003814632696e+03, 8.000007629265392e+03, 1.200001144389809e+04, 1.599999141707646e+04, 1.999999523170915e+04, 2.399999904631343e+04, 2.80000028609745e+04, 3.20000066756072e+04, 3.600001049023989e+04, 3.999999046341826e+04, 4.399999427805096e+04, 4.799999809268365e+04, 5.200000190731635e+04, 5.600000572194904e+04, 6.000000953658174e+04, 6.399998950976011e+04, 6.799999332439281e+04, 7.199999713902549e+04, 7.600000095368657e+04, 8.000000476829085e+04, 8.400000858292355e+04, 8.799998855610192e+04, 9.19999923707346e+04, 9.59999961853673e+04, 1e+05, 1.040000038146327e+05, 1.080000076292654e+05, 1.120000114438981e+05, 1.159999914170765e+05, 1.199999952317092e+05, 1.239999990463134e+05, 1.280000028609745e+05, 1.320000066756072e+05, 1.360000104902399e+05, 1.399999904634182e+05, 1.43999994278051e+05, 1.479999980926836e+05, 1.520000019073164e+05, 1.56000005721949e+05, 1.600000095365818e+05, 1.639999895097601e+05, 1.679999933243928e+05, 1.719999971390255e+05, 1.760000009536866e+05, 1.800000047682908e+05, 1.840000085829235e+05, 1.879999885561019e+05, 1.919999923707346e+05, 1.959999961853673e+05, 2e+05] +checkValve_m_flow.dp=[0e+00, 3.253773523976561e+02, 4.222576939576101e+02, 4.945212750578851e+02, 5.550939381046511e+02, 6.087020225317126e+02, 6.576890321642276e+02, 7.034207750360397e+02, 7.467816237616745e+02, 7.883903051518797e+02, 8.287080018678728e+02, 8.680974754672669e+02, 9.068595073977131e+02, 9.452559997003622e+02, 9.835265480115605e+02, 1.021901954607473e+03, 1.060615370401153e+03, 1.099914299560223e+03, 1.140073701446469e+03, 1.181413828423314e+03, 1.224322740898865e+03, 1.269293243362892e+03, 1.316977911196055e+03, 1.368283791349329e+03, 1.42453909470838e+03, 1.4878076171875e+03, 1.561495317651149e+03, 1.65132765350144e+03, 1.764178452215886e+03, 1.892250109272729e+03, 2.024999839604022e+03, 2.162249966847894e+03, 2.304000103318098e+03, 2.450249805861401e+03, 2.600999945443962e+03, 2.756250094145607e+03, 2.91599976890092e+03, 3.080249920821444e+03, 3.249000081753658e+03, 3.422250251697565e+03, 3.59999989298034e+03, 3.782250066143122e+03, 3.969000248424991e+03, 4.160249861920649e+03, 4.356000047314002e+03, 4.556250241933832e+03, 4.760999827641354e+03, 4.970250025266439e+03, 5.184000232225395e+03, 5.402249790145509e+03, 5.625e+03, 5.852250219294815e+03, 6.084000447171622e+03, 6.320250683630421e+03, 6.560999479555489e+03, 6.806249705497506e+03, 7.055999940024965e+03, 7.310250183782338e+03, 7.569000436334702e+03, 7.832250697469057e+03, 8.099999357351735e+03, 8.372249607978039e+03, 8.648999867179351e+03, 8.930250135395712e+03, 9.216000412627123e+03, 9.506250698433543e+03, 9.800999222285474e+03, 1.010024949757744e+04, 1.040399978145605e+04, 1.071225007413772e+04, 1.102500037603841e+04, 1.134225068652911e+04, 1.166399907433225e+04, 1.199024937430152e+04, 1.232099968286209e+04, 1.265625e+04, 1.299600032658136e+04, 1.334025066174005e+04, 1.368900100549005e+04, 1.404224923816076e+04, 1.439999957138933e+04, 1.476224991320311e+04, 1.51290002642455e+04, 1.550025062408615e+04, 1.587600099251346e+04, 1.625624908913537e+04, 1.664099944704124e+04, 1.703024981353375e+04, 1.742400018903665e+04, 1.782225057354995e+04, 1.82250009666499e+04, 1.863224892723467e+04, 1.904399930981784e+04, 1.946024970099464e+04, 1.988100010095899e+04, 2.030625051014659e+04, 2.073600092792384e+04, 2.117024875245865e+04, 2.160899915973774e+04, 2.205224957557555e+04, 2.25e+04] +checkValve.m_flow=[-7.752541452646255e-03, -7.599805478316083e-03, -7.446929805593681e-03, -7.293918159769202e-03, -7.140772403488235e-03, -6.987495359281322e-03, -6.834090201089719e-03, -6.680559371518493e-03, -6.526906015802719e-03, -6.373132634038658e-03, -6.219241791059921e-03, -6.065236395354824e-03, -5.911119706551963e-03, -5.756894052963462e-03, -5.602562343589865e-03, -5.448127723172804e-03, -5.293592289683014e-03, -5.138959763289346e-03, -4.984232242087991e-03, -4.829412754953152e-03, -4.674504557234494e-03, -4.519509515582982e-03, -4.364431351557045e-03, -4.209272628208063e-03, -4.054035908130835e-03, -3.898724913597107e-03, -3.743341510038823e-03, -3.587889186211108e-03, -3.432370275174918e-03, -3.27678803407154e-03, -3.121145487997647e-03, -2.965444736056957e-03, -2.809689268801211e-03, -2.653882344630545e-03, -2.498025828838399e-03, -2.34212297965366e-03, -2.186177521532709e-03, -2.03019085328378e-03, -1.874166815639662e-03, -1.718108086161915e-03, -1.562017924064191e-03, -1.4058984257693e-03, -1.249752966805391e-03, -1.093584690190548e-03, -9.373958082990385e-04, -7.811895222822909e-04, -6.249692663343942e-04, -4.687369614854477e-04, -3.1249598367733e-04, -1.56249665304007e-04, 0e+00, 2.108186012328036e+00, 2.981425242590987e+00, 3.651485487228109e+00, 4.216368960341761e+00, 4.71404448007724e+00, 5.163977519516414e+00, 5.577733799645768e+00, 5.962848327781098e+00, 6.324556313443797e+00, 6.666665708993483e+00, 6.99205829724383e+00, 7.302967402666092e+00, 7.601169725051172e+00, 7.888106747695043e+00, 8.164966276308371e+00, 8.432739518215753e+00, 8.692269851000189e+00, 8.944271863119701e+00, 9.189365444468706e+00, 9.428090375798805e+00, 9.660918728166356e+00, 9.888264011637142e+00, 1.011049991556849e+01, 1.03279550403475e+01, 1.054092597961426e+01, 1.074967690117713e+01, 1.095445194717541e+01, 1.115546760229282e+01, 1.135292392618847e+01, 1.154700542358435e+01, 1.17378778005526e+01, 1.192569555238426e+01, 1.211060173093898e+01, 1.229272603645148e+01, 1.247219043153602e+01, 1.264911054240309e+01, 1.282358924220902e+01, 1.29957257131441e+01, 1.31656124619035e+01, 1.333333341230456e+01, 1.3498970553153e+01, 1.366260119917552e+01, 1.382429397516502e+01, 1.398411754578027e+01, 1.41421358072255e+01, 1.429840693408419e+01, 1.445298818421652e+01, 1.460593480624394e+01, 1.475729546476821e+01, 1.490711975097656e+01] +checkValveDpFix.m_flow=[-7.752520032227039e-03, -7.599784523558206e-03, -7.446909782158223e-03, -7.293898136333848e-03, -7.140752845714168e-03, -6.987476267168542e-03, -6.834071574638226e-03, -6.680541210728288e-03, -6.526887855012931e-03, -6.373114938909741e-03, -6.219224561592291e-03, -6.065219631548481e-03, -5.911103408406907e-03, -5.756878220479694e-03, -5.602546976767384e-03, -5.448112822010223e-03, -5.293577854182275e-03, -5.13894579345031e-03, -4.984218737908994e-03, -4.829399250776375e-03, -4.67449151871845e-03, -4.519496942729751e-03, -4.364419244363853e-03, -4.20926098667588e-03, -4.054024732261188e-03, -3.898714203387499e-03, -3.743331032660968e-03, -3.587879407322825e-03, -3.432360729118528e-03, -3.276778953676437e-03, -3.121136873263832e-03, -2.965436586984429e-03, -2.809681585389971e-03, -2.653874894049948e-03, -2.49801884391909e-03, -2.342116693226281e-03, -2.186171467934309e-03, -2.030185265347777e-03, -1.874161693365501e-03, -1.71810331313372e-03, -1.562013616696936e-03, -1.40589458406368e-03, -1.2497494743465e-03, -1.09358166339218e-03, -9.373931889544362e-04, -7.811873685991841e-04, -6.249675201043239e-04, -4.687356518131292e-04, -3.124951105628847e-04, -1.562492287461338e-04, 0e+00, 1.084652798285731e+00, 1.53393065803649e+00, 1.878673719564719e+00, 2.169304019994485e+00, 2.425355857604131e+00, 2.656844562701449e+00, 2.869720366144158e+00, 3.067860206100095e+00, 3.253957266227621e+00, 3.429971284003748e+00, 3.597384456255098e+00, 3.757345601458287e+00, 3.910769534033575e+00, 4.058397499694961e+00, 4.200840805913738e+00, 4.338608861907587e+00, 4.472135800495924e+00, 4.601789859640423e+00, 4.727889567398091e+00, 4.850712443547709e+00, 4.97050167621754e+00, 5.08746972307351e+00, 5.201809190129118e+00, 5.313689126079652e+00, 5.423261642456055e+00, 5.530663114694668e+00, 5.636018951750249e+00, 5.739440733831591e+00, 5.841031334895346e+00, 5.940884948756617e+00, 6.039088225945917e+00, 6.135719844618598e+00, 6.230853238066126e+00, 6.324555640593955e+00, 6.416889448639107e+00, 6.507913459999518e+00, 6.597682433472111e+00, 6.686245960167954e+00, 6.773651723949516e+00, 6.859943594076367e+00, 6.945163027574508e+00, 7.029350140936665e+00, 7.11254066267086e+00, 7.194769401947633e+00, 7.276068783704507e+00, 7.356469802585306e+00, 7.436001074249104e+00, 7.514691203389503e+00, 7.592565939375051e+00, 7.669650077819824e+00] checkValve_m_flow.m_flow=[0e+00, 5.000000186264474e-02, 1.000000037252895e-01, 1.500000093132189e-01, 2.000000074505756e-01, 2.499999962747083e-01, 3.00000018626444e-01, 3.499999925494183e-01, 4.000000149011346e-01, 4.499999701977309e-01, 4.999999925494416e-01, 5.500000149011524e-01, 6.00000037252863e-01, 6.500000000000711e-01, 6.999999850988478e-01, 7.499999701977664e-01, 8.000000298022691e-01, 8.500000149011346e-01, 8.999999403954617e-01, 9.499999999999645e-01, 9.999999850988832e-01, 1.049999985098741e+00, 1.100000029802305e+00, 1.149999955296579e+00, 1.200000074505726e+00, 1.25e+00, 1.299999999999858e+00, 1.349999970197838e+00, 1.399999970197696e+00, 1.450000089406843e+00, 1.499999940395533e+00, 1.549999940395391e+00, 1.600000059604538e+00, 1.649999910593228e+00, 1.700000029802376e+00, 1.750000029802234e+00, 1.799999880790923e+00, 1.850000000000071e+00, 1.899999999999929e+00, 1.950000119209077e+00, 1.999999970197766e+00, 2.049999970197624e+00, 2.099999970197482e+00, 2.150000059604751e+00, 2.200000059604609e+00, 2.250000059604467e+00, 2.299999910593157e+00, 2.349999910593015e+00, 2.400000149011452e+00, 2.450000000000142e+00, 2.5e+00, 2.549999999999148e+00, 2.599999999998295e+00, 2.650000238416022e+00, 2.699999940397274e+00, 2.749999940396421e+00, 2.799999940395213e+00, 2.849999940394715e+00, 2.900000178812442e+00, 2.950000178811589e+00, 2.999999880792842e+00, 3.049999880791989e+00, 3.099999880791137e+00, 3.150000119208863e+00, 3.200000119208011e+00, 3.250000119207158e+00, 3.299999821188411e+00, 3.349999821187558e+00, 3.400000059605285e+00, 3.450000059604787e+00, 3.500000059603579e+00, 3.550000059602726e+00, 3.599999761583978e+00, 3.650000000001705e+00, 3.700000000000852e+00, 3.75e+00, 3.799999999999148e+00, 3.849999999998295e+00, 3.900000238416022e+00, 3.949999940397274e+00, 3.999999940396421e+00, 4.050000178813508e+00, 4.099999940395568e+00, 4.150000178810452e+00, 4.199999940396137e+00, 4.24999988079e+00, 4.300000119208863e+00, 4.349999880791705e+00, 4.400000119208295e+00, 4.449999880791137e+00, 4.50000011921e+00, 4.550000059603863e+00, 4.599999821189548e+00, 4.650000059604432e+00, 4.699999821186492e+00, 4.750000059605e+00, 4.800000298018747e+00, 4.849999761587389e+00, 4.899999999999432e+00, 4.949999761583411e+00, 5e+00] -checkValve.m_flow=[-7.752541452646255e-03, -7.599805478316083e-03, -7.446929805593681e-03, -7.293918159769202e-03, -7.140772403488235e-03, -6.987495359281322e-03, -6.834090201089719e-03, -6.680559371518493e-03, -6.526906015802719e-03, -6.373132634038658e-03, -6.219241791059921e-03, -6.065236395354824e-03, -5.911119706551963e-03, -5.756894052963462e-03, -5.602562343589865e-03, -5.448127723172804e-03, -5.293592289683014e-03, -5.138959763289346e-03, -4.984232242087991e-03, -4.829412754953152e-03, -4.674504557234494e-03, -4.519509515582982e-03, -4.364431351557045e-03, -4.209272628208063e-03, -4.054035908130835e-03, -3.898724913597107e-03, -3.743341510038823e-03, -3.587889186211108e-03, -3.432370275174918e-03, -3.27678803407154e-03, -3.121145487997647e-03, -2.965444736056957e-03, -2.809689268801211e-03, -2.653882344630545e-03, -2.498025828838399e-03, -2.34212297965366e-03, -2.186177521532709e-03, -2.03019085328378e-03, -1.874166815639662e-03, -1.718108086161915e-03, -1.562017924064191e-03, -1.4058984257693e-03, -1.249752966805391e-03, -1.093584690190548e-03, -9.373958082990385e-04, -7.811895222822909e-04, -6.249692663343942e-04, -4.687369614854477e-04, -3.1249598367733e-04, -1.56249665304007e-04, 4.547473393985798e-18, 2.108186012328036e+00, 2.981425242590987e+00, 3.651485487228109e+00, 4.216368960341761e+00, 4.71404448007724e+00, 5.163977519516414e+00, 5.577733799645768e+00, 5.962848327781098e+00, 6.324556313443797e+00, 6.666665708993483e+00, 6.99205829724383e+00, 7.302967402666092e+00, 7.601169725051172e+00, 7.888106747695043e+00, 8.164966276308371e+00, 8.432739518215753e+00, 8.692269851000189e+00, 8.944271863119701e+00, 9.189365444468706e+00, 9.428090375798805e+00, 9.660918728166356e+00, 9.888264011637142e+00, 1.011049991556849e+01, 1.03279550403475e+01, 1.054092597961426e+01, 1.074967690117713e+01, 1.095445194717541e+01, 1.115546760229282e+01, 1.135292392618847e+01, 1.154700542358435e+01, 1.17378778005526e+01, 1.192569555238426e+01, 1.211060173093898e+01, 1.229272603645148e+01, 1.247219043153602e+01, 1.264911054240309e+01, 1.282358924220902e+01, 1.29957257131441e+01, 1.31656124619035e+01, 1.333333341230456e+01, 1.3498970553153e+01, 1.366260119917552e+01, 1.382429397516502e+01, 1.398411754578027e+01, 1.41421358072255e+01, 1.429840693408419e+01, 1.445298818421652e+01, 1.460593480624394e+01, 1.475729546476821e+01, 1.490711975097656e+01] -checkValve_m_flow.k=[3.333333370392211e-05, 2.5124943812356e-03, 4.481367383764485e-03, 6.272043216602961e-03, 7.949563819821735e-03, 9.543244610377982e-03, 1.106966400026355e-02, 1.253935224715179e-02, 1.395949187447931e-02, 1.533519148657346e-02, 1.667017842539976e-02, 1.796719812006738e-02, 1.922824639561976e-02, 2.045472396309983e-02, 2.164752215567459e-02, 2.280707216484617e-02, 2.393335329812105e-02, 2.50258704581014e-02, 2.608359902968145e-02, 2.710488089881254e-02, 2.80872450125125e-02, 2.902712173969935e-02, 2.991936552353304e-02, 3.075644153723524e-02, 3.152692356766528e-02, 3.221258521080017e-02, 3.278239489568243e-02, 3.318074312277398e-02, 3.333080559424496e-02, 3.333333507180214e-02, 3.333333507180214e-02, 3.333333507180214e-02, 3.333333507180214e-02, 3.333333507180214e-02, 3.333333507180214e-02, 3.333333507180214e-02, 3.333333507180214e-02, 3.333333507180214e-02, 3.333333507180214e-02, 3.333333507180214e-02, 3.333333507180214e-02, 3.333333507180214e-02, 3.333333507180214e-02, 3.333333507180214e-02, 3.333333507180214e-02, 3.333333507180214e-02, 3.333333507180214e-02, 3.333333507180214e-02, 3.333333507180214e-02, 3.333333507180214e-02, 3.333333507180214e-02, 3.333333507180214e-02, 3.333333507180214e-02, 3.333333507180214e-02, 3.333333507180214e-02, 3.333333507180214e-02, 3.333333507180214e-02, 3.333333507180214e-02, 3.333333507180214e-02, 3.333333507180214e-02, 3.333333507180214e-02, 3.333333507180214e-02, 3.333333507180214e-02, 3.333333507180214e-02, 3.333333507180214e-02, 3.333333507180214e-02, 3.333333507180214e-02, 3.333333507180214e-02, 3.333333507180214e-02, 3.333333507180214e-02, 3.333333507180214e-02, 3.333333507180214e-02, 3.333333507180214e-02, 3.333333507180214e-02, 3.333333507180214e-02, 3.333333507180214e-02, 3.333333507180214e-02, 3.333333507180214e-02, 3.333333507180214e-02, 3.333333507180214e-02, 3.333333507180214e-02, 3.333333507180214e-02, 3.333333507180214e-02, 3.333333507180214e-02, 3.333333507180214e-02, 3.333333507180214e-02, 3.333333507180214e-02, 3.333333507180214e-02, 3.333333507180214e-02, 3.333333507180214e-02, 3.333333507180214e-02, 3.333333507180214e-02, 3.333333507180214e-02, 3.333333507180214e-02, 3.333333507180214e-02, 3.333333507180214e-02, 3.333333507180214e-02, 3.333333507180214e-02, 3.333333507180214e-02, 3.333333507180214e-02, 3.333333507180214e-02] -checkValveDpFix.k=[3.333328641019762e-05, 3.333328641019762e-05, 3.333328641019762e-05, 3.333328641019762e-05, 3.333328641019762e-05, 3.333328641019762e-05, 3.333328641019762e-05, 3.333328641019762e-05, 3.333328641019762e-05, 3.333328641019762e-05, 3.333328641019762e-05, 3.333328641019762e-05, 3.333328641019762e-05, 3.333328641019762e-05, 3.333328641019762e-05, 3.333328641019762e-05, 3.333328641019762e-05, 3.333328641019762e-05, 3.333328641019762e-05, 3.333328641019762e-05, 3.333328641019762e-05, 3.333328641019762e-05, 3.333328641019762e-05, 3.333328641019762e-05, 3.333328641019762e-05, 3.333328641019762e-05, 3.333328641019762e-05, 3.333328641019762e-05, 3.333328641019762e-05, 3.333328641019762e-05, 3.333328641019762e-05, 3.333328641019762e-05, 3.333328641019762e-05, 3.333328641019762e-05, 3.333328641019762e-05, 3.333328641019762e-05, 3.333328641019762e-05, 3.333328641019762e-05, 3.333328641019762e-05, 3.333328641019762e-05, 3.333328641019762e-05, 3.333328641019762e-05, 3.333328641019762e-05, 3.333328641019762e-05, 3.333328641019762e-05, 3.333328641019762e-05, 3.333328641019762e-05, 3.333328641019762e-05, 3.333328641019762e-05, 3.333328641019762e-05, 3.333328641019762e-05, 1.714985817670822e-02, 1.714985817670822e-02, 1.714985817670822e-02, 1.714985817670822e-02, 1.714985817670822e-02, 1.714985817670822e-02, 1.714985817670822e-02, 1.714985817670822e-02, 1.714985817670822e-02, 1.714985817670822e-02, 1.714985817670822e-02, 1.714985817670822e-02, 1.714985817670822e-02, 1.714985817670822e-02, 1.714985817670822e-02, 1.714985817670822e-02, 1.714985817670822e-02, 1.714985817670822e-02, 1.714985817670822e-02, 1.714985817670822e-02, 1.714985817670822e-02, 1.714985817670822e-02, 1.714985817670822e-02, 1.714985817670822e-02, 1.714985817670822e-02, 1.714985817670822e-02, 1.714985817670822e-02, 1.714985817670822e-02, 1.714985817670822e-02, 1.714985817670822e-02, 1.714985817670822e-02, 1.714985817670822e-02, 1.714985817670822e-02, 1.714985817670822e-02, 1.714985817670822e-02, 1.714985817670822e-02, 1.714985817670822e-02, 1.714985817670822e-02, 1.714985817670822e-02, 1.714985817670822e-02, 1.714985817670822e-02, 1.714985817670822e-02, 1.714985817670822e-02, 1.714985817670822e-02, 1.714985817670822e-02, 1.714985817670822e-02, 1.714985817670822e-02, 1.714985817670822e-02, 1.714985817670822e-02, 1.714985817670822e-02] -checkValve.k=[3.333333370392211e-05, 3.333333370392211e-05, 3.333333370392211e-05, 3.333333370392211e-05, 3.333333370392211e-05, 3.333333370392211e-05, 3.333333370392211e-05, 3.333333370392211e-05, 3.333333370392211e-05, 3.333333370392211e-05, 3.333333370392211e-05, 3.333333370392211e-05, 3.333333370392211e-05, 3.333333370392211e-05, 3.333333370392211e-05, 3.333333370392211e-05, 3.333333370392211e-05, 3.333333370392211e-05, 3.333333370392211e-05, 3.333333370392211e-05, 3.333333370392211e-05, 3.333333370392211e-05, 3.333333370392211e-05, 3.333333370392211e-05, 3.333333370392211e-05, 3.333333370392211e-05, 3.333333370392211e-05, 3.333333370392211e-05, 3.333333370392211e-05, 3.333333370392211e-05, 3.333333370392211e-05, 3.333333370392211e-05, 3.333333370392211e-05, 3.333333370392211e-05, 3.333333370392211e-05, 3.333333370392211e-05, 3.333333370392211e-05, 3.333333370392211e-05, 3.333333370392211e-05, 3.333333370392211e-05, 3.333333370392211e-05, 3.333333370392211e-05, 3.333333370392211e-05, 3.333333370392211e-05, 3.333333370392211e-05, 3.333333370392211e-05, 3.333333370392211e-05, 3.333333370392211e-05, 3.333333370392211e-05, 3.333333370392211e-05, 3.333333370392211e-05, 3.333333507180214e-02, 3.333333507180214e-02, 3.333333507180214e-02, 3.333333507180214e-02, 3.333333507180214e-02, 3.333333507180214e-02, 3.333333507180214e-02, 3.333333507180214e-02, 3.333333507180214e-02, 3.333333507180214e-02, 3.333333507180214e-02, 3.333333507180214e-02, 3.333333507180214e-02, 3.333333507180214e-02, 3.333333507180214e-02, 3.333333507180214e-02, 3.333333507180214e-02, 3.333333507180214e-02, 3.333333507180214e-02, 3.333333507180214e-02, 3.333333507180214e-02, 3.333333507180214e-02, 3.333333507180214e-02, 3.333333507180214e-02, 3.333333507180214e-02, 3.333333507180214e-02, 3.333333507180214e-02, 3.333333507180214e-02, 3.333333507180214e-02, 3.333333507180214e-02, 3.333333507180214e-02, 3.333333507180214e-02, 3.333333507180214e-02, 3.333333507180214e-02, 3.333333507180214e-02, 3.333333507180214e-02, 3.333333507180214e-02, 3.333333507180214e-02, 3.333333507180214e-02, 3.333333507180214e-02, 3.333333507180214e-02, 3.333333507180214e-02, 3.333333507180214e-02, 3.333333507180214e-02, 3.333333507180214e-02, 3.333333507180214e-02, 3.333333507180214e-02, 3.333333507180214e-02, 3.333333507180214e-02, 3.333333507180214e-02] diff --git a/IBPSA/Resources/Scripts/Dymola/Fluid/CHPs/OrganicRankine/BaseClasses/Validation/DryFluid.mos b/IBPSA/Resources/Scripts/Dymola/Fluid/CHPs/OrganicRankine/BaseClasses/Validation/DryFluid.mos new file mode 100644 index 0000000000..34c8bc07c1 --- /dev/null +++ b/IBPSA/Resources/Scripts/Dymola/Fluid/CHPs/OrganicRankine/BaseClasses/Validation/DryFluid.mos @@ -0,0 +1,12 @@ +simulateModel("IBPSA.Fluid.CHPs.OrganicRankine.BaseClasses.Validation.DryFluid", + method="dassl", stopTime=1, tolerance=1e-06, resultFile="DryFluid"); +// Plot commands +createPlot(id=1, + position={95, 95, 592, 371}, + y={"cyc.etaThe"}, + range={0.0, 1.0, 0.13, 0.165}, + grid=true, + colors={{28,108,200}}, + timeUnit="s", + displayUnits={"1"}); + diff --git a/IBPSA/Resources/Scripts/Dymola/Fluid/CHPs/OrganicRankine/BaseClasses/Validation/WetFluid.mos b/IBPSA/Resources/Scripts/Dymola/Fluid/CHPs/OrganicRankine/BaseClasses/Validation/WetFluid.mos new file mode 100644 index 0000000000..add3b5ad7c --- /dev/null +++ b/IBPSA/Resources/Scripts/Dymola/Fluid/CHPs/OrganicRankine/BaseClasses/Validation/WetFluid.mos @@ -0,0 +1,6 @@ +simulateModel("IBPSA.Fluid.CHPs.OrganicRankine.BaseClasses.Validation.WetFluid", + method="dassl", stopTime=1, tolerance=1e-06, resultFile="WetFluid"); +// Plot commands +createPlot(id=1, position={120, 7, 595, 507}, y={"cyc.etaThe"}, range={0.0, 1.0, 0.08, 0.10500000000000001}, grid=true, subPlot=101, colors={{28,108,200}}, timeUnit="s", displayUnits={"1"}); +createPlot(id=1, position={120, 7, 595, 507}, y={"cyc.dTSup"}, range={0.0, 1.0, 3.6, 4.800000000000001}, grid=true, subPlot=102, colors={{28,108,200}}, timeUnit="s", displayUnits={"K"}); + diff --git a/IBPSA/Resources/Scripts/Dymola/Fluid/CHPs/OrganicRankine/Examples/ORCHotWater.mos b/IBPSA/Resources/Scripts/Dymola/Fluid/CHPs/OrganicRankine/Examples/ORCHotWater.mos new file mode 100644 index 0000000000..79ee91e226 --- /dev/null +++ b/IBPSA/Resources/Scripts/Dymola/Fluid/CHPs/OrganicRankine/Examples/ORCHotWater.mos @@ -0,0 +1,8 @@ +simulateModel("IBPSA.Fluid.CHPs.OrganicRankine.Examples.ORCHotWater", + method="Cvode", stopTime=900, tolerance=1e-06, resultFile="ORCHotWater"); +// Plot commands +createPlot(id=1, position={147, 7, 573, 658}, y={"pum.m_flow"}, range={0.0, 900.0, -1.0, 2.0}, grid=true, subPlot=101, colors={{28,108,200}}, timeUnit="s", displayUnits={"kg/s"}); +createPlot(id=1, position={147, 7, 573, 658}, y={"orc.PExp", "orc.PPum"}, range={0.0, 900.0, -5000.0, 10000.0}, grid=true, subPlot=102, colors={{28,108,200}, {238,46,47}}, timeUnit="s", displayUnits={"W", "W"}); +createPlot(id=1, position={147, 7, 573, 658}, y={"orc.QEva_flow", "orc.QCon_flow"}, range={0.0, 900.0, -50000.0, 100000.0}, grid=true, subPlot=103, colors={{28,108,200}, {238,46,47}}, timeUnit="s", displayUnits={"W", "W"}); +createPlot(id=1, position={147, 7, 573, 658}, y={"senTWatSup.T", "senTWatRet.T"}, range={0.0, 900.0, 30.0, 60.0}, grid=true, subPlot=104, colors={{28,108,200}, {238,46,47}}, timeUnit="s", displayUnits={"degC", "degC"}); + diff --git a/IBPSA/Resources/Scripts/Dymola/Fluid/CHPs/OrganicRankine/Validation/VariableSource.mos b/IBPSA/Resources/Scripts/Dymola/Fluid/CHPs/OrganicRankine/Validation/VariableSource.mos new file mode 100644 index 0000000000..adb56e4d33 --- /dev/null +++ b/IBPSA/Resources/Scripts/Dymola/Fluid/CHPs/OrganicRankine/Validation/VariableSource.mos @@ -0,0 +1,9 @@ +simulateModel("IBPSA.Fluid.CHPs.OrganicRankine.Validation.VariableSource", + method="dassl", stopTime=300, tolerance=1e-06, resultFile="VariableSource"); +// Plot commands +createPlot(id=3, position={11, 52, 624, 352}, y={"mHot_flow_set.y"}, range={0.0, 300.0, -1.0, 2.0}, autoscale=false, grid=true, subPlot=101, colors={{28,108,200}}, timeUnit="s"); +createPlot(id=3, position={11, 52, 624, 352}, y={"souHot.T_in", "orc.cyc.TWorEva"}, range={0.0, 300.0, 70.0, 100.0}, autoscale=false, grid=true, subPlot=102, colors={{28,108,200}, {238,46,47}}, timeUnit="s", displayUnits={"degC", "degC"}); +createPlot(id=4, position={627, 10, 618, 464}, y={"orc.cyc.mWor_flow", "orc.cyc.mWor_flow_max", "orc.cyc.mWor_flow_min"}, range={0.0, 300.0, -0.1, 0.20000000000000004}, grid=true, subPlot=101, colors={{28,108,200}, {238,46,47}, {0,140,72}}, timeUnit="s", displayUnits={"kg/s", "kg/s", "kg/s"}); +createPlot(id=4, position={627, 10, 618, 464}, y={"orc.cyc.dTPinEva", "orc.cyc.dTPinEva_set"}, range={0.0, 300.0, -20.0, 40.0}, grid=true, subPlot=102, colors={{28,108,200}, {238,46,47}}, timeUnit="s", displayUnits={"K", "K"}); +createPlot(id=4, position={627, 10, 618, 464}, y={"orc.ena", "orc.on_actual"}, range={0.0, 300.0, -1.0, 2.0}, grid=true, subPlot=103, colors={{28,108,200}, {28,108,200}}, timeUnit="s"); + diff --git a/IBPSA/Resources/Scripts/Dymola/Fluid/FixedResistances/Examples/CheckValve.mos b/IBPSA/Resources/Scripts/Dymola/Fluid/FixedResistances/Examples/CheckValve.mos index 30e334f42f..20327d0c8d 100644 --- a/IBPSA/Resources/Scripts/Dymola/Fluid/FixedResistances/Examples/CheckValve.mos +++ b/IBPSA/Resources/Scripts/Dymola/Fluid/FixedResistances/Examples/CheckValve.mos @@ -1,4 +1,3 @@ simulateModel("IBPSA.Fluid.FixedResistances.Examples.CheckValve", method="Cvode", tolerance=1e-06, stopTime=1, resultFile="CheckValve"); createPlot(id=1, position={0, 0, 988, 599}, y={"checkValve.dp", "checkValve_m_flow.dp"}, range={0.0, 1.0, -20000.0, 40000.0}, grid=true, colors={{28,108,200}, {238,46,47}}); createPlot(id=1, position={0, 0, 988, 197}, y={"checkValve.m_flow", "checkValveDpFix.m_flow", "checkValve_m_flow.m_flow"}, range={0.0, 1.0, -2.0, 6.0}, grid=true, subPlot=2, colors={{28,108,200}, {238,46,47}, {0,140,72}}); -createPlot(id=1, position={0, 0, 988, 197}, y={"checkValve.k", "checkValveDpFix.k", "checkValve_m_flow.k"}, range={0.0, 1.0, -0.02, 0.06}, grid=true, subPlot=3, colors={{28,108,200}, {238,46,47}, {0,140,72}});