RC, RL & RLC Transients, Resonance and Q

How circuits respond in time and frequency. Learn RC charging and discharging, RL current rise and decay, time constants (τ = RC, τ = L/R), natural and forced responses, the second-order RLC step response with under-, critical and over-damping, damping ratio ζ and overshoot, series and parallel resonance, quality factor Q and bandwidth, practical parasitic resonances (ringing), and first-order RC filters as the bridge to frequency response — with Python computing charge curves, damping, Q and bandwidth.

Whenever a switch closes, a signal steps or power is applied, capacitors and inductors make the circuit respond gradually — with exponential curves in first-order circuits, and possibly ringing in second-order ones.

The same physics seen in the frequency domain gives filters and resonance. Timing circuits, debounce, power-on reset, snubbers, LC tanks and oscillators all rely on these ideas.

An analogy

An RC circuit filling up is like a bucket filling through a narrow tap — fast at first, slowing as it nears full. An RLC circuit is like a mass on a spring: pluck it and it bounces (underdamped) unless enough friction (resistance) is present.

First-order transients

A capacitor's voltage and an inductor's current cannot change instantly. After a step, first-order circuits approach their final value exponentially with time constant τ: 63% at τ, 86% at 2τ, 95% at 3τ, 99.3% at 5τ. Solve any first-order transient with v(t) = v_final + (v_initial − v_final)e^(−t/τ), where τ uses the Thevenin resistance seen by the C or L.

Second-order behaviour

Damping regimes of RLC circuits:

Resonance and Q

At resonance X_L = X_C. Series RLC: impedance minimum (= R), current maximum, voltages across L and C can be Q times the source. Parallel RLC (tank): impedance maximum, used in oscillators and IF filters. Q measures sharpness: BW = f₀/Q. High Q = selective but rings longer; Q of a real inductor = ωL/R_DCR.

Link to frequency response

The RC low-pass has transfer function H(s) = 1/(1 + sRC): −3 dB at f_c = 1/(2πRC), −20 dB/decade roll-off, −45° phase at f_c. Second-order sections have H(s) = ω₀²/(s² + (ω₀/Q)s + ω₀²) with peaking when Q > 0.707. Step response (time) and frequency response are two views of the same poles — a Q of 0.707 (ζ = 0.707) gives 4.3% overshoot and a maximally flat (Butterworth) magnitude.

Formulas

Worked example: Power-on reset delay

Given: R 100 kΩ, C 1 µF, threshold 0.63 V_DD

Find: Delay.

Answer: 100 ms

Worked example: Critical damping resistor

Given: L 10 mH, C 100 nF

Find: R for ζ = 1.

Answer: 632 Ω

Worked example: Resonant frequency

Given: L 1 µH, C 100 pF

Find: f₀.

Answer: 15.9 MHz

Series RLC step circuit

  V_step ──[R]──(L)──┬── v_C (output)
                     =C
  GND ───────────────┴──
  ζ < 1: rings   ζ = 1: fastest without overshoot   ζ > 1: sluggish

Stepping this network is the classic second-order test — it models LC input filters, PCB traces with parasitics, and op-amps with poor phase margin. The resistor sets the damping.

Transients, damping, Q and bandwidth

import math
# RC charging, RL current rise, and a series RLC step response / resonance / Q
R, C, V = 10e3, 1e-6, 5.0
tau = R * C
for n in (1, 3, 5):
    print(f"RC after {n} tau ({n*tau*1e3:.0f} ms): {V*(1-math.exp(-n)):.3f} V ({(1-math.exp(-n))*100:.1f}%)")
L, Rl = 10e-3, 100.0
print(f"RL: tau = {L/Rl*1e6:.0f} us, final current {V/Rl*1000:.0f} mA")
# Series RLC: L = 10 mH, C = 100 nF
L, C = 10e-3, 100e-9
f0 = 1 / (2 * math.pi * math.sqrt(L * C))
for Rs in (100.0, 632.5, 2000.0):
    zeta = Rs / 2 * math.sqrt(C / L)
    Q = 1 / Rs * math.sqrt(L / C)
    kind = "underdamped" if zeta < 1 else ("critically damped" if abs(zeta-1) < 1e-3 else "overdamped")
    extra = f", overshoot {math.exp(-math.pi*zeta/math.sqrt(1-zeta**2))*100:.0f}%" if zeta < 1 else ""
    print(f"R = {Rs:6.1f} ohm: zeta = {zeta:.2f}, Q = {Q:.2f} ({kind}{extra})")
print(f"resonance f0 = {f0:.0f} Hz, bandwidth at R = 100 ohm: {f0/(1/100*math.sqrt(L/C)):.0f} Hz")
# RC after 1 tau (10 ms): 3.161 V (63.2%)
# RC after 3 tau (30 ms): 4.751 V (95.0%)
# RC after 5 tau (50 ms): 4.966 V (99.3%)
# RL: tau = 100 us, final current 50 mA
# R =  100.0 ohm: zeta = 0.16, Q = 3.16 (underdamped, overshoot 60%)
# R =  632.5 ohm: zeta = 1.00, Q = 0.50 (critically damped)
# R = 2000.0 ohm: zeta = 3.16, Q = 0.16 (overdamped)
# resonance f0 = 5033 Hz, bandwidth at R = 100 ohm: 1592 Hz

After one time constant an RC circuit reaches 63%, after 5τ it's within 1% — the rule of thumb for 'settled'. The same 10 mH/100 nF pair rings with 60% overshoot at R = 100 Ω, is critically damped at R = 2√(L/C) ≈ 632 Ω, and becomes sluggish at 2 kΩ. Q = 3.16 means the resonance bandwidth is f₀/Q ≈ 1.6 kHz.

Common mistakes

Applications

Key takeaways

Going further