Main Content

step

동적 시스템의 계단 응답

설명

step은 td의 시간 이후 U에서 dU까지의 입력값의 계단 변동에 대한 계단 응답을 계산합니다.

Step response plot characterized by start time, final time, baseline input, step amplitude, and time delay.

여기서 각각은 다음을 나타냅니다.

  • t0은 시작 시간입니다.

  • td는 계단 지연입니다.

  • tf는 최종 시간입니다.

  • U는 기준 입력값입니다.

  • dU는 계단 진폭입니다.

기본적으로, 이 함수는 t0 = 0, U = 0, dU = 1, td = 0의 값으로 계단 변동을 적용합니다. 하지만 RespConfig를 사용하여 이러한 값을 따로 구성할 수 있습니다. 또한 초기 상태 x(t0)을 지정할 수 있습니다. 그러지 않으면 step은 시스템의 초기 상태가 입력값 U에서 변동 없는 상태인 것으로 가정합니다.

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

[y,tOut] = step(sys,tFinal)t = 0부터 종료 시간 t = tFinal까지의 계단 응답을 계산합니다.

[y,tOut] = step(sys,[t0,tFinal])t0부터 tFinal까지의 계단 응답을 계산합니다. 계단 지연 td가 있는 응답 구성의 경우, 이 함수는 시간 t = t0 + td에서 계단 변동을 적용합니다. (R2023b 이후)

예제

[y,tOut] = step(sys,t)는 벡터 t에 지정된 시간에서 동적 시스템 모델 sys의 계단 응답을 반환합니다.

예제

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

예제

[y,tOut] = step(sys,___,config)는 계단 진폭(dU) 또는 입력 오프셋(U)과 같은 계단 응답을 계산하기 위한 추가 옵션을 지정합니다. 옵션 세트 config를 만들려면 RespConfig를 사용하십시오. config는 위에 열거된 입력 인수와 출력 인수를 원하는 대로 조합하여 사용할 수 있습니다.

[y,tOut,x] = step(sys,___)sys가 상태공간 모델(예: ss 또는 idss 모델)일 때 상태 궤적 x도 반환합니다.

예제

[y,tOut,x,ysd] = step(sys,___)sys가 식별된 모델(예: idss, idtf 또는 idnlarx 모델)일 때 계단 응답 y의 표준편차 ysd도 계산합니다.

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

예제

step(sys,___)sys의 응답을 플로팅합니다. 이 구문은 stepplot(sys,__)와 동일합니다. 추가 플롯 사용자 지정 옵션이 필요하면 대신 stepplot을 사용하십시오.

예제

모두 축소

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

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

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

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

계단 응답을 플로팅합니다.

step(sys)

step 플롯에는 정상 상태 응답을 나타내는 가로 점선이 자동으로 포함됩니다. MATLAB® Figure 창에서, 플롯을 마우스 오른쪽 버튼으로 클릭하면 피크 응답, 정착 시간 등의 다른 계단 응답 특성을 볼 수 있습니다. 이러한 특성에 대한 자세한 내용은 stepinfo 항목을 참조하십시오.

이산시간 시스템의 계단 응답을 플로팅합니다. 시스템은 샘플 시간이 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);
step(sys)

계단 응답은 이 모델의 이산화를 반영하며 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.
step(sys)

기본적으로, step은 응답이 향하고 있는 정상 상태가 보이도록 종료 시간을 선택합니다. 하지만 이 시스템은 빠른 과도를 가지고 있으며 이러한 시간 스케일에서는 파악하기가 어렵습니다. 과도 응답을 자세히 살펴보기 위해 계단 플롯을 t = 15초로 제한합니다.

step(sys,15)

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

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

이 플롯은 t = 20에서 시작하지만 step은 항상 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개의 채널(첫 번째 입력부터 출력까지, 두 번째 입력부터 출력까지)이 있습니다. 채널마다 각각의 계단 응답이 있습니다.

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

step(sys)

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

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

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

step을 사용하면 여러 동적 시스템의 응답을 동일한 축에 플로팅할 수 있습니다. 예를 들어 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);
step(sys1,sys2)
legend('PI','PID','Location','SouthEast')

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

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

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

'Compare Responses of Multiple Systems' 예제에서는 여러 시스템의 응답을 하나의 축에 플로팅하는 방법을 보여줍니다. 모델 배열로 정렬된 여러 동적 시스템이 있는 경우 step은 시스템의 모든 응답을 한 번에 플로팅합니다.

모델 배열을 만듭니다. 이 예제에서는 서로 다른 고유 주파수를 가진 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 항목을 참조하십시오.) 배열에 있는 모든 모델의 계단 응답을 플로팅합니다.

step(sys)

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

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

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

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

sys = tf(4,[1 2 10]);
t = 0:0.05:5;
y = step(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 = step(sys,t);
size(y)
ans = 1×3

   200     1     2

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

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

지연이 있는 피드백 루프를 만들고 이 피드백 루프의 계단 응답을 플로팅합니다.

s = tf('s');
G = exp(-s) * (0.8*s^2+s+2)/(s^2+s);
sys = feedback(ss(G),1);
step(sys)

무질서한 시스템 계단 응답이 표시되어 있습니다. 내부 지연이 있는 시스템의 계단 응답에는 반복적인 비약과 같은 이상 동작이 나타날 수 있습니다. 이러한 동작은 시스템의 특징이며 소프트웨어 이상이 아닙니다.

기본적으로, stept = 0일 때 0에서 1로 변하는 입력 신호를 적용합니다. 진폭과 오프셋을 설정하기 위해 RespConfig를 사용합니다. 예를 들어 t = 0일 때 1에서 –1로 변하는 신호에 대한 SISO 상태공간 모델의 응답을 계산해 보겠습니다.

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);

opt = RespConfig;
opt.InputOffset = 1;
opt.Amplitude = -2;

step(sys,opt)

임의의 입력 신호에 대한 응답에는 lsim을 사용합니다.

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

데이터를 불러옵니다.

load iddata1 z1

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

sys1 = ssest(z1,4);

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

sys2 = impulseest(z1);

비교를 위해 계단 응답을 플로팅합니다.

t = (0:0.1:10)';
[y1, ~, ~, ysd1] = step(sys1,t);
[y2, ~, ~, ysd2] = step(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:')

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

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

데이터를 불러옵니다.

load iddata9;

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

sys = ar(z9, 4);

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

계단 응답을 플로팅합니다.

step(sys)

선형 모델과 비선형 모델의 작은 진폭 계단 응답을 비교하여 비선형 ARX 모델의 선형화를 검증합니다.

데이터를 불러옵니다.

load iddata2 z2;

비선형 ARX 모델을 추정합니다.

nlsys = nlarx(z2,[4 3 10],idTreePartition,'custom',...
    {'sin(y1(t-2)*u1(t))+y1(t-2)*u1(t)+u1(t).*u1(t-13)',...
    'y1(t-5)*y1(t-5)*y1(t-1)'},'nlr',[1:5, 7 9]);

정상 상태 입력값 1에 대응하는 nlsys의 평형 동작점을 파악합니다.

u0 = 1;
[X,~,r] = findop(nlsys, 'steady', 1);
y0 = r.SignalLevels.Output;

이 동작점에서 nlsys의 선형 근사를 구합니다.

sys = linearize(nlsys,u0,X);

sys의 유용성을 검증하기 위해 sys의 작은 진폭 계단 응답을 nlsys의 작은 진폭 계단 응답과 비교합니다.

비선형 시스템 nlsys(u0,y0)으로 정해지는 평형 레벨에서 동작하고 있습니다. 이 정상 상태에 대해 크기가 0.1인 계단 섭동을 발생시키고 대응하는 응답을 계산합니다.

opt = RespConfig;
opt.InputOffset = u0;
opt.Amplitude = 0.1;
t = (0:0.1:10)';
ynl = step(nlsys, t, opt);

선형 시스템 sys는 입력의 섭동과 출력의 대응하는 섭동 간의 관계를 표현합니다. 그리고 비선형 시스템의 평형 값을 인식하지 못합니다.

선형 시스템의 계단 응답을 플로팅합니다.

opt = RespConfig;
opt.Amplitude = 0.1;
yl = step(sys, t, opt);

정상 상태 오프셋 y0을 선형 시스템의 응답에 더하고 응답을 플로팅합니다.

plot(t, ynl, t, yl+y0)
legend('Nonlinear', 'Linear with offset')

LPV(lpvss) 모델의 계단 응답을 계산하고 플로팅합니다. 이 예제에서는 fcnMaglev.m에 정의된 공중에 뜨는 공 모델의 외란 du에 대한 폐루프 계단 응답을 시뮬레이션합니다.

maglev-feedback.png

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

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);

입력 외란과 참조 값의 계단 변동에 대한 응답을 계산하고 플로팅합니다. 입력 오프셋 du = 0과 h = h0을 설정하여 시작 정상 상태 조건을 지정합니다.

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

입력 인수

모두 축소

동적 시스템으로, SISO 또는 MIMO 동적 시스템 모델로 지정되거나 동적 시스템 모델로 구성된 배열로 지정됩니다. 사용 가능한 동적 시스템에는 다음이 포함됩니다.

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

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

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

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

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

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

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

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

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

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

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

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

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

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

  • 연속시간 모델의 경우, tT0:dt:Tf 형식으로 지정합니다. 각 시간 스텝에서의 응답을 구하기 위해 이 함수는 연속 시스템에 대한 이산 근사의 샘플 시간으로 dt를 사용합니다(알고리즘 항목 참조). 시뮬레이션은 T0에서 시작하고 Tf에서 끝납니다.

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

R2023b 이후

계단 응답의 시간 범위로, 양의 스칼라 값으로 구성된 2개 요소 벡터로 지정됩니다. stept = t0부터 t = tFinal까지의 계단 응답을 시뮬레이션합니다.

RespConfig를 사용하여 계단 지연 td를 지정한 경우, 이 함수는 t = t0+td에서 계단 변동을 적용합니다.

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

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

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

  • 내생적 궤적 또는 묵시적 궤적의 경우, p를 연속시간에서는 p = F(t,x,u) 형식의 함수 핸들로 지정하고, 이산시간에서는 p = F(k,x,u) 형식의 함수 핸들로 지정합니다. 이때 파라미터를 시간 t 또는 시간 샘플 k, 상태 x, 입력 u의 함수로 제공합니다.

    이 옵션은 준LPV 모델을 시뮬레이션려는 경우에 유용합니다. 예제는 LPV 모델의 계단 응답 항목을 참조하십시오.

적용된 신호의 구성으로, RespConfig 옵션 세트로 지정됩니다. 기본적으로, step은 시간 t = 0일 때 0에서 1로 변하는 입력을 적용합니다. 계단 입력의 구성을 변경하려면 이 입력 인수를 사용하십시오. 예제는 사용자 지정 계단 입력에 대한 응답 항목을 참조하십시오.

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

출력 인수

모두 축소

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

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

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

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

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

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

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

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

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

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

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

  • Nx는 상태 개수입니다.

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

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

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

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

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

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

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

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

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

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

알고리즘

내부 지연이 없는 연속시간 모델의 샘플을 얻기 위해 step은 이러한 모델을 상태공간 모델로 변환하고 입력에 영차 유지를 사용하여 이 변환된 모델을 이산화합니다. 입력 시간 벡터 tt = T0:dt:Tf 형식으로 제공한 경우를 제외하고, step은 시스템 동특성을 기반으로 이러한 이산화에 대한 샘플링 시간을 자동으로 선택합니다. 이 경우 stepdt를 샘플링 시간으로 사용합니다. 결과로 생성되는 시뮬레이션 시간 스텝 tOutdt 간격으로 일정하게 샘플링됩니다.

내부 지연이 있는 시스템의 경우, Control System Toolbox™는 가변 스텝 솔버를 사용합니다. 따라서 시간 스텝 tOut은 일정한 간격으로 샘플링되지 않습니다.

참고 문헌

[1] L.F. Shampine and P. Gahinet, "Delay-differential-algebraic equations in control theory," Applied Numerical Mathematics, Vol. 56, Issues 3–4, pp. 574–588.

버전 내역

R2006a 이전에 개발됨

모두 확장