Main Content

impulseplot

추가적인 플롯 사용자 지정 옵션으로 임펄스 응답 플로팅

설명

impulseplot을 사용하면 impulse보다 광범위한 플롯 사용자 지정 옵션으로 동적 시스템 임펄스 응답을 플로팅할 수 있습니다. impulseplot을 사용하여 plot 핸들을 구할 수 있으며 축 레이블, 제한, 단위를 수정하는 등 플롯을 사용자 지정할 수도 있습니다. 또한 impulseplot을 사용하면 axes 핸들에 의해 표현된 기존 좌표축에 임펄스 응답 플롯을 그릴 수도 있습니다. plot 핸들을 사용하여 기존 임펄스 플롯을 사용자 지정하려면 다음을 수행하십시오.

  1. plot 핸들을 구합니다.

  2. getoptions를 사용하여 옵션 세트를 구합니다.

  3. setoptions를 사용해 플롯을 업데이트하여 필요한 옵션을 수정합니다.

자세한 내용은 Customizing Response Plots from the Command Line 항목을 참조하십시오. 디폴트 옵션을 사용하여 임펄스 플롯을 만들거나 임펄스 응답 데이터를 추출하려면 impulse를 사용하십시오.

예제

h = impulseplot(sys)동적 시스템 모델 sys의 임펄스 응답을 플로팅하고 플롯에 대한 plot 핸들 h를 반환합니다. getoptions 명령과 setoptions 명령에서 이 핸들 h를 사용하여 플롯을 사용자 지정할 수 있습니다.

예제

h = impulseplot(sys1,sys2,...,sysN)은 여러 동적 시스템 sys1,sys2,…,sysN의 임펄스 응답을 동일한 플롯에 플로팅합니다. 이 구문을 사용하려면 모든 시스템이 동일한 개수의 입력과 출력을 가져야 합니다.

예제

h = impulseplot(sys1,LineSpec1,...,sysN,LineSpecN)은 각 시스템의 임펄스 응답에 대해 선 스타일, 마커 유형, 색을 설정합니다. 이 구문을 사용하려면 모든 시스템이 동일한 개수의 입력과 출력을 가져야 합니다.

예제

h = impulseplot(___,tFinal)t = 0부터 최종 시간 t = tFinal까지의 임펄스 응답을 시뮬레이션합니다. tFinalsysTimeUnit 속성에 지정된 시스템 시간 단위로 지정합니다. 샘플 시간이 지정되지 않은 (Ts = -1) 이산시간 시스템의 경우 impulseplottFinal을 시뮬레이션할 샘플링 간격의 개수로 해석합니다.

예제

h = impulseplot(___,t)는 시간 벡터 t를 사용하여 임펄스 응답을 시뮬레이션합니다. tsysTimeUnit 속성에 지정된 시스템 시간 단위로 지정합니다.

h = impulseplot(AX,___)는 핸들 AX를 사용하여 현재 Figure의 Axes 객체에 임펄스 응답을 플로팅합니다.

예제

h = impulseplot(___,plotoptions)plotoptions에 지정된 옵션 세트를 사용하여 임펄스 응답을 플로팅합니다. 이러한 옵션은 명령줄을 사용하여 임펄스 플롯의 모양을 사용자 지정하는 데 사용할 수 있습니다. plotoptions에서 지정한 설정은 impulseplot을 실행하는 MATLAB® 세션에서 기본 설정을 재정의합니다. 따라서 이 구문은 개별 시스템의 기본 설정에 관계없이 동일한 모양의 여러 플롯을 생성하는 스크립트를 작성하려는 경우 유용합니다.

예제

모두 축소

이 예제에서는 plot 핸들을 사용하여 시간 단위를 분으로 변경하고 그리드를 켭니다.

5개의 상태를 갖는 무작위 상태공간 모델을 생성하고 plot 핸들 h를 사용하여 임펄스 응답 플롯을 만듭니다.

rng("default")
sys = rss(5);
h = impulseplot(sys);

Figure contains an axes object. The axes object contains an object of type line. This object represents sys.

시간 단위를 분으로 변경하고 그리드를 켭니다. 이를 위해 setoptions를 사용하여 plot 핸들 h의 속성을 편집합니다.

setoptions(h,'TimeUnits','minutes','Grid','on');

Figure contains an axes object. The axes object contains an object of type line. This object represents sys.

setoptions를 호출하면 임펄스 플롯이 자동으로 업데이트됩니다.

timeoptions 명령을 사용하여 필요한 플롯 옵션을 지정할 수도 있습니다. 먼저 툴박스 기본 설정에 따라 옵션 세트를 만듭니다.

plotoptions = timeoptions('cstprefs');

시간 단위를 분으로 설정하고 그리드를 활성화하여 옵션 세트의 속성을 변경합니다.

plotoptions.TimeUnits = 'minutes';
plotoptions.Grid = 'on';
impulseplot(sys,plotoptions);

Figure contains an axes object. The axes object contains an object of type line. This object represents sys.

동일한 옵션 세트를 사용하면 동일한 사용자 지정으로 여러 임펄스 플롯을 만들 수 있습니다. 사용자 고유의 툴박스 기본 설정에 따라, 이 플롯과 다른 모양의 플롯을 얻게 될 수 있습니다. 툴박스 기본 설정 중에서 이 TimeUnitsGrid 예제에서 명시적으로 설정하는 속성들만 재정의됩니다.

이 예제에서는 입력 3개, 출력 3개, 상태 3개인 MIMO 상태공간 모델이 있다고 가정하겠습니다. 빨간색 그리드 선으로 임펄스 플롯을 만듭니다.

MIMO 상태공간 모델 sys_mimo를 만듭니다.

J = [8 -3 -3; -3 8 -3; -3 -3 8];
F = 0.2*eye(3);
A = -J\F;
B = inv(J);
C = eye(3);
D = 0;
sys_mimo = ss(A,B,C,D);
size(sys_mimo)
State-space model with 3 outputs, 3 inputs, and 3 states.

plot 핸들 h를 사용하여 임펄스 플롯을 만들고 사용 가능한 옵션 목록을 얻기 위해 getoptions를 사용합니다.

h = impulseplot(sys_mimo)

Figure contains 9 axes objects. Axes object 1 with title From: In(1) contains an object of type line. This object represents sys\_mimo. Axes object 2 contains an object of type line. This object represents sys\_mimo. Axes object 3 contains an object of type line. This object represents sys\_mimo. Axes object 4 with title From: In(2) contains an object of type line. This object represents sys\_mimo. Axes object 5 contains an object of type line. This object represents sys\_mimo. Axes object 6 contains an object of type line. This object represents sys\_mimo. Axes object 7 with title From: In(3) contains an object of type line. This object represents sys\_mimo. Axes object 8 contains an object of type line. This object represents sys\_mimo. Axes object 9 contains an object of type line. This object represents sys\_mimo.

h =

	resppack.timeplot
p = getoptions(h)
p =

                   Normalize: 'off'
         SettleTimeThreshold: 0.0200
              RiseTimeLimits: [0.1000 0.9000]
                   TimeUnits: 'seconds'
    ConfidenceRegionNumberSD: 1
                  IOGrouping: 'none'
                 InputLabels: [1x1 struct]
                OutputLabels: [1x1 struct]
                InputVisible: {3x1 cell}
               OutputVisible: {3x1 cell}
                       Title: [1x1 struct]
                      XLabel: [1x1 struct]
                      YLabel: [1x1 struct]
                   TickLabel: [1x1 struct]
                        Grid: 'off'
                   GridColor: [0.1500 0.1500 0.1500]
                        XLim: {3x1 cell}
                        YLim: {3x1 cell}
                    XLimMode: {3x1 cell}
                    YLimMode: {3x1 cell}

setoptions를 사용하여 필요한 사용자 지정 옵션으로 플롯을 업데이트합니다.

setoptions(h,'Grid','on','GridColor',[1 0 0]);

Figure contains 9 axes objects. Axes object 1 with title From: In(1) contains an object of type line. This object represents sys\_mimo. Axes object 2 contains an object of type line. This object represents sys\_mimo. Axes object 3 contains an object of type line. This object represents sys\_mimo. Axes object 4 with title From: In(2) contains an object of type line. This object represents sys\_mimo. Axes object 5 contains an object of type line. This object represents sys\_mimo. Axes object 6 contains an object of type line. This object represents sys\_mimo. Axes object 7 with title From: In(3) contains an object of type line. This object represents sys\_mimo. Axes object 8 contains an object of type line. This object represents sys\_mimo. Axes object 9 contains an object of type line. This object represents sys\_mimo.

setoptions를 호출하면 임펄스 플롯이 자동으로 업데이트됩니다. MIMO 모델의 경우 impulseplot은 여러 플롯으로 구성된 그리드를 생성하며, 각각의 플롯은 I/O 쌍 하나의 임펄스 응답을 표시합니다.

식별된 모수적 모델의 임펄스 응답을 비모수적(경험적) 모델과 비교하고, 3-σ 신뢰영역을 확인합니다. 식별된 모델에는 System Identification Toolbox™가 필요합니다.

샘플 데이터에서 모수적 모델과 비모수적 모델을 식별합니다.

load iddata1 z1
sys1 = ssest(z1,4); 
sys2 = impulseest(z1);

식별된 두 모델의 임펄스 응답을 플로팅합니다. plot 핸들을 사용하여 3-σ 신뢰영역을 표시합니다.

t = -1:0.1:5;
h = impulseplot(sys1,'r',sys2,'b',t);
showConfidence(h,3)
legend('parametric','nonparametric')

Figure contains an axes object. The axes object with title From: u1 To: y1 contains 3 objects of type line. These objects represent parametric, nonparametric.

비모수적 모델 sys2에서 불확실성이 더 높습니다.

이 예제에서는 다음 영점-극점-이득 모델의 임펄스 응답을 검토하고 임펄스 플롯을 tFinal = 15초로 제한합니다. 제목에는 15포인트의 파란색 텍스트를 사용합니다. 이 플롯은 생성된 MATLAB 세션의 기본 설정에 관계없이 동일하게 보여야 합니다.

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

먼저 timeoptions를 사용하여 디폴트 옵션 세트를 만듭니다.

plotoptions = timeoptions;

그런 다음, 옵션 세트 plotoptions의 필요한 속성을 변경합니다.

plotoptions.Title.FontSize = 15;
plotoptions.Title.Color = [0 0 1];

이제 옵션 세트 plotoptions를 사용하여 임펄스 응답 플롯을 만듭니다.

h = impulseplot(sys,tFinal,plotoptions);

Figure contains an axes object. The axes object contains an object of type line. This object represents sys.

plotoptions가 고정된 옵션 세트로 시작하기 때문에 플롯 결과는 MATLAB 세션의 툴박스 기본 설정과 관계없습니다.

입력 인수

모두 축소

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

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

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

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

    • 조정 가능한 제어 설계 블록의 경우, 이 함수는 현재 값에서 모델을 계산하여 임펄스 응답 데이터를 플로팅합니다.

    • 불확실한 제어 설계 블록의 경우, 이 함수는 모델의 공칭 값과 임의 샘플을 플로팅합니다.

  • 식별된 LTI 모델(예: idtf (System Identification Toolbox), idss (System Identification Toolbox), idproc (System Identification Toolbox) 모델). (식별된 모델을 사용하려면 System Identification Toolbox™가 필요합니다.)

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

선 스타일, 마커 및 색으로, 기호를 포함하는 문자형 벡터 또는 string형으로 지정됩니다. 기호는 어떤 순서로 지정해도 좋습니다. 세 가지 특성(선 스타일, 마커, 색)을 모두 지정할 필요는 없습니다. 예를 들어 선 스타일을 생략하고 마커를 지정하면 플롯은 마커만 표시하고 선은 표시하지 않습니다.

예: '--or'은 원형 마커가 있는 빨간색 파선입니다.

선 스타일설명
-실선
--파선
:점선
-.일점 쇄선
마커설명
'o'
'+'플러스 기호
'*'별표
'.'
'x'십자
'_'가로선
'|'세로선
's'정사각형
'd'다이아몬드
'^'위쪽 방향 삼각형
'v'아래쪽 방향 삼각형
'>'오른쪽 방향 삼각형
'<'왼쪽 방향 삼각형
'p'펜타그램
'h'헥사그램
설명

y

노란색

m

자홍색

c

녹청색

r

빨간색

g

녹색

b

파란색

w

흰색

k

검은색

임펄스 응답 계산의 최종 시간으로, 스칼라로 지정됩니다. tFinalsysTimeUnit 속성에 지정된 시스템 시간 단위로 지정합니다. 샘플 시간이 지정되지 않은 (Ts = -1) 이산시간 시스템의 경우 impulseplottFinal을 시뮬레이션할 샘플링 간격의 개수로 해석합니다.

임펄스 응답 시뮬레이션 시간으로, 벡터로 지정됩니다. 시간 벡터 tsysTimeUnit 속성에 지정된 시스템 시간 단위로 지정합니다. 시간 벡터는 실수이고 유한해야 하며, 단조 증가하고 시간 간격이 균일한 샘플을 포함해야 합니다.

시간 벡터 t는 다음과 같습니다.

  • 이산시간 시스템인 경우 t = Tinitial:Tsample:Tfinal입니다.

  • 연속시간 시스템인 경우 t = Tinitial:dt:Tfinal입니다. 여기서 dt는 연속시간 시스템의 이산 근사의 샘플 시간입니다.

대상 좌표축으로, Axes 객체로 지정됩니다. 좌표축을 지정하지 않고 현재 좌표축이 카테시안 좌표축인 경우, impulseplot은 현재 좌표축에 플로팅합니다. 임펄스 플롯을 만들 때 특정 좌표축에 플로팅하려면 AX를 사용하십시오.

임펄스 플롯 옵션 세트로, TimePlotOptions 객체로 지정됩니다. 이 옵션 세트를 사용하여 임펄스 플롯의 모양을 사용자 지정할 수 있습니다. 옵션 세트를 만들려면 timeoptions를 사용합니다. plotoptions에서 지정한 설정은 impulseplot을 실행하는 MATLAB 세션에서 기본 설정을 재정의합니다. 따라서 plotoptions는 개별 시스템의 기본 설정에 관계없이 동일한 모양의 여러 플롯을 생성하는 스크립트를 작성하려는 경우 유용합니다.

사용 가능한 옵션 목록은 timeoptions 항목을 참조하십시오.

출력 인수

모두 축소

plot 핸들로, handle 객체로 반환됩니다. getoptionssetoptions를 사용하여 임펄스 플롯의 속성을 가져오고 설정하려면 핸들 h를 사용합니다. 사용 가능한 옵션 목록은 Customizing Response Plots from the Command Line 항목에서 속성 및 값 도움말 섹션을 참조하십시오.

버전 내역

R2006a 이전에 개발됨