Buildings.Fluid.Movers.BaseClasses.Validation

Collection of validation models

Information

This package contains validation models for the classes in Buildings.Fluid.Movers.BaseClasses.

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.

Extends from Modelica.Icons.ExamplesPackage (Icon for packages containing runnable examples).

Package Content

Name Description
Buildings.Fluid.Movers.BaseClasses.Validation.EulerComparison EulerComparison Validates the Euler number method at nominal mover speed
Buildings.Fluid.Movers.BaseClasses.Validation.EulerCurve EulerCurve Displays the curve of the Euler number's correlation
Buildings.Fluid.Movers.BaseClasses.Validation.EulerReducedSpeed EulerReducedSpeed Validates the Euler number method at reduced mover speed
Buildings.Fluid.Movers.BaseClasses.Validation.FlowMachineInterface FlowMachineInterface Simple model to validate FlowMachineInterface
Buildings.Fluid.Movers.BaseClasses.Validation.HydraulicEfficiencyMethods HydraulicEfficiencyMethods Validation model for different hydraulic efficiency options
Buildings.Fluid.Movers.BaseClasses.Validation.MotorEfficiencyMethods MotorEfficiencyMethods Validation model for different motor efficiency options
Buildings.Fluid.Movers.BaseClasses.Validation.NegativePressureOrFlow NegativePressureOrFlow A validation model that tests the mover behaviour when the pressure rise or flow is negative
Buildings.Fluid.Movers.BaseClasses.Validation.PowerInterface PowerInterface Simple model to validate PowerInterface
Buildings.Fluid.Movers.BaseClasses.Validation.TotalEfficiencyMethods TotalEfficiencyMethods Validation model for total efficiency specified via hydraulic efficiency options

Buildings.Fluid.Movers.BaseClasses.Validation.EulerComparison Buildings.Fluid.Movers.BaseClasses.Validation.EulerComparison

Validates the Euler number method at nominal mover speed

Buildings.Fluid.Movers.BaseClasses.Validation.EulerComparison

Information

This model validates the power and efficiency computation using the Euler number and its correlation as implemented in Buildings.Fluid.Movers.BaseClasses.Euler. Its results of calculated efficiency and power are compared with those obtained using power curves.

Note that full performance curves are needed in this validation model because otherwise Buildings.Fluid.Movers.BaseClasses.FlowMachineInterface would not know the pressure of the mover. See Buildings.Fluid.Movers.Validation.PowerEuler for a more typical use case where only the peak point itself is supplied.

Extends from Modelica.Icons.Example (Icon for runnable examples).

Parameters

TypeNameDefaultDescription
IntegernOrisize(per1.power.V_flow, 1)Number of data points for pressure curve
DensityrhoCon1.2Constant density [kg/m3]
BIDW13per1 Mover performance curves with flow rate, pressure rise, and power
Genericper2per2(final powerOrEfficiency...Peak condition

Modelica definition

model EulerComparison "Validates the Euler number method at nominal mover speed" extends Modelica.Icons.Example; parameter Integer nOri(min=1)=size(per1.power.V_flow,1) "Number of data points for pressure curve"; parameter Modelica.Units.SI.Density rhoCon=1.2 "Constant density"; parameter Buildings.Fluid.Movers.Data.Fans.Greenheck.BIDW13 per1 "Mover performance curves with flow rate, pressure rise, and power"; Buildings.Fluid.Movers.BaseClasses.FlowMachineInterface eff1( per=per1, rho_default=rhoCon, nOri=nOri, computePowerUsingSimilarityLaws=false) "Flow machine interface using power characteristic"; parameter Buildings.Fluid.Movers.Data.Generic per2( final powerOrEfficiencyIsHydraulic=per1.powerOrEfficiencyIsHydraulic, final etaHydMet= Buildings.Fluid.Movers.BaseClasses.Types.HydraulicEfficiencyMethod.EulerNumber, final etaMotMet= Buildings.Fluid.Movers.BaseClasses.Types.MotorEfficiencyMethod.NotProvided, pressure=per1.pressure, power=per1.power) "Peak condition"; Buildings.Fluid.Movers.BaseClasses.FlowMachineInterface eff2( per=per2, rho_default=rhoCon, nOri=nOri, computePowerUsingSimilarityLaws=false) "Flow machine interface using power Euler correlation"; Modelica.Blocks.Sources.Constant y(k=1) "Control signal"; Modelica.Blocks.Sources.Constant rho(k=rhoCon) "Density"; Modelica.Units.SI.VolumeFlowRate V_flow = m_flow.y/rhoCon "Volumetric flow rate"; Modelica.Units.SI.Power P1(displayUnit="W")= if per1.powerOrEfficiencyIsHydraulic then eff1.WHyd else eff1.PEle "Power from interpolation (total or hydraulic depending on data)"; Modelica.Units.SI.Power P2(displayUnit="W")= if per1.powerOrEfficiencyIsHydraulic then eff2.WHyd else eff2.PEle "Power from Euler number (total or hydraulic depending on data)"; Modelica.Units.SI.Efficiency eta1= if per1.powerOrEfficiencyIsHydraulic then eff1.etaHyd else eff1.eta "Efficiency from interpolation (total or hydraulic depending on data)"; Modelica.Units.SI.Efficiency eta2= if per1.powerOrEfficiencyIsHydraulic then eff2.etaHyd else eff2.eta "Efficiency from Euler number (total or hydraulic depending on data)"; Modelica.Blocks.Sources.Ramp m_flow( height=eff1.V_flow_max*rhoCon, duration=1) "Mass flow rate"; equation connect(eff1.rho, rho.y); connect(y.y, eff1.y_in); connect(m_flow.y, eff1.m_flow); connect(y.y, eff2.y_in); connect(rho.y, eff2.rho); connect(m_flow.y, eff2.m_flow); end EulerComparison;

Buildings.Fluid.Movers.BaseClasses.Validation.EulerCurve Buildings.Fluid.Movers.BaseClasses.Validation.EulerCurve

Displays the curve of the Euler number's correlation

Information

This validation model plots and compares out the original correlation function of Euler number and its polynomial approximation.

See details of this function in the documentation of Buildings.Fluid.Movers.BaseClasses.Euler.correlation.

Extends from Modelica.Icons.Example (Icon for runnable examples).

Modelica definition

model EulerCurve "Displays the curve of the Euler number's correlation" extends Modelica.Icons.Example; Real x "log10(Eu/Eu_peak)"; Real etaApp "eta/eta_peak from polynomial approximation"; Real etaOri "eta/eta_peak from original correlation"; function correlation input Real x "log10(Eu/Eu_peak)"; output Real y "eta/eta_peak"; protected constant Real a=-2.732094, b=2.273014, c=0.196344, d=5.267518; Real Z1, Z2, Z3; algorithm Z1:=(x-a)/b; Z2:=((exp(c*x)*d*x)-a)/b; Z3:=-a/b; y:=(exp(-0.5*Z1^2)*(1+sign(Z2)*Modelica.Math.Special.erf(u=abs(Z2)/sqrt(2)))) /(exp(-0.5*Z3^2)*(1+Modelica.Math.Special.erf(u=Z3/sqrt(2)))); end correlation; initial equation x = -4; equation der(x)=1; etaApp = Buildings.Fluid.Movers.BaseClasses.Euler.correlation(x); etaOri = correlation(x); end EulerCurve;

Buildings.Fluid.Movers.BaseClasses.Validation.EulerReducedSpeed Buildings.Fluid.Movers.BaseClasses.Validation.EulerReducedSpeed

Validates the Euler number method at reduced mover speed

Buildings.Fluid.Movers.BaseClasses.Validation.EulerReducedSpeed

Information

Similar to Buildings.Fluid.Movers.BaseClasses.Validation.EulerComparison, this model compares the power computed from the Euler number method with measured values. The power data at speeds N=4100, 3400, and 2500 RPM from the power map of Buildings.Fluid.Movers.Data.Fans.Greenheck.BIDW13 (shown below) was used. Note that the pressure curves in the figure do not seem to be independently measured but rather simply scaled from the nominal curve. However, because the Euler number method also does not account for the efficiency degradation along any curve Δp=kV̇2, using the Euler number method has equivalent accuracy to using such power maps.

image

Extends from Modelica.Icons.Example (Icon for runnable examples).

Parameters

TypeNameDefaultDescription
IntegernOrisize(per1.power.V_flow, 1)Number of data points for pressure curve
DensityrhoCon1.2Constant density [kg/m3]
BIDW13per1per1(final etaHydMet=Buildin...Mover performance curves with flow rate, pressure rise, and power
Genericper2per2(power(V_flow={0.9399399...Mover performance curves at reduced speed N=3400
Genericper3per3(power(V_flow={0.9399399...Mover performance curves at reduced speed N=2500

Modelica definition

model EulerReducedSpeed "Validates the Euler number method at reduced mover speed" extends Modelica.Icons.Example; parameter Integer nOri(min=1)=size(per1.power.V_flow,1) "Number of data points for pressure curve"; parameter Modelica.Units.SI.Density rhoCon=1.2 "Constant density"; parameter Buildings.Fluid.Movers.Data.Fans.Greenheck.BIDW13 per1( final etaHydMet= Buildings.Fluid.Movers.BaseClasses.Types.HydraulicEfficiencyMethod.EulerNumber, final etaMotMet= Buildings.Fluid.Movers.BaseClasses.Types.MotorEfficiencyMethod.NotProvided) "Mover performance curves with flow rate, pressure rise, and power"; parameter Buildings.Fluid.Movers.Data.Generic per2( power(V_flow={0.939939939939939,1.88588588588588,2.83183183183181, 3.77177177177175,4.46546546546544}, P={4332.517,5801.546,6651.644, 6800.784,6502.504}), pressure(V_flow={0.939939939939939,1.88588588588588,2.83183183183181, 3.77177177177175,4.46546546546544}, dp={2081.78137651821, 2008.90688259109,1474.4939271255,704.453441295546,0})) "Mover performance curves at reduced speed N=3400"; parameter Buildings.Fluid.Movers.Data.Generic per3( power(V_flow={0.939939939939939,1.88588588588588,2.83183183183181, 3.28228228228228}, P={1998.476,2535.38,2714.348,2550.294}), pressure(V_flow={0.939939939939939,1.88588588588588,2.83183183183181, 3.28228228228228}, dp={1127.12550607287,903.643724696356, 340.080971659919,0})) "Mover performance curves at reduced speed N=2500"; Modelica.Units.SI.Power pow1= Buildings.Utilities.Math.Functions.smoothInterpolation( x=m1_flow.y/rhoCon, xSup=per1.power.V_flow, ySup=per1.power.P, ensureMonotonicity=false) "Measured power"; Modelica.Units.SI.Power pow2= Buildings.Utilities.Math.Functions.smoothInterpolation( x=m2_flow.y/rhoCon, xSup=per2.power.V_flow, ySup=per2.power.P, ensureMonotonicity=false) "Measured power"; Modelica.Units.SI.Power pow3= Buildings.Utilities.Math.Functions.smoothInterpolation( x=m3_flow.y/rhoCon, xSup=per3.power.V_flow, ySup=per3.power.P, ensureMonotonicity=false) "Measured power"; Buildings.Fluid.Movers.BaseClasses.FlowMachineInterface eff1( per=per1, rho_default=rhoCon, nOri=nOri, computePowerUsingSimilarityLaws=false) "Flow machine interface using power characteristic"; Buildings.Fluid.Movers.BaseClasses.FlowMachineInterface eff2( per=per1, rho_default=rhoCon, nOri=nOri, computePowerUsingSimilarityLaws=false) "Flow machine interface using power Euler correlation"; Buildings.Fluid.Movers.BaseClasses.FlowMachineInterface eff3( per=per1, rho_default=rhoCon, nOri=nOri, computePowerUsingSimilarityLaws=false) "Flow machine interface using power Euler correlation"; Modelica.Blocks.Sources.Constant y1(k=1) "Control signal"; Modelica.Blocks.Sources.Constant rho(k=rhoCon) "Density"; Modelica.Blocks.Sources.Constant y2(k=3400/4100) "Reduced speed y = 3400/4100 = 0.829"; Modelica.Blocks.Sources.Constant y3(k=2500/4100) "Reduced speed y = 2500/4100 = 0.610"; Modelica.Blocks.Sources.Ramp m1_flow( height=0.98*max(per1.pressure.V_flow)*rhoCon, duration=1, offset=0.01*max(per1.pressure.V_flow)*rhoCon) "Mass flow rate"; Modelica.Blocks.Sources.Ramp m2_flow( height=0.98*max(per2.pressure.V_flow)*rhoCon, duration=1, offset=0.01*max(per2.pressure.V_flow)*rhoCon) "Mass flow rate"; Modelica.Blocks.Sources.Ramp m3_flow( height=0.98*max(per3.pressure.V_flow)*rhoCon, duration=1, offset=0.01*max(per3.pressure.V_flow)*rhoCon) "Mass flow rate"; equation connect(eff1.rho, rho.y); connect(y1.y, eff1.y_in); connect(m1_flow.y, eff1.m_flow); connect(rho.y, eff2.rho); connect(y2.y, eff2.y_in); connect(m2_flow.y, eff2.m_flow); connect(y3.y, eff3.y_in); connect(m3_flow.y, eff3.m_flow); connect(rho.y, eff3.rho); end EulerReducedSpeed;

Buildings.Fluid.Movers.BaseClasses.Validation.FlowMachineInterface Buildings.Fluid.Movers.BaseClasses.Validation.FlowMachineInterface

Simple model to validate FlowMachineInterface

Buildings.Fluid.Movers.BaseClasses.Validation.FlowMachineInterface

Information

Simple validation model for the flow machine interface model.

Extends from Modelica.Icons.Example (Icon for runnable examples).

Modelica definition

model FlowMachineInterface "Simple model to validate FlowMachineInterface" extends Modelica.Icons.Example; Buildings.Fluid.Movers.BaseClasses.FlowMachineInterface eff( per(pressure(V_flow={0,1}, dp={1000,0})), rho_default=1.2, nOri=2, preVar=Buildings.Fluid.Movers.BaseClasses.Types.PrescribedVariable.Speed, computePowerUsingSimilarityLaws=true) "Flow machine interface model"; Modelica.Blocks.Sources.Constant y(k=1) "Control signal"; Modelica.Blocks.Sources.Constant rho(k=1.2) "Density"; Modelica.Blocks.Sources.Ramp m_flow(height=1.2, duration=1) "Mass flow rate"; equation connect(eff.rho, rho.y); connect(m_flow.y, eff.m_flow); connect(y.y, eff.y_in); end FlowMachineInterface;

Buildings.Fluid.Movers.BaseClasses.Validation.HydraulicEfficiencyMethods Buildings.Fluid.Movers.BaseClasses.Validation.HydraulicEfficiencyMethods

Validation model for different hydraulic efficiency options

Buildings.Fluid.Movers.BaseClasses.Validation.HydraulicEfficiencyMethods

Information

This is a simple validation model for Buildings.Fluid.Movers.BaseClasses.FlowMachineInterface where its hydraulic efficiency ηhyd is specified with different methods defined in Buildings.Fluid.Movers.BaseClasses.Types.HydraulicEfficiencyMethod.

Extends from Modelica.Icons.Example (Icon for runnable examples).

Parameters

TypeNameDefaultDescription
DensityrhoFlu1.2Fluid density [kg/m3]

Modelica definition

model HydraulicEfficiencyMethods "Validation model for different hydraulic efficiency options" extends Modelica.Icons.Example; Buildings.Fluid.Movers.Data.Generic per( powerOrEfficiencyIsHydraulic=true, final pressure(V_flow={0,1}, dp={1000,0}), final etaMotMet=Buildings.Fluid.Movers.BaseClasses.Types.MotorEfficiencyMethod.NotProvided) "Performance record"; parameter Modelica.Units.SI.Density rhoFlu=1.2 "Fluid density"; Buildings.Fluid.Movers.BaseClasses.FlowMachineInterface eff1( per( powerOrEfficiencyIsHydraulic=per.powerOrEfficiencyIsHydraulic, pressure=per.pressure, etaMotMet=per.etaMotMet, etaHydMet=Buildings.Fluid.Movers.BaseClasses.Types.HydraulicEfficiencyMethod.NotProvided), rho_default=rhoFlu, nOri=2, preVar=Buildings.Fluid.Movers.BaseClasses.Types.PrescribedVariable.Speed, computePowerUsingSimilarityLaws=true) "FlowMachineInterface with per.etaHydMet=.NotProvided"; Buildings.Fluid.Movers.BaseClasses.FlowMachineInterface eff2( per( powerOrEfficiencyIsHydraulic=per.powerOrEfficiencyIsHydraulic, pressure=per.pressure, etaMotMet=per.etaMotMet, etaHydMet=Buildings.Fluid.Movers.BaseClasses.Types.HydraulicEfficiencyMethod.Efficiency_VolumeFlowRate, efficiency(V_flow={0,0.3,0.6,0.8,1}, eta={0,0.5,0.7,0.5,0})), rho_default=rhoFlu, nOri=2, preVar=Buildings.Fluid.Movers.BaseClasses.Types.PrescribedVariable.Speed, computePowerUsingSimilarityLaws=true) "FlowMachineInterface with per.etaHydMet=.Efficiency_VolumeFlowRate"; Buildings.Fluid.Movers.BaseClasses.FlowMachineInterface eff3( per( powerOrEfficiencyIsHydraulic=per.powerOrEfficiencyIsHydraulic, pressure=per.pressure, etaMotMet=per.etaMotMet, etaHydMet=Buildings.Fluid.Movers.BaseClasses.Types.HydraulicEfficiencyMethod.Power_VolumeFlowRate, power(V_flow={0,0.25,0.5,0.75,1}, P={480,540,510,550,710})), rho_default=rhoFlu, nOri=2, preVar=Buildings.Fluid.Movers.BaseClasses.Types.PrescribedVariable.Speed, computePowerUsingSimilarityLaws=true) "FlowMachineInterface with per.etaHydMet=.Power_VolumeFlowRate"; Buildings.Fluid.Movers.BaseClasses.FlowMachineInterface eff4( per( powerOrEfficiencyIsHydraulic=per.powerOrEfficiencyIsHydraulic, pressure=per.pressure, etaMotMet=per.etaMotMet, etaHydMet=Buildings.Fluid.Movers.BaseClasses.Types.HydraulicEfficiencyMethod.EulerNumber, peak( V_flow=0.5, dp=500, eta=0.7)), rho_default=rhoFlu, nOri=2, preVar=Buildings.Fluid.Movers.BaseClasses.Types.PrescribedVariable.Speed, computePowerUsingSimilarityLaws=true) "FlowMachineInterface with per.etaHydMet=.EulerNumber"; Modelica.Blocks.Sources.Constant y(k=1) "Relative speed"; Modelica.Blocks.Sources.Ramp m_flow(height=rho.k, duration=1) "Mass flow rate"; Modelica.Blocks.Sources.Constant rho(k=rhoFlu) "Density"; equation connect(eff3.rho, rho.y); connect(rho.y,eff4. rho); connect(m_flow.y,eff3. m_flow); connect(m_flow.y,eff4. m_flow); connect(m_flow.y, eff1.m_flow); connect(m_flow.y, eff2.m_flow); connect(rho.y, eff2.rho); connect(rho.y, eff1.rho); connect(y.y, eff1.y_in); connect(y.y, eff2.y_in); connect(y.y, eff3.y_in); connect(y.y, eff4.y_in); end HydraulicEfficiencyMethods;

Buildings.Fluid.Movers.BaseClasses.Validation.MotorEfficiencyMethods Buildings.Fluid.Movers.BaseClasses.Validation.MotorEfficiencyMethods

Validation model for different motor efficiency options

Buildings.Fluid.Movers.BaseClasses.Validation.MotorEfficiencyMethods

Information

This is a simple validation model for Buildings.Fluid.Movers.BaseClasses.FlowMachineInterface where its motor efficiency ηmot is specified with different methods defined in Buildings.Fluid.Movers.BaseClasses.Types.MotorEfficiencyMethod. The instance eff4 specifies ηmot as a function of motor PLR by finding a generic curve with the maximum motor efficiency and rated motor input power. The generic curve is generated by Buildings.Fluid.Movers.BaseClasses.Characteristics.motorEfficiencyCurve.

Extends from Modelica.Icons.Example (Icon for runnable examples).

Parameters

TypeNameDefaultDescription
DensityrhoFlu1.2Fluid density [kg/m3]

Modelica definition

model MotorEfficiencyMethods "Validation model for different motor efficiency options" extends Modelica.Icons.Example; Buildings.Fluid.Movers.Data.Generic per( final pressure(V_flow={0,1}, dp={1000,0}), final etaHydMet=Buildings.Fluid.Movers.BaseClasses.Types.HydraulicEfficiencyMethod.NotProvided) "Performance record"; parameter Modelica.Units.SI.Density rhoFlu=1.2 "Fluid density"; Buildings.Fluid.Movers.BaseClasses.FlowMachineInterface eff1( per( pressure=per.pressure, etaHydMet=per.etaHydMet, etaMotMet=Buildings.Fluid.Movers.BaseClasses.Types.MotorEfficiencyMethod.NotProvided), rho_default=rhoFlu, nOri=2, preVar=Buildings.Fluid.Movers.BaseClasses.Types.PrescribedVariable.Speed, computePowerUsingSimilarityLaws=true) "FlowMachineInterface with per.etaMotMet=.NotProvided"; Buildings.Fluid.Movers.BaseClasses.FlowMachineInterface eff2( per( pressure=per.pressure, etaHydMet=per.etaHydMet, etaMotMet=Buildings.Fluid.Movers.BaseClasses.Types.MotorEfficiencyMethod.Efficiency_VolumeFlowRate, motorEfficiency(V_flow={0,0.3,0.6,1}, eta={0,0.4,0.6,0.7})), rho_default=rhoFlu, nOri=2, preVar=Buildings.Fluid.Movers.BaseClasses.Types.PrescribedVariable.Speed, computePowerUsingSimilarityLaws=true) "FlowMachineInterface with per.etaMotMet=.Efficiency_VolumeFlowRate"; Buildings.Fluid.Movers.BaseClasses.FlowMachineInterface eff3( per( pressure=per.pressure, etaHydMet=per.etaHydMet, etaMotMet=Buildings.Fluid.Movers.BaseClasses.Types.MotorEfficiencyMethod.Efficiency_MotorPartLoadRatio, motorEfficiency_yMot(y={0,0.25,0.5,1}, eta={0,0.56,0.7,0.7}), WMot_nominal=500), rho_default=rhoFlu, nOri=2, preVar=Buildings.Fluid.Movers.BaseClasses.Types.PrescribedVariable.Speed, computePowerUsingSimilarityLaws=true) "FlowMachineInterface with per.etaMotMet=.Efficiency_MotorPartLoadRatio"; Buildings.Fluid.Movers.BaseClasses.FlowMachineInterface eff4( per( pressure=per.pressure, etaHydMet=per.etaHydMet, etaMotMet=Buildings.Fluid.Movers.BaseClasses.Types.MotorEfficiencyMethod.GenericCurve, etaMot_max=0.7, WMot_nominal=500), rho_default=rhoFlu, nOri=2, preVar=Buildings.Fluid.Movers.BaseClasses.Types.PrescribedVariable.Speed, computePowerUsingSimilarityLaws=true) "FlowMachineInterface with per.etaMotMet=.GenericCurve"; Modelica.Blocks.Sources.Constant y(k=1) "Relative speed"; Modelica.Blocks.Sources.Ramp m_flow(height=1*rhoFlu, duration=1) "Mass flow rate"; Modelica.Blocks.Sources.Constant rho(k=rhoFlu) "Density"; equation connect(eff3.rho, rho.y); connect(rho.y,eff4. rho); connect(m_flow.y,eff3. m_flow); connect(m_flow.y,eff4. m_flow); connect(m_flow.y, eff1.m_flow); connect(m_flow.y, eff2.m_flow); connect(rho.y, eff2.rho); connect(rho.y, eff1.rho); connect(y.y, eff1.y_in); connect(y.y, eff2.y_in); connect(y.y, eff3.y_in); connect(y.y, eff4.y_in); end MotorEfficiencyMethods;

Buildings.Fluid.Movers.BaseClasses.Validation.NegativePressureOrFlow Buildings.Fluid.Movers.BaseClasses.Validation.NegativePressureOrFlow

A validation model that tests the mover behaviour when the pressure rise or flow is negative

Buildings.Fluid.Movers.BaseClasses.Validation.NegativePressureOrFlow

Information

Without the constraint that Wflo = V̇ Δp ≥ 0, this validation model would produce negative computed mover power when the pressure rise or the flow rate is forced to be negative, as shown below.

image

Extends from Modelica.Icons.Example (Icon for runnable examples).

Parameters

TypeNameDefaultDescription
MassFlowRatem_flow_nominal0.1Nominal mass flow rate [kg/s]
PressureDifferencedp_nominal10000Nominal pressure difference [Pa]
Densityrho_default1.2Fluid density at medium default state [kg/m3]

Modelica definition

model NegativePressureOrFlow "A validation model that tests the mover behaviour when the pressure rise or flow is negative" extends Modelica.Icons.Example; package Medium = Buildings.Media.Air; parameter Modelica.Units.SI.MassFlowRate m_flow_nominal=0.1 "Nominal mass flow rate"; parameter Modelica.Units.SI.PressureDifference dp_nominal=10000 "Nominal pressure difference"; parameter Modelica.Units.SI.Density rho_default=1.2 "Fluid density at medium default state"; Buildings.Fluid.Movers.BaseClasses.FlowMachineInterface eff( per(pressure(V_flow=m_flow_nominal/rho_default*{0,2}, dp=dp_nominal*{2,0}), etaHydMet=Buildings.Fluid.Movers.BaseClasses.Types.HydraulicEfficiencyMethod.NotProvided, etaMotMet=Buildings.Fluid.Movers.BaseClasses.Types.MotorEfficiencyMethod.NotProvided), preVar=Buildings.Fluid.Movers.BaseClasses.Types.PrescribedVariable.PressureDifference, computePowerUsingSimilarityLaws=true, rho_default=rho_default, nOri=2) "FlowMachineInterface model with prescribed pressure"; Modelica.Blocks.Sources.Constant rho(k=rho_default) "Density"; Modelica.Blocks.Sources.Ramp m_flow( height=2*m_flow_nominal, duration=3600, offset=-0.5*m_flow_nominal) "Mass flow rate"; Modelica.Blocks.Sources.Ramp dp( height=-2*dp_nominal, duration=3600, offset=1.5*dp_nominal) "Pressure rise"; equation connect(eff.m_flow, m_flow.y); connect(rho.y, eff.rho); connect(dp.y, eff.dp_in); end NegativePressureOrFlow;

Buildings.Fluid.Movers.BaseClasses.Validation.PowerInterface Buildings.Fluid.Movers.BaseClasses.Validation.PowerInterface

Simple model to validate PowerInterface

Buildings.Fluid.Movers.BaseClasses.Validation.PowerInterface

Information

Simple validation model for the power interface model.

Extends from Modelica.Icons.Example (Icon for runnable examples).

Modelica definition

model PowerInterface "Simple model to validate PowerInterface" extends Modelica.Icons.Example; Buildings.Fluid.Movers.BaseClasses.PowerInterface powCoo( motorCooledByFluid=true, delta_V_flow=0.05) "Power interface model"; Modelica.Blocks.Sources.Constant WFlo(k=1*1000) "Flow work"; Modelica.Blocks.Sources.Ramp V_flow( duration=1, height=1) "Volume flow rate"; Modelica.Blocks.Sources.Constant WHyd(k=1250) "Hydraulic work"; Modelica.Blocks.Sources.Constant PEle(k=1*1000*4) "Electrical work"; Buildings.Fluid.Movers.BaseClasses.PowerInterface powNonCoo( motorCooledByFluid=false, delta_V_flow=0.05) "Power interface model"; equation connect(V_flow.y, powCoo.V_flow); connect(powCoo.WFlo, WFlo.y); connect(PEle.y, powCoo.PEle); connect(V_flow.y, powNonCoo.V_flow); connect(powNonCoo.WFlo, WFlo.y); connect(PEle.y, powNonCoo.PEle); connect(WHyd.y, powCoo.WHyd); connect(WHyd.y, powNonCoo.WHyd); end PowerInterface;

Buildings.Fluid.Movers.BaseClasses.Validation.TotalEfficiencyMethods Buildings.Fluid.Movers.BaseClasses.Validation.TotalEfficiencyMethods

Validation model for total efficiency specified via hydraulic efficiency options

Buildings.Fluid.Movers.BaseClasses.Validation.TotalEfficiencyMethods

Information

This model is the same as Buildings.Fluid.Movers.BaseClasses.Validation.HydraulicEfficiencyMethods except that the enumeration is used for total efficiency η via the parameter per.powerOrEfficiencyIsHydraulic.

Extends from HydraulicEfficiencyMethods (Validation model for different hydraulic efficiency options).

Parameters

TypeNameDefaultDescription
DensityrhoFlu1.2Fluid density [kg/m3]

Modelica definition

model TotalEfficiencyMethods "Validation model for total efficiency specified via hydraulic efficiency options" extends HydraulicEfficiencyMethods( per(powerOrEfficiencyIsHydraulic=false), eff2(per(efficiency(eta={0,0.35,0.49,0.35,0}))), eff3(per(power(P={680,771,730,780,1010}))), eff4(per(peak(eta=0.49)))); end TotalEfficiencyMethods;