Get input/output delay information for
DELAYS = getDelayInfo(MODEL)
DELAYS = getDelayInfo(MODEL,TYPE)
DELAYS = getDelayInfo(MODEL) obtains the
maximum delay in each input and output variable of an
DELAYS = getDelayInfo(MODEL,TYPE) lets
you choose between obtaining maximum delays across all input and output
variables or maximum delays for each output variable individually.
When delays are obtained for each output variable individually a matrix
is returned, where each row is a vector containing ny+nu maximum
delays for each output variable, and:
ny is the
number of outputs of
nu is the
number of inputs of
Delay information is useful for determining the number of states in the model. For nonlinear ARX models, the states are related to the set of delayed input and output variables that define the model structure (regressors). For example, if an input or output variable p has a maximum delay of D samples, then it contributes D elements to the state vector:
p(t-1), p(t-2), ...p(t-D)
The number of states of a nonlinear ARX model equals the sum
of the maximum delays of each input and output variable. For more
information about the definition of states for
see Definition of idnlarx States
getDelayInfo accepts the following arguments:
TYPE: (Optional) Specifies whether
to obtain channel delays
'all': Default value.
the maximum delays across each output (vector of ny+nu entries,
[ny, nu] = size(MODEL)).
delay values separated for each output (ny-by-(ny+nu)
DELAYS: Contains delay information
in a vector of length ny+nu arranged
with output channels preceding the input channels, i.e.,
y2,.., u1, u2,..].
In the following example you create a 2-output, 3-input nonlinear
ARX model, then verify the number of delays using
M = idnlarx([2 0 2 2 1 1 0 0; 1 0 1 5 0 1 1 0],... 'linear');
Compute the maximum delays for each output variable individually.
Del = getDelayInfo(M,'channelwise') Del = 2 0 2 1 0 1 0 1 5 0
Del contains the maximum
delays for the first and second output of the model
You can interpret the contents of matrix
In the dynamics for the output 1 (y1)
M, the maximum delays for each input/output
channel are as follows: y1:
2, y2: 0, u1:
2, u2: 1, u3:0.
Similarly, in the dynamics for the output 2 (y2) of the model, the maximum delays in channels y1, y2, u1, u2, u3 are 1, 0, 1, 5, and 0 respectively.
You can find the maximum delays for all the input and output variables in the order (y1, y2, u1, u2, u3) by executing the command
Del = 2 0 2 5 0
The maximum delay across all output equations can be obtained
X(t) = [y1(t-1), y1(t-2), u1(t-1), u1(t-2), u2(t-1), u2(t-2), u2(t-3), u2(t-4), u2(t-5)]