modelCLevel1b

General System Dynamics controlling level with no inflow

Information

This is the continuous controlling Level model of the System Dynamics methodology with a single outflow and no inflow. It computes the level by integrating over the negative outflow rate.

Once the level reaches its minimum allowed value, it sends a Boolean signal to its outflow rate element to tell it to stop demanding more stuff.

Contrary to the model used in the separate (not bong-graph based) SystemDynamics library, this model includes not only mass flows, but also energy flows. If you are not interested in energy flow modeling, simply set the initial energy of all levels to a value that is numerically equal to the mass.

Since the initial enthalpy is computed as the quotient of energy and mass:

h0 = E0/m0

you will get a division by zero if you attempt a simulation with zero initial mass. You thus need to set the initial mass to a small value that doesn't falsify the simulation results.

The model also contains a dissipative loss of enthalpy (but not mass) to the environment. Mass is always conserved. By attaching an R element to a 1 junction, we guarantee that the mass flow is not affected at all by the dissipative term. Only enthalpy is being dissipated.

Parameters

TypeNameDefaultDescription
Realm01Initial mass
RealminLevel0Smallest allowed value of stock
Modelica.SIunits.EnergyE01Initial energy
RealR00Specific enthalpy of dissipation
Realh0E0/m0Initial enthalpy

Connectors

TypeNameDefaultDescription
Modelica.Blocks.Interfaces.BooleanOutputsControl signal
BondLib.Interfaces.BondConBondCon1Mass and power outflow
Modelica.Blocks.Interfaces.RealOutputyMass
Modelica.Blocks.Interfaces.RealOutputy1Mass
Modelica.Blocks.Interfaces.RealOutputy2Mass
Modelica.Blocks.Interfaces.RealOutputy3Mass

Components

TypeNameDefaultDescription
ReallevelMass
Modelica.SIunits.EnergyEEnergy
Modelica.Blocks.Logical.GreaterThresholdGreaterThreshold1
Bonds.eBondB1
Utilities.CmC1Mass storage
Junctions.J0p2j0p2_1
Bonds.eBondB2
Junctions.J1p3j1p3_1
Bonds.eBondB3
Passive.RR1