Pipe Logical Model

From Planimate Knowledge Base
Jump to: navigation, search

Pipe Logical Model

The pipe connects a "Source Att" in the "Source Object" to a "Target Att" in the "Target Object".

These will typically be portal attributes of the source and target portals.

By default the pipe looks for an attribute called "pipe" but this can easily be changed in the Pipe's Object menu.

Pipe Menu.jpg

Other Parameters

Total Time
Determines the time between a quantity being collected from the source and deposited at the target (assuming "Run Control" is at 1).
Time Resolution
Determines how often the pipe "samples" - in effect determining the flow granularity. If the Time Resolution equals the Total Time, the pipe does the transfer in one big "bite".
Load Rate/Hour
Determines the overall flow rate at which the pipe draws from the source attribute - with the proviso that the pipe will not draw the source below zero.


Separate pipe parameter options also control load monitoring - accumulation of amount loaded/unloaded into separate attributes which can be set independently of the actual bin the pipe uses (hence each pipe's activities can be monitored).

Load Limiting selection enables limiting of amount loaded via a separate load limit attribute which gets decremented to 0 and then stops feeding the pipe.

If load limiting is not needed, turning it off will speed up model operations.


The pipe is composed of a number of "logical bins" in series, each bin stores a quantity representing its "level". The number of bins is computed by Total Time / Time Resolution - the finer the time resolution, the more bins.

Pipe Bins Concept.jpg


Pipe Attribute Reading

A pipe uses up to eleven attribute references to specify its operational parameters. Some of these are only read at initialisation time, others can be changed on-the-fly during a model run.

Read at run initialisation:

Total Time


Time Resolution

Read/updated on-the-fly:

Source Att


Target Att


Load Rate/Hour


Run Control


Load Limit


Load Accumulator


Unload Accumulator


Pipe Event

For each Pipe, Events get generated at intervals of "Time Resolution" for that Pipe Object.

At every event the pipe:

  1. Shifts its contents one bin towards the target
    (implemented such that the number of bins does not affect the speed of the shift)
  2. "Dumps" the last bin into the target attribute
    (incrementing it)
  3. "Loads" the first bin from the source attribute
    (decrementing it by the load amount).

The load amount is computed by:

Load Rate/Hour x Time Resolution / 3600.0

Hence the load amount is less for smaller time resolutions, since more loads are occurring per hour.

The load amount gets clamped to prevent the source attribute being made negative - ie. the "demand" cannot be met.

If you select the option "Load Integral Values", the load amount will be rounded so the pipe always contains an integral quantity without any fractions.


Pipe Logical Model Notes:

  • If the load amount per sample is less than 0.5 and the integral values option is on, nothing will be loaded!
  • Decreasing the Time Resolution (yielding higher resolution) means more events need to be scheduled to keep the logical pipe updated, this will impact on model performance.