Pipe Logical Model: Difference between revisions

From Planimate Knowledge Base
Jump to navigation Jump to search
m (Created)
 
mNo edit summary
 
Line 1: Line 1:
Pipe Logical Model  
== Pipe Logical Model ==


The pipe connects a "Source Att" in the "Source Object" to a "Target Att" in the "Target Object".  
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.  
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.


Other Parameters
[[Image:Pipe Menu.jpg]]<br>


Parameter
== Other Parameters  ==
Description
 
;Total Time
Total Time  
 
Determines the time between a quantity being collected from the source and deposited at the target (assuming "Run Control" is at 1).  
:Determines the time between a quantity being collected from the source and deposited at the target (assuming "Run Control" is at 1).
 
Time Resolution  
;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".  
 
: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.  
;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.
 
<br>


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).  
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.  
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.
<br>


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.  
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.  


[[Image:Pipe_Bins_Concept.jpg]]<br>
 
<br>


Pipe Attribute Reading  
== 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.  
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:  
{| width="200" cellspacing="1" cellpadding="1" border="1"
Total Time; Time Resolution  
|-
| bgcolor="#ffffcc" colspan="2" | Read at run initialisation: <br>
Read/updated on-the-fly:  
|-
Source Att; Target Att; Load Rate/Hour; Run Control; Load Limit; Load Accumulator; Unload Accumulator.
| width="30" | <br>
|
Total Time<br>
 
|-
| <br>
|
Time Resolution<br>
 
|-
| bgcolor="#ffffcc" colspan="2" | Read/updated on-the-fly: <br>
|-
| <br>
|
Source Att<br>
 
|-
| <br>
|
Target Att<br>
 
|-
| <br>
|
Load Rate/Hour<br>
 
|-
| <br>
|
Run Control<br>
 
|-
| <br>
|
Load Limit<br>
 
|-
| <br>
|
Load Accumulator<br>
 
|-
| <br>
|
Unload Accumulator<br>
 
|}


<br>


For each Pipe Event  
== Pipe Event ==


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


At every event the pipe:  
At every event the pipe:  


a)        Shifts its contents one bin towards the target (implemented such that the number of bins does not affect the speed of the shift)  
#Shifts its contents one bin towards the target <br>(implemented such that the number of bins does not affect the speed of the shift) <br>
#"Dumps" the last bin into the target attribute <br>(incrementing it) <br>
#"Loads" the first bin from the source attribute <br>(decrementing it by the load amount). <br>
 
The load amount is computed by:
<pre>Load Rate/Hour x Time Resolution / 3600.0</pre>
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.


b)        "Dumps" the last bin into the target attribute (incrementing it)


c)        "Loads" the first bin from the source attribute (decrementing it by the load amount).


The load amount is computed by:  
== Pipe Logical Model Notes: ==


Load Rate/Hour  x  Time Resolution / 3600.0
*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.


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. 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.


[[Category:Object/Pipe]]
[[Category:Object/Pipe]]
<br>

Latest revision as of 15:29, 23 January 2009

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.