Main Content

연속시간 모델 추정을 위해 MIMO 행렬 데이터를 타임테이블로 변환하기

먼저 행렬 데이터를 타임테이블로 변환하여 연속시간 모델 함수를 추정합니다.

입력 행렬 usteam, 출력 행렬 ysteam, 샘플 시간 Ts를 포함하는 데이터를 불러옵니다.

load sdatasteam.mat usteam ysteam Ts

usteamysteam을 하나의 타임테이블 ttsteam으로 결합합니다. 각 채널에 대한 변수를 생성하려면 각 행렬 열을 명시적으로 지정해야 합니다.

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

연속시간 상태공간 모델을 추정합니다.

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

모델을 데이터와 비교합니다.

compare(tts,sysc)

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