Main Content

About Identified Linear Models

What are IDLTI Models?

System Identification Toolbox™ software uses objects to represent a variety of linear and nonlinear model structures. These linear model objects are collectively known asIdentified Linear Time-Invariant(IDLTI) models.

IDLTI models contain two distinct dynamic components:

  • Measured component— Describes the relationship between the measured inputs and the measured output (G)

  • Noise component— Describes the relationship between the disturbances at the output and the measured output (H)

Models that only have the noise componentHare called time-series or signal models. Typically, you create such models using time-series data that consist of one or more outputsy(t)with no corresponding input.

The total output is the sum of the contributions from the measured inputs and the disturbances:y = G u + H e, whereurepresents the measured inputs andethe disturbance.e(t)被建模为零均值高斯白噪声variance Λ. The following figure illustrates an IDLTI model.

When you simulate an IDLTI model, you study the effect of inputu(t)(and possibly initial conditions) on the outputy(t). The noisee(t)is not considered. However, with finite-horizon prediction of the output, both the measured and the noise components of the model contribute towards computation of the (predicted) response.

One-step ahead prediction model corresponding to a linear identified model (y = Gu+He)

Measured and Noise Component Parameterizations

The various linear model structures provide different ways of parameterizing the transfer functionsGandH. When you construct an IDLTI model or estimate a model directly using input-output data, you can configure the structure of bothGandH, as described in the following table:

Model Type Transfer Functions G and H Configuration Method
State space model (idss)

Represents an identified state-space model structure, governed by the equations:

x ˙ = A x + B u + K e y = C x + D u + e

where the transfer function between the measured inputuand outputyis G ( s ) = C ( s I A ) 1 B + D and the noise transfer function is H ( s ) = C ( s I A ) 1 K + I .

Construction: Useidssto create a model, specifying values of state-space matricesA,B,C,DandKas input arguments (usingNaNsto denote unknown entries).

Estimation: Usessestorn4sid, specifying name-value pairs for various configurations, such as, canonical parameterization of the measured dynamics ('Form'/'canonical'), denoting absence of feedthrough by fixingDto zero ('Feedthrough'/false), and absence of noise dynamics by fixingKto zero ('DisturbanceModel'/'none').

Polynomial model (idpoly)

Represents a polynomial model such as ARX, ARMAX and BJ. An ARMAX model, for example, uses the input-output equationAy(t) = Bu(t)+Ce(t), so that the measured transfer functionGis G ( s ) = A 1 B , while the noise transfer function is H ( s ) = A 1 C .

The ARMAX model is a special configuration of the general polynomial model whose governing equation is:

A y ( t ) = B F u ( t ) + C D e ( t )

The autoregressive component,A, is common between the measured and noise components. The polynomialsBandFconstitute the measured component while the polynomialsCandDconstitute the noise component.

Construction: Useidpolyto create a model using values of active polynomials as input arguments. For example, to create an Output-Error model which usesG = B/Fas the measured component and has a trivial noise component (H = 1). enter:

y = idpoly([],B,[],[],F)

Estimation: Use thearmax,arx, orbj, specifying the orders of the polynomials as input arguments. For example,bjrequires you to specify the orders of theB,C,D, andFpolynomials to construct a model with governing equation

y ( t ) = B F u ( t ) + C D e ( t )

Transfer function model (idtf)

Represents an identified transfer function model, which has no dynamic elements to model noise behavior. This object uses the trivial noise modelH(s) = I. The governing equation is

y ( t ) = n u m d e n u ( t ) + e ( t )

Construction: Useidtfto create a model, specifying values of the numerator and denominator coefficients as input arguments. The numerator and denominator vectors constitute the measured componentG = num(s)/den(s). The noise component is fixed toH = 1.

Estimation: Usetfest, specifying the number of poles and zeros of the measured componentG.

Process model (idproc)

Represents a process model, which provides options to represent the noise dynamics as either first- or second-order ARMA process (that is,H(s)= C(s)/A(s), whereC(s)andA(s)are monic polynomials of equal degree). The measured component,G(s), is represented by a transfer function expressed in pole-zero form.

For process (and grey-box) models, the noise component is often treated as an on-demand extension to an otherwise measured component-centric representation. For these models, you can add a noise component by using theDisturbanceModelestimation option. For example:

model = procest(data,'P1D')

estimates a model whose equation is:

y ( s ) = K p 1 ( T p 1 s + 1 ) e s T d u ( s ) + e ( s ) .

To add a second order noise component to the model, use:

Options = procestOptions('DisturbanceModel','ARMA1'); model = procest(data,'P1D',Options);

This model has the equation:

y ( s ) = K p 1 ( T p 1 s + 1 ) e s T d u ( s ) + 1 + c 1 s 1 + d 1 s e ( s )

where the coefficientsc1andd1parameterize the noise component of the model. If you are constructing a process model using theidproccommand, specify the structure of the measured component using theTypeinput argument and the noise component by using theNoiseTFname-value pair. For example,

model = idproc('P1','Kp',1,'Tp1',1,'NoiseTF',... struct('num',[1 0.1],'den',[1 0.5]))

creates the process modely(s) = 1/(s+1) u(s) + (s + 0.1)/(s + 0.5) e(s)

Sometimes, fixing coefficients or specifying bounds on the parameters are not sufficient. For example, you may have unrelated parameter dependencies in the model or parameters may be a function of a different set of parameters that you want to identify exclusively. For example, in a mass-spring-damper system, theAandBparameters both depend on the mass of the system. To achieve such parameterization of linear models, you can use grey-box modeling where you establish the link between the actual parameters and model coefficients by writing an ODE file. To learn more, seeGrey-Box Model Estimation.

Linear Model Estimation

You typically use estimation to create models in System Identification Toolbox. You execute one of the estimation commands, specifying as input arguments the measured data, along with other inputs necessary to define the structure of a model. To illustrate, the following example uses the state-space estimation command,ssest, to create a state space model. The first input argumentdata指定测量输入输出数据。瑞士的nd input argument specifies the order of the model.

sys = ssest(data,4)

The estimation function treats the noise variablee(t)as prediction error – the residual portion of the output that cannot be attributed to the measured inputs. All estimation algorithms work to minimize a weighted norm ofe(t)over the span of available measurements. The weighting function is defined by the nature of the noise transfer functionHand the focus of estimation, such as simulation or prediction error minimization.

Black Box (“Cold Start”) Estimation

In a black-box estimation, you only have to specify the order to configure the structure of the model.

sys =estimator(data,orders)

whereestimatoris the name of an estimation command to use for the desired model type.

For example, you usetfestto estimate transfer function models,arxARX-structure多项式模型,procestfor process models.

The first argument,data, is time- or frequency domain data represented as aniddataoridfrdobject. The second argument,orders, represents one or more numbers whose definitions depends upon the model type:

  • For transfer functions,ordersrefers to the number of poles and zeros.

  • For state-space models,ordersrefers to the number of states.

  • For process models,ordersdenotes the structural elements of a process model, such as, the number of poles and presence of delay and integrator.

When working with the app, you specify the orders in the appropriate edit fields of corresponding model estimation dialogs.

Structured Estimations

In some situations, you want to configure the structure of the desired model more closely than what is achieved by simply specifying the orders. In such cases, you construct a template model and configure its properties. You then pass that template model as an input argument to the estimation commands in place oforders.

To illustrate, the following example assigns initial guess values to the numerator and the denominator polynomials of a transfer function model, imposes minimum and maximum bounds on their estimated values, and then passes the object to the estimator function.

% Initial guess for numeratornum = [1 2]; den = [1 2 1 1];% Initial guess for the denominatorsys = idtf(num,den);% Set min bound on den coefficients to 0.1sys.Structure.Denominator.Minimum = [1 0.1 0.1 0.1]; sysEstimated = tfest(data,sys);

The estimation algorithm uses the provided initial guesses to kick-start the estimation and delivers a model that respects the specified bounds.

You can use such a model template to also configure auxiliary model properties such as input/output names and units. If the values of some of the model’s parameters are initially unknown, you can useNaNsfor them in the template.

Estimation Options

There are many options associated with a model’s estimation algorithm that configure the estimation objective function, initial conditions and numerical search algorithm, among other things. For every estimation command,estimator, there is a corresponding option command namedestimatorOptions. To specify options for a particular estimator command, such astfest, use the options command that corresponds to the estimation command, in this case,tfestOptions. The options command returns an options set that you then pass as an input argument to the corresponding estimation command.

For example, to estimate an Output-Error structure polynomial model, you useoe. To specifysimulationas the focus andlsqnonlinas the search method, you useoeOptions:

loadiddata1z1Options = oeOptions('Focus','simulation','SearchMethod','lsqnonlin'); sys= oe(z1,[2 2 1],Options);

Information about the options used to create an estimated model is stored in theOptionsUsedfield of the model’sReportproperty. For more information, seeEstimation Report.

Related Topics