Main Content

initial

상태공간 모델의 초기 상태에 대한 시스템 응답

    설명

    초기 응답 플롯

    예제

    initial(sys,x0)은 벡터 x0으로 지정된 상태 초기 조건을 사용하여 상태공간(ss) 모델 sys의 초기 상태에 대한 비강제 시스템 응답을 플로팅합니다.

    x˙=Ax,x(0)=x0y=Cx

    상태공간 모델 sys는 연속시간 또는 이산시간일 수 있고, SISO 또는 MIMO일 수 있습니다. MIMO 상태공간 시스템의 경우, 플롯은 각 채널의 출력에 대한 응답을 표시합니다. initial은 시스템 동특성을 기반으로 시뮬레이션의 시간 스텝과 지속 시간을 자동으로 결정합니다.

    예제

    initial(sys,x0,tFinal)t = 0부터 최종 시간 t = tFinal까지의 시뮬레이션된 응답을 플로팅합니다. 이 함수는 시스템 동특성을 사용하여 중간에 있는 시간 스텝을 결정합니다.

    예제

    initial(sys,x0,t)는 벡터 t에 지정된 시간에서의 응답을 플로팅합니다.

    예제

    initial(sys1,sys2,...,sysN,x0,___)은 여러 동적 시스템의 응답을 동일한 플롯에 플로팅합니다. 모든 시스템은 동일한 개수의 입력과 출력을 가져야 합니다. 위에 열거된 구문에 나와 있는 입력 인수를 원하는 대로 조합하여 여러 동적 시스템을 사용할 수 있습니다.

    예제

    initial(sys1,LineSpec1,...,sysN,LineSpecN,x0,___)은 응답 플롯에 있는 각 시스템의 색, 선 스타일, 마커를 지정합니다. 위에 열거된 구문에 나와 있는 입력 인수를 원하는 대로 조합하여 LineSpec를 사용할 수 있습니다. 플롯 사용자 지정 옵션이 추가로 필요하면 대신 initialplot을 사용하십시오.

    초기 응답 데이터

    예제

    [y,tOut,x] = initial(sys,x0)은 출력 응답 y, 시간 벡터 tOut, 상태 궤적 x를 반환합니다. 배열 y는 행 개수가 시간 샘플의 개수(tOut의 길이)와 같고 열 개수가 출력의 개수와 같습니다. 마찬가지로, x는 행이 length(tOut)개이고 열 개수가 상태의 개수와 같습니다.

    예제

    또한 [y,tOut,x] = initial(sys,x0,___)t 또는 tFinal로 지정된 응답 시간을 사용하여 응답 데이터를 반환합니다.

    예제

    모두 축소

    이 예제에서는 5개의 상태를 갖는 무작위 상태공간 모델을 생성하고 초기 상태에 대한 시스템 응답의 플롯을 만듭니다.

    rng("default")
    sys = rss(5);
    x0 = [1,2,3,4,5];
    initial(sys,x0)

    Figure contains an axes object. The axes object contains an object of type line. These objects represent Driving inputs, sys.

    다음과 같은 상태공간 모델의 응답을 플로팅합니다.

    [x˙1x˙2]=[-0.5572-0.78140.78140][x1x2]y=[1.96916.4493][x1x2].

    다음과 같은 초기 조건을 취합니다.

    x(0)=[10].

    a = [-0.5572, -0.7814; 0.7814, 0];
    c = [1.9691  6.4493];
    x0 = [1 ; 0];
    
    sys = ss(a,[],c,[]);
    initial(sys,x0)

    Figure contains an axes object. The axes object contains an object of type line. These objects represent Driving inputs, sys.

    다음과 같은 2-입력 2-출력 동적 시스템이 있다고 가정하겠습니다.

    sys(s)=[03ss2+s+10s+1s+52s+6].MIMO system

    초기 조건 응답 플롯은 상태공간 모델에 대해서만 지원되므로 sys를 상태공간 형식으로 변환합니다.

    sys = ss([0, tf([3 0],[1 1 10]) ; tf([1 1],[1 5]), tf(2,[1 6])]);
    size(sys)
    State-space model with 2 outputs, 2 inputs, and 4 states.
    

    그 결과로 만들어진 상태공간 모델에는 상태가 4개 있습니다. 따라서 4개의 요소가 있는 초기 조건 벡터를 제공하십시오.

    x0 = [0.3,0.25,1,4];

    초기 조건 응답 플롯을 만듭니다.

    initial(sys,x0);

    Figure contains 2 axes objects. Axes object 1 contains an object of type line. These objects represent Driving inputs, sys. Axes object 2 contains an object of type line. These objects represent Driving inputs, sys.

    그 결과로 만들어진 플롯에는 sys의 각 출력에 대해 하나씩 두 개의 서브플롯이 포함됩니다.

    이 예제에서는 다음 영점-극점-이득 모델의 초기 조건 응답을 검토하고 플롯을 tFinal = 15초로 제한합니다.

    먼저 initial은 상태공간 모델만 지원하므로 zpk 모델을 ss 모델로 변환합니다.

    sys = ss(zpk(-1,[-0.2+3j,-0.2-3j],1)*tf([1 1],[1 0.05]));
    tFinal = 15;
    x0 = [4,2,3];

    이제 초기 조건 응답 플롯을 만듭니다.

    initial(sys,x0,tFinal);

    Figure contains an axes object. The axes object contains an object of type line. These objects represent Driving inputs, sys.

    이 예제에서는 3개의 동적 시스템의 초기 조건 응답을 플로팅합니다.

    먼저 3개의 모델을 만들고 초기 조건을 제공합니다. 모든 모델은 가지고 있는 상태의 수가 동일해야 합니다.

    rng('default');
    sys1 = rss(4); 
    sys2 = rss(4);
    sys3 = rss(4);
    x0 = [1,1,1,1];

    5초 범위의 시간 벡터 t를 사용하여 3개 모델의 초기 조건 응답을 플로팅합니다.

    t = 0:0.1:5;
    initial(sys1,'r--',sys2,'b',sys3,'g-.',x0,t)

    Figure contains an axes object. The axes object contains 3 objects of type line. These objects represent Driving inputs, sys1, sys2, sys3.

    2개의 상태가 있는 다음과 같은 상태공간 모델의 초기 조건 응답 데이터를 추출합니다.

    [x˙1x˙2]=[-0.5572-0.78140.78140][x1x2]y=[1.96916.4493][x1x2].

    다음과 같은 초기 조건을 사용합니다.

    x(0)=[10].

    a = [-0.5572, -0.7814; 0.7814, 0];
    c = [1.9691  6.4493];
    x0 = [1 ; 0];
    sys = ss(a,[],c,[]);
    [y,tOut,x] = initial(sys,x0);

    배열 y는 행 개수가 시간 샘플의 개수(tOut의 길이)와 같고 열 개수가 출력의 개수와 같습니다. 마찬가지로, x는 행 개수가 시간 샘플의 개수(tOut의 길이)와 같고 열 개수가 상태의 개수와 같습니다.

    이 예제에서는 6개의 상태, 3개의 출력, 2개의 입력이 있는 상태공간 모델의 초기 조건 응답 데이터를 추출합니다.

    먼저 모델을 만들고 초기 조건을 제공합니다.

    rng('default');
    sys = rss(6,3,2); 
    x0 = [0.1,0.3,0.05,0.4,0.75,1];

    15초 범위의 시간 벡터 t를 사용하여 모델의 초기 조건 응답을 추출합니다.

    t = 0:0.1:15;
    [y,tOut,x] = initial(sys,x0,t);

    배열 y는 행 개수가 시간 샘플의 개수(tOut의 길이)와 같고 열 개수가 출력의 개수와 같습니다. 마찬가지로, x는 행 개수가 시간 샘플의 개수(tOut의 길이)와 같고 열 개수가 상태의 개수와 같습니다.

    입력 인수

    모두 축소

    동적 시스템으로, SISO 또는 MIMO 동적 시스템 모델로 지정되거나 동적 시스템 모델로 구성된 배열로 지정됩니다. 다음 유형의 상태공간 모델만 사용할 수 있습니다.

    • 연속시간 또는 이산시간 수치적 ss 모델.

    • 일반화된 모델 또는 불확실 LTI 모델(예: genss, uss 모델). (불확실 모델을 사용하려면 Robust Control Toolbox™가 필요합니다.)

      • 조정 가능한 제어 설계 블록의 경우, 이 함수는 응답 데이터를 플로팅하거나 반환할 때 모두 현재 값에서 모델을 계산합니다.

      • 불확실한 제어 설계 블록의 경우, 이 함수는 모델의 공칭 값과 임의 샘플을 플로팅합니다. 출력 인수를 사용할 경우, 이 함수는 공칭 모델에 대해서만 응답 데이터를 반환합니다.

    • 희소 상태공간 모델(예: sparss, mechss 모델). 희소 상태공간 모델의 경우 최종 시간 tFinal을 지정해야 합니다.

    sys가 모델로 구성된 배열인 경우 이 함수는 배열에 포함된 모든 모델의 응답을 동일한 좌표축에 플로팅합니다.

    응답 계산의 종료 시간으로, 양의 스칼라 값으로 지정됩니다. initialt = 0에서 t = tFinal까지의 응답을 시뮬레이션합니다.

    • 연속시간 시스템의 경우, 이 함수는 시스템 동특성을 기반으로 스텝 크기와 지점의 수를 자동으로 결정합니다. tFinalsysTimeUnit 속성에 지정된 시스템 시간 단위로 표현합니다.

    • 이산시간 시스템의 경우, 이 함수는 sys의 샘플 시간을 스텝 크기로 사용합니다. tFinalsysTimeUnit 속성에 지정된 시스템 시간 단위로 표현합니다.

    • 샘플 시간이 지정되지 않은(Ts = -1) 이산시간 시스템의 경우 initialtFinal을 시뮬레이션할 샘플링 주기의 개수로 해석합니다.

    응답을 계산할 시간 벡터로, 양의 스칼라 값으로 구성된 벡터로 지정됩니다. tsysTimeUnit 속성에 지정된 시스템 시간 단위로 표현합니다.

    • 연속시간 모델의 경우, tTi:dt:Tf 형식으로 지정합니다. 각 시간 스텝에서의 응답을 구하기 위해, 이 함수는 dt를 연속 시스템에 대한 이산 근사의 샘플 시간으로 사용합니다.

    • 이산시간 모델의 경우, tTi:Ts:Tf 형식으로 지정합니다. 여기서 Tssys의 샘플 시간입니다.

    initialTi와 관계없이 항상 t = 0에서 입력을 적용합니다.

    선 스타일, 마커 및 색으로, string형이나 1개, 2개 또는 3개의 문자로 구성된 벡터로 지정됩니다. 문자는 어떤 순서로 지정해도 좋습니다. 세 가지 특성(선 스타일, 마커, 색)을 모두 지정할 필요는 없습니다. 예를 들어 선 스타일을 생략하고 마커를 지정하면 플롯은 마커만 표시하고 선은 표시하지 않습니다. 이 인수를 구성하는 방법에 대한 자세한 내용은 plot 함수의 LineSpec 입력 인수를 참조하십시오.

    예: 'r--'은 빨간색 파선을 지정합니다.

    예: '*b'는 파란색 별표 마커를 지정합니다.

    예: 'y'는 노란색 선을 지정합니다.

    상태의 초기 조건으로, 벡터로 지정됩니다. x0의 길이는 sys가 갖는 상태의 개수와 같아야 합니다.

    출력 인수

    모두 축소

    응답 데이터로, 배열로 반환됩니다.

    • SISO 시스템의 경우, yt(제공된 경우) 또는 tOut(t가 제공되지 않은 경우)과 동일한 길이의 열 벡터입니다.

    • 단일 입력 다중 출력 시스템의 경우, y는 행 수가 시간 샘플의 개수와 같고 열 수가 출력의 개수와 같은 행렬입니다. 따라서 y의 j번째 열, 즉 y(:,j)는 해당 입력에서 j번째 출력으로의 응답을 포함합니다.

    • MIMO 시스템의 경우 y의 차원은 N×Ny입니다. 여기서 각각은 다음을 나타냅니다.

      • N은 시간 샘플의 개수입니다.

      • Ny는 시스템 출력의 개수입니다.

    응답이 계산되는 시간으로, 벡터로 반환됩니다. 시간 벡터 t를 특정하지 않으면, initial은 시스템 동특성을 기반으로 이 시간 벡터를 선택합니다. 시간은 sys의 시간 단위로 표현됩니다.

    상태 궤적으로, 배열로 반환됩니다. xt 또는 tOut의 각 시간에서의 sys의 상태 변화를 포함합니다. x의 차원은 N×Nx입니다. 여기서 각각은 다음을 나타냅니다.

    • N은 시간 샘플의 개수입니다.

    • Nx는 상태 개수입니다.

    버전 내역

    R2006a 이전에 개발됨