BuildSysPro.IBPSA.Fluid.Movers.BaseClasses.PartialFlowMachine

# .BuildSysPro.IBPSA.Fluid.Movers.BaseClasses.PartialFlowMachine

Partial model to interface fan or pump models with the medium

## Information

This is the base model for fans and pumps. It provides an interface between the equations that compute head and power consumption, and the implementation of the energy and pressure balance of the fluid.

Optionally, the fluid volume is computed using a dynamic balance or a steady-state balance.

The parameter `addPowerToMedium` determines whether any power is added to the fluid. The default is `addPowerToMedium=true`, and hence the outlet enthalpy is higher than the inlet enthalpy if the flow device is operating. The setting `addPowerToMedium=false` is physically incorrect (since the flow work, the flow friction and the fan heat do not increase the enthalpy of the medium), but this setting does in some cases lead to simpler equations and more robust simulation, in particular if the mass flow is equal to zero.

In the previous implementation, this model extends from IBPSA.Fluid.Interfaces.PartialTwoPortInterface. Now it copies much of the code instead. This is to resolve a potential circular parameter binding that occurs when IBPSA.Fluid.Movers.Preconfigured.SpeedControlled_y extends from IBPSA.Fluid.Movers.SpeedControlled_y. The former uses the nominal flow rate provided by user to construct the pressure curve, whilst the latter uses the user-provided pressure curve to determine the nominal flow rate. The new implementation removes the original declaration of nominal flow rate from IBPSA.Fluid.Interfaces.PartialTwoPortInterface and hides it (`protected _m_flow_nominal`) from the user. This way, A higher-level model (e.g. IBPSA.Fluid.Movers.FlowControlled_dp), can still provide a default but not the other way around. See discussions in #1705.

## Revisions

- March 1, 2023, by Hongxiang Fu:
  Instead of extending IBPSA.Fluid.Interfaces.PartialTwoPortInterface, this model now has its code copied, then rewrote `m_flow_nominal` as `protected _m_flow_nominal`.
  This is for #1705.
- May 6, 2022, by Hongxiang Fu:
  - Moved `haveVMax` from here to IBPSA.Fluid.Movers.BaseClasses.FlowMachineInterface and `V_flow_max` from here to IBPSA.Fluid.Movers.Data.Generic.
  - Added `per.peak`, `per.totalEfficiency,`, `per.motorEfficiency_yMot`to be also passed down to `eff.per` at instantiation.
  - Added an `assert()` warning when the model has to make an unreliable guess for efficiency computation using `.EulerNumber`.
  - Added an `assert()` warning when the model has to overwrite `per.etaMotMet`.
  These are for #2668.
- June 17, 2021, by Michael Wetter:
  Changed implementation of the filter.
  This is for #1498.
- October 25, 2019, by Jianjun Hu:
  Improved icon graphics annotation. This is for #1225.
- January 22, 2019, by Filip Jorissen:
  Split long assert output string into two strings to avoid compiler warnings in JModelica.
  This is for #1081.
- January 8, 2019, by Filip Jorissen:
  Added assert for value of `m_flow_nominal`.
  This is for #908.
- March 24, 2017, by Michael Wetter:
  Renamed `filteredSpeed` to `use_inputFilter`.
  This is for #665.
- December 2, 2016, by Michael Wetter:
  Removed `min` attribute as otherwise numerical noise can cause the assertion on the limit to fail.
  This is for #606.
- November 3, 2016, by Michael Wetter:
  Set start value for `VMachine_flow` to avoid a warning in IBPSA.Fluid.Movers.Examples.MoverContinuous.
- July 29, 2016, by Michael Wetter:
  Made `Extractor` protected so that it can be removed later with a backwards compatible change.
- July 19, 2016, by Filip Jorissen:
  Created custom implementation for extractor. This is for #498.
- June 16, 2016, by Filip Jorissen:
  Switched position of mixing volume and mass flow rate sensor. This is to have a consistent operating point tuple of `dp` and `m_flow` when having compressible flow. This is for #458.
- February 19, 2016, by Michael Wetter and Filip Jorissen:
  Refactored model to make implementation clearer. This model now includes code for both speed and flow prescribed models, eliminating the need for an additional level of partial models. This is for #417.
- Removed the parameter `dynamicBalance`. This is for #411.
- November 19, 2015, by Michael Wetter:
  Removed assignment of parameter `showDesignFlowDirection` in `extends` statement. This is for #349. Removed assignment of `min` and `max` attributes of the port mass flow rate as this is already done in the base class. Removed `import` statement.
- April 2, 2015, by Filip Jorissen:
  Added code for supporting stage input and constant input. Added code for displaying constant set point in symbol.
- January 24, 2015, by Michael Wetter:
  Propagated `m_flow_small` of instance `vol` and made all its parameters final.
- May 25, 2011, by Michael Wetter:
  Revised implementation of energy balance to avoid having to use conditionally removed models.
- July 29, 2010, by Michael Wetter:
  Reduced fan time constant from 10 to 1 second.
- July 27, 2010, by Michael Wetter:
  Redesigned model to fix bug in medium balance.
- March 24 2010, by Michael Wetter:
  First implementation.

Generated at 2026-05-12T20:19:03Z by OpenModelicaOpenModelica 1.26.7 using GenerateDoc.mos