# Chapter 3: Special-purpose Diodes

### Example 3.1, Page Number:88

In [1]:
%matplotlib inline

Welcome to pylab, a matplotlib-based Python environment [backend: module://IPython.zmq.pylab.backend_inline].
For more information, type 'help(pylab)'.
In [2]:
# variable declaration
delVZ=50*10**-3;    #voltage in volts, from graph
delIZ=5*10**-3;    #current in amperes, from rgraph

#calculation
ZZ=delVZ/delIZ;   #zener impedence

# result
print "zener impedance = %d ohm " %ZZ

zener impedance = 10 ohm

### Example 3.2, Page Number:89

In [3]:
# variable declaration
I_ZT=37*10**-3;    #IN AMPERES
V_ZT=6.80;         #IN VOLTS
Z_ZT=3.50;         #IN OHMS
I_Z=50*10**-3;     #IN AMPERES

#calculation
DEL_I_Z=I_Z-I_ZT;      #change current
DEL_V_Z=DEL_I_Z*Z_ZT;  #change voltage
V_Z=V_ZT+DEL_V_Z;      #voltage across zener terminals
print "voltage across zener terminals when current is 50 mA = %.3f volts" %V_Z
I_Z=25*10**-3;         #IN AMPERES
DEL_I_Z=I_Z-I_ZT;      #change current
DEL_V_Z=DEL_I_Z*Z_ZT;  #change voltage
V_Z=V_ZT+DEL_V_Z;      #voltage across zener terminals

#result
print "voltage across zener terminals when current is 25 mA = %.3f volts" %V_Z

voltage across zener terminals when current is 50 mA = 6.845 volts
voltage across zener terminals when current is 25 mA = 6.758 volts

### Example 3.3, Page Number:90

In [4]:
# variable declaration
V_Z=8.2;     #8.2 volt zener diode
TC=0.0005;   #Temperature coefficient (per degree celsius)
T1=60;       #Temperature 1 in celsius
T2=25;       #Temperature 2 in celsius

#calculation
DEL_T=T1-T2;           #change in temp
del_V_Z=V_Z*TC*DEL_T;  #change in voltage
voltage=V_Z+del_V_Z;   #zener voltage

#result
print "zener voltage at 60 degree celsius = %.3f volt" %voltage

zener voltage at 60 degree celsius = 8.343 volt

### Example 3.4, Page Number:90

In [5]:
# variable declaration
P_D_max=400*10**-3;    #power in watts
df=3.2*10**-3          #derating factor in watts per celsius
del_T=(90-50);         #in celsius, temperature difference

#calculation
P_D_deru=P_D_max-df*del_T;  #power dissipated
P_D_der=P_D_deru*1000;

#result
print "maximum power dissipated at 90 degree celsius = %d mW" %P_D_der

maximum power dissipated at 90 degree celsius = 272 mW

### Example 3.5, Page Number: 92

In [6]:
# variable declaration
V_Z=5.1;
I_ZT=49*10**-3;
I_ZK=1*10**-3;
Z_Z=7;
R=100;
P_D_max=1;

#calculation
V_out=V_Z-(I_ZT-I_ZK)*Z_Z;   #output voltage at I_ZK
V_IN_min=I_ZK*R+V_out;       #input voltage
I_ZM=P_D_max/V_Z;            #current
V_out=V_Z+(I_ZM-I_ZT)*Z_Z;   #output voltage at I_ZM
V_IN_max=I_ZM*R+V_out;       #max input voltage

#result
print "maximum input voltage regulated by zener diode = %.3f volts" %V_IN_max
print "minimum input voltage regulated by zener diode = %.3f volts" %V_IN_min

maximum input voltage regulated by zener diode = 25.737 volts
minimum input voltage regulated by zener diode = 4.864 volts

### Example 3.6, Page Number: 93

In [7]:
# variable declaration
V_Z=12.0;      #voltage in volt
V_IN=24.0;     #ip voltage in volt
I_ZK=0.001;    #current in ampere
I_ZM=0.050;    #current in ampere
Z_Z=0;         #impedence
R=470;         #resistance in ohm

#calculation
#when I_L=0, I_Z is max and is equal to the total circuit current I_T
I_T=(V_IN-V_Z)/R;    #current
I_Z_max=I_T;         #max current
if I_Z_max<I_ZM :    # condition for min currert
I_L_min=0;

I_L_max=I_T-I_ZK;    #max current
R_L_min=V_Z/I_L_max; #min resistance

#result
print "minimum value of load resistance = %.2f ohm" %R_L_min
print "minimum curent = %.3f ampere" %I_L_min
print "maximum curent = %.3f ampere" %I_L_max

minimum value of load resistance = 489.16 ohm
minimum curent = 0.000 ampere
maximum curent = 0.025 ampere

### Example 3.7, Page Number: 94

In [8]:
# variable declaration
V_IN=24.0;          #voltage in volt
V_Z=15.0;           #voltage in volt
I_ZK=0.25*10**-3;   #current in ampere
I_ZT=17*10**-3;     #current in ampere
Z_ZT=14.0;          #impedence
P_D_max=1.0;        #max power dissipation

#calculation
V_out_1=V_Z-(I_ZT-I_ZK)*Z_ZT;     #output voltage at I_ZK
print "output voltage at I_ZK = %.2f volt" %V_out_1
I_ZM=P_D_max/V_Z;

V_out_2=V_Z+(I_ZM-I_ZT)*Z_ZT;     #output voltage at I_ZM
print "output voltage a I_ZM = %.2f volt" %V_out_2
R=(V_IN-V_out_2)/I_ZM;            #resistance
print "value of R for maximum zener current, no load = %.2f ohm" %R
print "closest practical value is 130 ohms"
R=130.0;
I_T=(V_IN-V_out_1)/R;     #current
I_L=I_T-I_ZK;             #current

#result
print "minimum load resistance = %.2f ohm" %R_L_min

output voltage at I_ZK = 14.77 volt
output voltage a I_ZM = 15.70 volt
value of R for maximum zener current, no load = 124.57 ohm
closest practical value is 130 ohms
minimum load resistance = 208.60 ohm

### Example 3.8, Page Number: 96

In [9]:
#variable declaration
V_p_in=10.0;   #Peak input voltage
V_th=0.7;      #forward biased zener
V_Z1=5.1;
V_Z2=3.3;

V_p_in=20.0;
V_Z1=6.2;
V_Z2=15.0;

#result
print('max voltage = %.1f V'%(V_Z1+V_th))
print('min voltage = %.1f V'%(-(V_Z2+V_th)))

max voltage = 6.9 V
min voltage = -15.7 V