Upload
riski-andami-nafa
View
151
Download
2
Embed Size (px)
DESCRIPTION
Transistor Test stability with GUI Matlab
Citation preview
MATLAB Elektronika Telekomunikasi
RISKI ANDAMI NAFA
2209106071
JURUSAN TEKNIK ELEKTRO
INSTITUT TEKNOLOGI SEPULUH NOPEMBER SURABAYA, 2010
Soal : S-Parameter for BJC at particular bias point anda operating frequency are follows :
Check the transistor stability,
stabilize it if necessary and design an amplifier for max gain
Pemograman ini menggunakan GUI pada Matlab, dengan Listing Program
s11_mag=handles.s11_mag; s12_mag=handles.s12_mag; s21_mag=handles.s21_mag; s22_mag=handles.s22_mag;
s11_phase=handles.s11_phase; s12_phase=handles.s12_phase; s21_phase=handles.s21_phase; s22_phase=handles.s22_phase;
s11=(s11_mag*cos(s11_phase*pi/180))+(s11_mag*sin(s11_phase*pi/180)*i) handles.s11=s11; guidata(hObject,handles);
s12=(s12_mag*cos(s12_phase*pi/180))+(s12_mag*sin(s12_phase*pi/180)*i) handles.s12=s12; guidata(hObject,handles);
s21=(s21_mag*cos(s21_phase*pi/180))+(s21_mag*sin(s21_phase*pi/180)*i) handles.s21=s21; guidata(hObject,handles);
s22=(s22_mag*cos(s22_phase*pi/180))+(s22_mag*sin(s22_phase*pi/180)*i) handles.s22=s22; guidata(hObject,handles);
set(handles.edit9,'string',s11); set(handles.edit10,'string',s12);
set(handles.edit11,'string',s21); set(handles.edit12,'string',s22);
a=imag(s11); b=imag(s12); c=imag(s21); d=imag(s22);
set(handles.edit21,'string',a); set(handles.edit22,'string',b); set(handles.edit23,'string',c); set(handles.edit24,'string',d);
format short %menghitung delta delta=(s11*s22)-(s12*s21) delta_mag=abs(delta) handles.delta=delta; guidata(hObject,handles); %menghitung k k1=1-(abs(s11)^2)-(abs(s22)^2)+(abs(delta)^2); k2=2*abs(s12)*abs(s21); %****************************** k=k1/k2 %nilai k handles.k=k; guidata(hObject,handles); %****************************** %menghitung nilai Cin cin1=s11-((conj(s22)*delta)); cin2=conj(cin1); %konjugat dari nilai cin1_f1 %****************************** cin=cin2/((abs(s11)^2)-(abs(delta)^2)); cin_mag=abs(cin) %magnitudo cin_phase=angle(cin)*180/pi; %****************************** %mencari niai rin rin1=s12*s21; rin1_mag=abs(rin1);%pembilang dari rin (magnitudo) rin2=abs(s11)^2; rin3=abs(delta)^2; %****************************** rin=(rin1_mag)/abs((rin2-rin3)) %nilai rin %****************************** %mencari nilai Cout cout1=conj(s11)*delta; cout2=conj((s22-cout1)); cout=cout2/((abs(s22)^2)-(abs(delta)^2)) %nilai Cout; cout_mag=abs(cout); %magnitudo dari Cout cout_phase=angle(cout)*(180/pi); %phase dari Cout %****************************** %mencari nilai rout rout1=abs((s12*s21)); rout2=((abs(s22)^2)-(abs(delta)^2)); rout=rout1/abs(rout2) %nilai dari rout %-------------------------------------------------------------------------- %------------------------------------------------------------------------- %menghitung Gamma_ms
c1=s11-((conj(s22)*delta))%mencari nilai dari s11 b1=1-(abs(s22)^2)-(abs(delta)^2)+(abs(s11)^2) %mencari nilai dari b1
gamma_ms1=b1/(2*c1) gamma_ms2=(b1/c1)^2-((4*conj(c1))/c1) gamma_ms3=0.5*sqrt(gamma_ms2); gamma_ms=gamma_ms1-gamma_ms3 %menghitung Gamma_ml c2=s22-((conj(s11)*delta))%mencari nilai dari s11 b2=1-(abs(s11)^2)-(abs(delta)^2)+(abs(s22)^2);%mencari nilai dari b1 gamma_ml1=b2/(2*c2); gamma_ml2=(b2/c2)^2-((4*conj(c2))/c2); gamma_ml3=0.5*sqrt(gamma_ml2); gamma_ml=gamma_ml1-gamma_ml3 gamma_ml_mag=imag(gamma_ml) %------------------------------------------------------------------------- G_ms=s11+((s12*s21*gamma_ml)/(1-(s22*gamma_ml))); G_ms_mag=imag(G_ms);
G_ml=s22+((s12*s21*gamma_ms)/(1-(s11*gamma_ms))) G_ml_mag=imag(G_ml); %-------------------------------------------------------------------------- %SET nilai set(handles.edit13,'string',k); set(handles.edit14,'string',delta_mag); set(handles.edit15,'string',cin_mag); set(handles.edit16,'string',cin_phase); set(handles.edit17,'string',rin); set(handles.edit18,'string',cout_mag); set(handles.edit19,'string',cout_phase); set(handles.edit20,'string',rout); set(handles.text30,'string',G_ms); set(handles.text33,'string',gamma_ml); set(handles.text53,'string',G_ms_mag); set(handles.text54,'string',gamma_ml_mag); %------------------------------------------------------------------------- %mencari nilai dari Gamma_in gamma_in=s11+((s21*s12*gamma_ml)/(1-(s22*gamma_ml))); gamma_out=s22+((s12*s21*gamma_ms)/(1-(s11*gamma_ms))); %------------------------------------------------------------------------- %mencari nilai dari Gt_max menurut persamaan 9.8 gt_max1=(1-abs(G_ml)^2)*abs(s21)^2*(1-abs(G_ms)^2); gt_max2=(1-s11*G_ms)*(1-s22*G_ml)-(s21*s12*G_ml*G_ms); gt_max3=(abs(gt_max2))^2; gt_max=gt_max1/gt_max3 db_gt=-10*log10(gt_max); set(handles.text52,'string',db_gt); %-------------------------------------------------------------------------
%melihat diagram kestabilan sistem if k>1 && delta_mag<1 cek='unconditional stable'; set(handles.text28,'string',cek); elseif k>1 && delta_mag>1 cek='still potentially stable'; set(handles.text28,'string',cek); else cek='potensial unstable'; set(handles.text28,'string',cek); end
Tampilan Grafiknya adalah :
Listing Program :
delta=handles.delta; k=handles.k;
s_param=[s11,s12;s21,s22];
[k,delta] = K_factor(s_param) % check stability
input_stability(s_param, 'r'); output_stability(s_param, 'b'); title('Graph Kestabilan system');
0.2
0.5
1.0
2.0
5.0
+0.2
-0.2
+0.5
-0.5
+1.0
-1.0
+2.0
-2.0
+5.0
-5.0
0.0
Graph Kestabilan system