How to isolate two variables, Vout and Vin to obtain transfer function

11 vues (au cours des 30 derniers jours)
1582251394
1582251394 le 21 Nov 2016
Commenté : Star Strider le 22 Nov 2016
Hi this is my following code:
syms Vg Vin Vout Rs ro Rd CGS CGD CDB CL s gm;
eq1 = ((Vg-Vin)/Rs) + Vg*s*CGS + (Vg-Vout)*s*CGD == 0;
eq2 = gm*Vg + Vout/Rd + Vout/ro + Vout*s*CDB + Vout*s*CL + s*CGD*(Vout-Vg) == 0;
solVg = solve(eq2,Vg);
eq3 = ((solVg-Vin)/Rs) + solVg*s*CGS + (solVg-Vout)*s*CGD == 0;
So at this point, I have Vg in terms of, Vout and Vin. I'm having difficulty isolating the two variables, Vout and Vin to have the following transfer function: Vout/Vin.

Réponse acceptée

Star Strider
Star Strider le 22 Nov 2016
You need to solve for ‘Vout’ first, then divide that expression by ‘Vin’:
Vout = solve(eq3, Vout);
H = Vout/Vin
[Hn, Hd] = numden(H);
Hn = collect(Hn, s)
Hd = collect(Hd, s)
with ‘H’ being your transfer function, ‘Hn’ is the numerator, ‘Hd’ the denominator:
H =
-1/(Rs*(CGD*s*((CDB*s + CGD*s + CL*s + 1/Rd + 1/ro)/(gm - CGD*s) + 1) + (CDB*s + CGD*s + CL*s + 1/Rd + 1/ro)/(Rs*(gm - CGD*s)) + (CGS*s*(CDB*s + CGD*s + CL*s + 1/Rd + 1/ro))/(gm - CGD*s)))
Hn =
(CGD*Rd*ro)*s - Rd*gm*ro
Hd =
(CDB*CGD*Rd*Rs*ro + CDB*CGS*Rd*Rs*ro + CGD*CGS*Rd*Rs*ro + CGD*CL*Rd*Rs*ro + CGS*CL*Rd*Rs*ro)*s^2 + (CGD*Rd*Rs + CGS*Rd*Rs + CDB*Rd*ro + CGD*Rd*ro + CL*Rd*ro + CGD*Rs*ro + CGS*Rs*ro + CGD*Rd*Rs*gm*ro)*s + Rd + ro
  2 commentaires
1582251394
1582251394 le 22 Nov 2016
Thank you very much!
Star Strider
Star Strider le 22 Nov 2016
My pleasure!
I use the Symbolic Math Toolbox extensively in circuit design and analysis.

Connectez-vous pour commenter.

Plus de réponses (1)

Walter Roberson
Walter Roberson le 21 Nov 2016
solVin = solve(eq3, Vin);
Vin_over_Vout = simplify( expand( SolVin/Vout ) );
  2 commentaires
Walter Roberson
Walter Roberson le 22 Nov 2016
Opps, yes, I did Vin/Vout instead of Vout/Vin, but you can use
Vout_over_Vin = simplify( expand( Vout/SolVin ) );
1582251394
1582251394 le 22 Nov 2016
Thank you very much!

Connectez-vous pour commenter.

Catégories

En savoir plus sur Optimization dans Help Center et File Exchange

Community Treasure Hunt

Find the treasures in MATLAB Central and discover how the community can help you!

Start Hunting!

Translated by