Convert MIMO Matrix Data to Timetable for Continuous-Time Model Estimation
Estimate a continuous-time model function by first converting matrix data to a timetable.
Load the data, which includes input matrix usteam, output matrix ysteam, and sample time Ts.
load sdatasteam.mat usteam ysteam Ts
Combine usteam and ysteam into the single timetable ttsteam. In order to create a variable for each channel, you must specify each matrix column explicitly.
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
Estimate a continuous-time state-space model.
nx = 3; sysc = ssest(tts,nx,'InputName',["Var1" "Var2"],'OutputName',["Var3" "Var4"]);
Compare the model to the data.
compare(tts,sysc)
