Contents Chapter 1: Introduction 2: Simple Diode Circuits 3: Simple SCR Circuits 4: Fully Controlled 1 PH 5: Fully Controlled 3 PH 6: Semi - Controlled Rectifier Circuits 7: Switch MOde PowerSupply previous page Section Contents next page

 

Chapter 3
Simple SCR Circuits

Section 2
A Single SCR Circuit with a Free - Wheeling Diode

 

 

MATLAB Simulation

The Matlab program is presented below.

% Program to simulate the half-wave controlled rectifier circuit
% The circuit has a free-wheeling diode
% Enter the peak voltage, frequency, 
  inductance L in mH and resistor R
disp('Typical value for peak voltage is 340 V')
peakV=input('Enter Peak voltage in Volts>');
disp('Typical value for line frequency is 50 Hz')
freq=input('Enter line frequency in Hz>');
disp('Typical value for Load inductance is 31.8 mH')
L=input('Enter Load inductance in mH>');
disp('Typical value for Load Resistance is 10.0 Ohms')
R=input('Enter Load Resistance in Ohms>');
disp('Typical value for Firing angle is 30.0 degree')
fangDeg=input('Enter Firing angle within range 0 to 180 in deg>');
fangRad=fangDeg/180.0*pi;

w=2.0*pi*freq;
X=w*L/1000.0;
if (X<0.001) X=0.001; end;
Z=sqrt(R*R+X*X);
tauInv=R/X;
loadAng=atan(X/R);
k1=exp(R*(pi+fangRad)/X);
k2=exp(R*(fangRad-pi)/X);
A=peakV/Z*(sin(pi-loadAng)+sin(loadAng-fangRad)*k1)/(k1-k2);

Ampavg=0;
AmpRMS=0;

Cur180=peakV/Z*sin(pi-loadAng)+A*k2;

for n=1:360;
  theta=n/180.0*pi;
  X(n)=n;
  if (n<fangDeg)
    cur=Cur180*exp(-(pi+theta)*tauInv);
        Vind(n)=-R*cur;
        iLoad(n)=cur;
    Vout(n)=0;
        VSCR(n)=peakV*sin(theta);
        curSCR(n)=0;
        diodecur(n)=cur;
        Ampavg=Ampavg+cur*1/360; 
        AmpRMS=AmpRMS+cur*cur*1/360;
  elseif ((n>=fangDeg) & (n<180)) 
    cur=peakV/Z*sin(theta-loadAng)+A*exp(-tauInv*(theta-fangRad));
    Ampavg=Ampavg+cur*1/360; 
        AmpRMS=AmpRMS+cur*cur*1/360;
        Vind(n)=peakV*sin(theta)-R*cur;
        iLoad(n)=cur;
    Vout(n)=peakV*sin(theta);   
    VSCR(n)=0;
    curSCR(n)=cur;
        diodecur(n)=0;
  else
    cur=Cur180*exp((pi-theta)*tauInv);
    Vind(n)=-R*cur;
        iLoad(n)=cur;
        Vout(n)=0;
    VSCR(n)=peakV*sin(theta);
    curSCR(n)=0;
        diodecur(n)=cur;
        Ampavg=Ampavg+cur*1/360; 
        AmpRMS=AmpRMS+cur*cur*1/360;
  end;
end;  
  
  
plot(X,iLoad)
title('The Load current')
xlabel('degrees')
ylabel('Amps') 
grid
pause

plot(X,Vout)
title('Voltage at cathode')
xlabel('degrees')
ylabel('Volts') 
grid
pause

plot(X,Vind)
title('Inductor Voltage')
xlabel('degrees')
ylabel('Volts') 
grid
pause

plot(X,VSCR)
title('SCR Voltage')
xlabel('degrees')
ylabel('Volts') 
grid
pause

plot(X,curSCR)
title('SCR Current')


xlabel('degrees')
ylabel('Amps') 
grid
pause

plot(X,diodecur)
title('diode Current')
xlabel('degrees')
ylabel('Amps') 
grid

AmpRMS=sqrt(AmpRMS);
[C,message]=fopen('hwavec2.dat','w');
fprintf(C,'Avg Load Cur=\t%d\tRMS Load Cur=\t%f\n',Ampavg,AmpRMS);
fclose(C)

The output file is re-produced below.

Avg Load Cur= 1.009749e+001 RMS Load Cur= 13.337142

Next the plots obtained for the typical specified values are displayed.

 
TO THE TOP