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

17 ビュー (過去 30 日間)
1582251394
1582251394 2016 年 11 月 21 日
コメント済み: Star Strider 2016 年 11 月 22 日
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.

採用された回答

Star Strider
Star Strider 2016 年 11 月 22 日
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 件のコメント
1582251394
1582251394 2016 年 11 月 22 日
Thank you very much!
Star Strider
Star Strider 2016 年 11 月 22 日
My pleasure!
I use the Symbolic Math Toolbox extensively in circuit design and analysis.

サインインしてコメントする。

その他の回答 (1 件)

Walter Roberson
Walter Roberson 2016 年 11 月 21 日
solVin = solve(eq3, Vin);
Vin_over_Vout = simplify( expand( SolVin/Vout ) );
  2 件のコメント
Walter Roberson
Walter Roberson 2016 年 11 月 22 日
Opps, yes, I did Vin/Vout instead of Vout/Vin, but you can use
Vout_over_Vin = simplify( expand( Vout/SolVin ) );
1582251394
1582251394 2016 年 11 月 22 日
Thank you very much!

サインインしてコメントする。

カテゴリ

Help Center および File ExchangeOptimization についてさらに検索

Community Treasure Hunt

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

Start Hunting!

Translated by