Scilab Function
fr - eng
scicosim - Scicos (batch) simulation function

### Module

- Scicos

### Description

Simulator for Scicos compiled diagram.
Usually scicosim is called by Scicos to perform simulation of a diagram.
But scicosim may also be called outside Scicos. Typical usage in such a case may be :

> 1- Use Scicos to define a block diagram, compile it.
> 2- Save the compiled diagram using Save,SaveAs Scicos menus.
> 3- In Scilab, load saved file using load function. You get variables scicos_ver, scs_m, %cpr scs_m is the diagram Scicos main data structure.
> %cpr is the data structure containing (state,sim,cor,corinv) if the diagram had been compiled before saved, else %cpr=list().
> 4- Extract state, sim out of cpr.
> 5- Execute [state,t]=scicosim(state,0,tf,sim,'start',tol) for initialisation.
> 6- Execute [state,t]=scicosim(state,0,tf,sim,'run',tol) for simulation from 0 to tf.
> Many successive such calls may be performed changing initial and final time.
> 7- Execute [state,t]=scicosim(state,0,tf,sim,'finish',tol) at the very end of the simulation to close files,...

For advanced user it is possible to "manually" change some parameters or state values.

### Calling Sequence

    [state,t] = scicosim(state,tcur,tf,sim,str,tol)

### Parameters

- state : Scilab tlist containing initial state. Usually generated by Scicos Compile. After loading a compiled .cos file, it can be found in %cpr.state.
- tcur : starting time of simulation. At the beginning it must be zero.
- tf : final simulation time.
- sim : Scilab tlist containing compilation results. Usually generated by Scicos Compile. After loading a compiled .cos file, it can be found in %cpr.sim.
- str : 'start' , 'run' or 'finish'. Function must be first called with 'start', then with 'run' one or more times, and finally with 'finish'.
- tol : vector [atol,rtol,ttol,deltat,realtimescale,solver,hmax] where atol, rtol are respectively the absolute and relative tolerances for ode or dae solver, ttol is the precision on event dates (must be very small), deltat is maximum integration interval for each call to ode solver (sometimes needed to force restaring the call to solver), realtimescale is the correspondance between simulation time and real time (0 means no slowing down), solver is the choice of solver (0: lsodar, 100: daskr), hmax: max step size used by solver. Default: [0.0001,1.000E-06,1.000E-10,100001,0,0]
- state : state after simulation
- t : final reached time. Usually tf but not always.

### See Also

- scicos_simulate - Function for running scicos simulation in batch mode (Scilab Function)
- scicos - Block diagram editor and GUI for the hybrid simulator (Scilab Function)

### Authors

- Ramine Nikoukhah INRIA
- Alan Layec INRIA