MATLAB: How to use Symbolic Math Toolbox functionalities to solve for the transfer function of an arbitrary RLC circuit

functionmathsolvesymbolicSymbolic Math Toolboxtransfer

I have an RLC circuit for which after applying Kirchhoff's current law at a node I obtain the following expressions:
I1 = V1/R2;
I2 = (V2 - V1)/(L*s + R1);
I3 = (V2 - V1)*s*C;
I1 = I2 + I3;
How can I use the Symbolic Math Toolbox to find the transfer function, expressed by V2 / V1, in terms of the R-L-C component values?

Best Answer

You can follow the approach below:

>> syms R1 R2 L C V2 V1 s;
>> eqns = [V1/R2 == (V2 - V1)/(L*s + R1) + (V2 - V1)*s*C]; % representing the equation I1 = I2 + I3 using their exact expressions
>> V2tmp = solve(eqns, V2); % Here I am solving for the above equation for the variable "V2"
>> TF = simplify(V2tmp/V1) % this step is computing the transfer function and calling the "simplify" on the result

TF =

(R1 + R2 + L*s + C*L*R2*s^2 + C*R1*R2*s)/(R2*(C*L*s^2 + C*R1*s + 1))

Here are the documentation links for "solve" and "simplify" for your reference:

https://www.mathworks.com/help/symbolic/solve.html

https://www.mathworks.com/help/robust/ref/simplify.html

Similar steps can be followed to generate the transfer function for any RLC circuit using Symbolic Math Toolbox.