BillHung.Net


powered by FreeFind     sms

Ann Chen's EE 105 HW 11 Matlab Plot 27 Nov 2004

fu = 100e6;
CL = 20e-12;
Col = 0.5e-15*1e6;
L = 1e-6;
Vdsat = 200e-3;
kp = 200e-6;
Cj = 1e-15*(1e6)^2;
Ldiff = 2e-6;
Vo = 2.5;
VB = 1;
lambda = 0.01;
gm1 = 2*pi * fu * CL
IB1 = 1/2 * gm1 * Vdsat
W1 = 2 * L * IB1 / (kp * Vdsat^2)
CGD = Col * W1
CDB = Cj * W1 * Ldiff / sqrt(1 + Vo/VB)
Cx = CL + CGD*1.2 + CDB*1.2
gm2 = 2*pi * fu * Cx
IB2 = 1/2 * gm2 * Vdsat
W2 = 2 * L * IB2 / (kp * Vdsat^2)
r0 = 1 / (lambda * IB2)
Av0 = -gm2 * r0
num = [-Av0*CGD/gm2 Av0];
den = [r0*Cx 1];
sys = tf(num, den);
bode(sys, {1, 1e15})

z1 = 1/(2*pi * -100e3);
z2 = 1/(2*pi * 10e6);
p1 = 1/(2*pi * -(sqrt(2)+sqrt(-2))/2 * 1e3);
p2 = 1/(2*pi* - (sqrt(2)-sqrt(-2))/2 * 1e3);
num = [z1*z2 -(z1+z2) 1];
den = [p1*p2 -(p1+p2) 1];
sys = tf(num, den);
bode(sys, {1, 1e10})
 

EE 105 Term Project Matlab File 27 Nov 2004

%% Amin's Term Project Matlab File
%% This m-file allows one to graphically determine W3 for desired
%% wp2 location. See Circuit Solution #3 of Discussion 11 for more
%% details

clear all
KP = 100e-6;
Cox = 5e-15;
Col = 0.5e-15;

Vdsat3 = 0.2;
L3 = 1;
Vout = 2.5;
lambda3Term = 1+0.1*2.5;

%% The next variable is CGD1+CDB1
C_M1 = 2.2742e-15+7.9784e-15 % 2.2742e-15+7.9782e-15; %2.2697e-15+7.9626e-15

GL = 1/10e3;
CL = 10e-12; %CL_p = CL + Cdb3 + Cdb4 + Cgd4
C_GD6 = 4.4618e-15 %4.4618e-15 %4.5294e-15; %1.0167e-18;
C_DB6 = 7.9029e-15 %7.9029e-15 %8.0226e-15; %5.7400e-19; %added
W3 = linspace(1,2000,2000);

for i=1:2000
gm3 = KP*W3(i)/L3*Vdsat3*lambda3Term;
CY = Col*W3(i)+C_M1+C_GD6+C_DB6; %added C_GD6, C_DB6, Col*W3 = Cgd3
CGS3 = Col*W3(i)+2/3*Cox*W3(i)*L3;
K1 = GL+gm3;
K2 = CL+CGS3; %CL_p?
K3 = CY+CGS3;

wp1(i) = abs((CGS3*gm3-K1*K3)/(K2*K3-CGS3*CGS3));
end

%semilogy(W3,wp2)
plot(W3,wp1);
grid on;
`f``
 

EE 105 Bode Plots with Matlab 27 Nov 2004

1.
gm = 10^-3
Rs=159.15*10^3
Cin=50*10^-15
ro = 10^6
CL = 159.15*10^-12
num = -gm*ro
den = [Cin*Rs*ro*CL (Cin*Rs+ro*CL) 1]
sys = tf(num, den)
bode(sys,{1,1e10})

2a.
t1 = 1/(2*pi*100*10^3)
t2 = 1/(2*pi*10^3)
t3 = 1/(2*pi*10^6)
Av =1000
num = [Av*t1 Av]
den = [t2*t3 t2+t3 1]
sys = tf(num, den)
bode(sys,{1,1e10})

2b.
t1 = 1/(2*pi*10^3)
t2 = 1/(2*pi*100*10^3)
t3 = 1/(2*pi*10^6)
Av =1000
num = [Av*t1 Av]
den = [t2*t3 t2+t3 1]
sys = tf(num, den)
bode(sys,{1,1e10})

2c.
t1 = 1/(2*pi*10^3)
t2 = 1/(2*pi*10*10^3)
Av =1000
num = [Av*t1 0]
den = [t2 1]
sys = tf(num, den)
bode(sys,{1,1e10})

2d.
t1 = 1/(2*pi*10^3)
t2 = 1/(2*pi*10^3)
Av =1000
num = [Av*t1 Av]
den = [t2 0]
sys = tf(num, den)
bode(sys,{1,1e10})

3.
t2 = 1/(2*pi*10*10^3)
t1 = 1/(2*pi*10^3)
t3 = 1/(2*pi*100*10^3)
t4 = 1/(2*pi*10^6)
Av =1000
num = [Av*t1*t3 Av*(t1+t3) Av]
den = [t2*t4 t2+t4 1]
sys = tf(num, den)
bode(sys,{1,1e10})


%%Appendix
%%Amin's Matlab Note
%% Assume that you wanted to use Matlab in order to obtain Bode
%% magnitude and phase plots for the following transfer function
%%
%% H(s) = P(s)/Q(s), where
%%
%% P(s) = [2.5329e-14*s^2 + 1.5915e-4*s + 1]
%% Q(s) = [2.5329e-20*s^2 + 1.5915e-7*s + 1]
%%
%%
%% You would need to type the following:

>> num = [2.5329e-14 1.5915e-4 1];
>> den = [2.5329e-20 1.5915e-7 1];

>> sys = tf(num,den)

%% The next line asks Matlab to plot the Bode magnitude and phase
%% plots for the aforementioned transfer function
%% The frequency range is 1 rad/s to 1e15 rad/s

>> bode(sys,{1,1e15})