how to pass parameters in arx function for MISO system identification

9 vues (au cours des 30 derniers jours)
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 commentaire
jefferson
jefferson le 16 Jan 2025
Déplacé(e) : Walter Roberson le 16 Jan 2025
Where can I get theoretical information for implementing a MISO system? I need to solve a case similar to this.

Connectez-vous pour commenter.

Réponse acceptée

Giovanni Barba Orsato
Giovanni Barba Orsato le 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])

Plus de réponses (0)

Community Treasure Hunt

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

Start Hunting!

Translated by