제2부 고전 제어: 해석과 설계
2.3 주파수 응답과 Bode 선도
제2부 고전 제어: 해석과 설계 · 주파수의 관점. 시스템에 정현파를 넣었을 때의 정상상태 응답 — 주파수 응답 $G(j\omega)$ — 을 본다. 시간영역(1.3)·s영역 근궤적(2.2)에 이은 세 번째 관점으로, 대역폭·공진·지연·안정 여유를 한눈에 보여 준다.
이 장을 마치면 전달함수의 Bode 선도를 점근선으로 스케치하고, 대역폭·공진을 시간영역 성능과 연결하며, 교차주파수에서 안정 여유(2.4)를 읽을 준비를 한다.
2.3.1 주파수 응답이란 — 정현파 입력의 정상상태
LTI 시스템에 정현파 $u=A\cdot\sin(\omega t)$를 넣으면, 정상상태 출력도 같은 주파수의 정현파이되 진폭·위상만 바뀐다(1.4.5):
전달함수에 $s=j\omega$를 대입한 복소수 $G(j\omega)$가 그 변화를 담는다:
- 이득(magnitude) $\vert G(j\omega)\vert$ = 진폭비 (출력/입력).
- 위상(phase) $\angle G(j\omega)$ = 위상차 (양=앞섬, 음=지연).
$\omega$를 0에서 ∞로 훑으며 이 둘을 그린 것이 Bode 선도다.
2.3.2 왜 주파수영역인가
- 루프 셰이핑(loop shaping): 개루프 $L(j\omega)$의 모양을 직접 형성해 성능·안정성을 설계한다(2.4·2.6).
- 지연을 쉽게 다룬다: 시간지연 $e^{-s\tau}$는 s영역에서는 초월함수라 까다롭지만, 주파수영역에서는 위상 $-\omega\tau$로 간결하다(2.3.8).
- 잡음·대역폭 직결: "어느 주파수까지 따라가고, 어느 위부터 걸러내나"가 곧 잡음 대응이다.
- 측정 가능: 실제 플랜트에 정현파를 넣어 직접 그릴 수 있다(1.4.5) — 모델 없이도.
2.3.3 Bode 선도 — dB와 로그축
Bode 선도는 두 그래프다. 가로축은 로그 주파수 $\log\omega$.
- 이득 선도: 세로 $20\cdot\log_{10}\vert G(j\omega)\vert$ [dB].
- 위상 선도: 세로 $\angle G(j\omega)$ [deg].
왜 dB·로그인가: 직렬 연결은 이득의 곱인데(1.2.5.2), 로그를 취하면 합이 된다. 즉 복잡한 $G$를 기본 요소들의 Bode를 더해 그릴 수 있다. 데시벨 눈금: $\times10 \to+20dB$, $\times2 \to+6dB$, $\div\sqrt2(=0.707) \to-3dB$.
2.3.4 기본 요소들 — 점근선 조각
각 인수의 Bode 점근선을 외워 두면, 더하기만으로 전체를 그린다. ($\omega_c$=꺾임 주파수.)
| 요소 | 이득 점근선 | 위상 | ||
|---|---|---|---|---|
| 상수 $K$ | `20log | K | ` (수평) | $0^\circ$ (K>0) |
| 적분기 $1/s$ | −20 dB/dec | $-90^\circ$ (전 구간) | ||
| 미분기 $s$ | +20 dB/dec | $+90^\circ$ | ||
| 실극 $1/(1+s/\omega_c)$ | $\omega_c$ 전 0, 후 −20 dB/dec | $0^\circ\to-90^\circ$ ($\omega_c$에서 $-45^\circ$) | ||
| 실영점 $1+s/\omega_c$ | $\omega_c$ 후 +20 dB/dec | $0^\circ\to+90^\circ$ ($\omega_c$에서 $+45^\circ$) | ||
| 복소극 (2차) | $\omega_n$ 후 −40 dB/dec | $0^\circ\to-180^\circ$ ($\omega_n$에서 $-90^\circ$) |
- 실극·영점의 위상은 꺾임 주파수 앞뒤 한 decade(ωc/10 ~ 10ωc)에 걸쳐 변한다.
- 복소극은 $\zeta<0.707$이면 $\omega_n$ 근처에 공진 피크가 나타난다(2.3.6).
2.3.5 점근 스케치 — 조각을 더한다
예: $G(s) = 10 / [(s+1)(s+10)]$.
표준형으로: $G(s) = 1 / [(1+s)(1+s/10)]$ (DC 이득 $G(0)=10/(1\cdot10)=1$ → $0 \,\mathrm{dB}$). 꺾임 주파수 $\omega=1$(실극), $\omega=10$(실극).
규칙: 저주파 점근선(DC 이득·적분기)에서 시작해, 꺾임 주파수마다 극은 기울기를 −20, 영점은 +20 dB/dec씩 바꾼다. 위상은 각 요소의 위상을 더한다.
2.3.5.1 거꾸로 읽기 — 측정 Bode에서 전달함수 역산
1.4.5는 실측 정현파 응답에서 Bode 점들을 얻고 "결과 Bode에서 꺾임 주파수·기울기로 극·영점을 읽어 전달함수를 맞춘다"고 예고했다. 지금까지(2.3.4·2.3.5)는 "전달함수를 알 때 Bode를 그리는" 정방향이었다면, 여기서는 "Bode(측정 또는 주어진 곡선)를 보고 전달함수를 추정하는" 역방향을 본다.
절차:
- 저주파 점근선 → DC 이득 $K$: $\omega\to0$에서 이득 곡선이 평탄해지는 dB 값을 읽어
K=10^{(dB/20)}. (적분기가 있으면 평탄한 대신 저주파부터−20 dB/dec기울기로 시작한다 — 2.3.4.) - 기울기 변화 지점 → 꺾임 주파수: 이득 곡선의 기울기가 바뀌는 $\omega$마다 그 값이 극(
−20 dB/dec씩 감소) 또는 영점(+20 dB/dec씩 증가)의 위치 $1/T$다(2.3.4 표). 몇dB/dec만큼 꺾였는지 세면 차수도 나온다(단순 극·영점 1개는∓20, 복소쌍은∓40). - 위상으로 확인·구분: 그 꺾임 주파수에서 위상이 대략 $\pm45^\circ$(단순 극·영점) 또는 $\pm90^\circ$(복소쌍)만큼 움직였는지 대조한다(2.3.4). 안 맞으면 비최소위상·지연이 섞였다는 신호다(2.3.8) — "이득만 보고 안심하지 말라"는 2.3.8의 경고가 여기서 실전이 된다.
- 조립·검증: 얻은 $K$·극·영점으로 $G(s)$를 조립하고, 원래 데이터 위에 겹쳐 오차를 본다.
작은 예제: 어떤 측정 Bode가 다음과 같다고 하자 — $\omega<1$에서 평탄하게 $0 \,\mathrm{dB}$, $\omega=1$에서 기울기가 −20 dB/dec로 꺾이고, $\omega=10$에서 다시 −20 dB/dec만큼 더 꺾여(누적 −40 dB/dec) 그 이후 유지된다. 위상도 $\omega=1$·$\omega=10$ 부근에서 각각 대략 $-45^\circ$씩 꺾여 들어가며, 고주파로 갈수록 $-180^\circ$로 수렴한다.
읽는 법: 저주파 0 dB → K=1. $\omega=1$에서 극 하나(−1/T=−1), $\omega=10$에서 극 하나 더(−1/T=−10) — 복소쌍이 아니라 단순 극 2개라는 것도 위상이 두 번에 나눠 꺾이는 모양(한 번에 $-90^\circ$가 아니라)으로 확인된다. 조립하면
$$ G(s) \approx \frac{1}{(1+s)(1+s/10)} $$
— 2.3.5의 그 예제($G(s)=10/[(s+1)(s+10)]$를 표준형으로 정규화한 것)를 거꾸로 복원한 것이다. 정방향(2.3.5)에서 그렸던 곡선을 역방향으로 다시 읽으면 원래 시스템으로 돌아온다 — 두 방향이 서로의 검산이다.
정직: 위 절차는 이상적인(잡음 없는) 곡선을 전제한 손 절차다. 실측은 잡음·근접한 꺾임·저감쇠 공진(공진은 꺾임이 아니라 피크로 나타나 점근선 규칙이 안 통한다, 2.3.6)으로 교란된다. 그럴 때는 수작업으로 꺾임점을 찾는 대신 최소제곱 적합(1.4.6·1.4.9
curve_fit)으로 넘어가라 — 손 절차는 이상적인 데이터의 직관이고, 실전 식별의 최종 도구는 항상 최소제곱이다(1.4.8의 과적합 경고도 그대로 적용된다).
2.3.6 핵심 수치 — 대역폭·공진
- 대역폭 $\omega B$: 폐루프 이득이 DC 대비
−3 dB(0.707배)로 떨어지는 주파수. 속응성의 척도 — $\omega B$가 크면 빠른 신호까지 따라가니 응답이 빠르다(대략 $\omega B \approx\omega_n$). 단, 높은 대역폭은 고주파 잡음도 통과시키고 더 센 액추에이터를 요구한다 — 속도 vs 잡음·노력의 트레이드오프. - 공진 피크 $M_r$·공진 주파수 $\omega_r$ (2차계, $\zeta<0.707$):
$$\omega_r = \omega_n\cdot\sqrt{1-2\zeta^2}, \qquad M_r = 1 / (2\zeta\cdot\sqrt{1-\zeta^2})$$
$M_r$이 크면(=$\zeta$가 작으면) 시간영역 오버슈트가 크다(1.3). 즉 주파수영역 공진 ↔ 시간영역 진동은 같은 사실의 두 모습이다.
숫자로 확인: $\zeta=0.2$, $\omega_n=5 \,\mathrm{rad/s}$인 2차계라 하자.
- $\omega_r = \omega_n\sqrt{1-2\zeta^2} = 5\cdot\sqrt{1-2\cdot 0.2^2} = 5\cdot\sqrt{0.92} \approx 4.80\,\mathrm{rad/s}$
- $M_r = 1/(2\zeta\sqrt{1-\zeta^2}) = 1/(0.4\cdot\sqrt{0.96}) \approx 2.55$ ($\approx 8.14\,\mathrm{dB}$)
같은 $\zeta=0.2$를 1.3의 오버슈트 공식($M_p = \exp(-\zeta\pi/\sqrt{1-\zeta^2})$)에 넣으면:
- $M_p = \exp(-0.2\pi/\sqrt{0.96}) \approx \exp(-0.641) \approx 0.527$ → 오버슈트 $\approx 52.7\,\%$
같은 $\zeta=0.2$가 주파수영역에서는 "공진 피크 $M_r\approx2.55$(8.1 dB)", 시간영역에서는 "오버슈트 ≈53 %"로 나타난다 — 숫자는 다른 단위지만 가리키는 것은 저감쇠라는 같은 사실이다. (✅ control 라이브러리로 스텝응답 피크·주파수응답 피크를 직접 시뮬레이션해 검증 — 오버슈트 52.66 %, $M_r$ 2.5516(8.136 dB)로 위 손계산과 일치.)
세 관점의 사전: 시간영역 $\zeta,\omega_n$ ↔ s영역 극 위치(1.3.4) ↔ 주파수영역 $M_r, \omega B$. 한 곳을 알면 나머지를 어림한다.
2.3.7 교차주파수 — 안정 여유의 예고
개루프 $L(j\omega)$에서 두 특별한 주파수가 다음 장(여유)의 핵심이다.
- 이득교차 주파수 $\omega_{gc}$: $\vert L(j\omega_{gc})\vert= 1$ ($0 \,\mathrm{dB}$)인 곳. 대략 대역폭에 해당.
- 위상교차 주파수 $\omega_{pc}$: $\angle L(j\omega_{pc}) = -180^\circ$인 곳.
직관: $-180^\circ$에서 이득이 1을 넘으면(KL=−1 도달) 피드백이 양으로 돌아 불안정해진다(2.1의 그 사건을 주파수로 본 것). 그래서 "$-180^\circ$에 닿기 전에 이득을 1 아래로 낮췄나"가 안정의 관건이고, 그 여유를 재는 것이 2.4이다.
2.3.8 지연과 비최소위상 — 위상을 잃게 하는 요인
위상이 과하게 지연되면 안정 여유가 줄어든다. 그 주요 원인 둘:
- 시간지연 $e^{-s\tau}$: 이득은
1(영향 없음)인데 위상은 $\angle= -\omega\tau$(라디안) — 주파수에 비례해 무한정 지연된다. 고주파일수록 치명적이라, 지연이 큰 계(FOPDT, 1.4.4.1)는 제어 대역폭이 강하게 제한된다. - 우반평면 영점(비최소위상): 같은 이득 곡선을 주면서 추가 위상 지연을 더한다. 1.2.2.3의 역응답이 주파수영역에서는 이 여분 지연으로 나타나, 빠른 제어를 어렵게 한다.
최소위상(minimum-phase) 관계: 우반평면 극·영점·지연이 없는 시스템은 이득 곡선의 기울기가 위상을 거의 결정한다(
−20 dB/dec≈ $-90^\circ$ 식). 그래서 이득만 봐도 위상을 짐작한다. 비최소위상계는 이 관계가 성립하지 않아, 이득은 정상인데 위상이 더 손실돼 겉보기보다 위험하다 — 정직하게 따로 확인해야 한다.
2.3.9 도구로 — bode_plot·margin
# bode_demo.py — Bode 선도와 교차주파수·여유
import control as ct
import matplotlib.pyplot as plt
G = ct.tf([10], [1, 11, 10]) # 10/[(s+1)(s+10)]
ct.bode_plot(G, dB=True) # 이득(dB)·위상 선도
plt.show()
gm, pm, wpc, wgc = ct.margin(G) # 이득여유, 위상여유, 위상·이득 교차주파수
print(f"GM={gm:.2f} PM={pm:.1f}° ω_pc={wpc:.2f} ω_gc={wgc:.2f}")
margin이 교차주파수와 여유(2.4)를 한 번에 준다. 점근 스케치로 개형을 파악하고 도구로 정밀화하라. (출력·곡선은 여러분 환경에서 재현 — ✅ control 0.10.2 검증됨; 재현 권장.)
2.3.10 정직 — 점근선은 근사
- 점근 스케치는 개형이다. 실극 꺾임에서 실제 곡선은 점근선보다
−3 dB아래, 위상도 매끄럽게 휜다. 공진 피크($M_r$)는 점근선에는 안 나타난다 — $\zeta$가 작으면 크게 어긋난다. - 정밀값·공진은 반드시
bode_plot으로 확인. 스케치는 어디에 꺾임이 있고 기울기·위상이 어떻게 흐르나를 개략적으로 파악하는 용도다.
2.3.11 정리 — 그리고 다음 장
- 주파수 응답 $G(j\omega)$는 정현파 입력의 진폭비·위상차. Bode 선도(이득 dB·위상 deg vs log ω)는 기본 요소 점근선의 합으로 그린다(2.3.4·2.3.5).
- 대역폭은 속응성, 공진 $M_r$은 오버슈트와 통한다 — 세 관점(시간·s·주파수)는 한 사실의 세 모습(2.3.6).
- 교차주파수($\omega_{gc}$, $\omega_{pc}$)가 안정 여유를 정의하는 지점이며(2.3.7), 지연·비최소위상은 위상을 잃게 해 여유를 줄인다(2.3.8).
다음 2.4에서는 이 Bode 위에서 Nyquist 안정성과 이득·위상 여유를 정량화한다 — "겨우 안정"이 아니라 얼마나 여유 있게 안정한가.
2.3.12 연습·생각해 볼 것
- 점근 스케치. $G(s)=100/[s(s+10)]$의 Bode 이득·위상 점근선을 그려라. 저주파 기울기, 꺾임 주파수, 고주파 기울기·위상을 적어라. 이득이 $0 \,\mathrm{dB}$를 지나는 $\omega_{gc}$를 어림하라.
- dB 감각.
|G|가 각각1, 10, 0.1, 0.707, 100일 때 dB 값은? 반대로−40 dB, $+6 \,\mathrm{dB}$는 배율로 얼마인가? (2.3.3) - 공진. $G=\omega_n^2/(s^2+2\zeta\omega_ns+\omega_n^2)$에서 $\zeta=0.1$과 $\zeta=0.5$의 공진 피크 $M_r$(및 dB)을 비교하라. 어느 쪽이 시간영역 오버슈트가 큰가? $\zeta=0.8$이면 공진이 있나? (2.3.6)
- 대역폭 트레이드오프. 제어기 이득을 키워 폐루프 대역폭을 2배로 늘렸다. 응답 속도·잡음 통과·액추에이터 부담은 각각 어떻게 변하나? (2.3.6)
- 지연. 지연 $\tau=0.1 \,\mathrm{s}$가 $\omega=10 \,\mathrm{rad/s}$에서 만드는 위상 지연(도)을 구하라. $\omega=100$에서는? 왜 지연이 고대역 제어를 막나? (2.3.8)
- 세 관점 잇기. 어떤 2차계의 시간영역 오버슈트가 크다. 이 사실이 ⓐ s-평면 극 위치, ⓑ Bode 공진 피크에서 각각 어떻게 나타날지 한 줄씩 설명하라. (1.3.4·2.3.6)
- (손으로)
bode_demo.py로 1번 시스템의 정밀 Bode를 그려 점근 스케치와 비교하고,margin으로 $\omega_{gc}$를 확인하라. (검증 필요)
막히면 "곱은 로그로 합, 극은 −20dB/dec·−90°, 영점은 +20dB/dec·+90°"를 떠올려 조각을 더해 가라.