Temporal Reasoning Universal Elaboration
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,
- Mathematics, traditional Physics, Numerical Analysis,
- Relative Mechanic, social mathematics
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 :
graphic interface and 3D modeller : Multibody Dynamics Simulation, Multibody system,
- 2001(december) : beginning of the development :
an idea based on the Equilibrium,
the Nash equilibrium,
the conservation of mass,
the mass balance, the chemical
- 2003-2006 : new features were implemented like vectorizations, dynamic optimization,
3D animated render with OpenGL,
- 2007-2011 : GUI improvement, adding new OpenGL primitives
- 2012-2014 : GUI improvement, 3D model display, recursives boxes, new functions
- windows 98/NT/2000/XP
- Vista (speech synthesis only in English)
- Windows7 & 8 (speech synthesis after installing Microsoft
MSAgentWin7 and MSAgent)
Database name : hyperfile from Windev
- the global database contains 38 files, shared
dictionary and trash included
- each model contains 35 files
- 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
- frames, boxes, multi-view, groups
- 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,...
- 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
- inertia and memory of the model : delay
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
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,
- texturing, blending, ...
- magnetic grid, values calibration
- Animated 2D or 3D model display, zoom, multi-view, panorama
- rename, delete, undelete, copy and paste with preservation of integrity
- 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
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)
workspace and symbols
version and features
TRUE is free of charge, available in French and in English.
In a model, if the time unit is the
month, it is possible to calculate it for a final time = 36, i.e. 3
Defining the temporality is define the basic
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
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
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.
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 ;
source stock -= (value/TimeStepI), target stock += (value/TimeStepI), at the end of the unit of time, if the parameter Rate is enable.
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.
- 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
If a mirror stock is linked to all the stocks of
its value will remain constant, according to the principle of
- 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.
There is circularity when two flows
are dependent on each other in the same time ;
at least 3 equations with successive chronologies are required.
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
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.