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:

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:

User Liability

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:

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.

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.