노드 해석
한 줄 요약 — 노드 전압을 미지수로 놓고 KCL을 세웁니다. 회로가 복잡해도 기계적으로 풀 수 있는 방법입니다.
절차
- 접지 노드를 하나 고릅니다 (가장 많은 소자가 붙은 곳이 편합니다)
- 나머지 노드에 이름을 붙입니다 → 미지수는 (노드 수 − 1)개
- 각 노드에서 KCL을 세웁니다. 나가는 전류를 전부 더해 0으로 놓습니다
- 전류는 항상 형태로 씁니다
- 연립방정식을 풉니다
핵심 형태
노드 에 저항 가 각각 로 이어져 있다면:
R_11번 저항resistance 1ΩR_22번 저항resistance 2ΩR_33번 저항resistance 3ΩV_A전압 (A)voltage (A)VV_x전압 (x)voltage (x)VV_y전압 (y)voltage (y)V“이 노드에서 나가는 전류의 합 = 0” — 이 한 줄만 기억하면 됩니다.
계산 예제
예제 1 — 노드 2개
노드 (R1-R2-R4), 노드 (R2-R3-R5).
노드 A:
V_A전압 (A)voltage (A)VV_B베이스 전압base voltageV×2000:
노드 B:
V_A전압 (A)voltage (A)VV_B베이스 전압base voltageV×2000:
대입: V, V
검산: 노드 A로 들어오는 전류 mA. 나가는 전류 mA ✅
예제 2 — 전압원이 노드 사이에 있을 때 (슈퍼노드)
전압원이 접지가 아닌 두 노드 사이에 있으면 그 전압원의 전류를 모릅니다. 이때는 두 노드를 하나로 묶어(슈퍼노드) KCL을 세우고, 전압원의 관계식을 추가합니다.
V_source신호원 전압source voltageVV_A전압 (A)voltage (A)VV_B베이스 전압base voltageV미지수 2개, 식 2개로 풀립니다.
시뮬레이션으로 확인
# examples/02-circuit-analysis/node-analysis.yaml
meta:
name: 노드 해석 예제
lesson: docs/02-circuit-analysis/02-node-analysis.md
components:
- {ref: V1, type: vdc, value: 10}
- {ref: R1, type: r, value: 1k}
- {ref: R2, type: r, value: 2k}
- {ref: R3, type: r, value: 1k}
- {ref: R4, type: r, value: 2k}
- {ref: R5, type: r, value: 2k}
nets:
VIN: [V1.p, R1.1]
A: [R1.2, R2.1, R4.1]
B: [R2.2, R3.1, R5.1]
GND: [V1.n, R3.2, R4.2, R5.2]
analyses:
- {type: op}
expect:
- {measure: v, node: A, value: 5.333, tol: 0.5%}
- {measure: v, node: B, value: 1.333, tol: 0.5%}💡 손으로 푼 값과 시뮬레이션 값이 일치하는지 확인하는 습관을 들이세요. 안 맞으면 둘 중 하나가 틀린 것이고, 어느 쪽인지 찾는 과정에서 배웁니다.
SPICE가 하는 일이 바로 이것입니다
ngspice를 포함한 모든 SPICE 시뮬레이터는 수정 노드 해석(Modified Nodal Analysis, MNA) 을 씁니다. 회로를 행렬 방정식 로 바꿔서 푸는 것입니다.
G_1111번 컨덕턴스conductance 11SG_1212번 컨덕턴스conductance 12SG_2121번 컨덕턴스conductance 21SG_2222번 컨덕턴스conductance 22Si전류 (순시값)instantaneous currentAI_A전류 (A)current (A)AI_B베이스 전류base currentAr저항 (소신호)small-signal resistanceΩt시간timesV_A전압 (A)voltage (A)VV_B베이스 전압base voltageV우리가 손으로 세운 식이 정확히 이 행렬입니다.
이것을 알면 시뮬레이션 에러 메시지가 이해됩니다:
| 에러 | 원인 |
|---|---|
singular matrix | 행렬이 특이 — 부유 노드(접지로 DC 경로 없음) 또는 전압원 루프 |
no convergence | 비선형 소자의 반복 계산이 수렴 안 함 |
node X is floating | 그 노드에 연결이 하나뿐 |
이 저장소의 검증기(E201, E202, E204)가 시뮬레이션을 돌리기 전에 이런 문제를 미리 잡아줍니다 → 17-02
⚖️ 트레이드오프 — 노드 해석 vs 메시 해석
| ✅ 유리 | ⚠️ 불리 | |
|---|---|---|
| 노드 해석(nodal analysis) | 전류원 많을 때, 노드 수 적을 때, 전압을 직접 얻음, 컴퓨터 구현에 적합 | 부유 전압원에 슈퍼노드 필요 (전류원은 KCL 에 그대로 들어가므로 오히려 쉽습니다) |
| 메시 해석(mesh analysis)메시 해석 mesh analysis닫힌 고리마다 KVL 을 세워 루프 전류를 미지수로 푸는 방법입니다.자세히 보기 → | 전압원 많을 때, 루프 수 적을 때, 전류를 직접 얻음 | 공유 전류원에 슈퍼메시 필요, 비평면 회로에 적용 어려움 |
실무 기준: 노드 수와 독립 루프 수를 세어 적은 쪽을 고릅니다. 대부분의 실제 회로는 노드가 적어서 노드 해석이 유리합니다 (그래서 SPICE도 노드 해석을 씁니다).
🔌 실제 쓰임새
- 바이어스 점 계산 — 트랜지스터(transistor)·OP앰프 회로의 DC 동작점 (6-03)
- 누설·바이어스 전류의 영향 계산 — 고임피던스 노드에 모이는 전류가 만드는 옵셋
- 분압 네트워크가 복잡할 때 — 여러 저항이 얽힌 피드백 네트워크
- SPICE 결과 검산 — 시뮬 값이 이상할 때 손으로 확인
⚠️ 이상과 실제의 차이
| 이상 | 실제 |
|---|---|
| 노드는 완전한 등전위 | 물리적으로 퍼져 있어 배선(trace) 저항만큼 차이 |
| 저항만 고려 | 기생 용량(parasitic capacitance)기생 용량 parasitic capacitance부품·배선·케이블이 원치 않게 갖는 커패시턴스로, 고임피던스 신호원에서 대역폭을 가장 먼저 잡아먹습니다.자세히 보기 →이 있어 주파수에 따라 결과가 달라짐 |
| 해가 하나 | 비선형 소자(다이오드(diode)·트랜지스터)는 여러 해가 있을 수 있음 — SPICE가 수렴에 실패하는 이유 |
연습문제
문제 1. 아래 회로에서 를 노드 해석으로 구하세요.
회로: 5 V → R1(1k) → 노드 → R2(1k)와 R3(1k)가 각각 GND 로
R2 ∥ R3 = 500 Ω 이므로, 1 kΩ 과 500 Ω 의 분압이 됩니다: V
풀이
V_A전압 (A)voltage (A)VV_A전압 (A)voltage (A)V검산 (분압): , V ✅
문제 2. 고임피던스 노드(테브난 저항 10 MΩ)에 OP앰프 입력 바이어스 전류(input bias current)입력 바이어스 전류 input bias currentOP앰프 입력이 스스로 빨아들이는 작은 전류로, 고임피던스 신호원에서는 이것이 곧 오프셋 전압이 됩니다.자세히 보기 → 1 nA가 흘러 들어옵니다. 이 노드의 전압 오차는?
풀이
노드에서 KCL: 바이어스 전류가 들어오면 그만큼 저항을 통해 빠져나가야 하고, 그 과정에서 전압이 생깁니다.
Delta V전압 변화량voltage changeVI_B베이스 전류base currentAR_th테브난 등가 저항Thévenin resistanceΩV전압voltageV10 mV 오차. 50 µV 신호를 재는 회로라면 신호의 200배입니다.
이것이 고임피던스 측정에서 입력 바이어스 전류가 pA급인 FET/CMOS 입력 OP앰프가 필수인 이유입니다 → 7-06, 13-03
이전 ← 01 키르히호프 법칙 | 다음 → 03 메시 해석