Discrete Change Delay elements provide a mechanism for delaying a discrete change signal. Once a Discrete Change Delay receives a discrete change signal, it holds it for a specified time period, and then emits it.
The dialog for a Discrete Change Delay looks like this:
Within the Discrete Change Delay dialog, you must first specify which discrete change signal(s) you wish to delay. The Discrete Input Signals field accepts only discrete change signals. The discrete change signal inputs to a Discrete Change Delay must all have the same attributes (order and dimensions) as the output. The required order (scalar, vector or matrix) of the output signal is specified in a dialog accessed via the Type… button. The required dimensions of the signal are specified in the Display Units field. By default, the signal is a dimensionless scalar.
A Discrete Change Delay can accept multiple discrete change signals. This is indicated in the input field by separating the individual discrete change signals by semi-colons (e.g., Change1; Change2; Change3).
You can also specify the multiple discrete changes using the Multiple Discrete Signals button, which displays a table listing the multiple discrete change signals:
After defining the signal(s) to be delayed, you then define the delay itself. The delay time is computed based on a specified Delay Type. There are three types:
• Defined Delay Time.
• Defined Delay Time + Erlang Dispersion
• Defined Delay Time + Std. Deviation
The last two options allow the delay time to have a specified dispersion. That is, they allow you to simulate variability in when a signal is emitted once the element is triggered. This is equivalent to saying that there is a distribution of actual delay times around some mean, and whenever the element is triggered, the delay time for that event is sampled from a distribution.
All three options require a specified Delay Time (or a Mean Time if dispersion is specified). The Delay Time and the Mean Time must have dimensions of time and generally should be positive.
Note: If the specified delay time is equal to zero, the signal is emitted immediately (i.e., on the same update) without any delay. A negative delay time will result in a fatal error.
Note: The Use conveyer-belt approach box only impacts the behavior of the Delay if the delay time changes with time.
You can optionally specify that a Discrete Change Delay requires one or more Resources in order to process the signal.
Discrete Change Delay elements have the ability to influence when a model is updated. Typically, a model is updated at every “scheduled” timestep. That is, all the elements are computed at every timestep. However, an Event Delay can force a model to be updated between “scheduled” timesteps.
For example, suppose that you have specified a 10 day timestep. If a Discrete Change Delay receives a signal at 20 days, and has a 3 day delay time, GoldSim will insert an update (an “internal” event) between timesteps (i.e., at 23 days) in order to more accurately represent the event.
Warning: Discrete Change Delays are designed to interrupt the clock and insert a new update when the discrete change is released. If you choose to disable unscheduled updates, the discrete change in the Delay will be deferred to the next scheduled update (and hence the actual Delay Time will be longer than specified).
Discrete Change Delays have at least three, and as many as four outputs:
1. the discrete change signal itself (the primary output);
2. the cumulative number of discrete change signals emitted (released) by the Delay (EventCount);
3. the number of discrete change signals currently in transit within the Delay (Num_in_Transit);
4. the number of discrete change signals currently in the queue (Num_in_Queue), which is only present if a capacity or a Resource Requirement is specified;
Note that the discrete change signal output itself cannot be saved or viewed as a result.
The browser view of the Discrete Change Delay element looks like this:
Note: Element inputs and outputs are only shown in the browser if you choose to Show Element Subitems (accessed via the browser context menu by right-clicking in the browser).
The example model DiscreteChange.gsm in the General Examples/Events folder of your GoldSim directory (accessed by selecting File | Open Example... from the main menu) contains examples of the use of Discrete Change Delay elements.
Learn more about:
Understanding Timestepping in GoldSim
Controlling Unscheduled Updates
Modeling Discrete Change Delays without Dispersion
Modeling Discrete Change Delays with Dispersion
Discrete Change Delays with Time-Variable Delay Times
Referencing the Discrete Change Value to Determine the Delay Time
Specifying Capacities and Modeling Queues for a Discrete Change Delay