제2부 고전 제어: 해석과 설계
2.6 보상기 설계 (Lead·Lag·Lead-Lag)
제2부 고전 제어: 해석과 설계 · 마무리. PID와 같은 계열인 진상(Lead)·지상(Lag) 보상기를 주파수영역에서 설계한다. 개루프 $L(j\omega)$의 모양을 직접 형성해(loop shaping) 위상 여유·속응성·정상상태 오차를 맞춘다. 2.2의 "근궤적을 끌어당긴다"는 약속, 2.4의 여유, 2.5의 PID가 여기서 만난다.
이 장을 마치면 사양(위상 여유·정상상태 오차)에서 Lead·Lag 보상기를 절차적으로 설계하고, 그것이 PID·근궤적과 어떻게 연결되는지 설명할 수 있어야 한다.
2.6.1 보상기란 — 루프를 형성한다
보상기(compensator)는 개루프 응답을 원하는 모양으로 바꾸려고 직렬로 넣는 $C(s)$다. 2.2.5에서 "원하는 극이 근궤적 밖이면 궤적 자체를 바꿔야 한다"고 했는데, 그 도구가 보상기다. 둘이 기본:
- 진상 보상기(Lead): 위상을 더한다 → 위상 여유·속응성↑ (D·PD와 유사).
- 지상 보상기(Lag): 저주파 이득을 더한다 → 정상상태 오차↓ (I·PI와 유사).
- 진지상(Lead-Lag): 둘을 합쳐 정확도와 응답을 동시에.
PID와 목적이 겹치지만, 보상기는 주파수영역에서 여유를 정조준하는 데 강하고, 임프로퍼가 아니게(필터 극 포함) 실현된다는 점이 다르다(2.6.7).
2.6.2 진상 보상기 (Lead) — 위상을 더한다
$$C(s) = K_c \cdot \frac{Ts + 1}{\alpha Ts + 1}, \qquad 0 < \alpha < 1$$
- 영점
s=−1/T, 극 $s=-1/(\alpha T)$. $\alpha<1$이라 극이 영점보다 더 왼쪽 → 순(net) 위상 앞섬(lead). - 최대 위상 앞섬 $\varphi_m$이 생기는 주파수와 크기:
$$\omega_m = 1/(T\sqrt{\alpha}), \qquad \sin\varphi_m = (1-\alpha)/(1+\alpha) \iff \alpha = (1-\sin\varphi_m)/(1+\sin\varphi_m)$$
$$|C(j\omega_m)|/K_c = 1/\sqrt{\alpha}$$ — $\omega_m$에서 이득 증가
- 효과: $\omega m$ 부근에 위상을 더해 위상 여유↑, 이득도 약간 높여 교차주파수↑→ 빠른 응답(D항과 같은 역할).
- 대가: 고주파 이득을 높이므로 잡음을 증폭한다(2.5.6.2와 같은 긴장). $\alpha$가 너무 작으면(큰 위상 요구) 잡음·실현이 부담 — 보통 한 단에 $\varphi_m \lesssim60^\circ$.
2.6.3 지상 보상기 (Lag) — 저주파 이득을 더한다
$$C(s) = K_c \cdot \frac{Ts + 1}{\beta Ts + 1}, \qquad \beta > 1$$
- 영점
s=−1/T, 극 $s=-1/(\beta T)$. $\beta>1$이라 극이 영점보다 원점에 가깝다. - 효과: 저주파에서 이득을 $\beta$배 더 줘 정상상태 오차를 줄인다(오차상수
Kp·Kv↑, 1.3.6) — I·PI와 같은 목적. 동시에 위상 지연(lag)을 만든다. - 설계 요령: 위상 지연이 교차주파수의 여유를 줄이지 않도록 영점·극을 교차주파수보다 충분히 아래(예: ωgc/10)에 배치한다. 그러면 $\omega_{gc}$ 근처에서는 지연이 거의 사라지고 저주파 이득만 남는다.
- 대가: 원점 근처에 느린 극·영점 쌍(dipole)이 생겨 응답에 긴 꼬리(slow tail)를 남길 수 있다(2.6.9).
2.6.3.1 설계 예제 — Kv를 10배로
2.6.5의 Lead 예제와 대칭으로, 이번에는 Lag로 정상상태 오차를 조인다. 플랜트 $G(s)=1/[s(s+2)]$(같은 계열). 먼저 낮은 이득 $K0=4$로 크로스오버 부근의 "안전한" 거동을 확인한다: $\mathrm{PM}(K0=4)\approx51.8^\circ$, $\omega_{gc0}\approx1.57 \,\mathrm{rad/s}$, 이때 $K_{v0}=K0/2=2$. 사양: $K_v\ge20$(10배 상승), PM은 크게 헐지 않을 것.
- $\beta$ 결정. 목표 $K_v=20$을 $K_{v0}=2$로 나눠 $\beta=K_v/K_{v0}=10$.
- 영점·극 배치. 영점을 크로스오버의 1/10 부근에: $\omega_z=\omega_{gc0}/10\approx0.157 \,\mathrm{rad/s} \to T=1/\omega_z\approx6.36 \,\mathrm{s}$. 극은 $\beta$배 더 원점 쪽으로: $\omega_p=\omega_z/\beta\approx0.0157 \,\mathrm{rad/s}$($\beta T\approx63.6 \,\mathrm{s}$).
- $K_c$ 결정. 크로스오버 부근에서 Lag의 고주파 점근 이득은 $K_c/\beta$인데, 이것이 앞서 확인한 안전 이득 $K0$와 같아야 위상여유가 보존된다: $K_c=\beta\cdot K0=10\cdot4=40$.
- 결과.
$$C(s) = 40\cdot(6.36s + 1)/(63.6s + 1)$$
DC에서 C(0)=Kc=40 → Kv=Kc/2=20(사양 충족). 크로스오버 부근($\omega_{gc}\approx1.58 \,\mathrm{rad/s}$, 거의 그대로)에서는 $C(j\omega_{gc})\approx K_c/\beta=4$로 보정 전과 같은 이득이라 PM이 크게 줄지 않는다.
- 검증.
margin으로 확인하면 $\mathrm{PM}\approx46.6^\circ$(보정 전 51.8°에서 ~5° 하락 — Lag가 교차주파수 부근까지 남긴 위상지연 탓), $\omega_{gc}\approx1.58 \,\mathrm{rad/s}$(거의 불변), $K_v=20.0$(사양 정확히 충족). (✅ control 0.10.2 검증됨.)
Lead(2.6.5)와 대칭적 그림: Lead는 부족한 PM을 위상 앞섬으로 채우며 이득도 약간 높이고, Lag는 부족한 $K_v$를 저주파 이득으로 채우며 PM은 거의 그대로 둔다 — 다만 "거의"이지 "완전히"는 아니다(몇 도는 늘 내준다).
2.6.4 진지상 보상기 (Lead-Lag)
정확도(저주파 이득)와 응답·여유(위상 앞섬)를 둘 다 원하면 결합한다:
$$C(s) = K_c \cdot \frac{T_1 s+1}{\beta T_1 s+1} \cdot \frac{T_2 s+1}{\alpha T_2 s+1} \qquad (\text{앞: Lag(정확도)}\ \ \text{뒤: Lead(여유·속도)})$$
지상부는 저주파에서, 진상부는 교차주파수 근처에서 일하도록 주파수를 분리 배치한다. PID가 "하나로 묶은 P·I·D"라면, 진지상은 "주파수대별로 나눠" 같은 일을 한다.
2.6.4.1 수치 예 — Lag+Lead를 이어 붙이면
2.6.3.1의 Lag($K_c=40, T\approx6.36 \,\mathrm{s}, \beta T\approx63.6 \,\mathrm{s}$, 저주파 $K_v=20$ 담당)와 2.6.5의 Lead($T\approx0.23 \,\mathrm{s}, \alpha T\approx0.057 \,\mathrm{s}$, 교차주파수 부근 위상 담당)를 곱하면 $C(s)=C_{\mathrm{lag}}(s)\cdot C_{\mathrm{lead}}(s)$ 형태의 진지상 하나가 된다. 두 단의 꺾임 주파수가 0.016~0.157 rad/s(Lag)와 4.4~17.8 rad/s(Lead)로 두 자릿수 넘게 떨어져 있어 서로 크게 간섭하지 않는다는 것이 이 방식의 근거다. 다만 Lag의 고주파 점근 이득($K_c/\beta=4$)과 Lead 설계가 가정한 크로스오버 부근 이득(40)은 각 예제에서 독립적으로 정한 값이라, 그대로 이어 붙이면 크로스오버·PM이 두 예제의 숫자와 정확히 일치하지는 않는다 — 합성 후에는 반드시 margin으로 다시 확인·미세조정해야 한다. (검증 필요 — 합성계 수치는 별도로 확인하지 않았다.)
2.6.5 주파수영역 설계 절차 (Lead)
가장 자주 쓰는 진상 설계를 절차로(예제와 함께). 플랜트 $G(s)=K/[s(s+2)]$, 사양: 속도오차상수 $K_v\ge20$, 위상 여유 $\mathrm{PM}\ge50^\circ$.
- 이득 $K_c$로 정상상태 사양 맞추기.
Kv = lim_{s→0} s·KcG = KcK/2 = 20→KcK = 40. 보정 전 개루프 $L_0=40/[s(s+2)]$. - 보정 전 위상 여유 측정. $\vert L_0(j\omega)\vert=1$인 $\omega_{gc0}\approx6.2 \,\mathrm{rad/s}$, 거기서
∠L₀=−90°−atan(ω/2)≈−162°→ PM₀≈18°. (사양 50°에 크게 부족.) - 필요한 위상 앞섬. 부족분 $50-18=32^\circ$에 안전여유 $\approx5^\circ$를 더해 $\varphi_m\approx37^\circ$. (Lag가 더해질 추가 지연·이득 변화를 감안한 여유.)
- $\alpha$ 계산. $\alpha=(1-\sin37^\circ)/(1+\sin37^\circ)\approx0.25$. → $1/\sqrt\alpha\approx2.0$(약 +6 dB 증가).
- $\omega m$(새 교차주파수) 설정하기. 보정 후 $\omega m$이 새 교차가 되도록, 보정 전 이득이 $-10\cdot\log(1/\alpha)\approx-6 \,\mathrm{dB}$인 주파수를 $\omega m$으로. 풀면 $\omega m\approx8.9 \,\mathrm{rad/s}$.
- $T$ 결정. $T=1/(\omega m\sqrt\alpha)\approx0.23$ → 영점 $-1/T\approx-4.4$, 극 $-1/(\alpha T)\approx-17.8$.
- $C(s) \approx K_c\cdot(0.23s + 1)/(0.057s + 1)$ ($K_cK=40$)
- 검증. 보정 후
margin으로 PM을 확인 → 목표 $\approx50^\circ$ 근처여야. 부족하면 3의 여유를 늘려 반복.
위 숫자는 손계산 어림이다 — 최종 PM·교차주파수는 반드시
margin으로 확인하라(2.6.8). 설계는 반복이다(2.6.9). (✅ control 0.10.2 검증됨; 재현 권장.)
점선(보정 전)은 $\omega_{gc}\approx6.2 \,\mathrm{rad/s}$에서 위상이 $\approx-162^\circ$까지 처져 PM≈18°이고, 실선(Lead 보상 후)은 $\omega m\approx8.9 \,\mathrm{rad/s}$ 부근에서 위상이 상승해 PM이 ≈50°(정밀 계산 49.7°, 2.6.8 검증)로 늘어난다 — 위 1~6단계 손계산이 실제 이득·위상 곡선을 어떻게 바꾸는지 한눈에 보여준다.
2.6.6 근궤적 관점 — 궤적을 끌고 민다
같은 보상을 근궤적(2.2)으로 보면 직관이 또렷하다.
- Lead = 영점-극 쌍(영점이 극보다 오른쪽): 영점이 근궤적을 자기 쪽(왼쪽)으로 끌어당겨, 지배극을 더 왼쪽·더 큰 감쇠로 옮긴다 → 빠르고 덜 진동(2.2.5·2.2.6의 약속 실현).
- Lag = 원점 근처 dipole(극이 영점보다 원점에 더 가까움): 지배극을 거의 안 움직이면서 저주파 이득(루프이득)만 높여 정상상태 오차를 줄인다. 대신 원점 근처에 느린 극이 생겨 꼬리가 길어진다.
2.6.7 보상기 vs PID — 사실은 같은 계열
| 보상기 | PID 대응 | 차이 | |
|---|---|---|---|
| Lead | $(Ts+1)/(\alpha Ts+1)$ | PD($K_p+K_d s$) | PD는 임프로퍼(1.2.3). Lead는 필터 극을 단 실현 가능한 PD — 2.5.6.2의 미분필터와 같은 발상. |
| Lag | $(Ts+1)/(\beta Ts+1)$ | PI($K_p+K_i/s$) | PI 극은 원점에 정확히(적분기, 형+1, 오차 정확히 0). Lag 극은 원점 근처(이득 큼이나 유한, 오차 작아질 뿐 0 아님). |
그래서 "정상상태 오차를 정확히 0"이면 Lag보다 적분기(I)가 맞고, "고주파 잡음 때문에 순수 미분이 곤란"하면 Lead가 곧 필터링된 D다. 둘은 경쟁이 아니라 같은 아이디어의 다른 표현이다.
2.6.8 도구로 — 설계·검증
# lead_design.py — 보정 전후 위상 여유 비교
import control as ct
import numpy as np
G = ct.tf([40], [1, 2, 0]) # KcK=40 적용한 L0 = 40/[s(s+2)]
C = ct.tf([0.23, 1], [0.057, 1]) # 설계한 Lead
for name, L in [("before", G), ("after", C*G)]:
gm, pm, wpc, wgc = ct.margin(L)
print(f"{name}: PM={pm:.1f}° ω_gc={wgc:.2f}")
# ct.bode_plot([G, C*G]); ct.root_locus(C*G) # 시각 비교
before의 PM≈18°가 after에서 ≈50°로 오르는지 확인하라. 안 맞으면 $\varphi_m$의 여유를 키워 재설계. (출력은 여러분 환경에서 재현 — ✅ control 0.10.2 검증됨; 재현 권장.)
2.6.9 정직 — 반복·잡음·느린 꼬리
- 설계는 반복이다: Lead가 이득을 높여 교차주파수를 옮기면 PM 계산이 달라진다. 한 번에 안 맞으면 여유를 조정해 다시 — 손계산은 출발점, 도구가 최종 판정 기준.
- Lead의 잡음: 고주파 이득 상승은 측정 잡음을 증폭한다. 액추에이터가 진동하면 $\alpha$를 키우거나(앞섬 줄임) 추가 필터를 둔다.
- Lag의 느린 꼬리: 원점 근처 dipole는 응답에 오래 끄는 꼬리를 남긴다 — 정착시간 사양이 엄격하면 주의. 극·영점을 너무 원점에 붙이면 더 느려진다.
- 공칭 모델 한정: 모든 여유·궤적은 LTI 모델 기준. 포화·비선형·모델 오차는 별도 확인(2.5.9·6.3).
2.6.10 정리 — 제2부 마무리
- 보상기는 개루프를 형성하는 직렬 $C(s)$. Lead는 위상 앞섬(여유·속도, ≈실현형 PD), Lag는 저주파 이득(정상상태 오차, ≈근사 PI), 진지상은 둘 다(2.6.2~2.6.4).
- 주파수영역 절차: 이득으로 정상상태 맞추고 → 부족 PM을 $\varphi_m$으로 → $\alpha,\omega m,T$ 계산 → 도구로 검증·반복(2.6.5·2.6.8).
- 근궤적으로는 Lead가 궤적을 왼쪽으로 끌고, Lag는 원점 dipole로 이득만 높인다(2.6.6). PID와는 같은 계열(2.6.7).
이로써 제2부(고전 제어: 해석과 설계)를 마친다. 안정성(2.1)·근궤적(2.2)·Bode(2.3)·Nyquist 여유(2.4)로 해석하고, PID(2.5)·보상기(2.6)로 설계하는 입출력(전달함수) 관점을 완성했다. 다음 제3부(3.1~)는 이 연속시간 설계를 컴퓨터로 구현하기 위한 디지털 제어 — 샘플링·z변환·이산 PID로 넘어간다.
2.6.11 연습·생각해 볼 것
- Lead 기본. $\alpha=0.1$인 진상 보상기의 최대 위상 앞섬 $\varphi_m$과 그때의 이득 증가($1/\sqrt\alpha$, dB)을 구하라. $\alpha=0.25$와 비교해 무엇이 트레이드오프인가? (2.6.2)
- Lag 배치. Lag의 영점·극을 교차주파수 $\omega_{gc}=10$보다 충분히 아래에 두라고 한다(예 $\omega=1$ 근처). 만약 $\omega_{gc}$ 바로 근처에 두면 위상 여유에 무슨 일이 생기나? (2.6.3)
- 설계 따라하기. $G(s)=K/[s(s+4)]$에서 $K_v\ge40$, $\mathrm{PM}\ge45^\circ$를 만족하는 Lead 보상기를 2.6.5 절차로 설계하라(각 단계 숫자 제시). 끝에 도구로 확인할 PM 목표를 적어라.
- 궤적 직관. Lead 보상기를 추가하면 근궤적이 왜 왼쪽으로 끌리는지, 영점·극 위치로 설명하라. Lag는 왜 지배극을 거의 안 움직이면서 정상상태 오차만 줄이나? (2.6.6)
- PID와 잇기. "정상상태 오차를 정확히 0으로" 만들고 싶다. Lag와 적분기(I) 중 무엇을 써야 하며 왜인가? 반대로 순수 미분이 잡음으로 곤란할 때 Lead가 어떻게 그 해법이 되나? (2.6.7)
- (손으로)
lead_design.py로 3번(또는 본문 예제)의 보정 전후 PM을 비교하고, Bode·근궤적을 겹쳐 그려 교차주파수가 오른쪽으로, 지배극이 왼쪽으로 옮겨가는지 확인하라. 잡음을 흉내 내려 고주파 입력을 넣으면 Lead가 출력을 얼마나 증폭하나? (검증 필요)
막히면 "Lead=위상(여유·속도), Lag=저주파 이득(정확도)"와 "둘 다 PID와 같은 계열"로 돌아가라.