Contenu principal

La traduction de cette page n'est pas à jour. Cliquez ici pour voir la dernière version en anglais.

Convertir des données matricielles MIMO en une timetable en vue de l'estimation de modèles en temps continu

Estimez une fonction de modèle en temps continu en commençant par convertir les données matricielles en une timetable.

Chargez les données, parmi lesquelles la matrice d'entrée usteam, la matrice de sortie ysteam et le pas d'échantillonnage Ts.

load sdatasteam.mat usteam ysteam Ts

Combinez usteam et ysteam au sein de la même timetable ttsteam. Pour créer une variable pour chaque canal, vous devez spécifier explicitement chaque colonne de la matrice.

tts = timetable(usteam(:,1),usteam(:,2),ysteam(:,1),ysteam(:,2),...
    'rowtimes',seconds(Ts*(1:size(usteam,1))));
head(tts,4)
      Time       Var1       Var2        Var3        Var4   
    ________    _______    _______    ________    _________

    0.05 sec    -1.5283     2.0584     0.57733     -0.12274
    0.1 sec      1.4412     -2.005     0.75804    -0.086114
    0.15 sec     1.4314     2.0584    -0.76577     -0.19845
    0.2 sec      1.4412    -1.9806     0.47721     -0.20577

Estimez un modèle de représentation d'état à temps continu.

nx = 3;
sysc = ssest(tts,nx,'InputName',["Var1" "Var2"],'OutputName',["Var3" "Var4"]);

Comparez le modèle aux données.

compare(tts,sysc)

Figure contains 2 axes objects. Axes object 1 with ylabel Var3 contains 2 objects of type line. These objects represent Validation data (Var3), sysc: 90.8%. Axes object 2 with ylabel Var4 contains 2 objects of type line. These objects represent Validation data (Var4), sysc: 62.29%.