Error for multi output estimation of output-error model (oe function)

2 views (last 30 days)
Hello,
I am using the system id toolbox to estimate Output Error models for an experiment with multi output data.
I keep getting an error when the number of outputs is larger than the number of inputs * 3. I.e. an error when numOutputs > numInputs*3.
For example, the following code gives an error at the fourth iteration.
% try to fit multi output data to oe model
% generate multi-ouput data with one input.
% use noise to show the error
% single channel nonise as input
inputData=ones(1000,1);
sampRate=0.001;
% create output with various number of channels
for numOutputs=1:4
outputData=ones(size(inputData,1),numOutputs);
testData=iddata(outputData,inputData,sampRate);
%try these orders
nb=4*ones(numOutputs,1);
nf=5*ones(numOutputs,1);
nk=5*ones(numOutputs,1);
chk=oe(testData,[nb nf nk] );
end
I have traced this to the check at line 428 of validatePEMInputs:
% Polynomial model.
if nc<nr
error(message('Ident:general:InvalidSyntax',caller,caller))
elseif ~DoubleData && Nydat~=nr
error(message('Ident:estimation:polyestOrderRows',caller))
end
Here nc=numOuputs and nr=numInputs*3.
I figured i'm, specifying the syntax (the orders) incorrectly, but I can't see what I'm doing wrong. Any ideas why this may be so?
Thanks,
Dror

Answers (0)

Categories

Find more on Linear Model Identification in Help Center and File Exchange

Community Treasure Hunt

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

Start Hunting!