Home > Description
Origins
The EcosimPro Tool project began in 1989 with funds from the European Space Agency (ESA) to simulate environmental control and life support systems for Hermes manned spacecraft.
The multidisciplinary nature of this modelling tool gave rise to its use in many other disciplines: fluids, chemical, control, energy, propulsion, etc. These complex applications have proved that EcosimPro is very robust and ready for use in many other fields.
Summary of capabilities
General capabilities
- Multidisciplinary dynamic simulation
- Powerful symbolic and numeric handling of equations
- Object-oriented modelling language: information hiding, encapsulation, single and multiple inheritance, etc.
- Checking of simulation integrity at any time by means of assertions and variable ranges
- Powerful graphical tool to create new components by dragging and dropping icons from a palette
- Direct access to external functions in FORTRAN, C and C++
- Reusable multidisciplinary libraries: MATH, CONTROL, ELECTRIC and THERMAL
- Optimised to work with thousands of equations
- Automatic C++ code and Microsoft Windows DLL generation
- ActiveX Control generation
- Drag and drop export for outputs (files and graphs) to Office applications
Mathematical capabilities
- Symbolic handling of equations (e.g.: derivation, equations reduction, etc.)
- Robust solvers for non-linear equations (Newton-Raphson) and DAE systems (DASSL and Runge-Kutta). EcosimPro controls the mechanism to interact with these solvers.
- Use of dense and sparse matrix formats depending on the size of the Jacobian matrix. This allows problems with thousands of state variables to be simulated.
- Math wizards for:
-
- Defining design problems
- Defining boundary conditions
- Solving algebraic loops
- Reducing high-index DAE problems
- Clever mathematical algorithms based on graph theory to minimize the number of unknown variables and equations.
- Powerful discrete events handler to detect when events occur.
- Powerful root finder mechanism based on Zbrent and Illinois methods. It is completely transparent to the user so the exact moment of the crossover of discrete events can be determined.
EcosimPro modelling language
EcosimPro has a modelling language called EL (EcosimPro Language). This language is used to model your dynamic systems.
Its main advantages are
- Non-causal modelling
- Simple syntax to model your components
- Object-oriented simulation language, with single and multiple inheritance among components, aggregation, virtual equations, etc
- Any kind of discrete event from your system can be modelled
- Integrity checking of simulation by using assertions and variable ranges to check values at any time
- Connection ports to simplify component definition and topology
- Powerful experiment language to define steady-states studies, transient studies and parametric studies
- Experiment language for creating multiple simulation cases for the same model in the same experiment. The modeller can calculate sequentially steady-states and transients
Other advantages
- Multidimensional arrays
- Tables for 1D, 2D and 3D
- Enumerative types
- Logical operators AND, OR, NOT for logic expressions
- Normal and delayed assignments
- Mathematical library with classical elementary functions (sin, cos, tan, sinh, cosh, tanh, atan, log, log10, sqrt, etc.)
- Statements expand to model arrays of equations
- Declarative programming for input equations. The format of the input equation you use doesn't matter, EcosimPro will transform it symbolically when necessary
Connectivity
- Simulation results are directly read by standard applications such as Excel, Word, etc.
- Easy reuse of models: The final code automatically generated is standard C++ which can be compiled with any C++ compiler or easily embedded in other software as a C++ class
- An ActiveX control is generated to connect the final model to any Office application. Run your simulations from Excel. Applications connected with the EcosimPro model are easy to program using Visual Basic, Visual C++, etc.
- Real-time simulation with the C++ code generated






