cancel
Showing results for 
Search instead for 
Did you mean: 

How to speed up LMS Imagine.Lab Amesim calculation?

Community Manager Community Manager
Community Manager

Q: How to speed up LMS Imagine.Lab Amesim calculation?

 

A: There are several ways to speed up your model.

 

 

1) Observe discontinuities:

CPU time problems in LMS Imagine.Lab Amesim models come very often from a lot of discontinuities.

Discontinuities are always taken into account in LMS Amesim. To see them, it is necessary to check the option “discontinuities printout” in the run parameters.

  • For each discontinuity you will have information in the “run details”.
  • Each discontinuity will be saved in the results file.

 

Greenshot_2016-03-03_13-22-27.png

 

Processing a lot of discontinuities might slow down the solver. Indeed for each of them the solver has to interpolate backwards, to localilize the discontinuity precisely and to restart from the discontinuity point.

 

Most of the time discontinuities come from tables which are read from ASCII files and interpolated linearly. The linear interpolation process consists in using a linear polynomial to compute a value in a given interval.

Picture1.png

 

Basically, the value y(x) is computed as y(x) = Yi + (Yi+1 - Yi) * (x – Xi) / (Xi+1 - Xi) with x inside the interval [Xi, Xi+1].

It is important to remark that the slope of each interval differs a lot. Thus, when x passes from one interval to another, it is important to catch this event by handling a discontinuity.

 

Picture2.png

 

Submodels of the signal control library can optionally disable this discontinuity handling mechanism.

 

Picture3.png

 

However, disabling the discontinuity handling is only recommended if the data in the table has small variations of their slopes between each interval.

 

Greenshot_2016-03-03_13-19-33.png

 

When deactivating the unnecessary discontinuities you can have huge speed-ups on the CPU time (e.g. a model running in 27s. instead of 227 s.)

 

 

2) The Performance Analyzer tool:

 

 perfo.png

This tool will automatically highlight the component which consumes the most energy in your system. A double-click on the row will label the corresponding component on the sketch, so that it can give you an indication where you should start first with the simplification or speed up modifications.

 

perfo.png

 

 

The Performance Analyzer allows you to check the solver run statistics, the number of discontinuities, the state contributions, all the frequencies and associated damping of the model. This tool can identify inadequate parameters of your model.

 

 

3) Generic cosimulation technique:

Using the hydraulic library:

  • Thanks to the discrete partitioning library, you can split the circuit and use the master/slave approach so that each slave will run as one executable. It will be distributed to available cores by the OS. Using this library will guarantee you to keep the same accuracy in the results. Each slave can be saw as an independant subsystem which will be called whenever necessary.

For any library: (information about the libraries here)

  • Divide the circuit by using generic cosimulation blocks. Then manually set the frequency at which each subsystem is called. The accuracy will depend on these frequencies.

This technique is only applicable to a system which can be divided. The two subsystems should have a limited (or slow) interaction. A demo model ClutchFading illustrates a situation where a split is easily achieved. Thermal effects are coupled to a mechanical model with higher dynamics. Using cosimulation in that context is very efficient.

 

Amesim generic cosimulation demo.png

 

 

4) Reduce complexity:

When multiple small volumes are located at different places in the hydraulic circuit, we usually recommend to create an equivalent larger volume to reduce the number of state equations that the solver generates.

It is also possible to choose simpler submodels if the fidelity and accuracy are still acceptable.

 

 

5) Some general tips:

  • Use of 64 bit compiler.
  • Run your model with difference solver tolerances and observe the quality of the results.