Conveyor

Conveyor delay (aka pipeline ~) with variable delay time

Diagram

Information

This information is part of the Business Simulation Library (BSL).

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

Implementation

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.

Notes

  • All inflows have to go to the inflow port of the Conveyor.

  • Since the outflow will be controlled by the Conveyor, →OutflowDynamicStock or →SplitOutflowDynamicStock have to be connected to the outflow port.

  • Using more than one outflow (e.g., →SplitOutflowDynamicStock) can be used to model leaking.

    • The parameter init in the Advanced tab allows to select →InitializationOptions:
      • FixedValue (default) will initialize the stock according to value given by the parameter initialValue.

      • SteadyState will use Little's Law to determine the equilibrium start value as inflow.rate * delayTime

      • Free tells the solver that it is free in solving the initial value problem using initialValue as startValue.
  • The Conveyor behaves exactly like the PureDelay or the SimpleConveyor when there is a constant delay time; the Conveyor stock can deal with variable delay times and will preserve order of entry.

See also

SimpleConveyorPureDelay, DelayFixedDelayInformation

Parameters (9)

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)

Connectors (7)

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)

Components (4)

modelSettings

Type: ModelSettings

parDelayTime

Type: ConstantConverterTime

Description: Constant delay time

clippedDelayTime

Type: Clip

Description: Valid delay time to use

dynamicStockInfo

Type: DynamicStockInfo

Description: Report infos for StockInfoPort