DelayInformationPipeline information delay with awareness |
This information is part of the Business Simulation Library (BSL). Please support this work and ► donate.
The real output y is the real input u delayed by a fixed delay time which can be constant (delayTime
) or variable (u_delayTime
) during the simulation.
y[t] = u[t - delayTime]
The input signal is thus effectively shifted forward in time.
During an initial period (at most as long as the initial delayTime
or the maximumDelayTime
when the delay time can vary over time), we need to provide information about the historical input u (e.g., the input before the start time of the simulation). The historical input can either be given by a constant value (either the initialValue
or the initial input u) or by a function of time (usually a TableFunction), that will take the output connector y_lookupTime
as input and then provide the relevant historical input via the input connector u_history
.
Given that the delay time may be variable, we must distinguish two situations:
Internally a TimeInput
component is used to provide the current time, starting at modelSettings.modelStartTime
. At regular sampling intervals we will check whether the delayed information is more current than the stored information and update accordingly. time it was sampled (t_sampled
) will be stored.
As checking for increases in the delay time can introduce a lot of events, the checks will only be done a regular time events given by the parameter samplingPeriod
in the Advanced tab.
DelayInformation
and DelayFixed
are quite similiar, but there is a subtle difference:DelayInformation
models the delay in perceiving information where the recipient is aware of the delay time and thus will disregard older informatiion than the one he already has.DelayFixed
we will strictly delay any information given the actual delay time at any point in time and thus may receive information that is actually older than previous information when the delay time increases.DelayInformation
is an information delay, that is used to model delays in updating beliefs and perceptions; unlike a material delay matter is not conserved [20]. init
in the Advanced tab allows to select →InitializationOptions (but hasExogenousHistory = true
will allways have priority):initialValue
to determine the initial output y.initialValue
as an initial guess.delayTime |
Value: 1 Type: Time (s) Description: Constant delay time (optional) |
---|---|
maximumDelayTime |
Value: 50 Type: Time (s) Description: Maximal value allowed for delay time (needed for variable delay time) |
initialValue |
Value: 0 Type: OutputType Description: Initial constant output, if no exogenous history is given |
hasConstantDelayTime |
Value: true Type: Boolean Description: = true, if the delay time is given by the parameter 'delayTime' |
hasExogenousHistory |
Value: false Type: Boolean Description: = true, if the input 'u_history' gives the output for an initial period, otherwise the initial output will remain constant until delayTime is reached |
init |
Value: modelSettings.init Type: InitializationOptions Description: Provide InitializationOptions (Free, FixedValue, SteadyState) |
samplingPeriod |
Value: modelSettings.samplingPeriod Type: Time (s) Description: Interval at which to check for increases in delay time |
u |
Type: RealInput Description: Input |
|
---|---|---|
y |
Type: RealOutput Description: Output signal |
|
u_history |
Type: RealInput Description: Input of recent history (start time - initial delay time) |
|
y_lookupTime |
Type: RealOutput Description: Time for looking up historical input |
|
u_delayTime |
Type: RealInput Description: Delay time input |
modelSettings |
Type: ModelSettings Description: Setting important global variables within a model |
|
---|---|---|
parDelayTime |
Type: ConstantConverterTime Description: Constant delay time (optional) |
|
parInitialOutput |
Type: ConstantConverter Description: Initial output if not history is given |
|
clippedDelayTime |
Type: Clip Description: DelayTime has to be in the interval (dt, maximumDelayTime) |
|
delayedInput |
Type: VariableDelay Description: Delay block with variable DelayTime |
|
history |
Type: PassThrough Description: Output is identical to input |
|
delayedInputConstant |
Type: FixedDelay Description: Delayed input with constant delay time |
|
delayedInformation |
Type: PassThrough Description: Delayed input to use for further processing |
|
clock |
Type: TimeInput Description: Provide time starting with 0 |
|
lookupTime |
Type: Gap Description: The actual time minus the delay time, i.e., the time stamp for the delayed information |