Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Issue1880 mover efficiency fix and validation rework #1881

Merged
merged 25 commits into from
Jun 19, 2024
Merged
Show file tree
Hide file tree
Changes from 2 commits
Commits
Show all changes
25 commits
Select commit Hold shift + click to select a range
fd20809
merged from Buildings - correct FlowMachineInterface
hcasperfu May 14, 2024
005063e
merged from Buildings - sync changes in #1879
hcasperfu May 14, 2024
9ed3045
moved PowerExact, PowerEuler, PowerSimplified to obsolete
hcasperfu May 14, 2024
f4bb695
updated model change log
hcasperfu May 14, 2024
f45da3c
corrected efficiency assignment in obsolete models
hcasperfu May 14, 2024
3f202a5
draft example model
hcasperfu May 15, 2024
54db6f2
draft second validation model
hcasperfu May 15, 2024
0d2e557
third validation model
hcasperfu May 15, 2024
07915c5
improved inheritance structure
hcasperfu May 15, 2024
04970e8
corrected declaration from Buildings
hcasperfu May 15, 2024
97c1ce7
changed damper parameterisation
hcasperfu May 15, 2024
24b72d6
updated results files
hcasperfu May 15, 2024
d1330c3
documentation
hcasperfu May 15, 2024
6a9247b
refactored validation model
hcasperfu May 15, 2024
2f8419e
documentation
hcasperfu May 15, 2024
eaeb452
updated usersguide
hcasperfu May 15, 2024
cc2455f
merged master
hcasperfu May 15, 2024
5b93889
rewrote documentation to remove reference to obsolete models
hcasperfu May 15, 2024
c7fbd0c
revision log FlowMachineInterface
hcasperfu May 15, 2024
86f73be
gave start attribute to etaHyd and etaMot
hcasperfu May 15, 2024
0087505
added obsolete messages
hcasperfu May 16, 2024
125ac08
moved images
hcasperfu May 16, 2024
a70a9f5
merged from Buildings
hcasperfu Jun 4, 2024
c3b5fe9
corrected conf.yml entries
hcasperfu Jun 6, 2024
670a1db
Merge branch 'master' into issue1880_moverEfficiencyFixAndValidationR…
mwetter Jun 19, 2024
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
8 changes: 8 additions & 0 deletions IBPSA/Fluid/FMI/ExportContainers/Examples/FMUs/Fan.mo
Original file line number Diff line number Diff line change
Expand Up @@ -3,6 +3,7 @@ block Fan "Declaration of an FMU that exports a fan"
extends IBPSA.Fluid.FMI.ExportContainers.ReplaceableTwoPort(
redeclare replaceable package Medium = IBPSA.Media.Air,
redeclare final Movers.FlowControlled_dp com(
nominalValuesDefineDefaultPressureCurve=true,
final m_flow_nominal=m_flow_nominal,
final use_inputFilter=
false,
Expand Down Expand Up @@ -44,6 +45,13 @@ IBPSA.Fluid.Movers.FlowControlled_m_flow</a>.
</html>", revisions="<html>
<ul>
<li>
April 9, 2024, by Hongxiang Fu:<br/>
Specified <code>nominalValuesDefineDefaultPressureCurve=true</code>
in the mover component to suppress a warning.
This is for
<a href=\"https://github.com/lbl-srg/modelica-buildings/issues/3819\">#3819</a>.
</li>
<li>
January 22, 2016, by Michael Wetter:<br/>
Corrected type declaration of pressure difference.
This is
Expand Down
9 changes: 9 additions & 0 deletions IBPSA/Fluid/FMI/ExportContainers/Examples/FMUs/HVACZones.mo
Original file line number Diff line number Diff line change
Expand Up @@ -64,6 +64,7 @@ block HVACZones
annotation (Placement(transformation(extent={{100,-100},{120,-80}})));
Movers.FlowControlled_m_flow fan(
redeclare package Medium = MediumA,
nominalValuesDefineDefaultPressureCurve=true,
m_flow_nominal=mA_flow_nominal,
energyDynamics=Modelica.Fluid.Types.Dynamics.SteadyState,
allowFlowReversal=allowFlowReversal) "Supply air fan"
Expand Down Expand Up @@ -162,6 +163,7 @@ block HVACZones
redeclare package Medium = MediumA,
energyDynamics=Modelica.Fluid.Types.Dynamics.SteadyState,
allowFlowReversal=allowFlowReversal,
nominalValuesDefineDefaultPressureCurve=true,
m_flow_nominal=mA_flow_nominal/10,
inputType=IBPSA.Fluid.Types.InputType.Constant)
"Supply air fan that extracts a constant amount of outside air"
Expand Down Expand Up @@ -329,6 +331,13 @@ ports which are exposed at the FMU interface.
</html>", revisions="<html>
<ul>
<li>
April 9, 2024, by Hongxiang Fu:<br/>
Specified <code>nominalValuesDefineDefaultPressureCurve=true</code>
in the mover component to suppress a warning.
This is for
<a href=\"https://github.com/lbl-srg/modelica-buildings/issues/3819\">#3819</a>.
</li>
<li>
September 21, 2021 by David Blum:<br/>
Correct supply and return water parameterization.<br/>
Use explicit calculation of sensible and latent load to determine design load
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -73,6 +73,7 @@ model RectangularBorefield "Example model of a rectangular borefield"
IBPSA.Fluid.Movers.FlowControlled_m_flow pum(
redeclare package Medium = Medium,
addPowerToMedium=false,
nominalValuesDefineDefaultPressureCurve=true,
use_inputFilter=false,
energyDynamics=Modelica.Fluid.Types.Dynamics.SteadyState,
inputType=IBPSA.Fluid.Types.InputType.Constant,
Expand Down Expand Up @@ -120,6 +121,13 @@ where <code>dBorHol</code> is the distance between the boreholes,
</html>", revisions="<html>
<ul>
<li>
April 9, 2024, by Hongxiang Fu:<br/>
Specified <code>nominalValuesDefineDefaultPressureCurve=true</code>
in the mover component to suppress a warning.
This is for
<a href=\"https://github.com/lbl-srg/modelica-buildings/issues/3819\">#3819</a>.
</li>
<li>
September 10, 2018, by Michael Wetter:<br/>
First implementation.
</li>
Expand Down
14 changes: 4 additions & 10 deletions IBPSA/Fluid/Movers/BaseClasses/FlowMachineInterface.mo
Original file line number Diff line number Diff line change
Expand Up @@ -611,7 +611,7 @@ equation
P_internal=PEle;
eta_internal=eta;
WHyd = WFlo / IBPSA.Utilities.Math.Functions.smoothMax(
x1=etaMot, x2=1E-2, deltaX=1E-3);
x1=etaHyd, x2=1E-2, deltaX=1E-3);
hcasperfu marked this conversation as resolved.
Show resolved Hide resolved
end if;
if per.etaHydMet==
IBPSA.Fluid.Movers.BaseClasses.Types.HydraulicEfficiencyMethod.Power_VolumeFlowRate then
Expand Down Expand Up @@ -642,21 +642,15 @@ equation
else
eta_internal = cha.efficiency(per=per.efficiency, V_flow=V_flow, d=etaDer, r_N=r_N, delta=delta);
end if;
if per.powerOrEfficiencyIsHydraulic then
P_internal=WFlo/IBPSA.Utilities.Math.Functions.smoothMax(
x1=eta_internal, x2=1E-2, deltaX=1E-3);
else
P_internal=WHyd/IBPSA.Utilities.Math.Functions.smoothMax(
x1=eta_internal, x2=1E-2, deltaX=1E-3);
end if;
P_internal=WFlo/IBPSA.Utilities.Math.Functions.smoothMax(
x1=eta_internal, x2=1E-2, deltaX=1E-3);
hcasperfu marked this conversation as resolved.
Show resolved Hide resolved
else // Not provided
if per.powerOrEfficiencyIsHydraulic then
eta_internal=0.7;
P_internal=WFlo/eta_internal;
else
eta_internal=0.49;
P_internal=WHyd/eta_internal;
end if;
P_internal=WFlo/eta_internal;
end if;

// Motor efficiency etaMot
Expand Down
14 changes: 11 additions & 3 deletions IBPSA/Fluid/Movers/Data/Generic.mo
Original file line number Diff line number Diff line change
Expand Up @@ -29,12 +29,14 @@ record Generic "Generic data record for movers"

// Efficiency computation choices
parameter IBPSA.Fluid.Movers.BaseClasses.Types.HydraulicEfficiencyMethod etaHydMet=
IBPSA.Fluid.Movers.BaseClasses.Types.HydraulicEfficiencyMethod.EulerNumber
if havePressureCurve
then IBPSA.Fluid.Movers.BaseClasses.Types.HydraulicEfficiencyMethod.EulerNumber
else IBPSA.Fluid.Movers.BaseClasses.Types.HydraulicEfficiencyMethod.NotProvided
"Efficiency computation method for the hydraulic efficiency etaHyd"
annotation (Dialog(group="Power computation"));
parameter IBPSA.Fluid.Movers.BaseClasses.Types.MotorEfficiencyMethod etaMotMet=
if powerOrEfficiencyIsHydraulic
then IBPSA.Fluid.Movers.BaseClasses.Types.MotorEfficiencyMethod.GenericCurve
if powerOrEfficiencyIsHydraulic and havePressureCurve
then IBPSA.Fluid.Movers.BaseClasses.Types.MotorEfficiencyMethod.GenericCurve
else IBPSA.Fluid.Movers.BaseClasses.Types.MotorEfficiencyMethod.NotProvided
"Efficiency computation method for the motor efficiency etaMot"
annotation (Dialog(group="Power computation"));
Expand Down Expand Up @@ -159,6 +161,12 @@ record Generic "Generic data record for movers"
Documentation(revisions="<html>
<ul>
<li>
April 8, 2024, by Hongxiang Fu:<br/>
Default efficiency methods now depend on whether a pressure curve is available.
This is for
<a href=\"https://github.com/lbl-srg/modelica-buildings/issues/3819\">#3819</a>.
</li>
<li>
March 29, 2023, by Hongxiang Fu:<br/>
Deleted angular speed parameters with the unit rpm.
This is for
Expand Down
8 changes: 8 additions & 0 deletions IBPSA/Fluid/Movers/Examples/MoverParameter.mo
Original file line number Diff line number Diff line change
Expand Up @@ -9,6 +9,7 @@ model MoverParameter

IBPSA.Fluid.Movers.FlowControlled_m_flow pump_m_flow(
redeclare package Medium = Medium,
nominalValuesDefineDefaultPressureCurve=true,
m_flow_nominal=m_flow_nominal,
use_inputFilter=false,
massFlowRates={0,0.5,1}*m_flow_nominal,
Expand Down Expand Up @@ -88,6 +89,13 @@ set point for a mover model.
</html>", revisions="<html>
<ul>
<li>
April 8, 2024, by Hongxiang Fu:<br/>
Specified <code>nominalValuesDefineDefaultPressureCurve=true</code>
in the mover component to suppress a warning.
This is for
<a href=\"https://github.com/lbl-srg/modelica-buildings/issues/3819\">#3819</a>.
</li>
<li>
March 21, 2023, by Hongxiang Fu:<br/>
Deleted the mover with <code>Nrpm</code> signal.
This is for
Expand Down
9 changes: 9 additions & 0 deletions IBPSA/Fluid/Movers/Validation/FlowControlled_dp.mo
Original file line number Diff line number Diff line change
Expand Up @@ -4,11 +4,13 @@ model FlowControlled_dp "Fan with zero mass flow rate and head as input"
extends IBPSA.Fluid.Movers.Validation.BaseClasses.FlowMachine_ZeroFlow(
gain(k=dp_nominal),
redeclare IBPSA.Fluid.Movers.FlowControlled_dp floMacSta(
nominalValuesDefineDefaultPressureCurve=true,
redeclare package Medium = Medium,
m_flow_nominal=m_flow_nominal,
use_inputFilter=false,
energyDynamics=Modelica.Fluid.Types.Dynamics.SteadyState),
redeclare IBPSA.Fluid.Movers.FlowControlled_dp floMacDyn(
nominalValuesDefineDefaultPressureCurve=true,
redeclare package Medium = Medium,
m_flow_nominal=m_flow_nominal,
use_inputFilter=false,
Expand Down Expand Up @@ -38,6 +40,13 @@ This ensures that the actual speed is equal to the input signal.
</html>", revisions="<html>
<ul>
<li>
April 8, 2024, by Hongxiang Fu:<br/>
Specified <code>nominalValuesDefineDefaultPressureCurve=true</code>
in the mover component to suppress a warning.
This is for
<a href=\"https://github.com/lbl-srg/modelica-buildings/issues/3819\">#3819</a>.
</li>
<li>
November 5, 2015, by Michael Wetter:<br/>
Changed parameters of fan since the power is no longer a parameter.
This is for
Expand Down
9 changes: 9 additions & 0 deletions IBPSA/Fluid/Movers/Validation/FlowControlled_dpSystem.mo
Original file line number Diff line number Diff line change
Expand Up @@ -23,13 +23,15 @@ model FlowControlled_dpSystem
redeclare package Medium = Medium,
energyDynamics=Modelica.Fluid.Types.Dynamics.SteadyState,
allowFlowReversal=false,
nominalValuesDefineDefaultPressureCurve=true,
m_flow_nominal=1,
use_inputFilter=false) "Regular dp controlled fan"
annotation (Placement(transformation(extent={{-80,50},{-60,70}})));
IBPSA.Fluid.Movers.FlowControlled_dp floConDpSystem(
redeclare package Medium = Medium,
energyDynamics=Modelica.Fluid.Types.Dynamics.SteadyState,
allowFlowReversal=false,
nominalValuesDefineDefaultPressureCurve=true,
m_flow_nominal=1,
use_inputFilter=false,
prescribeSystemPressure=true)
Expand Down Expand Up @@ -228,6 +230,13 @@ The mass flow rates and actual pressure heads of the two configurations are comp
</html>", revisions="<html>
<ul>
<li>
April 9, 2024, by Hongxiang Fu:<br/>
Specified <code>nominalValuesDefineDefaultPressureCurve=true</code>
in the mover component to suppress a warning.
This is for
<a href=\"https://github.com/lbl-srg/modelica-buildings/issues/3819\">#3819</a>.
</li>
<li>
May 4 2017, by Filip Jorissen:<br/>
First implementation.
This is for
Expand Down
9 changes: 9 additions & 0 deletions IBPSA/Fluid/Movers/Validation/FlowControlled_m_flow.mo
Original file line number Diff line number Diff line change
Expand Up @@ -5,11 +5,13 @@ model FlowControlled_m_flow
extends IBPSA.Fluid.Movers.Validation.BaseClasses.FlowMachine_ZeroFlow(
gain(k=m_flow_nominal),
redeclare IBPSA.Fluid.Movers.FlowControlled_m_flow floMacSta(
nominalValuesDefineDefaultPressureCurve=true,
redeclare package Medium = Medium,
m_flow_nominal=m_flow_nominal,
use_inputFilter=false,
energyDynamics=Modelica.Fluid.Types.Dynamics.SteadyState),
redeclare IBPSA.Fluid.Movers.FlowControlled_m_flow floMacDyn(
nominalValuesDefineDefaultPressureCurve=true,
redeclare package Medium = Medium,
m_flow_nominal=m_flow_nominal,
use_inputFilter=false,
Expand Down Expand Up @@ -39,6 +41,13 @@ This ensures that the actual speed is equal to the input signal.
</html>", revisions="<html>
<ul>
<li>
April 8, 2024, by Hongxiang Fu:<br/>
Specified <code>nominalValuesDefineDefaultPressureCurve=true</code>
in the mover component to suppress a warning.
This is for
<a href=\"https://github.com/lbl-srg/modelica-buildings/issues/3819\">#3819</a>.
</li>
<li>
February 14, 2012, by Michael Wetter:<br/>
Added filter for start-up and shut-down transient.
</li>
Expand Down
8 changes: 8 additions & 0 deletions IBPSA/Fluid/Movers/Validation/PumpCurveDerivatives.mo
Original file line number Diff line number Diff line change
Expand Up @@ -41,6 +41,7 @@ model PumpCurveDerivatives

IBPSA.Fluid.Movers.FlowControlled_m_flow forcedPump1(
redeclare package Medium = Medium,
nominalValuesDefineDefaultPressureCurve=true,
m_flow_nominal=3,
energyDynamics=Modelica.Fluid.Types.Dynamics.SteadyState,
use_inputFilter=false) "Pump for forcing a certain mass flow rate"
Expand Down Expand Up @@ -154,6 +155,13 @@ monotoneously increasing or decreasing relations between <code>dp</code>,
revisions="<html>
<ul>
<li>
April 8, 2024, by Hongxiang Fu:<br/>
Specified <code>nominalValuesDefineDefaultPressureCurve=true</code>
in the mover component to suppress a warning.
This is for
<a href=\"https://github.com/lbl-srg/modelica-buildings/issues/3819\">#3819</a>.
</li>
<li>
March 21, 2023, by Hongxiang Fu:<br/>
Replaced the pump with <code>Nrpm</code> signal with one with <code>y</code>
signal.
Expand Down
37 changes: 27 additions & 10 deletions IBPSA/Fluid/Movers/Validation/Pump_y_stratos.mo
Original file line number Diff line number Diff line change
Expand Up @@ -54,28 +54,38 @@ model Pump_y_stratos "Model validation using a Wilo Stratos 80/1-12 pump"
per=per) "Wilo Stratos pump"
annotation (Placement(transformation(extent={{-60,-130},{-40,-110}})));

IBPSA.Fluid.Movers.FlowControlled_m_flow forcedPump1(redeclare package
Medium = Medium, m_flow_nominal=3,
IBPSA.Fluid.Movers.FlowControlled_m_flow forcedPump1(
redeclare package Medium = Medium,
nominalValuesDefineDefaultPressureCurve=true,
m_flow_nominal=3,
energyDynamics=Modelica.Fluid.Types.Dynamics.SteadyState)
"Pump for forcing a certain mass flow rate"
annotation (Placement(transformation(extent={{38,60},{58,80}})));
IBPSA.Fluid.Movers.FlowControlled_m_flow forcedPump2(redeclare package
Medium = Medium, m_flow_nominal=3,
IBPSA.Fluid.Movers.FlowControlled_m_flow forcedPump2(
redeclare package Medium = Medium,
nominalValuesDefineDefaultPressureCurve=true,
m_flow_nominal=3,
energyDynamics=Modelica.Fluid.Types.Dynamics.SteadyState)
"Pump for forcing a certain mass flow rate"
annotation (Placement(transformation(extent={{38,10},{58,30}})));
IBPSA.Fluid.Movers.FlowControlled_m_flow forcedPump3(redeclare package
Medium = Medium, m_flow_nominal=3,
IBPSA.Fluid.Movers.FlowControlled_m_flow forcedPump3(
redeclare package Medium = Medium,
nominalValuesDefineDefaultPressureCurve=true,
m_flow_nominal=3,
energyDynamics=Modelica.Fluid.Types.Dynamics.SteadyState)
"Pump for forcing a certain mass flow rate"
annotation (Placement(transformation(extent={{38,-36},{58,-16}})));
IBPSA.Fluid.Movers.FlowControlled_m_flow forcedPump4(redeclare package
Medium = Medium, m_flow_nominal=3,
IBPSA.Fluid.Movers.FlowControlled_m_flow forcedPump4(
redeclare package Medium = Medium,
nominalValuesDefineDefaultPressureCurve=true,
m_flow_nominal=3,
energyDynamics=Modelica.Fluid.Types.Dynamics.SteadyState)
"Pump for forcing a certain mass flow rate"
annotation (Placement(transformation(extent={{38,-80},{58,-60}})));
IBPSA.Fluid.Movers.FlowControlled_m_flow forcedPump5(redeclare package
Medium = Medium, m_flow_nominal=3,
IBPSA.Fluid.Movers.FlowControlled_m_flow forcedPump5(
redeclare package Medium = Medium,
nominalValuesDefineDefaultPressureCurve=true,
m_flow_nominal=3,
energyDynamics=Modelica.Fluid.Types.Dynamics.SteadyState)
"Pump for forcing a certain mass flow rate"
annotation (Placement(transformation(extent={{38,-130},{58,-110}})));
Expand Down Expand Up @@ -262,6 +272,13 @@ Wilo Stratos 80/1-12 data sheet</a>.
revisions="<html>
<ul>
<li>
April 8, 2024, by Hongxiang Fu:<br/>
Specified <code>nominalValuesDefineDefaultPressureCurve=true</code>
in the mover component to suppress a warning.
This is for
<a href=\"https://github.com/lbl-srg/modelica-buildings/issues/3819\">#3819</a>.
</li>
<li>
March 21, 2023, by Hongxiang Fu:<br/>
Replaced the pumps with <code>Nrpm</code> signal with ones with <code>y</code>
signal.
Expand Down
Loading