-
Notifications
You must be signed in to change notification settings - Fork 0
/
transistor.m
28 lines (26 loc) · 1.13 KB
/
transistor.m
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
function[Ids,Vds] = transistor(Vth,Vgs,Vds,K,plot) #ask to plot true or false
n=1;
Ids = [];
Vdsat = Vgs-Vth;
while (n <= columns(Vds)) #parcour la matrice
B = Vds(1,n); #prend la valeur dans la matrice a la position (1,n)
if B <= Vdsat #compare avec les condition correspondant a un transistor en régime linéaire
Ids =[Ids (K*(((Vgs-Vth)*B)-(0.5*(B)^2)))]; #équation d un transistor en régime linéaire, ajoute la réponse a la matrice Ids
endif
if B > Vdsat #compare avec les condition correspondant a un transistor en régime de saturation
Ids =[Ids ((K/2)*(Vgs-Vth)^2)]; #équation d un transistor en régime de saturation, ajoute la réponse a la matrice Ids
endif
n++;
endwhile
if plot == true
plotmos(Vth,Vgs,Vds,K,Ids)
endif
endfunction
#{
exemple:;
Vth = 1;
Vgs = 5;
K = 6;
Vds = [0:0.001:5];
[Ids,Vds] = transistor(Vth,Vgs,Vds,K,true) plot : true or false
#}