how to pass parameters in arx function for MISO system identification

10 Ansichten (letzte 30 Tage)
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 Kommentar
jefferson
jefferson am 16 Jan. 2025
Verschoben: Walter Roberson am 16 Jan. 2025
Where can I get theoretical information for implementing a MISO system? I need to solve a case similar to this.

Melden Sie sich an, um zu kommentieren.

Akzeptierte Antwort

Giovanni Barba Orsato
Giovanni Barba Orsato am 15 Sep. 2023
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])

Weitere Antworten (0)

Community Treasure Hunt

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

Start Hunting!

Translated by