안정성 — 나이퀴스트와 이득 여유
한 줄 요약 — 발진 조건은 딱 하나입니다. 루프를 한 바퀴 돌아온 신호가 크기 1, 위상 −180° 이면 스스로 자랍니다. 여유란 그 지점에서 얼마나 떨어져 있느냐입니다.
발진의 조건
루프 이득루프 이득 loop gain신호가 귀환 루프를 한 바퀴 돌아 제자리로 왔을 때의 배율로, 왜곡·임피던스·오차가 모두 이 값으로 나눠집니다.자세히 보기 → 를 배웠으니 발진은 한 줄로 끝납니다. 닫힌 루프 이득의 분모가 0 이 되는 곳이 발진점입니다.
A이득gainA_CL이득 (CL)gain (CL)T온도 또는 주기temperature or period은 복소수로 크기 1, 위상 −180° 입니다. 이것이 바르크하우젠 조건이고, 전부입니다.
| 조건 | 뜻 |
|---|---|
| 한 바퀴 돌아도 줄지 않는다 | |
| 되돌아온 신호가 더해진다 (빼려던 것이 더해집니다) |
부귀환이 이미 −180° 를 쓰고 있으므로, 회로 안에서 추가로 −180° 가 더 밀리면 그 지점입니다. 극점극점 pole전달함수의 분모가 0이 되는 지점으로, 극점 하나가 곧 시정수 하나이고 −20 dB/dec 기울기 하나입니다.자세히 보기 → 하나가 최대 −90° 를 미므로 극점 두 개면 −180° 에 닿습니다. 그래서 “극점이 둘이면 위험하다”는 말이 나옵니다.
여유를 재는 두 자
이라는 점에서 얼마나 떨어져 있는지를 두 방향으로 잽니다.
f_0 주파수 (0)frequency (0)Hzf_180180번 주파수frequency 180HzT온도 또는 주기temperature or period둘 다 봐야 합니다. 위상 여유위상 여유 phase margin루프 이득이 1이 되는 주파수에서 발진까지 얼마나 남았는지를 각도로 나타낸 값입니다.자세히 보기 →만 보고 넘어가는 것이 흔한 실수인데, 위상이 먼저 −180° 를 지나고 그 뒤에 가 1 을 지나는 회로에서는 위상 여유 숫자가 멀쩡해 보여도 이득이 조금만 커지면 발진합니다.
| 여유 | 실전 목표 | 이유 |
|---|---|---|
| 위상 여유 | 65° 이상 | 오버슈트오버슈트 overshoot계단 입력에 응답이 목표값을 넘어 솟는 정도로, 감쇠비 하나로 정해집니다.자세히 보기 → 4% (4-07) |
| 이득 여유 | 10 dB 이상 | 개체차·온도·부하로 가 3배는 흔들립니다 |
⚠️ 위상 여유 60° 는 오버슈트 4% 가 아니라 약 9% 입니다. 4% 를 원하면 65° 를 겨냥해야 합니다 — 유도는 4-07.
나이퀴스트 — 왜 여유 두 개로 부족할 때가 있는가
를 복소평면에 그리고 주파수를 0 에서 ∞ 까지 훑으면 곡선 하나가 나옵니다. 그 곡선이 점을 감싸는지가 안정성의 진짜 판정입니다.
| 곡선과 −1 점 | 판정 |
|---|---|
| 감싸지 않음 | 안정 |
| 감쌈 | 불안정 |
| 아슬아슬하게 지나감 | 안정이지만 여유 없음 — 링잉 |
위상 여유·이득 여유는 이 곡선이 −1 점 근처를 지나는 거리를 두 방향에서만 잰 것입니다. 그래서 곡선이 복잡하게 휘면(극점이 셋 이상, 또는 가 1 을 여러 번 넘나드는 조건부 안정 회로) 두 숫자만으로는 놓칩니다.
실무 규칙: OP앰프 회로에서 가 0 dB 를 한 번만 지나면 위상 여유·이득 여유 둘로 충분합니다. 여러 번 지나면(전원 루프, 다중 귀환) 나이퀴스트를 그려야 합니다.
극점이 위상을 미는 양
극점 하나가 미는 위상은 자기 주파수에서 −45°, 그 앞뒤로 서서히 −90° 까지 갑니다.
f주파수frequencyHzf_p피크 주파수peak frequencyHz| 위상 | |
|---|---|
| 0.1 | −5.7° |
| 0.5 | −26.6° |
| 1 | −45° |
| 2 | −63.4° |
| 10 | −84.3° |
극점은 자기 주파수의 1/10 에서부터 이미 위상을 밀기 시작합니다. 이것이 ” 보다 훨씬 위에 있는 극점도 위상 여유를 깎는다”의 정체입니다.
계산 예제 — 두 번째 극점을 어디에 둬야 하는가
첫 극점이 지배적이라 에서 이미 −90° 를 밀고 있습니다. 위상 여유 65° 를 원하면 두 번째 극점이 밀어도 되는 양은
에서
f_0 주파수 (0)frequency (0)Hzf_p2주파수 (p2)frequency (p2)Hz두 번째 극점을 의 2배 위에 두면 됩니다. 위상 여유 45° 로 만족한다면 이라 — 딱 같은 자리 입니다.
거꾸로 읽으면 이렇습니다: 두 번째 극점이 근처에 있으면 위상 여유는 45° 언저리이고, 오버슈트는 23% 입니다.
★ 안정성을 되찾는 네 가지
무엇을 움직이느냐로 나뉩니다.
| 방법 | 무엇을 움직이는가 | 대가 |
|---|---|---|
| 를 올린다 (잡음 이득 높이기) | 를 왼쪽으로 — 문제의 극점보다 앞으로 | 대역폭↓, 잡음↑ |
| 문제의 극점을 올린다 | 저항·용량을 줄여 를 오른쪽으로 | 전류↑, 부하 제약 |
| 영점영점 zero전달함수의 분자가 0이 되는 지점으로, 극점과 반대로 기울기를 +20 dB/dec 올립니다.자세히 보기 →을 넣어 상쇄 () | 극점이 민 위상을 되돌린다 | 대역 제한, 부품 |
| 격리 저항 () | 부하 용량을 루프 밖으로 뺀다 | 출력 임피던스출력 임피던스 output impedance회로가 부하에 전압을 얼마나 굳건히 유지해 주는지를 나타내는 값으로, 낮을수록 부하에 덜 흔들립니다.자세히 보기 →↑ |
핵심: 앞의 둘은 여유를 “벌고”, 뒤의 둘은 문제 자체를 “옮깁니다”. 용량성 부하라면 , 반전 노드 용량이라면 가 정답입니다 (07, 13-04).
계산 예제 — 이 회로는 발진하는가
버퍼(), GBW = 10 MHz, 출력 저항 100 Ω, 부하 용량 1 nF.
부하가 만드는 극점:
C_L부하 정전용량load capacitanceFf_p2주파수 (p2)frequency (p2)HzR_out출력 저항output resistanceΩ: 버퍼는 이므로 MHz.
에서의 위상:
| 원인 | 위상 |
|---|---|
| 지배 극점 | −90° |
| 부하 극점 ( 배) | |
| 합 | −171° |
9° — 발진합니다. 안 해도 링잉이 44% 넘게 납니다.
대책 두 가지를 숫자로 견줍니다.
(가) 격리 저항 — 부하 용량이 루프 밖으로 나가고, 루프 안에서 보는 것은 과 뿐입니다. 대신 출력 임피던스가 20 Ω 이 되어 부하 전류에 따라 전압이 흔들립니다. 1 mA 면 20 mV.
(나) 잡음 이득을 5 로 올린다 — MHz. 부하 극점 1.59 MHz 와의 비가 이므로 , . 아직 모자랍니다. 이득 10 으로 올리면 MHz, , PM = 58°. 겨우 됩니다.
판단: (가) 가 맞습니다. 버퍼로 쓰려던 것을 이득 10 으로 바꾸는 건 원래 목적을 버리는 것이고, 20 Ω 출력 임피던스는 뒷단이 고임피던스면 아무 문제가 없습니다.
시뮬레이션으로 확인
# examples/07-opamp/stability-margins.yaml
meta:
name: 위상 여유와 이득 여유
lesson: docs/07-opamp/09-stability.md
note: CL 을 100p / 1n / 10n 으로 바꿔 가며 루프 이득의 위상이 -180 에 언제 닿는지 본다
components:
- {ref: VP, type: vdc, value: 15}
- {ref: VN, type: vdc, value: -15}
- {ref: VINJ, type: vac, value: 1}
- {ref: LINJ, type: l, value: 1k, label: DC 만 통과}
- {ref: RISO, type: r, value: 20, label: 격리 저항}
- {ref: CL, type: c, value: 1n, label: 부하 용량}
- {ref: U1, type: opamp, model: OPA140}
nets:
VCC: [VP.p, U1.'v+']
VEE: [VN.p, U1.'v-']
OUT: [U1.out, RISO.1]
LOAD: [RISO.2, CL.1]
FBOUT: [LINJ.1, VINJ.p]
FBIN: [LINJ.2, VINJ.n, U1.'in-']
GND: [VP.n, VN.n, CL.2, U1.'in+']
analyses:
- {type: ac, sweep: dec, points: 30, fstart: 10, fstop: 100MEG}RISO 를 0.001 로 바꾸면 격리가 사라져 위상 여유가 무너지는 것을 볼 수 있습니다.
같은 회로에서 저항 하나로 발진과 안정을 오갑니다.
⚖️ 부품 트레이드오프
| 선택 | ✅ 좋아지는 것 | ⚠️ 나빠지는 것 |
|---|---|---|
| 격리 저항 크게 | 위상 여유↑, 확실 | 출력 임피던스↑, 부하 전류에 따른 전압 오차 |
| 잡음 이득 높이기 | 부품 없이 해결 | 대역폭↓, 잡음이 그대로 증폭됨 |
| 로 영점 | 대역을 덜 잃음 | 값이 기생 용량에 민감, 계산 필요 |
| 단위이득 안정 소자 | 무조건 안전 | GBW 가 낮음 (같은 전력에서 손해) |
| 디컴펜세이티드 소자 | 높은 이득에서 GBW 큼 | 이득 5 이하에서 발진 — 버퍼로 못 씀 |
🔌 실제 쓰임새
- 버퍼가 케이블을 몰 때 — 케이블 용량이 그대로 입니다
- 레귤레이터의 출력 커패시터 — ESR 이 영점을 만들어 안정성을 좌우합니다 (8-02)
- TIA — 포토다이오드 접합 용량이 를 떨어뜨립니다
- 다단 증폭기 — 각 단의 극점이 누적돼 마지막 단에서 터집니다
⚠️ 이상과 실제의 차이
| 이상 | 실제 |
|---|---|
| 위상 여유만 보면 된다 | 이득 여유도 봐야 합니다 — 조건부 안정 회로가 있습니다 |
| 데이터시트 여유가 내 여유 | 부하·온도·전원·개체차로 흔들립니다. 그래서 10 dB 를 둡니다 |
| 발진하면 소리가 난다 | 수십 MHz 발진은 DC 오프셋과 잡음 증가로만 보입니다 |
| 시뮬이 안정하면 안전 | 기생 성분을 넣지 않은 시뮬은 항상 안정합니다 (11-07) |
⚠️ “프로브를 대면 정상”은 가장 위험한 신호입니다. 프로브 용량이 발진을 가리고 있는 것입니다. 액티브 프로브나 스펙트럼 애널라이저로 다시 보세요.
연습문제
문제 1. 위상 여유는 70° 인데 이득 여유가 3 dB 입니다. 안전합니까?
exercises/07-09-gain-margin.yaml풀이
안전하지 않습니다.
이득 여유 3 dB 는 가 1.4배만 커져도 발진한다는 뜻입니다. 개체차·온도·부하 변동으로 개루프 이득이 1.4배 움직이는 것은 아주 흔합니다.
이런 모양은 보통 가 0 dB 를 여러 번 넘나드는 조건부 안정 회로에서 나옵니다. 위상 여유는 마지막 교차점에서만 재므로 멀쩡해 보이는 것입니다.
대책: 나이퀴스트 선도를 그려 −1 점 주위를 어떻게 지나는지 봅니다. 그리고 이득 여유를 10 dB 이상으로 만듭니다.
문제 2. GBW 10 MHz 버퍼에 470 pF 부하를 답니다. 출력 저항 70 Ω 일 때 위상 여유는? 격리 저항이 필요합니까?
풀이
f_p2주파수 (p2)frequency (p2)Hz버퍼이므로 MHz.
T온도 또는 주기temperature or period필요합니다. 25.8° 는 오버슈트 45% 수준이라 파형이 심하게 울립니다.
를 넣으면 부하 극점이 루프 밖으로 나갑니다. 값은 보통 인 30~70 Ω 에서 시작해 스텝 응답을 보며 줄입니다.
문제 3. 데이터시트에 “최소 안정 이득 5” 라고 적힌 OP앰프를 버퍼로 썼습니다. 무슨 일이 일어나고 왜 그렇습니까?
exercises/07-09-min-stable-gain.yaml풀이
발진합니다.
디컴펜세이티드(decompensated) 소자입니다. 내부 보상 커패시터를 작게 만들어 지배 극점을 높은 주파수에 두었고, 그 덕에 같은 전력으로 GBW 가 3~5배 큽니다.
대가는 가 두 번째 극점에 가깝다는 것입니다. 이면 가 5배 낮아져 두 번째 극점에서 충분히 떨어지지만, 버퍼()로 쓰면 가 두 번째 극점 위로 올라가 위상 여유가 음수가 됩니다.
해결: 신호 이득은 1 로 두되 잡음 이득만 5 로 올립니다 — 반전 입력과 접지 사이에 를 달고 귀환 저항 를 두면 이면서 비반전 신호 이득은 그대로 1 입니다. 대가는 옵셋·잡음이 5배 증폭되는 것입니다.