Delaying a Discrete Change
Signal
Discrete Change Delay elements provide a mechanism for delaying a discrete change signal.
Once a Discrete Change Delay An event element that provides a mechanism for delaying a discrete change signal receives a discrete change signal A discrete signal that contains information regarding the response to an event., it holds it for a specified time period, and then emits it.
The properties 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 An output attribute for an element that defines the dimensionality (in terms of Length, Time and other fundamental dimensions) of the output.) as the output. The required order (scalar An output consisting of a single value or condition., vector A one-dimensional array. or matrix A two-dimensional array.) 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 The units (e.g., m, g, $/day) in which an output is displayed within GoldSim. 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:
Pressing this button 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 A class of elements that simulate processes that delay continuous or discrete signals and flows. The output of a delay element lags its inputs. have the ability to influence when a model is updated. Typically, a model is updated at every “scheduled” timestep A discrete interval of time used in dynamic simulations.. That is, all the elements are computed at every timestep. However, an Event Delay An event element that provides a mechanism for delaying a discrete event signal. 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 Timesteps that are inserted automatically by GoldSim during a simulation and are not directly specified by the user prior to running the model., 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:
- the discrete change signal itself (the primary output For an element with multiple outputs, the output that has the same name as the element.);
- the cumulative number of discrete change signals emitted (released) by the Delay (EventCount);
- the number of discrete change signals currently in transit within the Delay (Num_in_Transit);
- the number of discrete change signals currently in the queue (Num_in_Queue), which is only present if a capacity or a Resource Something that has a limited supply (e.g., spare parts, fuel, skilled personnel, money) and is required in order for elements of the modeled system to carry out certain actions. Requirement is specified;
Note that the discrete change signal output itself cannot be saved or viewed as a result.
The browser An alternative view of a GoldSim model, in which elements are displayed in a tree, and organized either hierarchically, or by type. 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
- 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
- Specifying Resources for a Discrete Change Delay
- Understanding Timestepping in GoldSim