Transfer Function Solving Process w/ Example

From CIWA
Revision as of 19:12, 30 June 2026 by Brett (talk | contribs) (transfer function solving process)
(diff) ← Older revision | Latest revision (diff) | Newer revision → (diff)
Jump to navigation Jump to search

Base KVL / KCL Equations:

Error creating thumbnail: /bin/bash: line 1: convert: command not found

KVL Equations:

  1. Vin - Vc1 - Ir1*R1 - Ir2*R2 = 0
  2. -Vc2 + Ir2*R2 = 0


KCL Equations:

  1. -Ir1 + Ic1 = 0
  2. -Ir2 + Ic1 - Ic2 = 0


Additional Equations:

  1. Ic1 = s*C1*Vc1
  2. Ic2 = s*C2*Vc2

MATLAB Code for Computing Reduced Equation Set:

syms Ir1 Ir2 Ic1 Ic2 Vc1 Vc2 Vin R1 R2 C1 C2 s

equs = [Vin - Vc1 - Ir1*R1 - Ir2*R2 == 0;
    -Vc2 + Ir2*R2 == 0;
    -Ir1 + Ic1 == 0;
    -Ir2 + Ic1 - Ic2 == 0];

vars = [Vin Vc1 Vc2 Ir1 Ir2 Ic1 Ic2];

[A, b] = equationsToMatrix(equs, vars);

equ1 = A(1,:)*vars.' == b(1,:);      %equ1 = Vin - Vc1 - Ir1*R1 - Ir2*R2 == 0;
equ2 = A(2,:)*vars.' == b(2,:);      %equ2 = - Vc2 + Ir2*R2 == 0;
equ3 = A(3,:)*vars.' == b(3,:);      %equ3 = - Ir1 + Ic1 == 0;
equ4 = A(4,:)*vars.' == b(4,:);      %equ4 = - Ir2 + Ic1 - Ic2 == 0;

equ5 = Ic1 == s*C1*Vc1;
equ6 = Ic2 == s*C2*Vc2;

MATLAB Code for Computing the Transfer Function:

sol = solve([equ1,equ2,equ3,equ4,equ5,equ6], [Ir1,Ir2,Ic1,Ic2,Vc1,Vc2])

Hout = simplify(sol.Vc2/Vin)

syms R C

Hout_Homo = subs(Hout, {R1,R2,C1,C2}, {R,R,C,C}) %Assuming R1=R2 and C1=C2.

Final Transfer function:

H(s)=C1R2sC1C2R1R2s2+C1R1s+C1R2s+C2R2s+1

Final Homogeneous Transfer Function:

Hhomo(s)=CRsC2R2s2+3CRs+1