ARX model estimation using four-stage instrumental variable method.
sys = iv4(data,[na
sys = iv4(data,'na',na,'nb',nb,'nk',nk)
sys = iv4(___,Name,Value)
sys = iv4(___,opt)
sys = iv4(data,[na nb nk]) estimates an ARX polynomial model, sys, using the four-stage instrumental variable method, for the data object data. [na nb nk] specifies the ARX structure orders of the A and B polynomials and the input to output delay. The estimation algorithm is insensitive to the color of the noise term.
sys is an ARX model:
Alternatively, you can also use the following syntax:
Estimation time series data.
data must be an iddata object.
[na nb nk]
ARX polynomial orders.
For multi-output model, [na nb nk] contains one row for every output. In particular, specify na as an Ny-by-Ny matrix, where each entry is the polynomial order relating the corresponding output pair. Here, Ny is the number of outputs. Specify nb and nk as Ny-by-Nu matrices, where Nu is the number of inputs. For more details on the ARX model structure, see arx.
opt is an options set that configures the estimation options. These options include:
Use iv4Options to create the options set.
Specify optional comma-separated 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.
Input delay for each input channel, specified as a scalar value or numeric vector. For continuous-time systems, specify input delays in the time unit stored in the TimeUnit property. For discrete-time systems, specify input delays in integer multiples of the sampling period Ts. For example, InputDelay = 3 means a delay of three sampling periods.
For a system with Nu inputs, set InputDelay to an Nu-by-1 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.
Transport delays. ioDelay is a numeric array specifying a separate transport delay for each input/output pair.
For continuous-time systems, specify transport delays in the time unit stored in the TimeUnit property. For discrete-time systems, specify transport delays in integer multiples of the sampling period, Ts.
For a MIMO system with Ny outputs and Nu inputs, set ioDelay to a Ny-by-Nu array. Each entry of this array is a numerical value that represents the transport delay for the corresponding input/output pair. You can also set ioDelay to a scalar value to apply the same delay to all input/output pairs.
Default: 0 for all input/output pairs
Specify integrators in the noise channels.
Adding an integrator creates an ARIX model represented by:
where, is the integrator in the noise channel, e(t).
IntegrateNoise is a logical vector of length Ny, where Ny is the number of outputs.
Default: false(Ny,1), where Ny is the number of outputs
Identified polynomial model of ARX structure.
sys is an idpoly model which encapsulates the identified polynomial model.
Estimate a two-input, one-output system with different delays on the inputs u1 and u2.
z = iddata(y, [u1 u2]); nb = [2 2]; nk = [0 2]; m= iv4(z,[2 nb nk]);
Estimation is performed in 4 stages. The first stage uses the arx function. The resulting model generates the instruments for a second-stage IV estimate. The residuals obtained from this model are modeled as a high-order AR model. At the fourth stage, the input-output data is filtered through this AR model and then subjected to the IV function with the same instrument filters as in the second stage.
For the multiple-output case, optimal instruments are obtained only if the noise sources at the different outputs have the same color. The estimates obtained with the routine are reasonably accurate, however, even in other cases.
 Ljung, L. System Identification: Theory for the User, equations (15.21) through (15.26), Upper Saddle River, NJ, Prentice-Hal PTR, 1999.