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

Go to top of page