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 4
Fully Controlled 1 - PH SCR Bridge Rectifier

Section 2
Operation with an RL Load

 

 

MATLAB Simulation

The Matlab program is presented below.

% Program to simulate the full-wave fully-controlled 
bridge rectifier
% Simulation at a specified firing angle
% 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=peakV/Z;
k2=2.0*k1*sin(loadAng-fangRad)/(1.0-exp(-pi*tauInv));
k3=k1*sin(loadAng-fangRad);
if (fangRad<loadAng)
  A=k2;
  sw=1;
else
  A=k3;
  sw=2;
end;  

Ampavg=0;
AmpRMS=0;

for n=1:360;
  theta=n/180.0*pi;
  X(n)=n;
  if (sw==1);
    if (n<fangDeg);
          cur=k1*sin(pi+theta-loadAng)
                  +A*exp(-tauInv*(pi+theta-fangRad));
          vbr(n)=peakV*sin(theta+pi);
          vind(n)=vbr(n)-R*cur;
          iLoad(n)=cur;
          vSCR(n)=peakV*sin(theta);
          Ampavg=Ampavg+cur*1/360; 
          AmpRMS=AmpRMS+cur*cur*1/360;
        elseif ((n>=fangDeg) & (n<(180+fangDeg)));   
          cur=k1*sin(theta-loadAng)+A*exp(-tauInv*(theta-fangRad));
          vbr(n)=peakV*sin(theta);
          vind(n)=vbr(n)-R*cur;
          iLoad(n)=cur;
          vSCR(n)=0;
          Ampavg=Ampavg+cur*1/360; 
          AmpRMS=AmpRMS+cur*cur*1/360;
        else (n>=(180+fangDeg)); 
          cur=k1*sin(theta-pi-loadAng)+
              A*exp(-tauInv*(theta-pi-fangRad));
          vbr(n)=peakV*sin(theta-pi);
          vind(n)=vbr(n)-R*cur;
          iLoad(n)=cur;
          vSCR(n)=peakV*sin(theta);
          Ampavg=Ampavg+cur*1/360; 
          AmpRMS=AmpRMS+cur*cur*1/360;  
        end;
  else
    if (n<fangDeg);
          cur=k1*sin(pi+theta-loadAng)+
            A*exp(-tauInv*(pi+theta-fangRad));
          if (cur>0);
            vbr(n)=peakV*sin(theta+pi);
            vind(n)=vbr(n)-R*cur;
            iLoad(n)=cur;
            vSCR(n)=peakV*sin(theta);
            Ampavg=Ampavg+cur*1/360; 
            AmpRMS=AmpRMS+cur*cur*1/360;
          else;
            vbr(n)=0.0;
                vind(n)=0.0;
                iLoad(n)=0.0;
            vSCR(n)=peakV*sin(theta)/2.0;
          end;
          
        elseif ((n>=fangDeg) & (n<(180+fangDeg)));   
          cur=k1*sin(theta-loadAng)+A*exp(-tauInv*(theta-fangRad));
          if (cur>0);
            vbr(n)=peakV*sin(theta);
            vind(n)=vbr(n)-R*cur;
            iLoad(n)=cur;
            vSCR(n)=0;
            Ampavg=Ampavg+cur*1/360; 
            AmpRMS=AmpRMS+cur*cur*1/360;
      else;
            vbr(n)=0.0;
                vind(n)=0.0;
                iLoad(n)=0.0;
            vSCR(n)=peakV*sin(theta)/2.0;
          end;
                        
        else (n>=(180+fangDeg)); 
          cur=k1*sin(theta-pi-loadAng)+
                 A*exp(-tauInv*(theta-pi-fangRad));  
          vbr(n)=peakV*sin(theta-pi);
          vind(n)=vbr(n)-R*cur;
          iLoad(n)=cur;
          vSCR(n)=peakV*sin(theta);
          Ampavg=Ampavg+cur*1/360; 
          AmpRMS=AmpRMS+cur*cur*1/360;  
        end;
  end;
end;  
  
plot(X,iLoad)
title('The Load current')
xlabel('degrees')
ylabel('Amps') 
grid
pause

plot(X,vbr)
title('Bridge Output volt')
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

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

The responses obtained for the typical specified values have been displayed below.

The results obtained with a firing angle of 60o have been displayed below. The other values are the same as for the previous set. When the firing angle is retarded this much, the load current is discontinuous.

 
TO THE TOP