\newpage \noindent {\bf \huge system}\\  \rule[3pt]{\textwidth}{1pt}\\
\begin{description}
 \item[Purpose]\ \newline \newline 
Constructor for the system abstract class

\end{description}

\begin{description}
 \item[Synopsis]\ \newline \newline 
{\tt m=system}\\ 
{\tt m=system(name,n\_in,n\_out)}\\ 
\end{description}

\begin{description}
 \item[Description]\ \newline \newline 
{\tt m=system} 
creates a new general system skeleton
\vspace{4mm}\\ 
\hspace{2mm}
{\tt m=system(name,n\_in,n\_out)} 
creates a new general system with {\tt n\_in} inputs
and {\tt n\_out} outputs. The name {\tt name} is associated to it.
\end{description}

\begin{description}
 \item[Methods]\ \\ 
\begin{itemize}
\item {\tt add\_data}   add a input-output data set to the model
\item {\tt add\_mapping}   add a mapping to a system object
\item {\tt clone\_output}   clone the mapping associated to an output

\item {\tt denormalise}   normalises the system M
\item {\tt display}   Display an object of class system

\item {\tt eval}   computes the value of the system for some regressor
\item {\tt get}   gets the value of the attribute of an object
\item {\tt identify}   Identify the system from data (abstact method)

\item {\tt interp\_model}   computes the jacobian of the model by interpoling local models
\item {\tt jacob\_inputs}   computes the jacobian of the model
\item {\tt jacob\_params}   computes the jacobian of the model
\item {\tt normalise}   normalises the system M
\item {\tt plot}   plot the system

\item {\tt set}   Set object properties
\end{itemize}
\end{description}

\begin{description}
 \item[See also]\ \newline \newline 


\end{description}
\newpage \noindent {\bf \huge add\_data}\\  \rule[3pt]{\textwidth}{1pt}\\
\begin{description}
 \item[Purpose]\ \newline \newline 
add a input-output data set to the model
\end{description}

\begin{description}
 \item[Synopsis]\ \newline \newline 
{\tt m=add\_data(m)}\\ 
{\tt m=add\_data(m,data,t)}\\ 
\end{description}

\begin{description}
 \item[Description]\ \newline \newline 
{\tt m=add\_data(m)} 
removes all the input-output data from the model {\tt M}.
\vspace{4mm}\\ 
\hspace{2mm}
{\tt m=add\_data(m,data,t)} 
puts {\tt data} into the field 'data' of the model {\tt m},
{\tt data} must be a data object. The optional variable {\tt t}
specifies the sampling time of the model (default continuous = 0).
\end{description}

\begin{description}
 \item[Remarks]\ \newline \newline 
This function is used to 
inizialize the System 'data' field with the model 
input-output data. The data is stored in the 'data' field which store. 

\end{description}
\newpage \noindent {\bf \huge add\_mapping}\\  \rule[3pt]{\textwidth}{1pt}\\
\begin{description}
 \item[Purpose]\ \newline \newline 
add a mapping to a system object
\end{description}

\begin{description}
 \item[Synopsis]\ \newline \newline 
{\tt m=add\_mapping(m)}\\ 
{\tt m=add\_mapping(m,{mapping})}\\ 
\end{description}

\begin{description}
 \item[Description]\ \newline \newline 
{\tt m=add\_mapping(m)} 
clears the mapping field of the object
\vspace{4mm}\\ 
\hspace{2mm}
{\tt m=add\_mapping(m,\{mapping\})} 
\end{description}

\begin{description}
 \item[Remarks]\ \newline \newline 
This method adds a mapping to
the list of the current mappings of the system object. The links
field, which connects the mapping with the output, must be set using
the {\tt set} method. 

\end{description}
\newpage \noindent {\bf \huge clone\_output}\\  \rule[3pt]{\textwidth}{1pt}\\
\begin{description}
 \item[Purpose]\ \newline \newline 
clone the mapping associated to an output

\end{description}

\begin{description}
 \item[Synopsis]\ \newline \newline 
{\tt m = clone\_output(m,j,label)}\\ 
\end{description}

\begin{description}
 \item[Description]\ \newline \newline 
{\tt m = clone\_output(m,j,label)} 
clones the mapping associated to the output
{\tt j}, and gives it the new name specified by
{\tt new\_name}. 
\end{description}
\newpage \noindent {\bf \huge denormalise}\\  \rule[3pt]{\textwidth}{1pt}\\
\begin{description}
 \item[Purpose]\ \newline \newline 
normalises the system M
\end{description}

\begin{description}
 \item[Synopsis]\ \newline \newline 
{\tt m=normalise(m)}\\ 
\end{description}

\begin{description}
 \item[Description]\ \newline \newline 
{\tt m=normalise(m)} 
denormalises the system {\tt m}
\end{description}

\begin{description}
 \item[Remarks]\ \newline \newline 
This function denormalises a mapping in order to make fit its limits
to the original values before normalisation.

\end{description}
\newpage \noindent {\bf \huge display}\\  \rule[3pt]{\textwidth}{1pt}\\
\begin{description}
 \item[Purpose]\ \newline \newline 
Display an object of class system

\end{description}

\begin{description}
 \item[Synopsis]\ \newline \newline 
{\tt display(m)}\\ 
\end{description}

\begin{description}
 \item[Description]\ \newline \newline 
{\tt display(m)} 
Display the object m of class system
%
\end{description}

\begin{description}
 \item[See also]\ \newline \newline 


\end{description}
\newpage \noindent {\bf \huge eval}\\  \rule[3pt]{\textwidth}{1pt}\\
\begin{description}
 \item[Purpose]\ \newline \newline 
computes the value of the system for some regressor
\end{description}

\begin{description}
 \item[Synopsis]\ \newline \newline 
{\tt out=eval(m,r,j)}\\ 
\end{description}

\begin{description}
 \item[Description]\ \newline \newline 
{\tt out=eval(m,r,j)} 
returns the value {\tt out} of the output(s) {\tt j} of
mapping {\tt m} given the input regressor {\tt r}.
\end{description}
\newpage \noindent {\bf \huge get}\\  \rule[3pt]{\textwidth}{1pt}\\
\begin{description}
 \item[Purpose]\ \newline \newline 
gets the value of the attribute of an object
\end{description}

\begin{description}
 \item[Synopsis]\ \newline \newline 
{\tt d = get(m,label,opt)}\\ 
\end{description}

\begin{description}
 \item[Description]\ \newline \newline 
{\tt d = get(m,label,opt)} 
gets the value of the attribute {\tt label}
associated to the object {\tt m} and return it inside {\tt d}.
The following codes are recognised:
\\  
\begin{tabular}{lp{12cm}}
{\tt name}: & returns the name of the object \\ 
{\tt n\_in}: & returns the number of inputs of the system \\ 
{\tt n\_out}: & returns the number of outputs of the system \\ 
{\tt data}: & returns the data set linked to the system \\ 
{\tt T}: & returns the sampling period of the discrete system, 0 if continuous \\ 
{\tt mapping}: & returns the array of mappings \\ 
{\tt links}: & returns the links array which defines which output is computed by which mapping \\ 
{\tt limits}: & returns the bounds of the inputs and outputs \\ 
{\tt userData}: & returns the 'userData' field \\ 
{\tt opt}: & returns the 'opt' field \\ 
{\tt date}: & returns the date of creation of the object \\ 
{\tt mapfield}: & let the user access directly property of the mappings. When used, opt
must contain a 2 elements cell array {{\tt n} 'property'}. {\tt n} is the index of the 
mapping and 'property' is the name of the property which has to be accessed. An even more convenient
way to access mappings' fields is a achieved through the syntax s{n}.property. \\ 
{\tt numparams}: & returns the number of parameters to be optimised \\ 
{\tt params}: & returns the parameters to be optimised \\ 
\end{tabular} \\ 

\end{description}

\begin{description}
 \item[See also]\ \newline \newline 
set

\end{description}
\newpage \noindent {\bf \huge identify}\\  \rule[3pt]{\textwidth}{1pt}\\
\begin{description}
 \item[Purpose]\ \newline \newline 
Identify the system from data (abstact method)

\end{description}

\begin{description}
 \item[Synopsis]\ \newline \newline 
{\tt m = identify(m,j,options)}\\ 
\end{description}

\begin{description}
 \item[Description]\ \newline \newline 
{\tt m = identify(m,j,options)} 
performs the identification of the model {\tt m} using
the data embeded inside the object for the output
{\tt j}. Use {\tt options} in order
to specify the identification method and options.
\end{description}
\newpage \noindent {\bf \huge interp\_model}\\  \rule[3pt]{\textwidth}{1pt}\\
\begin{description}
 \item[Purpose]\ \newline \newline 
computes the jacobian of the model by interpoling local models
\end{description}

\begin{description}
 \item[Synopsis]\ \newline \newline 
{\tt interp\_model(m,r,j)}\\ 
\end{description}

\begin{description}
 \item[Description]\ \newline \newline 
{\tt interp\_model(m,r,j)} 
computes for output {\tt j} the jacobian of
the model {\tt m} with respect to the regressor of the
system at point {\tt r}.
\end{description}

\begin{description}
 \item[Remarks]\ \newline \newline 
The procedure for computing the jacobian depends on the underlying representation 
of the model. The result {\tt out} is an array of size number of outputs * number of inputs
containing the derivatives of the outputs with respect to the inputs.

\end{description}
\newpage \noindent {\bf \huge jacob\_inputs}\\  \rule[3pt]{\textwidth}{1pt}\\
\begin{description}
 \item[Purpose]\ \newline \newline 
computes the jacobian of the model
\end{description}

\begin{description}
 \item[Synopsis]\ \newline \newline 
{\tt jacob\_inputs(m,r,j)}\\ 
\end{description}

\begin{description}
 \item[Description]\ \newline \newline 
{\tt jacob\_inputs(m,r,j)} 
computes for output {\tt j} the jacobian of
the model {\tt m} with respect to the regressor of the
system at point {\tt r}.
\end{description}

\begin{description}
 \item[Remarks]\ \newline \newline 
The procedure for computing the jacobian depends on the underlying representation 
of the model. The result {\tt out} is an array of size number of outputs * number of inputs
containing the derivatives of the outputs with respect to the inputs.

\end{description}
\newpage \noindent {\bf \huge jacob\_params}\\  \rule[3pt]{\textwidth}{1pt}\\
\begin{description}
 \item[Purpose]\ \newline \newline 
computes the jacobian of the model
\end{description}

\begin{description}
 \item[Synopsis]\ \newline \newline 
{\tt jacob\_params(m,r)  }\\ 
{\tt jacob\_params(m,r,j)  }\\ 
\end{description}

\begin{description}
 \item[Description]\ \newline \newline 
{\tt jacob\_params(m,r)  } 
computes for each output the jacobian of
the model with respect to the parameters at regressor {\tt r}.
\vspace{4mm}\\ 
\hspace{2mm}
{\tt jacob\_params(m,r,j)  } 
computes for output(s) {\tt j} the jacobian of
the model with respect to the parameters at regressor {\tt regressor}.
\end{description}
\newpage \noindent {\bf \huge normalise}\\  \rule[3pt]{\textwidth}{1pt}\\
\begin{description}
 \item[Purpose]\ \newline \newline 
normalises the system M
\end{description}

\begin{description}
 \item[Synopsis]\ \newline \newline 
{\tt m=normalise(m)}\\ 
\end{description}

\begin{description}
 \item[Description]\ \newline \newline 
{\tt m=normalise(m)} 
normalises the system {\tt m}
\end{description}

\begin{description}
 \item[Remarks]\ \newline \newline 
This function normalizes a mapping in order to make fit its limits
to the interval [0,1]

\end{description}
\newpage \noindent {\bf \huge plot}\\  \rule[3pt]{\textwidth}{1pt}\\
\begin{description}
 \item[Purpose]\ \newline \newline 
plot the system

\end{description}

\begin{description}
 \item[Synopsis]\ \newline \newline 
{\tt f=plot(m)}\\ 
\end{description}

\begin{description}
 \item[Description]\ \newline \newline 
{\tt f=plot(m)} 

\end{description}

\begin{description}
 \item[See also]\ \newline \newline 


\end{description}
\newpage \noindent {\bf \huge set}\\  \rule[3pt]{\textwidth}{1pt}\\
\begin{description}
 \item[Purpose]\ \newline \newline 
Set object properties
\end{description}

\begin{description}
 \item[Synopsis]\ \newline \newline 
{\tt set(m,'AttrName1',AttrValue1,'AttrName2',AttrValue2,...)}\\ 
{\tt m\_out = set(m,'AttrName1',AttrValue1,'AttrName2',AttrValue2,...)}\\ 
\end{description}

\begin{description}
 \item[Description]\ \newline \newline 
{\tt set(m,'AttrName1',AttrValue1,'AttrName2',AttrValue2,...)} 
sets the value of the attribute {\tt AttrName1}, {\tt AttrName2}, ...
associated to the object {\tt m}.
\vspace{4mm}\\ 
\hspace{2mm}
{\tt m\_out = set(m,'AttrName1',AttrValue1,'AttrName2',AttrValue2,...)} 
sets the value of the attribute {\tt AttrName1}, {\tt AttrName2}, ...
associated to the object {\tt m} and return the modified model inside m\_out. The original
model is not modified.
The following {\tt AttrName} are recognised:
\\  
\begin{tabular}{lp{12cm}}
{\tt name}: & sets the name of the system \\ 
{\tt n\_in}: & sets the number of inputs of the system \\ 
{\tt n\_out}: & sets the number of outputs of the system \\ 
{\tt data}: & sets the data set linked to the system \\ 
{\tt T}: & sets the sampling period of the discrete system, 0 if continuous \\ 
{\tt mapping}: & sets the array of mappings \\ 
{\tt links}: & sets the links array which defines which output is computed by which mapping \\ 
{\tt limits}: & sets the limits of the domain of definition
of the mapping. The value must be a {\tt 2*n\_in} matrix where
the upper and lever saturation level are \\ 
{\tt userData}: & sets the 'userData' field \\ 
{\tt opt}: & sets the 'opt' field \\ 
{\tt date}: & sets the date of creation of the object \\ 
{\tt mapfield}: & let the user access directly property of the mappings. When used, {\tt value}
must contain a 3 elements cell array {{\tt n} 'property' {\tt mapvalue}}. {\tt n} is the index of the 
mapping, 'property' is the name of the property which has to be changet and {\tt mapvalue} is the new value. An even more convenient
way to change mappings' fields is a achieved through the syntax s{n}.property = mapvalue. \\ 
{\tt params}: & sets the parameters to be optimised \\ 
\end{tabular} \\ 

\end{description}

\begin{description}
 \item[See also]\ \newline \newline 
get

\end{description}
