이 예제에서는 25개의 상태를 갖는 SISO 모델이 있다고 가정하겠습니다. 모델을 불러옵니다.
load('reduce.mat','gasf35unst');
size(gasf35unst)
State-space model with 1 outputs, 1 inputs, and 25 states.
최소 실현을 계산하기 위해 minreal 함수를 사용합니다.
[msys,U] = minreal(gasf35unst);
11 states removed.
이 구문은 칼만 분해를 계산하는 데 사용되는 직교 행렬 U와 함께 상태공간 모델 msys를 반환합니다. 이 분해는 원래 상태공간 모델의 제어 불가능하고 관측 불가능한 상태를 확인합니다. 그런 다음 minreal은 최소 실현을 계산하기 위해 제어 불가능하고 관측 불가능한 상태를 제거합니다. 기본적으로 이 함수는 이 모델에 대해 11개 상태를 제거합니다. 거의 제어 불가능하거나 관측 불가능한 추가 상태를 강제로 제거하려면 허용오차를 늘리면 됩니다.
허용오차를 디폴트 값의 100배로 늘립니다.
tol = sqrt(eps)*100;
[msys2,U2] = minreal(gasf35unst,tol);