Main Content

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

시스템 응답 플로팅하기

이 예제는 SISO 및 MIMO 선형 시스템의 시간 응답과 주파수 응답을 플로팅하는 방법을 보여줍니다.

시간 응답

선형 시스템을 만듭니다. 이 예제에서는 3차 전달 함수를 만듭니다.

sys = tf([8 18 32],[1 6 14 24])
sys =
 
     8 s^2 + 18 s + 32
  -----------------------
  s^3 + 6 s^2 + 14 s + 24
 
Continuous-time transfer function.

stepimpulse 명령을 사용하여 이 시스템의 계단 응답과 임펄스 응답을 플로팅할 수 있습니다.

subplot(2,1,1)
step(sys)
subplot(2,1,2)
impulse(sys)

Figure contains 2 axes objects. Axes object 1 contains an object of type line. This object represents sys. Axes object 2 contains an object of type line. This object represents sys.

또한 lsim 명령을 사용하여 사인파와 같은 임의 신호에 대한 응답을 시뮬레이션할 수도 있습니다. 입력 신호는 회색으로 표시되고, 시스템 응답은 파란색으로 표시됩니다.

clf
t = 0:0.01:4;
u = sin(10*t);
lsim(sys,u,t)   % u,t define the input signal

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

연속 또는 이산 tf, ss, zpk 모델에서 플로팅 명령을 사용할 수 있습니다. 상태공간 모델의 경우 주어진 초기 상태에서 비강제 응답을 플로팅할 수도 있습니다. 예를 들면 다음과 같습니다.

A = [-0.8 3.6 -2.1;-3 -1.2 4.8;3 -4.3 -1.1];
B = [0; -1.1; -0.2];
C = [1.2 0 0.6];
D = -0.6;
G = ss(A,B,C,D);
x0 = [-1;0;2];  % initial state
initial(G,x0)
grid

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

주파수 응답

주파수 영역 분석은 제어 시스템의 안정성과 성능 속성을 이해하는 데 중요합니다. 보드 플롯, 나이퀴스트 플롯, 니콜스 차트는 선형 시스템의 주파수 응답을 플로팅하고 분석하는 세 가지 표준 방법입니다. bode, nichols, nyquist 명령을 사용하여 이러한 플롯을 만들 수 있습니다.

선형 시스템을 만듭니다.

sys = tf([8 18 32],[1 6 14 24])
sys =
 
     8 s^2 + 18 s + 32
  -----------------------
  s^3 + 6 s^2 + 14 s + 24
 
Continuous-time transfer function.

이 시스템에 대한 보드 플롯을 만듭니다.

bode(sys)
grid

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

이 시스템에 대한 나이퀴스트 플롯을 만듭니다.

nyquist(sys)
grid

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

이 시스템에 대한 니콜스 차트를 만듭니다.

nichols(sys)
grid

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

극점-영점 맵 및 근궤적

시스템의 극점과 영점에는 동특성, 안정성, 성능 제한에 대한 유용한 정보가 포함되어 있습니다. 예를 들어 다음 SISO 제어 루프에 피드백 루프가 있다고 가정하겠습니다.

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

G=-(2s+1)s2+3s+2

이득 값 k = 0.7인 경우 pzmap을 사용하여 폐루프 극점 및 영점을 플로팅할 수 있습니다.

s = tf('s');
G = -(2*s+1)/(s^2+3*s+2);
k = 0.7;
T = feedback(G*k,1);
pzmap(T)
grid, axis([-2 0 -1 1])

Figure contains an axes object. The axes object contains 2 objects of type line. One or more of the lines displays its values using only markers This object represents T.

폐루프 극점(파란색 x로 표시)이 좌반면에 있으므로 이렇게 이득 k를 선택하면 피드백 루프가 안정적입니다. 이 차트에서 폐루프 극점의 감쇠비를 읽을 수 있습니다(방사형 선 위의 레이블 참조). 여기서 감쇠비는 약 0.7로, 다음에서 확인되는 것처럼 적절히 감쇠된 폐루프 응답을 제공합니다.

clf
step(T)

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

루프 이득 k가 폐루프 안정성에 어떤 영향을 주는지 추가로 파악하려면 폐루프 극점의 궤적을 k의 함수로 플로팅할 수 있습니다.

rlocus(G)
grid

Figure contains an axes object. The axes object contains 4 objects of type line. One or more of the lines displays its values using only markers This object represents G.

궤적이 y축과 교차하는 지점을 클릭하면 k = 1.51일 때 폐루프 극점이 불안정해지는 것을 알 수 있습니다. 따라서 폐루프 안정성을 위해 루프 이득은 1.5보다 작게 유지되어야 합니다.

응답 특성

응답 플롯을 마우스 오른쪽 버튼으로 클릭하면 다양한 옵션과 주석에 접근할 수 있습니다. 특히, 특성 메뉴를 사용하면 계단 응답의 상승 시간 및 정착 시간, 주파수 응답 플롯의 피크 이득 및 안정성 여유 같은 표준 메트릭을 표시할 수 있습니다.

이전 섹션의 예제를 사용하여 폐루프 계단 응답을 플로팅합니다.

step(T)

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

이제 플롯을 마우스 오른쪽 버튼으로 클릭하여 피크 응답 및 정착 시간 특성을 표시한 다음, 파란색 점을 클릭하여 대응하는 오버슈트와 정착 시간 값을 읽습니다.

MIMO 시스템 분석하기

지금까지 설명한 모든 명령은 MIMO(다중 입력 다중 출력) 시스템을 완전하게 지원합니다. MIMO의 경우 이들 명령은 플롯으로 구성된 배열을 생성합니다. 예를 들어 다음과 같은 2-입력 2-출력 시스템이 있다고 가정하겠습니다.

sys = rss(3,2,2);
sys.A = [-0.5 -0.3 -0.2 ; 0 -1.3  -1.7; 0.4 1.7 -1.3];

계단 응답은 플롯으로 구성된 2×2 배열이며, 각 열에는 특정 입력 채널의 계단 응답이 표시됩니다.

step(sys)

Figure contains 4 axes objects. Axes object 1 with title From: In(1), ylabel To: Out(1) contains an object of type line. This object represents sys. Axes object 2 with ylabel To: Out(2) contains an object of type line. This object represents sys. Axes object 3 with title From: In(2) contains an object of type line. This object represents sys. Axes object 4 contains an object of type line. This object represents sys.

플롯을 마우스 오른쪽 버튼으로 클릭하고 I/O 그룹화 -> 모두 하위 메뉴를 선택하여 단일 플롯에 4개의 응답을 모두 그룹화할 수 있습니다.

다음과 같은 추가 플롯도 MIMO 시스템을 분석하는 데 유용합니다.

  • 주파수 응답의 주요 이득을 표시하는 특이값 플롯(sigma)

  • 각 I/O 쌍에 대한 극점-영점 맵(iopzplot)

예를 들어 sys의 피크 이득을 주파수의 함수로 플로팅합니다.

sigma(sys)
grid

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

시스템 비교하기

응답 플롯 명령을 사용하여 한 번에 여러 시스템을 플로팅할 수 있습니다. 비교하기 쉽도록 각 시스템에 특정 색, 마커 또는 선 스타일을 할당할 수 있습니다. 위의 피드백 예제를 사용하여 루프 이득 k의 세 값에 대한 폐루트 계단 응답을 서로 다른 세 가지 색으로 플로팅합니다.

k1 = 0.4;
T1 = feedback(G*k1,1);
k2 = 1;
T2 = feedback(G*k2,1);
step(T,'b',T1,'r',T2,'g')
legend('k = 0.7','k = 0.4','k = 1')

Figure contains an axes object. The axes object contains 3 objects of type line. These objects represent k = 0.7, k = 0.4, k = 1.

시간 또는 주파수 축 값 수정하기

기존 선형 분석 플롯의 시간 벡터와 주파수 벡터를 수정할 수 있습니다.

stepimpulse 플롯의 경우 플롯 영역을 마우스 오른쪽 버튼으로 클릭하고 시간 지정을 선택하여 시간 벡터를 지정할 수 있습니다.

시간 지정 대화 상자에서 다음 방법 중 하나를 사용하여 시간 값과 단위를 정의할 수 있습니다.

  • 자동으로 생성 — 시스템 동특성을 기반으로 시간 벡터를 자동으로 생성합니다. 이 옵션은 희소 시스템에는 지원되지 않습니다.

  • 중지 시간 정의 — 중지 시간을 지정합니다. 그러면 시간 0에서 시작하는 시간 벡터가 생성됩니다. 시간 벡터의 스텝 크기는 시스템 동특성에 따라 결정됩니다.

  • 벡터 정의 — 플로팅할 시간을 단조 증가하고 균일한 간격의 시간 값으로 구성된 벡터로 지정합니다.

bode, nyquist, nicholssigma 플롯의 경우 플롯 영역을 마우스 오른쪽 버튼으로 클릭하고 주파수 지정을 선택하여 주파수 벡터를 지정할 수 있습니다.

주파수 지정 대화 상자에서 다음 방법 중 하나를 사용하여 주파수 값과 단위를 정의할 수 있습니다.

  • 자동으로 생성 — 시스템 동특성을 기반으로 주파수 벡터를 자동으로 생성합니다. 이 방법은 희소 시스템에는 지원되지 않습니다.

  • 범위 정의 — 주파수 범위를 지정합니다. 이 방법은 희소 시스템에는 지원되지 않습니다.

  • 벡터 정의 — 플로팅할 주파수를 벡터로 지정합니다.

시스템이 frd 객체인 경우 플롯은 주파수 값 사이의 응답을 보간합니다.

시간 단위와 주파수 단위를 변경하면 입력의 단위가 지정되지만 플롯에서는 단위가 변경되지 않습니다.

참고 항목

|

관련 항목