You are on page 1of 5

MATERIALE PENTRU ELECTRONICA Laborator 6

Laborator 6
MATLAB. Program pentru calcule tehnice
Aplicatii MATLAB cu diode

Exercitiul 6.1: O dioda polarizata direct are urmatoarele valori ale curentului în functie de
tensiune. Sa se determine cu programul MATLAB curentul invers Is si parametrul n al diodei.
Date experimentale
VF(V) 0.1 0.2 0.3 0.4 0.5 0.6 0.7

IF(A) 0.133*10-12 1.79*10-12 24.02*10-12 0.32*10-9 4.31*10-9 57.69*10-9 7.726*10-7

Exercitiu61.dat

% Parametrii diodei
vt = 25.67e-3;
v = [0.1 0.2 0.3 0.4 0.5 0.6 0.7];
i = [0.133e-12 1.79e-12 24.02e-12 321.66e-12 4.31e-9 57.69e-9
772.58e-9];
%
lni = log(i); % Logaritmul natural al curentului
% Se vor obtine cei mai buni coeficienti de aproximare a modelului liniar
p_fit = polyfit(v,lni,1);
% ecuatia linira este y = m*x + b
b = p_fit(2);
m = p_fit(1);
ifit = m*v + b;
% Se calculeaza Is si n
Is = exp(b)
n = 1/(m*vt)
% Te reprezinta v in functie de ln(i)
plot(v,ifit,'w', v, lni,'ow')
axis([0,0.8,-35,-10])
xlabel('Tensiunea (V)')
ylabel('ln(i)')
title('Modelul liniar ')
diary

Exemplul 6.2. Curentul de saturatie al unei diode la 25oC este 10-12A. Se presupune ca
variatia cu temperatura a curentului de saturatie este ks=0.072 /oC. Sa se traseze caracteristica statica
a diodei la T1=0oC si T2=100oC.
% Efecte de temperatura asupra caracteristicii diodei
k = 1.38e-23; q = 1.6e-19;
t1 = 273 + 0;
t2 = 273 + 100;
ls1 = 1.0e-12;
ks = 0.072;
ls2 = ls1*exp(ks*(t2-t1));
v = 0.45:0.01:0.7;
l1 = ls1*exp(q*v/(k*t1));
1
Aplicatii MATLAB cu diode

l2 = ls2*exp(q*v/(k*t2));
plot(v,l1,'wo',v,l2,'w+')
axis([0.45,0.75,0,10])
title('Caracteristica diodei la 2 temperaturi')
2
xlabel('Tensiunea (V)')
ylabel('Curentul (A)')
text(0.5,8,'o este pentru 100 oC')
text(0.5,7, '+ este pentru 0 oC').

Exemplul 6.3. Un circuit este format dintr-o dioda în serie cu o rezistenta R=10kΩ la care
se aplica o tensiune de alimentare de VDC=10V. Circuitul este reprezantat în Fig.6.1. Dioda are un
curent de saturatie de 10-12 A si n=2 la temperatura de 25oC. Sa se reprezinte grafic caracteristica
statica diodei si dreapta de sarcina si sa se estimeze punctul static de functionare.
% Determinarea PSF cu metode grafice
% ecuatia diodei
k = 1.38e-23;q = 1.6e-19;
t1 = 273 + 25; vt = k*t1/q;
v1 = 0.25:0.05:1.1;
i1 = 1.0e-12*exp(v1/(2.0*vt));
% dreapta de sarcina 10=(1.0e4)i2 + v2
vdc = 10;
r = 1.0e4;
v2 = 0:2:10;
i2 = (vdc - v2)/r;
% plot
plot(v1,i1,'w', v2,i2,'w')
axis([0,2, 0, 0.0015])
title('Metoda grafica de determinare a PSF')
xlabel(' Tensiunea (V)')
ylabel('Curentul (A)')
text(0.4,1.05e-3,'Drepata de sarcina')
text(1.08,0.3e-3,' Caracteristica diodei')

Exemplul 6.4. Se va determina punctul static de functionare al diodei cu metoda iterativa.


Procesul de iteratie se va opri când diferenta dintre 2 tensiuni succesive de la bornele diodei va fi
mai mica ca 10-7.

Exempl64
% Determinarea PSF al diodei cu metoda iterativa
k = 1.38e-23;q = 1.6e-19;
t1 = 273 + 25; vt = k*t1/q;
vdc = 10;
r = 1.0e4;
n = 2;
id(1) = 1.0e-3; vd(1) = 0.7;
reltol = 1.0e-7;
i = 1;
vdiff = 1;
while vdiff > reltol
id(i+1) = (vdc - vd(i))/r;
vd(i+1) = vd(i) + n*vt*log(id(i+1)/id(i));
2
MATERIALE PENTRU ELECTRONICA Laborator 6

vdiff = abs(vd(i+1) - vd(i));


i = i+1;
end
k = 0:i-1;
% PSF al diodei (vdiode, idiode)
idiode = id(i)
vdiode = vd(i)
% Se reprezinta grafic tensiunea in procesul de iteratie
plot(k,vd,'wo')
axis([-1,5,0.6958,0.701])
title('Tensiunea la bornele diodei in procesul de iteratie')
xlabel('Numarul iteratiei')
ylabel('Tensiunea, V')

Exemplul 6.5. Un circuit de încarcare a unei baterii este reprezentat în Fig.6.2. Tensiunea la
bornele bateriei este VB=11.8V. Sursa de tensiune alternativa este v(t) =18 sin(100πt) V iar
rezistenta de limitare a curentului este R=100 ohmi. Sa se utilizeze programul MATLAB pentru ca
sa se reprezinte grafic :
a.Tensiunea de la intrare,
b. Curentul care trece prin dioda,
c.Sa se determine unghiul de conductie al diodei,
d. Sa se afle curentul maxim prin circuit daca se presupune dioda ideala.

% Circuit de incarcare a unei baterii


period = 1/50;
period2 = period*2;
inc =period/100;
npts = period2/inc;
vb = 11.8;
t = [];
for i = 1:npts
t(i) = (i-1)*inc;
vs(i) = 18*sin(120*pi*t(i));
if vs(i) > vb
idiode(i) = (vs(i) -vb)/r;
else
idiode(i) = 0;
end
end
subplot(211), plot(t,vs)
%title('Tensiunea de intrare')
xlabel('Timpul (s)')
ylabel('Tensiunea (V)')
text(0.027,10, 'Tensiunea de intrare')
subplot(212), plot(t,idiode)
%title('Curentul prin dioda')
xlabel('Timpul (s)')
ylabel('Curentul(A)')
text(0.027, 0.7e-3, 'Curentul prin dioda')
% unghiul de conductie
theta1 = asin(vb/18); theta2 = pi - theta1;
acond = (theta2 -theta1)/(2*pi)
3
Aplicatii MATLAB cu diode

% Curentul de varf
pcurrent = (18*sin(pi/2) - vb)/r
% pcurrent = max(idiode)
diary

Exempul 6.6. Un circuit redresor monoalternanta care contine un filtru capacitiv se prezinta
în Fig.6.3. la care R=10kΩ, C=100µF si tensiunea de la intrare este vs(t)=220√2*sin(220πt) V.
a. Sa se determine timpii t1 si t2.
b.Sa se compare timpul de descarcare al condensatorului cu perioada semnalului de la
intrare.

Examl66.dat
% Timpul de descarcare al unui condensator de filtraj
vm = 120*sqrt(2);
f0 = 60; r =10e3; c = 100e-6;
t2 = 1/(4*f0);
tp = 1/f0;
% se utilizeaza functia MATLAB fzero ca sa se determine valoarea zero a
% unei functii de o variabila
rc = r*c;
t3 = fzero('sinexpf1',4.5*t2);
tdis_cap = t3- t2;
fprintf('Valoarea lui t2 este %9.5f s\n', t2)
fprintf('Valoarea lui t3 este %9.5f s\n', t3)
fprintf('Timpul de descarcare al condensatorului este %9.5f s\n', tdis_cap)
fprintf('Perioada semnalului de intrare este %9.5f s\n', tp)
diary
%
function y = sinexpf1(t)
t2 = 1/240; tp = 1/60;
rc = 10e3*100e-6;
y = sin(120*pi*(t-tp)) - exp(-(t-t2)/rc);
end

Exercitiul 6.7. Pentru redresorul dubla alternanta cu filtru RC din Fig.6.4 se cunoaste vs(t)=
20 sin(220πt) V, R= 10kΩ, C=100µF si se cere:
a. Sa se determine tensiunea vârf la vârf si variatia de tensiune,
b. Tensiunea de la iesire,
c. Timpul de descarcare al condensatorului,
d. Perioada tensiunii variabile

% Redresor dubla alternanta


period = 1/50;
t1 = period/4;
vripple = 20/(2*60*10e3*100e-6);
vdc = 20 - vripple/2;
t3 = fzero('sinexpf2',0.7*period);
tdis_cap = t3 - t1;
fprintf('Tensiunea de ripplu este %9.5f V\n', vripple)
fprintf(' Tensiunea Dc este %9.5f V\n', vdc)
fprintf('Timpul de descarcara al condensatorului este %9.5f s\n', tdis_cap)
fprintf('Perioada tensiunii de riplu este %9.5f s\n', 0.5*period)
4
MATERIALE PENTRU ELECTRONICA Laborator 6

diary
%
function y = sinexpf2(t)
t1 = 1/240; t2 = 2*t1; rc = 10e3*100e-6;
y = 20(sin(120*pi*(t - t2))) - exp(-(t-t1)/rc);
end

Exercitiul 6.8. Se considera stabilizatorul de tensiune cu DZ din Fig. 6.5. la care se cunosc
tensiunea de la intrare 30≤Vs≤35V, RL=10kΩ, Rs=2kΩ, VZ =-20+0.05I daca -100mA ≤I≤0. Se cere
sa se reprezinte grafic caracteristica diodei în zona de stabilizare, sa se reprezeinte grafic dreapta de
sarcina daca Vs variaza între limitele specificate mai sus si sa se afle tensiuea de la iesire la cele 2
valor extreme ale tensiunii de intrare.

Exer98.dat
% Stabilizator de tensiune cu DZ
vs1 = -30; vs2 = -35; rl =10e3; rs = 2e3;
i = -50e-3: 5e-3 :0;
vz = -20 + 0.05*i;
m = length(i);
i(m+1) = 0; vz(m+1) = -10;
i(m+2) = 0; vz(m+2) = 0;
% drepta de sarcina
vt1 = vs1*rl/(rl+rs);
vt2 = vs2*rl/(rl+rs);
rt = rl*rs/(rl+rs);
l1 = vt1/20;
l2 = vt2/20;
v1 = vt1:abs(l1):0;
i1 = (vt1 - v1)/rt;
v2 = vt2:abs(l2):0;
i2 = (vt2 - v2)/rt;
% Reprezentarea grafica a caracteristicii diodei si dreptei de sarcina
plot(vz,i,'w',v1,i1,'w',v2,i2,'w')
axis([-30,0,-0.03,0.005])
title('Circuit stabilizator de tensiune cu DZ')
xlabel('Tensiunea (V)')
ylabel('Curentul (A)')
text(-19.5,-0.025,'Caracteristica DZ')
text(-18.6,-0.016, 'Dreapta de sarcina (Alim 35 V )')
text(-14.7,-0.005,'Dreapta de sarcina (Alimentare 30 V )')
% Tensiunea de la iesire pentru vs = -30v
ip1 = (vt1 + 20)/(rt + 0.05)
vp1 = vt1 - rt*(vt1+20)/(rt + 0.05)
% Tensiunea de la iesire pentru vs = -35v
ip2 = (vt2 + 20)/(rt + 0.05)
vp2 = vt2 - rt*(vt2+20)/(rt + 0.05)
diary

You might also like