This package contains examples for the use of models that can be found in Buildings.Fluid.BaseClasses.FlowModels.
Extends from Modelica.Icons.ExamplesPackage (Icon for packages containing runnable examples).
| Name | Description |
|---|---|
| Test model for flow function and its inverse | |
| Test model for flow functions |
Buildings.Fluid.BaseClasses.FlowModels.Examples.InverseFlowFunction
This model tests the inverse formulation of the flow functions.
The pressure difference dp and dpCalc need to
be equal up to the solver tolerance, except for a small neighborhood
around the origin. In this neighborhood around the origin, the functions
Buildings.Fluid.BaseClasses.FlowModels.basicFlowFunction_dp
and
Buildings.Fluid.BaseClasses.FlowModels.basicFlowFunction_m_flow
are not invertible.
Extends from Modelica.Icons.Example (Icon for runnable examples).
| Type | Name | Default | Description |
|---|---|---|---|
| Real | k | 0.5 | |
| MassFlowRate | m_flow_nominal | 1 | Nominal flow rate [kg/s] |
model InverseFlowFunction
"Test model for flow function and its inverse"
extends Modelica.Icons.Example;
Modelica.SIunits.MassFlowRate m_flow;
Modelica.SIunits.Pressure dp(displayUnit="Pa") "Pressure difference";
Modelica.SIunits.Pressure dpCalc(displayUnit="Pa")
"Pressure difference computed by the flow functions";
Modelica.SIunits.Pressure deltaDp(displayUnit="Pa")
"Pressure difference between input and output to the functions";
Modelica.SIunits.Time dTime= 2;
parameter Real k = 0.5;
parameter Modelica.SIunits.MassFlowRate m_flow_nominal = 1 "Nominal flow rate";
equation
dp = (time-0.5)/dTime * 20;
m_flow=FlowModels.basicFlowFunction_dp(dp=dp, k=k, m_flow_turbulent=m_flow_nominal*0.3);
dpCalc=FlowModels.basicFlowFunction_m_flow(m_flow=m_flow, k=k, m_flow_turbulent=m_flow_nominal*0.3);
deltaDp = dp - dpCalc;
end InverseFlowFunction;
Buildings.Fluid.BaseClasses.FlowModels.Examples.TestFlowFunctions
Extends from Modelica.Icons.Example (Icon for runnable examples).
| Type | Name | Default | Description |
|---|---|---|---|
| Pressure | p2 | 101325 | Boundary condition [Pa] |
| Boolean | from_dp | true | |
| Real | k | 0.5 | |
| MassFlowRate | m_flow_nominal | 1 | Nominal flow rate [kg/s] |
model TestFlowFunctions "Test model for flow functions" extends Modelica.Icons.Example; Modelica.SIunits.MassFlowRate m1_flow; Modelica.SIunits.MassFlowRate m2_flow; Modelica.SIunits.Pressure dp1; Modelica.SIunits.Pressure dp2; Modelica.SIunits.Pressure p1_nominal=101325; Modelica.SIunits.Time dTime= 1; Modelica.SIunits.Pressure p1 "Boundary condition"; parameter Modelica.SIunits.Pressure p2 = 101325 "Boundary condition"; parameter Boolean from_dp = true; parameter Real k = 0.5; parameter Modelica.SIunits.MassFlowRate m_flow_nominal = 1 "Nominal flow rate"; equation p1 = p1_nominal + (time-0.5)/dTime * 20; m1_flow = m2_flow; p2-p1 = dp1 + dp2; if from_dp then m1_flow=FlowModels.basicFlowFunction_dp(dp=dp1, k=k, m_flow_turbulent=m_flow_nominal*0.3); m2_flow=FlowModels.basicFlowFunction_dp(dp=dp2, k=k, m_flow_turbulent=m_flow_nominal*0.3); else dp1=FlowModels.basicFlowFunction_m_flow(m_flow=m1_flow, k=k, m_flow_turbulent=m_flow_nominal*0.3); dp2=FlowModels.basicFlowFunction_m_flow(m_flow=m2_flow, k=k, m_flow_turbulent=m_flow_nominal*0.3); end if; assert(abs(dp1-dp2) < 1E-5, "Error in implementation.");end TestFlowFunctions;