Matlab error: Incorrect specification for model order in the armax command

14 views (last 30 days)
I am trying to build an ARMAX model using matlab's system identification toolbox. The relevant part of my code is shown below;
"input = [Tpht CFMbyp chw];
output = Tsup;
tdata = iddata(output,input,60);
sys = armax(tdata, [30 30 30 1]); "
input is a 29566x3 matrix and output is a 29566x1 vector. Using these, I created iddata with 60 seconds sample interval. That was all okay until this point. Now, when I try to build the model of order 30, I encountered an error saying;
" Error using armax (line 89) Incorrect specification for model order in the "armax(DATA, ORDERS,...)" command. Specify ORDERS as an integer matrix of the form [na nb nc nk], or [na nc] if there are no inputs. Type "help armax" for more information.. "
I did not understand the error and I do not know how to correct it. If you could help me on this, I would really appreciate it.
Thank you, Irem

Accepted Answer

Walter Roberson
Walter Roberson on 4 Sep 2015
For a model with Ny outputs and Nu inputs:
  • na is the order of the polynomial A(q), specified as an Ny-by-Ny matrix of nonnegative integers.
  • nb is the order of the polynomial B(q) + 1, specified as an Ny-by-Nu matrix of nonnegative integers.
  • nc is the order of the polynomial C(q), specified as a column vector of nonnegative integers of length Ny.
  • nk is the input-output delay expressed as fixed leading zeros of the B polynomial. Specify nk as an Ny-by-Nu matrix of nonnegative integers.
You have Ny = 1 output, and Nu = 3 inputs. Your na will then need to be 1 x 1, your nb will need to be 1 x 3, your nc will need to be 1 x 1, your nk will need to be 1 x 3. Put together that gives a 1 x 8 vector being required for the second argument, but you are specifying instead a 1 x 4 vector. The 1 x 4 vector option is for the case of 1 input and 1 output.

More Answers (0)

Community Treasure Hunt

Find the treasures in MATLAB Central and discover how the community can help you!

Start Hunting!