노드 해석

한 줄 요약 — 노드 전압을 미지수로 놓고 KCL을 세웁니다. 회로가 복잡해도 기계적으로 풀 수 있는 방법입니다.


절차

  1. 접지 노드를 하나 고릅니다 (가장 많은 소자가 붙은 곳이 편합니다)
  2. 나머지 노드에 V1,V2,…V_1, V_2, \dots 이름을 붙입니다 → 미지수는 (노드 수 − 1)개
  3. 각 노드에서 KCL을 세웁니다. 나가는 전류를 전부 더해 0으로 놓습니다
  4. 전류는 항상 V이 노드−V저쪽R\dfrac{V_{\text{이 노드}} - V_{\text{저쪽}}}{R} 형태로 씁니다
  5. 연립방정식을 풉니다

핵심 형태

노드 AA에 저항 R1,R2,R3R_1, R_2, R_3가 각각 Vx,Vy,GNDV_x, V_y, \text{GND}로 이어져 있다면:

VA−VxR1+VA−VyR2+VA−0R3=0\frac{V_A - V_x}{R_1} + \frac{V_A - V_y}{R_2} + \frac{V_A - 0}{R_3} = 0
기호
R_11번 저항resistance 1Ω
R_22번 저항resistance 2Ω
R_33번 저항resistance 3Ω
V_A전압 (A)voltage (A)V
V_x전압 (x)voltage (x)V
V_y전압 (y)voltage (y)V

“이 노드에서 나가는 전류의 합 = 0” — 이 한 줄만 기억하면 됩니다.


계산 예제

예제 1 — 노드 2개

노드 해석 예제 회로도R11kΩR22kΩV110VR31kΩR42kΩR52kΩVINABGND
노드 해석 예제워크벤치에서 열기 →

노드 AA (R1-R2-R4), 노드 BB (R2-R3-R5).

노드 A:

VA−101000+VA−VB2000+VA2000=0\frac{V_A-10}{1000} + \frac{V_A-V_B}{2000} + \frac{V_A}{2000} = 0
기호
V_A전압 (A)voltage (A)V
V_B베이스 전압base voltageV

×2000: 2(VA−10)+(VA−VB)+VA=0⇒4VA−VB=20\quad 2(V_A-10) + (V_A-V_B) + V_A = 0 \Rightarrow 4V_A - V_B = 20

노드 B:

VB−VA2000+VB1000+VB2000=0\frac{V_B-V_A}{2000} + \frac{V_B}{1000} + \frac{V_B}{2000} = 0
기호
V_A전압 (A)voltage (A)V
V_B베이스 전압base voltageV

×2000: (VB−VA)+2VB+VB=0⇒−VA+4VB=0⇒VA=4VB\quad (V_B-V_A) + 2V_B + V_B = 0 \Rightarrow -V_A + 4V_B = 0 \Rightarrow V_A = 4V_B

대입: 16VB−VB=20⇒VB=4/3≈1.33316V_B - V_B = 20 \Rightarrow V_B = 4/3 \approx 1.333 V, VA=16/3≈5.333V_A = 16/3 \approx 5.333 V

검산: 노드 A로 들어오는 전류 (10−5.333)/1000=4.67(10-5.333)/1000 = 4.67 mA. 나가는 전류 (5.333−1.333)/2000+5.333/2000=2.0+2.67=4.67(5.333-1.333)/2000 + 5.333/2000 = 2.0 + 2.67 = 4.67 mA ✅

예제 2 — 전압원이 노드 사이에 있을 때 (슈퍼노드)

전압원이 접지가 아닌 두 노드 사이에 있으면 그 전압원의 전류를 모릅니다. 이때는 두 노드를 하나로 묶어(슈퍼노드) KCL을 세우고, 전압원의 관계식을 추가합니다.

VA−VB=Vsource(제약식)V_A - V_B = V_{source} \quad\text{(제약식)}
기호
V_source신호원 전압source voltageV
V_A전압 (A)voltage (A)V
V_B베이스 전압base voltageV
슈퍼노드 전체에서 나가는 전류의 합=0\text{슈퍼노드 전체에서 나가는 전류의 합} = 0

미지수 2개, 식 2개로 풀립니다.


시뮬레이션으로 확인

노드 해석 예제 회로도R11kΩR22kΩV110VR31kΩR42kΩR52kΩVINABGND
노드 해석 예제워크벤치에서 열기 →
# 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) 을 씁니다. 회로를 행렬 방정식 Gv=i\mathbf{G}\mathbf{v} = \mathbf{i}로 바꿔서 푸는 것입니다.

[G11G12G21G22][VAVB]=[IAIB]\begin{bmatrix} G_{11} & G_{12} \\ G_{21} & G_{22}\end{bmatrix}\begin{bmatrix}V_A \\ V_B\end{bmatrix} = \begin{bmatrix}I_A \\ I_B\end{bmatrix}
기호
G_1111번 컨덕턴스conductance 11S
G_1212번 컨덕턴스conductance 12S
G_2121번 컨덕턴스conductance 21S
G_2222번 컨덕턴스conductance 22S
i전류 (순시값)instantaneous currentA
I_A전류 (A)current (A)A
I_B베이스 전류base currentA
r저항 (소신호)small-signal resistanceΩ
t시간times
V_A전압 (A)voltage (A)V
V_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. 아래 회로에서 VAV_A를 노드 해석으로 구하세요.

회로: 5 V → R1(1k) → 노드 → R2(1k)와 R3(1k)가 각각 GND 로

R2 ∥ R3 = 500 Ω 이므로, 1 kΩ 과 500 Ω 의 분압이 됩니다: V=5×5001000+500=1.67V = 5 \times \dfrac{500}{1000+500} = 1.67 V

연습 2-02-1 — 노드 해석으로 V_A 구하기 회로도R11kΩV15VR21kΩR31kΩVINAGND
연습 2-02-1 — 노드 해석으로 V_A 구하기워크벤치에서 열기 →
풀이 VA−51000+VA1000+VA1000=0\frac{V_A-5}{1000} + \frac{V_A}{1000} + \frac{V_A}{1000} = 0
기호
V_A전압 (A)voltage (A)V
(VA−5)+VA+VA=0⇒3VA=5⇒VA≈1.667 V(V_A-5) + V_A + V_A = 0 \Rightarrow 3V_A = 5 \Rightarrow V_A \approx 1.667\ \text{V}
기호
V_A전압 (A)voltage (A)V

검산 (분압): R2∥R3=500 ΩR_2\parallel R_3 = 500\ \Omega, VA=5×5001500=1.667V_A = 5\times\frac{500}{1500} = 1.667 V ✅

문제 2. 고임피던스 노드(테브난 저항 10 MΩ)에 OP앰프 입력 바이어스 전류(input bias current)입력 바이어스 전류 input bias currentOP앰프 입력이 스스로 빨아들이는 작은 전류로, 고임피던스 신호원에서는 이것이 곧 오프셋 전압이 됩니다.ΔV=IBRsource\Delta V = I_B R_{source}자세히 보기 → 1 nA가 흘러 들어옵니다. 이 노드의 전압 오차는?

연습 2-02-2 — 테브난 10 MΩ 에 바이어스 전류 1 nA 회로도R120MΩV13.3VR220MΩIB1nA입력 바이어스 전류VINOUTGND
연습 2-02-2 — 테브난 10 MΩ 에 바이어스 전류 1 nA워크벤치에서 열기 →
풀이

노드에서 KCL: 바이어스 전류가 들어오면 그만큼 저항을 통해 빠져나가야 하고, 그 과정에서 전압이 생깁니다.

ΔV=IB×Rth=1×10−9×10×106=0.01 V=10 mV\Delta V = I_B \times R_{th} = 1\times10^{-9} \times 10\times10^{6} = 0.01\ \text{V} = 10\ \text{mV}
기호
Delta V전압 변화량voltage changeV
I_B베이스 전류base currentA
R_th테브난 등가 저항Thévenin resistanceΩ
V전압voltageV

10 mV 오차. 50 µV 신호를 재는 회로라면 신호의 200배입니다.

이것이 고임피던스 측정에서 입력 바이어스 전류가 pA급인 FET/CMOS 입력 OP앰프가 필수인 이유입니다 → 7-06, 13-03


이전 ← 01 키르히호프 법칙 | 다음 → 03 메시 해석