next up previous   
Next: Listato delle funzioni Up: Introduzione Previous: Introduzione Prova C
Intro Gen: Introduzione Generale  Home: Home page

PROVA  C

 

LISTATO DEL PROGRAMMA    :      provac.m

%               LABORATORIO DI MISURE ELETTRICHE 

%                        esercitazione C

%

%

% caricamento dei dati su file :

%

clear all

% whitebg

load gruppo23.prn

A=gruppo23;

dimensione=size(A)

t=A(:,1);                 % t = vettore dei tempi

vec=A(:,2);             % vec = vettore delle tensioni collettore   ed emettitore del BJT 

vr=A(:,4);               % vettore delle tensioni ai capi di R1

%

% FASE 1 :

%

% Visualizzazione delle 2 forme d'onda

%

plot(t,vr,t,vec,'k:');

grid

xlabel('tempo [s]');

ylabel('tensione [V]');

legend('VR','VCE',-1);

pause

%

% FASE 2 :

%

% visualizzazione e studio preliminare della caratteristica

%

R1=input('inserire il valore di R1 in kiloohm : ')

vce=-vec;

ic=vr/R1;

figure;

plot(vce,ic);

grid;

xlabel('VCE [V]');

ylabel('IC [mA]');

title('caratteristica VCE-IC');

pause

%

% Adesso distinguiamo la risposta del BJT per valori 

% crescenti da quella per valori decrescenti di VCE

%

dim=size(vce);

if vce(5)<vce(6)

   decr=0;

else

   decr=1;

end

j=0;

for i=6:dim

   if decr==0

      if vce(i-1)>vce(i)

         j=j+1;

         iP(j)=i-1;

         yP(j)=vce(i-1);

         decr=1;

      end

   else

      if vce(i-1)<vce(i)

         j=j+1;

         iP(j)=i-1;

         yP(j)=vce(i-1);

         decr=0;

      end

   end

end

disp('i valori degli indici del vettore VCE che individuano');

disp('i suoi punti di massimo e di minimo sono : ');

iP

disp('mentre i corrispondenti valori di VCE sono : ');

yP

figure

plot(vce,'k-'),hold on

plot(iP,yP,'ro'),hold off

title('punti di massimo e di minimo individuati');

xlabel('vettori di indici');

ylabel('tensione VCE [V]');

pause

%

% il vettore di indici in cui dVCE/dt>0 è :

%

pos=[iP(1):iP(2) iP(3):iP(4) iP(5):iP(6)];

%

% il vettore di indici in cui dVCE/dt<0 è :

%

neg=[1:iP(1) iP(2):iP(3) iP(4):iP(5) iP(6):500];

figure;

plot(t(pos),vce(pos),'o',t(neg),vce(neg),'k*');

title('tensione VCE:tratti crescenti e decrescenti')

xlabel('tempo [s]')

ylabel('tensione [V]')

pause

figure;

plot(t(pos),ic(pos),'o',t(neg),ic(neg),'k*');

title('corrente IC')

xlabel('tempo [s]')

ylabel('corrente [mA]')

pause

figure;  

plot(vce(pos),ic(pos),'r*'), hold on

plot(vce(neg),ic(neg),'k+'), hold off

legend('dVCE/dt>0','dVCE/dt<0',0)

title ('caratteristica VCE-IC')

xlabel('VCE [V]')

ylabel('IC [mA]')

pause

%

% FASE 3 :

%

% stima dei parametri del BJT - prima parte

%

% ricerca dei parametri m ed n dell'equazione:

%         IC=mVCE+n        per VCE>1V

%

% scegliamo di operare sulla risposta ottenuta con dVCE/dt<0

% 

vceA=vce(neg);

icA=ic(neg);

j=find(vceA>1);         % indici per cui vceA è maggiore di 1V

x=vceA(j);                 % x è il subvettore estratto che contiene  i soli valori di vceA>1V

y=icA(j);                    % y è il subvettore estratto da ic che  contiene i soli valori di vceA>1V

figure;

% 

% zona della caratteristica su cui eseguiamo l'interpolazione lineare

%                    

plot(vceA,icA,'k*',x,y,'o');

title('zona della caratteristica su cui eseguiamo l''interpolazione lineare')

xlabel('VCE [V]')

ylabel('IC [mA]')

pause

disp('interpolando i dati otteniamo due parametri del modello');

%---------------------------------------------------

%             calcolo dell'interpolazione :

%

[m n]=intlin(x,y);

%

%---------------------------------------------------

disp('sostituire i dati di misura con il modello mx+n comporta :');

disp('un errore massimo assoluto in mA pari a :');

e=max(abs(y-m*x-n))

disp('un errore relativo percentuale di :');

er=e/max(icA)*100

icB=m*vceA+n;

figure;

plot(vceA,icA,'*',x,y,'k+',vceA,icB,'-');

title('stima grafica ottenuta per VCE>1V')  

xlabel('VCE [V]')

ylabel('IC [mA]')

pause

%

% FASE 4 :

%

% ricerca dei parametri p e q dell'equazione :

%             y'=p*e^qx'

%

% consideriamo una zona della caratteristica in cui risulti 

% nota la VBE ( ossia la zona per VCE>0.2V )

%

vce_sat=0.2;

clear j

j=find(vceA>vce_sat);

figure;

plot(vceA,icA,'k*',vceA(j),icA(j),'ko');

title('zona della caratteristica in cui VCE>0.2V');

xlabel('VCE [V]')

ylabel('IC [mA]')

pause

vbe_sat=0.7;

xA=vbe_sat-vceA(j);

yA=-icA(j)+m*vceA(j)+n;

figure;

plot(xA,yA,'ko'),grid

title('grafico dell''equazione y''=p*e^q^x^''');

xlabel('x''')

ylabel('y''')

pause

[xB,k]=sort(xA);

yB=yA(k);

kk=find(yB<0);

inizio=max(kk)+1;

fine=length(yB);

yC=yB(inizio:fine);

xC=xB(inizio:fine);

figure;

semilogy(xC,yC,'o'),grid

title('grafico dell''equazione y''=p*e^q^x^'' in carta semilogaritmica');

xlabel('x''')

ylabel('y''')

pause

%

% eliminazione automatica dei punti della caratteristica 

% al di fuori dell'andamento lineare atteso

%

i=inizio;

errore=0;

while yB(i)>yB(i+1)

   i=i+1;  

   errore=errore+1;

end

inizio=inizio+errore;

yC=yB(inizio:fine);

xC=xB(inizio:fine);

yD=log(yC);

xD=xC;

disp('gli altri due parametri del modello sono :');

%---------------------------------------------------

%             calcolo dell'interpolazione :

%

[q logp]=intlin(xD,yD);

%

%---------------------------------------------------

p=exp(logp)

q

yE=p*exp(q*xC);

figure;

semilogy(xC,yC,'k+',xC,yE,'k-'),grid

title ('tratto ripido della caratteristica a interpolazione effettuata')

xlabel('x''')

ylabel('y''')

pause

vceC=linspace(0.1,max(vce),1000);

icC=m*vceC+n+p*exp(q*(vbe_sat-vceC));

figure

plot(vceA,icA,'k+',vceC,icC,'-')

title('confronto tra il grafico di misura e quello stimato')

xlabel('VCE [V]')

ylabel('IC [mA]')

pause

%

% FASE 5 :

%

% calcolo e impiego dei parametri del BJT

%

disp('introdurre il valore della corrente IB (in mA)');

ib=input('utilizzata nella prova B : ')

disp('in definitiva i parametri del BJT stimati sono : ');

iceo=p

beta=(n-p)/ib

va=(n-p)/m

etavt=1/q

save gruppo23

ng=23;

IB=50e-3;

VCE=4;

bjt;


next up previous   
Next: Listato delle funzioni Up: Introduzione Previous: Introduzione Prova C
Intro Gen: Introduzione Generale  Home: Home page
Vito Marinelli
10-6-2000

HyperCounter
BPath Contatore