Statespace model with identifiable parameters
sys = idss(A,B,C,D)
sys = idss(A,B,C,D,K)
sys = idss(A,B,C,D,K,x0)
sys = idss(A,B,C,D,K,x0,Ts)
sys = idss(___,Name,Value)
sys = idss(sys0)
sys = idss(sys0,'split')
creates
a statespace model with identifiable parameters. sys
= idss(A,B,C,D
)A
, B
, C
,
and D
are the initial values of the statespace
matrices. By default, sys
is discretetime model
with unspecified sample time and no state disturbance element.
creates
a statespace model using additional options specified by one or more sys
= idss(___,Name,Value
)Name,Value
pair
arguments.
converts
any dynamic system model, sys
= idss(sys0
)sys0
, to idss
model
form.
An idss
model represents a system as a
continuoustime or discretetime statespace model with identifiable
(estimable) coefficients.
A statespace model of a system with input vector u, output vector y, and disturbance e takes the following form in continuous time:
$$\begin{array}{c}\frac{dx\left(t\right)}{dt}=Ax\left(t\right)+Bu\left(t\right)+Ke\left(t\right)\\ y\left(t\right)=Cx\left(t\right)+Du\left(t\right)+e\left(t\right).\end{array}$$
In discrete time, the statespace model takes the form:
$$\begin{array}{c}x\left[k+1\right]=Ax\left[k\right]+Bu\left[k\right]+Ke\left[k\right]\\ y\left[k\right]=Cx\left[k\right]+Du\left[k\right]+e\left[k\right].\end{array}$$
For idss
models, the elements of the statespace
matrices A, B, C,
and D can be estimable parameters. The elements
of the state disturbance K can also be estimable
parameters. The idss
model stores the values of
these matrix elements in the A
, B
, C
, D
,
and K
properties of the model.
There are three ways to obtain an idss
model.
Estimate the idss
model based
on inputoutput measurements of a system, using n4sid
or ssest
.
These estimation commands estimate the values of the estimable elements
of the statespace matrices. The estimated values are stored in the A
, B
, C
, D
,
and K
properties of the resulting idss
model.
The Report
property of the resulting model stores
information about the estimation, such as handling of initial state
values and options used in estimation.
When you obtain an idss
model by estimation,
you can extract estimated coefficients and their uncertainties from
the model using commands such as idssdata
, getpar
, or getcov
.
Create an idss
model using the idss
command.
You can create an idss
model to configure
an initial parameterization for estimation of a statespace model
to fit measured response data. When you do so, you can specify constraints
on one or more of the statespace matrix elements. For example, you
can fix the values of some elements, or specify minimum or maximum
values for the free elements. You can then use the configured model
as an input argument to an estimation command (n4sid
or ssest
) to estimate parameter values with
those constraints.
Convert an existing dynamic system model to an idss
model
using the idss
command.
To configure an idss
model in a desired form,
such as a companion or modal form, use state transformation commands
such as canon
and ss2ss
.

Initial values of the statespace matrices. For a system with N_{y} outputs, N_{u} inputs, and N_{x} states, specify initial values of the statespace matrix elements as follows:
Use 

Initial value of the state disturbance matrix. Specify Use Default: N_{x}byN_{y} zero matrix. 

Initial state values. Specify the initial condition as a column vector of N_{x} values. Default: N_{x} column vector of zeros. 

Sample time. For continuoustime models, Default: –1 (discretetime model with unspecified sample time) 

Dynamic system. Any dynamic system to convert to an
For the syntax 
Specify optional
commaseparated pairs of Name,Value
arguments. Name
is
the argument name and Value
is the corresponding value.
Name
must appear inside quotes. You can specify several name and value
pair arguments in any order as
Name1,Value1,...,NameN,ValueN
.
Use Name,Value
arguments to specify additional properties of idss
models
during model creation. For example, idss(A,B,C,D,'InputName','Voltage')
creates
an idss
model with the InputName
property
set to Voltage
.
Specify optional
commaseparated pairs of Name,Value
arguments. Name
is
the argument name and Value
is the corresponding value.
Name
must appear inside quotes. You can specify several name and value
pair arguments in any order as
Name1,Value1,...,NameN,ValueN
.
idss
object properties include:

Values of statespace matrices.
If you create an If you obtain an For an 

Value of state disturbance matrix K, an N_{x}byN_{y} matrix. If you create an If you obtain an For an Default: N_{x}byN_{y} zero matrix. 

State names, specified as one of the following:
Default: 

State units, specified as one of the following:
Use Default: 

Information about the estimable parameters of the


The variance (covariance matrix) of the model innovations e. An identified model includes a white, Gaussian noise component e(t). For SISO models, 

Summary report that contains information about the estimation
options and results when the statespace model is obtained using estimation
commands, such as
The contents of A = [0.1 0.4; 0.4 0.1]; B = [1; 0]; C = [1 0]; D = 0; m = idss(A,B,C,D); m.Report.OptionsUsed ans = [] If you obtain the statespace model using estimation commands,
the fields of load iddata2 z2; m = ssest(z2,3); m.Report.OptionsUsed InitialState: 'auto' N4Weight: 'auto' N4Horizon: 'auto' Focus: 'prediction' EstimateCovariance: 1 Display: 'off' InputOffset: [] OutputOffset: [] OutputWeight: [] SearchMethod: 'auto' SearchOptions: [1x1 idoptions.search.identsolver] Regularization: [1x1 struct] Advanced: [1x1 struct]
For more information on this property and how to use it, see the Output Arguments section of the corresponding estimation command reference page and Estimation Report. 

Input delay for each input channel, specified as a scalar value
or numeric vector. For continuoustime systems, specify input delays
in the time unit stored in the For a system with You can also set Default: 0 

Output delays. For identified systems, like 

Sample time. For continuoustime models, Changing this property does not discretize or resample the model.
Use Default: –1 (discretetime model with unspecified sample time) 

Units for the time variable, the sample time
Changing this property has no effect on other properties, and
therefore changes the overall system behavior. Use Default: 

Input channel names, specified as one of the following:
Alternatively, use automatic vector expansion to assign input
names for multiinput models. For example, if sys.InputName = 'controls'; The input names automatically expand to When you estimate a model using an You can use the shorthand notation Input channel names have several uses, including:
Default: 

Input channel units, specified as one of the following:
Use Default: 

Input channel groups. The sys.InputGroup.controls = [1 2]; sys.InputGroup.noise = [3 5]; creates input groups named sys(:,'controls') Default: Struct with no fields 

Output channel names, specified as one of the following:
Alternatively, use automatic vector expansion to assign output
names for multioutput models. For example, if sys.OutputName = 'measurements'; The output names automatically expand to When you estimate a model using an You can use the shorthand notation Output channel names have several uses, including:
Default: 

Output channel units, specified as one of the following:
Use Default: 

Output channel groups. The sys.OutputGroup.temperature = [1]; sys.InputGroup.measurement = [3 5]; creates output groups named sys('measurement',:) Default: Struct with no fields 

System name, specified as a character vector. For example, Default: 

Any text that you want to associate with the system, stored as a string or a cell array of
character vectors. The property stores whichever data type you
provide. For instance, if sys1.Notes = "sys1 has a string."; sys2.Notes = 'sys2 has a character vector.'; sys1.Notes sys2.Notes ans = "sys1 has a string." ans = 'sys2 has a character vector.' Default: 

Any type of data you want to associate with system, specified as any MATLAB^{®} data type. Default: 

Sampling grid for model arrays, specified as a data structure. For arrays of identified linear (IDLTI) models that are derived by sampling one or more independent variables, this property tracks the variable values associated with each model. This information appears when you display or plot the model array. Use this information to trace results back to the independent variables. Set the field names of the data structure to the names of the sampling variables. Set the field values to the sampled variable values associated with each model in the array. All sampling variables should be numeric and scalar valued, and all arrays of sampled values should match the dimensions of the model array. For example, if you collect data at various operating points of a system, you can identify a model for each operating point separately and then stack the results together into a single system array. You can tag the individual models in the array with information regarding the operating point: nominal_engine_rpm = [1000 5000 10000];
sys.SamplingGrid = struct('rpm', nominal_engine_rpm) where For model arrays generated by linearizing a Simulink^{®} model
at multiple parameter values or operating points, the software populates Default: 
idgrey
 idpoly
 idproc
 idssdata
 idtf
 n4sid
 pem
 ssest
 ssestOptions
 translatecov