ConveyorConveyor delay (aka pipeline ~) with variable delay time |
![]() |
This information is part of the Business Simulation Library (BSL). Please support this work and ► donate.
The Conveyor (aka pipeline delay) bevhaves as one would expect a conveyor belt to work: What flows into the Conveyor will flow out after a period given by delayTime
or the variable input u
has passed. The order of outflow will preserve the order of inflow, i.e., when the delay time increases or decreases during the simulation, then it will affect everything that is currently "loaded" on the conveyor in the same way. Therefore, material might come out at the same time as material that had entered before, but it can never overtake older entries (this would be possible in a PureDelay).
The Conveyor will work at discrete time intervals:
when sample(modelSettings.modelStartTime + samplingPeriod, samplingPeriod) then // load new material onto conveyor, move loaded material, unload material end when;
The values for the in- and outflows and the load will be kept constant between events.
inflow
port of the Conveyor.OutflowDynamicStock
or →SplitOutflowDynamicStock
have to be connected to the outflow
port.SplitOutflowDynamicStock
) can be used to model leaking.init
in the Advanced tab allows to select →InitializationOptions:
initialValue
.inflow.rate * delayTime
startValue
.init |
Value: modelSettings.init Type: InitializationOptions Description: Provide InitializationOptions (Free, FixedValue, SteadyState) |
---|---|
hasStockInfoOutput |
Value: false Type: Boolean Description: = true, if a StockInfoOutput should be added to the stock |
initialValue |
Value: 0 Type: OutputType Description: Initial load |
delayTime |
Value: Type: Time (s) Description: Constant delay time (optional) |
maxDelayTime |
Value: 10 Type: Time (s) Description: Maximum delay time (to restrict memory usage) |
samplingPeriod |
Value: modelSettings.samplingPeriod Type: Time (s) Description: Sampling period for discrete behavior (should be smaller than dt/2) |
hasConstantDelayTime |
Value: true Type: Boolean Description: = true, if the delay time is to be given by a constant parameter |
hasExogenousHistory |
Value: false Type: Boolean Description: =true, if the outflow-profile for the initial load is to be given by an external lookup function |
strict |
Value: true Type: Boolean Description: = true, if strict limits with noEvent(..) (clippedDelayTime.strict) |
![]() |
y |
Type: RealOutput Description: Level or rate information |
---|---|---|
![]() |
y1 |
Type: RealOutput Description: Level or rate information |
![]() |
y2 |
Type: RealOutput Description: Level or rate information |
![]() |
inflow |
Type: StockPort Description: Inflow port of the stock |
![]() |
outflow |
Type: StockPort_Special Description: Special outflow port of the stock (stock sets rate) |
![]() |
y_stockInfo |
Type: StockInfoOutput Description: Optional StockInfoOutput |
![]() |
u |
Type: RealInput Description: Delay time input (optional) |
![]() |
modelSettings |
Type: ModelSettings Description: Setting important global variables within a model |
---|---|---|
![]() |
parDelayTime |
Type: ConstantConverterTime Description: Constant delay time |
![]() |
clippedDelayTime |
Type: Clip Description: Valid delay time to use |
![]() |
dynamicStockInfo |
Type: DynamicStockInfo Description: Report infos for StockInfoPort |