diff options
author | Trupti Kini | 2015-12-10 23:30:17 +0600 |
---|---|---|
committer | Trupti Kini | 2015-12-10 23:30:17 +0600 |
commit | 57cd788699e63eb029c2dda15f64512629df2a95 (patch) | |
tree | b1dec8c68d539088b7c932b5fce89b4ad58c5baf | |
parent | 1419af8555c4727e6c444c4a24e2770e17908cd6 (diff) | |
download | Python-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
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 Binary files differnew file mode 100644 index 00000000..898f9bdb --- /dev/null +++ b/Generation_Distribution_and_Utilization_of_Electrical_Energy_by_C._L._Wadhwa/screenshots/Ch6Output_Voltage.png 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 Binary files differnew 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 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 Binary files differnew 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 |