scicos_model
Define a model structure
model
Scilab object including simulation information concerning the features of the block. These information are used on the simulator to simulate the block. Most of these values are propagated to the compiled cpr representation.
Type : scilab tlist of type "model"
with fields :
sim,
in,
in2,
intyp,
out,
out2,
outtyp,
evtin,
evtout,
state,
dstate,
odstate,
rpar,
ipar,
opar,
blocktype,
firing,
dep_ut,
label,
nzcross,
nmode,
equations and
uid.
sim
A list containing two elements. The first element is a string containing the name of the computational function (C, Fortran,or Scilab). The second element is an integer specifying the type of the computational function.
Currently type 4
and 5
are used, but older types continue to work to ensure backward compatibility. For some older case, sim can be a single string and that means that the type is supposed to be 0
.
Size : 2.
Type : Scilab list.
in
A vector specifying the number and size of the first dimension of regular input ports indexed from top to bottom of the block. If no input port exist in==[]
.
The size can be negative, equal to zero or positive :
If a size is less than zero, the compiler will try to find the appropriate size.
If a size is equal to zero, the compiler will affect this dimension by added all positive size found in that vector
If a size is greater than zero, then the size is explicitly given.
Size : number of regular input ports.
Type : column vector of integer numbers.
Compiled to : cpr.sim.inpptr , cpr.sim.inplnk and cpr.state.outtb .
in2
A vector specifying the second dimension of regular input ports indexed from top to bottom of the block. in
with in2
formed then the regular input sizes matrix. For compatibility, this dimension can stay empty ([]
). That means that the dimensions of input ports will be [in,1]
The size can be negative, equal to zero or positive :
If a size is less than zero, the compiler will try to find the appropriate size.
If a size is equal to zero, the compiler will affect this dimension by added all positive size found in that vector.
If a size is greater than zero, then the size is explicitly given.
Size : number of regular input ports.
Type : column vector of integer numbers.
Compiled to : cpr.sim.inpptr , cpr.sim.inplnk and cpr.state.outtb .
intyp
A vector specifying the types of regular input ports. Its sizes is equal to the sizes of in
.
The types of regular input ports can be :
- 1
real matrix,
- 2
complex matrix,
- 3
int32 matrix,
- 4
int16 matrix,
- 5
int8 matrix,
- 6
uint32 matrix,
- 7
uint16 matrix,
- 8
uint8 matrix
Size : number of regular input ports.
Type : column vector of integer numbers.
Compiled to : cpr.sim.inpptr , cpr.sim.inplnk and cpr.state.outtb .
out
A vector specifying the number and size of the first
dimension of regular output ports indexed from top to
bottom of the block. If no output port exist out==[]
.
The size can be negative, equal to zero or positive :
If a size is less than zero, the compiler will try to find the appropriate size.
If a size is equal to zero, the compiler will affect this dimension by added all positive size found in that vector.
If a size is greater than zero, then the size is explicitly given.
Size : number of regular output ports.
Type : column vector of integer numbers.
Compiled to : cpr.sim.outptr , cpr.sim.outlnk and cpr.state.outtb .
out2
A vector specifying the second dimension of regular output ports indexed from top to bottom of the block. out
with out2
formed then the regular output sizes matrix. For compatibility, this dimension can stay empty ([]
). That means that the dimensions of output ports will be out,1
That dimension can be negative, equal to zero or positive :
If a size is less than zero, the compiler will try to find the appropriate size.
If a size is equal to zero, the compiler will affect this dimension by added all positive size found in that vector.
If a size is greater than zero, then the size is explicitly given.
Size : number of regular output ports.
Type : column vector of integer numbers.
Compiled to : cpr.sim.outptr , cpr.sim.outlnk and cpr.state.outtb .
outtyp
A vector specifying the types of regular output ports. Its sizes is equal to the sizes of out
.
The types of regular output ports can be :
- 1
real matrix,
- 2
complex matrix,
- 3
int32 matrix,
- 4
int16 matrix,
- 5
int8 matrix,
- 6
uint32 matrix,
- 7
uint16 matrix,
- 8
uint8 matrix
Size : number of regular output ports.
Type : column vector of integer numbers.
Compiled to : cpr.sim.outptr , cpr.sim.outlnk and cpr.state.outtb .
evtin
A vector specifying the number and sizes of activation inputs. Currently activation ports can be only of size one. If no event input port exists evtin must be equal to []
.
Size : number of input event ports.
Type : column vector of integer numbers.
evtout
A vector specifying the number and sizes of activation outputs. Currently activation ports can be only of size one. If no event output port exists evtout
must be equal to []
.
Size : number of output event ports.
Type : column vector of integer numbers.
Compiled to : cpr.sim.ordptr , cpr.sim.ordclk, cpr and state.evtspt .
state
Vector containing initial values of continuous-time state. Must be []
if no continuous state.
Size : number of continuous-time state.
Type : column vector of real numbers.
dstate
Vector containing initial values of discrete-time state. Must be []
if no discrete state.
Size : number of discrete-time state.
Type : column vector of real numbers.
odstate
List containing initial values of objects state. Must be list()
if no objects state. Objects state can be any types of scilab variable.
In the computational function case of type 4
(C blocks)
only elements containing matrix of real
, complex
, int32
, int16
,int8
,uint32
, uit16
and uint8
will be correctly provided for reading or writing.
Size : number of objects state.
Type : scilab list of scilab objects.
rpar
The vector of floating point block parameters. Must be []
if no floating point parameters.
Size : number of real parameters.
Type : column vector of real numbers.
ipar
The vector of integer block parameters. Must be []
if no integer parameters.
Size : number of integer parameters.
Type : column vector of integer numbers.
opar
List of objects block parameters. Must be list()
if no objects parameters. Objects parameters can be any types of scilab variable.
In the computational function case of type 4
(C blocks)
only elements containing matrix of real
, complex
, int32
, int16
,int8
,uint32
, uit16
and uint8
will be correctly provided for reading.
Size : number of objects parameters.
Type : list of scilab object.
blocktype
Character that can be set to 'c'
or 'd'
indifferently for standard blocks. 'x'
is used if we want to force the computational function to be called during the simulation phase even if the block does not contribute to computation of the state derivative.
'l'
, 'm'
and 's'
are reserved. Not to be used.
Size : 1.
Type : Character.
firing
Vector of initial event firing times of size equal to the number of activation output ports (see evout
). It contains output initial event dates (Events generated before any input event arises). Negative values stands for no initial event on the corresponding port.
Size : number of output event ports.
Type : column vector of real numbers.
dep_ut
Boolean vector [dep_u, dep_t]
where values are :
dep_t
%t
if block is always active. Output depends continuously of the time.For instance, the GENSIN_f block computes
y=sin(t)
sodep_ut=[%f %t]
.dep_u
%t
if block has direct feed-through, i.e., at least one of the outputs depends directly (not through the states) on one of the inputs. In other words, when the computational function is called with flag1
, the value of an input is used to compute the output.For instance, the SUM_f block computes
y=u1+u2
sodep_ut=[%t %f]
.
Size : 2.
Type : Boolean vector.
label
String that defines a label. It can be used to identify a block in order to access or modify its parameters during simulation.
Size : 1.
Type : string.
nzcross
Number of zero-crossing surfaces.
Size : Number of zero-crossing surfaces.
Type : column vector of integer numbers.
nmode
Length of the mode register. Note that this gives the size of the vector mode and not the total number of modes in which a block can operate in. Suppose a block has 3 modes and each mode can take two values, then the block can have up to 23=8 modes.
Size : Number of modes.
Type : column vector of integer numbers.
equations
Used in case of implicit blocks.
Data structure of type modelica which contains modelica code description if any. That list contains four entries : model, inputs, outputs and parameters.
model
a string given the name of the file that contains the modelica function.
inputs
a column vector of strings that contains the names of the modelica variables used as inputs.
outputs
a column vector of strings that contains the names of the modelica variables used as outputs.
parameters
a list with two entries. The first is a vector of strings for the name of modelica variable names used as parameters and the second entries is a list that contains the value of parameters.
Names of modelica states can also be informed with parameters. In that case a third entry is used to do the difference between parameters and states.
For i,e :
mo.parameters=list(['C','v'],list(C,v),[0,1])
means that C
is a parameter(0
) of value C
, and v
is a state(1
) with initial value v
.
Size : 5.
Type : scilab list.
uid
Unique identifier string of the block (2^16 per host)
This identifier will be only set using the Xcos GUI. To set a specific value at bloc allocation, use the following code:
jimport("java.rmi.server.UID"); juid = jnewInstance("java.rmi.server.UID"); uid = juid.toString()
Size : 1x1.
Type : String.
Report an issue | ||
<< scicos_link | Structure de données Scilab/Xcos | scicos_params >> |