Problem statement and knowns/unknowns
This LRC circuit analysis template is built for series R, L, and C elements. It keeps the symbolic structure intact so you can plug in new component values, solve for poles, and move between time and Laplace domains without rebuilding the sheet.
Assumptions and unit discipline
- Series topology with capacitor output transfer function
V_C/V_{in}. - Linear component behavior around operating point; zero initial-state Laplace baseline.
- Use SI units: ohm, H, F, Hz/rad/s with explicit conversion.
- If parasitics or nonlinear behavior dominate, branch to extended models.
Derivation from KVL and impedance
Model the circuit with charge q(t) (or current i(t)) and express the governing equation before you jump into Laplace transforms.
For analysis in the Laplace domain, the series impedance is straightforward and keeps your template compact.
In this template, H(s) is the capacitor voltage transfer function Vc(s)/Vin(s) for the series network.
Laplace workflow in GrayCalc
Use GrayCalc to calculate impedance, transfer functions, and poles symbolically. Then substitute numeric values for fast design checks.
The preview uses example component values (R=15, L=22e-3, C=8.2e-6) so you can see concrete outputs; update them to match your circuit.
Step-by-step: compute Vc(s)/Vin(s)
- Define your components: R, L, and C.
- Compute impedances: ZR=R, ZL=s*L, ZC=1/(s*C).
- Use the voltage divider ratio H=ZC/(ZR+ZL+ZC) to get Vc(s)/Vin(s).
- Confirm the KVL form if needed: vin=RC*dvC/dt + LC*d2vC/dt2 + vC.
- Solve poles from the characteristic equation with solve(L*C*s^2+R*C*s+1, s).
Template lines to paste into GrayCalc
Paste these lines into a new sheet. They cover the impedance divider, KVL reference lines, standard-form parameters, poles, and response plots.
# Series RLC (LRC) — Vc/Vin
# Component values (SI units)
R=15
L=22e-3
C=8.2e-6
# Method 1: impedance divider
ZR=R
ZL=s*L
ZC=1/(s*C)
H=simplify(ZC/(ZR+ZL+ZC))
# Method 2: KVL (reference)
# vin(t)=vR(t)+vL(t)+vC(t)
# vin(t)=R*C*d(vC)/dt + L*C*d2(vC)/dt2 + vC(t)
# Standard-form parameters
w0=1/sqrt(L*C)
f0=w0/(2*pi)
zeta=(R/2)*sqrt(C/L)
Q=1/(2*zeta)
wd=w0*sqrt(1-zeta^2)
denom_std=simplify((L*C*s^2+R*C*s+1)/(L*C))
# Pole locations
poles=solve(L*C*s^2+R*C*s+1,s)
# Frequency response (Bode)
HdB=20*log(1/sqrt((1-L*C*(2*pi*f)^2)^2+(R*C*(2*pi*f))^2))
plot(HdB, f, -1000, 1000, yAuto=true, samples=3000, xTitle="f")
Hphase=-atan2(R*C*(2*pi*f),1-L*C*(2*pi*f)^2)*180/pi
plot(Hphase, f, -2000, 2000, yAuto=true, samples=3000, xTitle="f")
# Time response (unit step input)
Vc_step=inverse_laplace(H/s,s,t)
plot(Vc_step, t, -0.01, 0.05, yAuto=false, yMin=-0.08, yMax=1.9, samples=6000, xTitle="t")
Resonance and damping checks
The natural frequency is w0 = 1/sqrt(L*C). Damping depends on R, with zeta = (R/2)*sqrt(C/L) and Q = 1/(2*zeta). Use these results to classify the response as underdamped, critically damped, or overdamped.
FAQ
Is this template only for series LRC circuits?
The lines above are for a series LRC topology. You can adapt them for parallel circuits by updating Z(s) and the transfer function definition.
Can I solve for the time response?
Yes. Use inverse_laplace() on Vout or I to return to time domain after you define an input signal.
Worked example (interpreted)
Step 1: Baseline values produce w0=2354.41 rad/s and f0=374.72 Hz.
Step 2: zeta=0.1448 and Q=3.453 indicate an underdamped response with noticeable ringing.
Step 3: The consistency row kvl_residual stays symbolic-zero, confirming transfer-function and denominator alignment.
Interpretation: this design is intentionally resonant. Increase resistance (see R_variant) to move toward critically damped behavior.
When this model is invalid
| Condition | Why invalid | Use instead |
|---|---|---|
| Nonlinear/saturating components | LTI transfer-function assumptions break. | Piecewise or nonlinear device models. |
| Large parasitic ESR/ESL effects | Second-order ideal model misses high-frequency poles/zeros. | Extended RLC model with parasitic branches. |
| Non-zero initial energy not modeled | Default Laplace rows assume zero initial conditions. | Include initial-condition terms explicitly in Laplace rows. |
How to validate your worksheet
kvl_residualshould simplify to zero.damping_metric=zeta-1indicates under/critical/over damping sign.invalidity_proxy=f0/f_parasitic_refrising means parasitic awareness should increase.
Domain-specific variants in this template
The resistance sweep rows (R_variant, zeta_variant, Q_variant) provide a fast design tradeoff path between ringing and settling time.
Practice problems (with answer outlines)
Practice 1
Adjust R to hit ζ≈1 while keeping L and C fixed.
Outline: Solve ζ=(R/2)√(C/L)=1 for R and verify pole form.
Practice 2
Compare pole locations for baseline and R_variant rows.
Outline: Track real/imaginary parts and interpret ringing/settling tradeoff.
References and standards
- Oppenheim/Willsky, Signals and Systems (second-order system interpretation). MIT OCW companion.
- IEEE 1597 waveform-interchange context for simulation data workflows. IEEE reference.
- Horowitz & Hill, The Art of Electronics (practical damping/filter guidance). Reference site.