Pipe Logical Model: Difference between revisions
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 | 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. | |||
[[Image:Pipe Menu.jpg]]<br> | |||
== Other Parameters == | |||
;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 | 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 | |- | ||
| bgcolor="#ffffcc" colspan="2" | Read at run initialisation: <br> | |||
Read/updated on-the-fly: | |- | ||
Source Att | | 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> | |||
== 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: | ||
#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. | |||
== 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. | |||
[[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.
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 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:
- Shifts its contents one bin towards the target
(implemented such that the number of bins does not affect the speed of the shift) - "Dumps" the last bin into the target attribute
(incrementing it) - "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.