International Simulation Limited
Introduction to ESL
The ESL Simulation Language is a powerful and flexible software package used to simulate complex dynamic systems. It comprises the simulation language itself (ESL) and its graphical development environment - ESL-Studio.
Software Support
The main documentation for ESL consists of 3 PDF documents:
- ESL User Guide and Tutorial for an introduction to the graphical integrated development environment (ESL-Studio) and to writing simulations in the ESL language
- ESL Development Guide for how to develop ESL applications, including a full discussion on using the ESL language for simulation and analysis and how to create applications with embedded ESL simulations
- ESL Reference Manual for a formal specification of the ESL language and descriptions of the library of ESL components provided
The current versions of these documents are available here as well as archived versions for previous releases of ESL.
* Note: For use in ESL-Pro, additional software compilers must be installed to build ESL simulations using C++/Fortran as direct executables or embedded in applications. For the requirements for these see the ESL Development Guide.
ESL-Studio
Using ESL-Studio's graphical user interface you can manage each stage of the simulation activity.
For further introduction to ESL-Studio go here.
The ESL Simulation Language
ESL was written to meet the simulation requirements of the European Space Agency. It is a general purpose Continuous System Simulation Language (CSSL) with discrete event capabilities and may be applied in any field where dynamic systems are to be studied.
The main characteristics of ESL are:
- Provision of an Interpreter for fast program development, and a Translator (providing C++ or Fortran code) for efficient production runs.
- A well defined lexical structure.
- Separate program units may be used to describe the system and the experiment to be performed on it.
- Modular model concepts in the form of submodels to define independent parts of the system within a hierarchical structure.
- Parallel processor segmentation concepts to enable models to be partitioned into segments and executed concurrently in a multiple-processor environment.
- Techniques for the accurate description and detection of discontinuities.
- Steady-state finding and linearization facilities.
- Full matrix/vector operations.
- Derivative notation, integral notation and transfer function notation for describing differential equations.
- Comprehensive run-time and post-run graphical display of results.
- Automatic ordering of the model definition equations.
- Eight numerical integration algorithms including three stiff methods.
- Extensive diagnostic checks during compilation to determine model "correctness".
- C++, C or FORTRAN routines may be incorporated into a simulation that has been created through the translator route.
- ESL segments may be run embedded in a non-ESL C++ or FORTRTAN main program.
- Facilities to dynamically communicate with other program modules via FORTRAN common blocks or C++ structures.
- Full range of standard procedural facilities including file and character handling.
- Extensive library of ESL submodels which may be incorporated into user programs.
A properly conducted simulation study can make a valuable contribution to decision making processes. On the other hand, an improperly conducted study can give misleading information which may lead to an inappropriate decision and extremely expensive consequences.
It is the user's responsibility to conduct a simulation study in a proper manner, and to perform tests that confirm simulation results are acceptable in the context on any particular decision.
Simulation software tools such as ESL, or in fact any tool, even a garden spade, can be used correctly to produce desired results, or used incorrectly with disastrous results
A simulation study comprises the following phases:
- Derivation of mathematical model of dynamic system.
- Conversion and verification of mathematical model as ESL program.
- Simulation execution.
- Validation and analysis of simulation results.
Errors can be introduced during any of the above phases. The mathematical model must adequately represent the system in order to be able to satisfy the objects of the study. The ESL program should correspond to the mathematical model exactly, and the simulation execution must not introduce unacceptably large errors. You will appreciate, perhaps, how errors may be introduced during the first two phases of a simulation. The origin of errors introduced during simulation execution is less clear, and needs some explanation.
The heart of a simulation is the numerical integration process. The very nature of numerical integration is such that it produces results which are defined as an "approximate" solution to differential equations. It is the user's responsibility to ensure that results are within acceptable limits. This means that the integration should always be operating within its stability bounds, and the truncation, round-off and global errors should always be within acceptable limits. Basically this means the selection of an appropriate integration algorithm, and step-length control parameters. Variable-step integration attempts to achieve these requirements, but is not foolproof - there will always be problems that confound it. At best such methods give a good first approximation to the correct step-length, and it is the user's responsibility to confirm that this approximation is acceptable. For example, a useful process with fixed-step explicit integration is to repeat a simulation with a step-length half that of the first simulation attempt. Only if the results are sufficiently close should the original step-length be regarded as acceptable.
Even when the integration is working properly some dynamic systems can cause erratic simulation behaviour because the real system is itself highly unstable, and the simulation represents this instability. In these cases the slightest integration error, or in fact any small perturbation, can be magnified and lead to a gross error. Consider a circus acrobat balancing on a ball on a tightrope. This is highly unstable as the smallest error by the acrobat could cause a fall. The simulation of such a system could introduce a small simulation error which would have the same effect as an error by the acrobat, that is a fall. In this case it is the simulation that introduced the error and was the cause of the fall.
Two words "verification" and "validation" are used to describe processes in a proper simulation study which help to ensure the integrity of the results.
- The "verification" process is used to ensure that the simulation results sufficiently accurately represent the behaviour of the mathematical model (not the dynamic system).
- The "validation" process is used to ensure that the simulation results sufficiently accurately represent the behaviour of the real dynamic system.
Verification of a simulation study has the restricted objective of ensuring the integrity of the solution of the mathematical model. This includes: confirmation that results obtained from mathematical analysis of the model can be produced by simulation; that the numerical integration is giving stable answers within acceptable error bounds; and tests to confirm the behaviour of the simulation actually reflects that expected from the mathematical model.
Validation of a simulation study has the overall objective of ensuring that the simulation results sufficiently accurately represent the behaviour of the dynamic system. This is achieved by comparing simulated results with known, or predicted, performance of the dynamic system, and where possible, comparing real system data to the simulated results. This process must confirm the mathematical model adequately represents the system, and also perform the processes described as verification.
Even following the above processes problems can occur. For example, the simulated system may encounter a situation which has not been the subject of a specific validation test, possibly because little or no information is available about this particular situation. In such cases great care must be exercised in the interpretation of any results.
In this section we have emphasised the problems which may be encountered, and the rigorous procedures which must be followed if decisions are to be made based on results of simulation. In conclusion, it should be noted that ESL probably provides a better environment than any comparable software for helping the user to perform a validated simulation study.