Description: "Flow models for pressure drop calculations"

- Home > Modelica

## Buildings.Fluid.BaseClasses.FlowModels

Flow models for pressure drop calculations

### Information

This package contains a basic flow model that is used by the various models that compute pressure drop. Because the density does not change signficantly in heating, ventilation and air conditioning systems for buildings, this model computes the pressure drop based on the mass flow rate and not the volume flow rate. This typically leads to simpler equations because it does not require the mass density, which changes when the flow is reversed. Although, for conceptual design of building energy system, there is in general not enough information available that would warrant a more detailed pressure drop calculation. If a more detailed computation of the flow resistance is needed, then a user can use models from the `Modelica.Fluid` library.

Extends from Modelica.Icons.BasesPackage (Icon for packages containing base classes).

### Package Content

Name | Description
--- | ---
basicFlowFunction_dp | Basic class for flow models
basicFlowFunction_m_flow | Basic class for flow models
Examples | Collection of models that illustrate model use and test models

## Buildings.Fluid.BaseClasses.FlowModels.basicFlowFunction_dp

Basic class for flow models

### Information

Function that computes the pressure drop of flow elements as

m = sign(Δp) k √ Δp

with regularization near the origin. Therefore, the flow coefficient is

k = m ⁄ √ Δp

The input `m_flow_turbulent` determines the location of the regularization.

### Inputs

Type | Name | Default | Description
--- | --- | --- | ---
Pressure | dp |  | Pressure difference between port_a and port_b (= port_a.p - port_b.p) [Pa]
Real | k |  | Flow coefficient, k=m_flow/sqrt(dp), with unit=(kg.m)^(1/2)
MassFlowRate | m_flow_turbulent |  | Mass flow rate [kg/s]

### Outputs

Type | Name | Description
--- | --- | ---
MassFlowRate | m_flow | Mass flow rate in design flow direction [kg/s]

### Modelica definition

function basicFlowFunction_dp "Basic class for flow models" input Modelica.SIunits.Pressure dp(displayUnit="Pa") "Pressure difference between port_a and port_b (= port_a.p - port_b.p)"; input Real k(min=0, unit="") "Flow coefficient, k=m_flow/sqrt(dp), with unit=(kg.m)^(1/2)"; input Modelica.SIunits.MassFlowRate m_flow_turbulent(min=0) "Mass flow rate"; output Modelica.SIunits.MassFlowRate m_flow "Mass flow rate in design flow direction"; protected Modelica.SIunits.Pressure dp_turbulent(displayUnit="Pa") "Turbulent flow if |dp| >= dp_small, not a parameter because k can be a function of time"; protected Real kSqu(unit="kg.m") "Flow coefficient, kSqu=k^2=m_flow^2/|dp|"; algorithm kSqu:=k*k; dp_turbulent :=m_flow_turbulent^2/kSqu; m_flow :=Modelica.Fluid.Utilities.regRoot2(x=dp, x_small=dp_turbulent, k1=kSqu, k2=kSqu); end basicFlowFunction_dp;

## Buildings.Fluid.BaseClasses.FlowModels.basicFlowFunction_m_flow

Basic class for flow models

### Information

Function that computes the pressure drop of flow elements as

Δp = sign(m) (m ⁄ k)2

with regularization near the origin. Therefore, the flow coefficient is

k = m ⁄ √ Δp

The input `m_flow_turbulent` determines the location of the regularization.

### Inputs

Type | Name | Default | Description
--- | --- | --- | ---
MassFlowRate | m_flow |  | Mass flow rate in design flow direction [kg/s]
Real | k |  | Flow coefficient, k=m_flow/sqrt(dp), with unit=(kg.m)^(1/2)
MassFlowRate | m_flow_turbulent |  | Mass flow rate [kg/s]

### Outputs

Type | Name | Description
--- | --- | ---
Pressure | dp | Pressure difference between port_a and port_b (= port_a.p - port_b.p) [Pa]

### Modelica definition

function basicFlowFunction_m_flow "Basic class for flow models" input Modelica.SIunits.MassFlowRate m_flow "Mass flow rate in design flow direction"; input Real k(unit="") "Flow coefficient, k=m_flow/sqrt(dp), with unit=(kg.m)^(1/2)"; input Modelica.SIunits.MassFlowRate m_flow_turbulent(min=0) "Mass flow rate"; output Modelica.SIunits.Pressure dp(displayUnit="Pa") "Pressure difference between port_a and port_b (= port_a.p - port_b.p)"; protected Real kSquInv(unit="1/(kg.m)") "Flow coefficient"; algorithm kSquInv:=1/k^2; dp :=Modelica.Fluid.Utilities.regSquare2(x=m_flow, x_small=m_flow_turbulent, k1=kSquInv, k2=kSquInv); end basicFlowFunction_m_flow;