how to pass parameters in arx function for MISO system identification

This is my code for an estimation of a MISO system:
na= 1;
nb1=1;
nb2=1;
sampleTime = 300; % seconds
inputNames = ["HCL_in", "NaHCO3"];
outputName = "HCL_out";
data = iddata(Dati1_timetable{:,outputName}, Dati1_timetable{:, inputNames}, sampleTime);
sys5 = arx(data, [na nb1 nb2])
and I have this error :
Error using arx (line 84)
the model orders must be compatible with the input an output dimensions of the estimation data.
if I substitute ONLY " inputNames = ["HCL_in", "NaHCO3"]; " with this: " inputNames = HCL_in; " , so from MISO to SISO system identification, all works fine.
Please help me, thanks.

댓글 수: 1

jefferson
jefferson 2025년 1월 16일
이동: Walter Roberson 2025년 1월 16일
Where can I get theoretical information for implementing a MISO system? I need to solve a case similar to this.

댓글을 달려면 로그인하십시오.

 채택된 답변

Solved, unlike the theory books where it is specified by the relative degrees, it is necessary to specify the delay for each input. In my case, it is 0 due to very slow sampling time, so I solved it with:
na= 1;
nb1=1;
nb2=1;
nk1=0;
nk2=0;
sampleTime = 300; % seconds
inputNames = ["input_1_name", "input_2_name"];
outputName = "output_name";
data = iddata(Dati1_timetable{:,outputName}, Dati1_timetable{:, inputNames}, sampleTime);
sys5 = arx(data, [na nb1 nb2 nk1 nk2])

추가 답변 (0개)

카테고리

도움말 센터File Exchange에서 System Identification Toolbox에 대해 자세히 알아보기

Community Treasure Hunt

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

Start Hunting!

Translated by