diff --git a/Buildings/Airflow/Multizone/BaseClasses/PowerLawResistance.mo b/Buildings/Airflow/Multizone/BaseClasses/PowerLawResistance.mo index dbaaec6ec96..845764840f6 100644 --- a/Buildings/Airflow/Multizone/BaseClasses/PowerLawResistance.mo +++ b/Buildings/Airflow/Multizone/BaseClasses/PowerLawResistance.mo @@ -5,6 +5,9 @@ partial model PowerLawResistance "Flow resistance that uses the power law" final m_flow_nominal=rho_default*k*dp_turbulent); extends Buildings.Airflow.Multizone.BaseClasses.ErrorControl; + constant Boolean homotopyInitialization = true "= true, use homotopy method" + annotation(HideResult=true); + parameter Real m(min=0.5, max=1) "Flow exponent, m=0.5 for turbulent, m=1 for laminar"; parameter Boolean useDefaultProperties=true @@ -14,9 +17,6 @@ partial model PowerLawResistance "Flow resistance that uses the power law" "Pressure difference where laminar and turbulent flow relation coincide. Recommended = 0.1" annotation(Dialog(tab="Advanced")); - parameter Boolean homotopyInitialization = true "= true, use homotopy method" - annotation(Evaluate=true, Dialog(tab="Advanced")); - Modelica.SIunits.VolumeFlowRate V_flow "Volume flow rate through the component"; Modelica.SIunits.Velocity v(nominal=1) "Average velocity"; @@ -54,6 +54,10 @@ protected "Air mass exchanged (for purpose of error control only)"; initial equation mExc=0; + assert(homotopyInitialization, "In " + getInstanceName() + + ": The constant homotopyInitialization is set to false. This constant will be removed in future releases.", + level = AssertionLevel.warning); + equation if forceErrorControlOnFlow then der(mExc) = port_a.m_flow; @@ -128,6 +132,12 @@ The model is used as a base for the interzonal air flow models. revisions="
homotopyInitialization
to a constant.A
because
diff --git a/Buildings/Fluid/Actuators/BaseClasses/PartialThreeWayValve.mo b/Buildings/Fluid/Actuators/BaseClasses/PartialThreeWayValve.mo
index 0a7d467d49a..a823e69aaa4 100644
--- a/Buildings/Fluid/Actuators/BaseClasses/PartialThreeWayValve.mo
+++ b/Buildings/Fluid/Actuators/BaseClasses/PartialThreeWayValve.mo
@@ -35,6 +35,9 @@ partial model PartialThreeWayValve "Partial three way valve"
extends Buildings.Fluid.Actuators.BaseClasses.ValveParameters(
rhoStd=Medium.density_pTX(101325, 273.15+4, Medium.X_default));
+ constant Boolean homotopyInitialization = true "= true, use homotopy method"
+ annotation(HideResult=true);
+
parameter Modelica.SIunits.PressureDifference dpFixed_nominal[2](each displayUnit="Pa",
each min=0) = {0, 0}
"Nominal pressure drop of pipes and other equipment in flow legs at port_1 and port_3"
@@ -52,15 +55,17 @@ partial model PartialThreeWayValve "Partial three way valve"
"= true, use linear relation between m_flow and dp for any flow rate"
annotation(Dialog(tab="Advanced"));
- parameter Boolean homotopyInitialization = true "= true, use homotopy method"
- annotation(Evaluate=true, Dialog(tab="Advanced"));
-
protected
Modelica.Blocks.Math.Feedback inv "Inversion of control signal"
annotation (Placement(transformation(extent={{-74,40},{-62,52}})));
Modelica.Blocks.Sources.Constant uni(final k=1)
"Outputs one for bypass valve"
annotation (Placement(transformation(extent={{-92,40},{-80,52}})));
+initial equation
+ assert(homotopyInitialization, "In " + getInstanceName() +
+ ": The constant homotopyInitialization is set to false. This constant will be removed in future releases.",
+ level = AssertionLevel.warning);
+
equation
connect(uni.y, inv.u1)
annotation (Line(points={{-79.4,46},{-72.8,46}},
@@ -145,6 +150,12 @@ for details regarding the valve implementation.
", revisions="
homotopyInitialization
to a constant.homotopyInitialization
to a constant.homotopyInitialization
to a constant.evaluate_etaPL
and how it is used.
This correction only affects protected variables and does not affect the results.homotopyInitialization
to a constant.
The
spatialDistribution
operator is used for the temperature wave propagation
-through the length of the pipe. This operator is contained in
+through the length of the pipe. This operator is contained in
BaseClasses.PlugFlow.
@@ -238,8 +250,8 @@ This model does not include thermal inertia of the pipe wall.
The wall inertia is implemented in
PlugFlowPipe, which uses this model.
-The removal of the thermal inertia with a mixing volume can be desirable in the
-case where mixing volumes are added manually at the pipe junctions.
+The removal of the thermal inertia with a mixing volume can be desirable in the
+case where mixing volumes are added manually at the pipe junctions.
The model @@ -254,10 +266,10 @@ Full details on the model implementation and experimental validation can be foun in:
-van der Heijde, B., Fuchs, M., Ribas Tugores, C., Schweiger, G., Sartor, K., Basciotti, D., Müller,
+van der Heijde, B., Fuchs, M., Ribas Tugores, C., Schweiger, G., Sartor, K., Basciotti, D., Müller,
D., Nytsch-Geusen, C., Wetter, M. and Helsen, L. (2017).
Dynamic equation-based thermo-hydraulic pipe model for district heating and cooling systems.
-Energy Conversion and Management, vol. 151, p. 158-169.
+Energy Conversion and Management, vol. 151, p. 158-169.
doi: 10.1016/j.enconman.2017.08.072.
homotopyInitialization
to a constant.homotopyInitialization
to a constant.R
+Revised calculation of thermal resistance R
by using correct radiuses.
See #1310.
homotopyInitialization
to a constant.senTem.y
final.
homotopyInitialization
to a constant.homotopyInitialization
to a constant.homotopyInitialization
to a constant.homotopyInitialization
to a constant.energyDynamics=DynamicFreeInitial
.
diff --git a/Buildings/Fluid/Interfaces/EightPortHeatMassExchanger.mo b/Buildings/Fluid/Interfaces/EightPortHeatMassExchanger.mo
index ad55b740be6..e183c976bc8 100644
--- a/Buildings/Fluid/Interfaces/EightPortHeatMassExchanger.mo
+++ b/Buildings/Fluid/Interfaces/EightPortHeatMassExchanger.mo
@@ -14,6 +14,9 @@ model EightPortHeatMassExchanger
extends Buildings.Fluid.Interfaces.EightPortFlowResistanceParameters(
final computeFlowResistance1=true, final computeFlowResistance2=true,final computeFlowResistance3=true, final computeFlowResistance4=true);
+ constant Boolean homotopyInitialization = true "= true, use homotopy method"
+ annotation(HideResult=true);
+
parameter Modelica.SIunits.Time tau1 = 30 "Time constant at nominal flow"
annotation (Dialog(tab = "Dynamics", group="Nominal condition"));
parameter Modelica.SIunits.Time tau2 = 30 "Time constant at nominal flow"
@@ -23,10 +26,6 @@ model EightPortHeatMassExchanger
parameter Modelica.SIunits.Time tau4 = 30 "Time constant at nominal flow"
annotation (Dialog(tab = "Dynamics", group="Nominal condition"));
- // Advanced
- parameter Boolean homotopyInitialization = true "= true, use homotopy method"
- annotation(Evaluate=true, Dialog(tab="Advanced"));
-
// Assumptions
parameter Modelica.Fluid.Types.Dynamics energyDynamics=Modelica.Fluid.Types.Dynamics.DynamicFreeInitial
"Formulation of energy balance"
@@ -324,6 +323,9 @@ initial algorithm
You need to set massDynamics == Modelica.Fluid.Types.Dynamics.SteadyState to model steady-state.
Received tau4 = " + String(tau4) + "\n");
+ assert(homotopyInitialization, "In " + getInstanceName() +
+ ": The constant homotopyInitialization is set to false. This constant will be removed in future releases.",
+ level = AssertionLevel.warning);
equation
connect(vol1.ports[2], port_b1) annotation (Line(
@@ -382,8 +384,15 @@ equation
The variable names follow the conventions used in Modelica.Fluid.Examples.HeatExchanger.BaseClasses.BasicHX.
", revisions="homotopyInitialization
to a constant.homotopyInitialization
to a constant.vol1
replaceable. This is required for
Buildings, issue 1013.
diff --git a/Buildings/Fluid/Interfaces/StaticFourPortHeatMassExchanger.mo b/Buildings/Fluid/Interfaces/StaticFourPortHeatMassExchanger.mo
index 12f21e76a52..ef2569eaa88 100644
--- a/Buildings/Fluid/Interfaces/StaticFourPortHeatMassExchanger.mo
+++ b/Buildings/Fluid/Interfaces/StaticFourPortHeatMassExchanger.mo
@@ -11,8 +11,8 @@ model StaticFourPortHeatMassExchanger
constant Boolean prescribedHeatFlowRate2 = false
"Set to true if the heat flow rate into fluid 2 is not a function of the component temperature";
- parameter Boolean homotopyInitialization = true "= true, use homotopy method"
- annotation(Evaluate=true, Dialog(tab="Advanced"));
+ constant Boolean homotopyInitialization = true "= true, use homotopy method"
+ annotation(HideResult=true);
// Q1_flow is sensible plus latent heat flow rate
input Modelica.SIunits.HeatFlowRate Q1_flow
@@ -60,6 +60,12 @@ protected
final Q_flow = Q2_flow,
final mWat_flow = mWat2_flow)
"Model for heat, mass, species, trace substance and pressure balance of stream 2";
+
+initial equation
+ assert(homotopyInitialization, "In " + getInstanceName() +
+ ": The constant homotopyInitialization is set to false. This constant will be removed in future releases.",
+ level = AssertionLevel.warning);
+
equation
connect(bal1.port_a, port_a1);
connect(bal1.port_b, port_b1);
@@ -115,6 +121,12 @@ or instantiates this model sets mWatN_flow = 0
.
", revisions="
homotopyInitialization
to a constant.Q1_flow
and Q2_flow
include latent heat flow rate.homotopyInitialization
to a constant.Q_flow
includes latent heat flow rate.homotopyInitialization
to a constant.use_dh
is no longer a parameter in the pressure drop model.homotopyInitialization
to a constant.min
attribute as otherwise numerical noise can cause
the assertion on the limit to fail.homotopyInitialization
to a constant.min
attribute as otherwise numerical noise can cause
the assertion on the limit to fail.homotopyInitialization
to a constant.