Circuit Analysis Fundamentals
Level 5 — Mastery (cross-domain: math + physics + coding, build/prove) Time limit: 90 minutes Total marks: 60
Instructions: Answer all three questions. Show all derivations. Where code is requested, write clean, correct Python (NumPy/SymPy permitted). Units required for full marks.
Question 1 — Thévenin, Norton & Superposition (proof + build) — 22 marks
Consider a linear DC network with two independent sources feeding a load port A–B:
- A ideal source in series with connects to node A.
- From node A, resistor goes to node B (the ground/reference).
- A ideal current source is injected into node A (returning through B).
- The load is connected across A–B.
(a) Using superposition, derive a symbolic expression for the open-circuit voltage (load removed) in terms of . Evaluate numerically. (6)
(b) Derive the Thévenin equivalent () seen at A–B, and the Norton equivalent (). Prove that . (8)
(c) With attached, compute the load current and power . (4)
(d) Write a Python function thevenin(Vs, R1, Is, R2) returning (Vth, Rth), and show a one-line assertion that reproduces your part (b) numbers. (4)
Question 2 — RC transient: derivation, energy, and numerics — 20 marks
An initially uncharged capacitor is charged through from a step source at .
(a) Starting from KVL and the constitutive relation , derive the ODE and solve for . State the time constant . (6)
(b) Compute the time for to reach and of final value. (4)
(c) Prove that, over full charging (), the energy delivered by the source equals twice the energy stored in the capacitor, and identify where the other half went. (6)
(d) Write Python that numerically integrates the ODE (e.g. Euler or odeint) and verifies . State the check. (4)
Question 3 — AC reactance & phasor analysis (build/prove) — 18 marks
A series RL circuit (, ) is driven by with .
(a) Compute the inductive reactance , the complex impedance , its magnitude and phase . (6)
(b) Find the current amplitude and write in the form . Explain the sign of the phase (lead/lag). (6)
(c) At what frequency does the resistor voltage equal the inductor voltage (i.e. )? Prove this equals the corner of the RL low-pass taken across , and give numerically. (6)
Answer keyMark scheme & solutions
Question 1
(a) Superposition (6) Remove load (open circuit at A–B). Node A referenced to B.
- Voltage source acting alone (open the current source): divider not loaded → the through then to ground, open port draws no current, so voltage across : (2)
- Current source alone (short the voltage source): carries : (2)
- Superpose: (2)
(b) Thévenin/Norton (8) . (1) : kill sources (short , open ) → . (2) Norton: . (1) (short-circuit current). (2) Proof: . Source transformation is an identity because both models must produce the same (open) and (short); by Ohm's law at the port . ∎ (2)
(c) Load (4) (2) (2)
(d) Code (4)
def thevenin(Vs, R1, Is, R2):
Rth = R1*R2/(R1+R2)
Vth = Vs*R2/(R1+R2) + Is*R1*R2/(R1+R2)
return Vth, Rth
assert thevenin(12,4,3,6) == (14.4, 2.4)(function 2, assertion 2)
Question 2
(a) ODE + solution (6) KVL: , with : (2) Solve (linear 1st-order), : (2) (2)
(b) Times (4)
- : by definition . (2)
- : . (2)
(c) Energy proof (6) Charge delivered as : . Source energy: (2) Stored energy: . (1) Ratio . (1) Dissipated in R: with : So ; the missing half is dissipated as heat in , independent of . ∎ (2)
(d) Code (4)
import numpy as np
Vs, R, C = 9.0, 47e3, 2.2e-6
tau = R*C
dt = tau/2000; t=0.0; v=0.0
while t < tau:
v += dt*(Vs - v)/tau # Euler on RC dv/dt = Vs - v
t += dt
print(v, 0.632*Vs) # ~5.688 vs 5.688
assert abs(v - 0.632*Vs) < 0.02*Vs(integration 2, check 2)
Question 3
(a) Impedance (6) . (2) (1) (2) (1)
(b) Current (6) (2) (2) Current lags voltage by : in an inductive circuit the current cannot change instantly, so it trails the driving voltage; the phase angle equals of . (2)
(c) Corner frequency (6) Equal magnitudes: . (2) (2) Low-pass across : , . At , . So the equal-magnitude point is the corner. ∎ (2)
[
{"claim":"Q1a Voc = 14.4 V by superposition","code":"Vs,R1,Is,R2=12,4,3,6; Voc=Vs*R2/(R1+R2)+Is*R1*R2/(R1+R2); result=abs(Voc-14.4)<1e-9"},
{"claim":"Q1b IN*RN equals Vth","code":"Rth=Rational(4*6,4+6); Vth=Rational(144,10); IN=Vth/Rth; result=simplify(IN*Rth-Vth)==0 and IN==6"},
{"claim":"Q1c load power ~18.93 W","code":"Vth,Rth,RL=14.4,2.4,5; IL=Vth/(Rth+RL); PL=IL**2*RL; result=abs(PL-18.93)<0.02"},
{"claim":"Q2 tau and 99% time","code":"tau=47000*2.2e-6; t99=tau*log(100); result=abs(float(tau)-0.10340)<1e-4 and abs(float(t99)-0.4763)<1e-3"},
{"claim":"Q3 |Z| and phase for RL","code":"import math; XL=2*math.pi*1000*0.05; Z=math.hypot(100,XL); ph=math.degrees(math.atan2(XL,100)); result=abs(Z-329.7)<0.5 and abs(ph-72.34)<0.1"},
{"claim":"Q3c corner freq 318.3 Hz","code":"import math; fc=100/(2*math.pi*0.05); result=abs(fc-318.31)<0.1"}
]