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