Problems with graph in MATLAB

Hi. I have a problem with graph. I'm asking you a question because it's difficult to figure out what the problem is by myself.
I can't plot. What's the problem?

4 comentarios

Mario Malic
Mario Malic el 2 de Feb. de 2021
Vgs and Id have to have the same number of columns, check their sizes. You didn't even share the error, nor the code that we can run, we can't really help you with this.
Walter Roberson
Walter Roberson el 2 de Feb. de 2021
ld is infinite or nan or complex. We would need to execute the code to figure out which.
Unfortunately, MATLAB has big bugs in the feature to execute pictures of code, so we can't that part.
YURIM LEE
YURIM LEE el 3 de Feb. de 2021
%% Parameters
DELTA = 4.5; % Transition width parameter
E0 = 5.27e-7; % Bulit-in electric field
Eg = 0.354; % Semiconductor band gap
% Saturation voltage parameter
LAMBDA = 0.18;
GAMMA = 0.6;
MR = 0.012; % Reduced effective mass
N1 = 1.8; % Sub-threshold ideality factor
N2 = 1.1; % Tunnel junction ideality factor
R0 = 0.45; % Tunneling window parameter
R1 = 0.001; % Electric field parameter
R2 = 1.3; % Electric field parameter
TCH = 4.5E-9; % Channel thickness
VTH = 0.17; % Threshold voltage
h = 6.626E-23; % Planks constant
q = 1.602E-19; % Elementary charge
T = 300; % Temperature
L = 20e-9; % Channel length
W = 1e-6; % Channel width
Vdsmin = 1e-15;
Kb = 1.381e-23;
Vds = 0.4;
Vmin = 0.0001;
Vt = Kb*300/q;
U0 = N1*Vt;
Vgs = -5:0.01:5;
%constant
a = W*TCH*q^3/(8*(pi*h)^2)*sqrt(2*MR/Eg);
b = 4*sqrt(2*MR)/(3*q*h)*Eg^(3/2);
Vdse = Vdsmin*(Vds/(2*Vdsmin) + sqrt(DELTA^2 + (Vds/(2*Vdsmin)-1)^2)); %Drain to source voltage
Vthds = LAMBDA*tanh(Vgs); %Drain threshold voltage
Vgoe = Vmin*(1+Vgs/(2*Vmin)+sqrt(DELTA^2 + (Vgs/(2*Vmin) -1).^2)); %Gate biased voltage
Vgt = Vgs-VTH; %Gate terminal potential
Vgoen = Vgoe/VTH;
U = R0*U0 + (1-R0)*U0*Vgoen; %Urbach factor
f = (1-exp(-Vdse/GAMMA))./(1+exp((Vthds-Vdse)/GAMMA)); %Superliner current onset factor
E = E0*(1+R1*Vds + R2*Vgoe); %Electric field
Vtw = log(1+exp(Vgt/U)); %Tunneling potential
Id = a.*f.*E.*Vtw.*exp(-b./E); %Drain current
plot(Vgs,Id);
YURIM LEE
YURIM LEE el 3 de Feb. de 2021
Thank you for your anwser. Here's the code. Can you tell me what the problem is?

Iniciar sesión para comentar.

Respuestas (1)

Walter Roberson
Walter Roberson el 3 de Feb. de 2021

0 votos

h = 6.626E-23; % Planks constant
q = 1.602E-19; % Elementary charge
b = 4*sqrt(2*MR)/(3*q*h)*Eg^(3/2);
With h being on the order of 1E-23 and q being on the order of 1e-19 then q*h is going to be on the order of 1e-39. You divide by (q*h) so your b is going to be on the order of 1e+39 -ish .
Id = a.*f.*E.*Vtw.*exp(-b./E); %Drain current
-b./E comes out on the order of -1e+45 . exp() of that is going to underflow to 0, even if you were to use software floating point -- you are dealing with values on the magnitude of

Productos

Versión

R2020b

Etiquetas

Preguntada:

el 2 de Feb. de 2021

Respondida:

el 3 de Feb. de 2021

Community Treasure Hunt

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

Start Hunting!

Translated by