modelResistanceVolumeFlowReversal

System demonstrating impact of allowFlowReversal on number/size of non-linear systems

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

Information

This model demonstrates the impact of the allowFlowReversal parameter on the size of nonlinear systems of equations. The user can change the parameter value in the allowFlowReversal block and rerun the simulation. The results are also demonstrated below for nRes.k = 10, which is the number of parallel branches containing one pressure drop element and one mixing volume each.

This model was created to demonstrate the influence of a new implementation of AixLib.Fluid.Interfaces.ConservationEquation. The old implementation used the actualStream() function whereas the new implementation uses the semiLinear() function. This change allows Dymola to exploit knowledge about the min and max attributes of m_flow. When Dymola knows in which way the medium will flow, nonlinear systems can be simplified or completely removed. This is illustrated by the results below. See issue 216 for a discussion.

Note that Dymola 2015FD01 can only reliably solve the last case. For the other two cases the Newton solver of the nonlinear system does not converge.

These results were generated using Dymola 2015FD01 64 bit on Ubuntu 14.04 and with Evaluate=false.

ResistanceVolumeFlowReversal = true

Sizes of nonlinear systems of equations: {6, 11, 56}
Sizes after manipulation of the nonlinear systems: {1, 9, 12}

ResistanceVolumeFlowReversal = false

Old implementation

Sizes of nonlinear systems of equations: {6, 11, 44}
Sizes after manipulation of the nonlinear systems: {1, 9, 11}

New implementation

Sizes of nonlinear systems of equations: {6, 11, 4}
Sizes after manipulation of the nonlinear systems: {1, 9, 1}

Parameters

TypeNameDefaultDescription
Realm_flow_nominal0.1Gain value multiplied with input signal

Components

TypeNameDefaultDescription
AixLib.Fluid.Sources.Boundary_pTbouBoundary for pressure boundary condition
Movers.FlowControlled_m_flowpumpPump model with unidirectional flow
AixLib.Fluid.HeatExchangers.Heater_TheaHeater
Modelica.Blocks.Sources.PulsepulsePulse input
Modelica.Blocks.Math.GaingainGain for m_flow_nominal
AixLib.Fluid.Actuators.Valves.ThreeWayLinearvalThree way valve with constant input
Modelica.Blocks.Sources.ConstantconstConstant valve set point
Modelica.Blocks.Sources.BooleanConstantallowFlowReversalBlock for setting allowFlowReversal in components
AixLib.Fluid.FixedResistances.PressureDropresFluid resistance for splitting flow
Modelica.Blocks.Sources.IntegerConstantnResNumber of parallel branches
Delays.DelayFirstOrdervolMixing volumes for enthalpy circuit

Contents

NameDescription
Medium

Revisions

  • September 21, 2017, by Michael Wetter:
    Corrected parameterization to be independent of k.
    This is for AixLib, #825.
  • May 8, 2017, by Michael Wetter:
    Updated heater model.
    This is for AixLib, #763.
  • April 11, 2016 by Michael Wetter:
    Corrected wrong hyperlink in documentation for issue 450.
  • February 22, 2016, by Michael Wetter:
    Removed parameter dynamicBalance for issue 411.
  • April 17, 2015, by Filip Jorissen:
    First implementation.