TRUE :
Temporal Reasoning Universal Elaboration
TRUE,
a System dynamics software
proposed by True-World system Dynamics Software
is a tool for modeling, simulating, analyzing and optimizing
multidomain dynamics systems such as :
- tracing of financial flows
- operation and strategic research, decision-making
- conflict management dependent on scarce resources
- risk management dependent on Earth resources
- Macro-economics, Micro-economics, Econometrics,
Econophysics, systemic
- Mathematics, traditional Physics, Numerical Analysis,
statistical
- Relative Mechanic, social mathematics
- Medicine
Principle of this software :
- transparent and implied mathematical modeling
- coupled nonlinear differential equations of order nn
- system dynamics modeling
in discrete and continuous time (Euler)
- dynamic optimization using retro-calculation functions :
- wysiwyg
graphic interface and 3D modeller : Multibody Dynamics Simulation, Multibody system,
Procedural animation
History
- 2001(december) : beginning of the development :
an idea based on the Equilibrium,
the Nash equilibrium,
the conservation of mass,
the mass balance, the chemical
equilibrium.
- 2003-2006 : new features were implemented like vectorizations, dynamic optimization,
3D animated render with OpenGL,
speech synthesis.
- 2007-2011 : GUI improvement, adding new OpenGL primitives
- 2012-2014 : GUI improvement, 3D model display, recursives boxes, new functions
Technical
data
Installation and
hardware requirements
- windows 98/NT/2000/XP
- Vista (speech synthesis only in English)
- Windows7 & 8 (speech synthesis after installing Microsoft
MSAgentWin7 and MSAgent)
Database
Database name : hyperfile from Windev
- the global database contains 38 files, shared
dictionary and trash included
- each model contains 35 files
Integration
approach
- Stock and flow
- mirror stock and mirror flow : to verify the integrity
of the model (sum of stocks = k)
- discrete mode : independent multiple time scales
defined by seven temporal parameters
- simulation in both discrete and continuous mode
- type of value per flow : constant, procedure, array, scatter (WithLookUp)
- circularity : one or more independent equations per
flow, executed according their chronologies
- multiple and transparent stock updating, per unit of
time, according chronologies of the equations
Structure
- frames, boxes, multi-view, groups
External
input output
- can read text and Excel files
- can export data to text, xml, doc and xls files
- native access possible with following databases : AS/400, DB2,
Informix, MySQL, Oracle, SQL Server,...
Mathematical
analysis
- Sensitivity analysis
- dynamic optimization : nested dynamic back-calculation
- algorithm for intelligent backtracking :
BT Backtrack, loop back, dynamic backtracking, Dynamic programming
- combined vectorization up to twenty vectors (also
called arrays)
- inertia and memory of the model : delay
Programming
language in flow equations
- English and French W-language from Windev
by PcSoft :
- This language allows to dialog with other software,
database, etc. :
- Automation, Com, Dcom, Rpc, DotNet, Http, Socket,
Ftp, J2eee, Soap, Ole, ...
- dynamic compilation
- Syntax highlighting
editor
3D animated render, 3D procedural animation
- OpenGL 3D modeler
to create 3D render animated by values returned by the model after calculus
- Geometric primitives :
bone, cube, box, cone, torus, cylinder, disk, map2d, particles,
waves,...
- texturing, blending, ...
GUI
- magnetic grid, values calibration
- Animated 2D or 3D model display, zoom, multi-view, panorama
- rename, delete, undelete, copy and paste with preservation of integrity
Simulation display
- time scale and cycle scale including ReStartAt periods
- buttons : start, pause, stop, loop, speed, previous, next time and cycle
- spins : current time, cycle, ReStartAt, period for graphs and export data
Restitution
in the model after calculus
- dynamic stock and flow values, stock and flow shadows
- dynamic stock and flow causalities, stock and flow shadows causalities
- graphs with dynamic cursor (overlay)
- dynamic messages
- dynamic speech synthesis in English or French with
animated characters ( if MsAgent installed on Vista and windows 7)
- 3D animated objects (overlay)
- images (overlay)
Application
workspace and symbols
TRUE environment
TRUE notation
TRUE
version and features
TRUE is free of charge, available in French and in English.
Explanations
- Temporality
In a model, if the time unit is the
month, it is possible to calculate it for a final time = 36, i.e. 3
years.
Defining the temporality is define the basic
cycle.
In this example, the basic cycle can be one year containing 12 months, i.e.
12 base units.
The model will then be calculated for the number of cycles required.
- Time scales
All the equations are not necessarily executed at each unit
of time,
some may be executed according to their own cycles,
so the model can operate simultaneously with different time scales.
Each equation (constant, procedure, array or scatter) in a flow,
has its own temporal parameters, which specify
exactly when it will be executed.
- Temporal parameters : rate, chronology, start, interval,
repeat, type of cycle
(default, float default, float filtered), filtered cycles
- Rate
The parameter Rate is only effective if the flow links two stocks.
- If the parameter Rate is enable, the stocks will be updated by the result of the action (result = y / TimeStepI) at the end of the unit of time, before the transition to the next unit of time (as in Vensim).
- If the parameter Rate is not enable, the stocks will be updated by the result of the action (result = y ) immediatly after the action has been calculated.
- Chronology
When equations are executed at the same time,
the chronology parameter specifies the execution
order, in the unit of time.
- Flow and virtual flow
Flows and virtual flows contain
several equations (also called actions),
executed according their temporal parameters.
- A flow links two stocks : the source stock
and the target stock ;
the value calculated by each equation updates these stocks :
source stock -= value, target stock += value, according its chronology, if the parameter Rate is not enable.
source stock -= (value/TimeStepI), target stock += (value/TimeStepI), at the end of the unit of time, if the parameter Rate is enable.
- A virtual flow doesn't link
stocks, it doesn't update stocks.
- Stock and mirror stock
- A stock can be updated several times in the current unit of time,
according to the temporal parameters of the equations contained in the flows that
link it to the other stocks.
- A mirror stock is updated after each change of its source stocks;
its value is the sum of the stocks linked to it, via mirror
flows.
If a mirror stock is linked to all the stocks of
the model,
its value will remain constant, according to the principle of
conservation.
- Causal link (also called dependency link)
A causal link indicates that an
equation in a flow depends
on the current or the past value of one stock or another flow.
Causal links are dynamic, according the values, after model calculus.
- Circularity
There is circularity when two flows
are dependent on each other in the same time ;
at least 3 equations with successive chronologies are required.
- Vectorization
combined vectorization up to twenty vectors
- Dynamic optimization
The retro-calculation function ReStartAt()
can be called in each equations, after testing the variables.
When called, the calculus stop, it restarts at a previous time,
until the stop time,
and this can be done as many times as it is necessary.
Jumping to the restart time increments several
counters of passage, one for equation,
one for flow and one global for the model.
The stat function ReStartStat() is called to
retrieve counter values, to determine how modify variables,
to obtain the expected results. When several equations call the ReStartAt()
function, the loop back is nested.
- Sensitivity analysis
Only one call to the function ReStartAt()
is necessary, at the end of the last time of the last cycle,
to restart calculus, as many times as necessary, then with the function
ReStartStat,
the variable changes according to the passage counters.
- ReStartAt display
After calculus, the values and the passages created by
the function ReStartAt can be selected and
displayed for analysis.
See also
References
|