Main Content

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

bode

주파수 응답, 또는 크기 및 위상 데이터의 보드 플롯

설명

예제

bode(sys)동적 시스템 모델 sys의 주파수 응답의 보드 플롯을 만듭니다. 플롯은 시스템 응답의 크기(단위: dB)와 위상(단위: 도)을 주파수의 함수로 표시합니다. bode는 시스템 동특성을 기반으로 플로팅할 주파수를 자동으로 파악합니다.

sys가 MIMO(다중 입력 다중 출력) 모델인 경우 bode는 여러 보드 플롯의 배열을 생성하는데 각각의 플롯은 한 입력/출력 쌍의 주파수 응답을 보여줍니다.

sys가 복소 계수를 갖는 모델인 경우

  • 로그 주파수 스케일에서, 플롯에는 양수 주파수에 대해 하나, 음수 주파수에 대해 하나, 이렇게 두 개의 분기가 표시됩니다. 또한 플롯에는 각 분기에 대한 주파수 값의 증가 방향을 나타내는 화살표도 표시됩니다. 복소 계수를 갖는 모델의 보드 플롯 항목을 참조하십시오.

  • 선형 주파수 스케일에서, 플롯에는 주파수 값 0을 중심으로 하는 대칭 주파수 범위를 갖는 하나의 분기가 표시됩니다.

예제

bode(sys1,sys2,...,sysN)은 여러 동적 시스템의 주파수 응답을 동일한 플롯에 플로팅합니다. 모든 시스템은 동일한 개수의 입력과 출력을 가져야 합니다.

예제

bode(sys1,LineSpec1,...,sysN,LineSpecN)은 플롯에 있는 각 시스템의 색, 선 스타일 및 마커를 지정합니다.

예제

bode(___,w)w로 지정된 주파수에 대한 시스템 응답을 플로팅합니다.

  • w{wmin,wmax} 형식의 셀형 배열인 경우 bodewminwmax 사이의 주파수에 있는 응답을 플로팅합니다.

  • w가 주파수로 구성된 벡터인 경우 bode는 지정된 각 주파수에서의 응답을 플로팅합니다. 벡터 w에는 음수 주파수와 양수 주파수가 모두 포함될 수 있습니다.

w와 위에 열거된 구문에 나와 있는 입력 인수를 원하는 대로 조합하여 사용할 수 있습니다.

예제

[mag,phase,wout] = bode(sys)는 벡터 wout의 각 주파수에서의 응답의 크기와 위상을 반환합니다. 함수는 시스템 동특성을 기준으로 wout의 주파수를 자동으로 파악합니다. 이 구문은 플롯을 그리지 않습니다.

예제

[mag,phase,wout] = bode(sys,w)w로 지정된 주파수에서의 응답 데이터를 반환합니다.

  • w{wmin,wmax} 형식의 셀형 배열인 경우 woutwminwmax 사이의 주파수를 포함합니다.

  • w가 주파수로 구성된 벡터인 경우 wout = w입니다.

예제

[mag,phase,wout,sdmag,sdphase] = bode(sys,w)식별된 모델 sys에 대한 크기 및 위상 값의 추정된 표준편차도 반환합니다. w를 생략할 경우 함수는 시스템 동특성을 기준으로 wout의 주파수를 자동으로 파악합니다.

예제

모두 축소

다음 연속시간 SISO 동적 시스템의 보드 플롯을 만듭니다.

H(s)=s2+0.1s+7.5s4+0.12s3+9s2.

H = tf([1 0.1 7.5],[1 0.12 9 0 0]);
bode(H)

Figure contains 2 axes objects. Axes object 1 with ylabel Magnitude (dB) contains an object of type line. This object represents H. Axes object 2 with ylabel Phase (deg) contains an object of type line. This object represents H.

bode는 시스템 동특성을 기반으로 플롯 범위를 자동으로 선택합니다.

특정 주파수 범위에 대해 보드 플롯을 만듭니다. 특정 주파수 범위의 동특성에 집중하려면 이 접근 방식을 사용하십시오.

H = tf([-0.1,-2.4,-181,-1950],[1,3.3,990,2600]);
bode(H,{1,100})
grid on

Figure contains 2 axes objects. Axes object 1 with ylabel Magnitude (dB) contains an object of type line. This object represents H. Axes object 2 with ylabel Phase (deg) contains an object of type line. This object represents H.

셀형 배열 {1,100}은 보드 플롯의 최소 주파수 값과 최대 주파수 값을 지정합니다. 이런 방식으로 주파수 범위를 제공하면 함수가 주파수 응답 데이터를 위한 중간 점을 선택합니다.

또는 주파수 응답을 계산하고 플로팅하기 위해 사용할, 주파수 점으로 구성된 벡터를 지정하는 방법도 있습니다.

w = [1 5 10 15 20 23 31 40 44 50 85 100];
bode(H,w,'.-')
grid on

Figure contains 2 axes objects. Axes object 1 with ylabel Magnitude (dB) contains an object of type line. This object represents H. Axes object 2 with ylabel Phase (deg) contains an object of type line. This object represents H.

bode는 지정된 주파수에서만 주파수 응답을 플로팅합니다.

동일한 보드 플롯에서 연속시간 시스템의 주파수 응답을 동급의 이산화된 시스템과 비교합니다.

연속시간 동적 시스템과 이산시간 동적 시스템을 만듭니다.

H = tf([1 0.1 7.5],[1 0.12 9 0 0]);
Hd = c2d(H,0.5,'zoh');

두 시스템을 모두 표시하는 보드 플롯을 만듭니다.

bode(H,Hd)

Figure contains 2 axes objects. Axes object 1 with ylabel Magnitude (dB) contains 2 objects of type line. These objects represent H, Hd. Axes object 2 with ylabel Phase (deg) contains 2 objects of type line. These objects represent H, Hd.

이산시간 시스템의 보드 플롯에는 시스템의 나이퀴스트 주파수를 표시하는 세로선이 있습니다.

LineSpec 입력 인수를 사용하여 보드 플롯에 있는 각 시스템에 대해 선 스타일, 색 또는 마커를 지정합니다.

H = tf([1 0.1 7.5],[1 0.12 9 0 0]);
Hd = c2d(H,0.5,'zoh');
bode(H,'r',Hd,'b--')

Figure contains 2 axes objects. Axes object 1 with ylabel Magnitude (dB) contains 2 objects of type line. These objects represent H, Hd. Axes object 2 with ylabel Phase (deg) contains 2 objects of type line. These objects represent H, Hd.

첫 번째 LineSpec 'r'H의 응답에 대해 빨간색 실선을 지정합니다. 두 번째 LineSpec 'b--'Hd의 응답에 대해 파란색 파선을 지정합니다.

SISO 시스템의 주파수 응답의 크기와 위상을 계산합니다.

주파수를 지정하지 않으면 bode는 시스템 동특성을 기반으로 주파수를 선택하고 이를 세 번째 출력 인수에 반환합니다.

H = tf([1 0.1 7.5],[1 0.12 9 0 0]);
[mag,phase,wout] = bode(H);

H는 SISO 모델이므로 magphase의 처음 2개의 차원은 모두 1입니다. 세 번째 차원은 wout에 있는 주파수의 개수입니다.

size(mag)
ans = 1×3

     1     1    41

length(wout)
ans = 41

따라서 mag의 세 번째 차원의 각 요소는 wout에서 대응하는 주파수의 응답 크기를 제공합니다.

이 예제에서는 2-출력 3-입력 시스템을 만듭니다.

rng(0,'twister'); % For reproducibility
H = rss(4,2,3);

이 시스템의 경우 bode는 각 I/O 채널의 주파수 응답을 하나의 Figure에서 개별적인 플롯에 플로팅합니다.

bode(H)

Figure contains 12 axes objects. Axes object 1 with title From: In(1), ylabel To: Out(1) contains an object of type line. This object represents H. Axes object 2 with ylabel To: Out(1) contains an object of type line. This object represents H. Axes object 3 with ylabel To: Out(2) contains an object of type line. This object represents H. Axes object 4 with ylabel To: Out(2) contains an object of type line. This object represents H. Axes object 5 with title From: In(2) contains an object of type line. This object represents H. Axes object 6 contains an object of type line. This object represents H. Axes object 7 contains an object of type line. This object represents H. Axes object 8 contains an object of type line. This object represents H. Axes object 9 with title From: In(3) contains an object of type line. This object represents H. Axes object 10 contains an object of type line. This object represents H. Axes object 11 contains an object of type line. This object represents H. Axes object 12 contains an object of type line. This object represents H.

1라디안과 10라디안 사이의 20개의 주파수에서 응답의 크기와 위상을 계산합니다.

w = logspace(0,1,20);
[mag,phase] = bode(H,w);

magphase는 3차원 배열로, 처음 2개의 차원은 H의 출력 및 입력 차원에 대응되고 세 번째 차원은 주파수의 개수입니다. mag의 차원을 검토해 봅니다.

size(mag)
ans = 1×3

     2     3    20

따라서 예를 들어 mag(1,3,10)은 세 번째 입력에서 첫 번째 출력으로의 응답을 w의 10번째 주파수에서 계산한 크기입니다. 마찬가지로, phase(1,3,10)은 이 응답의 위상을 포함합니다.

입력/출력 데이터에서 식별된 모수적 모델의 주파수 응답을 동일한 데이터를 사용하여 식별된 비모수적 모델의 주파수 응답과 비교합니다.

데이터를 기반으로 모수적 모델과 비모수적 모델을 식별합니다.

load iddata2 z2;
w = linspace(0,10*pi,128);
sys_np = spa(z2,[],w);
sys_p = tfest(z2,2);

spa 명령과 tfest 명령을 사용하려면 System Identification Toolbox™가 필요합니다.

sys_np는 식별된 비모수적 모델입니다. sys_p는 식별된 모수적 모델입니다.

두 시스템을 포함하는 보드 플롯을 만듭니다.

bode(sys_np,sys_p,w);
legend('sys-np','sys-p')

Figure contains 2 axes objects. Axes object 1 with title From: u1 To: y1, ylabel Magnitude (dB) contains 2 objects of type line. These objects represent sys-np, sys-p. Axes object 2 with ylabel Phase (deg) contains 2 objects of type line. These objects represent sys-np, sys-p.

플롯을 마우스 오른쪽 버튼으로 클릭하고 특성 > 신뢰영역을 선택하여 보드 플롯의 신뢰영역을 표시할 수 있습니다.

식별된 모델의 크기 및 위상의 표준편차를 계산합니다. 이 데이터를 사용하여 응답 불확실성의 3σ 플롯을 만듭니다.

데이터를 기반으로 전달 함수 모델을 식별합니다. 주파수 응답의 크기와 위상에 대한 표준편차를 구합니다.

load iddata2 z2;
sys_p = tfest(z2,2);
w = linspace(0,10*pi,128);
[mag,ph,w,sdmag,sdphase] = bode(sys_p,w);

tfest 명령을 사용하려면 System Identification Toolbox™가 필요합니다.

sys_p는 식별된 전달 함수 모델입니다. sdmagsdphase는 각각 주파수 응답의 크기와 위상에 대한 표준편차 데이터를 포함합니다.

표준편차 데이터를 사용하여 신뢰영역에 대응되는 3σ 플롯을 만듭니다.

mag = squeeze(mag);
sdmag = squeeze(sdmag);
semilogx(w,mag,'b',w,mag+3*sdmag,'k:',w,mag-3*sdmag,'k:');

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

동일한 플롯에 복소 계수를 갖는 모델과 실수 계수를 갖는 모델의 보드 플롯을 만듭니다.

rng(0)
A = [-3.50,-1.25-0.25i;2,0];
B = [1;0];
C = [-0.75-0.5i,0.625-0.125i];
D = 0.5;
Gc = ss(A,B,C,D);
Gr = rss(5);
bode(Gc,Gr)
legend('Complex-coefficient model','Real-coefficient model','Location','southwest')

Figure contains 2 axes objects. Axes object 1 with ylabel Magnitude (dB) contains 2 objects of type line. These objects represent Complex-coefficient model, Real-coefficient model. Axes object 2 with ylabel Phase (deg) contains 2 objects of type line. These objects represent Complex-coefficient model, Real-coefficient model.

로그 주파수 스케일에서 플롯에는 복소 계수 모델에 대해 두 개의 분기가 표시되는데, 하나는 오른쪽을 가리키는 화살표가 있는 양수 주파수에 대한 것이고 다른 하나는 왼쪽을 가리키는 화살표가 있는 음수 주파수에 대한 것입니다. 두 분기에서 화살표는 주파수가 증가하는 방향을 나타냅니다. 실수 계수 모델의 플롯에는 항상 화살표가 없는 단일 분기가 포함됩니다.

플롯을 마우스 오른쪽 버튼으로 클릭하고 속성을 선택하여 보드 플롯의 주파수 스케일을 변경할 수 있습니다. 속성 편집기 대화 상자의 단위 탭에서 주파수 스케일을 linear scale로 설정합니다. 또는 bodeplot 함수를 bodeoptions 객체와 함께 사용하여 사용자 지정된 플롯을 만들 수 있습니다.

opt = bodeoptions;
opt.FreqScale = 'Linear';

사용자 지정된 옵션을 사용하여 플롯을 만듭니다.

bodeplot(Gc,Gr,opt)
legend('Complex-coefficient model','Real-coefficient model','Location','southwest')

Figure contains 2 axes objects. Axes object 1 with ylabel Magnitude (dB) contains 2 objects of type line. These objects represent Complex-coefficient model, Real-coefficient model. Axes object 2 with ylabel Phase (deg) contains 2 objects of type line. These objects represent Complex-coefficient model, Real-coefficient model.

선형 주파수 스케일에서, 플롯에는 주파수 값 0을 중심으로 하는 대칭 주파수 범위를 갖는 단일 분기가 표시됩니다. 또한 복소 계수 모델과 함께 응답을 플로팅하면 플롯에는 실수 계수 모델의 음수 주파수 응답도 표시됩니다.

입력 인수

모두 축소

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

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

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

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

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

  • 주파수 응답 데이터 모델(예: frd 모델). 이러한 모델의 경우, 이 함수는 모델에서 정의된 주파수에서 응답을 플로팅합니다.

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

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

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

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

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

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

주파수 응답을 계산하고 플로팅할 주파수로, 셀형 배열 {wmin,wmax} 또는 주파수 값으로 구성된 벡터로 지정됩니다.

  • w{wmin,wmax} 형식의 셀형 배열인 경우 함수는 wminwmax 사이의 주파수에서 응답을 계산합니다.

  • w가 주파수로 구성된 벡터인 경우 함수는 지정된 각 주파수에서 응답을 계산합니다. 예를 들어, logspace를 사용하여 로그 간격의 주파수 값을 갖는 행 벡터를 생성할 수 있습니다. 벡터 w에는 양수 주파수와 음수 주파수가 모두 포함될 수 있습니다.

복소 계수를 갖는 모델인 경우, 플롯에 대해 주파수 범위 [wmin,wmax]를 지정하면

  • 로그 주파수 스케일에서, 플롯 주파수 제한이 [wmin,wmax]로 설정되며 플롯에는 양수 주파수 [wmin,wmax]에 대해 하나, 음수 주파수 [–wmax,–wmin]에 대해 하나, 이렇게 두 개의 분기가 표시됩니다.

  • 선형 주파수 스케일에서, 플롯 주파수 제한이 [–wmax,wmax]로 설정되며 플롯에는 주파수 값 0을 중심으로 하는 대칭 주파수 범위를 갖는 단일 분기가 표시됩니다.

주파수는 rad/TimeUnit 단위로 지정합니다. 여기서 TimeUnit은 모델의 TimeUnit 속성입니다.

출력 인수

모두 축소

절대 단위로 표현한 시스템 응답의 크기로, 3차원 배열로 반환됩니다. 이 배열의 차원은 (시스템 출력의 개수) × (시스템 입력의 개수) × (주파수 점의 개수)입니다.

  • SISO 시스템의 경우, mag(1,1,k)w 또는 woutk번째 주파수에서의 응답의 크기를 제공합니다. 예제는 크기 및 위상 데이터 구하기 항목을 참조하십시오.

  • MIMO 시스템의 경우, mag(i,j,k)j번째 입력에서 i번째 출력으로의 k번째 주파수에서의 응답의 크기를 제공합니다. 예제는 MIMO 시스템의 크기와 위상 항목을 참조하십시오.

크기를 절대 단위에서 데시벨로 변환하려면 다음을 사용하십시오.

magdb = 20*log10(mag)

도 단위로 표현한 시스템 응답의 위상으로, 3차원 배열로 반환됩니다. 이 배열의 차원은 (출력의 개수) × (입력의 개수) × (주파수 점의 개수)입니다.

  • SISO 시스템의 경우, phase(1,1,k)w 또는 woutk번째 주파수에서의 응답의 위상을 제공합니다. 예제는 크기 및 위상 데이터 구하기 항목을 참조하십시오.

  • MIMO 시스템의 경우, phase(i,j,k)j번째 입력에서 i번째 출력으로의 k번째 주파수에서의 응답의 위상을 제공합니다. 예제는 MIMO 시스템의 크기와 위상 항목을 참조하십시오.

함수가 시스템 응답을 반환하는 주파수로, 열 벡터로 반환됩니다. 함수는 사용자가 입력 인수 w를 사용하여 주파수를 지정하지 않은 이상 모델 동특성을 기준으로 주파수 값을 선택합니다.

또한 wout에는 복소 계수를 갖는 모델에 대한 음수 주파수 값도 포함되어 있습니다.

주파수 값의 단위는 라디안/TimeUnit입니다. 여기서 TimeUnitsysTimeUnit 속성의 값입니다.

각 주파수 점에서의 응답의 크기의 추정된 표준편차로, 3차원 배열로 반환됩니다. sdmagmag와 차원이 같습니다.

sys식별된 LTI 모델이 아니면 sdmag[]입니다.

각 주파수 점에서의 응답의 위상의 추정된 표준편차로, 3차원 배열로 반환됩니다. sdphasephase와 차원이 같습니다.

sys식별된 LTI 모델이 아니면 sdphase[]입니다.

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

알고리즘

bode는 다음과 같이 주파수 응답을 계산합니다.

  1. 동적 시스템의 영점-극점-이득(zpk) 표현을 계산합니다.

  2. 시스템의 각 입력/출력 채널에 대해 영점, 극점 및 이득 데이터를 기준으로 주파수 응답의 이득과 위상을 계산합니다.

    • 연속시간 시스템의 경우 bode는 허수축 s = jω에서 주파수 응답을 계산한 다음 양의 주파수만 고려합니다.

    • 이산시간 시스템의 경우 bode는 단위원에서 주파수 응답을 계산합니다. 해석을 원활하게 수행하기 위해 이 명령은 단위원의 위쪽 절반을 다음과 같이 파라미터화합니다.

      z=ejωTs,0ωωN=πTs,

      여기서 Ts는 샘플 시간이고 ωN은 나이퀴스트 주파수입니다. 그런 다음 이에 해당하는 연속시간 주파수 ω가 x축 변수로 사용됩니다. H(ejωTs)은 주기적이므로(주기 = 2ωN) bode는 나이퀴스트 주파수 ωN까지만 응답을 플로팅합니다. sys가 샘플 시간이 지정되지 않은 이산시간 모델인 경우 bode는 Ts = 1을 사용합니다.

버전 내역

R2006a 이전에 개발됨