Main Content

struc

Generate model-order combinations for single-output ARX model estimation

Syntax

nn = struc(na,nb,nk)
nn = struc(na,nb_1,...,nb_nu,nk_1,...,nk_nu)

Description

nn = struc(na,nb,nk) generates model-order combinations for single-input, single-output ARX model estimation. na and nb are row vectors that specify ranges of model orders. nk is a row vector that specifies a range of model delays. nn is a matrix that contains all combinations of the orders and delays.

nn = struc(na,nb_1,...,nb_nu,nk_1,...,nk_nu) generates model-order combinations for an ARX model with nu input channels.

Examples

collapse all

Create estimation and validation data sets

load iddata1;
ze = z1(1:150);
zv = z1(151:300);

Generate model-order combinations for estimation, specifying ranges for model orders and delays.

NN = struc(1:3,1:2,2:4);

Estimate ARX models using the instrumental variable method, and compute the loss function for each model order combination.

V = ivstruc(ze,zv,NN);

Select the model order with the best fit to the validation data.

order = selstruc(V,0);

Estimate an ARX model of selected order.

M = iv4(ze,order);

Load estimation and validation data sets and view the variable names.

load co2datatt tte ttv
head(tte,3)
     Time      u1     u2      y1   
    _______    ___    __    _______

    0.5 sec    170    50    -44.302
    1 sec      170    50    -44.675
    1.5 sec    170    50     -45.29

Generate model-order combinations for:

  • na = 2:4

  • nb = 2:5 for the first input, and 1 or 4 for the second input.

  • nk = 1:4 for the first input, and 0 for the second input.

NN = struc(2:4,2:5,[1 4],1:4,0);

Estimate an ARX model for each model order combination.

V = arxstruc(tte,ttv,NN);

Select the model order with the best fit to the validation data.

order = selstruc(V,0)
order = 1×5

     2     4     4     2     0

Estimate an ARX model of selected order.

M = arx(tte,order)
M =
Discrete-time ARX model: A(z)y(t) = B(z)u(t) + e(t)               
  A(z) = 1 - 1.252 z^-1 + 0.302 z^-2                              
                                                                  
  B1(z) = -0.3182 z^-2 - 0.1292 z^-3 + 0.2883 z^-4 + 0.001051 z^-5
                                                                  
  B2(z) = -0.02705 + 0.01948 z^-1 + 0.1695 z^-2 + 0.3278 z^-3     
                                                                  
Sample time: 0.5 seconds
  
Parameterization:
   Polynomial orders:   na=2   nb=[4 4]   nk=[2 0]
   Number of free coefficients: 10
   Use "polydata", "getpvec", "getcov" for parameters and their uncertainties.

Status:                                          
Estimated using ARX on time domain data "tte".   
Fit to estimation data: 88.59% (prediction focus)
FPE: 3.993, MSE: 3.938                           
 

Tips

  • Use with arxstruc or ivstruc to compute loss functions for ARX models, one for each model order combination returned by struc.

Version History

Introduced before R2006a