Dealing with Time in System Dynamics Models Sourced from Geoff Coyle
Importance of Time in Simulation For discrete event: “Time moves forward when something happens”. For system dynamics: “Time is a fundamental issue”. Outputs and inputs are plotted against time.
Aspects of Time in Dynamo Delays The time unit used Time-dependent exogenous influences LENGTH (reserved word) TIME (reserved word) DT (reserved word) Output control
Delays Physical Delays
Delay1 – a distribution delay (similar to erlang) Delay2 – a pipeline delay contains a number of internal levels (seldom happens in actual systems)
Information Delays
Smooth or DLINF3
Delays produced by decision rules
Ex. PR.KL=(DESIRED.K-ACTUAL.K)/STAT Where STAT is stock adjustment time (used as a first order delay of STAT in the system)
Note about Delays Delays should be measured in the same time units. A model with delays in days and delays in years are confusing. Modeling Production Policy uses delays in days Modeling Capacity planning and acquisition uses delays in years
Time Unit Time units must have the same dimensions as delays. Follow the natural choice of the system, when selecting time. If there is a conflict in choosing time, then the purpose of the model is not clear (both the modeler and user) Time magnitude can be 1 week, 1 year, 1 month, etc. The important things is that it resides in the modeler’s mind and understanding of the problem.
Time dependent Exogenous Inputs May or may not happen in your model. It includes simulated demand patterns such as STEP and PULSE (there are others). STEP is used to test model’s stability and to detect errors. PULSE should be handled carefully. It differs on the software packages.
LENGTH It is a built in feature of dynamo It connotes the duration of the model run. The dimension of LENGTH should be the same as the Time Unit.
How long is LENGTH? The LENGTH should be at least 10 times as long as the longest delay in the model. It must be long enough to allow any exogenous input to have sufficient time to show their effects. For STEP and PULSE, LENGTH must be long enough until no further changes are seen in the model’s behavior. It must allow for at least 4 cycles. It must be sufficient to allow policies in the model to reveal their consequences.
How long is LENGTH? It must be credible to the client/user. If confusion arises on the length, the longest is not necessarily better. Recall the fundamental aspect of the system (modeling a business for 100 years maybe absurd) A simple test is to run it with LENGTH doubled and LENGTH half and see if there is a difference. (Watch out for absurd realities such as negative values) It should be a sensible round number.
A Special command “TIME” A counter which represents the passage of time in the model Automatically creates a level equation of the form: L TIME.K=TIME.J+DT N TIME=1900 (Time can be initialized, but extra care) LENGTH should be adjusted when time is initialized. Initializing time does not mean that you are predicting the future instead of showing policy effects.
DT It is the time step in the model that progressively moves time towards its termination at LENGTH. DT for Dynamo and TIMESTEP for other packages DT is an artefact of the modeller’s mind and not the system.
DT It should have the same dimension as TIME. It is never placed on the right hand side of a rate or auxiliary. It has nothing to do with the problem. If DT is too large it becomes numerically unstable. If DT is too small it will take a longer run.
DT Observe this: DT<= DEL/4N Where DEL is the magnitude or duration of delay in the model and N is the order. In practice, the lower possible value from the limit shown above is chosen (binary fraction). Most common values of DT are 0.5, 0.25, and 0.125 If there are multiple delays inside the model, choose DT that is a common multiple of the delays’ magnitude.
Output Control Not a key determinant of time. It is good practice to print, on paper, or tables of all variables in a model while the model is being debugged. An equivalent set of calculations can be made using a spreadsheet (such as EXCEL) to be able to see clearly the numerical changes that happens in the model. The same equations from dynamo can be used in printing or constructing the table for the variables.