주요 콘텐츠

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

impulse

동적 시스템의 임펄스 응답 플롯, 임펄스 응답 데이터

    설명

    [y,tOut] = impulse(sys)는 동적 시스템 sys의 임펄스 응답 y를 계산합니다. impulse는 시스템 동특성을 기반으로 시뮬레이션의 시간 스텝과 지속 시간을 자동으로 판단합니다.

    [y,tOut] = impulse(sys,t)t로 지정된 시간 스텝에 대한 응답을 시뮬레이션합니다. 시간 스텝을 정의하려면 다음을 지정할 수 있습니다.

    • 스칼라 값을 사용하여 최종 시뮬레이션 시간 지정.

    • 요소를 2개 가진 벡터를 사용하여 초기 및 최종 시뮬레이션 시간 지정. (R2023b 이후)

    • 벡터를 사용하여 모든 시간 스텝 지정.

    [y,tOut] = impulse(sys,t,p)는 선형 파라미터 가변(LPV) 모델에 대한 파라미터 궤적 p를 지정합니다. (R2023a 이후)

    [y,t,x] = impulse(___)sys가 상태공간 모델일 때 상태 궤적 x도 반환합니다.

    예제

    [y,t,x,ysd] = impulse(___)는 식별된 모델에 대한 임펄스 응답의 표준편차를 반환합니다.

    예제

    [y,tOut,x,~,pOut] = impulse(sys,t,p)는 LPV 모델에 대한 파라미터 궤적을 반환합니다. (R2023a 이후)

    [y,tOut] = impulse(___,config)는 진폭 또는 입력 오프셋과 같은 임펄스 응답을 계산하기 위한 추가 옵션을 지정합니다. 옵션 세트 config를 만들려면 RespConfig를 사용하십시오.

    예제

    impulse(___)는 위에 열거된 모든 입력 인수의 조합에 디폴트 플로팅 옵션을 사용하여 sys의 임펄스 응답을 플로팅합니다. 플롯 사용자 지정 옵션이 더 필요하면 impulseplot을 사용하십시오.

    • 여러 동적 시스템의 응답을 동일한 플롯에 플로팅하려면 sys를 쉼표로 구분된 모델 목록으로 지정할 수 있습니다. 예를 들어, impulse(sys1,sys2,sys3)은 세 모델의 응답을 동일한 플롯에 플로팅합니다.

    • 플롯에 있는 각 시스템의 색, 선 스타일 및 마커를 지정하려면 각 시스템의 LineSpec 값을 지정합니다. 예를 들어, impulse(sys1,LineSpec1,sys2,LineSpec2)는 두 모델을 플로팅하고 각각의 플롯 스타일을 지정합니다. LineSpec 값 지정에 대한 자세한 내용은 impulseplot 항목을 참조하십시오.

    예제

    모두 축소

    다음 전달 함수로 표현되는 연속시간 시스템의 임펄스 응답을 플로팅합니다.

    sys(s)=4s2+2s+10

    이 예제에서는 전달 함수를 표현하는 tf 모델을 만듭니다. 다른 동적 시스템 모델 유형(예: 영점-극점 이득(zpk) 모델 또는 상태공간(ss) 모델)의 임펄스 응답도 비슷한 방식으로 플로팅할 수 있습니다.

    sys = tf(4,[1 2 10]);

    임펄스 응답을 플로팅합니다.

    impulse(sys)

    MATLAB figure

    impulse 플롯에는 정상 상태 응답을 나타내는 가로 점선이 자동으로 포함됩니다. MATLAB® Figure 창에서, 플롯을 마우스 오른쪽 버튼으로 클릭하면 피크 응답, 과도 시간 등의 다른 임펄스 응답 특성을 볼 수 있습니다.

    이산시간 시스템의 임펄스 응답을 플로팅합니다. 시스템은 샘플 시간이 0.2초이며 다음 상태공간 행렬로 표현됩니다.

    A = [1.6 -0.7;
          1  0];
    B = [0.5; 0];
    C = [0.1 0.1];
    D = 0;

    상태공간 모델을 만들고 이 모델의 임펄스 응답을 플로팅합니다.

    sys = ss(A,B,C,D,0.2);
    impulse(sys)

    MATLAB figure

    임펄스 응답은 이 모델의 이산화를 반영하며 0.2초마다 계산된 응답을 보여줍니다.

    다음 영점-극점-이득 모델의 임펄스 응답을 검토합니다.

    sys = zpk(-1,[-0.2+3j,-0.2-3j],1) * tf([1 1],[1 0.05]) 
    sys =
     
                (s+1)^2
      ----------------------------
      (s+0.05) (s^2 + 0.4s + 9.04)
     
    Continuous-time zero/pole/gain model.
    Model Properties
    
    impulse(sys)

    MATLAB figure

    기본적으로, impulse는 응답이 향하고 있는 정상 상태가 보이도록 종료 시간을 선택합니다. 과도 응답을 자세히 살펴보기 위해 임펄스 플롯을 t = 20초로 제한합니다.

    impulse(sys,20)

    MATLAB figure

    또는 시간이 일정한 간격으로 구분된 경우 임펄스 응답을 확인할 정확한 시간을 지정할 수 있습니다. 예를 들어 과도가 끝나는 시점부터 시스템이 정상 상태에 도달하는 시점까지의 응답을 살펴보겠습니다.

    t = 20:0.2:120;
    impulse(sys,t)

    MATLAB figure

    이 플롯은 t = 20에서 시작하지만 impulse은 항상 t = 0에서 임펄스 입력을 적용합니다.

    다음과 같은 2차 상태공간 모델이 있다고 가정하겠습니다.

    [x˙1x˙2]=[-0.5572-0.78140.78140][x1x2]+[1-102][u1u2]y=[1.96916.4493][x1x2]

    A = [-0.5572,-0.7814;0.7814,0];
    B = [1,-1;0,2];
    C = [1.9691,6.4493];
    sys = ss(A,B,C,0);

    이 모델에는 2개의 입력과 1개의 출력이 있습니다. 따라서 2개의 채널(첫 번째 입력부터 출력까지, 두 번째 입력부터 출력까지)이 있습니다. 채널마다 각각의 임펄스 응답이 있습니다.

    impulse를 사용하면 모든 채널의 응답이 계산됩니다.

    impulse(sys)

    MATLAB figure

    왼쪽 플롯은 첫 번째 입력 채널의 임펄스 응답을 보여주고, 오른쪽 플롯은 두 번째 입력 채널의 임펄스 응답을 보여줍니다. MIMO 모델의 응답을 플로팅하기 위해 impulse를 사용할 때마다 모델의 모든 I/O 채널을 나타내는 플롯으로 구성된 배열이 생성됩니다. 예를 들어 5개의 상태, 3개의 입력, 2개의 출력이 있는 임의의 상태공간 모델을 만들고 이 모델의 임펄스 응답을 플로팅합니다.

    sys = rss(5,2,3);
    impulse(sys)

    MATLAB figure

    MATLAB Figure 창에서, 플롯을 마우스 오른쪽 버튼으로 클릭하고 I/O 선택기를 선택하여 채널의 일부만 포함하도록 플롯을 제한할 수 있습니다.

    impulse를 사용하면 여러 동적 시스템의 응답을 동일한 축에 플로팅할 수 있습니다. 예를 들어 PI 제어기를 가진 시스템과 PID 제어기를 가진 시스템의 폐루프 응답을 비교해 보겠습니다. 이 시스템의 전달 함수를 만들고 이 제어기들을 조정합니다.

    H = tf(4,[1 2 10]);
    C1 = pidtune(H,'PI');
    C2 = pidtune(H,'PID');

    폐루프 시스템을 형성하고 시스템의 임펄스 응답을 플로팅합니다.

    sys1 = feedback(H*C1,1);
    sys2 = feedback(H*C2,1);
    impulse(sys1,sys2)
    legend('PI','PID','Location','SouthEast')

    MATLAB figure

    기본적으로, impulse는 플로팅하는 각 시스템에 대해 다른 색을 선택합니다. LineSpec 입력 인수를 사용하여 색과 선 스타일을 지정할 수 있습니다.

     impulse(sys1,'r--',sys2,'b')
     legend('PI','PID','Location','SouthEast')

    MATLAB figure

    첫 번째 LineSpec 'r--'는 PI 제어기 응답에 대해 빨간색 파선을 지정합니다. 두 번째 LineSpec 'b'는 PID 제어기 응답에 대해 파란색 실선을 지정합니다. 지정된 색과 선 스타일이 범례에 반영됩니다. 추가 플롯 사용자 지정 옵션이 필요하면 impulseplot을 사용하십시오.

    여러 시스템의 임펄스 응답 비교하기 예제에서는 여러 시스템의 응답을 하나의 축에 플로팅하는 방법을 보여줍니다. 모델 배열로 정렬된 여러 동적 시스템이 있는 경우 impulse는 시스템의 모든 응답을 한 번에 플로팅합니다.

    모델 배열을 만듭니다. 이 예제에서는 서로 다른 고유 주파수를 가진 2차 전달 함수로 구성된 1차원 배열을 사용합니다. 먼저, 모델 배열에 대해 메모리를 사전할당합니다. 다음 명령은 영이득 SISO 전달 함수로 구성된 1×5 행을 만듭니다. 처음 두 차원은 모델 출력과 모델 입력을 나타냅니다. 나머지 차원은 배열 차원입니다.

     sys = tf(zeros(1,1,1,5));

    배열을 채웁니다.

    w0 = 1.5:1:5.5;    % natural frequencies
    zeta = 0.5;        % damping constant
    for i = 1:length(w0)
       sys(:,:,1,i) = tf(w0(i)^2,[1 2*zeta*w0(i) w0(i)^2]);
    end

    (모델 배열에 대한 자세한 내용과 모델 배열을 만드는 방법은 Model Arrays (Control System Toolbox) 항목을 참조하십시오.) 배열에 있는 모든 모델의 임펄스 응답을 플로팅합니다.

    impulse(sys)

    MATLAB figure

    impulse는 배열에 있는 모든 요소의 응답에 대해 동일한 선 스타일을 사용합니다. 요소를 구분하는 한 가지 방법은 동적 시스템 모델의 SamplingGrid 속성을 사용하여 배열의 각 요소를 대응하는 w0 값과 연결하는 것입니다.

    sys.SamplingGrid = struct('frequency',w0);

    이제 MATLAB Figure 창에서 응답을 플로팅할 때, 각 응답선을 클릭하면 요소가 어떤 주파수 값에 대응하는지 확인할 수 있습니다.

    출력 인수를 제공하면 impulse는 응답 데이터로 구성된 배열을 반환합니다. SISO 시스템의 경우, 응답 데이터는 응답이 샘플링된 시점 개수와 동일한 길이의 열 벡터로 반환됩니다. 시점으로 구성된 벡터 t를 제공하거나 impulse 함수가 시스템 동특성을 기반으로 시점을 정하도록 할 수 있습니다. 예를 들어 t = 0과 t = 5초 사이의 101개 시점에서 SISO 시스템의 임펄스 응답을 추출해 봅니다.

    sys = tf(4,[1 2 10]);
    t = 0:0.05:5;
    y = impulse(sys,t);
    size(y)
    ans = 1×2
    
       101     1
    
    

    MIMO 시스템의 경우, 응답 데이터는 N×Ny×Nu 차원의 배열로 반환됩니다. 여기서 NyNu는 동적 시스템의 출력 개수와 입력 개수입니다. 예를 들어 2-입력, 1-출력 시스템을 나타내는 다음과 같은 상태공간 모델이 있다고 가정하겠습니다.

    A = [-0.5572,-0.7814;0.7814,0];
    B = [1,-1;0,2];
    C = [1.9691,6.4493];
    sys = ss(A,B,C,0);

    t = 0과 t = 20초 사이의 200개 시점에서 이 시스템의 임펄스 응답을 추출합니다.

    t = linspace(0,20,200);
    y = impulse(sys,t);
    size(y)
    ans = 1×3
    
       200     1     2
    
    

    y(:,i,j)는 시간 t에서 j번째 입력에서 i번째 출력으로의 임펄스 응답을 포함하는 열 벡터입니다. 예를 들어 두 번째 입력에서 출력까지의 임펄스 응답을 추출해 보겠습니다.

    y12 = y(:,1,2);
    plot(t,y12)

    Figure contains an axes object. The axes object contains an object of type line.

    식별된 모수적 모델의 임펄스 응답을 비모수적(경험적) 모델과 비교합니다. 또한 두 모델의 3σ 신뢰영역을 표시합니다.

    데이터를 불러옵니다.

    load iddata1 z1

    모수적 모델을 추정합니다.

    sys1 = ssest(z1,4);

    비모수적 모델을 추정합니다.

    sys2 = impulseest(z1);

    비교를 위해 임펄스 응답을 플로팅합니다.

    t = (0:0.1:10)';
    [y1, ~, ~, ysd1] = impulse(sys1,t);
    [y2, ~, ~, ysd2] = impulse(sys2,t);
    plot(t, y1, 'b', t, y1+3*ysd1, 'b:', t, y1-3*ysd1, 'b:')
    hold on
    plot(t, y2, 'g', t, y2+3*ysd2, 'g:', t, y2-3*ysd2, 'g:')

    Figure contains an axes object. The axes object contains 6 objects of type line.

    식별된 시계열 모델의 임펄스 응답을 계산합니다.

    신호 모델이라고도 하는 시계열 모델은 측정된 입력 신호가 없는 모델입니다. 이 모델의 임펄스 플롯은 (측정되지 않은) 잡음 채널을 임펄스 신호를 적용할 입력 채널로 사용합니다.

    데이터를 불러옵니다.

    load iddata9;

    시계열 모델을 추정합니다.

    sys = ar(z9, 4);

    sysA y(t) = e(t) 형식의 모델입니다. 여기서 e(t)는 잡음 채널을 나타냅니다. 임펄스 응답 계산에서 e(t)는 입력 채널로 처리되며 이름이 e@y1로 지정됩니다.

    임펄스 응답을 플로팅합니다.

    impulse(sys)

    MATLAB figure

    상태공간 모델을 만듭니다.

    A = [-0.8429,-0.2134;-0.5162,-1.2139];
    B = [0.7254,0.7147;0,-0.2050];
    C = [-0.1241,1.4090;1.4897,1.4172];
    D = [0.6715,0.7172;-1.2075,0];
    sys = ss(A,B,C,D);

    디폴트 옵션 세트를 만들고 점 표기법을 사용하여 값을 지정합니다.

    respOpt = RespConfig;
    respOpt.Bias = [-2,3];
    respOpt.Amplitude = [2,-0.5];
    respOpt.InitialState = [0.1,-0.1];
    respOpt.Delay = 5;

    임펄스 응답을 계산합니다.

    t = 0:0.1:20;
    impulse(sys,t,respOpt)

    MATLAB figure

    이 예제에서는 LPV 모델의 임펄스 응답을 시뮬레이션하는 방법을 보여줍니다. 이 예제에서는 fcnMaglev.m에 정의된 공중에 뜨는 공 모델의 외란 du에 대한 폐루프 응답을 시뮬레이션합니다.

    maglev-feedback.png

    시스템을 적절히 초기화하고 h = h0 정도에서 유지하도록 기준을 h0으로 설정해야 합니다.

    모델을 만들고 이산화합니다.

    hmin = 0.05; 
    hmax = 0.25;
    h0 = (hmin+hmax)/2;
    Ts = 0.01;
    Glpv = lpvss("h",@fcnMaglev,0,0,h0);
    Glpvd = c2d(Glpv,Ts,"tustin"); 

    3개의 높이 값에 대해 LPV 모델을 샘플링하고 PID 제어기를 조정합니다.

    hpid = linspace(hmin,hmax,3);
    [Ga,Goffset] = sample(Glpvd,[],hpid);
    wc = 50;
    Ka = pidtune(Ga,"pidf",wc);
    Ka.Tf = 0.01;

    이득 스케줄링이 적용된 PID 제어기를 만듭니다.

    Ka.SamplingGrid = struct("h",hpid);
    Koffset = struct("y",{Goffset.u});
    Clpv = ssInterpolant(ss(Ka),Koffset);

    폐루프 모델을 만듭니다.

    CL = feedback(Glpvd*[1,Clpv],1,2,1);
    CL.InputName = {'du';'href'};
    CL.OutputName = "h";

    h = h0에 대해 정상 상태 전류를 구하여 외란의 크기를 계산합니다.

    [~,~,~,~,~,~,~,u0] = Glpv.DataFunction(0,h0);

    duh0의 임펄스 변화에 대한 응답입니다.

    t = 0:Ts:2;
    pFcn = @(k,x,u) x(1);
    Config = RespConfig(...
        Bias=[0;h0], ...
        Amplitude=0.2*[u0;h0]*Ts, ...
        Delay=0.5, ...
        InitialParameter=h0);
    impulse(CL,t,pFcn,Config)
    title("Current Impulse Disturbance and Height Impulse Change")

    MATLAB figure

    복소 계수를 갖는 상태공간 모델을 만듭니다.

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

    시스템의 임펄스 응답을 계산합니다.

    [y,t] = impulse(sys);

    결과로 얻은 응답 데이터에 복소수 출력값이 포함되어 있습니다.

    y
    y = 323×1 complex
    
       0.0000 + 0.0000i
       0.0674 + 0.2613i
       0.1529 + 0.4852i
       0.2502 + 0.6728i
       0.3537 + 0.8257i
       0.4585 + 0.9465i
       0.5607 + 1.0378i
       0.6570 + 1.1028i
       0.7447 + 1.1445i
       0.8221 + 1.1663i
       0.8877 + 1.1713i
       0.9409 + 1.1625i
       0.9813 + 1.1428i
       1.0090 + 1.1148i
       1.0245 + 1.0809i
          ⋮
    
    

    입력 인수

    모두 축소

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

    • 연속시간 또는 이산시간 수치적 LTI 모델(예: tf, zpk 또는 ss 모델).

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

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

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

    • 희소 상태공간 모델(예: sparssmechss 모델).

    • 식별된 LTI 모델(예: idtf, idss 또는 idproc 모델). 이러한 모델의 경우, 이 함수는 신뢰구간을 플로팅하고 주파수 응답의 표준편차를 반환할 수도 있습니다. 신뢰영역이 있는 식별된 모델의 계단 응답 항목을 참조하십시오.

    • 선형 시변(ltvss (Control System Toolbox)) 모델 및 선형 파라미터 가변(lpvss (Control System Toolbox)) 모델.

    이 함수는 주파수 응답 데이터 모델(예: frd, genfrd 또는 idfrd 모델)을 지원하지 않습니다.

    sys가 모델로 구성된 배열인 경우, 이 함수는 배열에 있는 모든 모델의 응답을 동일한 축에 플로팅합니다. 모델 배열에 있는 시스템의 계단 응답 항목을 참조하십시오.

    응답을 계산할 시간 스텝으로, 다음 값 중 하나로 지정됩니다.

    • 양의 스칼라 tFinalt = 0부터 t = tFinal까지의 응답을 계산합니다.

    • 요소를 2개 가진 벡터 [t0 tFinal]t = t0부터 t = tFinal까지의 응답을 계산합니다. (R2023b 이후)

    • 벡터 Ti:dt:Tft에 지정된 시점에 대한 응답을 계산합니다.

      • 연속시간 시스템의 경우 dt는 연속 시스템에 대한 이산 근사의 샘플 시간입니다.

      • 지정된 샘플 시간을 갖는 이산시간 시스템의 경우 dtsys의 샘플 시간 속성 Ts와 일치해야 합니다.

      • 샘플 시간이 지정되지 않은(Ts = -1) 이산시간 시스템의 경우 dt1이어야 합니다.

    • [] — 시스템 동특성을 기준으로 시간 값을 자동으로 선택합니다.

    다음은 tFinal 또는 [t0 tFinal]을 사용하여 시간 범위를 지정하는 경우입니다.

    • 연속시간 시스템의 경우, 이 함수는 시스템 동특성을 기준으로 시간 스텝의 크기와 점 개수를 자동으로 판단합니다.

    • 지정된 샘플 시간을 갖는 이산시간 시스템의 경우, 이 함수는 sys의 샘플 시간을 스텝 크기로 사용합니다.

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

    sysTimeUnit 속성에 지정된 시간 단위를 사용하여 t를 표현합니다.

    config를 사용하여 스텝 지연 td를 지정한 경우, 이 함수는 t = t0+td에서의 스텝을 적용합니다.

    LPV 모델의 파라미터 궤적으로, 행렬 또는 함수 핸들로 지정됩니다.

    • 외생적 궤적 또는 명시적 궤적의 경우, pN×Np 차원의 행렬로 지정합니다. 여기서 N은 시간 샘플 개수이고 Np는 파라미터 개수입니다.

      따라서 행 벡터 p(i,:)i번째 시간 스텝에서의 파라미터 값을 포함합니다.

    • 내생적 궤적 또는 묵시적 궤적의 경우, p를 시간 샘플 k, 상태 x, 입력 u의 함수로 파라미터를 제공하는 p = F(k,x,u) 형식의 함수 핸들로 지정합니다. impulse는 이산시간 LPV 모델에 대해서만 이 옵션을 지원합니다.

      이 옵션은 준LPV 모델을 시뮬레이션려는 경우에 유용합니다.

    적용된 임펄스 신호의 구성으로, RespConfig 객체로 지정됩니다. 기본적으로, impulse는 시간 t = 0일 때 입력을 적용합니다. 지연 또는 입력 오프셋 지정과 같은 응답 구성을 변경하려면 이 입력 인수를 사용하십시오. 예제는 임펄스 응답에 대한 옵션 구성하기 (Control System Toolbox) 항목을 참조하십시오.

    오프셋(x0(t),u0(t))가 있는 lpvss (Control System Toolbox) 모델 및 ltvss (Control System Toolbox) 모델의 경우, RespConfig를 사용하여 u0(t,p)를 기준으로 입력을 정의하고 상태 x0(t,p)로 시뮬레이션을 초기화할 수 있습니다.

    출력 인수

    모두 축소

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

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

    • 단일 입력, 다중 출력 시스템의 경우, y는 시간 샘플 개수만큼의 행과 출력 개수만큼의 열을 갖는 행렬입니다. 따라서 yj번째 열(y(:,j))은 입력에서 j번째 출력으로의 임펄스 응답을 포함합니다.

    • MIMO 시스템의 경우, 각 입력 채널의 임펄스 응답은 y의 세 번째 차원을 따라 쌓입니다. 따라서 y의 차원은 N×Ny×Nu입니다. 여기서 각각은 다음과 같습니다.

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

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

      • Nu는 시스템 입력 개수입니다.

      따라서 y(:,i,j)t 또는 tOut에 지정된 시간에서 j번째 입력에서 i번째 출력으로의 임펄스 응답을 포함하는 열 벡터입니다.

    • 복소 계수를 갖는 시스템의 경우, y는 복소수 값으로 구성된 배열입니다. (R2025a 이후)

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

    상태 궤적으로, 배열로 반환됩니다. sys가 상태공간 모델인 경우 xt 또는 tOut의 각 시간에서 sys 상태의 변화를 포함합니다. x의 차원은 N×Nx×Nu입니다. 여기서 각각은 다음과 같습니다.

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

    • Nx는 상태 개수입니다.

    • Nu는 시스템 입력 개수입니다.

    따라서 k번째 입력에서 주입된 임펄스 변동에 대한 응답의 상태 변화는 배열 x(:,:,k)에 있습니다. 행 벡터 x(i,:,k)i번째 시간 스텝에서의 상태 값을 포함합니다.

    복소 계수를 갖는 시스템의 경우, x는 복소수 값으로 구성된 배열입니다. (R2025a 이후)

    식별된 모델의 임펄스 응답의 표준편차로, y와 동일한 차원의 배열로 반환됩니다. sys에 파라미터 공분산 정보가 포함되어 있지 않으면 ysd는 비어 있습니다.

    파라미터 궤적으로, 배열로 반환됩니다. sys가 선형 파라미터 가변 모델인 경우 pOutt 또는 tOut의 각 시간에서 sys의 파라미터 변화를 포함합니다. pOut의 차원은 N×Np×Nu입니다. 여기서 각각은 다음과 같습니다.

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

    • Np는 파라미터 개수입니다.

    • Nu는 시스템 입력 개수입니다.

    따라서 k번째 입력에서 주입된 신호 변동에 대한 응답의 파라미터 변화는 배열 pOut(:,:,k)로 지정됩니다. 행 벡터 pOut(i,:,k)i번째 시간 스텝에서의 파라미터 값을 포함합니다.

    제한 사항

    • 0이 아닌 D 행렬을 포함하는 연속 시스템의 임펄스 응답은 t = 0에서 무한대입니다. impulse는 이 불연속을 무시하고 t = 0에서 더 낮은 연속성 값 Cb를 반환합니다.

    • impulse 명령은 내부 지연이 있는 연속시간 모델에서는 작동하지 않습니다. 이러한 모델의 경우 임펄스 응답을 계산하기 전에 pade (Control System Toolbox)를 사용하여 시간 지연 근삿값을 계산하십시오.

    • impulse 명령은 연속시간 LPV 모델에 대한 묵시적 파라미터 궤적을 따른 시뮬레이션을 지원하지 않습니다.

    • 임의의 입력 신호에 대한 시스템 응답을 시뮬레이션하려면 lsim을 사용하십시오.

    • 플롯 사용자 지정 옵션이 추가로 필요하면 대신 impulseplot을 사용하십시오.

    • impulse를 사용하여 생성된 플롯은 string형 배열이나 문자형 벡터로 구성된 셀형 배열을 사용해서 여러 줄로 된 제목이나 레이블을 지정하는 것을 지원하지 않습니다. 여러 줄로 된 제목과 레이블을 지정하려면 newline 문자가 포함된 단일 문자열을 사용하십시오.

      impulse(sys)
      title("first line" + newline + "second line");

    알고리즘

    연속시간 LTI 모델은 먼저 상태공간 형식으로 변환됩니다. 아래의 단일 입력 상태공간 모델의 임펄스 응답은

    x˙=Ax+buy=Cx

    초기 상태가 b인 다음의 비강제 응답과 동일합니다.

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

    이 응답을 시뮬레이션하기 위해 시스템은 입력에 대한 영차 유지를 사용하여 이산화됩니다. 샘플 시간은 시간 벡터 t = T0:dt:Tf가 제공되는 경우를 제외하고 시스템 동특성을 기반으로 자동으로 선택됩니다. 따라서 dt가 샘플 시간으로 사용됩니다.

    버전 내역

    R2006a 이전에 개발됨

    모두 확장

    참고 항목

    (Control System Toolbox) | | | | (Control System Toolbox) |