| System Identification Toolbox | ![]() |
Multivariable ARX Models: The idarx Model
A multivariable ARX model with nu inputs and ny outputs is given by
|
(3-45) |
Here A(q) is an ny-by-ny matrix whose entries are polynomials in the delay operator q-1. You can represent it as
|
(3-46) |
|
(3-47) |
where the entries
are polynomials in the delay operator
:
|
(3-48) |
This polynomial describes how old values of output number j affect output number k. Here
is the Kronecker-delta; it equals 1 when
, otherwise, it is 0. Similarly,
is an ny-by-nu matrix
|
(3-49) |
|
(3-50) |
The delay from input number j to output number k is
. To link with the structure definition in terms of na, nb, nk in the arx and iv4 commands, note that na is a matrix whose kj-element is
, while the kj-elements of nb and nk are
and
respectively.
The idarx representation of the model (3-45) can be created by
where A and B are 3-D arrays of dimensions ny-by-ny-by-(na+1) and ny-by-nu-by-(nb+1), respectively, that define the matrix polynomials (3-46) and (3-49).
Note that A(:,:,1) is always the identity matrix, and that leading zero coefficients in B matrices define the delays.
Consider the following system with two outputs and three inputs.
which in matrix notation can be written as
u, and then
estimated in the correct ARX structure by the following string of commands.
A(:,:,1) = eye(2);
A(:,:,2) = [-1.5 0.4; -0.2 0];
A(:,:,3) = [0.7 0 ; 0.01 -0.7];
B(:,:,1) = [0 0.4 0;1 0 0];
B(:,:,2) = [0 -0.1 0;0 0 3];
B(:,:,3) = [0 0.15 0;0 0 4];
B(:,:,4) = [0 0 0;0 0 0];
B(:,:,5) = [0.2 0 0;0 2 0];
B(:,:,6) = [0.3 0 0;0 0 0];
m0 = idarx(A,B);
u = iddata([], idinput([200,3]));
e = iddata([], randn(200,2));
y = sim(m0, [u e]);
na = [2 1;2 2];
nb = [2 3 0;1 1 2];
nk = [4 0 0;0 4 1];
me = arx([y u],[na nb nk])
me.a % The estimated A-polynominal
| Polynomial Black-Box Models: The idpoly Model | Black-Box State-Space Models: the idss Model | ![]() |