Objects are instances of model classes. Each class is a blueprint that defines the following information about your model:
How the object stores data
Which operations you can perform on the object
This toolbox includes nine classes for representing models.
For example, idss
represents
linear statespace models and idnlarx
represents
nonlinear ARX models. For a complete list of available model objects,
see Available Linear Models and Available Nonlinear Models.
Model properties define how a model object
stores information. Model objects store information about a model,
such as the mathematical form of a model, names of input and output
channels, units, names and values of estimated parameters, parameter
uncertainties, and estimation report. For example, an idss
model
has an InputName
property for storing one or more
input channel names.
The allowed operations on an object are called methods.
In System Identification Toolbox™ software, some methods have the
same name but apply to multiple model objects. For example, step
creates a step response plot for
all dynamic system objects. However, other methods are unique to a
specific model object. For example, canon
is
unique to statespace idss
models and linearize
to
nonlinear blackbox models.
Every class has a special method, called the constructor,
for creating objects of that class. Using a constructor creates an
instance of the corresponding class or instantiates the
object. The constructor name is the same as the class name.
For example, idss
and idnlarx
are
both the name of the class and the name of the constructor for instantiating
the linear statespace models and nonlinear ARX models, respectively.
You use model constructors to create a model object at the command line by specifying all required model properties explicitly.
You must construct the model object independently of estimation when you want to:
Simulate or analyze the effect of model parameters on its response, independent of estimation.
Specify an initial guess for specific model parameter values before estimation. You can specify bounds on parameter values, or set up the auxiliary model information in advance, or both. Auxiliary model information includes specifying input/output names, units, notes, user data, and so on.
In most cases, you can use the estimation commands to both construct
and estimate the model—without having to construct the model
object independently. For example, the estimation command tfest
creates a transfer function model
using data and the number of poles and zeros of the model. Similarly, nlarx
creates a nonlinear ARX model using
data and model orders and delays that define the regressor configuration.
For information about how to both construct and estimate models with
a single command, see Model Estimation Commands.
In case of greybox models, you must always construct the model object first and then estimate the parameters of the ordinary differential or difference equation.
The following table summarizes the model constructors available in the System Identification Toolbox product for representing various types of linear models.
After model estimation, you can recognize the corresponding model objects in the MATLAB^{®} Workspace browser by their class names. The name of the constructor matches the name of the object it creates.
For information about how to both construct and estimate models with a single command, see Model Estimation Commands.
Summary of Model Constructors
Model Constructor  Resulting Model Class 

idfrd  Nonparametric frequencyresponse model. 
idproc  Continuoustime, loworder transfer functions (process models). 
idpoly 
Linear inputoutput polynomial models:

idss 
Linear statespace models. 
idtf 
Linear transfer function models. 
idgrey  Linear ordinary differential or difference equations (greybox models). You write a function that translates user parameters to statespace matrices. Can also be viewed as statespace models with userspecified parameterization. 
For more information about when to use these commands, see When to Construct a Model Structure Independently of Estimation.
The way a model object stores information is defined by the properties of the corresponding model class.
Each model object has properties for storing information that are relevant only to that
specific model type. The idtf
, idgrey
,
idpoly
, idproc
, and idss
model
objects are based on the idlti
superclass and inherit all
idlti
properties.
In general, all model objects have properties that belong to the following categories:
Names of input and output channels, such as InputName
and
OutputName
Sample time of the model, such as Ts
Units for time or frequency
Model order and mathematical structure (for example, ODE or nonlinearities)
Properties that store estimation results (Report
)
User comments, such as Notes
and Userdata
For information about getting help on object properties, see the model reference pages.
The following table summarizes the commands for viewing and changing model property values. Property names are not case sensitive. You do not need to type the entire property name if the first few letters uniquely identify the property.
Task  Command  Example 

View all model properties and their values  get 
Load sample data, compute an ARX model, and list the model properties: load iddata8
m_arx=arx(z8,[4 3 2 3 0 0 0]);
get(m_arx) 
Access a specific model property  Use dot notation 
View the A matrix containing the estimated parameters in the previous model: m_arx.A 
For properties, such as Report , that are configured like
structures, use dot notation of the form
model.PropertyName.FieldName .FieldName
is the name of any field of the property. 
View the method used in ARX model estimation: m_arx.Report.Method  
Change model property values  dot notation 
Change the input delays for all three input channels to m_arx.InputDelay = [1 1 1] 
Access model parameter values and uncertainty information  Use getpar , getpvec and getcov See Also: polydata , idssdata , tfdata , zpkdata 

Set model property values and uncertainty information  Use setpar , setpvec and setcov 

Get number of parameters  Use nparams 
Get the number of
parameters: nparams(sys) 
Validate each model directly after estimation to help finetune your modeling strategy. When you do not achieve a satisfactory model, you can try a different model structure and order, or try another identification algorithm. For more information about validating and troubleshooting models, see Validating Models After Estimation.