Symbolsk løsning av nodeligninger med Matlab: Difference between revisions
From ift
m Nfyku moved page Nodeligninger for en source-følger to Symbolsk løsning av nodeligninger med Matlab without leaving a redirect |
mNo edit summary |
||
Line 1: | Line 1: | ||
=== Using Kirchoff's current law (KCL) on a source follower configuration to find Vout as a function of Vin === | |||
<pre> | <pre> | ||
% Using Kirchoff's current law (KCL) on a source follower configuration | % Using Kirchoff's current law (KCL) on a source follower configuration | ||
Line 23: | Line 24: | ||
</pre> | </pre> | ||
=== Using Kirchoff's current law (KCL) on single transistor stage, fig. 9.18 to find Vo as a function of Is === | |||
<pre> | <pre> | ||
% Using Kirchoff's current law (KCL) on single transistor stage, fig. 9.18 | % Using Kirchoff's current law (KCL) on single transistor stage, fig. 9.18 | ||
Line 29: | Line 31: | ||
syms Vo V1 s gm R1 R2 C C1 C2 Is Zc Rz; | syms Vo V1 s gm R1 R2 C C1 C2 Is Zc Rz; | ||
%% With feedforward capacitor | |||
eq1=sym('(Vo-V1)/Zc+gm*V1+Vo/R2+Vo*s*C2=0'); | |||
eq2=sym('(V1-Vo)/Zc+V1*s*C1+V1/R1+Is=0'); | |||
eq1=subs(eq1,Zc,'1/(s*C)'); | |||
eq2=subs(eq2,Zc,'1/(s*C)'); | |||
solV1=solve(eq2,V1); | |||
eq3=subs(eq1,V1,solV1); | |||
SolVo=simplify(solve(eq3,[Vo])); | |||
disp('With capacitor only in feedforward loop'); | |||
pretty(simplify(SolVo/Is)); | |||
%% With series resistor and capacitor in feedforward loop | |||
eq1=sym('(Vo-V1)/(Zc+Rz)+gm*V1+Vo/R2+Vo*s*C2=0'); | eq1=sym('(Vo-V1)/(Zc+Rz)+gm*V1+Vo/R2+Vo*s*C2=0'); | ||
eq2=sym('(V1-Vo)/(Zc+Rz)+V1*s*C1+V1/R1+Is=0'); | eq2=sym('(V1-Vo)/(Zc+Rz)+V1*s*C1+V1/R1+Is=0'); | ||
Line 36: | Line 52: | ||
solV1=solve(eq2,V1); | solV1=solve(eq2,V1); | ||
eq3=simplify(subs(eq1,V1,solV1)); | eq3=simplify(subs(eq1,V1,solV1)); | ||
SolVo= | SolVo=solve(eq3,[Vo]); | ||
disp('With series resistor and capacitor in feedforward loop'); | |||
pretty(simplify(SolVo/Is)); | pretty(simplify(SolVo/Is)); | ||
</pre> | </pre> |
Revision as of 07:58, 9 October 2015
Using Kirchoff's current law (KCL) on a source follower configuration to find Vout as a function of Vin
% Using Kirchoff's current law (KCL) on a source follower configuration % to find Vout as a function of Vin % Only Cgd is considered (Zc) % Kjetil Ullaland ligning1='(Vout-Vgs)/Zc+gm*Vgs+Vout/Rl=0'; ligning2='(Vgs-Vout)/Zc+(Vgs-Vin)/Rs=0'; ligning1=subs(ligning1,'1/(j*w*C)','Zc'); ligning2=subs(ligning2,'1/(j*w*C)','Zc'); pretty(ligning1); pretty(ligning2); disp('Solve for Vgs'); vgs_solved=solve(ligning2,'Vgs'); pretty(simplify(vgs_solved)); disp('Solve for Vout(vin)'); ligning3=subs(ligning1,vgs_solved,'Vgs'); Vout_solved=solve(ligning3,'Vout'); pretty(simplify(Vout_solved))
Using Kirchoff's current law (KCL) on single transistor stage, fig. 9.18 to find Vo as a function of Is
% Using Kirchoff's current law (KCL) on single transistor stage, fig. 9.18 % to find Vo as a function of Is % Kjetil Ullaland, 2015 syms Vo V1 s gm R1 R2 C C1 C2 Is Zc Rz; %% With feedforward capacitor eq1=sym('(Vo-V1)/Zc+gm*V1+Vo/R2+Vo*s*C2=0'); eq2=sym('(V1-Vo)/Zc+V1*s*C1+V1/R1+Is=0'); eq1=subs(eq1,Zc,'1/(s*C)'); eq2=subs(eq2,Zc,'1/(s*C)'); solV1=solve(eq2,V1); eq3=subs(eq1,V1,solV1); SolVo=simplify(solve(eq3,[Vo])); disp('With capacitor only in feedforward loop'); pretty(simplify(SolVo/Is)); %% With series resistor and capacitor in feedforward loop eq1=sym('(Vo-V1)/(Zc+Rz)+gm*V1+Vo/R2+Vo*s*C2=0'); eq2=sym('(V1-Vo)/(Zc+Rz)+V1*s*C1+V1/R1+Is=0'); eq1=subs(eq1,Zc,'1/(s*C)'); eq2=subs(eq2,Zc,'1/(s*C)'); solV1=solve(eq2,V1); eq3=simplify(subs(eq1,V1,solV1)); SolVo=solve(eq3,[Vo]); disp('With series resistor and capacitor in feedforward loop'); pretty(simplify(SolVo/Is));