summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorTrupti Kini2015-12-10 23:30:17 +0600
committerTrupti Kini2015-12-10 23:30:17 +0600
commit57cd788699e63eb029c2dda15f64512629df2a95 (patch)
treeb1dec8c68d539088b7c932b5fce89b4ad58c5baf
parent1419af8555c4727e6c444c4a24e2770e17908cd6 (diff)
downloadPython-Textbook-Companions-57cd788699e63eb029c2dda15f64512629df2a95.tar.gz
Python-Textbook-Companions-57cd788699e63eb029c2dda15f64512629df2a95.tar.bz2
Python-Textbook-Companions-57cd788699e63eb029c2dda15f64512629df2a95.zip
Added(A)/Deleted(D) following books
M Fundamental_of_internal_combustion_engines/Chap2.ipynb A Generation_Distribution_and_Utilization_of_Electrical_Energy_by_C._L._Wadhwa/ch2.ipynb A Generation_Distribution_and_Utilization_of_Electrical_Energy_by_C._L._Wadhwa/ch3.ipynb A Generation_Distribution_and_Utilization_of_Electrical_Energy_by_C._L._Wadhwa/ch4.ipynb A Generation_Distribution_and_Utilization_of_Electrical_Energy_by_C._L._Wadhwa/ch5.ipynb A Generation_Distribution_and_Utilization_of_Electrical_Energy_by_C._L._Wadhwa/ch6.ipynb A Generation_Distribution_and_Utilization_of_Electrical_Energy_by_C._L._Wadhwa/ch7.ipynb A Generation_Distribution_and_Utilization_of_Electrical_Energy_by_C._L._Wadhwa/ch8.ipynb A Generation_Distribution_and_Utilization_of_Electrical_Energy_by_C._L._Wadhwa/screenshots/Ch6Output_Voltage.png A Generation_Distribution_and_Utilization_of_Electrical_Energy_by_C._L._Wadhwa/screenshots/Ch7(Acceleration_and_Coasting_Period).png A Generation_Distribution_and_Utilization_of_Electrical_Energy_by_C._L._Wadhwa/screenshots/Ch7time_taken_by_the_train.png
-rwxr-xr-xFundamental_of_internal_combustion_engines/Chap2.ipynb10
-rw-r--r--Generation_Distribution_and_Utilization_of_Electrical_Energy_by_C._L._Wadhwa/ch2.ipynb597
-rw-r--r--Generation_Distribution_and_Utilization_of_Electrical_Energy_by_C._L._Wadhwa/ch3.ipynb963
-rw-r--r--Generation_Distribution_and_Utilization_of_Electrical_Energy_by_C._L._Wadhwa/ch4.ipynb1098
-rw-r--r--Generation_Distribution_and_Utilization_of_Electrical_Energy_by_C._L._Wadhwa/ch5.ipynb507
-rw-r--r--Generation_Distribution_and_Utilization_of_Electrical_Energy_by_C._L._Wadhwa/ch6.ipynb561
-rw-r--r--Generation_Distribution_and_Utilization_of_Electrical_Energy_by_C._L._Wadhwa/ch7.ipynb1293
-rw-r--r--Generation_Distribution_and_Utilization_of_Electrical_Energy_by_C._L._Wadhwa/ch8.ipynb227
-rw-r--r--Generation_Distribution_and_Utilization_of_Electrical_Energy_by_C._L._Wadhwa/screenshots/Ch6Output_Voltage.pngbin0 -> 75280 bytes
-rw-r--r--Generation_Distribution_and_Utilization_of_Electrical_Energy_by_C._L._Wadhwa/screenshots/Ch7(Acceleration_and_Coasting_Period).pngbin0 -> 52615 bytes
-rw-r--r--Generation_Distribution_and_Utilization_of_Electrical_Energy_by_C._L._Wadhwa/screenshots/Ch7time_taken_by_the_train.pngbin0 -> 57144 bytes
11 files changed, 5255 insertions, 1 deletions
diff --git a/Fundamental_of_internal_combustion_engines/Chap2.ipynb b/Fundamental_of_internal_combustion_engines/Chap2.ipynb
index a4ae8119..5baf7b4f 100755
--- a/Fundamental_of_internal_combustion_engines/Chap2.ipynb
+++ b/Fundamental_of_internal_combustion_engines/Chap2.ipynb
@@ -9,6 +9,14 @@
"cells": [
{
"cell_type": "heading",
+ "level": 1,
+ "metadata": {},
+ "source": [
+ "Chapter 2 Test"
+ ]
+ },
+ {
+ "cell_type": "heading",
"level": 2,
"metadata": {},
"source": [
@@ -531,4 +539,4 @@
"metadata": {}
}
]
-} \ No newline at end of file
+}
diff --git a/Generation_Distribution_and_Utilization_of_Electrical_Energy_by_C._L._Wadhwa/ch2.ipynb b/Generation_Distribution_and_Utilization_of_Electrical_Energy_by_C._L._Wadhwa/ch2.ipynb
new file mode 100644
index 00000000..b7662b3e
--- /dev/null
+++ b/Generation_Distribution_and_Utilization_of_Electrical_Energy_by_C._L._Wadhwa/ch2.ipynb
@@ -0,0 +1,597 @@
+{
+ "metadata": {
+ "name": "",
+ "signature": "sha256:431173d6100b9446145193aba59ac72220ea87bbaab0a5b6f70b90bad00211cf"
+ },
+ "nbformat": 3,
+ "nbformat_minor": 0,
+ "worksheets": [
+ {
+ "cells": [
+ {
+ "cell_type": "heading",
+ "level": 1,
+ "metadata": {},
+ "source": [
+ "Chapter2, Economics of Generation"
+ ]
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Ex1 : Page 73"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "from __future__ import division\n",
+ "#To Determine the Demand and Supply Parameters for 15 bulbs\n",
+ "\n",
+ "W=60 #Wattage of the bulb\n",
+ "N=15 #No. of bulbs\n",
+ "CL=W*N #Connected Load \n",
+ "Wih=2*(10**3) #Wattage of immersion heater\n",
+ "Wh=2*(10**3) #Wattage of heater\n",
+ "\n",
+ "#Usage of Bulbs at different time periods\n",
+ "N1=5 \n",
+ "N2=10 \n",
+ "N3=6\n",
+ "\n",
+ "#Time periods for bulbs\n",
+ "T1=2 #6pm - 8pm\n",
+ "T2=2 #8pm - 10pm\n",
+ "T3=2 #10pm - 12pm\n",
+ "#Time Periods for heaters\n",
+ "T4=4 #1pm - 5pm\n",
+ "T5=3 #8pm - 11pm\n",
+ "\n",
+ "#CASE 1\n",
+ "MD1=W*N2 #Maximum Demand\n",
+ "DF=MD1*100/CL #Demand Factor\n",
+ "EC1=(N1*W*T1)+(N2*W*T2)+(N3*W*T3) #Energy Consumed\n",
+ "DLF1=EC1*100/(24*MD1) #Daily Load Factor\n",
+ "\n",
+ "#CASE 2\n",
+ "MD2=(W*N2)+Wh #From 8pm - 10pm\n",
+ "EC2=(T4*Wih)+(T5*Wh)+EC1 #Energy Consumed\n",
+ "DLF2=EC2*100/(24*MD2) #Daily Load Factor\n",
+ "\n",
+ "print '''i)a) Connected Load is %g W\n",
+ "b) The Maximum Demand is %g W\n",
+ "c) The Demand Factor is %0.2f percent\n",
+ "d) The Daily Load Factor is %g percent'''%(CL,MD1,DF,DLF1)\n",
+ "print 'ii) The Improved Daily Load Factor is %0.2f %%'%DLF2"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "i)a) Connected Load is 900 W\n",
+ "b) The Maximum Demand is 600 W\n",
+ "c) The Demand Factor is 66.67 percent\n",
+ "d) The Daily Load Factor is 17.5 percent\n",
+ "ii) The Improved Daily Load Factor is 26.47 %\n"
+ ]
+ }
+ ],
+ "prompt_number": 1
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Ex2 : Page 74"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#To determine the Demand and supply parameter of four consumers\n",
+ "#Maximum Demands of various users\n",
+ "MD1=2*(10**3) #9pm\n",
+ "MD2=2*(10**3) #12 noon\n",
+ "MD3=8*(10**3) #5pm\n",
+ "MD4=4*(10**3) #8pm\n",
+ "MDT=MD1+MD2+MD3+MD4 #Sum of all Maximum Demands\n",
+ "\n",
+ "#Demands of various users\n",
+ "D1=1.6*(10**3) #8pm\n",
+ "D2=1*(10**3) #8pm\n",
+ "D3=5*(10**3) #8pm\n",
+ "\n",
+ "#The Number after the Alphabets represents the Consumer\n",
+ "\n",
+ "#Maximum Demand of the System arises at 8.00 PM\n",
+ "MDS = D1+D2+D3+MD4 \n",
+ "\n",
+ "TDF=MDT/MDS #Diversity Factor\n",
+ "#Given Values\n",
+ "#Average Loads\n",
+ "AL2=500 \n",
+ "AL4=1000 \n",
+ "#Load Factors\n",
+ "LF1=15/100 \n",
+ "LF3=25/100 \n",
+ "#Calculated Values\n",
+ "#Average Loads\n",
+ "AL1=LF1*MD1 \n",
+ "AL3=LF3*MD3 \n",
+ "#Load Factors\n",
+ "LF2=AL2*100/MD2 \n",
+ "LF4=AL4*100/MD4 \n",
+ "\n",
+ "ALS=AL1+AL2+AL3+AL4 #Combined Average Loads\n",
+ "LFS=ALS*100/MDS #Combined Load Factor\n",
+ "\n",
+ "print 'i) The Diversity Factor is %0.3f '%TDF\n",
+ "print 'ii) The Average load and Load factor of:'\n",
+ "print ' Consumer 1 : %g kW and %g %%'%(AL1/1000,LF1*100)\n",
+ "print ' Consumer 2 : %g kW and %g %%'%(AL2/1000,LF2)\n",
+ "print ' Consumer 3 : %g kW and %g %%'%(AL3/1000,LF3*100)\n",
+ "print ' Consumer 4 : %g kW and %g %%'%(AL4/1000,LF4)\n",
+ "print 'iii) The Combined Load Factor and The Combined Average Load is %0.2f percent and %0.2f kW respectively'%(LFS,ALS/1000 )"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "i) The Diversity Factor is 1.379 \n",
+ "ii) The Average load and Load factor of:\n",
+ " Consumer 1 : 0.3 kW and 15 %\n",
+ " Consumer 2 : 0.5 kW and 25 %\n",
+ " Consumer 3 : 2 kW and 25 %\n",
+ " Consumer 4 : 1 kW and 25 %\n",
+ "iii) The Combined Load Factor and The Combined Average Load is 32.76 percent and 3.80 kW respectively\n"
+ ]
+ }
+ ],
+ "prompt_number": 2
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Ex3 : Page 75"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#To Determine the Yearly Cost of the substation\n",
+ "\n",
+ "Teff=95/100 #Transmission Efficiency\n",
+ "Deff=85/100 #Distribution Efficiency\n",
+ "DFT=1.2 #Diversity Factor For Transmission\n",
+ "DFD=1.3 #Diversity Factor For Distribution\n",
+ "MDGS=100*(10**6) #Maximum Demand of Generating Station\n",
+ "ALF=40/100 #Annual Load Factor\n",
+ "ACCT=2.5*(10**6) #Annual Capital Charge for Transmission\n",
+ "ACCD=2*(10**6) #Annual Capital Charge for Distribution\n",
+ "GCC=100 #Generating Cost per KW demand\n",
+ "GCCU=5/100 # Per Unit Cost\n",
+ "#Fixed Charges from Supply to Substation Annually\n",
+ "GFC=GCC*MDGS/1000 #Generating\n",
+ "TFC=ACCT #Transmission\n",
+ "TotFCS=GFC+TFC #Total\n",
+ "#Fixed Charges for supply upto Consumer Annually\n",
+ "DFC=ACCD #Distribution\n",
+ "TotFCC=TotFCS+DFC #Total\n",
+ "\n",
+ "AMDS= DFT*MDGS/1000 #Aggregate of Maximum Demand at Supply\n",
+ "AMDC= DFD*AMDS #Aggregate of Maximum Demand for Consumers\n",
+ "\n",
+ "FCS=TotFCS/AMDS #Fixed Charges Per KW at substation\n",
+ "CES=GCCU/Teff #Cost of energy at the substation\n",
+ "\n",
+ "FCC=TotFCC/AMDC #Fixed Charges per KW at the consumer premises\n",
+ "CEC=CES/Deff #Cost of Energy at the consumer premises\n",
+ "\n",
+ "print 'The Yealy Cost per KW demand and the cost per KWhr at:'\n",
+ "print 'a) The substation is %0.2f rupees per KW and %0.2f paise per KWhr'%(FCS,CES*100)\n",
+ "print 'b) The consumer premises is %g rupees per KW and %0.1f paise per KWhr'%(FCC,CEC*100)"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "The Yealy Cost per KW demand and the cost per KWhr at:\n",
+ "a) The substation is 104.17 rupees per KW and 5.26 paise per KWhr\n",
+ "b) The consumer premises is 92.9487 rupees per KW and 6.2 paise per KWhr\n"
+ ]
+ }
+ ],
+ "prompt_number": 3
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Ex4 : Page 78"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#To determine the Load factor and suitable units for 24 hr operation of the plant\n",
+ "\n",
+ "\n",
+ "#Demands at Various Time Periods starting from 12PM to 12PM\n",
+ "D1=500*(10**3) \n",
+ "D2=800*(10**3) \n",
+ "D3=2000*(10**3) \n",
+ "D4=1000*(10**3) \n",
+ "D5=2500*(10**3) \n",
+ "D6=2000*(10**3) \n",
+ "D7=1500*(10**3) \n",
+ "D8=1000*(10**3) \n",
+ "\n",
+ "MD=D5 #Maximum Demand\n",
+ "#Time Periods of demands ststing from 12PM\n",
+ "T1=5 \n",
+ "T2=5 \n",
+ "T3=2 \n",
+ "T4=2 \n",
+ "T5=3 \n",
+ "T6=3 \n",
+ "T7=2 \n",
+ "T8=2 \n",
+ "\n",
+ "#Total Energy Demand in 24hrs\n",
+ "TED=(T1*D1)+(T2*D2)+(T3*D3)+(D4*T4)+(T5*D5)+(D6*T6)+(D7*T7)+(T8*D8) \n",
+ "\n",
+ "LF=TED*100/(24*MD) \n",
+ "\n",
+ "print '''Since Maximum Demand is 2500 kW, \n",
+ "2 units 0f 1000W and one unit of 500W is required.\n",
+ "Also for continuity of supply, A reserve of 1000W unit is required.'''\n",
+ "\n",
+ "C1000=3*1000*(10**3) #1000 unit \n",
+ "C500=1*500*(10**3) #500 Unit\n",
+ "\n",
+ "TCP=C1000+C500 #Total capacity of the plant\n",
+ "PCF=TED*100/(24*TCP) #Plant Capacity Factor\n",
+ "\n",
+ "#Operating Schedule, Units operated can be seen in the textbook\n",
+ "G1=500*(10**3) \n",
+ "G2=1000*(10**3) \n",
+ "G3=2000*(10**3) \n",
+ "G4=1000*(10**3) \n",
+ "G5=2500*(10**3) \n",
+ "G6=2000*(10**3) \n",
+ "G7=1500*(10**3) \n",
+ "G8=1000*(10**3) \n",
+ "\n",
+ "TEG=(T1*G1)+(T2*G2)+(T3*G3)+(G4*T4)+(T5*G5)+(G6*T6)+(G7*T7)+(T8*G8) #Total Energy Generated\n",
+ "PUF=TED*100/(TEG) #Plant Use Factor\n",
+ "\n",
+ "print 'a) The Reserve Capacity is a 1000kW Unit and Load Factor is %0.2f percent'%LF\n",
+ "print 'b) The Plant Capacity Factor is %0.2f percent'%PCF \n",
+ "print 'c) The Plant Use Factor is %0.2f percent'%PUF"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Since Maximum Demand is 2500 kW, \n",
+ "2 units 0f 1000W and one unit of 500W is required.\n",
+ "Also for continuity of supply, A reserve of 1000W unit is required.\n",
+ "a) The Reserve Capacity is a 1000kW Unit and Load Factor is 51.67 percent\n",
+ "b) The Plant Capacity Factor is 36.90 percent\n",
+ "c) The Plant Use Factor is 96.88 percent\n"
+ ]
+ }
+ ],
+ "prompt_number": 4
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Ex5 : Page 80"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#To determine the Plant use factore of each unit\n",
+ "\n",
+ "\n",
+ "MDS=25*(10**6) #Maximum Demand on the System\n",
+ "U1=15*(10**6) #Load Supplied By Unit 1\n",
+ "U2=12.5*(10**6) #Load Supplied By Unit 2\n",
+ "#Running Time Factor of the Unit\n",
+ "T1=1 \n",
+ "T2=40/100 \n",
+ "\n",
+ "#Energy generated by each unit\n",
+ "E1=1*(10**8) \n",
+ "E2=1*(10**7) \n",
+ "Et=E1+E2 #Total Energy\n",
+ "\n",
+ "#Maximum Demands on Each Units\n",
+ "MD1=U1 \n",
+ "MD2=MDS-U1 \n",
+ "\n",
+ "#Annual Load Factor for the Units\n",
+ "ALF1=E1*1000*100/(MD1*8760) \n",
+ "ALF2=E2*1000*100/(MD2*8760) \n",
+ "\n",
+ "LF2=E2*1000*100/(MD2*0.4*8760) #Load Factor for the it is loaded\n",
+ "\n",
+ "#Since Unit runs all through the year without any reserve, Load Factor ,Plant Use Factor and Plant Capacity Factor are the same\n",
+ "PUF1=ALF1 #Plant Use Factor\n",
+ "PCF1=ALF1 # Plant Capacity Factor\n",
+ "\n",
+ "PCF2=E2*1000*100/(U2*8760) #Plant Capacity Factor for Unit 2\n",
+ "PUF2=E2*1000*100/(U2*0.4*8760) #Plant Use Factor for Unit 2\n",
+ "\n",
+ "LFP=Et*100*1000/(MDS*8760) #Annual Load Factor of the Complete Plant\n",
+ "\n",
+ "print 'The Load Factor, Plant Capacity Factor, Plant Use Factor of: ' \n",
+ "print 'Unit 1 : %g percent, %g percent, %0.2f %%'%(ALF1,PCF1,PUF1)\n",
+ "print 'Unit 2 : %g percent, %g percent, %0.2f %%'%(ALF2,PCF2,PUF2)\n",
+ "print 'The Annual Load Factor of the Entire Plant is %0.2f %%'%(LFP)"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "The Load Factor, Plant Capacity Factor, Plant Use Factor of: \n",
+ "Unit 1 : 76.1035 percent, 76.1035 percent, 76.10 %\n",
+ "Unit 2 : 11.4155 percent, 9.13242 percent, 22.83 %\n",
+ "The Annual Load Factor of the Entire Plant is 50.23 %\n"
+ ]
+ }
+ ],
+ "prompt_number": 5
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Ex6 : Page 82"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#To determine the Overall cost per kWhr\n",
+ "\n",
+ "\n",
+ "# C1 =(100,000 rupees + 100 rupees/kW + 6 paise /kWhr) #Base Load Station\n",
+ "# C2 =(80,000 rupees + 60 rupees/kW + 8 paise /kWhr) #Peak Load Station\n",
+ "\n",
+ "MaxD=15*(10**6) \n",
+ "MinD=5*(10**6) \n",
+ "\n",
+ "BLS=lambda b,c:100000+(b*100)+((6/100)*c) #Function to Find Annual Cost of Base Load Station.\n",
+ "\n",
+ "PLS = lambda b,c:80000+(b*60)+((8/100)*c) #Function to Find Annual Cost of Peak Load Station.\n",
+ "\n",
+ "\n",
+ "a1=100 \n",
+ "a2=60 \n",
+ "b1=6/100 \n",
+ "b2=8/100 \n",
+ "\n",
+ "Tpeak=(a1-a2)/(b2-b1) #Number of hours the peak plant should operate\n",
+ "#From the straight line annual load duration curve, Maximum Demand at Peak Load Station can be calculated\n",
+ "MDP=Tpeak*(MaxD-MinD)/8760 \n",
+ "\n",
+ "TotEG=(MaxD+MinD)*8760/(2*1000) #Total Energy Generated\n",
+ "EGP=MDP*Tpeak/(2*1000) #Energy Generated by Peak Load\n",
+ "EGB=TotEG-EGP #Energy Generated by Base Load\n",
+ "\n",
+ "MDB=MaxD-MDP #Maximum Demand at the Base Load\n",
+ "\n",
+ "#Total Annual Cost of Base Load and Peak Load Stations Respectively\n",
+ "C1=BLS((MDB/1000),EGB) \n",
+ "C2=PLS((MDP/1000),EGP) \n",
+ "\n",
+ "TotC=C1+C2 #Total Cost of both the plants\n",
+ "CE=TotC*100/TotEG #Cost of energy in paise per kWhr\n",
+ "\n",
+ "print 'The Operating Scedule of Peak Load Station for Minimum Annual Cost is %g hours'%Tpeak\n",
+ "print 'The Overall Cost per kWhr is %0.1f paise'%CE"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "The Operating Scedule of Peak Load Station for Minimum Annual Cost is 2000 hours\n",
+ "The Overall Cost per kWhr is 7.9 paise\n"
+ ]
+ }
+ ],
+ "prompt_number": 6
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Ex7 : Page 90"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#To determine the amount saved to replace the equipment\n",
+ "\n",
+ "\n",
+ "Pc=80000 #Plant Cost\n",
+ "UL= 15 #Useful Life of the Plant\n",
+ "SVE=5000 #Salvage Value of the Equipment\n",
+ "r=5/100 #Compound Interest Rate\n",
+ "\n",
+ "A1=(Pc-SVE)/UL #Annual Amount to be saved using straight line method\n",
+ "A2=(Pc-SVE)*r*100/(100*(((1+r)**UL)-1))# Annual Amount to be saaved using Sink Fund Method\n",
+ "\n",
+ "print 'i) The Amount to be Saved Annually according to straight line method is %g Rupees'%(A1)\n",
+ "print 'ii) The Amount to be Saved Annually according to sink fund method is %g Rupees'%(A2)"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "i) The Amount to be Saved Annually according to straight line method is 5000 Rupees\n",
+ "ii) The Amount to be Saved Annually according to sink fund method is 3475.67 Rupees\n"
+ ]
+ }
+ ],
+ "prompt_number": 7
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Ex8 : Page 90"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#To Obatin a two part tariff for the consumers\n",
+ "\n",
+ "\n",
+ "EG=390*(10**6) #Energy Generated in kWhr\n",
+ "MD=130*(10**6) #Maximum Demand of the Supply\n",
+ "SCeff=90/100 #The Amount of energy transferred from Substation to Consumer\n",
+ "#Total Cost for Each Division\n",
+ "Fuel=5*(10**6) \n",
+ "Gen=2.4*(10**6) \n",
+ "Trans=5*(10**6) \n",
+ "Dist=3.4*(10**6) \n",
+ "Tot=Fuel+Gen+Trans+Dist #Total Cost\n",
+ "\n",
+ "Runcost = lambda y,z:(y*z/100) #Function to Find out the Running Costs\n",
+ "#Running Costs\n",
+ "Fuelr=Runcost(90,Fuel) \n",
+ "Genr=Runcost(10,Gen) \n",
+ "Transr=Runcost(5,Trans) \n",
+ "Distr=Runcost(7,Dist) \n",
+ "Totr=Fuelr+Genr+Transr+Distr #Total Cost\n",
+ "\n",
+ "FixCost=Tot-Totr # Fixed Cost\n",
+ "FixChar=FixCost*1000/MD #Fixed Charges per KW\n",
+ "EnChar=Totr*100/(EG*SCeff) #Energy Charges in Paise for Consumer\n",
+ "OverCost=Tot*100/(EG*SCeff) #Overall Energy Charges\n",
+ "\n",
+ "LF=40/100 #Load Factor Raised to 40%\n",
+ "EG1=LF*MD*8760/1000 #Energy Generated for Different Load Factor\n",
+ "Totr1=Totr*(EG1/EG) #Cost of Energy Generated\n",
+ "Tot1=FixCost+Totr1 #Total Cost for the New Load Factor\n",
+ "OverCost1=Tot1*100/(EG1*SCeff) #Overall Energy Charges\n",
+ "\n",
+ "Saving=(OverCost-OverCost1)*100/OverCost #Percentage Saving in the Overall Cost per kWhr\n",
+ "\n",
+ "print 'The Fixed Charges is %0.2f rupees per kW'%FixChar \n",
+ "print 'The Energy Charges for the Consumer is %0.3f paise per kWhr '%(EnChar)\n",
+ "print '''IF the Load Factor is raised to 40percent of the Same Maximum Demand,\n",
+ "then the percentage saving in the overall costs is %0.2f percent'''%Saving"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "The Fixed Charges is 81.32 rupees per kW\n",
+ "The Energy Charges for the Consumer is 1.489 paise per kWhr \n",
+ "IF the Load Factor is raised to 40percent of the Same Maximum Demand,\n",
+ "then the percentage saving in the overall costs is 9.62 percent\n"
+ ]
+ }
+ ],
+ "prompt_number": 8
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Ex8 : Page 91"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import numpy as np\n",
+ "#To determine the most economic power factor\n",
+ "\n",
+ "\n",
+ "P=200*(10**3) #Maximum Demand\n",
+ "pf=0.707 #Power Factor Lagging\n",
+ "\n",
+ "a=100 #Tariff per kVA per year\n",
+ "\n",
+ "b=200 #Power factor improvement cost Per kVA.\n",
+ "r=20 #Interest Depriciation, maintenance and cost of losses amount to 20% of capital cost per year\n",
+ "\n",
+ "# Economic PF = sqrt(1-((b1/a)**2))\n",
+ "\n",
+ "b1=r*b/100 # b' term accrding to the equation above\n",
+ "\n",
+ "pfeco=np.sqrt(1-((b1/a)**2)) #Economic Power Factor\n",
+ "\n",
+ "print 'The Economic Power Factor is %0.4f'%pfeco"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "The Economic Power Factor is 0.9165\n"
+ ]
+ }
+ ],
+ "prompt_number": 9
+ }
+ ],
+ "metadata": {}
+ }
+ ]
+} \ No newline at end of file
diff --git a/Generation_Distribution_and_Utilization_of_Electrical_Energy_by_C._L._Wadhwa/ch3.ipynb b/Generation_Distribution_and_Utilization_of_Electrical_Energy_by_C._L._Wadhwa/ch3.ipynb
new file mode 100644
index 00000000..8794bc77
--- /dev/null
+++ b/Generation_Distribution_and_Utilization_of_Electrical_Energy_by_C._L._Wadhwa/ch3.ipynb
@@ -0,0 +1,963 @@
+{
+ "metadata": {
+ "name": "",
+ "signature": "sha256:afc5e10b4cd0ce9a61f1ca826a0d70820843f939cde405f3a80a807266886e6b"
+ },
+ "nbformat": 3,
+ "nbformat_minor": 0,
+ "worksheets": [
+ {
+ "cells": [
+ {
+ "cell_type": "heading",
+ "level": 1,
+ "metadata": {},
+ "source": [
+ "Chapter3, Distribution\n"
+ ]
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Ex1 : Page 103"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "from __future__ import division\n",
+ "from numpy import sqrt\n",
+ "#To Determine the most economical current density\n",
+ "\n",
+ "\n",
+ "OFC=15 #Cost of single phase overhead feeder per km per unit area\n",
+ "AIDC= 10*OFC/100 #Annual Interest and depriciation charges\n",
+ "R=1/58 #Resistance of 1m length and 1 sq.mm\n",
+ "CLPUL= 2*R*1000 # Copper Loss per unit length per unit area per unit square current\n",
+ "ACL= CLPUL*365*24*0.5 # Annual Copper Loss\n",
+ "GC= 5/100 # Genereating Cost per unit.\n",
+ "ACEL= ACL*GC/1000 # Annual cost of energy loss\n",
+ "CD= sqrt(AIDC/ACEL) #Current Density\n",
+ "print 'The Most Economical Current Density for this Case is %0.2f A/sq.mm'%CD "
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "The Most Economical Current Density for this Case is 0.45 A/sq.mm\n"
+ ]
+ }
+ ],
+ "prompt_number": 1
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Ex2 : Page 104"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#To determine the most economical cross sectional area\n",
+ "\n",
+ "\n",
+ "OFC=180 #Cost of single phase overhead feeder per km per unit area + 1200\n",
+ "AIDC= 10*OFC/100 #Annual Interest and depriciation charges + 120\n",
+ "R=1/58 #Resistance of 1m length and 1 sq.mm\n",
+ "I=200 # Maximum Current Flowing\n",
+ "CLPUL= 2*(I**2)*R*1000 # Copper Loss per unit length per unit area\n",
+ "ACL= CLPUL*365*24*(8/12) # Annual Copper Loss\n",
+ "GC= 5/100 # Genereating Cost per unit.\n",
+ "ACEL= ACL*GC/1000 # Annual cost of energy loss\n",
+ "A= sqrt(ACEL/AIDC) #Cross Sectional Area of the cable\n",
+ "print 'The Most Economical cross sectional area of the cable for this Case is %0.2f sq.mm'%A "
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "The Most Economical cross sectional area of the cable for this Case is 149.58 sq.mm\n"
+ ]
+ }
+ ],
+ "prompt_number": 2
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Ex3 : Page 105"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "# To determine the Most Economical Cross Sectional Area to supply a 3 Phase Load\n",
+ "\n",
+ "LLF = lambda b:(0.25*b)+(0.75*(b**2)) # Function to determine the Loss Load Factor\n",
+ "\n",
+ "OFC=0.20 #Cost of single phase overhead feeder per m per unit area + 10\n",
+ "AIDC= 10*OFC/100 #Annual Interest and depriciation charges + 1\n",
+ "TE= 2.5*(10**6) # Total energy to be supplied per annum\n",
+ "CEW=10/100 # Cost of energy wasted per unit\n",
+ "LFS= TE/(1000*365*24) # Load factor of supply\n",
+ "Llf=LLF(LFS) # Load Loss factor\n",
+ "R=1/58 # Resistance of the cable per unit length\n",
+ "PF=1 # Unity power factor\n",
+ "MD= 1*(10**6) # Maximum Demand\n",
+ "V=11*(10**3) # Voltage of the feeder\n",
+ "I=MD/(sqrt(3)*V*PF) # Full Load Current\n",
+ "FLCL= 3*(I**2)*R # Full Load Copper Loss per Metre\n",
+ "ACL= Llf*FLCL # Actual Copper Loss\n",
+ "CCL=ACL*(365*24*CEW/1000) # Cost of Copper Loss\n",
+ "A=sqrt(CCL/AIDC) \n",
+ "print 'The Most Economical Cross sectional area for this Case is %g A/sq.mm'%A \n",
+ "# Calculation Mistake in the Book. Hence according to the concepts in the book the answer is as calculated. Please Note."
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "The Most Economical Cross sectional area for this Case is 28.7493 A/sq.mm\n"
+ ]
+ }
+ ],
+ "prompt_number": 3
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Ex4 : Page 106"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#To determine the most economical cross section for a 3 Phase line 8 km long\n",
+ "\n",
+ "\n",
+ "OFC=5000 #Cost of feeder per km per unit area + 6250\n",
+ "AIDC= 8*OFC/100 #Annual Interest and depriciation charges + 625\n",
+ "AIDCPD= AIDC/365 # Annual Interest and depriciation charges per day\n",
+ "R=1/58 #Resistance of 1m length and 1 sq.mm\n",
+ "CEU= 5/100 # Cost of energy per unit\n",
+ "V=33*(10**3) # Voltage of the feeder\n",
+ "L10=3000*(10**3) # Load for 10 hrs at unity power factor.\n",
+ "L8=1000*(10**3) # Load for 8 hrs at unity power factor.\n",
+ "L6=2000*(10**3) # Load for 6 hrs at unity power factor.\n",
+ "\n",
+ "LC = lambda b:b/(sqrt(3)*V) # Funtion to determine the Load Current\n",
+ "I10=LC(L10) # Load Current for 10 hrs at unity power factor.\n",
+ "I8=LC(L8) # Load Current for 8 hrs at unity power factor.\n",
+ "I6=LC(L6) # Load Current for 6 hrs at unity power factor.\n",
+ "ELPD=3*(((I10**2)*10)+((I8**2)*8)+((I6**2)*6))*1000/(100*58) # Energy Loss Over the DAy per km (Area in sq.cm)\n",
+ "CEL=ELPD*CEU/1000 # Cost of energy loass per km\n",
+ "A=sqrt(CEL/AIDCPD) # Cross Sectional Area\n",
+ "print 'The Most Economical Cross Sectional Area for a 3 Phase line 8 km Long is %0.4f sq..cm'%A "
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "The Most Economical Cross Sectional Area for a 3 Phase line 8 km Long is 0.9388 sq..cm\n"
+ ]
+ }
+ ],
+ "prompt_number": 4
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Ex5 : Page 109"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "# To Calculate Voltage between middle wire and outer at each load point\n",
+ "\n",
+ "\n",
+ "Vs=220 #Supply Voltage\n",
+ "#Resistances of the respective Sections\n",
+ "Rab=0.2 \n",
+ "Rbc=0.2 \n",
+ "Rdh=0.2 \n",
+ "Rhe=0.2 \n",
+ "Ref=0.3 \n",
+ "Rfl=0.1 \n",
+ "Rlg=0.3 \n",
+ "Rij=0.25 \n",
+ "Rjk=0.2 \n",
+ "Ra=0.2 \n",
+ "Rd=0.4 \n",
+ "Ri=0.3 \n",
+ "\n",
+ "#Currents following through the respective Section, Found using KCL\n",
+ "Iad=5 \n",
+ "Ibe=10 \n",
+ "Icl=12 \n",
+ "Ihi=15 \n",
+ "Ifj=5 \n",
+ "Igk=15 \n",
+ "Ia=Iad+Ibe+Icl # Current through the positive wire\n",
+ "Iab=Ia-Iad \n",
+ "Ibc=Ia-Iad-Ibe \n",
+ "Ii=Ihi+Ifj+Igk # Current through the negative wire\n",
+ "Id=Ii-Ia #Current through the Middle wire\n",
+ "Idh=Iad+Id \n",
+ "Ihe=Ihi-Idh \n",
+ "Ief=Ibe-Ihe \n",
+ "Ifl=Ief-Ifj \n",
+ "Ilg=Igk \n",
+ "Iij=Ii-Ihi \n",
+ "Ijk=Ii-Ihi-Ifj \n",
+ "\n",
+ "#Voltage drops across each section\n",
+ "Va= Ra*Ia \n",
+ "Vab=Iab*Rab \n",
+ "Vbc=Ibc*Rbc \n",
+ "Vi=Ii*Ri \n",
+ "Vd=Id*Rd \n",
+ "Vdh=Idh*Rdh \n",
+ "Vhe=Ihe*Rhe \n",
+ "Vef=Ief*Ref \n",
+ "Vfl=Ifl*Rfl \n",
+ "Vlg=Ilg*Rlg \n",
+ "Vij=Iij*Rij \n",
+ "Vjk=Ijk*Rjk \n",
+ "\n",
+ "#Voltage across the middle wire and the outer load points Using KVL\n",
+ "Vad=Vs-Va+Vd \n",
+ "Vbe=Vad-Vab-Vhe+Vdh \n",
+ "Vcl=Vbe-Vbc+Vfl+Vef \n",
+ "Vhi=Vs-Vd-Vdh-Vi \n",
+ "Vfj=Vhi-Vef+Vhe-Vij \n",
+ "Vgk=Vfj-Vfl-Vlg-Vjk \n",
+ "\n",
+ "print 'The Voltages between middle wire and outer wire at each load point are:'\n",
+ "print ' 1. Vad = %g V'%(Vad)\n",
+ "print ' 2. Vbe = %g V'%(Vbe)\n",
+ "print ' 3. Vcl = %g V'%(Vcl)\n",
+ "print ' 4. Vhi = %g V'%(Vhi)\n",
+ "print ' 5. Vfj = %g V'%(Vfj)\n",
+ "print ' 6. Vgk = %g V'%(Vgk)"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "The Voltages between middle wire and outer wire at each load point are:\n",
+ " 1. Vad = 217.8 V\n",
+ " 2. Vbe = 215.6 V\n",
+ " 3. Vcl = 215.9 V\n",
+ " 4. Vhi = 203.7 V\n",
+ " 5. Vfj = 196.7 V\n",
+ " 6. Vgk = 188.9 V\n"
+ ]
+ }
+ ],
+ "prompt_number": 5
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Ex6 : Page 110"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#To obtain the voltages at the far end of the positive and negative wires\n",
+ "\n",
+ "\n",
+ "Vs=220 # Supply Voltage\n",
+ "#Resistances of the given sections\n",
+ "r1=0.015 \n",
+ "r2=0.035 \n",
+ "r3=0.02 \n",
+ "r4=0.01 \n",
+ "r5=0.025 \n",
+ "r6=0.015 \n",
+ "r7=0.03 \n",
+ "r8=0.01 \n",
+ "r9=0.02 \n",
+ "r10=0.03 \n",
+ "r11=0.04 \n",
+ "\n",
+ "#Currents follwing in between the two wires\n",
+ "I1=10 \n",
+ "I2=20 \n",
+ "I3=25 \n",
+ "I4=5 \n",
+ "I5=15 \n",
+ "I6=15 \n",
+ "I7=15 \n",
+ "I8=15 \n",
+ "I9=18 \n",
+ "I10=30 \n",
+ "I11=15 \n",
+ "\n",
+ "#Effective resistances for the above currents\n",
+ "R1=r1 \n",
+ "R2=r1+r2 \n",
+ "R3=r1+r2+r3 \n",
+ "R4=r1+r2+r3+r4 \n",
+ "R5=r1+r2+r3+r4+r5 \n",
+ "R6=r1+r2+r3+r4+r5+r6 \n",
+ "R7=r7 \n",
+ "R8=r7+r8 \n",
+ "R9=r7+r8+r9 \n",
+ "R10=r7+r8+r9+r10 \n",
+ "R11=r7+r8+r9+r10+r11 \n",
+ "\n",
+ "#Voltage drop in the respective wires\n",
+ "#Outer positive wire\n",
+ "Vop=(I1*R1)+(I2*R2)+(I3*R3)+(I4*R4)+(I5*R5)+(I6*R6) \n",
+ "#Outer Negative wire\n",
+ "Vnp=(I7*R7)+(I8*R8)+(I9*R9)+(I10*R10)+(I11*R11) \n",
+ "# Net drop in neutral wire\n",
+ "Vn=Vop-Vnp \n",
+ "\n",
+ "#Effective drop in the respective wires\n",
+ "#Outer positive wire\n",
+ "Veop=Vop+Vn \n",
+ "#Outer negative wire\n",
+ "Venp=Vnp-Vn \n",
+ "\n",
+ "#Voltage at far end of the wires\n",
+ "#Positive Wire\n",
+ "Vpf=Vs-Veop \n",
+ "#Negaitve Wire\n",
+ "Vnf=Vs-Venp \n",
+ "\n",
+ "print \"The voltage drop at the far end of the wires are:\" \n",
+ "print \"Positive Wire: %g V\"%(Vpf)\n",
+ "print \"Negative Wire: %g V\"%(Vnf)"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "The voltage drop at the far end of the wires are:\n",
+ "Positive Wire: 213.43 V\n",
+ "Negative Wire: 213.115 V\n"
+ ]
+ }
+ ],
+ "prompt_number": 6
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Ex7 : Page 111"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#To determine the cross section of the conductor for a minimum consumer voltage\n",
+ "\n",
+ "from sympy import symbols, solve\n",
+ "#Unknown Variable obtained in the equation\n",
+ "Ib, r=symbols(\"Ib r\") \n",
+ "\n",
+ "\n",
+ "#Voltages at the respective ends\n",
+ "Va=230 \n",
+ "Vb=230 \n",
+ "\n",
+ "#Minimum Consumers's Voltage\n",
+ "Vc=220 \n",
+ "\n",
+ "#Lenghths of the segments\n",
+ "r1=200 \n",
+ "r2=200 \n",
+ "r3=100 \n",
+ "r4=300 \n",
+ "r5=300 \n",
+ "r6=100 \n",
+ "\n",
+ "#Effective length of segments\n",
+ "R1=r1 \n",
+ "R2=r1+r2 \n",
+ "R3=r1+r2+r3 \n",
+ "R4=r1+r2+r3+r4 \n",
+ "R5=r1+r2+r3+r4+r5 \n",
+ "R6=r1+r2+r3+r4+r5+r6 \n",
+ "\n",
+ "#Current drawn by different loads\n",
+ "I1=25 \n",
+ "I2=20 \n",
+ "I3=25 \n",
+ "I4=25 \n",
+ "I5=10 \n",
+ "\n",
+ "#By the law of momemts of currents\n",
+ "Vnet=2*((I1*R1)+(I2*R2)+(I3*R3)+(I4*R4)+(I5*R5)-(Ib*R6)) #Since the equation is equated to zero, r vanishes\n",
+ "X=Vnet-(Va-Vb) #Polynomial Equation to Find Ib\n",
+ "Ib=float(solve(X, Ib)[0]) # Numerical Value of Ib\n",
+ "\n",
+ "Ia=(I1+I2+I3+I4+I5)-Ib \n",
+ "\n",
+ "#From the given figure it is clear that point M is the point of Minimum Potential\n",
+ "Vd=Va-Vc \n",
+ "X=(2*r*((Ia*r1)+((Ia-I1)*r2)+((Ia-I1-I2)*r3)))-Vd #Polynomial Equation to Find r\n",
+ "r=float(solve(X, r)[0]) # Resistance per unit length (Numerical Value)\n",
+ "\n",
+ "Rstd=(1/58) # Resistance for 1m and 1 sq.mm\n",
+ "\n",
+ "A=Rstd/r # Cross Section of Conductor required.\n",
+ "\n",
+ "print 'The Cross Section of the Conductor to provide minimal consumer''s voltage is %0.f sq.mm '%A"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "The Cross Section of the Conductor to provide minimal consumers voltage is 67 sq.mm \n"
+ ]
+ }
+ ],
+ "prompt_number": 7
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Ex8 : Page 111"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#To determine the cross section of the conductor for a minimum consumer voltage\n",
+ "\n",
+ "from sympy import symbols, solve\n",
+ "#Unknown Variable obtained in the equation\n",
+ "x,r = symbols(\"x r\") \n",
+ "\n",
+ "#Voltages at the respective ends\n",
+ "Va=235 \n",
+ "Vb=230 \n",
+ "\n",
+ "#Minimum Consumers's Voltage\n",
+ "Vc=220 \n",
+ "\n",
+ "#Lenghths of the segments\n",
+ "r1=200 \n",
+ "r2=200 \n",
+ "r3=100 \n",
+ "r4=300 \n",
+ "r5=300 \n",
+ "r6=100 \n",
+ "\n",
+ "#Effective length of segments\n",
+ "R1=r1 \n",
+ "R2=r1+r2 \n",
+ "R3=r1+r2+r3 \n",
+ "R4=r1+r2+r3+r4 \n",
+ "R5=r1+r2+r3+r4+r5 \n",
+ "R6=r1+r2+r3+r4+r5+r6 \n",
+ "\n",
+ "#Current drawn by different loads\n",
+ "I1=25 \n",
+ "I2=20 \n",
+ "I3=25 \n",
+ "I4=25 \n",
+ "I5=10 \n",
+ "\n",
+ "#The Minimum Point assumed is N, Hence the current following to Point N is given by 'x'\n",
+ "\n",
+ "#The Effective Drops\n",
+ "Van=Va-Vc \n",
+ "Vbn=Vb-Vc \n",
+ "V=Van/Vbn \n",
+ "A=2*(((x+I1)*r1)+(r2*x)) #Wrt to Van\n",
+ "B=2*(((I2-x)*r3)+((I2+I3-x)*r4)+((I2+I3+I4-x)*r5)+((I2+I3+I4+I5-x)*r6)) #Wrt to Vbn\n",
+ "C=A/B # The 'r' term gets eliminated\n",
+ "X=C-V # Polynomial Eqaution to find x\n",
+ "x=solve(X,x)[0]\n",
+ "Ia=I1+x #Current Supplied at end A \n",
+ "#It is clear the above assumed Minimal Point is wrong and it has to Point M\n",
+ "#Therefore finding drop at Point M\n",
+ "\n",
+ "X=(2*r*(((x+I1)*r1)+(r2*x)+((x-20)*r3)))-Van #Polynomial Equation to find r\n",
+ "r=solve(X,r)[0] # Numerical Value of r\n",
+ "Rstd=(1/58) # Resistance for 1m and 1 sq.mm\n",
+ "\n",
+ "A=Rstd/r # Cross Section of Conductor required.\n",
+ "\n",
+ "print 'The Cross Section of the Conductor to provide minimal consumer''s voltage is %0.2f sq.mm'%A\n",
+ "\n",
+ "# Please note the calculation mistake in the book. The value of r found out is wrong in the text book."
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "The Cross Section of the Conductor to provide minimal consumers voltage is 51.26 sq.mm\n"
+ ]
+ }
+ ],
+ "prompt_number": 8
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Ex9 : Page 114"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#To Determine the location and magnitude of minimum voltage\n",
+ "\n",
+ "\n",
+ "Vs=220 #Supply Voltage at End A and B\n",
+ "#Different Conductor Lenghts\n",
+ "#From End A\n",
+ "L1=100 \n",
+ "L2=50 \n",
+ "L3=50 \n",
+ "L4=400 #Length of uniform loading\n",
+ "\n",
+ "A=0.5 #Uniforming loading spread over 400m\n",
+ "r=0.05 # Resistance of Conductor per Km\n",
+ "#Different Currents drawn by various loads\n",
+ "I1=50 \n",
+ "I2=75 \n",
+ "I3=A*L4 \n",
+ "\n",
+ "#Taking moments of all currents at A \n",
+ "Ib=((I1*L1)+((L1+L2)*I2)+((L1+L2+L3+(L4/2))*I3))/(L1+L2+L3+L4) \n",
+ "Ia=I1+I2+I3-Ib \n",
+ "\n",
+ "#Minimum Potential Point in this case is the point where All the current from B is drawn\n",
+ "X=Ib/A # Distance from B \n",
+ "Y=(L1+L2+L3+L4)-X #Distance from A \n",
+ "\n",
+ "#Minimum Potential Drop\n",
+ "Vmind=(2*r/1000)*((Ia*L1)+((Ia-I1)*L2)+((Ia-I1-I2)*L3)+(((Y-L1-L2-L3)*A)*((Y-L1-L2-L3)/2))) \n",
+ "\n",
+ "Vmin=Vs-Vmind #Minimum Potential\n",
+ "print 'The Location of The Minimum Voltage is %g m from side A and its magnitude is %0.1f V'%(Y,Vmin)"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "The Location of The Minimum Voltage is 279.167 m from side A and its magnitude is 217.4 V\n"
+ ]
+ }
+ ],
+ "prompt_number": 9
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Ex10 : Page 115"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "from __future__ import division\n",
+ "#To determine the currents supplied to the ring main from A and B\n",
+ "\n",
+ "from numpy import array, linalg\n",
+ "#Currents in the ring scheme going clockwise\n",
+ "I1=50 \n",
+ "I2=15 \n",
+ "I3=25 \n",
+ "I4=10 \n",
+ "It = I1+I2+I3+I4 # Total Current\n",
+ "#Resistances of the respective segments going clockwise\n",
+ "R1=0.1 \n",
+ "R2=0.12 \n",
+ "R3=0.04 \n",
+ "R4=0.08 \n",
+ "R5=0.06 \n",
+ "R6=0.02 \n",
+ "\n",
+ "Ra=0.04 #Resistance at A \n",
+ "Rb=0.06 #Resistance at B \n",
+ "\n",
+ "# Va=Vb Net Voltage is Zero\n",
+ "#Dividing the total current from A as x and y\n",
+ "#Taking voltage drops in clockwise direction and anticlockwise directions\n",
+ "# We get two simultaneous equations\n",
+ "# 3.2x + y = 120\n",
+ "# x + 3y = 114\n",
+ "R=array([[3.2,1],[1,3] ])\n",
+ "V=array([[120],[114] ])\n",
+ "I=linalg.inv(R)*V \n",
+ "\n",
+ "#To calculate and seperate the respective currents from the above matrix eqution\n",
+ "x=I[0] \n",
+ "y=I[1] \n",
+ "Ia=x+y \n",
+ "Ib=It-Ia \n",
+ "print 'a) When Va = Vb Ia = %g A and Ib =%g'%(Ia[0],Ib[0]) \n",
+ "\n",
+ "# Va+5=Vb Net Voltage is 5V\n",
+ "#Dividing the total current from A as x and y\n",
+ "#Taking voltage drops in clockwise direction and anticlockwise directions\n",
+ "# We get two simultaneous equations\n",
+ "# 3.2x + y = 120 -(5*NetVoltage) = 70\n",
+ "# x + 3y = 114 -(5*NetVoltage) = 64\n",
+ "R=array([[3.2,1],[1,3]] )\n",
+ "V=array([[70],[64] ])\n",
+ "I=linalg.inv(R)*V \n",
+ "\n",
+ "#To calculate and seperate the respective currents from the above matrix eqution\n",
+ "x=I[0]\n",
+ "y=I[1] \n",
+ "Ia=x+y \n",
+ "Ib=It-Ia \n",
+ "print 'b) When Va + 5 = Vb Ia = %g A and Ib =%g'%(Ia[0],Ib[0]) \n",
+ "\n",
+ "#Highly Accurate Answers, Text Book answers are rounded off."
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "a) When Va = Vb Ia = 28.6047 A and Ib =71.3953\n",
+ "b) When Va + 5 = Vb Ia = 16.9767 A and Ib =83.0233\n"
+ ]
+ }
+ ],
+ "prompt_number": 10
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Ex11 : Page 116"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#To Compare the volume of copper required\n",
+ "from sympy import symbols, solve\n",
+ "#Unknown Resistances\n",
+ "r, r1, x=symbols('r r1 x') \n",
+ "\n",
+ "#Lengths of the segements of the ring scheme\n",
+ "L1=100 \n",
+ "L2=200 \n",
+ "L3=200 \n",
+ "L4=150 \n",
+ "L5=150 \n",
+ "#Currents taken by respective loads\n",
+ "I1=40 \n",
+ "I2=20 \n",
+ "I3=100 \n",
+ "I4=40 \n",
+ "It=I1+I2+I3+I4 #Total Current\n",
+ "\n",
+ "#Without Interconnector\n",
+ "#Let x be the current flowing through the entire ring\n",
+ "\n",
+ "Eq=(L1*x)+(L2*(x-I1))+(L3*(x-I1-I2))+(L4*(x-I1-I2-I3))+(L4*(x-I1-I2-I3-I4)) #Polynomial Equation to find x\n",
+ "\n",
+ "x=float(solve(Eq, x)[0])\n",
+ "x1=It-x #Current flowing in the other direction\n",
+ "\n",
+ "Vac1=((x1*L5)+((x1-I4)*L4))*r # Voltage across AC without the connector\n",
+ "MVac1=((x1*L5)+((x1-I4)*L4)) # Magnitude of Vac1 \n",
+ "\n",
+ "#With Interconnector\n",
+ "#Considering x amount of current to flow clockwise through segment AE\n",
+ "#Considering y amount of current to flow anticlockwise through segment AB\n",
+ "#Considering 200-(x+y) amount if current to flow through the segment AC\n",
+ "# Mesh Analysis of ABCDE gives 5x - 3y = 140 \n",
+ "# Mesh Analysis of ABC gives 5x + 11y = 1120 \n",
+ "R=array([[5,-3],[5,11]]) \n",
+ "V=array([[140],[1120] ])\n",
+ "I=linalg.inv(R)*V \n",
+ "x=I[0] \n",
+ "y=I[1] \n",
+ "Vac2=(It-(x+y))*250*r1 # Voltage across AC with connector\n",
+ "MVac2=(It-(x+y))*250 # Magnitude of Vac2 \n",
+ "print 'The Voltage drop across AC in both case is the same.'\n",
+ "print Vac2[0],'Is Equal to',Vac1\n",
+ "\n",
+ "#To Compute the Numerical Values of the Ratio of resistances\n",
+ "RatioA = MVac1/MVac2 \n",
+ "\n",
+ "print RatioA[0],'is',r1,'divided by',r\n",
+ "\n",
+ "#Effective Length of both the cases\n",
+ "Leff=L1+L2+L3+L4+L5 \n",
+ "LeffC=Leff+250 \n",
+ "#Volume is Length * Area\n",
+ "RatioV=Leff*RatioA/LeffC \n",
+ "print 'The Volume of copper without the connector is %g times the volume required with connector'%RatioV[0] "
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "The Voltage drop across AC in both case is the same.\n",
+ "64500.0*r1 Is Equal to 26250.0*r\n",
+ "0.406976744186 is r1 divided by r\n",
+ "The Volume of copper without the connector is 0.310078 times the volume required with connector\n"
+ ]
+ }
+ ],
+ "prompt_number": 11
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Ex12 : Page 117"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#To Determine the Voltage at the far end\n",
+ "from math import sin, acos\n",
+ "r=0.3 # Loop Resistance per km\n",
+ "x=0.15 # Loop Reactance per km\n",
+ "\n",
+ "reactive = lambda y,z,v:(sin(acos(y)))*z*v*x/1000 #To find the reactive drop of the current\n",
+ "\n",
+ "active = lambda y,z,v:y*z*v*r/1000 #To find the reactive drop of the current\n",
+ "\n",
+ "#Power Factors of the loads from left to right\n",
+ "pf1=0.707 \n",
+ "pf2=1 \n",
+ "pf3=0.8 \n",
+ "#Currents delivering the respective loads from left to right\n",
+ "I1=50 \n",
+ "I2=60 \n",
+ "I3=40 \n",
+ "#Length of the conductors in metres\n",
+ "l1=200 \n",
+ "l2=300 \n",
+ "l3=300 \n",
+ "#Effective length of the conductors in metres\n",
+ "L1=l1 \n",
+ "L2=l1+l2 \n",
+ "L3=l1+l2+l3 \n",
+ "#Active component drops of the respective currents\n",
+ "Va1=active(pf1,I1,L1) \n",
+ "Va2=active(pf2,I2,L2) \n",
+ "Va3=active(pf3,I3,L3) \n",
+ "Vat=Va1+Va2+Va3 #Total Active Component Drop\n",
+ "#Reactive component drops of the respective currents\n",
+ "Vr1=reactive(pf1,I1,L1) \n",
+ "Vr2=reactive(pf2,I2,L2) \n",
+ "Vr3=reactive(pf3,I3,L3) \n",
+ "Vrt=Vr1+Vr2+Vr3 #Total Reactive Component Drop\n",
+ "\n",
+ "Vt=Vrt+Vat # Total voltage drop\n",
+ "\n",
+ "print 'The voltage drop at the far end is %g V '%(Vt)"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "The voltage drop at the far end is 22.7418 V \n"
+ ]
+ }
+ ],
+ "prompt_number": 12
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Ex13 : Page 118"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#To determine line currents and neutral currents\n",
+ "from math import sqrt, acos, exp, atan, degrees, pi\n",
+ "from cmath import exp\n",
+ "V=400 # Supply Voltage\n",
+ "Vph=400/sqrt(3) #Phase Voltage\n",
+ "L=480*(10**3) #Balanced Load\n",
+ "#Loads at unit power factor\n",
+ "Lr=50*(10**3) #Load in R phase\n",
+ "Ly=150*(10**3) #Load in Y phase\n",
+ "Lb=200*(10**3) #Load in B phase\n",
+ "pf=0.8 #Power Factor lagging\n",
+ "theta=-1 * acos(pf) #Angle in radians of the balanced LAGGING current\n",
+ "\n",
+ "I=L/(sqrt(3)*V*pf)*exp(1J*theta) #Balanced Current Magnitude\n",
+ "Ir=Lr/Vph #Magnitude of R phase voltage\n",
+ "Iy=Ly/Vph #Magnitude of Y phase voltage\n",
+ "Ib=Lb/Vph #Magnitude of B phase voltage\n",
+ "\n",
+ "#Vr is taken as reference\n",
+ "#Angles of the phase voltages wrt to the reference\n",
+ "Thetay=-120 \n",
+ "Thetab=120 \n",
+ "Thetar=0 \n",
+ "#Net Currents in the respective phases (RYB)\n",
+ "Irf=Ir+I \n",
+ "Iyf=Iy+I \n",
+ "Ibf=Ib+I \n",
+ "#Angle of the above currents in degrees\n",
+ "r=degrees(atan((Irf.imag)/(Irf.real)) )\n",
+ "y=degrees(atan((Iyf.imag)/(Iyf.real)) )\n",
+ "b=degrees(atan((Ibf.imag)/(Ibf.real)) )\n",
+ "#Angles of the above currents with respect to the reference\n",
+ "rf=Thetar+r \n",
+ "yf=Thetay+y \n",
+ "bf=Thetab+b \n",
+ "#Effective Currents wrt to the reference voltage\n",
+ "Irn=abs(Irf)*exp(1J*pi*rf/180)\n",
+ "Iyn=abs(Iyf)*exp(1J*pi*yf/180)\n",
+ "Ibn=abs(Ibf)*exp(1J*pi*bf/180)\n",
+ "In=Irn+Iyn+Ibn # Neutral Current\n",
+ "#Note Take Vr as reference\n",
+ "print 'The Net Current in phase R is %g/_%g A'%(abs(Irf),rf) \n",
+ "print 'The Net Current in phase Y is %g/_%g A'%(abs(Iyf),yf)\n",
+ "print 'The Net Current in phase B is %g/_%g A '%(abs(Ibf),bf)\n",
+ "print 'The Net Neutral Current is %g/_%g A\\n'%(abs(In),degrees(atan((In.imag)/(In.real))))"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "The Net Current in phase R is 1047.32/_-29.7449 A\n",
+ "The Net Current in phase Y is 1439.4/_-141.161 A\n",
+ "The Net Current in phase B is 1643.17/_101.565 A \n",
+ "The Net Neutral Current is 572.822/_-19.1066 A\n",
+ "\n"
+ ]
+ }
+ ],
+ "prompt_number": 13
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Ex14 : Page 123"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#To determine the best location of the substation for a given set of loads\n",
+ "\n",
+ "\n",
+ "#Various loads and how they are positioned on the corners of a square of length 25km\n",
+ "L1=5000 #(0,25)\n",
+ "L2=8000 #(25,25)\n",
+ "L3=3000 #(25,0)\n",
+ "L4=6000 #(0,0)\n",
+ "\n",
+ "L=25 #Length of the square\n",
+ "\n",
+ "TL=L1+L2+L3+L4 # Total load\n",
+ "\n",
+ "X=((L1*0)+(L2*L)+(L3*L)+(L4*0))/TL # X coordinate\n",
+ "Y=((L1*25)+(L2*L)+(L3*0)+(L4*0))/TL# Y coordinate\n",
+ "\n",
+ "print 'The Susbstation must be located at (%g km,%0.2f km) '%(X,Y)"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "The Susbstation must be located at (12.5 km,14.77 km) \n"
+ ]
+ }
+ ],
+ "prompt_number": 14
+ }
+ ],
+ "metadata": {}
+ }
+ ]
+} \ No newline at end of file
diff --git a/Generation_Distribution_and_Utilization_of_Electrical_Energy_by_C._L._Wadhwa/ch4.ipynb b/Generation_Distribution_and_Utilization_of_Electrical_Energy_by_C._L._Wadhwa/ch4.ipynb
new file mode 100644
index 00000000..c5a90fa5
--- /dev/null
+++ b/Generation_Distribution_and_Utilization_of_Electrical_Energy_by_C._L._Wadhwa/ch4.ipynb
@@ -0,0 +1,1098 @@
+{
+ "metadata": {
+ "name": "",
+ "signature": "sha256:121582880c5a7f12c6bf9cc2001dd40f139b035b14a8fcc31cbfd227f209a2bd"
+ },
+ "nbformat": 3,
+ "nbformat_minor": 0,
+ "worksheets": [
+ {
+ "cells": [
+ {
+ "cell_type": "heading",
+ "level": 1,
+ "metadata": {},
+ "source": [
+ "Chapter4, Electrical Drives and Industrial Applications"
+ ]
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Ex1 : Page 191"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "from __future__ import division\n",
+ "from sympy import symbols, solve\n",
+ "#To Determine Motor Parameters of Series Motor rated at 220V\n",
+ "\n",
+ "V=220 #Rated Voltage\n",
+ "N=1000 #Rated Speed\n",
+ "Ish=20 #Current without Armature being shunted\n",
+ "Ra=0.15 #Armature Resistance\n",
+ "Rf=0.2 #Field Resistance\n",
+ "Eb=V-(Ish*(Ra+Rf)) #Back EMF\n",
+ "K=Eb/(Ish*N) #Motor Constant\n",
+ "Rsh=20 #Shunt Resistance\n",
+ "\n",
+ "#After Armature is shunted\n",
+ "x=symbols('x') #Field Current Variable Value\n",
+ "Ia=(Ish**2)/x #Armature Current #Since Torque is assumed constant\n",
+ "I20=(V-(x*Rf))/Rsh #Current Through the Shunt resistance\n",
+ "\n",
+ "X=Ia+I20-x #Polynomial to find field Current\n",
+ "\n",
+ "x=solve(X, x) #Numerical Value of Field Current\n",
+ "\n",
+ "#Conditon to find the Positive Root\n",
+ "if abs(x[0]+x[1])==0:\n",
+ " x=x[1] \n",
+ "else:\n",
+ " x=x[0] \n",
+ "\n",
+ "\n",
+ "Ia=(Ish**2)/x #Armature when shunted\n",
+ "Ebsh=V-(Ia*Ra)-(x*Rf) #Back Emf when shunted\n",
+ "Nsh=Ebsh/(K*x) #Speed when armature is shunted\n",
+ "\n",
+ "#When Load is not there, Ia = 0\n",
+ "If=V/(Rsh+Rf) #Field Current at No Load\n",
+ "Ebnl=V-(If*Rf) #Back Emf at No Load\n",
+ "Nnl=Ebnl/(K*If) #Speed at No Load\n",
+ "\n",
+ "Rex=5 #External Resistance\n",
+ "#At Starting when Eb = 0\n",
+ "Is=V/(Rex+Rf+(Ra*Rsh/(Ra+Rsh))) #Supply Current\n",
+ "Ifs=Is #Field Current\n",
+ "Ias=Ifs*Rsh/(Rsh+Ra) #Armature Current At the Start\n",
+ "\n",
+ "#Torque is directly proportional to square of Current\n",
+ "T20 = (Ish**2) #Torque at shunted condition\n",
+ "Tas= Ias*Ifs #Torque at start\n",
+ "\n",
+ "RT=Tas/T20 #Ratio of Torques\n",
+ "\n",
+ "print 'a) The Speed of Motor if the Load Torque remains constant & magnetic circuit is assumed unsaturated is %g RPM'%abs(Nsh )\n",
+ "print 'b) The No Load Speed of the Motor is %0.f RPM'%Nnl \n",
+ "print 'c) The Starting Torque represented in terms of torque corresponding 20A (without armature shunted) is %0.1f times'%RT\n",
+ "# Answer is not accurate for part 1 in the book."
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "a) The Speed of Motor if the Load Torque remains constant & magnetic circuit is assumed unsaturated is 1403.42 RPM\n",
+ "b) The No Load Speed of the Motor is 1878 RPM\n",
+ "c) The Starting Torque represented in terms of torque corresponding 20A (without armature shunted) is 4.2 times\n"
+ ]
+ }
+ ],
+ "prompt_number": 1
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Ex2 : Page 193"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#To Determine the resistance to be inserted for various cases\n",
+ "\n",
+ "\n",
+ "N1=1500 #Rated Speed\n",
+ "N2=1200 #Reduced Speed\n",
+ "rs=N2/N1 #Ratio of final speed to original speed\n",
+ "eff=80/100 #Efficiency\n",
+ "Pr=10*(10**3) #Power Rating\n",
+ "V=250 #Voltage supply\n",
+ "Il=Pr/(V*eff) #Full Load Current\n",
+ "Rf=110 #Field Resistance\n",
+ "Ra=0.25 #Armature Resistance\n",
+ "If=V/Rf #Field Current\n",
+ "Ia1=Il-If #Load Current\n",
+ "Eb=V-(Ia1*Ra) #Back EMF\n",
+ "Eb1200=Eb*rs #Back EMF for 1200 rpm\n",
+ "\n",
+ "Res =lambda y:((V-Eb1200)/y) #Function to calculate the Resistance of various cases\n",
+ "#Torque directly proportional to current\n",
+ "Ia2=(rs)*Ia1 # Torque directly propostional to speed\n",
+ "Ia3=(rs**2)*Ia1 #Torque directly proportional to square of the speed\n",
+ "\n",
+ "#Resistances for Various Cases\n",
+ "R1=Res(Ia1)-Ra \n",
+ "R2=Res(Ia2)-Ra \n",
+ "R3=Res(Ia3)-Ra \n",
+ "\n",
+ "Pow = lambda y:((V-Eb1200)/y)*(y**2)/1000 #Function to Find Power Loss\n",
+ "#Power Lost in kW for various cases\n",
+ "P1=Pow(Ia1) \n",
+ "P2=Pow(Ia2) \n",
+ "P3=Pow(Ia3) \n",
+ "\n",
+ "print 'The External Resistances to be connected and the power loss for '\n",
+ "print 'a) The Load Torque is independent of the speed : %0.f ohm and %0.2f kW respectively '%(R1,P1)\n",
+ "print 'b) The Load Torque is directly proportional to the speed : %0.2f ohm and %0.3f kW respectively '%(R2,P2)\n",
+ "print 'c) The Load Torque is directly proportional to square of the speed : %0.2f ohm and %0.3f kW respectively '%(R3,P3)"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "The External Resistances to be connected and the power loss for \n",
+ "a) The Load Torque is independent of the speed : 1 ohm and 2.84 kW respectively \n",
+ "b) The Load Torque is directly proportional to the speed : 1.31 ohm and 2.274 kW respectively \n",
+ "c) The Load Torque is directly proportional to square of the speed : 1.70 ohm and 1.819 kW respectively \n"
+ ]
+ }
+ ],
+ "prompt_number": 2
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Ex 3 : Page 194"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "from sympy import symbols, diff, solve\n",
+ "from fractions import Fraction\n",
+ "#To determine the speed for which the torque is maximum\n",
+ "\n",
+ "\n",
+ "#In The Figure, The author has taken the resistance in series with the motor as 0.2 ohm, but in the figure it is given as 1 ohm\n",
+ "\n",
+ "#This Doesn't Affect the calculation of the speed but it does affect the Maximum Torque\n",
+ "\n",
+ "#So if we consider 1 ohm we get 0.8333 instead of 2.5\n",
+ "\n",
+ "#The Equation for the Torque is found out to be 2.5*K2*(V**2)*(1.1-K1*w)/((76.1-(50*K1*w)))\n",
+ "\n",
+ "w=symbols('w') #Variable Value of w \n",
+ "\n",
+ "#Lets assume the value of 2.5*K2*(V**2) = 1 and K1 = 1 to particularly to calculate the co-effcients\n",
+ "\n",
+ "T=2.5*(1.1-w)/((76.1-(50*w))**2) #Torque\n",
+ "\n",
+ "#Maximum Torque is derivative of the above equation\n",
+ "X=diff(T, w) #Polynomial to find the value co - effcient of w \n",
+ "w=solve(X, w) \n",
+ "w=w[0] #We Choose value less than 1 to suit the differenciation process\n",
+ "\n",
+ "Tmax=2.5*(1.1-w)/((76.1-(50*w))**2) #Maximum Torque Co-Efficient\n",
+ "\n",
+ "print 'The Speed at which the torque is Maximum is (%g/K1) rad/sec'%w \n",
+ "print 'The Maximum Torque is (K2*(V**2)*%g*10**-4) Nm '%(Tmax/(10**-4))"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "The Speed at which the torque is Maximum is (0.678/K1) rad/sec\n",
+ "The Maximum Torque is (K2*(V**2)*5.92417*10**-4) Nm \n"
+ ]
+ }
+ ],
+ "prompt_number": 3
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Ex 4 Page 195"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "from sympy import symbols, solve\n",
+ "#To Determine the slip at maximum torque and at full load\n",
+ "from math import floor\n",
+ "from __future__ import division\n",
+ "Tl=1 #Assume that the Full Load torque is unity\n",
+ "Tst=125*Tl/100 #Starting Torque\n",
+ "Tmax=275*Tl/100 #Maximum Torque\n",
+ "si=1 #At the Start\n",
+ "RT=Tst/Tmax #Ratio of Starting Torque and Maximum Torque\n",
+ "#R1 is negligible, elminating the terms with R1 and hence formulating the starting torque and Maximum Torque we get\n",
+ "\n",
+ "# Tst/Tmax = 2*sTmax*s/((sTmax**2)+(s**2))\n",
+ "#Where sTmax is the Slip at Maximum Torque and s is the slip at the start\n",
+ "\n",
+ "sTmx=symbols('sTmx') #Variable Value of slip at Maximum Torque\n",
+ "\n",
+ "X=RT-(2*sTmx*si/((sTmx**2)+(si**2))) #Polynomial to find sTmax\n",
+ "\n",
+ "sTmx = solve(X, sTmx) \n",
+ "\n",
+ "#Condition to find the value of sTmax less than 1\n",
+ "if floor(sTmx[0])==0:\n",
+ " sTmx=sTmx[0] \n",
+ "else:\n",
+ " sTmx=sTmx[1] \n",
+ "\n",
+ "s=symbols('s') #Variable value of slip for Starting torque at full load\n",
+ "\n",
+ "Y=(Tl/Tmax)-(2*sTmx*s/((sTmx**2)+(s**2))) #Polynomial to find s\n",
+ "\n",
+ "s=solve(Y, s) #Numerical Value of s\n",
+ "\n",
+ "#Condition to find the value of s less than 1\n",
+ "if floor(s[0])==0 :\n",
+ " s=s[0] \n",
+ "else:\n",
+ " s=s[1] \n",
+ "\n",
+ "\n",
+ "print 'i) The Slip at Maximum Torque is %0.2f'%(sTmx)\n",
+ "print 'ii) The Slip at Full Load is %0.3f'%(s)"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "i) The Slip at Maximum Torque is 0.24\n",
+ "ii) The Slip at Full Load is 0.045\n"
+ ]
+ }
+ ],
+ "prompt_number": 4
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Ex 5 : Page 195"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#To Determine the Maximum Torque as ratio of nominal value of voltage\n",
+ "from math import sqrt\n",
+ "\n",
+ "#Resistances and Reactance for Nomrmal Value of Volttage and Frequency\n",
+ "w=50 #Frequency of supply\n",
+ "V=1 #Assumed Voltage\n",
+ "R1=0.05 \n",
+ "R2=0.05 \n",
+ "x1=0.3 \n",
+ "x2=0.3 \n",
+ "\n",
+ "#Resistance and reactance at half voltage and half frequency\n",
+ "wh=50/2 #Frequency of supply\n",
+ "Vh=1/2 #Assumed Voltage\n",
+ "R1h=0.05 \n",
+ "R2h=0.05 \n",
+ "x1h=0.3/2 \n",
+ "x2h=0.3/2 \n",
+ "\n",
+ "#Function to Determine the Maximum Torque\n",
+ "Max = lambda a,b,c,d,e:(3*(a**2))/(2*b*(c+(sqrt((c**2)+((d+e)**2)))))\n",
+ "#Function to Determine to the Starting Torque\n",
+ "Start =lambda a,b,c,d,e,f:(3*(a**2)*f)/(b*(((c+f)**2)+((d+e)**2)))\n",
+ "#Maximum Torques and Starting Torques at\n",
+ "#Normal Voltage And Frequency\n",
+ "Tm=Max(V,w,R1,x1,x2) \n",
+ "Tst=Start(V,w,R1,x1,x2,R2) \n",
+ "#Half Voltage and Half Frequency\n",
+ "Tmh=Max(Vh,wh,R1h,x1h,x2h) \n",
+ "Tsth=Start(Vh,wh,R1h,x1h,x2h,R2h) \n",
+ "\n",
+ "#Ratio of torques as fraction of its normal value\n",
+ "R1=Tmh/Tm \n",
+ "R2=Tsth/Tst \n",
+ "\n",
+ "print 'i)The Maximum Torque at the reduced value of supply as a fraction of its normal value is %0.4f'%R1\n",
+ "print 'ii)The Starting Torque at the reduced value of supply as a fraction of its normal value is %0.2f'%R2"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "i)The Maximum Torque at the reduced value of supply as a fraction of its normal value is 0.9207\n",
+ "ii)The Starting Torque at the reduced value of supply as a fraction of its normal value is 1.85\n"
+ ]
+ }
+ ],
+ "prompt_number": 5
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Ex 6 : Page 196"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#To Determine the starting torque and starting current for various starters\n",
+ "from math import pi\n",
+ "V=400 #Rated Voltage #Phase Voltage #Delta Connected\n",
+ "Pr=50*735.5 #Rated Power\n",
+ "N=750 #Rated Speed\n",
+ "s=4.5/100 #Full load Slip\n",
+ "Il=50 #Full Load Current\n",
+ "Z=2.5 #Impedance per phase\n",
+ "w=2*pi*N/60 #Angular Frequency\n",
+ "Tl=Pr/w #Full Load Torque\n",
+ "Ist=V/Z #Starting Current\n",
+ "Isl=sqrt(3)*Ist #Line Current\n",
+ "\n",
+ "\n",
+ "#DOL Starter\n",
+ "Tstd=((Isl/Il)**2)*s*Tl #Starting Torque\n",
+ "\n",
+ "#Star - Delta Starter\n",
+ "Tsts=Tl*((1/sqrt(3))**2) #Starting Torque\n",
+ "\n",
+ "#Autotransformer\n",
+ "tap=70/100 #Tapping \n",
+ "Tsta=(tap**2)*Tl #Starting Torque\n",
+ "\n",
+ "print 'The Starting Current for all the three starter are the same that is %0.2f A'%Isl \n",
+ "print 'The Starting torque for: ' \n",
+ "print 'i) D.O.L Starter : %0.2f Nm '%(Tstd)\n",
+ "print 'ii) Star -Delta Starter : %0.2f Nm '%(Tsts)\n",
+ "print 'ii) Auto Transformer with 70 percent tapping : %0.2f Nm '%(Tsta)"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "The Starting Current for all the three starter are the same that is 277.13 A\n",
+ "The Starting torque for: \n",
+ "i) D.O.L Starter : 647.29 Nm \n",
+ "ii) Star -Delta Starter : 156.08 Nm \n",
+ "ii) Auto Transformer with 70 percent tapping : 229.43 Nm \n"
+ ]
+ }
+ ],
+ "prompt_number": 6
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Ex 7 : Page 197"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#To Detemine Minimum Starting Current drawn from the supply\n",
+ "from math import exp, pi, acos, degrees, sin\n",
+ "from sympy import symbols, solve\n",
+ "TR=0.5 #Torque Ratio, Tst:Tl\n",
+ "V=400 #Supply Voltage\n",
+ "Pr=30*735 #Power Rating \n",
+ "N=500 #Rated Speed\n",
+ "eff=0.85 #Efficieny\n",
+ "pf=0.88 #Power Factor\n",
+ "Is=150 #Short Circuit Current\n",
+ "s=5/100 #Full load Slip\n",
+ "pfs=0.25 #Power Factor of the Short Cicuit Current\n",
+ "Il=Pr/(sqrt(3)*V*eff*pf) #Full Load Current\n",
+ "#Case 1\n",
+ "x=symbols('x') #Tapping Percent\n",
+ "X=TR-(((Is/Il)**2)*(x**2)*s) #Polynomial to determine the 'x'\n",
+ "x=solve(X, x)\n",
+ "x=x[0] #Taking the Postive Root\n",
+ "Ist1=Is*x*x #Starting Current numerical Value\n",
+ "#Case 2\n",
+ "Ist2=sqrt((TR*(Il**2)/s)) #Starting Current for Full Voltage\n",
+ "Z1=V/(sqrt(3)*Ist2) #impedance for the starting current at full voltage\n",
+ "Z2=complex((V/(sqrt(3)*Is))*pfs,(V/(sqrt(3)*Is))*sin(acos(pfs))) #Phasor form of the Impedance of for the short cicuit current\n",
+ "R=sqrt((Z1**2)-(Z2.imag**2)) \n",
+ "Rs=R-Z2.real #Resistance to be connected the stator circuit\n",
+ "\n",
+ "print 'i) The Tapping of the Transformer is %0.1f percent and the starting Current is %0.2f A\\n'%(abs(x*100),Ist1)\n",
+ "print 'ii) The Starting Current is %0.2f A and the Resistance to be added to the stator circuit is %0.4f ohm\\n'%(Ist2,Rs)\n",
+ "# Answer in the textbook is not accurate."
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "i) The Tapping of the Transformer is 89.7 percent and the starting Current is 120.69 A\n",
+ "\n",
+ "ii) The Starting Current is 134.55 A and the Resistance to be added to the stator circuit is 0.4658 ohm\n",
+ "\n"
+ ]
+ }
+ ],
+ "prompt_number": 7
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Ex 8 : Page 198"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#To Determine the value of resistor connected in series to run the fan at a particular speed\n",
+ "\n",
+ "Pf=100*(10**3) #Power rating of the fan\n",
+ "f=50 #Supply Frequency\n",
+ "V=400 #Supply Line Voltage\n",
+ "V1=V/sqrt(3) #Phase Voltage\n",
+ "SR=1.4 #Ratio of stator to rotor turns\n",
+ "Rr=0.03 #Rotor Resistance per phase\n",
+ "R2=SR*SR*Rr #Rotor Resistance referred to the stator\n",
+ "N=240 #Rated Speed\n",
+ "w=2*pi*N/60 #Angular Frequency\n",
+ "P=24 #number of poles\n",
+ "Ns=120*f/P #Synchronous Speed\n",
+ "ws=2*pi*Ns/60 #Synchronous angular Frequency\n",
+ "s=(Ns-N)/Ns #Slip\n",
+ "T=Pf/w #Full Load Torque\n",
+ "X2=symbols('X2') #Reactance of Rotor referred to stator, Variable Value\n",
+ "\n",
+ "X=T-(3*(V1**2)*R2/(ws*s*(((R2/s)**2)+(X2**2)))) #Polynomial Expression to find X2\n",
+ "X2=solve(X, X2) #Numerical Value of Rotor Resistance\n",
+ "X2=X2[0] \n",
+ "N1=180 #Speed of the fan\n",
+ "s1=(Ns-N1)/Ns #Slip\n",
+ "T1=T*((N1/N)**2) #Torque\n",
+ "R21=symbols('R21') #Variable Value\n",
+ "Y=T1-(3*(V1**2)*R21/(ws*s1*(((R21/s1)**2)+(X2**2)))) #Polynomial Expression to find R21\n",
+ "R21=solve(Y, R21) #Numerical Value\n",
+ "#R21 = 0.7545054 and 0.0100813\n",
+ "#We have to choose the value of R21 such that it is greater than R2\n",
+ "\n",
+ "R21=R21[1]\n",
+ "Rex=(R21-R2)/(SR*SR) #External Resistance\n",
+ "\n",
+ "print 'The Value of Resistance to be connected in series so that teh fan runs at 180 rpm is %0.3f ohm'%Rex "
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "The Value of Resistance to be connected in series so that teh fan runs at 180 rpm is 0.355 ohm\n"
+ ]
+ }
+ ],
+ "prompt_number": 8
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Ex 9 : Page 212"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "from math import pi, sqrt\n",
+ "#To Determine the time taken to start the motor\n",
+ "from sympy.mpmath import quad\n",
+ "HP=746 #According to the TextBook\n",
+ "P=150*HP #Power Rating\n",
+ "Lim=1.5 #Limited Current Factor\n",
+ "Eshp=5000 #energy stored per hp\n",
+ "N=750 #Rated Speed\n",
+ "w=N*2*pi/60 #Angular Frequency\n",
+ "Es=Eshp*P/HP #Total Energy Stored\n",
+ "Tfl=P/w #Full Load Torque \n",
+ "Ts=Tfl*Lim #Starting Torque\n",
+ "Ta=Ts-Tfl #Torque Available for acceleration\n",
+ "I=2*Es/(w**2) #Moment of Inertia\n",
+ "a=Ta/I #Angular Accleration\n",
+ "#Intergrating wrt angular frequency\n",
+ "f = lambda x : 1/a # function for integration\n",
+ "t=quad(f,[0,w]) #Time Taken to start #Angular Acceleration is constant\n",
+ "\n",
+ "print '''The time taken to start the motor if the load torque is equal to full load torque,\n",
+ "during the starting period, \n",
+ "& the current is limited to 1.5 times the full load current is %0.2f seconds '''%(t)"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "The time taken to start the motor if the load torque is equal to full load torque,\n",
+ "during the starting period, \n",
+ "& the current is limited to 1.5 times the full load current is 26.81 seconds \n"
+ ]
+ }
+ ],
+ "prompt_number": 9
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Ex 10 : Page 213"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "from __future__ import division\n",
+ "#To time taken and the number of revolutions made before the motor is stopped\n",
+ "\n",
+ "\n",
+ "from sympy.mpmath import quad\n",
+ "\n",
+ "P=50*735.5 #Power Rating\n",
+ "V=400 #Rated Voltage\n",
+ "N=750 #Rated Speed\n",
+ "w=N*pi*2/60 #Angular Frequency\n",
+ "I=20 #Moment Inertia\n",
+ "pf=0.95 #Full Load power factor\n",
+ "eff=90/100 #Overall Efficiency\n",
+ "Rb=2 #Braking Resistor\n",
+ "\n",
+ "Tm=P/w #Full Load Torque\n",
+ "Ifl=P/(sqrt(3)*V*eff*pf) #Full Load Current\n",
+ "Ilb=V/(sqrt(3)*Rb) #The Line Current at the start of braking\n",
+ "Te=Tm*Ilb/Ifl #Torque for electric braking\n",
+ "\n",
+ "Tb=Te+Tm #Total Braking torque\n",
+ "\n",
+ "K=Te/w #Motor constant\n",
+ "B=Tb/I #Retardation\n",
+ "\n",
+ "f1 = lambda x:(I/(Tm+(K*x))) # function for integration\n",
+ "ts=quad(f1,[0,w]) #Time Taken for the motor to stop\n",
+ "\n",
+ "f2 = lambda t:(((Tm+(K*w))*exp(-1*K*t/I))-Tm) # function for integration\n",
+ "NoR=(1/(2*pi*K))*quad(f2,[0,ts]) #Number of Revolutions\n",
+ "\n",
+ "#Note The answer in the textbook is wrong, Calculation error\n",
+ "\n",
+ "print 'The Time Taken for the Motor to stop is %0.2f seconds\\n'%ts\n",
+ "print 'The Number of revolutions undergone before it stops is %0.2f revolutions which is approx %g revolutions\\n'%(NoR,round(NoR))"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "The Time Taken for the Motor to stop is 1.90 seconds\n",
+ "\n",
+ "The Number of revolutions undergone before it stops is 9.81 revolutions which is approx 10 revolutions\n",
+ "\n"
+ ]
+ }
+ ],
+ "prompt_number": 10
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Ex 11 : Page 219"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#To Determine the 30 mins rating of motor\n",
+ "from math import exp\n",
+ "\n",
+ "Pr=100 #Power Rating in horse power\n",
+ "Tc=90*3600 #Time Constant\n",
+ "Tr=30*3600 #Time to determine the rating\n",
+ "theta=50 #Temperature Rise\n",
+ "theta1=50 #Temperature rise for the new case\n",
+ "\n",
+ "P=symbols('P') #Power rating for 30min variable value\n",
+ "\n",
+ "#Loss Corresponding to 30 mins\n",
+ "\n",
+ "P30=(P/Pr)**2 # Times the Power loss corresponding to the 100 hp motor\n",
+ "\n",
+ "theta2=theta*P30 #Final Temperature rise if run continuously\n",
+ "\n",
+ "X=theta1-(theta2*(1-exp(-1*Tr/Tc))) #Polynominal to find the 30min rating\n",
+ "\n",
+ "P=solve(X, P) #Numerical Value\n",
+ "#We Consider the Positive Real Value of the root\n",
+ "\n",
+ "P=P[0] #Power Rating of the 1/2 Hr\n",
+ "\n",
+ "print 'The 1/2 Hr Power Rating is %0.1f hp'%abs(P )"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "The 1/2 Hr Power Rating is 187.8 hp\n"
+ ]
+ }
+ ],
+ "prompt_number": 11
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Ex12 : Page 219"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#To Determine the Continous Rating of the Motor for Suitable Conditions\n",
+ "\n",
+ "\n",
+ "from sympy.mpmath import quad\n",
+ "\n",
+ "T=120 #Total Time\n",
+ "t1=0 #Power Rise to 1050\n",
+ "t2=15 #Constant Power of 600\n",
+ "t3=85 #Regenerative Breaking at 200\n",
+ "t4=95 #Motor At Rest\n",
+ "t5=120 #End\n",
+ "#Note Power Rating are in Horse Power\n",
+ "HP1=1050 #First Rise\n",
+ "T1=(t2-t1) #Time for Rise of the Horse Power\n",
+ "HP2=600 #Constant Power\n",
+ "T2=(t3-t2) #Time For which the power is constant\n",
+ "HP3=200 #Braking Initial Point\n",
+ "T3=(t4-t3) #Time Period of Breaking\n",
+ "\n",
+ "#Different Intergration\n",
+ "\n",
+ "f1 = lambda t:((HP1/T1)*t)**2 # function for integration\n",
+ "I1=quad(f1,[t1,t2]) \n",
+ "f2 = lambda t:(HP2**2) # function for integration\n",
+ "I2=quad(f2,[t2,t3]) \n",
+ "f3 = lambda t:((HP3/T3)*t)**2 # function for integration\n",
+ "I3=quad(f3,[0,T3]) \n",
+ "\n",
+ "HPrms=sqrt((I1+I2+I3)/120) \n",
+ "\n",
+ "HPav=(((HP1*T1/2)+(HP2*T2)+(HP3*T3/2))/T) \n",
+ "\n",
+ "print 'i) The H.P Rating according to the RMS Value of loading is %g hp\\n'%HPrms\n",
+ "print 'ii) The H.P Rating according to the Average Value of Loading is %0.f hp\\n'%HPav"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "i) The H.P Rating according to the RMS Value of loading is 507 hp\n",
+ "\n",
+ "ii) The H.P Rating according to the Average Value of Loading is 424 hp\n",
+ "\n"
+ ]
+ }
+ ],
+ "prompt_number": 12
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Ex 13 : Page 220"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#To estimate the final temperature of the machine and its time constant\n",
+ "\n",
+ "\n",
+ "Eff=90/100 #Efficiency\n",
+ "P=15*735.5 #Power Rating in W\n",
+ "D=75*(10**-2) #Cylinder Diameter\n",
+ "L=120*(10**-2) #Length of the Cylinder\n",
+ "OSHD=12 #Outer Surface Heat Dissipation\n",
+ "A=pi*L*D #Curved Surface Area\n",
+ "M=450 #Motor Weight\n",
+ "SH=700 #Specific Heat\n",
+ "\n",
+ "HTC=M*SH/(A*OSHD*3600) #The Heating Time Constant\n",
+ "Loss=(P/Eff)-P #Loss in Motor\n",
+ "print 'Loss in Motor = %0.1f W'%Loss\n",
+ "FT=Loss/(A*OSHD) #Final Temperature\n",
+ "OSHD2=20 #Semi Closed Cooling Capacity\n",
+ "LossSC=FT*A*OSHD2 #Loss in Semi Closed System\n",
+ "print 'Final Temperature = %0.2f degree C'%FT\n",
+ "L2=symbols('L2') #Variable Load Value\n",
+ "X=(L2/(L2+LossSC)-Eff) #Polynomial to Calculate L2\n",
+ "L2=solve(X, L2) #Numerical Value of The Load\n",
+ "\n",
+ "print 'The Final Temperature of the Machine & its Heating Time Constant is %0.2f degree Celsius and %0.2f Hrs respectively'%(FT,HTC)\n",
+ "print 'The Load which could be delivered is %0.f W '%(L2[0])\n",
+ "Rating = L2[0]/736 # hp\n",
+ "print 'Rating = %0.f h.p.'%Rating"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Loss in Motor = 1225.8 W\n",
+ "Final Temperature = 36.13 degree C\n",
+ "The Final Temperature of the Machine & its Heating Time Constant is 36.13 degree Celsius and 2.58 Hrs respectively"
+ ]
+ },
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "\n",
+ "The Load which could be delivered is 18388 W \n",
+ "Rating = 25 h.p.\n"
+ ]
+ }
+ ],
+ "prompt_number": 13
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Ex 14 : Page 223"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#To Determine the Moment of intertia for a slip of 8 percent\n",
+ "from math import log\n",
+ "Tl=900 #load Torque\n",
+ "To=0 \n",
+ "s=8/100 #Slip\n",
+ "t=15 #time period for which the load torque was applied\n",
+ "Tm=675 # Limited motor Torque\n",
+ "N=600 #No Load Speed\n",
+ "Wo=2*pi*N/60 #Angular Frequency\n",
+ "K=s/Tm #Motor Constant\n",
+ "I=(t/(Wo*K*log((Tl-To)/(Tl-Tm)))) #Moment of Inertia\n",
+ "\n",
+ "print 'The Moment of inertia of the flywheel is %g Kg m**2'%I \n",
+ "#Please Note the Calculation Mistake in the book. (Power of e)"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "The Moment of inertia of the flywheel is 1453.01 Kg m**2\n"
+ ]
+ }
+ ],
+ "prompt_number": 14
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Ex15 : Page 224"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#To determine the Moment of intertia of the flywheel\n",
+ "\n",
+ "Pi=100*(10**3) #Power Rating\n",
+ "P=6 #Poles of the Machine\n",
+ "N=950 #Rated Speed\n",
+ "Wo=2*pi*N/60 #Angular Frequency\n",
+ "Ta=3000 #Additional Torque\n",
+ "Tmin=600 #Constant Load Torque\n",
+ "Tm=Pi*60/(2*pi*N) #Rated Torque\n",
+ "Tmax=2*Tm #Maximum Torque\n",
+ "Tl=Tmin+Ta #Total Torque\n",
+ "tp=15 #Time for which the additional torque is applied\n",
+ "#Assuming Slip Characteristic to Be a Straight line\n",
+ "s=0.05 \n",
+ "K=s/Tm #Motor Load Constant\n",
+ "\n",
+ "I=tp/(Wo*K*log((Tl-Tmin)/(Tl-Tmax))) #Moment Of intertia\n",
+ "\n",
+ "Tm1=1500 #Trasistion Torque\n",
+ "\n",
+ "t=I*Wo*K*log((Tmax-Tmin)/(Tm1-Tmin)) #Time Taken to become 1500 Nm\n",
+ "\n",
+ "print 'a) The Moment of intertia of the flywheel for Maximum Torque to be twice the rated torque is %0.1f Nm'%I \n",
+ "print 'b) The Time Taken after the removal of additional load before the motor torque becomes 1500 Nm is %0.2f seconds '%t"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "a) The Moment of intertia of the flywheel for Maximum Torque to be twice the rated torque is 4772.7 Nm\n",
+ "b) The Time Taken after the removal of additional load before the motor torque becomes 1500 Nm is 10.61 seconds \n"
+ ]
+ }
+ ],
+ "prompt_number": 15
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Ex16 : Page 231"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#To determine the speed and torque of a single phase full converter\n",
+ "from math import cos\n",
+ "P=5*735.5 #Power Rating\n",
+ "Vr=220 #Rated Voltage\n",
+ "N=1500 #Rated Speed\n",
+ "\n",
+ "Ra=0.25 #Armature Resistance\n",
+ "Ia=20 #Rated Armature Current\n",
+ "Vs=250 #Supply Voltage\n",
+ "Kaphi=0.0278 #Motor Voltage Constant\n",
+ "a=30 #Firing Angle\n",
+ "\n",
+ "Va=2*sqrt(2)*Vs*cos(a*pi/180)/pi #Armature Voltage\n",
+ "Eb=Va-(Ia*Ra) #Back EMF\n",
+ "w=Eb/(Kaphi*60) #Angular Frequency in Radians per second\n",
+ "Ta=Kaphi*Ia*60 #Torque\n",
+ "\n",
+ "print 'The Speed and Torque of the Single Phase Full Converter are %0.1f rad/s and %g Nm respectively '%(w,Ta)"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "The Speed and Torque of the Single Phase Full Converter are 113.9 rad/s and 33.36 Nm respectively \n"
+ ]
+ }
+ ],
+ "prompt_number": 16
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Ex17 : Page 232"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#To Determine the motor current and torque for a particular firing angle\n",
+ "\n",
+ "P=15*735.5 #Power Rating of the Motor\n",
+ "Raw=0.2 #Combined Armature and Field winding resistance\n",
+ "N=1000 #Speed\n",
+ "K=0.03 #Motor Constant\n",
+ "a=30 #Firing Angle\n",
+ "E=250 #Supply Voltage\n",
+ "\n",
+ "#Semi Converter\n",
+ "w=2*pi*N/60 #Angular Frequency\n",
+ "Vas=sqrt(2)*E*(1+cos(a*pi/180))/pi \n",
+ "Ias=Vas/(Raw+(K*w)) #Armature Current\n",
+ "Tas=K*(Ias**2) #Motor Torque\n",
+ "\n",
+ "#FullConverter\n",
+ "Vaf=2*sqrt(2)*E*cos(a*pi/180)/pi \n",
+ "Iaf=Vaf/(Raw+(K*w)) #Armature Current\n",
+ "Taf=K*(Iaf**2) #Motor Torque\n",
+ "\n",
+ "#Accurate Caclculation, Rounding Off not done.\n",
+ "print 'The Motor Current And Motor Torque for:' \n",
+ "print 'i) Semi Converter : %0.2f A and %0.2f Nm'%(Ias,Tas)\n",
+ "print 'ii) Full Converter : %0.2f A and %0.2f Nm'%(Iaf,Taf)"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "The Motor Current And Motor Torque for:\n",
+ "i) Semi Converter : 62.84 A and 118.48 Nm\n",
+ "ii) Full Converter : 58.33 A and 102.08 Nm\n"
+ ]
+ }
+ ],
+ "prompt_number": 17
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Ex18 : Page 234"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#To determine the pulse width for a particular average value of back EMF\n",
+ "\n",
+ "E=220 #DC Supply\n",
+ "Raw=0.2 #Combined Armature and Field Winding Resistance\n",
+ "Ia=25 #Average Current\n",
+ "f=200 #Chopper Frequency\n",
+ "Eb=100 #Average Value of Back EMF\n",
+ "\n",
+ "Eav=(Ia*Raw)+Eb #Average Load Voltage\n",
+ "Ton=Eav*1000/(E*f) # Pulse Width in m sec\n",
+ "\n",
+ "print 'The Pulse Width for the 100V back EMF is %0.2f m seconds'%Ton "
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "The Pulse Width for the 100V back EMF is 2.39 m seconds\n"
+ ]
+ }
+ ],
+ "prompt_number": 18
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Ex 19 : Page 235"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#To determine the range of speed control and duty cycle\n",
+ "E=220 #DC supply voltage\n",
+ "Ra=0.2 \n",
+ "Kaphi=0.08 # Motor Constant\n",
+ "Ia=25 #Average Current\n",
+ "Eav=Ia*Ra #Voltage Drop\n",
+ "\n",
+ "#Eav = lamda * E \n",
+ "#For Maximum Speed, lamba =1\n",
+ "\n",
+ "lamda=Eav/E \n",
+ "\n",
+ "lamda1=1 #Maximum Speed \n",
+ "Eb= (E*lamda1)-(Ia*Ra) #Back EMF\n",
+ "\n",
+ "Speed = Eb/Kaphi # Maximum Speed\n",
+ "\n",
+ "print 'i) The Range of speed control is 0<N<%0.f '%(Speed)\n",
+ "print 'ii) The Range of duty cycle is %g<lamda<%g'%(lamda,lamda1)"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "i) The Range of speed control is 0<N<2688 \n",
+ "ii) The Range of duty cycle is 0.0227273<lamda<1\n"
+ ]
+ }
+ ],
+ "prompt_number": 19
+ }
+ ],
+ "metadata": {}
+ }
+ ]
+} \ No newline at end of file
diff --git a/Generation_Distribution_and_Utilization_of_Electrical_Energy_by_C._L._Wadhwa/ch5.ipynb b/Generation_Distribution_and_Utilization_of_Electrical_Energy_by_C._L._Wadhwa/ch5.ipynb
new file mode 100644
index 00000000..715bf105
--- /dev/null
+++ b/Generation_Distribution_and_Utilization_of_Electrical_Energy_by_C._L._Wadhwa/ch5.ipynb
@@ -0,0 +1,507 @@
+{
+ "metadata": {
+ "name": "",
+ "signature": "sha256:767774e63692d32c6e5c82e709d1a501f8224db32f9d1d9637be95db8cc5b8af"
+ },
+ "nbformat": 3,
+ "nbformat_minor": 0,
+ "worksheets": [
+ {
+ "cells": [
+ {
+ "cell_type": "heading",
+ "level": 1,
+ "metadata": {},
+ "source": [
+ "Chapter5, Electric heating and welding"
+ ]
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Ex1 : Page 272"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "from sympy import symbols, solve\n",
+ "from math import sqrt, pi\n",
+ "#To determine the size and length of the wire\n",
+ "\n",
+ "r=symbols('r') #Variable Value of radius\n",
+ "A=pi*(r**2) #Area of cross section of the wire\n",
+ "V=220 #Supply Voltage\n",
+ "P=20*(10**3) #Power input\n",
+ "#Temperatures\n",
+ "T1=1127 #Wire\n",
+ "T2=427 #Charge\n",
+ "\n",
+ "R=(V**2)/P #Resistance of the wire\n",
+ "e=0.9 #emissivity constant\n",
+ "K=0.6 #Radiation Effciency\n",
+ "\n",
+ "p=1.09*(10**-6) #Resistivity\n",
+ "\n",
+ "l=R*A/p #Length in term of 'r'\n",
+ "\n",
+ "H=5.72*e*K*((((T1+273)/100)**4)-(((T2+273)/100)**4)) #Heat dissipated per sq.m of the surface\n",
+ "\n",
+ "\n",
+ "\n",
+ "CSA=pi*2*r*l #Curved surface area\n",
+ "\n",
+ "CSAn=P/H #Numerical Value of Curved suraface area\n",
+ "\n",
+ "X=CSA-CSAn #Polynomial to find 'r'\n",
+ "r=solve(X, r)#Numerical Value of radius\n",
+ "r=r[0] # taking real root only\n",
+ "print 'The radius of wire = %0.3f mm'%(r*1000)\n",
+ "l=CSAn/(2*pi*r) #Numerical Value of length\n",
+ "print '& length = %0.2f m\\n'%(l)\n",
+ "#For charge temperature to be cold\n",
+ "Ti=25 #Cold Temperature\n",
+ "T=symbols('T') # value in degree C # Variable value of the element temperature\n",
+ "Hi=5.72*e*K*((((T+273)/100)**4)-(((Ti+273)/100)**4)) #Heat dissipated per sq.m of the surface\n",
+ "CSA=pi*2*r*l #Curved surface area\n",
+ "Y=Hi-H #polynomial to find the temperature of the element\n",
+ "#Roots of T must be real\n",
+ "T=solve(Y, T) #Numerical Value\n",
+ "T=T[1] \n",
+ "print 'The Temperature of the element when the charge is cold is %0.f degree celsius'%(T)\n",
+ "# Answer in the textbook is not accurate."
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "The radius of wire = 1.706 mm\n",
+ "& length = 16.77 m\n",
+ "\n",
+ "The Temperature of the element when the charge is cold is 1105 degree celsius"
+ ]
+ },
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "\n"
+ ]
+ }
+ ],
+ "prompt_number": 1
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Ex2 : Page 274"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "from __future__ import division\n",
+ "from math import sqrt\n",
+ "#To determine the various temperature by changing the connection of the resistance elements\n",
+ "\n",
+ "#Note that the value in kelvin of the first case in the textbook is wrong\n",
+ "\n",
+ "#P is directly proportion to V**2 and H is directly propostional to KT**4\n",
+ "#Different Temperatures for different configurations\n",
+ "T1=1125 #Temperature in First Case\n",
+ "\n",
+ "from sympy import symbols, solve\n",
+ "T2,T3,T4=symbols('T2 T3 T4') \n",
+ "\n",
+ "#Multiplying Factors to the square of voltages\n",
+ "V1=1 #Line to Line Voltage \n",
+ "V2=V1/2 #when connected in series first and then delta\n",
+ "V3=V1/(2*sqrt(3)) #when connected in series and then in star \n",
+ "V4=V1/(sqrt(3)) #When connected in parallel and in star\n",
+ "\n",
+ "#To find the power loss in each case\n",
+ "Pow = lambda y:(y**2)\n",
+ "P1=Pow(V1) \n",
+ "P2=Pow(V2) \n",
+ "P3=Pow(V3) \n",
+ "P4=Pow(V4) \n",
+ "\n",
+ "#To find the heat dissipated from each case\n",
+ "heatdiss = lambda y:(y**4)\n",
+ "H1=heatdiss(T1+273) \n",
+ "H2=heatdiss(T2+273) \n",
+ "H3=heatdiss(T3+273) \n",
+ "H4=heatdiss(T4+273) \n",
+ "\n",
+ "#Polynomials to find the temperature in degree celsius\n",
+ "temp = lambda y,z:(P1/y)-(H1/z)\n",
+ "X2=temp(P2,H2) \n",
+ "X3=temp(P3,H3) \n",
+ "X4=temp(P4,H4) \n",
+ "\n",
+ "#Temperature Numerical Value\n",
+ "T2=solve(X2, T2) \n",
+ "T3=solve(X3, T3) \n",
+ "T4=solve(X4, T4) \n",
+ "\n",
+ "#Only to consider Real Roots\n",
+ "T2=T2[1] \n",
+ "T3=T3[1] \n",
+ "T4=T4[1] \n",
+ "\n",
+ "print 'The Temperature for the following configurations are:' \n",
+ "print 'Two Groups connected in series first and then in delta : %0.1f degree Celsius'%T2 \n",
+ "\n",
+ "print 'Two Groups connected in series first and then in star : %0.1f degree Celsius'%(T3)\n",
+ "\n",
+ "print 'Two Groups connected in parallel first and then in star : %0.1f degree Celsius'%(T4)\n",
+ "\n",
+ "# Answer in the textbook are not accurate."
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "The Temperature for the following configurations are:\n",
+ "Two Groups connected in series first and then in delta : 715.5 degree Celsius\n",
+ "Two Groups connected in series first and then in star : 478.1 degree Celsius\n",
+ "Two Groups connected in parallel first and then in star : 789.3 degree Celsius\n"
+ ]
+ }
+ ],
+ "prompt_number": 2
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Ex3 : Page 278"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "from __future__ import division\n",
+ "#To Determine the average KW input to the furnace\n",
+ "M=10*(10**3) #Mass of Steel Melted\n",
+ "t=2*3600 #Time Taken to Melt the steel\n",
+ "eff=50/100 #Overall Efficiency\n",
+ "I=9000 #Current Input\n",
+ "R=0.003 #Resistance\n",
+ "X=0.005 #Reactance\n",
+ "SH=0.12 #Specific Heat\n",
+ "LHF=8.89*(10**3) #Latent Heat of Fusion\n",
+ "Tm=1371 #Melting Point\n",
+ "Ti=20 #Room Temperature\n",
+ "\n",
+ "Hm=M*LHF #Heat Required for melting\n",
+ "Hr=M*SH*(Tm-Ti)*1000 #Heat Required to raise the temperature\n",
+ "Ht=Hm+Hr #Total Amount of heat required\n",
+ "\n",
+ "E=Ht*4.2/(3600) #Energy in Whr\n",
+ "P=E*3600/t #Power\n",
+ "\n",
+ "Pa=P/eff #Actual Power Input to the Furnace\n",
+ "\n",
+ "Vt=Pa/(3*I) #V Cos theta\n",
+ "#The Above voltage is the sum of arc drop and drop in resistance load\n",
+ "\n",
+ "Va=Vt-(I*R) #Arc Drop\n",
+ "Vx=I*X #Reactance Drop\n",
+ "Vs=sqrt((Vt**2)+(Vx**2)) #Supply Voltage\n",
+ "S=3*Vs*I/1000 #KVA input\n",
+ "\n",
+ "print 'The Average kW input to the furnance is %0.2f kW'%(Pa/1000)\n",
+ "print 'The Arc Voltage is %0.2f V'%(Va)\n",
+ "print 'The kVA input is %0.2f kVA'%(S)\n",
+ "\n",
+ "#Answer in the textbook are not accurate."
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "The Average kW input to the furnance is 1995.12 kW\n",
+ "The Arc Voltage is 46.89 V\n",
+ "The kVA input is 2335.96 kVA\n"
+ ]
+ }
+ ],
+ "prompt_number": 3
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Ex4 : Page 284"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#To determine the effciency of a high frequency induction furnance\n",
+ "t=10*60 #Time Taken to rise temperature in seconds\n",
+ "M=1.815 #Mass of aluminium melted\n",
+ "Pi=5*(10**3) #Power Input\n",
+ "Ti=15 #Initial Temperature\n",
+ "Tm=660 #Melting Point of Al\n",
+ "SHAl=0.212 #Specific heat of Al\n",
+ "LHFAl=76.8*(10**3) #Laten Heat of fusin in Cal/Kg\n",
+ "\n",
+ "Hm=M*LHFAl #Heat required to melt Al\n",
+ "Htr=SHAl*M*1000*(Tm-Ti) #Heat required to raise the temperature\n",
+ "HTot=Hm+Htr #Total Heat Required\n",
+ "\n",
+ "HToth=HTot*3600/t #Heat required per hour\n",
+ "\n",
+ "Po=HToth*4.2/3600 #Power Output\n",
+ "\n",
+ "eff=Po*100/Pi #Efficiency\n",
+ "\n",
+ "print 'The Effciency of the High Frequency Induction Furnace is %0.f percent '%(eff)"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "The Effciency of the High Frequency Induction Furnace is 54 percent \n"
+ ]
+ }
+ ],
+ "prompt_number": 4
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Ex5 : Page 284"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "from math import pi\n",
+ "#To Determine the equivalent resistance of the charge and current\n",
+ "\n",
+ "f=960 #Frequency\n",
+ "N1=20 #Primary Turns\n",
+ "N2=1 #Secondary is Single Turn\n",
+ "Pi=325*(10**3) #Power Input\n",
+ "Di=45 #Internal Diameter\n",
+ "l=50 #Depth of the charge\n",
+ "\n",
+ "#Assumptions\n",
+ "p=200*(10**-6) #Resistivity\n",
+ "M=1 #For Molten Steel\n",
+ "\n",
+ "t=(1/(2*pi))*sqrt(p*(10**9)/(M*f)) #Depth of penentration of the current\n",
+ "A=t*l #Effective Area\n",
+ "Dm=Di+t #Mean Diameter\n",
+ "Dmcf=pi*Dm #Mean Length of current flow\n",
+ "Rc=p*Dmcf/A #Resistance of the Cylinder\n",
+ "\n",
+ "Is=sqrt(Pi/Rc) #Current flowing through secondary\n",
+ "Ip=Is*N2/N1 #Primary Current\n",
+ "\n",
+ "print 'The Equivalent Resistance of the cylinder is %0.f * 10**-6 ohm '%(Rc/(10**-6))\n",
+ "print 'The Required Current in the primary is %g A'%(Ip)"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "The Equivalent Resistance of the cylinder is 259 * 10**-6 ohm \n",
+ "The Required Current in the primary is 1772.1 A\n"
+ ]
+ }
+ ],
+ "prompt_number": 5
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Ex6 : Page 285"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "from math import exp, degrees, cos, atan, acos, sin\n",
+ "#To Detemine power absorbed and the power factor\n",
+ "Vs=15 #Secondary Voltage\n",
+ "P=500*(10**3) # Power Taken\n",
+ "pfs=0.6 #Power Factor\n",
+ "\n",
+ "Is=P/(Vs*pfs) #Secondary Current\n",
+ "\n",
+ "#Taking Current as Reference voltage will be\n",
+ "t=degrees(acos(pfs)) #Power Factor Angle\n",
+ "Vsp=Vs*(complex(cos(t*pi/180),sin(t*pi/180))) #Phasor Secondary Voltage\n",
+ "R=Vsp/Is #Impedance\n",
+ "\n",
+ "#if the resistance is doubled, The Total impedance doubles, Considering Vs as reference\n",
+ "R2=R.real+R \n",
+ "I2=Vs/R2 #New Current\n",
+ "pfn=cos(atan((I2.imag)/(I2.real))) #power factor of new current\n",
+ "Pab=Vs*abs(I2)*pfn/1000 #Power Absorbed\n",
+ "\n",
+ "print 'The Power Factor and The Absorbed power are %0.3f lagging and %0.f kW respectively.'%(pfn,Pab)\n",
+ "#Answer in the textbook are not accurate."
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "The Power Factor and The Absorbed power are 0.832 lagging and 481 kW respectively.\n"
+ ]
+ }
+ ],
+ "prompt_number": 6
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Ex7 : Page 289"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "from math import tan\n",
+ "#To determine the Voltage Required and Current Drawn\n",
+ "t=2*(10**-2) #Thickness\n",
+ "A=150*(10**-4) #Area of the slab\n",
+ "Er=4 #Relative Permittivity\n",
+ "pf=0.04 #Power Factor\n",
+ "f=30*(10**6) #Frequency of supply\n",
+ "w=2*pi*f #Angular Frequency\n",
+ "P=200 #Power Required\n",
+ "Eo=8.854*(10**-12) #Permittivity of free space\n",
+ "\n",
+ "C=Er*Eo*A/t #Capacitance\n",
+ "Xc=1/(C*w) #Capacitative Reactance\n",
+ "phi=degrees(acos(pf)) #power factor angle\n",
+ "R=tan(phi*pi/180)*Xc #Resistance\n",
+ "V=sqrt(P*R) #Voltage\n",
+ "I1=V/R #Current\n",
+ "Ic=V/Xc #Curent through the Capacitor\n",
+ "It=sqrt((I1**2)+(Ic**2)) #Total Current\n",
+ "\n",
+ "Vn=600 #Limited Voltage\n",
+ "Rn=(Vn**2)/P #New Resistance\n",
+ "wn=tan(phi*pi/180)/(C*Rn) #New Angular Frequency\n",
+ "fn=wn/(2*pi) #New Frequnency\n",
+ "\n",
+ "print 'The Current And Voltage are %0.f A and %0.fV respectively'%(It,V)\n",
+ "print 'For the New Voltage the frequency is %0.2f MHz'%((fn/(10**6)))\n",
+ "#No rounding off. Accurate Answers here."
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "The Current And Voltage are 5 A and 999V respectively\n",
+ "For the New Voltage the frequency is 83.15 MHz\n"
+ ]
+ }
+ ],
+ "prompt_number": 7
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Ex8 : Page 290"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#To estimate the voltage and Current during heating\n",
+ "l=30 #Length\n",
+ "b=15 #Breadth\n",
+ "t=2 #Thickness\n",
+ "t1=20 #Initial Temperature\n",
+ "t2=180 #Final Temperature\n",
+ "T=10*60 #Time Period in Seconds\n",
+ "f=40*(10**6) #Frequency of supply\n",
+ "w=2*pi*f #Angular Frequency\n",
+ "SH=0.35 #Specific Heat Of Wood\n",
+ "Er=5 #Relative Permitivity\n",
+ "Eo=8.854*(10**-12) # Permitivity of free space\n",
+ "pf=0.05 #Power Factor\n",
+ "Eff=90/100 #Efficiency\n",
+ "p=0.55 #Density\n",
+ "A=l*b #Area of the wooden board\n",
+ "W=(A*t)*p/1000 #Weight of wood in kilograms\n",
+ "H=W*SH*(t2-t1) #Heat required to raise temperature\n",
+ "E=H*4.2/3600 #Energy in kWhr\n",
+ "P=E*3600/T #In kilowatts\n",
+ "AP=P*1000/Eff #Actual Power\n",
+ "C=Eo*Er*A*(10**-2)/t #Capacitance\n",
+ "phi=degrees(acos(pf)) #Power Factor Angle\n",
+ "Del=(90-phi)*pi/180 #In Radian\n",
+ "V=sqrt(AP/(w*C*Del)) #Voltage\n",
+ "I=V*w*C #Current\n",
+ "print 'The Voltage and Current are %0.f V and %0.2f A respectively'%(V,I)\n",
+ "#Answer in the textbook are not accurate."
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "The Voltage and Current are 415 V and 10.39 A respectively\n"
+ ]
+ }
+ ],
+ "prompt_number": 8
+ }
+ ],
+ "metadata": {}
+ }
+ ]
+} \ No newline at end of file
diff --git a/Generation_Distribution_and_Utilization_of_Electrical_Energy_by_C._L._Wadhwa/ch6.ipynb b/Generation_Distribution_and_Utilization_of_Electrical_Energy_by_C._L._Wadhwa/ch6.ipynb
new file mode 100644
index 00000000..99ae437d
--- /dev/null
+++ b/Generation_Distribution_and_Utilization_of_Electrical_Energy_by_C._L._Wadhwa/ch6.ipynb
@@ -0,0 +1,561 @@
+{
+ "metadata": {
+ "name": "",
+ "signature": "sha256:634e35844aff19b3a5e665d4dafd1fcfdbf5fda4e13cbe3257c0fb7eec30dade"
+ },
+ "nbformat": 3,
+ "nbformat_minor": 0,
+ "worksheets": [
+ {
+ "cells": [
+ {
+ "cell_type": "heading",
+ "level": 1,
+ "metadata": {},
+ "source": [
+ "Chapter6, Illumination Engineering"
+ ]
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Ex1 : Page 317"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "from __future__ import division\n",
+ "from math import sqrt\n",
+ "# To determine the distance of a 25 cp lamp for various illumination\n",
+ "\n",
+ "#Candle power of the lamp\n",
+ "I=25 \n",
+ "\n",
+ "# Various illumination levels\n",
+ "E1=5 #Case1\n",
+ "E2=15 #Case2\n",
+ "E3=8 #Case3\n",
+ "\n",
+ "# According to the law of illumination E = I/(r**2) \n",
+ "# Using the above equation we find the distances for the above three illuminations\n",
+ "\n",
+ "r1= sqrt(I/E1) \n",
+ "r2= sqrt(I/E2) \n",
+ "r3= sqrt(I/E3) \n",
+ "\n",
+ "print 'a) The distance for %g flux illumination from the normally placed screen is %0.2f m'%(E1,r1)\n",
+ "print 'b) The distance for %g flux illumination from the normally placed screen is %0.2f m'%(E2,r2)\n",
+ "print 'c) The distance for %g f.c illumination from the normally placed screen is %0.2f ft'%(E3,r3)"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "a) The distance for 5 flux illumination from the normally placed screen is 2.24 m\n",
+ "b) The distance for 15 flux illumination from the normally placed screen is 1.29 m\n",
+ "c) The distance for 8 f.c illumination from the normally placed screen is 1.77 ft\n"
+ ]
+ }
+ ],
+ "prompt_number": 9
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Ex2 : Page 317"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "from math import pi\n",
+ "#To determine the total radiation sent vertically downward from a lamp of 1500 cp\n",
+ "\n",
+ "#Candle power of the lamp\n",
+ "P=1500 \n",
+ "\n",
+ "#Since the flux required corresponds to the one that lies in a plane passing through the lamp vertically downwards the angle is given by\n",
+ "Angle= pi # Angle in radians\n",
+ "\n",
+ "Flux=P*Angle \n",
+ "\n",
+ "print 'The total radiation sent vertically downward is %g lumens '%Flux\n",
+ "# Answer in the textbook are not accurate."
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "The total radiation sent vertically downward is 4712.39 lumens \n"
+ ]
+ }
+ ],
+ "prompt_number": 10
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Ex3 : Page 317"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "from math import sin\n",
+ "#To calculate Spherical Candle Power and intensity of illumination\n",
+ "\n",
+ "Tf= 1500 #Total flux\n",
+ "D=3 #Distance from the source\n",
+ "CP=200 #Candle power of the Uniform Source\n",
+ "E=CP/(D**2) #Maximum Illumination Intensity\n",
+ "IntIllumi = lambda x : E*sin(x*pi/180) #Function to determine the intensity of iluumination for various conditions\n",
+ "\n",
+ "\n",
+ "MSCP=Tf/(4*pi) #The Mean spherical candle power\n",
+ "\n",
+ "#Various Angles at which the rays falls on the surface\n",
+ "t1=90 \n",
+ "t2=60 \n",
+ "t3=0 \n",
+ "\n",
+ "#Illumination Intensities at various angles\n",
+ "E1=IntIllumi(t1) \n",
+ "E2=IntIllumi(t2) \n",
+ "E3=IntIllumi(t3) \n",
+ "\n",
+ "print 'a)The Mean Spherical Candle Power is %0.2f c.p'%(MSCP)\n",
+ "print 'b The illumination intensities for the following cases are: '\n",
+ "print 'i) Normal : %0.2f lux'%E1 \n",
+ "print 'ii) Inclined at 60 degrees : %0.2f lux '%E2\n",
+ "print 'iii) Parallel : %g lux'%E3 "
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "a)The Mean Spherical Candle Power is 119.37 c.p\n",
+ "b The illumination intensities for the following cases are: \n",
+ "i) Normal : 22.22 lux\n",
+ "ii) Inclined at 60 degrees : 19.25 lux \n",
+ "iii) Parallel : 0 lux\n"
+ ]
+ }
+ ],
+ "prompt_number": 11
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Ex4 : Page 318"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "from __future__ import division\n",
+ "from math import acos, degrees, cos\n",
+ "#To determine average illumination and illumination at various points on the area\n",
+ "\n",
+ "CP=200 #Candle power of the lamp\n",
+ "D=4 #Vertical Distance from the centre of the area to the lamp\n",
+ "R=5/2 #Radius of the given area\n",
+ "De=sqrt((D**2)+((R)**2)) #Distance from the edge of the area\n",
+ "Reff=80/100 #Reflector Efficiency\n",
+ "\n",
+ "Ec= CP/(D**2) #Illumination at the centre of the area\n",
+ "cos_theta = (D/De) #Angle made between perpendicular and edge distances\n",
+ "w=2*pi*(1-cos_theta) #Solid angle subtended by the area\n",
+ "\n",
+ "#Assuming uniform intensity in all directions\n",
+ "\n",
+ "#Illumination at the edge is\n",
+ "Eue=(CP/(De**2))*cos_theta\n",
+ "#Flux is given by Iw\n",
+ "flux=CP*w \n",
+ "#Average illumination\n",
+ "Euavg= flux/(pi*(R**2)) \n",
+ "#Average illumination with reflector efficiency\n",
+ "Euavgr= Euavg*Reff \n",
+ "\n",
+ "#When candle power is only vertically downwards\n",
+ "Eve=Eue*cos_theta #Illumination at the edge of the area\n",
+ "\n",
+ "#Total flux equation for non uniform intensity is derived and given by 2*pi*I*(sec(theta)-1)\n",
+ "fluxn=2*pi*CP*(1/cos_theta-1) \n",
+ "#Average illumination\n",
+ "Enuavg= fluxn/(pi*(R**2)) \n",
+ "#Average illumination with reflector efficiency\n",
+ "Enuavgr= Enuavg*Reff \n",
+ "\n",
+ "print 'The illumination at the'\n",
+ "print 'i) Centre of area = %g lux'%Ec\n",
+ "print 'ii)Periphery of the area '\n",
+ "print 'a) Uniform illumination = %0.3f lux'%Eue\n",
+ "print 'b) Candle power is vertically downward = %0.2f lux '%Eve\n",
+ "print 'iii) Average illumination and Average illumination with reflector efficiency'\n",
+ "print 'a) Uniform intensity = %0.2f lux and %0.2f lux respectively.'%(Euavg,Euavgr)\n",
+ "print 'b) Non Uniform intensity = %0.2f lux and %0.3f lux respectively. '%(Enuavg,Enuavgr)"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "The illumination at the\n",
+ "i) Centre of area = 12.5 lux\n",
+ "ii)Periphery of the area \n",
+ "a) Uniform illumination = 7.622 lux\n",
+ "b) Candle power is vertically downward = 6.46 lux \n",
+ "iii) Average illumination and Average illumination with reflector efficiency\n",
+ "a) Uniform intensity = 9.73 lux and 7.78 lux respectively.\n",
+ "b) Non Uniform intensity = 11.47 lux and 9.177 lux respectively. \n"
+ ]
+ }
+ ],
+ "prompt_number": 12
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Ex6 : Page 328"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "from math import atan\n",
+ "#To determine illumination at a point when a mirror is used\n",
+ "\n",
+ "CP=500 #Candle power of the lamp\n",
+ "Vd=5 #Vertical distance from the point to the source\n",
+ "Hd=5 #Horizontal distance fron the point to the source\n",
+ "D=sqrt((Vd**2)+(Hd**2)) #Distance between the source and the point\n",
+ "Md=2 #Distance of the source from the mirror\n",
+ "theta=degrees(atan(Hd/Vd)) #Angle made between the source to point and the horizontal\n",
+ "\n",
+ "#Lets consider the mirror reflection\n",
+ "R=80/100 #Reflected rays ratio\n",
+ "Vdm=Vd+(2*Md) #Vertical Distance from the point to the source reflection\n",
+ "Hdm=Hd #Horizontal distance from the point to the source reflection\n",
+ "Dm=sqrt((Vdm**2)+(Hdm**2)) #Distance between the source reflection and the point\n",
+ "thetam=degrees(atan(Hdm/Vdm)) #Angle made between the source reflection to point and the horizontal\n",
+ "\n",
+ "#Illumination at A due to source\n",
+ "Es=(CP/(D**2))*cos(theta*pi/180) \n",
+ "\n",
+ "#Illumination at A due to source refelction\n",
+ "Er=(R*CP/(Dm**2))*cos(thetam*pi/180) \n",
+ "print \"Illumination at point A due to O' is %0.1f lux.\"%Er \n",
+ "#Total Illumination at point A\n",
+ "E=Er+Es \n",
+ "print \"The total illumination at point A is %0.2f lux.\"%E "
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Illumination at point A due to O' is 3.3 lux.\n",
+ "The total illumination at point A is 10.37 lux.\n"
+ ]
+ }
+ ],
+ "prompt_number": 13
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Ex7 : Page 320"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#To determine the illumination over a disc\n",
+ "\n",
+ "MSCP=300 #Uniform intensity of the lamp or Mean Spherical candle power\n",
+ "Vd=6 #Vertical distance of the lamp from the disc\n",
+ "R=6/2 #Radius of the disc\n",
+ "Reff=60/100 #Reflector efficiency\n",
+ "D=sqrt((Vd**2)+(R**2)) #Distance from the source to the edge of the disc\n",
+ "theta=degrees(atan(R/Vd)) #Angle made between D and Vd\n",
+ "\n",
+ "Ecwr=MSCP/(Vd**2) #Illumination at the centre without reflector\n",
+ "Eewr=(MSCP/(D**2))*cos(theta*pi/180) #Illumination at the edge without reflector\n",
+ "\n",
+ "#Illumination at the centre is equal to the illumination at the egde with a reflector\n",
+ "Eer=MSCP*Reff*(4*pi/(pi*(R**2))) \n",
+ "Ecr=Eer \n",
+ "\n",
+ "w=2*pi*(1-cos(theta*pi/180)) #Solid angle made by the surface\n",
+ "flux=MSCP*w #Total flux produced by the source\n",
+ "Eavg=flux/(pi*(R**2)) #Average illumination\n",
+ "\n",
+ "print 'The illumination at: ' \n",
+ "print 'a) At the centre: ' \n",
+ "print 'i) With reflector : %g lux'%Ecr\n",
+ "print 'ii)Without reflector : %0.2f lux '%Ecwr\n",
+ "print 'b) At the edge of the surface:' \n",
+ "print 'i) With reflector : %g lux'%Eer\n",
+ "print 'ii)Without reflector : %0.2f lux '%Eewr\n",
+ "print 'c) Average illumination over the disc without the reflector : %0.2f lux'%Eavg "
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "The illumination at: \n",
+ "a) At the centre: \n",
+ "i) With reflector : 80 lux\n",
+ "ii)Without reflector : 8.33 lux \n",
+ "b) At the edge of the surface:\n",
+ "i) With reflector : 80 lux\n",
+ "ii)Without reflector : 5.96 lux \n",
+ "c) Average illumination over the disc without the reflector : 7.04 lux\n"
+ ]
+ }
+ ],
+ "prompt_number": 14
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Ex8 : Page 328"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "from math import ceil\n",
+ "#To estimate the number rating and disposition of the lamps\n",
+ "\n",
+ "E=32 #Illumination required for the working plane\n",
+ "A=80*15 #Area of the work bench\n",
+ "UF=0.5 #Utilization Factor\n",
+ "MF=0.8 #Maintenance Factor\n",
+ "SHR=1.5 #Maximum permissible value of spacing to height ratio\n",
+ "h=4.5 #Required height for the lamps to be hung above the work bench\n",
+ "Leff=14 #Lamp efficacy\n",
+ "Tlumen=E*A #Total lumens required\n",
+ "Llumen=Tlumen/(UF*MF) #Lamp lumens required\n",
+ "l=(A/15) #Length of the workspace\n",
+ "\n",
+ "Nc=ceil(l/(1.5*4.5)) #Minimum number of lamps in a single row (Number of columns)\n",
+ "\n",
+ "W=200 #Assumed wattage of the bulb\n",
+ "\n",
+ "NoL=Llumen/(W*Leff) #Number of bulbs required, Calculated value\n",
+ "\n",
+ "Nr=ceil(NoL/12) #Number of rows calculated for the required criteria\n",
+ "\n",
+ "N=Nc*Nr #Number of lamps necessary.\n",
+ "\n",
+ "Sp=l/Nc #Length wise spacing between the lamps\n",
+ "print '''Assuming 200W bulbs, \n",
+ "in a rectangular workspace of 80m*15m, we require %g bulbs arranged in %g rows\n",
+ "& %g columns having a spacing of %0.2fm between them.'''%(N,Nr,Nc,Sp)"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Assuming 200W bulbs, \n",
+ "in a rectangular workspace of 80m*15m, we require 36 bulbs arranged in 3 rows\n",
+ "& 12 columns having a spacing of 6.67m between them.\n"
+ ]
+ }
+ ],
+ "prompt_number": 15
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Ex9 : Page 334"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#To determine the number of lamps required\n",
+ "\n",
+ "A=30*20 #Area of the building\n",
+ "B=25 #Brightness in lumen/sq. metre\n",
+ "CoR=0.25 #Co - efficient of reflection \n",
+ "Lwatt=500 #Lamp Wattage\n",
+ "Ll=8000 #Lamp lumens output\n",
+ "E=B/CoR #Illumination required\n",
+ "BF=0.6 #Beam factor\n",
+ "WF=1.2 #Waste light factor\n",
+ "MF=0.75 #Mainteanance factor\n",
+ "\n",
+ "Tlumen= E*A*WF/MF #Total lumens required\n",
+ "\n",
+ "Llumen=Ll*BF #Lumens provided by one lamp\n",
+ "\n",
+ "NoL=Tlumen/Llumen #Number of lamps\n",
+ "\n",
+ "print 'The number of lamps required are %g. '%(round(NoL))"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "The number of lamps required are 20. \n"
+ ]
+ }
+ ],
+ "prompt_number": 16
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Ex10 : Page 334"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "from math import cos, degrees, sqrt, atan, pi\n",
+ "#To determine the illumination on the ground\n",
+ "\n",
+ "CP=300 #Uniform luminous intensity of a lamp\n",
+ "Vd=6 #Vertical distance from the ground to the lamp\n",
+ "Hd=6 #Horizontal distance from the ground to the lamp\n",
+ "D=sqrt((Vd**2)+(Hd**2)) #Distance from the lamp to point 6 metres away from the vertical line\n",
+ "theta=degrees(atan(Hd/Vd)) #Angle made between D and Vd.\n",
+ "\n",
+ "# Illumination\n",
+ "Ec=CP/(Vd**2) #Vertically beneath the lamp\n",
+ "E6=CP*cos(theta*pi/180)/(D**2) #**=6 metres away from the centre\n",
+ "\n",
+ "print 'The illumination on the ground :' \n",
+ "print 'a)Vertically beneath the lamp : %0.2f lux.'%Ec \n",
+ "print 'b)6 metres away from condition a) : %0.2f lux.'%E6"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "The illumination on the ground :\n",
+ "a)Vertically beneath the lamp : 8.33 lux.\n",
+ "b)6 metres away from condition a) : 2.95 lux.\n"
+ ]
+ }
+ ],
+ "prompt_number": 17
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Ex11 - page 334"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#Determine the output voltage\n",
+ "\n",
+ "Area=(5.08*3.75)*(10**-4) #Area projected by the cathode\n",
+ "Is=12*(10**-6) #Sensitivity\n",
+ "Rl=1.5*(10**6) # Load of operation\n",
+ "\n",
+ "#Function to calculate the output voltage for each case\n",
+ "volt = lambda a,b:Area*a*Is*Rl/(b**2)\n",
+ "\n",
+ "#Case 1\n",
+ "CP=60 #Lamp intensity\n",
+ "D=1.8 #Vertical distance of the lamp from the cell\n",
+ "V1=volt(CP,D) \n",
+ "#Case 2\n",
+ "CP=6 #Lamp intensity\n",
+ "D=0.5 #Vertical distance of the lamp from the cell\n",
+ "V2=volt(CP,D) \n",
+ "#Case 3\n",
+ "W=100 #Wattage of the lamp\n",
+ "eff=20 #eficacy of the lamp\n",
+ "CP=W*eff/(4*pi) #Lamp intensity\n",
+ "D=2 #Vertical distance of the lamp from the cell\n",
+ "V3=volt(CP,D) \n",
+ "\n",
+ "print 'The voltage output of the cells are :' \n",
+ "print 'a) 60 CP lamp at 1.8m : %g V'%V1 \n",
+ "print 'b) 6 CP lamp at 0.5m : %0.3f V'%V2 \n",
+ "print 'c) A 100W lamp having a efficacy of 20 lumens/watt at 2m : %0.3f V'%V3"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "The voltage output of the cells are :\n",
+ "a) 60 CP lamp at 1.8m : 0.635 V\n",
+ "b) 6 CP lamp at 0.5m : 0.823 V\n",
+ "c) A 100W lamp having a efficacy of 20 lumens/watt at 2m : 1.364 V\n"
+ ]
+ }
+ ],
+ "prompt_number": 18
+ }
+ ],
+ "metadata": {}
+ }
+ ]
+} \ No newline at end of file
diff --git a/Generation_Distribution_and_Utilization_of_Electrical_Energy_by_C._L._Wadhwa/ch7.ipynb b/Generation_Distribution_and_Utilization_of_Electrical_Energy_by_C._L._Wadhwa/ch7.ipynb
new file mode 100644
index 00000000..56dde883
--- /dev/null
+++ b/Generation_Distribution_and_Utilization_of_Electrical_Energy_by_C._L._Wadhwa/ch7.ipynb
@@ -0,0 +1,1293 @@
+{
+ "metadata": {
+ "name": "",
+ "signature": "sha256:69d143b4ecc3002f2af855f2e658d198ebb02b8724d63ebaafa2d3852719f95d"
+ },
+ "nbformat": 3,
+ "nbformat_minor": 0,
+ "worksheets": [
+ {
+ "cells": [
+ {
+ "cell_type": "heading",
+ "level": 1,
+ "metadata": {},
+ "source": [
+ "Chapter7, Electric Traction"
+ ]
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Ex1 : Page 352"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "from __future__ import division\n",
+ "from sympy import symbols, solve\n",
+ "from numpy import array\n",
+ "#To determine the Acceleration and Coasting Period\n",
+ "\n",
+ "D=1.92\n",
+ "Ts=20 #Duration of stops\n",
+ "Vsch=40 \n",
+ "V1=60.8 \n",
+ "#Retardation\n",
+ "B=3.2 \n",
+ "Bc=0.16 \n",
+ "\n",
+ "SchTime=D*3600/Vsch # Schedule time in seconds\n",
+ "\n",
+ "T=SchTime-Ts #Time of Travel\n",
+ "\n",
+ "a=symbols('a') # Acceleration Unknown Value\n",
+ "\n",
+ "V2=(V1-Bc*(T-(V1/a)))/(1-(Bc/B)) # From the Speed Time Curve\n",
+ "\n",
+ "X=((V1+V2)*T-(V1*V2*((1/B)+(1/a))))-(7200*D) #Polynomial Equation to find a\n",
+ "a=solve(X, a) #Roots of the Characteristic Equation\n",
+ "#To Determine the positive roots\n",
+ "Y=array([abs(a[0])+a[0], abs(a[1])+a[1] ])\n",
+ "if Y[0]==0:\n",
+ " a=a[1] \n",
+ "else:\n",
+ " a=a[0] \n",
+ "\n",
+ "\n",
+ "Ta=V1/a #Duration of acceleration\n",
+ "V2=(V1-Bc*(T-(V1/a)))/(1-(Bc/B)) # From the Speed Time Curve\n",
+ "Tcs=(V1-V2)/Bc #Coasting Time Period\n",
+ "\n",
+ "print 'The Acceleration of the Train is %0.2f Kmphp '%a \n",
+ "print 'The Coasting Period is %0.2f seconds'%Tcs "
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "The Acceleration of the Train is 2.13 Kmphp \n",
+ "The Coasting Period is 110.80 seconds\n"
+ ]
+ }
+ ],
+ "prompt_number": 1
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Ex2 page 353"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#To determine the duration of acceleration and others\n",
+ "D=1.6 \n",
+ "Vav=40 \n",
+ "Bc=0.16 \n",
+ "B=3.2 \n",
+ "a=2 #Acceleration\n",
+ "\n",
+ "T=D*3600/Vav #Time of travel\n",
+ "\n",
+ "V1=symbols('V1') #Variable Value\n",
+ "\n",
+ "V2=(V1-Bc*(T-(V1/a)))/(1-(Bc/B)) # From the Speed Time Curve\n",
+ "\n",
+ "#Formula #7200*D = (V1+V2)*T-V1*V2(1/B+1/alfa)\n",
+ "X=((V1+V2)*T-(V1*V2*((1/B)+(1/a))))-(7200*D) #Polynomial Equation to find V1\n",
+ "V1=solve(X, V1) #Numerical Values for V1\n",
+ "V1=V1[0] #Train Considered have speed close to this value\n",
+ "V2=(V1-Bc*(T-(V1/a)))/(1-(Bc/B)) # From the Speed Time Curve\n",
+ "Ta=V1/a #Acceleration Time\n",
+ "Tc=(V1-V2)/Bc #Coasting Time\n",
+ "Tb=V2/B #Braking time\n",
+ "#Distance are calculated according to the area under their respective curves\n",
+ "Da=(Ta*V1/2)/3600 #Distance during acceleration\n",
+ "Dc=(((V1-V2)*Tc/2)+(V2*Tc))/3600 #Distance during coasting\n",
+ "Db=(Tb*V2/2)/3600 #Distance during braking\n",
+ "\n",
+ "print 'The Time periods and the distance covered for:' \n",
+ "print 'Acceleration : %.2f seconds and %0.3f km '%(Ta,Da)\n",
+ "print 'Coasting : %0.2f seconds and %0.3f km '%(Tc,Dc)\n",
+ "print 'Braking : %0.2f seconds and %0.3f km '%(Tb,Db)"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "The Time periods and the distance covered for:\n",
+ "Acceleration : 27.06 seconds and 0.203 km \n",
+ "Coasting : 105.30 seconds and 1.336 km \n",
+ "Braking : 11.65 seconds and 0.060 km \n"
+ ]
+ }
+ ],
+ "prompt_number": 2
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Ex3: page 354"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#To determine the acceleration required to run the service\n",
+ "\n",
+ "\n",
+ "D=1 \n",
+ "Ts=20 #Stopping Time\n",
+ "B=3 \n",
+ "Vsh=30 \n",
+ "ShT=D*3600/Vsh #Schedule time\n",
+ "T=ShT-Ts #Actual Run Time\n",
+ "Vav=D*3600/T #Average Speed\n",
+ "Vm=1.25*Vav \n",
+ "a=symbols('a') #Acceleration Variable\n",
+ "\n",
+ "X=((2*Vm*T)-((Vm**2)*((1/a)+(1/B))))-(7200*D) #Polynomial Equation to find 'a'\n",
+ "\n",
+ "a=solve(X, a)[0] #Numerical Value of the Acceleration\n",
+ "\n",
+ "print 'The Accleration required to run the service is %g Kmphps'%a "
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "The Accleration required to run the service is 1.8 Kmphps\n"
+ ]
+ }
+ ],
+ "prompt_number": 3
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Ex4 : Page 356"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#To determine the time taken by the train to attain a particular speed\n",
+ "\n",
+ "M=200 #Mass of train\n",
+ "g=9.81 #Acceleration due to gravity\n",
+ "W=M*g \n",
+ "RI=10/100 #Rotational Inertia\n",
+ "We=W*(1+RI) \n",
+ "motor=4 #Number of Motors\n",
+ "Tm=5000 #Torque per motor\n",
+ "T=Tm*motor \n",
+ "V=40 #Speed to be Attained\n",
+ "N=0.9 #Gear Efficiency\n",
+ "Y=3.6/1 #Gear Ratio\n",
+ "R=91.5*(10**-2)/2 \n",
+ "Ft=N*T*Y/R \n",
+ "r=40 \n",
+ "G=(1/200)*100 #Gradient in Percentage\n",
+ "a=symbols('a') #Acceleration\n",
+ "\n",
+ "X=((28.3*We*a)+(10*W*G)+(M*r))-Ft #Polynomial Equation to find acceleration\n",
+ "\n",
+ "a=solve(X)[0] #Numerical Value of Acceleration\n",
+ "Time=V/a #Time Taken to attain the required the necessary speed\n",
+ "\n",
+ "print 'The Time Taken by the Train to attain 40 Kmphs is %0.2f seconds'%Time "
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "The Time Taken by the Train to attain 40 Kmphs is 19.73 seconds\n"
+ ]
+ }
+ ],
+ "prompt_number": 4
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Ex7.5 :Page 363"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "\n",
+ "#To determine the Factors affeting the mechanics of the Train\n",
+ "\n",
+ "D=1.92\n",
+ "Ts=20 #Duration of stops\n",
+ "Vsch=40 \n",
+ "V1=60.8 \n",
+ "#Retardation\n",
+ "B=3.2 \n",
+ "Bc=0.16 \n",
+ "SchTime=D*3600/Vsch # Schedule time in seconds\n",
+ "T=SchTime-Ts #Time of Travel\n",
+ "a=symbols('a') # Acceleration Unknown Value\n",
+ "V2=(V1-Bc*(T-(V1/a)))/(1-(Bc/B)) # From the Speed Time Curve\n",
+ "X=((V1+V2)*T-(V1*V2*((1/B)+(1/a))))-(7200*D) #Polynomial Equation to find a\n",
+ "a=solve(X,a)[1] #taking +ve root\n",
+ "\n",
+ "Ta=V1/a #Duration of acceleration\n",
+ "V2=(V1-Bc*(T-(V1/a)))/(1-(Bc/B)) # From the Speed Time Curve\n",
+ "Tc=(V1-V2)/Bc #Coasting Time\n",
+ "Tb=V2/B #Braking time\n",
+ "#Distance are calculated according to the area under their respective curves\n",
+ "Da=(Ta*V1/2)/3600 #Distance during acceleration\n",
+ "Dc=(((V1-V2)*Tc/2)+(V2*Tc))/3600 #Distance during coasting\n",
+ "Db=(Tb*V2/2)/3600 #Distance during braking\n",
+ "\n",
+ "r=4.53*9.81 #Train Resistance in N per tonne\n",
+ "M=200 #Mass of Train\n",
+ "AWF=1.1 #Accelerating Weight Factor\n",
+ "SEOA=0.010726*(V1**2)*(AWF)/D #Specific Energy Output during acceleration\n",
+ "SEOAr=0.2778*r*Da/D #Specific Energy Output during acceleration against train resistance\n",
+ "SEO=SEOA+SEOAr #Specific Energy for the run\n",
+ "SEOB=0.010726*(V2**2)*(AWF)/D #Specific Energy Output during braking\n",
+ "SEOC=SEOA-SEOB #energy utilized during coasting\n",
+ "rc=SEOC*D/(0.2778*Dc)#Mean Train Resistance during coasting\n",
+ "\n",
+ "print '\\ni)The Specific Energy Output for the Run is %0.3f Whr/Tonne-km\\n'%SEO\n",
+ "print 'ii) The Energy Dissipated by the brakes is %0.3f Whr/Tonne-km\\n'%SEOB\n",
+ "print 'iii)The Energy Utilized during coasting is %0.3f Whr/Tonne-km\\n'%SEOC\n",
+ "print 'iv) The Mean Train Resistance during coasting is %0.2f N/tonne\\n'%rc\n",
+ "\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "\n",
+ "i)The Specific Energy Output for the Run is 24.266 Whr/Tonne-km\n",
+ "\n",
+ "ii) The Energy Dissipated by the brakes is 11.400 Whr/Tonne-km\n",
+ "\n",
+ "iii)The Energy Utilized during coasting is 11.316 Whr/Tonne-km\n",
+ "\n",
+ "iv) The Mean Train Resistance during coasting is 48.93 N/tonne\n",
+ "\n"
+ ]
+ }
+ ],
+ "prompt_number": 5
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Ex6 : Page 364"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "\n",
+ "#To determine the Specific Energy Output Runs for Both the Cases\n",
+ "from sympy import symbols, solve\n",
+ "G=(1/80)*100 \n",
+ "W=210 \n",
+ "We=1.1*W \n",
+ "Vm=symbols('Vm') #Variable Value of The Max Velocity \n",
+ "D=1.6 #Distance between Stations\n",
+ "Ftg=10*W*G #Tractive Effort due to Gradient\n",
+ "Fta=13050 #Total Tractive Effort for Acceleration\n",
+ "Ftb=20445 #Total Tractive Effort for Retardation\n",
+ "ron=5.43 #Train Resistance when power on\n",
+ "rc=6.525 #Train Resistance when coasting\n",
+ "#Level Track\n",
+ "al=2 \n",
+ "Bl=3.2 \n",
+ "\n",
+ "#Up Gradient\n",
+ "Vavu=40 #Average Speed\n",
+ "Tu=D*3600/Vavu #Total Time Taken \n",
+ "au=(Fta-Ftg)/(28.3*We) #Acceleration\n",
+ "Bu=(Ftb+Ftg)/(28.3*We) #Retardation\n",
+ "Xu=((2*Vm*Tu)-((Vm**2)*((1/au)+(1/Bu))))-(7200*D) #Polynomial Equation to Find Vm\n",
+ "Vmu=solve(Xu, Vm)[0] #Numerical Value of Vm\n",
+ "Tua=Vmu/au #Accelerating Period\n",
+ "Tub=Vmu/Bu #Braking Period\n",
+ "Tucs=Tu-Tua-Tub #Constant Speed Duration\n",
+ "Dua=Vmu*Tua/(2*3600) #Distance Travelled During Accleration in km\n",
+ "Dub=Vmu*Tub/(2*3600) #Distance Travelled During Braking in km\n",
+ "Duon=D-Dub #Distance run with power on\n",
+ "SEOua=0.010726*(Vmu**2)*(We/W)/D #Specific Energy Output during Acceleration\n",
+ "SEOug=27.25*G*Duon/D #Specific Energy Output for Gradient\n",
+ "SEOur=0.2778*ron*9.81*Duon/D #Specific Energy Output for resitance\n",
+ "TSEOu=SEOua+SEOug+SEOur #Total Specific Output\n",
+ "\n",
+ "#Down Gradient\n",
+ "Vavd=44 #Average Speed\n",
+ "Td=D*3600/Vavd #Total Time Taken \n",
+ "ad=(Fta+Ftg)/(28.3*We) #Acceleration\n",
+ "Bd=(Ftb-Ftg)/(28.3*We) #Retardation\n",
+ "Xd=((2*Vm*Td)-((Vm**2)*((1/ad)+(1/Bd))))-(7200*D) #Polynomial Equation to Find Vm\n",
+ "Vmd=solve(Xd, Vm)[0] #Numerical Value of Vm\n",
+ "Tda=Vmd/ad #Accelerating Period\n",
+ "Tdb=Vmd/Bd #Braking Period\n",
+ "Tdcs=Td-Tda-Tdb #Constant Speed Duration\n",
+ "Dda=Vmd*Tda/(2*3600) #Distance Travelled During Accleration in km\n",
+ "Ddb=Vmd*Tdb/(2*3600) #Distance Travelled During Braking in km\n",
+ "Ddon=D-Ddb #Distance run with power on\n",
+ "SEOda=0.010726*(Vmd**2)*(We/W)/D #Specific Energy Output during Acceleration\n",
+ "#Net Force Acting Downward due to gradient and resistance\n",
+ "Fnet=W*((10*G)-rc) \n",
+ "#Since Fnet is Postive, To run the train at constant speed brakes will have to applied therefore they cannot supply electric energy\n",
+ "TSEOd=SEOda #Total Sepcific Enegy Consumption\n",
+ "\n",
+ "print 'The Total Specific Energy:' \n",
+ "print 'Up Gradient : %0.2f Whr/Tonne km'%TSEOu\n",
+ "print 'Down Gradient : %0.2f Whr/Tonne km '%TSEOd"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "The Total Specific Energy:\n",
+ "Up Gradient : 62.48 Whr/Tonne km\n",
+ "Down Gradient : 20.05 Whr/Tonne km \n"
+ ]
+ }
+ ],
+ "prompt_number": 6
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Ex 7: Page 366"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#To determine the specific energy consumption\n",
+ "from __future__ import division\n",
+ "W=400 \n",
+ "G=1 \n",
+ "a=1.5 #Acceleration\n",
+ "Ta=30 #Acceleration Time\n",
+ "Tf=36 #Free running Period\n",
+ "Tc=25 #Coasting Period\n",
+ "B=2.6 \n",
+ "r=45 \n",
+ "RI=10/100 #Rotational Inertia Effect\n",
+ "Eff=75/100 # Overall Efficieny\n",
+ "g=9.81 #Accleration due to gravity\n",
+ "\n",
+ "Vm=Ta*a \n",
+ "We=W*(1+RI) \n",
+ "\n",
+ "#Distance Covered is equal to the area under the speed time curve\n",
+ "Da=Vm*Ta/(2*3600) #Acceleration\n",
+ "Df=Vm*Tf/3600 #Free Run\n",
+ "\n",
+ "Ftf=W*(r+(10*g*G)) #Tractive effort during free run period\n",
+ "\n",
+ "Fta=We*277.8 #Tractive effort due to acceleration\n",
+ "\n",
+ "#During Coasting, The Accelrating force is equal to Tractive effort during free run\n",
+ "#Retardation due to coasting is \n",
+ "Bc=Ftf/Fta \n",
+ "\n",
+ "V2=Vm-(Bc*Tc) #Speed of train after the coasting period\n",
+ "Tb=V2/B # Braking period\n",
+ "\n",
+ "Dc=((((Vm-V2)*Tc)/2)+(V2*Tc))/3600 #Distance covered during coasting\n",
+ "Db=V2*Tb/(2*3600) #Distance covered during braking\n",
+ "\n",
+ "D=Da+Df+Dc+Db #Total Distance\n",
+ "\n",
+ "D1=Da+Df #Distance for which the energy is being spent\n",
+ "\n",
+ "SEO=(0.010726*(Vm**2)*We/(W*D))+(27.25*G*D1/D)+(0.2778*r*D1/D) #Specific Energy Output\n",
+ "#Note the Calculated Specific Energy Output during accleration is wrong.\n",
+ "\n",
+ "SEOa=SEO/Eff #Actual Specific Energy Output with 75% efficieny\n",
+ "\n",
+ "print 'The Specific Energy Consumption is %0.2f Whr/Tonne Km'%SEOa "
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "The Specific Energy Consumption is 67.78 Whr/Tonne Km\n"
+ ]
+ }
+ ],
+ "prompt_number": 7
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Ex 8 : Page 368"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "\n",
+ "#To determine the weight of the locomotive\n",
+ "from math import ceil\n",
+ "Wg=300 #Weight of the train to be hauled\n",
+ "RI=10/100 #Rotation inertia\n",
+ "Ma=20/100 #Co-Efficient of adhesion\n",
+ "Wa=20 #Permissible Weight of axle load\n",
+ "r=45 \n",
+ "G=2 \n",
+ "a=1 #Acceleration\n",
+ "Wl=symbols('Wl') #Variable Weight of locmotive\n",
+ "W=Wg+Wl #Total Weight of the train\n",
+ "We=W*(1+RI) \n",
+ "Ft=((277.8*a*We/W)+(98.1*G)+r)*W \n",
+ "\n",
+ "Fmax=(9.81*1000*Ma*Wl) \n",
+ "\n",
+ "X=Ft-Fmax #Polynomial Equation to find Wl\n",
+ "\n",
+ "Wl=solve(X, Wl)[0] #Numerical Value of the Weight of the locomotive\n",
+ "\n",
+ "NoA=Wl/Wa #Number of axles\n",
+ "\n",
+ "print 'The weight of the locomotive and the number of axles is %0.1f tonnes and %g axles respectively\\n'%(Wl,ceil(NoA))"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "The weight of the locomotive and the number of axles is 115.9 tonnes and 6 axles respectively\n",
+ "\n"
+ ]
+ }
+ ],
+ "prompt_number": 8
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Ex 9 : Page 370"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#To deduce the speed current characteristic of the motor\n",
+ "from numpy import array\n",
+ "Ia=array([10,20,30,40,50,60,70] ) #Current\n",
+ "T=array([45,130,230,350,470,610,765]) #Torque\n",
+ "V=440 #operating voltage\n",
+ "r=0.5 #Armature Circuit Resistance\n",
+ "\n",
+ "\n",
+ "N=9.55*(V-(Ia*r))/(T/Ia) #Speed\n",
+ "\n",
+ "print 'For the Given Current: ' \n",
+ "for ia in Ia:\n",
+ " print \"%0.f \"%ia, \n",
+ "print '\\nThe Speeds tabulated are:'\n",
+ "for n in N:\n",
+ " print \"%0.f \"%n,\n",
+ "# Answer in the textbook are not accurate."
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "For the Given Current: \n",
+ "10 20 30 40 50 60 70 \n",
+ "The Speeds tabulated are:\n",
+ "923 632 529 458 422 385 354 \n"
+ ]
+ }
+ ],
+ "prompt_number": 9
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Ex10: Page371"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "\n",
+ "#To determine the speed torque curve for the series motor\n",
+ "from numpy import linalg\n",
+ "I=array([50,100,150,200,250,300]) #Field Current\n",
+ "Eb1=array([230,360,440,500,530,580]) #Armature Volts\n",
+ "Ra=0.07 #Armature Winding Resistance\n",
+ "Rf=0.05 #Field Resistance\n",
+ "Rt=Rf+Ra #Total Resistance\n",
+ "P=4 #Poles of the machine\n",
+ "N1=600 #Series Motor Speed\n",
+ "Vc=600 #Constant Operating Voltage\n",
+ "\n",
+ "# Note that the Suffix 1 and 2 have given according the question 1 stands for the case where the magnetisation curve has been given and 2 stands for the case where we have to find the speed torque curve\n",
+ "\n",
+ "Eb2=Vc-(I*(Rt)) \n",
+ "N2=N1*Eb2/Eb1 #Speed\n",
+ "\n",
+ "T=9.55*Eb2*I/N2 #Torque\n",
+ "\n",
+ "print 'The Tabulated Speeds for 600V are:\\n'\n",
+ "for n2 in N2:\n",
+ " print \"%0.f \"%n2,\n",
+ "print '\\n\\nAnd their corresponding torques are:\\n'\n",
+ "for t in T:\n",
+ " print \"%0.f \"%t,\n",
+ "# Answer in the textbook are not accurate."
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "The Tabulated Speeds for 600V are:\n",
+ "\n",
+ "1550 980 794 691 645 583 \n",
+ "\n",
+ "And their corresponding torques are:\n",
+ "\n",
+ "183 573 1050 1592 2109 2770 \n"
+ ]
+ }
+ ],
+ "prompt_number": 10
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Ex11 : Page 378"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#To determine the horse power delivered by the locomotive\n",
+ "from math import sqrt\n",
+ "\n",
+ "Ftl=35000 #Tractive Effort on a level surface\n",
+ "Ftg=55000 #Tractive Effort on a gradient\n",
+ "V=50 #Speed of the train\n",
+ "HP=735.5 #One Horse Power\n",
+ "Pl=Ftl*V*1000/(3600*HP) #Power Output(in HP) of the Locomotive on the level track\n",
+ "\n",
+ "#CASE 1:\n",
+ "#D.C Series Motor, Power is directly proportional to the root of the Trative Effort \n",
+ "HP1=Pl*sqrt(Ftg/Ftl) \n",
+ "\n",
+ "#CASE 2:\n",
+ "#3 Phase Induction Motor, Power is directly proportional to the Trative Effort\n",
+ "HP2=Pl*(Ftg/Ftl) \n",
+ "\n",
+ "print 'The Horse Power delivered by the locmotive when the motors used are:' \n",
+ "print 'i) D.C Series Motor is %0.1f H.P '%HP1 \n",
+ "print 'ii) 3 Phase Induction Motor is %0.1f H.P '%HP2\n",
+ "#Note the Calculation Mistake in TextBook for case 2"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "The Horse Power delivered by the locmotive when the motors used are:\n",
+ "i) D.C Series Motor is 828.5 H.P \n",
+ "ii) 3 Phase Induction Motor is 1038.6 H.P \n"
+ ]
+ }
+ ],
+ "prompt_number": 11
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Ex12 : Page 378"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#To Determine the tractive effort shared by the two locomotives\n",
+ "\n",
+ "\n",
+ "Da=1.27 #Loco A wheel diameter\n",
+ "Db=1.244 #Loco B wheel diameter\n",
+ "S=5 #Slip of both the Locomotives in Case 1\n",
+ "Sa=S #Slip of Loco A in Case 2\n",
+ "Sb=4 #Slip of Loco B in Case 2\n",
+ "Ftta=11325 #Total Tractive Effort in Case 1\n",
+ "Fttb=1309 #Total Tractive Effort in Case 2\n",
+ "Ft=5227 #Full Load Tractive Effort of Loco\n",
+ "\n",
+ "x=symbols('x') #Variable for Tractive Effort Exerted by Loco A\n",
+ "\n",
+ "#Slips are same\n",
+ "#For 11325 kg\n",
+ "#% Speed\n",
+ "NA=100-(S*x/Ft) \n",
+ "NB=100-(S*(Ftta-x)/Ft) \n",
+ "Rna=NB/NA #Speed Ratio\n",
+ "\n",
+ "Y1=Rna-(Da/Db) #Polynomial to find out 'x'\n",
+ "x=solve(Y1, x)[0] #Numerical Value of Tractive Effort shared by A\n",
+ "\n",
+ "#Tractive Efforts Shared by A Loco and B Loco\n",
+ "FtAas=x \n",
+ "FtBas=Ftta-x \n",
+ "\n",
+ "#For 1309 kg\n",
+ "#% Speed\n",
+ "x=symbols('x') #Variable for Tractive Effort Exerted by Loco A\n",
+ "NA=100-(S*x/Ft) \n",
+ "NB=100-(S*(Fttb-x)/Ft) \n",
+ "Rn1=NB/NA #Speed Ratio\n",
+ "\n",
+ "Y2=Rn1-(Da/Db) #Polynomial to find out 'x'\n",
+ "x=solve(Y2, x)[0] #Numerical Value of Tractive Effort shared by A\n",
+ "\n",
+ "#Tractive Efforts Shared by A Loco and B Loco\n",
+ "FtAbs=x \n",
+ "FtBbs=Fttb-x \n",
+ "\n",
+ "#Different Slips\n",
+ "#For 11325 kg\n",
+ "#% Speed\n",
+ "x=symbols('x') #Variable for Tractive Effort Exerted by Loco A\n",
+ "NA=100-(Sa*x/Ft) \n",
+ "NB=100-(Sb*(Ftta-x)/Ft) \n",
+ "Rna=NB/NA #Speed Ratio\n",
+ "\n",
+ "Y3=Rna-(Da/Db) #Polynomial to find out 'x'\n",
+ "x=solve(Y3,x)[0] #Numerical Value of Tractive Effort shared by A\n",
+ "\n",
+ "#Tractive Efforts Shared by A Loco and B Loco\n",
+ "FtAad=x \n",
+ "FtBad=Ftta-x \n",
+ "\n",
+ "#For 1309 kg\n",
+ "#% Speed\n",
+ "x=symbols('x') #Variable for Tractive Effort Exerted by Loco A\n",
+ "NA=100-(Sa*x/Ft) \n",
+ "NB=100-(Sb*(Fttb-x)/Ft) \n",
+ "Rn2=NB/NA #Speed Ratio\n",
+ "\n",
+ "Y4=Rn2-(Da/Db) #Polynomial to find out 'x'\n",
+ "x=solve(Y4, x)[0] #Numerical Value of Tractive Effort shared by A\n",
+ "\n",
+ "#Tractive Efforts Shared by A Loco and B Loco\n",
+ "FtAbd=x \n",
+ "FtBbd=Fttb-x \n",
+ "\n",
+ "print 'The Tractive Effort shared A and B for:'\n",
+ "print 'i) Slips are %d percent for both the Locomotives for a Tractive effort of:'%S \n",
+ "print 'a) %d kg : %d kg by A and %d kg by B respectively'%(Ftta,FtAas,FtBas)\n",
+ "print 'b) %d kg : %d kg by A and %d kg by B respectively'%(Fttb,FtAbs,FtBbs)\n",
+ "print 'i) Slips are %d percent for A and %d percent for B for a Tractive effort of:'%(Sa,Sb)\n",
+ "print 'a) %d kg : %d kg by A and %d kg by B respectively'%(Ftta,FtAad,FtBad)\n",
+ "print 'b) %d kg : %d kg by A and %d kg by B respectively'%(Fttb,FtAbd,FtBbd)\n",
+ "\n",
+ "#Please Note there is caluculation mistake calculation in the TextBook for the First Case"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "The Tractive Effort shared A and B for:\n",
+ "i) Slips are 5 percent for both the Locomotives for a Tractive effort of:\n",
+ "a) 11325 kg : 6685 kg by A and 4639 kg by B respectively\n",
+ "b) 1309 kg : 1728 kg by A and -419 kg by B respectively\n",
+ "i) Slips are 5 percent for A and 4 percent for B for a Tractive effort of:\n",
+ "a) 11325 kg : 6175 kg by A and 5149 kg by B respectively\n",
+ "b) 1309 kg : 1775 kg by A and -466 kg by B respectively\n"
+ ]
+ }
+ ],
+ "prompt_number": 12
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Ex13 : Page 386"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#To determine the traction control of 2 motors rated at 1500V\n",
+ "\n",
+ "\n",
+ "NoM=2 #Number of motors\n",
+ "V=1500 #Rated Voltage\n",
+ "I=500 #Starting Current\n",
+ "R=0.15 #Armature Resistance\n",
+ "r=50 #Specific Resistance\n",
+ "W=120 \n",
+ "We=140 \n",
+ "Ft=38000 # Tractive Effort Per motor\n",
+ "\n",
+ "Vs=40 #Speed at the end of starting period\n",
+ "#Note the question is asked for 50 Kmph, But the answer is calculated for 40Kmph\n",
+ "#Therefore it is calculated for 40 Kmph\n",
+ "#By Changing the value of Vs to 50 Kmph, The Specific Parameters can also be obtained\n",
+ "\n",
+ "a=symbols('a') #Accleration Variable\n",
+ "\n",
+ "X=(2*Ft)-((277.8*We*a)+(W*r)) #Polynomial To find 'a'\n",
+ "\n",
+ "a=solve(X)[0] #To find the Numerical Value of the Acceleration\n",
+ "\n",
+ "t=Vs/a #Starting Time\n",
+ "\n",
+ "Vd=I*R #Resistance drop per motor\n",
+ "\n",
+ "ts=t*(V-(2*Vd))/(2*(V-Vd)) #Starting Series Time Period\n",
+ "tp=t-ts #Starting Parallel Time Period\n",
+ "\n",
+ "Vt=a*ts #Speed at Transition\n",
+ "#Loss can be found out by the computing the area under the of the given figure in the text book for different period\n",
+ "#In series, the Voltage reduces, Hence 675 \n",
+ "Rhel=((((V/2)-Vd)*I*ts)+((V/2)*I*tp))/(2*3600*1000) #Loss per motor in kWhr\n",
+ "Rhe=NoM*Rhel #Total Rheostatic Loss\n",
+ "\n",
+ "print 'i) The Duration of starting period is %0.1f seconds'%t \n",
+ "print 'ii)The Speed of Train at Transition is %0.2f Kmph'%Vt\n",
+ "print 'iii) The Rheostatic Loss is %0.3f kWhr'%Rhe "
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "i) The Duration of starting period is 22.2 seconds\n",
+ "ii)The Speed of Train at Transition is 18.95 Kmph\n",
+ "iii) The Rheostatic Loss is 2.205 kWhr\n"
+ ]
+ }
+ ],
+ "prompt_number": 13
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Ex14 : Page 387"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#To determine the speed of motors when connected in series\n",
+ "\n",
+ "V=650 #Rating of motor and Supply Voltage when connected in parallel\n",
+ "IR=10*650/100 #Armature Drop\n",
+ "N1p=1000 #Speed of the first motor in parallel operation\n",
+ "D1=88 #Motor 1 wheels diameter\n",
+ "D2=86 #Motor 2 wheels diameter\n",
+ "\n",
+ "#Current Remains Constant during the start\n",
+ "\n",
+ "r=D1/D2 #Ratio of the first motor wheel diameter to the second motor wheel diameter\n",
+ "\n",
+ "#N1/N2 = 1/r\n",
+ "\n",
+ "V1=((V-IR)/(1+(r)))+((IR)/(1+(1/r))) #Voltage of Motor 1 in series operation\n",
+ "V2=V-V1 #Voltage of Motor 2 in series operation\n",
+ "\n",
+ "N1=N1p*(V1-IR)/(V-IR) #Speed of motor 1 in series configuration\n",
+ "N2=N1*r #Speed of motor 2 in series configuration\n",
+ "\n",
+ "print 'The Speed of Motor 1 in series Configuration is %d rpm'%N1\n",
+ "print 'The Speed of Motor 2 in series Configuration is %d rpm'%N2"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "The Speed of Motor 1 in series Configuration is 439 rpm\n",
+ "The Speed of Motor 2 in series Configuration is 449 rpm\n"
+ ]
+ }
+ ],
+ "prompt_number": 14
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Ex15 : Page 387"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "from __future__ import division\n",
+ "from numpy import array, nditer\n",
+ "#To determine the characteristics gear ratio and wheels are replaced\n",
+ "\n",
+ "\n",
+ "D1=86 #Diameter of wheels in Case 1\n",
+ "Y1=71/21 #Gear Ratio in Case 1\n",
+ "D2=88 # Diameter of wheels in Case 2\n",
+ "Y2=74/19 #Gear Ratio in case 2\n",
+ "I=array([50,100,150,200,250,300] ) #Current\n",
+ "L1=array([80,50,45,40,36,32] ) #Speed in Kmph\n",
+ "Ft1=array([2000,6000,12000,16000,18000,22000]) #Tractive Effort\n",
+ "\n",
+ "# V = pi*D*N*60/(100*100*Y)\n",
+ "#According to the above equation, V is directly proportional to D*N/Y\n",
+ "\n",
+ "#Angular Frequency And Torque remains the same irrespective of the gear ratio or change in diameter\n",
+ "\n",
+ "#Hence the V is directly proportional to D/Y\n",
+ "\n",
+ "#V id directly proportional to N\n",
+ "# N directly proportional to Linear speed\n",
+ "#Hence relating the above terms\n",
+ "#We get linear speed directly proportional to D/Y\n",
+ "\n",
+ "def fun1(L1):\n",
+ " it = nditer([L1, None])\n",
+ " for x,y in it:\n",
+ " y[...] = x*D2*Y1/(D1*Y2)\n",
+ " return it.operands[1]\n",
+ "\n",
+ "L2 = fun1(L1) #Linear Speed in Case two\n",
+ "\n",
+ "#Similarly T = Ft * D/(200)\n",
+ "#Dividing by Y (T/Y) = Ft*D/(200*Y)\n",
+ "#Taking two cases where we find Torque per gear ratio of one case\n",
+ "# And multiply the Torque to Gear ratio to the other gear ratio to get Torque\n",
+ "# From this process we T1*Y2/Y1 =T2\n",
+ "# We Get Ft is directly proportional to Y/D\n",
+ "\n",
+ "def fun2(Ft1):\n",
+ " it = nditer([Ft1, None])\n",
+ " for x,y in it:\n",
+ " y[...] = x*D1*Y2/(D2*Y1)\n",
+ " return it.operands[1]\n",
+ "\n",
+ "Ft2=fun2(Ft1) #Tractive Effort in Second Case\n",
+ "\n",
+ "print 'The New Characteristics are - \\nCurrent in Amperes'\n",
+ "for i in I:\n",
+ " print \"%d \"%i,\n",
+ "print '\\n\\nSpeed in Kmph' \n",
+ "for l2 in L2:\n",
+ " print \"%0.2f \"%l2, \n",
+ "print '\\n\\nTractive Effort in N' \n",
+ "for ft2 in Ft2:\n",
+ " print \"%0.f \"%ft2,\n",
+ " \n",
+ "# Answers are not accurate in the textbook."
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "The New Characteristics are - \n",
+ "Current in Amperes\n",
+ "50 100 150 200 250 300 \n",
+ "\n",
+ "Speed in Kmph\n",
+ "71.00 44.00 39.00 35.00 31.00 28.00 \n",
+ "\n",
+ "Tractive Effort in N\n",
+ "2251 6754 13509 18012 20264 24767 \n"
+ ]
+ }
+ ],
+ "prompt_number": 15
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Ex16 : Page 388"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "from __future__ import division\n",
+ "#To Determine the Resistance of the Various Steps in a Series Motor\n",
+ "\n",
+ "P=20*735.5 #Watt # Power Rating\n",
+ "V=500 #Rated Voltage\n",
+ "Eff=80/100 #Efficiency\n",
+ "Raw=1 #Resistance of Armature and Windings\n",
+ "Iflux=10/100 #Increase in Flux\n",
+ "\n",
+ "I=P/(V*Eff) #Full load Current\n",
+ "\n",
+ "\n",
+ "#VAriation in Current\n",
+ "Imin=1.5*I \n",
+ "Imax=2*I \n",
+ "\n",
+ "fi_maxBYfi_min = 1+Iflux\n",
+ "FluxRatio=1+(Iflux) #Flux raises by 10% for every step\n",
+ "# eqn : fimax/fi_min = (V-Imax*R2)/(V-*Imin*R1)\n",
+ "from sympy import symbols, solve\n",
+ "Is=V/Raw \n",
+ "M=Imax-Is \n",
+ "for i in range(1,5):\n",
+ " \n",
+ " if((abs(M)+M)==0):\n",
+ " c=i #Number of steps + 1\n",
+ " R=symbols('R') #Variable Resitance\n",
+ " X=((V-(Imax*Raw))/(V-(Imin*R)))-FluxRatio #Polynomial To Find The Next Resistance\n",
+ " Rs =solve(X, R)[0] #Total Next Resistance\n",
+ " Rg=Rs-Raw #Resistance of the ith Step\n",
+ " print \"Resistance of %d step = %0.2f ohm\"%(i,Rg)\n",
+ " Raw=Rs \n",
+ " Is=V/Raw \n",
+ " M=Imax-Is \n",
+ "print \"Reqired steps = %d\" %i"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Resistance of 1 step = 1.04 ohm\n",
+ "Resistance of 2 step = 1.26 ohm"
+ ]
+ },
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "\n",
+ "Resistance of 3 step = 1.52 ohm"
+ ]
+ },
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "\n",
+ "Resistance of 4 step = 1.85 ohm"
+ ]
+ },
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "\n",
+ "Reqired steps = 4\n"
+ ]
+ }
+ ],
+ "prompt_number": 16
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Ex17 : Page 390"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "from numpy import array\n",
+ "#To detemine the characteristics for tapping of 30 percent of the turns\n",
+ "\n",
+ "I=array([50,100,150,200,250]) #Current\n",
+ "N1=array([73.5,48,41,37,35]) #Speed\n",
+ "Ft1=array([131,457,810,1163,1525]) #Tractive Effort in Kg\n",
+ "Fl=70/100 #Effective Tapping of the Turns (30% reduction)\n",
+ "\n",
+ "#Consider flux corresponding to 250A as 100%, that is for 35 Kmph\n",
+ "\n",
+ "Flux=(35*100)/N1 #Flux Percent for Current Value\n",
+ "\n",
+ "#Reduction by 30% of turns is same as reducing the Ampere Turns by 30% which is same as reducing the Current by 30%\n",
+ "\n",
+ "RI=Fl*I #Reduced Current\n",
+ "RFlux=array([32,57,74,83,90]) #Reduced flux determined From the Graph of %Flux and Current in the TextBook\n",
+ "\n",
+ "N2=(N1*Flux)/RFlux #Speed for the new case\n",
+ "\n",
+ "#Tractive Effort is directly proportional to the product of flux and current\n",
+ "\n",
+ "Ft2=RFlux*Ft1/Flux #Tractive Effort of the Second Case\n",
+ "\n",
+ "print 'The Current in Amperes:' \n",
+ "for i in I:\n",
+ " print i,'\\t',\n",
+ "print ''\n",
+ "print '\\nThe Speed in Kmph:' \n",
+ "for n2 in N2:\n",
+ " print '%0.2f'%n2,'\\t',\n",
+ "print ''\n",
+ "print '\\nThe Tractive Effort in Kg :'\n",
+ "for ft2 in Ft2:\n",
+ " print '%0.1f'%ft2,'\\t',"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "The Current in Amperes:\n",
+ "50 \t100 \t150 \t200 \t250 \t\n",
+ "\n",
+ "The Speed in Kmph:\n",
+ "109.38 \t61.40 \t47.30 \t42.17 \t38.89 \t\n",
+ "\n",
+ "The Tractive Effort in Kg :\n",
+ "88.0 \t357.2 \t702.2 \t1020.4 \t1372.5 \t"
+ ]
+ }
+ ],
+ "prompt_number": 17
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Ex18 : Page 400"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#To determine the power fed into the supply system\n",
+ "\n",
+ "W=200 \n",
+ "RI=10/100 #Rotational Intertia\n",
+ "Eff=75/100 #Effeciency of Conversion\n",
+ "G=2 \n",
+ "V1=60 \n",
+ "V2=20 \n",
+ "D=4000 #Distance covered during the speed change in m\n",
+ "r=40 \n",
+ "We=(1+RI)*W \n",
+ "\n",
+ "Ftb=W*((98.1*G)-r) #Tractive Effort during Retardation\n",
+ "\n",
+ "KE=0.01072*(We/W)*200*((V1**2)-(V2**2))/1000 #K.E(in kWhr) Available due to change in speed\n",
+ "\n",
+ "EquiEE=Ftb*D/(3600*1000) #Equivalent Electrical Energy\n",
+ "\n",
+ "TE=KE+EquiEE #Total Energy Regenarated\n",
+ "\n",
+ "ERS=Eff*TE #Energy Returned to the Supply\n",
+ "\n",
+ "B=((V1**2)-(V2**2))/(2*D*3600) #Retardation\n",
+ "Tb=V1-V2/B #time taken during retardation\n",
+ "\n",
+ "PRS=ERS*3600/Tb #Power Returned due to Retardation\n",
+ "\n",
+ "#If there is no change in speed, Net Reactive force is Tractive Effort due to retardation\n",
+ "\n",
+ "Vm=V1 #Maximum Speed \n",
+ "\n",
+ "#Power that Can be fed into the system\n",
+ "PFS=0.278*Ftb*Vm/1000 #In Kilowatts\n",
+ "\n",
+ "APFS=Eff*PFS #Actual Power Fed Back into the supply system\n",
+ "\n",
+ "print 'The Power Fed Back into the supply system is %0.1f kW'%APFS "
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "The Power Fed Back into the supply system is 390.8 kW\n"
+ ]
+ }
+ ],
+ "prompt_number": 18
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Ex19 : Page 401"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "from __future__ import division\n",
+ "from math import pi\n",
+ "from numpy import array, arange\n",
+ "#To determine the value of resistance to be connected in the motor circuit\n",
+ "#Page 411\n",
+ "N1=600; #Intial Speed\n",
+ "E1=array([252,522,750,900,951]); # Voltages At 600 RPM\n",
+ "Ia=array([20,40,60,80,100]); # Field Current\n",
+ "N2=400; #Changed Speed\n",
+ "E2=E1*(N2/N1); # Voltages at 400 RPM\n",
+ "T=350;\n",
+ "Raw = 0.05; #Armature and Winding Resistance\n",
+ "print 'Field Current in A:\\n'\n",
+ "for ia in Ia:\n",
+ " print ia,'\\t',\n",
+ "print '\\n'\n",
+ "print 'The Respective Voltages at 400 rpm (V):\\n'\n",
+ "\n",
+ "for e2 in E2:\n",
+ " print e2,'\\t',\n",
+ "print ''\n",
+ "\n",
+ "P=E2*Ia #To find the value of E and Ia for the Required Speed\n",
+ "\n",
+ "PI=2*pi*N2*T/60 #Power Input\n",
+ "i=0\n",
+ "for p in P:\n",
+ " i+=1\n",
+ " X = p-PI\n",
+ " \n",
+ " if (X)<0:\n",
+ " L = i-1\n",
+ " H = i \n",
+ " else:\n",
+ " continue\n",
+ "\n",
+ "Ip=Ia[H]-Ia[L] #To find the Current Period\n",
+ "Im=Ia[L] #Starting Value of Current in the Particular Portion of the Curve\n",
+ "\n",
+ "I=Im+(((PI-P[L])/(P[H]-P[L]))*Ip) #Current Required for 400 rpm\n",
+ "R=PI/(I**2) #Total Resistance required in the circuit\n",
+ "Re=R-Raw #External Resistance\n",
+ "\n",
+ "print '\\n\\nThe External Circuit that needs to connected in the motor circuit to limit the speed to 400 rpm is %0.1f Ohm\\n'%Re"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Field Current in A:\n",
+ "\n",
+ "20 \t40 \t60 \t80 \t100 \t\n",
+ "\n",
+ "The Respective Voltages at 400 rpm (V):\n",
+ "\n",
+ "168.0 \t348.0 \t500.0 \t600.0 \t634.0 \t\n",
+ "\n",
+ "\n",
+ "The External Circuit that needs to connected in the motor circuit to limit the speed to 400 rpm is 8.7 Ohm\n",
+ "\n"
+ ]
+ }
+ ],
+ "prompt_number": 19
+ }
+ ],
+ "metadata": {}
+ }
+ ]
+} \ No newline at end of file
diff --git a/Generation_Distribution_and_Utilization_of_Electrical_Energy_by_C._L._Wadhwa/ch8.ipynb b/Generation_Distribution_and_Utilization_of_Electrical_Energy_by_C._L._Wadhwa/ch8.ipynb
new file mode 100644
index 00000000..b1dab324
--- /dev/null
+++ b/Generation_Distribution_and_Utilization_of_Electrical_Energy_by_C._L._Wadhwa/ch8.ipynb
@@ -0,0 +1,227 @@
+{
+ "metadata": {
+ "name": "",
+ "signature": "sha256:46df055e646d729a3837ea45446150181236a3289c1bbdcf20fad08469e4abf1"
+ },
+ "nbformat": 3,
+ "nbformat_minor": 0,
+ "worksheets": [
+ {
+ "cells": [
+ {
+ "cell_type": "heading",
+ "level": 1,
+ "metadata": {},
+ "source": [
+ "Chapter8, Electrolytic Processes"
+ ]
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Ex1 : Page 414"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "from __future__ import division\n",
+ "#To determine the quantity of current\n",
+ "\n",
+ "#Parameters of the Copper Plating\n",
+ "TSA=0.3716 #Total Surface Area \n",
+ "t=0.0254*(10**-3) #Thickness of the plating\n",
+ "density=8.883*(10**3) #Density of Copper\n",
+ "\n",
+ "W=TSA*t*density*1000 #Weight of copper deposited in gms\n",
+ "ECEcu=0.329 #Electrochemical Equivalent of copper in gm per coulomb\n",
+ "C=W*1000/ECEcu #Quantity of Current required.\n",
+ "\n",
+ "F=96500 #One Farad Charge\n",
+ "\n",
+ "Q=C/F #Quantity of Current in Faradays\n",
+ "\n",
+ "print 'The Quantity of Current Required is %0.3f F'%Q"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "The Quantity of Current Required is 2.641 F\n"
+ ]
+ }
+ ],
+ "prompt_number": 1
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Ex2 : Page 420"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#To detemine the Electrochemical Equivalent of Silver\n",
+ "\n",
+ "I=20 #Current Passed\n",
+ "W=26.84 #amount of silver deposited in gms\n",
+ "t=20*60 #Time Period in seconds\n",
+ "\n",
+ "TC=I*t #Total Charge in the given time period\n",
+ "\n",
+ "ECEAg=W*1000/TC #Electrochemical Equivalent of Silver\n",
+ "\n",
+ "print 'The Electrochemical Equivalent of Silver is %0.3f mg/C'%ECEAg "
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "The Electrochemical Equivalent of Silver is 1.118 mg/C\n"
+ ]
+ }
+ ],
+ "prompt_number": 2
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Ex3 : Page 420"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#To Determine the Annual output of copper\n",
+ "\n",
+ "I=2000 #Current Passed\n",
+ "NW=52 #Number of weeks in a Year\n",
+ "T=100*3600 #Number of seconds per week\n",
+ "TC=NW*T*I #Total Charge supplied all over the year.\n",
+ "ECu=31.8 #Equivalent Weight of Copper in grams\n",
+ "F=96500 #One Farad of Charge\n",
+ "\n",
+ "# 1 F of charge gives 31.8 gms of copper\n",
+ "\n",
+ "W=(TC/F)*ECu/(1000*1000) #Weight of copper in tonnes\n",
+ "\n",
+ "print 'The Annual Output of Copper is %0.1f Tonnes'%W "
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "The Annual Output of Copper is 12.3 Tonnes\n"
+ ]
+ }
+ ],
+ "prompt_number": 3
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Ex4 : Page 420"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#To Calculate the Energy usedd in producing chemical action developed in an electrolytic cell\n",
+ "\n",
+ "T=15/60 #Time Period of Operation in Hours\n",
+ "I=100 #Current in Amperes\n",
+ "V=15 #Potential Difference\n",
+ "R=0.05 #Resistance of Solution\n",
+ "\n",
+ "NetEP=V-(I*R) #Net Electrode Potential\n",
+ "\n",
+ "#Energy Equation, E = VIt.\n",
+ "E=NetEP*I*T/1000 # Energy in KiloWatts\n",
+ "print 'The Energy used in producing the chemical action developed in an electrolytic Cell for 15 mins is %g kWhr'%E"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "The Energy used in producing the chemical action developed in an electrolytic Cell for 15 mins is 0.25 kWhr\n"
+ ]
+ }
+ ],
+ "prompt_number": 4
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Ex5 : Page 420"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#To determine the weights of Nickel and Silver Deposited\n",
+ "\n",
+ "F=96500 #One Farad of Charge\n",
+ "#Equivalent Weights of the Following metals\n",
+ "EWAg= 108 #silver\n",
+ "EWNi= 58.6/2 #Nickel\n",
+ "\n",
+ "I=20 #Current Passed\n",
+ "T=1*60*60 #Time for which the current is passed\n",
+ "TC=T*I #Total Charge produced\n",
+ "\n",
+ "#One Equivalent of Metal requires 1 F of charge\n",
+ "\n",
+ "Q=TC/F # Total Charge in Farad\n",
+ "\n",
+ "#Amount of metal deposited\n",
+ "WAg=Q*EWAg #Silver\n",
+ "WNi=Q*EWNi #Nickel\n",
+ "\n",
+ "print 'The Weight of Nickel And Silver deposited by 20A for an hour is %0.2f gm and %0.2f gm respectively.'%(WNi,WAg)"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "The Weight of Nickel And Silver deposited by 20A for an hour is 21.86 gm and 80.58 gm respectively.\n"
+ ]
+ }
+ ],
+ "prompt_number": 5
+ }
+ ],
+ "metadata": {}
+ }
+ ]
+} \ No newline at end of file
diff --git a/Generation_Distribution_and_Utilization_of_Electrical_Energy_by_C._L._Wadhwa/screenshots/Ch6Output_Voltage.png b/Generation_Distribution_and_Utilization_of_Electrical_Energy_by_C._L._Wadhwa/screenshots/Ch6Output_Voltage.png
new file mode 100644
index 00000000..898f9bdb
--- /dev/null
+++ b/Generation_Distribution_and_Utilization_of_Electrical_Energy_by_C._L._Wadhwa/screenshots/Ch6Output_Voltage.png
Binary files differ
diff --git a/Generation_Distribution_and_Utilization_of_Electrical_Energy_by_C._L._Wadhwa/screenshots/Ch7(Acceleration_and_Coasting_Period).png b/Generation_Distribution_and_Utilization_of_Electrical_Energy_by_C._L._Wadhwa/screenshots/Ch7(Acceleration_and_Coasting_Period).png
new file mode 100644
index 00000000..c804867c
--- /dev/null
+++ b/Generation_Distribution_and_Utilization_of_Electrical_Energy_by_C._L._Wadhwa/screenshots/Ch7(Acceleration_and_Coasting_Period).png
Binary files differ
diff --git a/Generation_Distribution_and_Utilization_of_Electrical_Energy_by_C._L._Wadhwa/screenshots/Ch7time_taken_by_the_train.png b/Generation_Distribution_and_Utilization_of_Electrical_Energy_by_C._L._Wadhwa/screenshots/Ch7time_taken_by_the_train.png
new file mode 100644
index 00000000..998869eb
--- /dev/null
+++ b/Generation_Distribution_and_Utilization_of_Electrical_Energy_by_C._L._Wadhwa/screenshots/Ch7time_taken_by_the_train.png
Binary files differ