TRUE :
Temporal Reasoning Universal Elaboration
TRUE,
a System dynamics software
proposed by TrueWorld 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, decisionmaking
 conflict management dependent on scarce resources
 risk management dependent on Earth resources
 Macroeconomics, Microeconomics, 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 n^{n}
 system dynamics modeling
in discrete and continuous time (Euler)
 dynamic optimization using retrocalculation 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.
 20032006 : new features were implemented like vectorizations, dynamic optimization,
3D animated render with OpenGL,
speech synthesis.
 20072011 : GUI improvement, adding new OpenGL primitives
 20122014 : 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, multiview, 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 backcalculation
 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 Wlanguage 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, multiview, 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 retrocalculation 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
