Main Content

이 번역 페이지는 최신 내용을 담고 있지 않습니다. 최신 내용을 영문으로 보려면 여기를 클릭하십시오.

ctrb

상태공간 모델의 가제어성

    설명

    유한한 시간 내에 시스템을 어떤 상태로든 구동하는 제어 신호를 적용할 수 있는 경우, 이러한 동적 시스템을 제어가 가능하다고 말합니다. 이러한 특성을 가도달성이라고도 합니다. ctrb는 상태 행렬 또는 상태공간 모델에서 가제어성 행렬을 계산합니다. 이 행렬을 사용하여 가제어성을 확인할 수 있습니다.

    예를 들어 Nx개의 상태, Ny개의 출력, Nu개의 입력이 있는 연속시간 상태공간 모델이 있다고 가정하겠습니다.

    x˙=Ax+Buy=Cx+Du

    여기서 x, u, y는 각각 상태, 입력, 출력을 나타내며 A, B, C, D는 다음과 같은 크기의 상태공간 행렬입니다.

    • ANx×Nx 실수 값 또는 복소수 값 행렬입니다.

    • BNx×Nu 실수 값 또는 복소수 값 행렬입니다.

    • CNy×Nx 실수 값 또는 복소수 값 행렬입니다.

    • DNy×Nu 실수 값 또는 복소수 값 행렬입니다.

    ctrb Co=[BABA2BAn1B]에 의해 생성된 가제어성 행렬이 완전 랭크를 갖는 경우, 즉 랭크가 상태공간 모델의 상태 수와 같은 경우 시스템은 제어 가능합니다. 가제어성 행렬 Co에는 Nx개의 행과 Nxu개의 열이 있습니다. 예제는 SISO 상태공간 모델의 가제어성 항목을 참조하십시오.

    예제

    Co = ctrb(A,B)는 상태 행렬 A와 입력-상태 행렬 B를 사용하여 가제어성 행렬 Co를 반환합니다. Co가 완전 랭크를 갖는 경우, 즉 Co의 랭크가 상태 수와 같은 경우 시스템은 제어 가능합니다.

    예제

    Co = ctrb(sys)는 상태공간 모델 sys의 가제어성 행렬을 반환합니다. 이 구문은 다음과 동일합니다.

    Co = ctrb(sys.A,sys.B);

    예제

    모두 축소

    A 행렬과 B 행렬을 정의합니다.

    A = [1  1;
         4 -2];
    B = [1 -1;
         1 -1];

    가제어성 행렬을 계산합니다.

    Co = ctrb(A,B);

    제어 불가능한 상태의 개수를 확인합니다.

    unco = length(A) - rank(Co)
    unco = 1
    

    제어 불가능한 상태는 Co가 완전 랭크 2를 갖지 않음을 나타냅니다. 따라서 이 시스템은 제어 가능하지 않습니다.

    이 예제에서는 2개의 상태를 갖는 다음 SISO 상태공간 모델이 있다고 가정하겠습니다.

    A=[-1.5-210]B=[0.50]C=[01]D=1SISO State-Space Model

    다음 상태공간 행렬로 정의된 SISO 상태공간 모델을 만듭니다.

    A = [-1.5,-2;1,0];
    B = [0.5;0];
    C = [0,1];
    D = 1;
    sys = ss(A,B,C,D);

    가제어성 행렬을 계산하고 랭크를 구합니다.

    Co = ctrb(sys)
    Co = 2×2
    
        0.5000   -0.7500
             0    0.5000
    
    

    가제어성 행렬의 크기는 A 행렬과 B 행렬의 크기에 따라 다릅니다. 예를 들어 행렬 A가 Nx×Nx 행렬이고 행렬 B가 Nx×Nu 행렬이면 결과 행렬 Co에는 Nx개의 행과 Nxu개의 열이 있습니다. 여기서 Nx는 상태의 개수이고 Nu는 입력의 개수입니다.

    rank(Co)
    ans = 2
    

    가제어성 행렬 Co의 랭크가 상태의 개수와 같으므로 시스템 sys는 제어 가능합니다.

    또는 A 행렬과 B 행렬만 사용하여 가제어성 행렬을 구할 수도 있습니다.

    Co = ctrb(sys.A,sys.B);
    rank(Co)
    ans = 2
    

    입력 인수

    모두 축소

    상태 행렬로, Nx×Nx 행렬로 지정됩니다. 여기서 Nx는 상태의 개수입니다.

    입력-상태 행렬로, Nx×Nu 행렬로 지정됩니다. 여기서 Nx는 상태의 개수이고 Nu는 입력의 개수입니다.

    상태공간 모델 또는 모델 배열로, 다음과 같이 지정됩니다.

    • 상태공간 모델(ss) 객체: 입력 A, B, C, D가 숫자형 행렬이거나 다른 모델 객체 유형에서 변환하는 경우.

    • 일반화된 상태공간 모델(genss) 객체: 하나 이상의 행렬 A, B, C, D에 조정 가능한 파라미터(예: realp 파라미터) 또는 일반화된 행렬(genmat)이 포함된 경우. 이 함수는 조정 가능형 파라미터에 대해 현재 값을 사용합니다.

    • 불확실한 상태공간 모델(uss) 객체: 하나 이상의 입력 A, B, C , D에 불확실한 행렬이 포함된 경우. 이 함수는 불확실한 파라미터에 대해 공칭 값을 사용합니다. 불확실 모델을 사용하려면 Robust Control Toolbox™가 필요합니다.

    출력 인수

    모두 축소

    가제어성 행렬로, 배열로 반환됩니다. sys가 다음과 같은 경우입니다.

    • Nx개의 상태와 Nu개의 입력이 있는 단일 상태공간 모델인 경우, 결과 배열 Co에는 Nx개의 행과 Nxu개의 열이 있습니다.

    • 상태공간 모델로 구성된 배열 sys(:,:,j1,...,jN)인 경우 CoN+2 차원의 배열, 즉 Co(:,:,j1,...,jN)입니다.

    참고 문헌

    [1] Paige, C. C. "Properties of Numerical Algorithms Related to Computing Controllability." IEEE Transactions on Automatic Control. Vol. 26, Number 1, 1981, pp. 130-138.

    버전 내역

    R2006a 이전에 개발됨