MathWorks Machine Translation
The automated translation of this page is provided by a general purpose third party translator tool.
MathWorks does not warrant, and disclaims all liability for, the accuracy, suitability, or fitness for purpose of the translation.
Estimate statespace model by reduction of regularized ARX model
specifies
additional options using one or more sys
= ssregest(data
,nx
,Name,Value
)Name,Value
pair
arguments.
Load estimation data.
load iddata2 z2;
z2
is an iddata
object that contains timedomain system response data.
Identify a thirdorder statespace model.
sys = ssregest(z2,3);
Load estimation data.
load iddata2 z2
Estimate a thirdorder statespace model with input delay.
sys = ssregest(z2,3,'InputDelay',2);
Load estimation data.
load iddata2 z2;
Specify the order of the regularized ARX model used by the software during estimation. Also, set the estimation focus to simulation.
opt = ssregestOptions('ARXOrder',[100 100 1],'Focus','simulation');
Identify a thirdorder statespace model.
sys = ssregest(z2,3,opt);
Load estimation data.
load iddata2 z2;
Obtain the initial state values when identifying a thirdorder statespace model.
[sys,x0] = ssregest(z2,3);
Load data.
load regularizationExampleData eData;
Create a transfer function model used for generating the estimation data (true system).
trueSys = idtf([0.02008 0.04017 0.02008],[1 1.561 0.6414],1);
Obtain regularized impulse response (FIR) model.
opt = impulseestOptions('RegulKernel','DC'); m0 = impulseest(eData,70,opt);
Convert the model into a statespace model and reduce the model order.
m1 = balred(idss(m0),15);
Obtain a second statespace model using regularized reduction of an ARX model.
m2 = ssregest(eData,15);
Compare the impulse responses of the true system and the estimated models.
impulse(trueSys,m1,m2,50); legend('trueSys','m1','m2');
data
— Estimation dataiddata
 idfrd
 frd
nx
— Order of estimated model'best'
Order of the estimated model, specified as a positive scalar or vector.
If nx
is a vector, then ssregest
creates
a plot which you can use to choose a suitable model order. The plot
shows the Hankel singular values for models of chosen values in the
vector. States with relatively small Hankel singular values can be
safely discarded. A default choice is suggested in the plot.
You can also specify nx = 'best'
, as in ssregest(data,'best')
,
in which case the optimal order is chosen automatically in the 1:10
range.
opt
— Options set for ssregest
ssregestOptions
options setEstimation options for ssregest
, specified
as an options set you create using ssregestOptions
.
Specify optional commaseparated pairs of Name,Value
arguments.
Name
is the argument
name and Value
is the corresponding
value. Name
must appear
inside single quotes (' '
).
You can specify several name and value pair
arguments in any order as Name1,Value1,...,NameN,ValueN
.
sys = ssregest(z2,3,'InputDelay',2)
specifies a delay of 2 sampling periods.'Ts'
— Sample timedata.Ts
) (default)  positive scalar  0Sample time of the model, specified as 0 or equal to the sample
time of data
.
For continuoustime models, use Ts = 0
. For
discretetime models, specify Ts
as a positive
scalar whose value is equal to the data sample time.
'InputDelay'
— Input delaysInput delay for each input channel, specified as a numeric vector.
For continuoustime systems, specify input delays in the time unit
stored in the TimeUnit
property. For discretetime
systems, specify input delays in integer multiples of the sample time Ts
.
For example, InputDelay = 3
means a delay of three
sampling periods.
For a system with Nu
inputs, set InputDelay
to
an Nu
by1 vector. Each entry of this vector is
a numerical value that represents the input delay for the corresponding
input channel.
You can also set InputDelay
to a scalar value
to apply the same delay to all channels.
'Form'
— Type of canonical form'free'
(default)  'modal'
 'companion'
 'canonical'
Type of canonical form of sys
,
specified as one of the following values:
'modal'
— Obtain sys
in modal form.
'companion'
— Obtain sys
in companion form.
'free'
— All entries of
the A, B and C matrices
are treated as free.
'canonical'
— Obtain sys
in the observability canonical
form [1].
Use the Form
, Feedthrough
and DisturbanceModel
namevalue
pair arguments to modify the default behavior of the A, B, C, D,
and K matrices.
'Feedthrough'
— Direct feedthrough from input to output0
(default)  1
 logical vectorDirect feedthrough from input to output, specified as a logical
vector of length Nu, where Nu is
the number of inputs. If Feedthrough
is specified
as a logical scalar, it is applied to all the inputs.
Use the Form
, Feedthrough
and DisturbanceModel
namevalue
pair arguments to modify the default behavior of the A, B, C, D,
and K matrices.
'DisturbanceModel'
— Specify whether to estimate the K matrix'estimate'
(default)  'none'
Specify whether to estimate the K matrix which specifies the noise component, specified as one of the following values:
'none'
— Noise component
is not estimated. The value of the K matrix is
fixed to zero value.
'estimate'
— The K matrix
is treated as a free parameter.
DisturbanceModel
must be 'none'
when
using frequencydomain data.
Use the Form
, Feedthrough
and DisturbanceModel
namevalue
pair arguments to modify the default behavior of the A, B, C, D,
and K matrices.
sys
— Estimated statespace modelidss
Estimated statespace model of order nx
,
returned as an idss
model object.
The model represents:
$$\begin{array}{l}\dot{x}(t)=Ax(t)+Bu(t)+Ke(t)\\ y(t)=Cx(t)+Du(t)+e(t)\end{array}$$
A, B, C, D,
and K are statespace matrices. u(t)
is the input, y(t) is the output, e(t)
is the disturbance and x(t)
is the vector of nx
states.
All the entries of A, B, C,
and K are free estimable parameters by default. D is
fixed to zero by default, meaning that there is no feedthrough, except
for static systems (nx=0
).
Information about the estimation results and options used is
stored in the Report
property of the model. Report
has
the following fields:
Report Field  Description  

Status  Summary of the model status, which indicates whether the model was created by construction or obtained by estimation.  
Method  Estimation command used.  
InitialState  Handling of initial states during estimation, returned as one of the following values:
This field is especially useful when the  
ARXOrder  ARX model orders, returned as a matrix of nonnegative
integers  
Fit  Quantitative assessment of the estimation, returned as a structure. See Loss Function and Model Quality Metrics for more information on these quality metrics. The structure has the following fields:
 
Parameters  Estimated values of model parameters.  
OptionsUsed  Option set used for estimation. If no custom options
were configured, this is a set of default options. See  
RandState  State of the random number stream at the start of estimation.
Empty,  
DataUsed  Attributes of the data used for estimation, returned as a structure with the following fields:

For more information on using Report
, see Estimation Report.
x0
— Initial states computed during estimationInitial states computed during estimation, returned as a scalar.
If data
contains multiple experiments, then x0
is a matrix with each column corresponding
to an experiment.
This value is also stored in the Parameters
field
of the model's Report
property.
In modal form, A is a blockdiagonal matrix. The block size is typically 1by1 for real eigenvalues and 2by2 for complex eigenvalues. However, if there are repeated eigenvalues or clusters of nearby eigenvalues, the block size can be larger.
For example, for a system with eigenvalues $$({\lambda}_{1},\sigma \pm j\omega ,{\lambda}_{2})$$, the modal A matrix is of the form
$$\left[\begin{array}{cccc}{\lambda}_{1}& 0& 0& 0\\ 0& \sigma & \omega & 0\\ 0& \omega & \sigma & 0\\ 0& 0& 0& {\lambda}_{2}\end{array}\right]$$
In the companion realization, the characteristic polynomial of the system appears explicitly in the rightmost column of the A matrix. For a system with characteristic polynomial
$$p(s)={s}^{n}+{\alpha}_{1}{s}^{n1}+\dots +{\alpha}_{n1}s+{\alpha}_{n}$$
the corresponding companion A matrix is
$$A=\left[\begin{array}{cccccc}0& 0& \mathrm{..}& \mathrm{..}& 0& {\alpha}_{n}\\ 1& 0& 0& \mathrm{..}& 0& {\alpha}_{n}1\\ 0& 1& 0& .& :& :\\ :& 0& .& .& :& :\\ 0& .& .& 1& 0& {\alpha}_{2}\\ 0& \mathrm{..}& \mathrm{..}& 0& 1& {\alpha}_{1}\end{array}\right]$$
The companion transformation requires that the system be controllable from the first input. The companion form is poorly conditioned for most statespace computations; avoid using it when possible.
ssregest
function provides improved
accuracy than n4sid
for short,
noisy data sets.
For some problems, the quality of fit using n4sid
is
sensitive to options, such as N4Horizon
, whose
values can be difficult to determine. In comparison, the quality of
fit with ssregest
is less sensitive to its options,
which makes ssregest
simpler to use.
ssregest
estimates a regularized ARX model
and converts the ARX model to a statespace model. The software then
uses balanced model reduction techniques to reduce the statespace
model to the specified order.
[1] Ljung, L. System Identification: Theory For the User, Second Edition, Appendix 4A, pp 132134, Upper Saddle River, N.J: Prentice Hall, 1999.
You clicked a link that corresponds to this MATLAB command:
Run the command by entering it in the MATLAB Command Window. Web browsers do not support MATLAB commands.
You can also select a location from the following list: