diff options
author | Trupti Kini | 2016-10-18 23:30:51 +0600 |
---|---|---|
committer | Trupti Kini | 2016-10-18 23:30:51 +0600 |
commit | d48793ee01ec73f621ebf034f2eda6c86dcdcfef (patch) | |
tree | 0aa862b9532dca821cf00885de93b6445180e0d4 | |
parent | b207f3afc298f7284d423d16469b6a12c84fb9f9 (diff) | |
download | Python-Textbook-Companions-d48793ee01ec73f621ebf034f2eda6c86dcdcfef.tar.gz Python-Textbook-Companions-d48793ee01ec73f621ebf034f2eda6c86dcdcfef.tar.bz2 Python-Textbook-Companions-d48793ee01ec73f621ebf034f2eda6c86dcdcfef.zip |
Added(A)/Deleted(D) following books
A Basic_mechanical_engineering_by_Basant_Agrawal_,_C.M_Agrawal/Chapter_10_Properties_Of__9OtCJTM.ipynb
A Basic_mechanical_engineering_by_Basant_Agrawal_,_C.M_Agrawal/Chapter_11_Steam_Boilers_ZbPMcer.ipynb
A Basic_mechanical_engineering_by_Basant_Agrawal_,_C.M_Agrawal/Chapter_13_Steam_Engines_93BIP5u.ipynb
A Basic_mechanical_engineering_by_Basant_Agrawal_,_C.M_Agrawal/Chapter_14_Air_Standard_C_Wu44kME.ipynb
A Basic_mechanical_engineering_by_Basant_Agrawal_,_C.M_Agrawal/Chapter_2_Properties_Of_M_CMataUP.ipynb
A Basic_mechanical_engineering_by_Basant_Agrawal_,_C.M_Agrawal/Chapter_5_Metrology_tKHsuep.ipynb
A Basic_mechanical_engineering_by_Basant_Agrawal_,_C.M_Agrawal/Chapter_7_Fluid_Mechanics_xkevzFX.ipynb
A Basic_mechanical_engineering_by_Basant_Agrawal_,_C.M_Agrawal/Chapter_9__Laws_Of_Thermo_bIsIgqq.ipynb
A Basic_mechanical_engineering_by_Basant_Agrawal_,_C.M_Agrawal/screenshots/chapter10.png
A Basic_mechanical_engineering_by_Basant_Agrawal_,_C.M_Agrawal/screenshots/chapter14.png
A Basic_mechanical_engineering_by_Basant_Agrawal_,_C.M_Agrawal/screenshots/chapter5.png
A Digital_Communications_by_S._Haykin/Chapter1_bmaHHM8.ipynb
A Digital_Communications_by_S._Haykin/Chapter2_XLwGLkV.ipynb
A Digital_Communications_by_S._Haykin/Chapter3_JoJ2mAG.ipynb
A Digital_Communications_by_S._Haykin/Chapter4_D4b1XOQ.ipynb
A Digital_Communications_by_S._Haykin/Chapter5_dSjZdtS.ipynb
A Digital_Communications_by_S._Haykin/Chapter6_zB6BWD2.ipynb
A Digital_Communications_by_S._Haykin/Chapter7_iOFdfcy.ipynb
A Digital_Communications_by_S._Haykin/Chapter8_ffLFErg.ipynb
A Digital_Communications_by_S._Haykin/Chapter9_4roMWPw.ipynb
A Digital_Communications_by_S._Haykin/screenshots/Ch-6_RaisedCosineSpectrum_NizDJ8d.png
A Digital_Communications_by_S._Haykin/screenshots/Ch6_powerSpectralDensities_9tUd56q.png
A Digital_Communications_by_S._Haykin/screenshots/ch6_sinc_pilse_snbi7FJ.png
A Electrical_Machines_-_I_by_M._Verma_And_V._Ahuja/README.txt
A Principle_of_Communication_Engineering_by_A._Singh_and_A._K._Chhabra/Chapter10_8mim6PA.ipynb
A Principle_of_Communication_Engineering_by_A._Singh_and_A._K._Chhabra/Chapter11_NAIDtL1.ipynb
A Principle_of_Communication_Engineering_by_A._Singh_and_A._K._Chhabra/Chapter15_F19vfPd.ipynb
A Principle_of_Communication_Engineering_by_A._Singh_and_A._K._Chhabra/Chapter1_fAOC2QW.ipynb
A Principle_of_Communication_Engineering_by_A._Singh_and_A._K._Chhabra/Chapter2_NaNiwP4.ipynb
A Principle_of_Communication_Engineering_by_A._Singh_and_A._K._Chhabra/Chapter3_xiZnYrP.ipynb
A Principle_of_Communication_Engineering_by_A._Singh_and_A._K._Chhabra/Chapter5_b3JDxfA.ipynb
A Principle_of_Communication_Engineering_by_A._Singh_and_A._K._Chhabra/Chapter6_hxtqyXd.ipynb
A Principle_of_Communication_Engineering_by_A._Singh_and_A._K._Chhabra/Chapter7_QXJtmam.ipynb
A Principle_of_Communication_Engineering_by_A._Singh_and_A._K._Chhabra/Chapter8_ojfkyD4.ipynb
A Principle_of_Communication_Engineering_by_A._Singh_and_A._K._Chhabra/Chapter9_1ERbfbH.ipynb
A Principle_of_Communication_Engineering_by_A._Singh_and_A._K._Chhabra/screenshots/ctftch1_EJ1lbz2.png
A Principle_of_Communication_Engineering_by_A._Singh_and_A._K._Chhabra/screenshots/fourier_Kpk6AU4.png
A Principle_of_Communication_Engineering_by_A._Singh_and_A._K._Chhabra/screenshots/modulat_XbQVmZD.png
A Semiconductor_circuit_approximations_by_A.P._Malvino/README.txt
A Strength_Of_Materials_by_S_S_Bhavikatti/chapter_02.ipynb
A Strength_Of_Materials_by_S_S_Bhavikatti/chapter_03.ipynb
A Strength_Of_Materials_by_S_S_Bhavikatti/chapter_04.ipynb
A Strength_Of_Materials_by_S_S_Bhavikatti/chapter_05.ipynb
A Strength_Of_Materials_by_S_S_Bhavikatti/chapter_06.ipynb
A Strength_Of_Materials_by_S_S_Bhavikatti/chapter_07.ipynb
A Strength_Of_Materials_by_S_S_Bhavikatti/chapter_08.ipynb
A Strength_Of_Materials_by_S_S_Bhavikatti/chapter_09.ipynb
A Strength_Of_Materials_by_S_S_Bhavikatti/chapter_10.ipynb
A Strength_Of_Materials_by_S_S_Bhavikatti/screenshots/BMD_QksEdap.PNG
A Strength_Of_Materials_by_S_S_Bhavikatti/screenshots/SFD_1_mX9fTGM.png
A Strength_Of_Materials_by_S_S_Bhavikatti/screenshots/SFD_2_dBvOQ58.png
51 files changed, 24070 insertions, 0 deletions
diff --git a/Basic_mechanical_engineering_by_Basant_Agrawal_,_C.M_Agrawal/Chapter_10_Properties_Of__9OtCJTM.ipynb b/Basic_mechanical_engineering_by_Basant_Agrawal_,_C.M_Agrawal/Chapter_10_Properties_Of__9OtCJTM.ipynb new file mode 100644 index 00000000..627fc0f4 --- /dev/null +++ b/Basic_mechanical_engineering_by_Basant_Agrawal_,_C.M_Agrawal/Chapter_10_Properties_Of__9OtCJTM.ipynb @@ -0,0 +1,629 @@ +{ + "metadata": { + "name": "Chapter 10 Properties Of Steam" + }, + "nbformat": 3, + "nbformat_minor": 0, + "worksheets": [ + { + "cells": [ + { + "cell_type": "heading", + "level": 1, + "metadata": {}, + "source": "\nChapter 10 Properties Of Steam" + }, + { + "cell_type": "heading", + "level": 2, + "metadata": {}, + "source": "Example 1 Page No:183" + }, + { + "cell_type": "code", + "collapsed": false, + "input": "#Input data\nmw=15 #Water steam\nms=185 #Dry steam\n\n#Calculation\nx=((ms)/(ms+mw))*100 #Dryness fuction of steam in %\n\n#Output\nprint(\"Dryness fuction of steam=\",x,\"%\")\n", + "language": "python", + "metadata": {}, + "outputs": [ + { + "output_type": "stream", + "stream": "stdout", + "text": "Dryness fuction of steam= 92.5 %\n" + } + ], + "prompt_number": 66 + }, + { + "cell_type": "heading", + "level": 2, + "metadata": {}, + "source": "Example 2 Page No:183" + }, + { + "cell_type": "code", + "collapsed": false, + "input": "#Input data\nsps=150 #saturation pressure of the steam in degree celsius\n\n#Output\nP=4.76 #From steam table\nprint(\"saturation pressure=\",P,\"bar\")\n\n\n\n", + "language": "python", + "metadata": {}, + "outputs": [ + { + "output_type": "stream", + "stream": "stdout", + "text": "saturation pressure= 4.76 bar\n" + } + ], + "prompt_number": 3 + }, + { + "cell_type": "heading", + "level": 2, + "metadata": {}, + "source": "Example 3 Page No:184" + }, + { + "cell_type": "code", + "collapsed": false, + "input": "#Input data\nP1=28 #Absolute pressure in bar\nP2=5.5 #Absolute pressure in MPa\nP3=77 #Absolute pressure in mm of Hg\n\n#Calcutation\nts1=230.05 #Saturation temperature in degree celsius\nts2=269.93 #Saturation temperature in degree celsius\nts3=45.83 #Saturation temperature in degree celsius\n\n#Output\nprint(\"Saturation temperature= \",ts1,\"degree celsius\")\nprint(\"Saturation temperature= \",ts2,\"degree celsius\")\nprint(\"Saturation temperature= \",ts3,\"degree celsius\")", + "language": "python", + "metadata": {}, + "outputs": [ + { + "output_type": "stream", + "stream": "stdout", + "text": "Saturation temperature= 230.05 degree celsius\nSaturation temperature= 269.93 degree celsius\nSaturation temperature= 45.83 degree celsius\n" + } + ], + "prompt_number": 13 + }, + { + "cell_type": "heading", + "level": 2, + "metadata": {}, + "source": "Example 4 Page No:185" + }, + { + "cell_type": "code", + "collapsed": false, + "input": "#Input data\nP=15 #Absolute pressure in bar\n#From steam table (pressure basis at 15 bar)\nts=198.3 #In degree celsius \nhf=844.7 #In KJ/Kg\nhfg=1945.2 #In KJ/Kg\nhg=2789.9 #In KJ/Kg\ntsup=300 #In degree celsius \nx=0.8\nCps=2.3\nhg=2789.9\n\n#Calculation\nh1=hf+x*hfg #Enthalpy of wet steam in KJ/KG\nh=hg #Enthalpy of dry and saturated steam in KJ/KG\nh2=hg+Cps*(tsup-ts)#Enthalpy of superheated steam in KJ/KG\n\n\n#Output\nprint(\"Enthalpy of wet steam= \",h1,\"KJ/Kg\")\nprint(\"Enthalpy of dry and saturated steam= \",h,\"KJ/KG\")\nprint(\"Enthalpy of superheated steam= \",h2,\"KJ/Kg\")", + "language": "python", + "metadata": {}, + "outputs": [ + { + "output_type": "stream", + "stream": "stdout", + "text": "Enthalpy of wet steam= 2400.86 KJ/Kg\nEnthalpy of dry and saturated steam= 2789.9 KJ/KG\nEnthalpy of superheated steam= 3023.81 KJ/Kg\n" + } + ], + "prompt_number": 12 + }, + { + "cell_type": "heading", + "level": 2, + "metadata": {}, + "source": "Example 5 Page No:186" + }, + { + "cell_type": "code", + "collapsed": false, + "input": "#Input data\nti=30 #Temperature in degree celsius\nm=2 #Water in Kg\npf=8 #Steam at 8 bar\nx=0.9 #Water to dry \ntb=30\n#From steam table at 30 degree celsius\nhf=125.7\n#From steam table at 8 bar\nts=170.4 #In degree celsius \nhf1=720.9 #In KJ/KG\nhfg=2046.6 #In KJ/KG\nhg=2767.5 #In KJ/KG\n\n#Calculation\nh=hf1+(x*hfg) #Final Enthalpy of the steam in KJ/Kg\nQha=m*(h-hf) #Quantity of the heat in KJ/Kg\n\n#Output\nprint(\"Final Enthalpy of the steam= \",h,\"KJ/Kg\")\nprint(\"Quantity of the heat= \",Qha,\"KJ/Kg\")\n\n\n", + "language": "python", + "metadata": {}, + "outputs": [ + { + "output_type": "stream", + "stream": "stdout", + "text": "Final Enthalpy of the steam= 2562.84 KJ/Kg\nQuantity of the heat= 4874.280000000001 KJ/Kg\n" + } + ], + "prompt_number": 14 + }, + { + "cell_type": "heading", + "level": 2, + "metadata": {}, + "source": "Example 6 Page No:186" + }, + { + "cell_type": "code", + "collapsed": false, + "input": "#Input data\nIT=25 #Initial temperature\nm=5 #Heat required to generate steam in kg\npf=10 #Final pressure in bar\ntsup=250 #Water temperature\n#From steam table (temp basis)at 25degree celsius \n#and at 10 bar(pressure basis)\nhf=104.8 #In KJ/KG\nh1=104.8 #In KJ/KG\nts=179.9 #In degree celsius \nhf1=792.6 #In KJ/KG\nhfg=2013.6 #In KJ/KG\nhg=2776.2 #In KJ/KG\nCps=2.1\n\n#Calculation\nh=hg+Cps*(tsup-ts) #Enthalpy of superheated steam in KJ/Kg\nH=m*(h-h1) #Quantity of heat added in KJ/Kg\n\n#Output\nprint(\"Enthalpy of superheated steam= \",h,\"KJ/Kg\")\nprint(\"Quantity of heat added= \",round(H,),\"KJ/Kg\")\n\n\n", + "language": "python", + "metadata": {}, + "outputs": [ + { + "output_type": "stream", + "stream": "stdout", + "text": "Enthalpy of superheated steam= 2923.41 KJ/Kg\nQuantity of heat added= 14093 KJ/Kg\n" + } + ], + "prompt_number": 15 + }, + { + "cell_type": "heading", + "level": 2, + "metadata": {}, + "source": "Example 7 Page No:188" + }, + { + "cell_type": "code", + "collapsed": false, + "input": "#Input data\nP=15 #Absolute pressure in bar\n#From steam table (pressure basis at 15 bar)\nts=198.3+273 #In degree celsius\nvg=0.1317 #In m**3/Kg \nvf=0.001154 #In m**3/Kg \nx=0.8 \nTsup=300+273 #Degree celsius\n\n\n#Calculation\nv=(1-x)*vf+x*vg #Volume of wet steam in m**3/Kg\nvg=0.1317 #Dry and saturated steam in m**3/Kg\nvsup=vg*(Tsup/ts) #Volume of superheated steam m**3/Kg \n\n\n#Output\nprint(\"Volume of wet steam= \",round(v,4),\"m**3/Kg\")\nprint(\"Dry and Saturated Steam= \",vg,\"m**3/Kg\") \nprint(\"volume of superheated steam= \",round(vsup,4),\"m**3/Kg\")\n \n\n\n\n", + "language": "python", + "metadata": {}, + "outputs": [ + { + "output_type": "stream", + "stream": "stdout", + "text": "Volume of wet steam= 0.1056 m**3/Kg\nDry and Saturated Steam= 0.1317 m**3/Kg\nvolume of superheated steam= 0.1601 m**3/Kg\n" + } + ], + "prompt_number": 17 + }, + { + "cell_type": "heading", + "level": 2, + "metadata": {}, + "source": "Example 8 Page No:188" + }, + { + "cell_type": "code", + "collapsed": false, + "input": "#Input data\nP=25 #Absolute pressure\nts=223.9 #Volume\n#Frome steam table (pressure basis at 25 bar) \nvf=0.001197 #In m**3/Kg \nvg=0.0799 #In m**3/Kg \nv=8 #In m**3/Kg \n\n\n#Calculation\nm=v/vg #Mass of steam in Kg \n\n#Output\nprint(\"Mass of steam= \",round(m,3),\"Kg\")", + "language": "python", + "metadata": {}, + "outputs": [ + { + "output_type": "stream", + "stream": "stdout", + "text": "Mass of steam= 100.125 Kg\n" + } + ], + "prompt_number": 21 + }, + { + "cell_type": "heading", + "level": 2, + "metadata": {}, + "source": "Example 9 Page No:190" + }, + { + "cell_type": "code", + "collapsed": false, + "input": "#Input data\nP=12*10**5 #Absolute pressure\n#From steam table (pressure basis at 12 bar)\nts=188+273 #In degree celsius\nvf=0.001139 #In m**3/Kg \nvg=0.1632 #In m**3/Kg \nhf=798.4 #In KJ/Kg\nhfg=1984.3 #In KJ/Kg\nhg=2782.7 #In KJ/Kg\nx=0.94\nCps=2.3\ntsup=350+273 #In degree celsius\n\n#Calcuation\nh=hf+x*hfg #Enthalpy of wet steam in KJ/Kg\nv=(1-x)*vf+x*vg #Volume of wet steam m**3/Kg\nu=h-((P*v)/10**3) #Internal Energy in KJ/Kg\nhg=2782.7 #Enthalpy of dry & saturated steam in KJ/Kg\nv1=vg #Volume of dry & saturated steam m**3/Kg\nu1=hg-((P*vg)/10**3) #Internal Energy in KJ/Kg \nh1=hg+Cps*(tsup-ts) #Enthalpy of superheated steam in KJ/Kg\nvsup=vg*(tsup/ts) #Volume of superheated steam in m**3/Kg\nu2=h1-((P*v)/10**3) #Internal Energy in KJ/Kg\n\n\n#Output\nprint(\"Enthalpy of wet steam= \",h,\"KJ/Kg\")\nprint(\"Volume of wet steam= \",round(v,5),\"m**3/Kg\")\nprint(\"Internal Energy= \",round(u,2),\"KJ/Kg\")\nprint(\"Enthalpy of dry & saturated steam= \",hg,\"KJ/Kg\")\nprint(\"Volume of dry & saturated steam= \",v1,\"m**3/Kg\")\nprint(\"Internal Energy= \",u1,\"KJ/Kg\")\nprint(\"Enthalpy of superheated steam= \",round(h1,1),\"KJ/Kg\")\nprint(\"Volume of superheated steam= \",round(vsup,3),\"m**3/Kg\")\nprint(\"Internal Energy= \",round(u2,1),\"KJ/Kg\")\n\n", + "language": "python", + "metadata": {}, + "outputs": [ + { + "output_type": "stream", + "stream": "stdout", + "text": "Enthalpy of wet steam= 2663.642 KJ/Kg\nVolume of wet steam= 0.15348 m**3/Kg\nInternal Energy= 2479.47 KJ/Kg\nEnthalpy of dry & saturated steam= 2782.7 KJ/Kg\nVolume of dry & saturated steam= 0.1632 m**3/Kg\nInternal Energy= 2586.8599999999997 KJ/Kg\nEnthalpy of superheated steam= 3155.3 KJ/Kg\nVolume of superheated steam= 0.221 m**3/Kg\nInternal Energy= 2971.1 KJ/Kg\n" + } + ], + "prompt_number": 12 + }, + { + "cell_type": "heading", + "level": 2, + "metadata": {}, + "source": "Example 10 Page No:191" + }, + { + "cell_type": "code", + "collapsed": false, + "input": "#Input data\nP1=10*10**5 #Pressure of steam in bar\ntsup1=300+273 #Temperature of steam n degree celsius \nP2=1.4*10**5 #Internal energy of steam\nx2=0.8 #Dryness fraction\nCps=2.3\n#from steam table properties of saturated steam (temp basis) \n#at 25 degree celsius and at 10 bar(pressure basis)\nts1=179.9+273\nvf=0.001127 #In m**3/Kg \nvg=0.1943 #In m**3/Kg \nhf=762.6 #In KJ/Kg\nhfg=2013.6 #In KJ/Kg\nhg1=2776.2 #In KJ/Kg\n#at 1.4 bar\nts=109.3 #In degree celsius\nvf1=0.001051 #In m**3/Kg \nvg1=1.2363 #In m**3/Kg \nhf1=458.4 #In KJ/Kg\nhfg1=2231.9 #In KJ/Kg\nhg=2690.3 #In KJ/Kg\n\n#calculation\nh1=hg1+Cps*(tsup1-ts1) #Enthalpy of superheated steam in KJ/Kg\nv1=vg*(tsup1/ts1) #Volume of superheated steam in m**3/Kg\nu1=h1-((P1*v1)/10**3) #Internal energy in KJ/Kg\nh2=hf1+x2*hfg1 #Enthalpy of wet steam in KJ/Kg\nVwet=(1-x2)*vf1+x2*vg1 #Volume of wet steam in m**3/Kg\nu2=h2-((P2*Vwet)/10**3) #Internal energy in KJ/Kg\nDeltaU=u1-u2 #Change of Internal energy in KJ/Kg\n\n\n#Output\nprint(\"Enthalpy of superheated steam= \",h1,\"KJ/Kg\")\nprint(\"Volume of superheated steam= \",round(v1,4),\"m**3/Kg\")\nprint(\"Internal energy= \",round(u1,1),\"KJ/Kg\")\nprint(\"Enthalpy of wet steam= \",h2,\"KJ/Kg\")\nprint(\"Volume of wet steam= \",round(Vwet,5),\"m**3/Kg\")\nprint(\"Internal energy= \",round(u2,1),\"KJ/Kg\")\nprint(\"Change of Internal energy= \",round(DeltaU,1),\"KJ/Kg\")\n", + "language": "python", + "metadata": {}, + "outputs": [ + { + "output_type": "stream", + "stream": "stdout", + "text": "Enthalpy of superheated steam= 3052.43 KJ/Kg\nVolume of superheated steam= 0.2458 m**3/Kg\nInternal energy= 2806.6 KJ/Kg\nEnthalpy of wet steam= 2243.92 KJ/Kg\nVolume of wet steam= 0.98925 m**3/Kg\nInternal energy= 2105.4 KJ/Kg\nChange of Internal energy= 701.2 KJ/Kg\n" + } + ], + "prompt_number": 23 + }, + { + "cell_type": "heading", + "level": 2, + "metadata": {}, + "source": "Example 11 Page No:193" + }, + { + "cell_type": "code", + "collapsed": false, + "input": "#Input data\nimport math\nP=15 #Absolute pressure\n#From steam table (pressure basis at 15 bar)\nts=198.3+273 #In degree celsius \nSf=2.3145 #In KJ/KgK\nSfg=4.1261 #In KJ/KgK\nSg=6.4406 #In KJ/KgK\ntsup=300+273\nCps=2.3\nx=0.8\n\n#calculation\nS=Sf+x*Sfg #Entropy of wet steam in KJ/Kg\nS1=Sg #Entropy of superheated steam in KJ/Kg\nS2=Sg+Cps*(math.log(tsup/ts)) #Entropy of superheated steam in KJ/Kg\n\n#Output\nprint(\"Entropy of wet steam\",round(S,3),\" KJ/Kg\")\nprint(\"Entropy of dry and saturated steam\",S1,\" KJ/Kg\")\nprint(\"Entropy of superheated steam\",round(S2,2),\" KJ/Kg\")\n\n", + "language": "python", + "metadata": {}, + "outputs": [ + { + "output_type": "stream", + "stream": "stdout", + "text": "Entropy of wet steam 5.615 KJ/Kg\nEntropy of dry and saturated steam 6.4406 KJ/Kg\nEntropy of superheated steam 6.89 KJ/Kg\n" + } + ], + "prompt_number": 26 + }, + { + "cell_type": "heading", + "level": 2, + "metadata": {}, + "source": "Example 12 Page No:194" + }, + { + "cell_type": "code", + "collapsed": false, + "input": "#Input data\n#Input data\nimport math\nm=1.5 #Entropy of the steam\nP=10*10**5 #Absolute pressure in bar\n#From steam table properties of saturated steam \n#(pressure basis)at 10 bar\nts=179.9+273 #Indegree celsius\nvf=0.001127 #In m**3/Kg\nvg=0.1943 #In m**3/Kg\nhf=762.6 #In KJ/Kg\nhfg=2013.6 #In KJ/Kg\nhg=2776.2 #In KJ/Kg\nSf=2.1382 #In KJ/KgK\nSfg=4.4446 #In KJ/KgK\nSg=6.5828 #In KJ/Kg\nCps=2.3\ntsup=250+273\n\n\n#Calculation\n#(1)Enthalpy of dry and saturated steam \n\nh=hg #Enthalpy of dry and saturated steam \nEODS=hg*m #Enthalpy of 1.5Kg of dry and saturated steam \nv=vg #volume of dry and saturated steam\nu=h-((P*v)/10**3) #Internal Energy\nIES=u*m #Internal energy of the steam\ns=6.5858 #Entropy of dry and saturated steam\nEODSS=s*m #Entropy of 1.5Kg dry and saturated steam\nx=0.75\n#(2)Enthalpy of wet steam\nh1=hf+x*hfg #Enthalpy of wet steam\nEWS=h1*m #Enthalpy of1.5Kg of wet steam\nVwet=x*vg #Volume of steam\nu1=h1-((P*Vwet)/10**3) #Internal energy \nIES1=u1*m #Internal energy of1.5Kg of the steam\ns1=Sf+x*Sfg #Entropy of wet steam\nEWS1=s1*m #Entropy of1.5Kg of wet steam\n\n#(3)Enthalpy of superheated steam\nh2=hg+Cps*(tsup-ts) #Enthalpy of superheated steam\nEOSHS=h2*m #Enthalpy of 1.5Kg of superheated steam\nVsup=vg*(tsup/ts) #Volume of superheated steam\nu2=h2-((P*Vsup)/10**3) #Internal energy\nIES2=u2*m #Internal energy of 1.5Kg of the steam\ns2=Sg+Cps*(math.log(tsup/ts))#Entropy of superheated steam\nEOSHS1=s2*m #Entropy of 1.5Kg of superheated steam\n\n#Output\nprint(\"Enthalpy of dry and saturated steam= \",h,\"KJ/Kg\")\nprint(\"Enthalpy of 1.5Kg of dry and saturated steam= \",round(EODS,2),\"KJ\")\nprint(\"volume of dry and saturated steam= \",v,\"m**3/kg\")\nprint(\"Internal Energy= \",round(u,2),\"KJ/Kg\")\nprint(\"Internal energy of the steam= \",round(IES,2),\"kJ\")\nprint(\"Entropy of dry and saturated steam = \",s,\"KJ/KgK\")\nprint(\"Entropy of 1.5kg of dry and saturated steam= \",EODSS,\"KJ/K\")\n\nprint(\"Enthalpy of wet steam= \",round(h1,2),\"KJ/Kg\")\nprint(\"Enthalpy of1.5Kg of wet steam= \",EWS,\"KJ\")\nprint(\"Volume of steam= \",Vwet,\"m**3/Kg\")\nprint(\"Internal energy= \",u1,\"KJ/Kg\")\nprint(\"Internal energy of1.5Kg of the steam= \",round(IES1,2),\"KJ\")\nprint(\"Entropy of wet steam= \",round(s1,2),\"KJ/KgK\")\nprint(\"Entropy of 1.5Kg of wet steam= \",EWS1,\"KJ/K\")\n\nprint(\"Enthalpy of superheated steam= \",h2,\"KJ/Kg\")\nprint(\"Enthalpy of 1.5Kg of superheated steam= \",round(EOSHS,1),\"KJ\")\nprint(\"Volume of superheated steam= \",round(Vsup,4),\"m**3/Kg\")\nprint(\"Internal energy= \",round(u2,4),\"\")\nprint(\"Internal energy of1.5Kg of the steam= \",round(IES2,1),\"KJ\")\nprint(\"Entropy of superheated steam= \",round(s2,4),\"KJ/KgK\")\nprint(\"Entropy of 1.5Kg of superheated steam= \",round(EOSHS1,2),\"KJ/K\")\n", + "language": "python", + "metadata": {}, + "outputs": [ + { + "output_type": "stream", + "stream": "stdout", + "text": "Enthalpy of dry and saturated steam= 2776.2 KJ/Kg\nEnthalpy of 1.5Kg of dry and saturated steam= 4164.3 KJ\nvolume of dry and saturated steam= 0.1943 m**3/kg\nInternal Energy= 2581.9 KJ/Kg\nInternal energy of the steam= 3872.85 kJ\nEntropy of dry and saturated steam = 6.5858 KJ/KgK\nEntropy of 1.5kg of dry and saturated steam= 9.8787 KJ/K\nEnthalpy of wet steam= 2272.8 KJ/Kg\nEnthalpy of1.5Kg of wet steam= 3409.2 KJ\nVolume of steam= 0.145725 m**3/Kg\nInternal energy= 2127.075 KJ/Kg\nInternal energy of1.5Kg of the steam= 3190.61 KJ\nEntropy of wet steam= 5.47 KJ/KgK\nEntropy of 1.5Kg of wet steam= 8.207475 KJ/K\nEnthalpy of superheated steam= 2937.43 KJ/Kg\nEnthalpy of 1.5Kg of superheated steam= 4406.1 KJ\nVolume of superheated steam= 0.2244 m**3/Kg\ninternal energy= 2713.0562 \nInternal energy of1.5Kg of the steam= 4069.6 KJ\nEntropy of superheated steam= 6.9138 KJ/KgK\nEntropy of 1.5Kg of superheated steam= 10.37 KJ/K\n" + } + ], + "prompt_number": 31 + }, + { + "cell_type": "heading", + "level": 2, + "metadata": {}, + "source": "Example 13 Page No:196" + }, + { + "cell_type": "code", + "collapsed": false, + "input": "#Input data\nV=0.04 #Volume of vessel in m**3 \nx=1\nt=250+273 #Saturated steam temp in degree celsius\nmw=9 #Mass of liquid in Kg\n#From steam table(temp basis,at t=250)\nP=39.78*10**5 #in bar\nVf=0.001251 #In m**3/kg\nVg=0.05004 #In m**3/Kg\nhf=1085.7 #KJ/Kg\nhfg=2800.4 #KJ/Kg\nhg=1714.7 #KJ/Kg\n\n#Calculation\nVw=mw*Vf #Volume occupied by water in m**3\nVs=V-Vw #Volume of waterin m**3\nms=Vs/Vg #Volume of dry and saturated steam in Kg \nm=mw+ms #Total mass of steam in Kg\nx=ms/(ms+mw) #Dryness fraction of steam \nVwet=(1-x)*Vf+x*Vg #Specific volume of steam in m**3/Kg\nh=hf+x*hfg #Enthalpy of wet steam in KJ/Kg\nEOWS=h*m #Enthalpy of 9.574 Kg of wet steam KJ\nu=h-((P*Vwet)/10**3) #Internal Energy in KJ/Kg\nIEOS=u*m #Internal energy of 9.574 Kg of steam in KJ\n\n\n#Output\nprint(\"Volume occupied by water= \",round(Vw,5),\"m**3\")\nprint(\"Volume of water= \",round(Vs,5),\"m**3\")\nprint(\"Volume of dry and saturated steam= \",round(ms,3),\"Kg \")\nprint(\"Total mass of steam= \",round(m,3),\"Kg\")\nprint(\"Dryness fraction of steam= \",round(x,2),)\nprint(\"Specific volume of steam= \",round(Vwet,6),\" m**3/Kg\")\nprint(\"Enthalpy of wet steam= \",round(h,1),\"KJ/Kg\")\nprint(\"Enthalpy of 9.574 Kg of wet steam= \",round(EOWS,),\"KJ\")\nprint(\"Internal Energy= \",round(u,1),\"KJ/Kg\")\nprint(\"Internal energy of 9.574 Kg of steam= \",round(IEOS),\"KJ\")\n\n", + "language": "python", + "metadata": {}, + "outputs": [ + { + "output_type": "stream", + "stream": "stdout", + "text": "Volume occupied by water= 0.01126 m**3\nVolume of water= 0.02874 m**3\nVolume of dry and saturated steam= 0.574 Kg \nTotal mass of steam= 9.574 Kg\nDryness fraction of steam= 0.06\nSpecific volume of steam= 0.004178 m**3/Kg\nEnthalpy of wet steam= 1253.7 KJ/Kg\nEnthalpy of 9.574 Kg of wet steam= 12003 KJ\nInternal Energy= 1237.1 KJ/Kg\nInternal energy of 9.574 Kg of steam= 11844 KJ\n" + } + ], + "prompt_number": 40 + }, + { + "cell_type": "heading", + "level": 2, + "metadata": {}, + "source": "Example 14 Page No:197" + }, + { + "cell_type": "code", + "collapsed": false, + "input": "#Input Data\nP=7 #Absolute pressure in bar\nt=200 #Absolute temperature\nts=165 #In degree celsius from steam table\n\n#Calculation\ndos=t-ts #Degree of superheat in degree celcius\n\n#Output\nprint(\"Degree of superheat= \",dos,\"degree celcius\")", + "language": "python", + "metadata": {}, + "outputs": [ + { + "output_type": "stream", + "stream": "stdout", + "text": "Degree of superheat= 35 degree celcius\n" + } + ], + "prompt_number": 42 + }, + { + "cell_type": "heading", + "level": 2, + "metadata": {}, + "source": "Example 15 Page No:197" + }, + { + "cell_type": "code", + "collapsed": false, + "input": "#Input data\nP=15 #Absolute pressure in bar\n#From steam table (pressure basis at 15 bar)\nh=1950 #In KJ/Kg\nts=198.3 #In degreee celsius\nhf=844.7 #In KJ/Kg\nhfg=1945.2 #In KJ/Kg\nhg=2789.9 #In KJ/Kg\n\n#calculation\nx=((h-hf)/hfg) #Enthalpy of wet steam\n\n#Output\nprint(\"Enthalpy of wet steam= \",round(x,3),\"\")\n", + "language": "python", + "metadata": {}, + "outputs": [ + { + "output_type": "stream", + "stream": "stdout", + "text": "Enthalpy of wet steam= 0.568 \n" + } + ], + "prompt_number": 44 + }, + { + "cell_type": "heading", + "level": 2, + "metadata": {}, + "source": "Example 16 Page No:197" + }, + { + "cell_type": "code", + "collapsed": false, + "input": "#Input data\nP=15 #Absolute pressure in bar\n#From steam table (pressure basis at 15 bar)\nh=3250 #In KJ/Kg\nts=198.3 #In degree celsius \nhf=844.7 #In KJ/Kg\nhfg=1945.2 #In KJ/Kg\nhg=2789.9 #In KJ/Kg\nCps=2.3\n\n#Calculation\ntsup=(h-hg+(Cps*ts))/2.3 #Enthalpy of superheated steam in degree celsius\ndos=tsup-ts #Degree of superheated in degree celsius\n\n#Output\nprint(\"Enthalpy of superheated steam= \",round(tsup,2),\"degree celcius\")\nprint(\"Degree of superheated= \",dos,\"degree celcius\")", + "language": "python", + "metadata": {}, + "outputs": [ + { + "output_type": "stream", + "stream": "stdout", + "text": "Enthalpy of superheated steam= 398.34 degree celcius\nDegree of superheated= 200.0434782608695 degree celcius\n" + } + ], + "prompt_number": 46 + }, + { + "cell_type": "heading", + "level": 2, + "metadata": {}, + "source": "Example 17 Page No:198" + }, + { + "cell_type": "code", + "collapsed": false, + "input": "#Input data\nP=7 #Absolute pressure in bar\nv=0.2 #Specific volume in m**3/Kg\n#from steam table (pressure basis at 7 bar) \nts=165 #In degree celsius\nvf=0.001108 #In m**3/Kg\nvg=0.2727 #In m**3/Kg\n\n#calculation\nx=v/vg #Volume of steam dryness fraction\n\n#Output\nprint(\"Volume of steam dryness fraction= \",round(x,3),)", + "language": "python", + "metadata": {}, + "outputs": [ + { + "output_type": "stream", + "stream": "stdout", + "text": "Volume of steam dryness fraction= 0.733\n" + } + ], + "prompt_number": 64 + }, + { + "cell_type": "heading", + "level": 2, + "metadata": {}, + "source": "Example 18 Page No:198" + }, + { + "cell_type": "code", + "collapsed": false, + "input": "#Input data\nP=7 #Absolute pressure in bar\nv=0.3 #Specific volume in m**3/Kg\n#From steam table (pressure basis at 7 bar)\nts=165+273 #In degree celsius\nvf=0.001108 #In m**3/Kg\nvg=0.2727 #In m**3/Kg\n\n#Calculation\n#v=vg*tsup/ts\ntsup=((v/vg)*ts)-273 #Temp of superheated steam in degree celsius\nDOS=tsup+273-ts #Degree of superheated in degree celsius\n\n#Output\nprint(\"Temp of superheated steam= \",round(tsup,2),\"degree celsius\")\nprint(\"Degree of superheated= \",round(DOS,2),\"degree celsius\")\n", + "language": "python", + "metadata": {}, + "outputs": [ + { + "output_type": "stream", + "stream": "stdout", + "text": "Temp of superheated steam= 208.85 degree celsius\nDegree of superheated= 43.85 degree celsius\n" + } + ], + "prompt_number": 57 + }, + { + "cell_type": "heading", + "level": 2, + "metadata": {}, + "source": "Example 19 Page No:198" + }, + { + "cell_type": "code", + "collapsed": false, + "input": "#Input data\nm=2 #steam of vessel in Kg\nV=0.1598 #volume of vessel in M**3\nP=25 #Absolute pressure of vessel in bar\n\n#Calculation\nv=V/m #Quality of steam in m**3/Kg\n\n#Output\nprint(\"Quality of steam\",v,\" m**3/Kg\")", + "language": "python", + "metadata": {}, + "outputs": [ + { + "output_type": "stream", + "stream": "stdout", + "text": "Quality of steam 0.0799 m**3/Kg\n" + } + ], + "prompt_number": 3 + }, + { + "cell_type": "heading", + "level": 2, + "metadata": {}, + "source": "Example 20 Page No:200" + }, + { + "cell_type": "code", + "collapsed": false, + "input": "#Input data\nP=10*10**2 #Absolute pressure in bar\nx1=0.9 #Dryness enters\ntsup2=300+273 #Temperature in degree celsius \n#From steam table at 10 bar\nts=179.9+273 #In degree celsius\nVg=0.1943 #In m**3/Kg\nhf=762.6 #In KJ/Kg\nhfg=2013.6 #InK/Kg\nhg=2776.2 #In KJ/Kg\n\n#Calculation\nh1=hf+x1*hfg #Initial enthalpy of steam in KJ/Kg\nV1=x1*Vg #Initial specific volume of steam\nu1=h1-P*V1 #Initial internal energy of steam in KJ/Kg\nh2=hg+Cps*(tsup2-ts) #Final enthalpy of steam in KJ/Kg\nV2=Vg*(tsup2/ts) #Final specific volume of steam in m**3/Kg\nu2=h2-P*V2 #Final internal energy of steam in KJ/K\ndeltah=h2-h1 #Heat gained by steam in KJ/Kg\ndeltaU=(u2-u1) #Change in internal energy in KJ/Kg\n\n#Output\nprint(\"Initial enthalpy of steam= \",h1,\"KJ/Kg\")\nprint(\"Initial specific volume of steam= \",V1,)\nprint(\"Initial internal energy of steam= \",round(u1,2),\"KJ/Kg\")\nprint(\"Final enthalpy of steam= \",h2,\"KJ/Kg\")\nprint(\"Final specific volume of steam= \",round(V2,4),\"m**3/Kg\")\nprint(\"Final internal energy of steam= \",round(u2,3),\"KJ/Kg\")\nprint(\"Heat gained by steam= \",round(deltah,2),\"KJ/Kg\")\nprint(\"Change in internal energy= \",round(deltaU,2),\"KJ/Kg\")\n\n\n", + "language": "python", + "metadata": {}, + "outputs": [ + { + "output_type": "stream", + "stream": "stdout", + "text": "Initial enthalpy of steam= 2574.84 KJ/Kg\nInitial specific volume of steam= 0.17487\nInitial internal energy of steam= 2399.97 KJ/Kg\nFinal enthalpy of steam= 3052.43 KJ/Kg\nFinal specific volume of steam= 0.2458 m**3/Kg\nFinal internal energy of steam= 2806.606 KJ/Kg\nHeat gained by steam= 477.59 KJ/Kg\nChange in internal energy= 406.64 KJ/Kg\n" + } + ], + "prompt_number": 58 + }, + { + "cell_type": "heading", + "level": 2, + "metadata": {}, + "source": "Example 21 Page No:201" + }, + { + "cell_type": "code", + "collapsed": false, + "input": "#Input data\nm=4 #Steam in Kg\nP=13 #Absolute pressure in bar\ntsup1=450 #Absolute temp in degree celsius \ndeltaH=2.8*10**3 #loses in MJ\n#from steam table at 13 bar\nts=191.6 #In degree celsius\nVg=0.1511 #In m**3/Kg\nhf=814.7 #In m**3/Kg\nhfg=1970.7 #In KJ/Kg\nhg=2785.4 #In KJ/Kg\n\n#Calculation\nh1=hg+Cps*(tsup1-ts) #Initial enthalpy of steam in KJ/Kg\nDeltah=deltaH/m #Change in enthalpy/unit mass in KJ/Kg\nh2=h1-Deltah #Final enthalpy of steam in KJ/Kg\nx2=(h2-hf)/hfg #wet & dryness fraction\n\n#Output\nprint(\"Initial enthalpy of steam= \",round(h1,2),\" KJ/Kg\")\nprint(\"Change in enthalpy/unit mass= \",Deltah,\"KJ/Kg\")\nprint(\"Final enthalpy of steam= \",round(h2,2),\"KJ/Kg\")\nprint(\"wet & dryness fraction= \",round(x2,4),)", + "language": "python", + "metadata": {}, + "outputs": [ + { + "output_type": "stream", + "stream": "stdout", + "text": "Initial enthalpy of steam= 3379.72 KJ/Kg\nChange in enthalpy/unit mass= 700.0 KJ/Kg\nFinal enthalpy of steam= 2679.72 KJ/Kg\nwet & dryness fraction= 0.9464\n" + } + ], + "prompt_number": 63 + }, + { + "cell_type": "heading", + "level": 2, + "metadata": {}, + "source": "Example 22 Page No:202" + }, + { + "cell_type": "code", + "collapsed": false, + "input": "#Input data\nm=2 #Steam in Kg\nx=0.7 #Initial dryness \nP=15 #Constant pressure in bar\n#V2=2V1\n#from steam table properties of\n#saturated steam(pressure basis) at 15 bar\nTs=198.3+273 #In degree celsius \nVg=0.1317 #In m**3/Kg\nhf=844.7 #In KJ/Kg\nhfg=1945.2 #In KJ/Kg\nhg=2789.9 #In KJ/Kg\nCps=2.3\n\n#Calculation\nV1=x*Vg #Initial specific volume of steam in m**3/Kg\nV2=2*V1 #Final specific volume of steam in m**3/Kg\nTsup=(V2/Vg)*Ts #Steam is superheated in degree celsius \nFSS=Tsup-Ts #Degree of superheated in degree celsius\nh1=hf+x*hfg #Initial enthalpy of steam in KJ/Kg\nh2=hg+Cps*(Tsup-Ts) #Final enthalpy of steam in KJ/Kg \nQ=(h2-h1)*m #Heat transferred in the process in KJ\nW1=P*(m*V2-m*V1) #Work transferred in the process in KJ\n\n#Output\nprint(\"Initial specific volume of steam= \",round(V1,4),\"m**3/Kg\")\nprint(\"Final specific volume of steam= \",round(V2,4),\"m**3/Kg\")\nprint(\"Steam is superheated= \",round(Tsup,2),\"K\")\nprint(\"Degree of superheated= \",round(FSS,2),\"degree celsius\")\nprint(\"Initial enthalpy of steam= \",h1,\"KJ/Kg\")\nprint(\"Final enthalpy of steam= \",round(h2,2),\"KJ/Kg\")\nprint(\"Heat transferred in the process= \",round(Q,2),\"KJ\")\nprint(\"Work transferred in the process= \",round(W1,3),\"KJ\")\n\n", + "language": "python", + "metadata": {}, + "outputs": [ + { + "output_type": "stream", + "stream": "stdout", + "text": "Initial specific volume of steam= 0.0922 m**3/Kg\nFinal specific volume of steam= 0.1844 m**3/Kg\nSteam is superheated= 659.82 K\nDegree of superheated= 188.52 degree celsius\nInitial enthalpy of steam= 2206.34 KJ/Kg\nFinal enthalpy of steam= 3223.5 KJ/Kg\nHeat transferred in the process= 2034.31 KJ\nWork transferred in the process= 2.766 KJ\n" + } + ], + "prompt_number": 6 + }, + { + "cell_type": "heading", + "level": 2, + "metadata": {}, + "source": "Example 23 Page No:203" + }, + { + "cell_type": "code", + "collapsed": false, + "input": "#Input data\nms=1000 #Steam in Kg/h \nP=16 #Absolute pressure in bar\nx2=0.9 #Steam is dry \nt1=30+273 #temperature in degree celsius\ntsup=380 #tmperature rised in degree celsius \n \n#from steam table(pressure basis at 16 bar)\nh1=125.7 #in KJ/Kg\nts=201.4 #In degree celsius\nhf=858.5 #in kJ/Kg\nhfg=1933.2 #in kJ/Kg\nhg=2791.7 #in kJ/Kg\nCps=2.3\n\n#Calculation \nh2=hf+x2*hfg #Final enthalpy of wet steam in KJ/Kg \nQ1=(ms*(h2-h1))*10**-3 #Constant pressure process in KJ/h \nh3=hg+Cps*(tsup-ts) #Final enthalpy of superheated steam in KJ/g\nQ2=(ms*(h3-h2))*10**-3 #Suprheated steam in KJ/h\n\n#Output\nprint(\"Final enthalpy of wet steam= \",round(h2,1),\"KJ/Kg \")\nprint(\"Constant pressure process= \",round(Q1,1),\" KJ/h \")\nprint(\"Final enthalpy of superheated steam= \",round(h3,1),\" KJ/g\")\nprint(\"Suprheated steam= \",round(Q2,1),\"KJ/h\")", + "language": "python", + "metadata": {}, + "outputs": [ + { + "output_type": "stream", + "stream": "stdout", + "text": "Final enthalpy of wet steam= 2598.4 KJ/Kg \nConstant pressure process= 2472.7 KJ/h \nFinal enthalpy of superheated steam= 3202.5 KJ/g\nSuprheated steam= 604.1 KJ/h\n" + } + ], + "prompt_number": 2 + }, + { + "cell_type": "heading", + "level": 2, + "metadata": {}, + "source": "Example 24 Page No:204" + }, + { + "cell_type": "code", + "collapsed": false, + "input": "#Input data\nFB=15 #First boiler in bar\nSB=15 #Second boiler in bar\ntsup1=300 #Temperature of the steam in degree celsius\ntsup2=200 #Temperature of the steam in degree celsius\n#From steam table (pressure basis at 15 bar )\nts=198.3 #In degree celsius \nhf=844.7 #In KJ/Kg\nhfg=1945.2 #In KJ/Kg\nhg=2789.9 #In KJ/I\n\n\n#Calculation\nh1=hg+Cps*(tsup1-ts) #Enthalpy of steam of first boiler in KJ/Kg \nh3=hg+Cps*(tsup2-ts) #Enthalpy of steam in steam main in KJ/Kg\nh2=2*h3-h1 #Energy balance in KJ/Kg\nx2=(h2-hf)/hfg #Enthalpy of wet steam\n\n#OUTPUT\nprint(\"Enthalpy of steam of first boiler= \",round(h1,1),\"KJ/Kg\")\nprint(\"Enthalpy of steam in steam main= \",round(h3,1),\"KJ/Kg\")\nprint(\"Energy balance= \",round(h2,1),\"KJ/Kg\")\nprint(\"Enthalpy of wet steam= \",round(x2,3),)\n", + "language": "python", + "metadata": {}, + "outputs": [ + { + "output_type": "stream", + "stream": "stdout", + "text": "Enthalpy of steam of first boiler= 3023.8 KJ/Kg\nEnthalpy of steam in steam main= 2793.8 KJ/Kg\nEnergy balance= 2563.8 KJ/Kg\nEnthalpy of wet steam= 0.884\n" + } + ], + "prompt_number": 3 + }, + { + "cell_type": "heading", + "level": 2, + "metadata": {}, + "source": "Example 25 Page No:205" + }, + { + "cell_type": "code", + "collapsed": false, + "input": "#Input data\nV=0.35 #Capacity of vessel in m**3\nP1=10*10**2 #Absolute pressure in bar\ntsup1=250+273 #Absolute temperature in degree celsius \nP2=2.5*102 #Absolute pressure in the vessel fall in bar\n\n#From steam table (pressure basis at 10 bar)\nts1=179.9+273 #In degree celsius \nVg1=0.1943 #In m**3/Kg\nhf1=762.6 #In KJ/Kg\nhfg1=2013.6 #In KJ/Kg\nhg1=2776.2 #In KJ/Kg\n\n#From steam table(pressure basis at 2.5 bar)\nV2=0.2247 #In m**3/Kg\nts2=127.4 #In degree celsius\nVg2=0.7184 #In m**3/Kg\nhf2=535.3 #In KJ/Kg\nhfg2=2181.0 #In KJ/Kg\nhg2=2716.4 #In KJ/Kg\n\n#Calculation\nV1=Vg1*(tsup1/ts1) #Initial specific volume of steam in m**3/Kg\nm=V/V1 #Initial mass of steam in Kg\nx2=V2/Vg2 #Final condition of wet steam\nh1=hg1+Cps*(tsup1-ts1) #Initial enthalpy of steam in KJ/Kg\nu1=h1-P1*V1 #Initial internal energy of steam in KJ/Kg\nh2=hf2+x2*hfg2 #Final enthalpy of steam in KJ/Kg\nu2=h2-P2*V2 #Final internal energy of steam in KJ/Kg\ndeltaU=(u2-u1)*m #Change in internal energy in KJ\n\n#Output\nprint(\"Initial specific volume of steam= \",round(V1,4),\"m**3/Kg\")\nprint(\"Initial mass of steam= \",round(m,4),\"Kg\")\nprint(\"Final condition of wet steam= \",round(x2,4),)\nprint(\"Initial enthalpy of steam= \",h1,\"KJ/Kg\")\nprint(\"Initial internal energy of steam= \",round(u1,2),\"KJ/Kg\")\nprint(\"Final enthalpy of steam= \",round(h2,1),\" KJ/Kg\")\nprint(\"Final internal energy of steam= \",round(u2,3),\"KJ/Kg\")\nprint(\"Change in internal energy= \",round(deltaU,1),\"KJ\")\n\n", + "language": "python", + "metadata": {}, + "outputs": [ + { + "output_type": "stream", + "stream": "stdout", + "text": "Initial specific volume of steam= 0.2244 m**3/Kg\nInitial mass of steam= 1.5599 Kg\nFinal condition of wet steam= 0.3128\nInitial enthalpy of steam= 2937.43 KJ/Kg\nInitial internal energy of steam= 2713.06 KJ/Kg\nFinal enthalpy of steam= 1217.5 KJ/Kg\nFinal internal energy of steam= 1160.171 KJ/Kg\nChange in internal energy= -2422.3 KJ\n" + } + ], + "prompt_number": 5 + }, + { + "cell_type": "heading", + "level": 2, + "metadata": {}, + "source": "Example 26 Page No:207" + }, + { + "cell_type": "code", + "collapsed": false, + "input": "#Input data\nm=1.5 #Saturated steam in Kg\nx1=1 \nx2=0.6 \nP1=5*10**5 #Absolute pressure in bar\n#From steam table at pressure basis 5 bar\nhg1=2747.5 #In KJ/Kg\nVg1=0.3747 #In m**3/Kg\nV1=0.3747 #In m**3/Kg\nV2=0.3747 #In m**3/Kg\n#From steam table at Vg2 is 2.9 bar\nP2=2.9*10**5 #Absolute pressure in bar \nt2=132.4 #In degree celsius \nhf2=556.5 #In KJ/Kg\nhfg2=2166.6 #In KJ/Kg\n\n\n \n#Calculation\nVg2=V2/x2 #Constant volume process in m**3/Kg\nu1=hg1-((P1*Vg1)/1000) #Initial internal energy in KJ/Kg\nu2=(hf2+x2*hfg2)-((P2*V2)/1000) #Final internal energy in KJ\ndeltaU=(u1-u2)*m #Heat supplied in KJ\n\n#Output\nprint(\"Constant volume process= \",round(Vg2,4),\"m**3/Kg\")\nprint(\"Initial internal energy= \",u1,\"KJ/Kg\")\nprint(\"Final internal energy= \",round(u2,1),\"KJ\")\nprint(\"Heat supplied= \",round(deltaU,2),\"KJ\")\n\n", + "language": "python", + "metadata": {}, + "outputs": [ + { + "output_type": "stream", + "stream": "stdout", + "text": "Constant volume process= 0.6245 m**3/Kg\nInitial internal energy= 2560.15 KJ/Kg\nFinal internal energy= 1747.8 KJ\nHeat supplied= 1218.53 KJ\n" + } + ], + "prompt_number": 7 + }, + { + "cell_type": "heading", + "level": 2, + "metadata": {}, + "source": "Example 27 Page No:208" + }, + { + "cell_type": "code", + "collapsed": false, + "input": "#Input data\nP1=20 #Initial steam in bar\nx1=0.95 #dryness throttled\nP2=1.2 #Absolute pressure in bar\n\n#From steam table (pressure basis at 20 bar)\nts=212.4 #In degree celsius\nhf=908.6 #In KJ/Kg\nhfg=1888.6 #In KJ/Kg\nhg=2797.2 #In KJ/Kg\n#From steam table (pressure basis at 1.2 bar)\nh2=h1 #In KJ/Kg\nts2=104.8 #In degree celsius\nhf2=439.3 #In KJ/Kg\nhfg2=2244.1 #In KJ/Kg\nhg2=2683.4 #In KJ/Kg\nCps=2.3\n\n\n#Calculation\nh1=hf+x1*hfg #Enthalpy of steam in KJ/Kg\ntsup2=((h1-hg2)/Cps)+ts2 #Enthalpy of wet steam in degree celsius\nDOS=tsup2-ts2 #Degree of superheat in degree celsius\n\n\n#Output\nprint(\"Enthalpy of steam= \",h1,\"KJ/Kg\")\nprint(\"Enthalpy of wet steam= \",round(tsup2,2),\"degree celsius\")\nprint(\"Degree of superheat= \",round(DOS,2),\"degree celsius\")", + "language": "python", + "metadata": {}, + "outputs": [ + { + "output_type": "stream", + "stream": "stdout", + "text": "Enthalpy of steam= 2702.77 KJ/Kg\nEnthalpy of wet steam= 113.22 degree celsius\nDegree of superheat= 8.42 degree celsius\n" + } + ], + "prompt_number": 9 + }, + { + "cell_type": "heading", + "level": 2, + "metadata": {}, + "source": "Example 28 Page No:209" + }, + { + "cell_type": "code", + "collapsed": false, + "input": "#Input data\nP1=12 #Throttled steam\nx1=0.96 #Dryness is brottled\nx2=1 #Constant enthalpy process\n#From steam table at12 bar\nts=188 #In degree celsius\nhf=798.4 #In KJ/Kg\nhfg=1984.3 #In KJ/Kg\nhg=2782.7 #In KJ/Kg\n\n\n#Calculation\nh1=hf+x1*hfg #Enthalpy of the steam in KJ/Kg \nh2=h1 #Enthalpy after throttling in KJ/Kg \n\n#Output\nprint(\"Enthalpy of the steam= \",round(h1,2),\"KJ/Kg \")\nprint(\"Enthalpy after throttlin= \",round(h2,2),\"KJ/Kg \")\n", + "language": "python", + "metadata": {}, + "outputs": [ + { + "output_type": "stream", + "stream": "stdout", + "text": "Enthalpy of the steam= 2703.33 KJ/Kg \nEnthalpy after throttlin= 2703.33 KJ/Kg \n" + } + ], + "prompt_number": 11 + }, + { + "cell_type": "heading", + "level": 2, + "metadata": {}, + "source": "Example 29 Page No:210" + }, + { + "cell_type": "code", + "collapsed": false, + "input": "#Input data\nimport math\nP1=15 #Initial steam in bar\ntsup1=250+273 #Temperature of steam in degree celsius\nP2=0.5 #Steam turbine in bar\n\n#From steam table at 15 bar\nts1=198.3+273 #In degree celsius \nhg1=2789.9 #In KJ/Kg\nsf1=2.3145 #In KJ/KgK\nsfg1=4.1261 #In KJ/KgK\nsg1=6.4406 #In KJ/KgK\n#From steam table at 0.5 bar\nts2=81.53 #In degree celsius \nsf2=1.0912 #In KJ/Kg\nsfg2=6.5035 #In KJ/Kg\nsg2=7.5947 #In KJ/Kg\nhf2=340.6\nCps=2.3\nhfg2=2646\n\n#Calculation\nS1=sg1+Cps*(math.log(tsup1/ts1)) #Entropy of superheated steam in KJ/KgK\nS2=S1 #Entropy after isentropic processes in KJ/KgK\nx2=(S2-sf2)/sfg2 #Enthalpy of wet steam \nh1=hg1+Cps*(tsup1-ts1) #Enthalpy of steam at 15 bar\nh2=hf2+x2*hfg2 #Enthalpy of wet steam at 0.5 bar\nWOT=h1-h2 #Work output of the turbine\n\n#OUTPUT\nprint(\"Entropy of superheated steam= \",round(S1,2),\"KJ/KgK\")\nprint(\"Entropy after isentropic processes= \",round(S2,2),\"KJ/KgK\")\nprint(\"Enthalpy of wet steam= \",round(x2,2),\"\")\nprint(\"Enthalpy of steam= \",h1,\"KJ/Kg\")\nprint(\"Enthalpy of wet steam= \",round(h2,2),\"KJ/Kg\")\nprint(\"Work output of the turbine= \",round(WOT,2),\"KJ/Kg\")\n\n\n", + "language": "python", + "metadata": {}, + "outputs": [ + { + "output_type": "stream", + "stream": "stdout", + "text": "Entropy of superheated steam= 6.68 KJ/KgK\nEntropy after isentropic processes= 6.68 KJ/KgK\nEnthalpy of wet steam= 0.86 \nEnthalpy of steam= 2908.81 KJ/Kg\nEnthalpy of wet steam= 2614.45 KJ/Kg\nwork output of the turbine= 294.36 KJ/Kg\n" + } + ], + "prompt_number": 22 + } + ], + "metadata": {} + } + ] +}
\ No newline at end of file diff --git a/Basic_mechanical_engineering_by_Basant_Agrawal_,_C.M_Agrawal/Chapter_11_Steam_Boilers_ZbPMcer.ipynb b/Basic_mechanical_engineering_by_Basant_Agrawal_,_C.M_Agrawal/Chapter_11_Steam_Boilers_ZbPMcer.ipynb new file mode 100644 index 00000000..5b8559d1 --- /dev/null +++ b/Basic_mechanical_engineering_by_Basant_Agrawal_,_C.M_Agrawal/Chapter_11_Steam_Boilers_ZbPMcer.ipynb @@ -0,0 +1,482 @@ +{ + "metadata": { + "name": "Chapter 11 Steam Boilers" + }, + "nbformat": 3, + "nbformat_minor": 0, + "worksheets": [ + { + "cells": [ + { + "cell_type": "heading", + "level": 1, + "metadata": {}, + "source": "Chapter 11 Steam Boilers" + }, + { + "cell_type": "heading", + "level": 2, + "metadata": {}, + "source": "Example 1 Page No:228" + }, + { + "cell_type": "code", + "collapsed": false, + "input": "#Input data\nms=5000 #Boiler produces wet steam in Kg/h\nx=0.95 #Dryness function\nP=10 #Operating pressure in bar\nmf=5500 #Bour in the furnace in Kg\nTw=40 #Feed water temp in degree celsius\n\n#calculation\n#from steam table\nhfw=167.45 #In KJ/Kg\nhf=762.61 #In KJ/Kg\nhfg=2031.6 #In KJ/Kg\nhs=(hf+x*hfg) #Enthalpy of wet stream in KJ/Kg\nme=ms/mf #Mass of evaporation\nE=((me*(hs-hfw))/(2257))*10 #Equivalent evaporation in Kg/Kg of coal\n\n#output\n\nprint(\"Enthalpy of wet stream=\",round(hs,2),\"KJ/Kg\")\nprint(\"Mass of evaporation=\",round(me,2),)\nprint(\"Equivalent evaporation=\",round(E,2),\"Kg/Kg of coal\")\n", + "language": "python", + "metadata": {}, + "outputs": [ + { + "output_type": "stream", + "stream": "stdout", + "text": "Enthalpy of wet stream= 2692.63 KJ/Kg\nMass of evaporation= 0.91\nEquivalent evaporation= 10.17 Kg/Kg of coal\n" + } + ], + "prompt_number": 5 + }, + { + "cell_type": "heading", + "level": 2, + "metadata": {}, + "source": "Example 2 Page No:229" + }, + { + "cell_type": "code", + "collapsed": false, + "input": "#Input data\np=14 #Boiler pressure in bar\nme=9 #Evaporates of water in Kg\nTw=35 #Feed water entering in degree celsius\nx=0.9 #Steam stop value\nCV=35000 #Calorific value of the coal\n\n#Calculation\n#From Steam Table\nhfw=146.56 #In KJ/Kg\nhf=830.07 #In KJ/Kg\nhfg=1957.7 #In KJ/Kg\nhs=hf+x*hfg #Enthalpy of wet stream in KJ/Kg\nE=((me*(hs-hfw))/2257) #Equivalent evaporation in Kg/Kg of coal\netaboiler=((me*(hs-hfw))/CV)*100#Boiler efficiency in %\n\n#Output\nprint(\"Enthalpy of wet stream=\",hs,\"KJ/Kg\")\nprint(\"Equivalent evaporation=\",round(E,2),\"Kg/Kg of coal\")\nprint(\"Boiler efficiency=\",round(etaboiler,2),\"%\")\n\n", + "language": "python", + "metadata": {}, + "outputs": [ + { + "output_type": "stream", + "stream": "stdout", + "text": "Enthalpy of wet stream= 2592.0 KJ/Kg\nEquivalent evaporation= 9.75 Kg/Kg of coal\nBoiler efficiency= 62.88 %\n" + } + ], + "prompt_number": 7 + }, + { + "cell_type": "heading", + "level": 2, + "metadata": {}, + "source": "Example 3 Page No:228" + }, + { + "cell_type": "code", + "collapsed": false, + "input": "#Input data\nms=2500 #Saturated steam per bour in Kg\nx=1 \nP=15 #Boiler pressure in bar\nTw=25 #Feed water entering in degree celsius \nmf=350 #Coal burnt in Kg/bour\nCV=32000 #Calorific value in Kj/Kg \n\n#calculation\n#steam table\nhfw=104.77 #In KJ/Kg\nhf=844.66 #In KJ/Kg\nhfg=1945.2 #In KJ/Kg\nhg=2789.9 #In KJ/Kg\nhs=2789.9 #Enthalpy of dry steam in KJ/Kg\nme=ms/mf #mass of evaporation \nE=((me*(hs-hfw))/2257) #Equivalent evaporation in Kg/Kg ofcoal\netaboiler=((me*(hs-hfw))/CV)*100 #Boiler efficiency in %\n\n#Output\nprint(\"mass of evaporation=\",round(me,3),)\nprint(\"Equivalent evaporation=\",round(E,2),\"Kg/Kg ofcoal\")\nprint(\"Boiler efficiency=\",round(etaboiler,2),\"%\")\n\n\n\n", + "language": "python", + "metadata": {}, + "outputs": [ + { + "output_type": "stream", + "stream": "stdout", + "text": "mass of evaporation= 7.143\nEquivalent evaporation= 8.5 Kg/Kg ofcoal\nBoiler efficiency= 59.94 %\n" + } + ], + "prompt_number": 14 + }, + { + "cell_type": "heading", + "level": 2, + "metadata": {}, + "source": "Example 4 Page No:231" + }, + { + "cell_type": "code", + "collapsed": false, + "input": "#Input data\nmf=500 #Boiler plant consumes of coal in Kg/h\nCV=32000 #Calorific value in Kj/Kg\nms=3200 #plant generates in Kg/h\nP=1.2 #Absolute pressure MN/m**2\nMN=12 \nTsup=300 #Absolute temperature in degree celsius\nTw=35 #Feed water temperature\nCps=2.3\n\n#calculation\nhfw=146.56 #In KJ/Kg\nTs=187.96 #In Degree celsius\nhf=798.43 #In KJ/Kg\nhfg=1984.3 #In KJ/Kg\nhg=2782.7 #In KJ/Kg\nhs=hg+Cps*(Tsup-Ts) #Enthalpy of superheated steam in KJ/Kg\nme=ms/mf #mass of evaporation \nE=((me*(hs-hfw))/2257) #Equivalent evaporation in Kg/Kg ofcoal\netaboiler=((me*(hs-hfw))/CV)*100#Boiler efficiency in %\n \n\n#Output\nprint(\"Enthalpy of superheated steam=\",round(hs,2),\"KJ/Kg\")\nprint(\"mass of evaporation=\",me,)\nprint(\"Equivalent evaporation=\",round(E,1),\"Kg/Kg ofcoal\")\nprint(\"Boiler efficiency\",round(etaboiler,2),\"%\")\n \n\n \n", + "language": "python", + "metadata": {}, + "outputs": [ + { + "output_type": "stream", + "stream": "stdout", + "text": "Enthalpy of superheated steam= 3040.39 KJ/Kg\nmass of evaporation= 6.4\nEquivalent evaporation= 8.2 Kg/Kg ofcoal\nBoiler efficiency 57.88 %\n" + } + ], + "prompt_number": 15 + }, + { + "cell_type": "heading", + "level": 2, + "metadata": {}, + "source": "Example 5 Page No:232" + }, + { + "cell_type": "code", + "collapsed": false, + "input": "#Input data\nms=5000 #Steam generted in Kg/h\nmf=700 #Coal burnt in Kg/h \nCV=31402 #Cv of coal in KJ/Kg\nx=0.92 #quality of steam\nP=1.2 #Boiler pressure in MPa\nTw=45 #Feed water temperature in degree celsius\n\n\n#calculation\nhfw=188.35 #In KJ/Kg\nhf=798.43 #In KJ/Kg\nhfg=1984.3 #In KJ/Kg\nhs=hf+x*hfg #Enthalpy of wet stream in KJ/Kg\nme=ms/mf #mass of evaporation \nE=((me*(hs-hfw))/2257) #Equivalent evaporation in Kg/Kg of coal\netaboiler=((me*(hs-hfw))/CV)*100 #Boiler efficiency in %\n\n\n\n#Output\nprint(\"Enthalpy of wet stream=\",round(hs,2),\"KJ/Kg\")\nprint(\"mass of evaporation=\",round(me,2),\"\")\nprint(\"Equivalent evaporation=\",round(E,1),\"Kg/Kg of coal\")\nprint(\"Boiler efficiency=\",round(etaboiler,2),\"%\")\n \n", + "language": "python", + "metadata": {}, + "outputs": [ + { + "output_type": "stream", + "stream": "stdout", + "text": "Enthalpy of wet stream= 2623.99 KJ/Kg\nmass of evaporation= 7.14 \nEquivalent evaporation= 7.7 Kg/Kg of coal\nBoiler efficiency= 55.4 %\n" + } + ], + "prompt_number": 18 + }, + { + "cell_type": "heading", + "level": 2, + "metadata": {}, + "source": "Example 6 Page No:233" + }, + { + "cell_type": "code", + "collapsed": false, + "input": "#Input data\nms=6000 #Boiler produce of steam Kg/h\nP=25 #Boiler pressure in bar\nTsup=350 #Boiler temperature in degree celsius\nTw=40 #Feed water temperature indegree celsius\nCV=42000 #Calorific value in Kj/Kg\netaboiler=75/100 #Expected thermal efficiency in %\n\n\n#Calculation\nhfw=167.45 #In KJ/Kg\nTs=223.94 #In degree celsius \nhf=961.96 #In KJ/Kg\nhfg=1839.0 #In KJ/Kg\nhg=2800.9 #In KJ/Kg\nCps=2.3\nhs=((hg)+(Cps)*(Tsup-Ts)) #Enthalpy of superheated steam KJ/Kg\nmf=((ms*(hs-hfw))/(CV*etaboiler)) #Boiler efficiency in %\nme=ms/mf #Equivalent mass of evaporation\nE=((me*(hs-hfw))/2257) #Equivalent evaporation in Kg/Kg of oil\n\n\n#Output\nprint(\"Enthalpy of superheated steam=\",hs,\"KJ/Kg\")\nprint(\"Boiler efficiency=\",round(mf,1),\"%\")\nprint(\"Equivalent mass of evaporation=\",round(me,3),)\nprint(\"Equivalent evaporation=\",round(E,2),\"Kg/Kg of oil\")\n\n", + "language": "python", + "metadata": {}, + "outputs": [ + { + "output_type": "stream", + "stream": "stdout", + "text": "Enthalpy of superheated steam= 3090.838 KJ/Kg\nBoiler efficiency= 556.8 %\nEquivalent mass of evaporation= 10.775\nEquivalent evaporation= 13.96 Kg/Kg of oil\n" + } + ], + "prompt_number": 22 + }, + { + "cell_type": "heading", + "level": 2, + "metadata": {}, + "source": "Example 7 Page No:234" + }, + { + "cell_type": "code", + "collapsed": false, + "input": "#Input data\nE=12 #Boiler found steam in Kg/Kg\nCV=35000 #Calorific value in KJ/Kg\nms=15000 #Boiler produces in Kg/h\nP=20 #Boiler pressure in bar\nTw=40 #Feed water in degree celsius\nmf=1800 #Fuel consumption\n\n\n#calculation\n#R=me(hs-hfw)\nhfw=167.45 #In KJ/Kg\nhg=2797.2 #In KJ/Kg\nTs=211.37 #In degree celsius\nCps=2.3\nR=E*2257 #Equivalent evaporation in KJ/Kg of coal\netaboiler=(R/CV)*100 #Boiler efficiency in %\nme=ms/mf #Equivalent mass evaporation in KJ/Kg of coal \nhs=(R/me)+hfw # In KJ/Kg\nTsup=((hs-hg)/Cps)+Ts #Enthalpy of superheated steam in degree celsius\n\n\n\n#Output\nprint(\"Equivalent evaporation=\",R,\"KJ/Kg of coal\")\nprint(\"Boiler efficiency=\",round(etaboiler,2),\"%\")\nprint(\"Equivalent mass evaporation=\",round(me,2),\"KJ/Kg of coal\")\nprint(\"hs=\",round(hs,2),\"KJ/Kg\")\nprint(\"Enthalpy of superheated steam=\",round(Tsup,2),\"degree celsius\")", + "language": "python", + "metadata": {}, + "outputs": [ + { + "output_type": "stream", + "stream": "stdout", + "text": "Equivalent evaporation= 27084 KJ/Kg of coal\nBoiler efficiency= 77.38 %\nEquivalent mass evaporation= 8.33 KJ/Kg of coal\nhs= 3417.53 KJ/Kg\nEnthalpy of superheated steam= 481.08 degree celsius\n" + } + ], + "prompt_number": 24 + }, + { + "cell_type": "heading", + "level": 2, + "metadata": {}, + "source": "Example 8 Page No:236" + }, + { + "cell_type": "code", + "collapsed": false, + "input": "#Input data\nms=6000 #Steam generated in Kg/h\nmf=700 #Coal burnt in Kg/h\nCV=31500 #Cv of coal in KJ/Kg\nx=0.92 #Dryness in fraction of steam\nP=12 #Boiler pressure in bar\nTsup=259 #Temperature of steam in degree celsius\nTw=45 #Hot well temperature in degree celsius\n\n#calculation\nhfw=188.35 #In KJ/Kg\nTs=187.96 #In degree celsius\nhf=798.43 #In KJ/Kg\nhfg=1984.3 #In KJ/Kg\nhg=2782.7 #In KJ/Kg\nCps=2.3 \nme=ms/mf #Equivalent mass evaporation\nhs=hf+x*hfg #Enthalpy of wet steam in KJ/Kg\nE=((me*(hs-hfw))/2257) #Equivalent evaporation in Kg/Kg of coal\nhs1=(hg+Cps*(Tsup-Ts)) #Enthalpy of superheated steam in KJ/Kg\nE1=((me*(hs1-hfw))/2257) #Equivalent evaporation(with superheater) in Kg/Kg of coal\netaboiler=((me*(hs-hfw))/CV)*100 #Boiler efficiency without superheater in %\netaboiler1=((me*(hs1-hfw))/CV)*100#Boiler efficiency with superheater in %\n\n\n#Output\nprint(\"Equivalent mass evaporation=\",round(me,2),)\nprint(\"Enthalpy of wet steam=\",hs,\"KJ/Kg\")\nprint(\"Equivalent evaporation=\",round(E,2),\"Kg/Kg of coal\")\nprint(\"Enthalpy of superheated steam=\",round(hs1,2),\"KJ/Kg\")\nprint(\"Equivalent evaporation(with superheater)=\",round(E1,2),\"Kg/Kg of coal\")\nprint(\"Boiler efficiency without superheater=\",round(etaboiler,2),\"%\")\nprint(\"Boiler efficiency without superheater=\",round(etaboiler1,2),\"%\")\n\n\n", + "language": "python", + "metadata": {}, + "outputs": [ + { + "output_type": "stream", + "stream": "stdout", + "text": "Equivalent mass evaporation= 8.57\nEnthalpy of wet steam= 2623.986 KJ/Kg\nEquivalent evaporation= 9.25 Kg/Kg of coal\nEnthalpy of superheated steam= 2946.09 KJ/Kg\nEquivalent evaporation(with superheater)= 10.47 Kg/Kg of coal\nBoiler efficiency without superheater= 66.28 %\nBoiler efficiency without superheater= 75.04 %\n" + } + ], + "prompt_number": 29 + }, + { + "cell_type": "heading", + "level": 2, + "metadata": {}, + "source": "Example 9 Page No:237" + }, + { + "cell_type": "code", + "collapsed": false, + "input": "#Input data\nP=15 #Boiler produces steam in bar\nTsup=250 #Boiler temperature in degree celsius \nTw=35 #Feed water in degree celsius\nMWh=1.5 #steam supplied to the turbine\nCV=32000 #Coal of calorific value in KJ/Kg\netaboiler=80/100 #Thermal efficiency in %\nfr=210 #Firing rate in Kg/m**2/h\n#From steam table(temp basis at 35 degree celsius)\nhfw=146.56 #In KJ/Kg\nTs=198.29 #In degree celsius\nhfg=1945.2 #In KJ/Kg\nhg=2789.9 #In KJ/Kg\nCps=2.3 \n\n\n#calculator\nhs=hg+Cps*(Tsup-Ts) #Enthalpy of superheated steam(with superheater) in KJ/Kg\nms=9000/MWh #Steam rate in Kg/MWh\nmf=((ms*(hs-hfw))/(etaboiler*CV)) #Mass of steam consumption in Kg/h\nGA=mf/fr #Grate rate in m**2\n\n\n\n#Output\nprint(\"Enthalpy of superheated steam(with superheater)=\",hs,\"KJ/Kg\")\nprint(\"Steam rate=\",ms,\"Kg/h\")\nprint(\"ass of steam consumption=\",round(mf,1),\"Kg/h\")\nprint(\"Grate rate=\",round(GA,3),\"m**2\")\n\n\n\n", + "language": "python", + "metadata": {}, + "outputs": [ + { + "output_type": "stream", + "stream": "stdout", + "text": "Enthalpy of superheated steam(with superheater)= 2908.833 KJ/Kg\nSteam rate= 6000.0 Kg/h\nass of steam consumption= 647.4 Kg/h\nGrate rate= 3.083 m**2\n" + } + ], + "prompt_number": 1 + }, + { + "cell_type": "heading", + "level": 2, + "metadata": {}, + "source": "Example 10 Page No:242" + }, + { + "cell_type": "code", + "collapsed": false, + "input": "#Input data\nma=18 #Boileruses of per Kg of fuel in Kg/Kg\nhw=25*10**-3 #Chimney height to produce draught in mm\nTg=315+273 #Temperature of chimney gases in degree celsius \nTa=27+273 #Out side air temp in degree celsius\n\n#Calculation\n#Draught produce in terms of water column in m\nH=(hw/(353*(1/Ta-1/Tg*((ma+1)/ma))))*1000\n\n#Output\nprint(\"Draught produce in terms of water column=\",round(H,2),\"m\")", + "language": "python", + "metadata": {}, + "outputs": [ + { + "output_type": "stream", + "stream": "stdout", + "text": "Draught produce in terms of water column= 46.04 m\n" + } + ], + "prompt_number": 2 + }, + { + "cell_type": "heading", + "level": 2, + "metadata": {}, + "source": "Example 11 Page No:242" + }, + { + "cell_type": "code", + "collapsed": false, + "input": "#Input data\nH=40 #High discharge in m\nma=19 #Fuel gases per Kg of fuel burnt\nTg=220+273 #Average temp of fuel gases in degree celsius\nTa=25+273 #Ambient temperature in degreee celsius\n\n\n#calculation\nhw=353*H*(1/Ta-1/Tg*((ma+1)/ma)) #Draught produce in terms of water column in mm\nH1=H*((Tg/Ta)*(ma/(ma+1))-1) #Draught produce in terms of hot gas column in m\n\n#output\nprint(\"Draught produce in terms of water column=\",round(hw,2),\"mm\")\nprint(\"Draught produce in terms of hot gas column=\",round(H1,2),\"m\")", + "language": "python", + "metadata": {}, + "outputs": [ + { + "output_type": "stream", + "stream": "stdout", + "text": "Draught produce in terms of water column= 17.23 mm\nDraught produce in terms of hot gas column= 22.87 m\n" + } + ], + "prompt_number": 3 + }, + { + "cell_type": "heading", + "level": 2, + "metadata": {}, + "source": "Example 12 Page No:243" + }, + { + "cell_type": "code", + "collapsed": false, + "input": "#Input data\nH=27 #Chimney height in m\nhw=15 #Draught produces of water column in mm\nma=21 #Gases formed per Kg of fuel burnt in Kg/Kg\nTa=25+273 #Temperature of the ambient air in degree celsius\n\n\n#calculation\nTg=-(((ma+1)/ma)/((hw/(353*H))-(1/Ta))) #Mean temperature of fuel gases in K\n\n#Output\nprint(\"Mean temperature of fuel gases\",Tg,\"k\")", + "language": "python", + "metadata": {}, + "outputs": [ + { + "output_type": "stream", + "stream": "stdout", + "text": "Mean temperature of fuel gases 587.9248031162673 k\n" + } + ], + "prompt_number": 1 + }, + { + "cell_type": "heading", + "level": 2, + "metadata": {}, + "source": "Example 13 Page No:244" + }, + { + "cell_type": "code", + "collapsed": false, + "input": "#Input data\nhw=20 #Static draught of water in mm\nH=50 #Chimney height in m\nTg=212+273 #Temperature of the fuel degree celsius\nTa=27+273 #Atmospheric air in degree celsius\n\n#calculation\nma=(-((hw/(353*H))-Ta*Tg))*10**-4 #Air-fuel ratio in Kg/Kg of fuel burnt-3\n\n#Output\nprint(\"Air-fuel ratio\",round(ma,1),\"Kg/Kg of fuel burnt\")", + "language": "python", + "metadata": {}, + "outputs": [ + { + "output_type": "stream", + "stream": "stdout", + "text": "Air-fuel ratio 14.5 Kg/Kg of fuel burnt\n" + } + ], + "prompt_number": 8 + }, + { + "cell_type": "heading", + "level": 2, + "metadata": {}, + "source": "Example 14 Page No:245" + }, + { + "cell_type": "code", + "collapsed": false, + "input": "#Input data\nimport math\nH=24 #Chimney height in m\nTa=25+273 #Ambient temperature in degree celsius\nTg=300+273 #Temperature of fuel gases in degree celsius\nma=20 #Combustion space of fuel burnt in Kg/Kgof fuel\ng=9.81 \n\n\n#calculation\nhw=((353*H)*((1/Ta)-((1/Tg)*((ma+1)/ma))))#Theoretical draught in millimeters of water in mm\nH1=H*((Tg/Ta)*(ma/(ma+1))-1) #Theoretical draught produced in hot gas column in m\nH2=H1-9.975 #Draught lost in friction at the grate and passage in m\nV=math.sqrt(2*g*H2) #Actual draught produced in hot gas column in m\n\n#Output\nprint(\"Theoretical draught in millimeters of water=\",round(hw,2),\"mm\")\nprint(\"Theoretical draught produced in hot gas column=\",round(H1,2),\"m\")\nprint(\"Draught lost in friction at the grate and passage=\",round(H2,3),\"m\")\nprint(\"Actual draught produced in hot gas column=\",round(V,),\"m\")", + "language": "python", + "metadata": {}, + "outputs": [ + { + "output_type": "stream", + "stream": "stdout", + "text": "Theoretical draught in millimeters of water= 12.9 mm\nTheoretical draught produced in hot gas column= 19.95 m\nDraught lost in friction at the grate and passage= 9.975 m\nActual draught produced in hot gas column= 14 m\n" + } + ], + "prompt_number": 16 + }, + { + "cell_type": "heading", + "level": 2, + "metadata": {}, + "source": "Example 15 Page No:246" + }, + { + "cell_type": "code", + "collapsed": false, + "input": "#Input data\nimport math\nH=38 #Stack height in m\nd=1.8 #Stack diameter discharge in m\nma=17 #Fuel gases per Kg of fuel burnt Kg/Kg\nTg=277+273 #Average temperature of fuel gases in degree celsius\nTa=27+273 #Temperature of outside air in degree celsius\nh1=0.4 #Theoretical draught is lost in friction in \ng=9.81\npi=3.142\n\n#calculation\nH1=H*(((Tg/Ta)*(ma/(ma+1))-1))#Theoretical draught produce in hot gas column in m\ngp=0.45*27.8 #Draught lost in friction at the grate and pasage in m\nC=H1-gp #Actual draught produce in hot gas column in m\nV=math.sqrt(2*9.81*C) #Velocity of the flue gases in the chimney in m/s\nrhog=((353*(ma+1))/(ma*Tg)) #Density of flue gases in Kg/m**3\nmg=(rhog*((pi/4)*(d**(2))*V)) #Mass of gas flowing through the chimney in Kg/s\n\n\n#Output\nprint(\"Theoretical draught produce in hot gas column=\",round(H1,1),\"m\")\nprint(\"Draught lost in friction at the grate and pasage=\",gp,\"m\")\nprint(\"Actual draught produce in hot gas column=\",round(C,2),\"m\")\nprint(\"Velocity of the flue gases in the chimney =\",round(V,2),\"m/s\")\nprint(\"Density of flue gases=\",round(rhog,3),\"Kg/m**3\")\nprint(\"Mass of gas flowing through the chimney=\",round(mg,),\"Kg/s\")\n\n", + "language": "python", + "metadata": {}, + "outputs": [ + { + "output_type": "stream", + "stream": "stdout", + "text": "Theoretical draught produce in hot gas column= 27.8 m\nDraught lost in friction at the grate and pasage= 12.51 m\nActual draught produce in hot gas column= 15.29 m\nVelocity of the flue gases in the chimney = 17.32 m/s\nDensity of flue gases= 0.68 Kg/m**3\nMass of gas flowing through the chimney= 30 Kg/s\n" + } + ], + "prompt_number": 23 + }, + { + "cell_type": "heading", + "level": 2, + "metadata": {}, + "source": "Example 16 Page No:247" + }, + { + "cell_type": "code", + "collapsed": false, + "input": "#Input data\nimport math\nhw=1.9 #Drauhgt water in cm\nTg=290+273 #Temp of flue gases in degree celsius \nTa=20+273 #Ambient temp in degree celsius\nma=22 #Flue gases formed in kg/Kg of coal\nd=1.8 #Fuel burnt in m\npi=3.142\ng=9.81\n\n#calculation\nH=(hw/(353*(1/Ta-1/Tg*((ma+1)/ma))))*10 #Theoretical draught produced in water column in m\nH1=H*(((Tg/Ta)*(ma/(ma+1))-1)) #Theoretical draught produced in hot gas column n m\nV=math.sqrt(2*g*H1) #Velocity of tthe flue gases in the chimney in m/s \nrhog=((353*(ma+1))/(ma*Tg)) #Density of flue gases in Kg/m**3\nmg=rhog*((pi/4)*d**2)*V #Mass of gas flowing through the chimney in Kg/s\n\n#Output\nprint(\"Theoretical draught produced in water column=\",round(H,1),\"m\")\nprint(\"Theoretical draught produced in hot gas column=\",round(H1,),\"m\")\nprint(\"Velocity of tthe flue gases in the chimney=\",round(V,2),\"m\")\nprint(\"Density of flue gases=\",round(rhog,4),\"Kg/m**3\")\nprint(\"Mass of gas flowing through the chimney=\",round(mg,1),\"Kg/s\")\n\n", + "language": "python", + "metadata": {}, + "outputs": [ + { + "output_type": "stream", + "stream": "stdout", + "text": "Theoretical draught produced in water column= 34.6 m\nTheoretical draught produced in hot gas column= 29 m\nVelocity of tthe flue gases in the chimney= 23.85 m\nDensity of flue gases= 0.6555 Kg/m**3\nMass of gas flowing through the chimney= 39.8 Kg/s\n" + } + ], + "prompt_number": 28 + }, + { + "cell_type": "heading", + "level": 2, + "metadata": {}, + "source": "Example 17 Page No:248" + }, + { + "cell_type": "code", + "collapsed": false, + "input": "#Input data\nimport math\nmf=8000 #Average coal consumption in Kg/h\nma=19 #Flue gases formed in Kg/Kg\nTg=270+273 #Average temperature of the chimney in degree celsius\nTa=27+273 #Ambient temperature in degree celsius\nhw=18 #Theoretical draught produced by the chimney in mm\nh1=0.6 #Draught is lost in friction H1\ng=9.81\npi=3.142\n\n\n#calculation\nH=(hw/(353*(1/Ta-1/Tg*((ma+1)/ma)))) #Theoretical draught produced in water column in m\nH1=H*(((Tg/Ta)*(ma/(ma+1)))-1) #Theoretical draught produced in hot gas column in m\ngp=h1*H1 #Draught is lost in friction at the grate and passing in m\nhgc=H1-gp #Actual draught produced in hot gas column in m\nV=math.sqrt(2*g*(hgc)) #Velocity of the flue gases in the chimney in m/s\nrhog=((353*(ma+1))/(ma*Tg)) #Density of flue gases in Kg/m**3\nmg=((mf/3600)*ma) #Mass of gas fowing throgh the chimney in Kg/s\nd=math.sqrt(mg/(rhog*(pi/4)*V)) #Diameter of the chimney in m\n\n\n#Output\nprint(\"Theoretical draught produced in water column=\",round(H,1),\"m\")\nprint(\"Theoretical draught produced in hot gas column=\",round(H1,3),\"m\")\nprint(\"Draught is lost in friction at the grate and passing=\",round(gp,2),\"m\")\nprint(\"Actual draught produced in hot gas column=\",round(hgc,3),\"m\")\nprint(\"Velocity of the flue gases in the chimney=\",round(V,2),\"\")\nprint(\"Density of flue gases=\",round(rhog,3),\"Kg/m**3\")\nprint(\"Mass of gas fowing throgh the chimney=\",round(mg,3),\"Kg/s\")\nprint(\"Diameter of the chimney=\",round(d,3),\"m\")\n\n\n", + "language": "python", + "metadata": {}, + "outputs": [ + { + "output_type": "stream", + "stream": "stdout", + "text": "Theoretical draught produced in water column= 36.6 m\nTheoretical draught produced in hot gas column= 26.304 m\nDraught is lost in friction at the grate and passing= 15.78 m\nActual draught produced in hot gas column= 10.522 m\nVelocity of the flue gases in the chimney= 14.37 \nDensity of flue gases= 0.684 Kg/m**3\nMass of gas fowing throgh the chimney= 42.222 Kg/s\nDiameter of the chimney= 2.338 m\n" + } + ], + "prompt_number": 15 + }, + { + "cell_type": "heading", + "level": 2, + "metadata": {}, + "source": "Example 18 Page No:251" + }, + { + "cell_type": "code", + "collapsed": false, + "input": "#Input data\nimport math\nH=24 #Chimney height in m\nTa=25+273 #Ambient temperature in degree celsius\nTg=300+273 #Temp of flue gases passing through the chimney in degree celsius\nma=20 #Combustion space of fuel burnt in Kg/kg of fuel\ng=9.81\n\n#calculation\nhw=((353*H)*((1/Ta)-((1/Tg)*((ma+1)/ma)))) #Theoretical draught produced in water column in m\nH1=H*(((Tg/Ta)*(ma/(ma+1))-1)) #Theoretical draught produced in hot gas column in m\nH2=0.5*H1 #Draught is lost in friction at the grate and passing in m\nhgc=H1-H2 #Actual draught produced in hot gas column in m\nV=math.sqrt(2*g*H2) #Velocity of the flue gases in the chimney in m/s\n\n\n#Output\nprint(\"Theoretical draught produced in water column=\",round(hw,1),\"m\")\nprint(\"Theoretical draught produced in hot gas column=\",round(H1,2),\"m\")\nprint(\"Draught is lost in friction at the grate and passing=\",round(H2,3),\"m\")\nprint(\"Actual draught produced in hot gas column=\",round(hgc,3),\"m\")\nprint(\"Velocity of the flue gases in the chimney=\",round(V,),\"m/s\")\n", + "language": "python", + "metadata": {}, + "outputs": [ + { + "output_type": "stream", + "stream": "stdout", + "text": "Theoretical draught produced in water column= 12.9 m\nTheoretical draught produced in hot gas column= 19.95 m\nDraught is lost in friction at the grate and passing= 9.975 m\nActual draught produced in hot gas column= 9.975 m\nVelocity of the flue gases in the chimney= 14 m/s\n" + } + ], + "prompt_number": 16 + }, + { + "cell_type": "heading", + "level": 2, + "metadata": {}, + "source": "Example 19 Page No:252" + }, + { + "cell_type": "code", + "collapsed": false, + "input": "#Input data\nH=38 #Stack height in m\nd=1.8 #Stack diameter in m\nma=18 #Flue gases per kg of the fuel burnt\nTg=277+273 #Average temp of the flue gases in degree celsius\nTa=27+273 #Temperature of outside air in degree celsius\nh1=0.4 #Theorical draught is lost in friction in %\ng=9.81\n\n#calculation\nH1=H*(((Tg/Ta)*(ma/(ma+1))-1)) #Theoretical draught produced in hot gas column in m\ngp=0.40*H1 #Draught is lost in friction at the grate and passing in m\nhgc=H1-gp #Actual draught produced in hot gas column in m\nV=math.sqrt(2*g*hgc) #Velocity of the flue gases in the chimney in m/s\nrhog=((353*(ma+1))/(ma*Tg)) #Density of flue gases in Kg/m**3\nmg=rhog*((pi/4)*d**2)*V #Mass of gas fowing throgh the chimney in Kg/s\n\n\n#Output\nprint(\"Theoretical draught produced in hot gas column=\",round(H1,3),\"m\")\nprint(\"Draught is lost in friction at the grate and passing=\",round(gp,2),\"m\")\nprint(\"Actual draught produced in hot gas column=\",round(hgc,2),\"m\")\nprint(\"Velocity of the flue gases in the chimney=\",round(V,2),\"m/s\")\nprint(\"Density of flue gases=\",round(rhog,2),\"Kg/m**3\")\nprint(\"Mass of gas fowing throgh the chimney=\",round(mg,1),\"Kg/s\")\n\n\n\n", + "language": "python", + "metadata": {}, + "outputs": [ + { + "output_type": "stream", + "stream": "stdout", + "text": "Theoretical draught produced in hot gas column= 28.0 m\nDraught is lost in friction at the grate and passing= 11.2 m\nActual draught produced in hot gas column= 16.8 m\nVelocity of the flue gases in the chimney= 18.16 m/s\nDensity of flue gases= 0.68 Kg/m**3\nMass of gas fowing throgh the chimney= 31.3 Kg/s\n" + } + ], + "prompt_number": 41 + }, + { + "cell_type": "heading", + "level": 2, + "metadata": {}, + "source": "Example 20 Page No:253" + }, + { + "cell_type": "code", + "collapsed": false, + "input": "#Input data\nimport math\nhw=19 #Draught produced water in cm\nTg=290+273 #Temperature of flue gases in degree celsius\nTa=20+273 #Ambient temperature in degree celsius\nma=22 #Flue gases formed per kg of fuel burnt in kg/kg of coal \nd=1.8 #Diameter of chimney\ng=9.81\n\n\n#calculation\nH=(hw/((353)*((1/Ta)-((1/Tg)*((ma+1)/ma))))) #Theoretical draught produced in hot gas column in m\nH1=H*(((Tg/Ta)*(ma/(ma+1))-1)) #Draught is lost in friction at the grate and passing in m\nV=math.sqrt(2*g*H1) #Velocity of the flue gases in the chimney in m/s\nrhog=((353*(ma+1))/(ma*Tg)) #Density of flue gases in Kg/m**3\nmg=rhog*((pi/4)*d**2)*V #Mass of gas fowing throgh the chimney in Kg/s\n\n\n#Output\nprint(\"Theoretical draught produced in hot gas column=\",round(H,),\"m\")\nprint(\"Draught is lost in friction at the grate and passing=\",round(H1,1),\"m\")\nprint(\"Velocity of the flue gases in the chimney=\",round(V,2),\"m/s\")\nprint(\"Density of flue gases=\",round(rhog,4),\" Kg/m**\")\nprint(\"Mass of gas fowing throgh the chimney=\",round(mg,1),\"Kg/s\")\n", + "language": "python", + "metadata": {}, + "outputs": [ + { + "output_type": "stream", + "stream": "stdout", + "text": "Theoretical draught produced in hot gas column= 35 m\nDraught is lost in friction at the grate and passing= 29.0 m\nVelocity of the flue gases in the chimney= 23.85 m/s\nDensity of flue gases= 0.6555 Kg/m**\nMass of gas fowing throgh the chimney= 39.8 Kg/s\n" + } + ], + "prompt_number": 44 + }, + { + "cell_type": "heading", + "level": 2, + "metadata": {}, + "source": "Example 21 Page No:254" + }, + { + "cell_type": "code", + "collapsed": false, + "input": "#Input data\nimport math\nmf=8000 #Average coal consumption in m \nma=18 #Fuel gases formed ccoal fired in m\nTg=270+273 #Average temp of the chimney of water in degree celsius\nTa=27+273 #Ambient temp in degree celsius\nhw=18 #Theoretical draught produced by the chimney in mm\nh1=0.6 #Draught is lost in friction in H1\ng=9.81\npi=3.142\n\n\n#calculation\nH=(hw/((353)*((1/Ta)-((1/Tg)*((ma+1)/ma))))) #Theoretical draught produced in water column in m\nH1=H*(((Tg/Ta)*(ma/(ma+1))-1)) #Theoretical draught produced in hot gas column in m\ngp=0.6*H1 #Draught is lost in friction at the grate and passing in m\nhgc=H1-gp #Actual draught produced in hot gas column in m \nV=math.sqrt(2*g*hgc) #Velocity of the flue gases in the chimney in m/s\nrhog=((353*(ma+1))/(ma*Tg)) #Density of flue gases in Kg/m**3\nmg=mf/3600*(ma+1) #Mass of gas fowing throgh the chimney in Kg/s\nd=math.sqrt(mg/(rhog*(pi/4)*V)) #Diameter of flue gases in Kg/m**3\n\n#Output\nprint(\"Theoretical draught produced in water column=\",round(H,1),\"m\")\nprint(\"Theoretical draught produced in hot gas column=\",round(H1,2),\"m\")\nprint(\"Draught is lost in friction at the grate and passing=\",round(gp,2),\"m\")\nprint(\"Actual draught produced in hot gas column=\",round(hgc,2),\"\")\nprint(\"Velocity of the flue gases in the chimney=\",round(V,2),\"m/s\")\nprint(\"Density of flue gases=\",round(rhog,3),\"Kg/m**3\")\nprint(\"Mass of gas fowing throgh the chimney=\",round(mg,2),\"Kg/s\")\nprint(\"Diameter of flue gases=\",round(d,3),\"Kg/m**3\")\n\n\n", + "language": "python", + "metadata": {}, + "outputs": [ + { + "output_type": "stream", + "stream": "stdout", + "text": "Theoretical draught produced in water column= 36.7 m\nTheoretical draught produced in hot gas column= 26.23 m\nDraught is lost in friction at the grate and passing= 15.74 m\nActual draught produced in hot gas column= 10.49 \nVelocity of the flue gases in the chimney= 14.35 m/s\nDensity of flue gases= 0.686 Kg/m**3\nMass of gas fowing throgh the chimney= 42.22 Kg/s\nDiameter of flue gases= 2.337 Kg/m**3\n" + } + ], + "prompt_number": 45 + }, + { + "cell_type": "heading", + "level": 2, + "metadata": {}, + "source": "Example 22 Page No:256" + }, + { + "cell_type": "code", + "collapsed": false, + "input": "#Input data\nH=45 #Chimney height in m\nTg=370+273 #Temperature of flue gases in degree celsius\nT1=150+273 #Temperature of flue gases in degree celsius\nma=25 #Mass of the flue gas formed in Kg/kg of a cosl fired\nTa=35+273 #The boiler temperature in degree celsius\nCp=1.004 #fuel gas\n\n#calculation\n#Efficeincy of chimney draught in %\nA=(H*(((Tg/Ta)*(ma/(ma+1)))-1))/(Cp*(Tg-T1))*100\n\n#Output\nprint(\"Efficeincy of chimney draught=\",round(A,2),\"%\")", + "language": "python", + "metadata": {}, + "outputs": [ + { + "output_type": "stream", + "stream": "stdout", + "text": "Efficeincy of chimney draught= 20.52 %\n" + } + ], + "prompt_number": 47 + } + ], + "metadata": {} + } + ] +}
\ No newline at end of file diff --git a/Basic_mechanical_engineering_by_Basant_Agrawal_,_C.M_Agrawal/Chapter_13_Steam_Engines_93BIP5u.ipynb b/Basic_mechanical_engineering_by_Basant_Agrawal_,_C.M_Agrawal/Chapter_13_Steam_Engines_93BIP5u.ipynb new file mode 100644 index 00000000..0b5d6900 --- /dev/null +++ b/Basic_mechanical_engineering_by_Basant_Agrawal_,_C.M_Agrawal/Chapter_13_Steam_Engines_93BIP5u.ipynb @@ -0,0 +1,308 @@ +{ + "metadata": { + "name": "Chapter 13 Steam Engines" + }, + "nbformat": 3, + "nbformat_minor": 0, + "worksheets": [ + { + "cells": [ + { + "cell_type": "heading", + "level": 2, + "metadata": {}, + "source": "Example 1 Page No:281" + }, + { + "cell_type": "code", + "collapsed": false, + "input": "#Input data\nimport math\nPa=10 #Single cylinder double acting steam engine pressure in bar \nPb=1.5 #Single cylinder double acting steam engine pressure in bar\nrc=100/35 #Cut-off of the stroke in %\n\n\n#Calculation\nPm=((Pa/rc)*(1+math.log(rc))-Pb) #Therotical mean effective pressure\n\n#Output\nprint(\"Therotical mean effective pressure=\",round(Pm,2),\"bar\")", + "language": "python", + "metadata": {}, + "outputs": [ + { + "output_type": "stream", + "stream": "stdout", + "text": "Therotical mean effective pressure= 5.67 bar\n" + } + ], + "prompt_number": 1 + }, + { + "cell_type": "heading", + "level": 2, + "metadata": {}, + "source": "Example 2 Page No:283" + }, + { + "cell_type": "code", + "collapsed": false, + "input": "#Input data\n\na=5/100 #Engine cylinder of the stroke valume in %\nP1=12 #Pressure of the stream\nrc=3 #Cut-off is one-third\nPb=1.1 #Constant the back pressure in bar\n\n#Calulation\n#Therotical mean effective pressure Pm\nPm=P1*(1/rc+((1/rc)+a)*math.log((1+a)/((1/rc)+a)))-Pb \n\n#Output\nprint(\"#Therotical mean effective pressure=\",round(Pm,2),\"N/m**2\")", + "language": "python", + "metadata": {}, + "outputs": [ + { + "output_type": "stream", + "stream": "stdout", + "text": "#Therotical mean effective pressure= 7.54 N/m**2\n" + } + ], + "prompt_number": 3 + }, + { + "cell_type": "heading", + "level": 2, + "metadata": {}, + "source": "Example 3 Page No:285" + }, + { + "cell_type": "code", + "collapsed": false, + "input": "#Input data\nimport math\nP1=14 #Steam is ssupplied in bar \nP6=6 #Pressure at the end in bar\nPb=1.2 #Pressure at back in bar\na=0.1 \nre=4 \n#From hyperbolic process \nb=0.4\n\n#Calculation\n#Mean Effective pressure in N/m**2 \nPm=P1*((1/re)+((1/re)+a)*math.log((1+a)/((1+re)+a)))-Pb*((1+b)+(a+b)*math.log((a+b)/a))\n\n\n#Output\nprint(\"Mean Effective pressure=\",round(-Pm,3),\"N/m**2\")\n", + "language": "python", + "metadata": {}, + "outputs": [ + { + "output_type": "stream", + "stream": "stdout", + "text": "Mean Effective pressure= 6.662 N/m**2\n" + } + ], + "prompt_number": 15 + }, + { + "cell_type": "heading", + "level": 2, + "metadata": {}, + "source": "Example 4 Page No:286" + }, + { + "cell_type": "code", + "collapsed": false, + "input": "#Input data\nCover=1200 #Area of the indicator diagram for cover \nCrank=1100 #Area of the indicator diagram for crank\nID=75\nPS=0.15\n\n\n#Calculation\nCoverMEP=Cover/ID*PS #Cover end mean effective pressure\nCrankMEP=Crank/ID*PS #Crank end mean effective pressure\nAverageMEP=(CoverMEP+CrankMEP)/2 #Average end mean effective pressure\n\n\n#Output\nprint(\"Cover end mean effective pressure=\",CoverMEP,\"bar\")\nprint(\"Crank end mean effective pressure=\",round(CrankMEP,2),\"bar\")\nprint(\"Average end mean effective pressure=\",AverageMEP,\"bar\")\n\n", + "language": "python", + "metadata": {}, + "outputs": [ + { + "output_type": "stream", + "stream": "stdout", + "text": "Cover end mean effective pressure= 2.4 bar\nCrank end mean effective pressure= 2.2 bar\nAverage end mean effective pressure= 2.3 bar\n" + } + ], + "prompt_number": 16 + }, + { + "cell_type": "heading", + "level": 2, + "metadata": {}, + "source": "Example 5 Page No:286" + }, + { + "cell_type": "code", + "collapsed": false, + "input": "#Input data\na=25 #Area of indicator diagram cm**2\nVs=0.15 #swept volume m**2\nS=1 #Scale in cm \ncm=0.02 #pressure axis m**3\n\n\n#Calculation\nb=Vs/cm #Base length of diagram \nPm=a/b*S #Mean effective pressure\n\n#Output\nprint(\"Base length of diagram=\",b,\"bar\")\nprint(\"Mean effective pressure=\",round(Pm,2),\"bar\")\n\n", + "language": "python", + "metadata": {}, + "outputs": [ + { + "output_type": "stream", + "stream": "stdout", + "text": "Base length of diagram= 7.5 bar\nMean effective pressure= 3.33 bar\n" + } + ], + "prompt_number": 17 + }, + { + "cell_type": "heading", + "level": 2, + "metadata": {}, + "source": "Example 6 Page No:287" + }, + { + "cell_type": "code", + "collapsed": false, + "input": "#Input data\nimport math\nP1=14 #Steam Engine pressure in bar\nPb=0.15 #Back pressure in bar\nK=0.72 #Diagram factor\nrc=100/20 \n\n#Calculation\nPm=((P1/rc)*(1+math.log(rc))-Pb) #Therotical mean effective pressure Pm\nPma=Pm*K #Actual mean effective pressure Pma\n\n#Output\nprint(\"Therotical mean effective pressure=\",round(Pm,3),\"bar\")\nprint(\"Actual mean effective pressure=\",round(Pma,2),\"bar\")\n\n", + "language": "python", + "metadata": {}, + "outputs": [ + { + "output_type": "stream", + "stream": "stdout", + "text": "Therotical mean effective pressure= 7.156 bar\nActual mean effective pressure= 5.15 bar\n" + } + ], + "prompt_number": 21 + }, + { + "cell_type": "heading", + "level": 2, + "metadata": {}, + "source": "Example 7 Page No:287" + }, + { + "cell_type": "code", + "collapsed": false, + "input": "#Input data\nimport math\nP1=9 #Reciprocating engine pressure in bar\nPb=1.5 #Back pressure in bar\nrc=100/25 #Cut-off \nK=0.8 #Diagram factor\n\n#Calculation\nPm=((P1/rc)*(1+math.log(rc))-Pb) #Therotical mean effective pressure Pm\nPma=Pm*K #Actual mean effective pressure Pma\n\n#Output\nprint(\"Therotical mean effective pressure= \",round(Pm,2),\"bar\")\nprint(\"Actual mean effective pressure=\",round(Pma,2),\"bar\")\n\n\n\n", + "language": "python", + "metadata": {}, + "outputs": [ + { + "output_type": "stream", + "stream": "stdout", + "text": "Therotical mean effective pressure= 3.87 bar\nActual mean effective pressure= 3.1 bar\n" + } + ], + "prompt_number": 22 + }, + { + "cell_type": "heading", + "level": 2, + "metadata": {}, + "source": "Example 8 Page No:288" + }, + { + "cell_type": "code", + "collapsed": false, + "input": "#Input data\nimport math\nP1=10 #Inlet pressure\nPb=1 #Back pressure\nrc=3 #Expansion ratio\na=12.1 #Area of indicator diagram\nb=7.5 #Length of indicator diagram \nS=3 #Pressure scale\n\n\n#calculation\nPm=((P1/rc)*(1+math.log(rc))-Pb )#Therotical mean effective pressure Pm\nPma=a/b*S #Actual mean effective pressure Pma\nK=Pma/Pm #diagram factor \n\n#Output\nprint(\"Therotical mean effective pressure=\",round(Pm,2),\"bar\")\nprint(\"Actual mean effective pressure=\",round(Pma,2),\"bar\")\nprint(\"Diagram factor=\",round(K,3),)\n\n", + "language": "python", + "metadata": {}, + "outputs": [ + { + "output_type": "stream", + "stream": "stdout", + "text": "Therotical mean effective pressure= 6.0 bar\nActual mean effective pressure= 4.84 bar\nDiagram factor= 0.807\n" + } + ], + "prompt_number": 23 + }, + { + "cell_type": "heading", + "level": 2, + "metadata": {}, + "source": "Example 9 Page No:289" + }, + { + "cell_type": "code", + "collapsed": false, + "input": "#Input data\nD=200*10**-3 #Steam engine cylinder in mm \nL=300*10**-3 #Bore of steam engine cylinder in mm \nrc=100/40 #Cut-off of the sroke\nP1=7 #Admission pressure of steam in bar\nPb=0.38 #Exhaust pressure of steam in bar\nK=0.8 #Diagram factor\nN=200 #Indicator factor of engine\npi=3.142 #Constant value\n#Indicated power of the engine in rpm\nA=pi*(200*10**-3)**2/4\n\n\n#Calculation\nPm=((P1/rc)*(1+math.log(rc))-Pb) #Therotical mean effective pressure Pm\nPma=Pm*K #Actual mean effective pressure Pma\nIP=(2*Pma*L*A*N/60000)*10**5 #Indicated power of steam engine in Kw\n\n\n#Output\nprint(\"Therotical mean effective pressure= \",round(Pm,3),\"bar\")\nprint(\"Actual mean effective pressure=\",round(Pma,),\"bar\")\nprint(\"Indicated power of steam engine=\",round(IP,2),\"Kw\")\n\n", + "language": "python", + "metadata": {}, + "outputs": [ + { + "output_type": "stream", + "stream": "stdout", + "text": "Therotical mean effective pressure= 4.986 bar\nActual mean effective pressure= 4 bar\nIndicated power of steam engine= 25.06 Kw\n" + } + ], + "prompt_number": 15 + }, + { + "cell_type": "heading", + "level": 2, + "metadata": {}, + "source": "Example 10 Page No:290" + }, + { + "cell_type": "code", + "collapsed": false, + "input": "#Input data\nimport math\nIP=343 #Steam engine develop indicated power in Kw\nN=180 #power In rpm\nP1=15 #Steam supplied i bar \nPb=1.25 #Steam is exhausted in bar\nrc=100/25 #Cut-off take place of stroke\nK=0.78 #Diagram factor\n#x=L/D=4/3\nx=4/3 #Stroke to bore ratio\npi=3.142\nA=((pi/4)*(D**2))\n\n#calculation\nPm=((P1/rc)*(1+math.log(rc))-Pb) #Therotical mean effective pressure Pm\nPma=Pm*K #Actual mean effective pressure Pma\nD=(((60000*IP)/(2*(Pma*10**5)*(4/3)*N))/(pi/4))**(1/3)#Indicated power of steam engine\nL=(x)*D\n\n\n#Output\nprint(\"Therotical mean effective pressure=\",round(Pm,2),\"bar\")\nprint(\"Actual mean effective pressure=\",round(Pma,2),\"bar\")\nprint(\"Indicated power of steam engine=\",round(D,3),\"mm\")\nprint(\"Indicated power of steam engine=\",round(L,1),\"mm\")\n\n", + "language": "python", + "metadata": {}, + "outputs": [ + { + "output_type": "stream", + "stream": "stdout", + "text": "Therotical mean effective pressure= 7.7 bar\nActual mean effective pressure= 6.0 bar\nIndicated power of steam engine= 0.45 mm\nIndicated power of steam engine= 0.6 mm\n" + } + ], + "prompt_number": 20 + }, + { + "cell_type": "heading", + "level": 2, + "metadata": {}, + "source": "Example 11 Page No:290" + }, + { + "cell_type": "code", + "collapsed": false, + "input": "#Input data\nimport math\nD=240*10**-3 #Steam engine bor\nL=300*10**-3 #Stroke of engine\nN=220 #Speed of engine 220 in rpm \nIP=36 #Indicated power in Kw\nPb=1.3 #Exhaust pressure in bar\nre=2.5 #Expansion ratio\nK=0.8 #Diagram factor\nA=((pi/4)*(D**2))\n\n\n#Calculation\nPma=((IP*60000)/(2*10**5*L*A*N)) #Indicated power of steam engine in bar\nPm=Pma/K #Actual mean effective pressure in bar\nP1=((Pm+Pb)*re)/(1+math.log(re)) #Theoretical mean effective pressure in bar\n\n#Output\nprint(\"Indicated power of steam engine=\",round(Pma,3),\"bar\")\nprint(\"Actual mean effective pressure=\",round(Pm,3),\"bar\")\nprint(\"theoretical mean effective pressure=\",round(P1,1),\"bar\")\n\n", + "language": "python", + "metadata": {}, + "outputs": [ + { + "output_type": "stream", + "stream": "stdout", + "text": "Indicated power of steam engine= 3.617 bar\nActual mean effective pressure= 4.521 bar\ntheoretical mean effective pressure= 7.6 bar\n" + } + ], + "prompt_number": 46 + }, + { + "cell_type": "heading", + "level": 2, + "metadata": {}, + "source": "Example 12 Page No:291" + }, + { + "cell_type": "code", + "collapsed": false, + "input": "#Input data\nimport math\nD=700*10**-3 #Steam engine diameter in mm\nL=900*10**-3 #Steam engine diameter in mm\nIp=450 #Develop indicated power Kw\nN=90 #Speed of steam engine in rpm\nP2=12 #Pressure at cut-off in bar\nP1=12 #Pressure at cut-off in bar\nPb=1.3 #Back pressure in bar\nK=0.76 #Diameter factor\npi=3.142\nA=((pi/4)*0.7**2)\n\n#Calculation\nPma=(Ip*60000)/(2*10**5*L*A*90) #Indicated power of steam engine in bar\nPm=Pma/K #Theoretical mean effective pressure in bar\n#using trial and error method\nre=1/0.241 #Expansion ratio\n#Output\nprint(\"Indicated power of steam engine=\",round(Pma,2),\"bar\")\nprint(\"Theoretical mean effective pressure=\",round(Pm,1),\"bar\")\nprint(\"Expansion ratio=\",round(re,2),)", + "language": "python", + "metadata": {}, + "outputs": [ + { + "output_type": "stream", + "stream": "stdout", + "text": "Indicated power of steam engine= 4.33 bar\nTheoretical mean effective pressure= 5.7 bar\nExpansion ratio= 4.15\n" + } + ], + "prompt_number": 1 + }, + { + "cell_type": "heading", + "level": 2, + "metadata": {}, + "source": "Example 13 Page No:293" + }, + { + "cell_type": "code", + "collapsed": false, + "input": "#Input data\nDb=900*10**-3 #Diameter of break drum in mm\ndr=50*10**-3 #Diameter of rope in mm\nW=105*9.81 #dead weight on the tight side of the rope in Kg\nS=7*9.81 #Spring balance of the rope in N\nN=240 #Speed of the engine in rpm\n\n#Calculation\nT=(W-S)*((Db+dr)/2) #Torque Nm\nBp=2*pi*N*T/ 60000 #Brake Power in Kw\n\n#Output\nprint(\"Torque= \",round(T,2),\"Nm\")\nprint(\"Brake Power=\",round(Bp,2),\"Kw\")\n\n", + "language": "python", + "metadata": {}, + "outputs": [ + { + "output_type": "stream", + "stream": "stdout", + "text": "Torque= 456.66 Nm\nBrake Power= 11.48 Kw\n" + } + ], + "prompt_number": 57 + }, + { + "cell_type": "heading", + "level": 2, + "metadata": {}, + "source": "Example 14 Page No:294" + }, + { + "cell_type": "code", + "collapsed": false, + "input": "#Input data\nD=300*10**-3 #steam engine bor\nL=400*10**-3 #stroke \nDb=1.5 #effective brake diameter\nW=6.2*10**3 #net load on the brake\nN=180 #speed of engine in rpm\nPma=6.5*10**3 #mean effective pressure in bar\nA=((pi/4)*0.3**2) \ndr=0\nS=0\n\n#Calculation\nIp=((2*Pma*L*A*N)/60000)*100 #Indicated power of steam engine in Kw\nT=(W-S)*((Db+dr)/2) #Torque in Nm\nBp=2*pi*N*T/ 60000 #Break power Kw\neta=(Bp/Ip)*100 #Mechanical efficiency in%\n\n\n#Output\nprint(\"Indicated power of steam engine=\",round(Ip,2),\"Kw\")\nprint(\"Torque=\",T,\"Nm\")\nprint(\"Break power=\",round(Bp,2),\"Kw\")\nprint(\"Mechanical efficiency=\",round(eta,1),\"%\")", + "language": "python", + "metadata": {}, + "outputs": [ + { + "output_type": "stream", + "stream": "stdout", + "text": "Indicated power of steam engine= 110.28 Kw\nTorque= 4650.0 Nm\nBreak power= 87.66 Kw\nMechanical efficiency= 79.5 %\n" + } + ], + "prompt_number": 59 + } + ], + "metadata": {} + } + ] +}
\ No newline at end of file diff --git a/Basic_mechanical_engineering_by_Basant_Agrawal_,_C.M_Agrawal/Chapter_14_Air_Standard_C_Wu44kME.ipynb b/Basic_mechanical_engineering_by_Basant_Agrawal_,_C.M_Agrawal/Chapter_14_Air_Standard_C_Wu44kME.ipynb new file mode 100644 index 00000000..a968e2ca --- /dev/null +++ b/Basic_mechanical_engineering_by_Basant_Agrawal_,_C.M_Agrawal/Chapter_14_Air_Standard_C_Wu44kME.ipynb @@ -0,0 +1,358 @@ +{ + "metadata": { + "name": " Chapter 14 Air Standard Cycles" + }, + "nbformat": 3, + "nbformat_minor": 0, + "worksheets": [ + { + "cells": [ + { + "cell_type": "heading", + "level": 2, + "metadata": {}, + "source": "Example 1 Page No:302" + }, + { + "cell_type": "code", + "collapsed": false, + "input": "#Input data\nTmax=477+273 #Temperature limits for the engine 477 degree celcius\nTmin=27+273 #Temperature limits for the engine 27 degree celcius\nwd=150 #Carnot cycle produce in KJ\n\n#Calculatkion\neta=(1-(Tmin/Tmax)) #Thermal efficiency of the carnot cycle in %\nQs=(wd/eta) #Added during the process in Kj\n\n\n#Output\nprint(\"thermal efficiency of the carnot cycle eta=\",100*(eta),\"%\")\nprint(\"added during the process Qs=\",Qs,\"KJ\")", + "language": "python", + "metadata": {}, + "outputs": [ + { + "output_type": "stream", + "stream": "stdout", + "text": "thermal efficiency of the carnot cycle eta= 60.0 %\nadded during the process Qs= 250.0 KJ\n" + } + ], + "prompt_number": 1 + }, + { + "cell_type": "heading", + "level": 2, + "metadata": {}, + "source": "Example 2 Page No:302" + }, + { + "cell_type": "code", + "collapsed": false, + "input": "#Input data\nQR=1.5 #tau=QS-QR\n #T=Tmax-Tmin\nT=300 #temperature limit of the cycle in degree celsius\n\n\n#Calculation\n#QR=1.5*(QS-QR)\nQR=(1.5/2.5) #Engin work on carnot cycle\neta=(1-QR) #Thermal effeciency\nTmax=(T/eta)-273.15 #Maximum temperataure\nTmin=(Tmax-T) #Minimum temperataure\n\n\n#Output\nprint(\"Engin work on carnot cycle=\",QR,\"QS\")\nprint(\"Thermal effeciency=\",100*(eta),\"%\")\nprint(\"Maximum temperataure=\",round(Tmax,),\"degree celsius\")\nprint(\"Minimum temperataure=\",round(Tmin,),\"degree celsius\")\n\n\n", + "language": "python", + "metadata": {}, + "outputs": [ + { + "output_type": "stream", + "stream": "stdout", + "text": "Engin work on carnot cycle= 0.6 QS\nThermal effeciency= 40.0 %\nMaximum temperataure= 477 degree celsius\nMinimum temperataure= 177 degree celsius\n" + } + ], + "prompt_number": 3 + }, + { + "cell_type": "heading", + "level": 2, + "metadata": {}, + "source": "Example 3 Page No:303" + }, + { + "cell_type": "code", + "collapsed": false, + "input": "#Input data\n#Refer figure\nimport math\nT1=300 #Carnot engine work in minimum temperature in kelvin\nT2=750 #Carnot engine work in maximum temperature kelvin\nP2=50 #pressure of carnot engine N/m**2\nP4=1 #pressure of carnot engine N/m**\n#considering air as the working fluid therefore \nR=0.287 #Air as the working fluid in KJ/Kg K\nCp=1.005 #KJ/Kg K\nCv=0.718 #KJ/Kg K\nK=1.4\ngamma=1.4\n\n#Calculation\n#T2/T1=(P2/P1)**(gamma-1)/gamma\nP1=P2*(T1/T2)**(gamma/(gamma-1)) #Pressure at intermediate salient points(1-2) in bar\nP3=P4*(T2/T1)**(gamma/(gamma-1)) #Pressure at intermediate salient points(3-4) in bar\nQS=R*T2*math.log(P2/P3 ) #Heat supplied and rejected per Kg of air in KJ/Kg\nQR=R*T1*math.log(P1/P4 ) #Heat supplied and rejected per Kg of air in KJ/Kg\nW=QS-QR #Work done in KJ/Kg\neta=(1-(T1/T2)) #Thermal of the carnot cycle\n\n#Output\nprint(\"pressure at intermediate salient points(1-2)=\",round(P1,2),\"bar\")\nprint(\"pressure at intermediate salient points(3-4)=\",round(P3,1),\"bar\")\nprint(\"heat supplied and rejected per Kg of air(2-3)=\",round(QS,1),\"KJ/Kg\")\nprint(\"heat supplied and rejected per Kg of air(4-1)=\",round(QR,2),\"KJ/Kg\")\nprint(\"work done=\",round(W,1),\"KJ/Kg\")\nprint(\"thermal of the carnot cycle=\",100*(eta),\"%\")\n", + "language": "python", + "metadata": {}, + "outputs": [ + { + "output_type": "stream", + "stream": "stdout", + "text": "pressure at intermediate salient points(1-2)= 2.02 bar\npressure at intermediate salient points(3-4)= 24.7 bar\nheat supplied and rejected per Kg of air(2-3)= 151.8 KJ/Kg\nheat supplied and rejected per Kg of air(4-1)= 60.7 KJ/Kg\nwork done= 91.1 KJ/Kg\nthermal of the carnot cycle= 60.0 %\n" + } + ], + "prompt_number": 3 + }, + { + "cell_type": "heading", + "level": 2, + "metadata": {}, + "source": "Example 4 Page No:304" + }, + { + "cell_type": "code", + "collapsed": false, + "input": "#input data \nimport math\nT2=377+273 #Carnot cycle temperature in bar \nP2=20*10**5 #Carnot cycle pressure in bar\nV2=1\nV1=5\nV3=2\n#consider air as the working fluid therefore\nR=0.287 #In KJ/Kg K\nCp=1.005 #In KJ/Kg K\nCv=0.718 #In KJ/Kg K\nK=1.4\ngamma=1.4\n\n#calculation\nT1=T2*((v2/v1)**(gamma-1)) #Minimum temp in degree celsius\nQs=R*T2*math.log(V3/V2) #Heat supplied process in KJ/Kg\nQR=R*T1*math.log((V1/V2)*(V2/V3)*((T2/T1)**(1/(gamma-1)))) #Heat Rejected Process in KJ/Kg\netath=(1-(T1/T2))*100 #Thermal Effeiciency of the carnot cycle in %\n\n\n\n#output\nprint(\"Minimum temp= \",round(T1,1),\"degree celsius\")\nprint(\"Heat supplied process= \",round(Qs,1),\"KJ/Kg\")\nprint(\"Heat Rejected Process= \",round(QR,1),\"KJ/Kg\")\nprint(\"Thermal Effeiciency of the carnot cycle= \",round(etath,1),\" %\")\n", + "language": "python", + "metadata": {}, + "outputs": [ + { + "output_type": "stream", + "stream": "stdout", + "text": "Minimum temp= 341.4 degree celsius\nHeat supplied process= 129.3 KJ/Kg\nHeat Rejected Process= 247.5 KJ/Kg\nThermal Effeiciency of the carnot cycle= 47.5 %\n" + } + ], + "prompt_number": 13 + }, + { + "cell_type": "heading", + "level": 2, + "metadata": {}, + "source": "Example 5 Page No:308 " + }, + { + "cell_type": "code", + "collapsed": false, + "input": "#Input data\nP1=1 #Isentropic Compression in bar\nP2=20 #Isentropic Compression in bar\n#consider air as the working fluid therefore\ngamma=1.4\n\n\n#Calculation\nr=(P2/P1)**(1/gamma) #Isentropic process \neta=100*(1-(1/(r**(gamma-1))))#Otto cycle air standard effeciency in %\n\n\n#Output\nprint(\"compression ratio=\",round(r,2),)\nprint(\"standard efficiency=\",round(eta,1),\"%\")\n", + "language": "python", + "metadata": {}, + "outputs": [ + { + "output_type": "stream", + "stream": "stdout", + "text": "compression ratio= 8.5\nstandard efficiency= 57.5 %\n" + } + ], + "prompt_number": 1 + }, + { + "cell_type": "heading", + "level": 2, + "metadata": {}, + "source": "Example 6 Page No:308" + }, + { + "cell_type": "code", + "collapsed": false, + "input": "#Input data\nT1=27+273 #Initial temp in degree celsius \nT2=450+273 #Final temp in degree celsius \n\n#calculation\nr=(T2/T1)**(1/(gamma-1)) #Isentropic process \neta=100*(1-(1/(r**(gamma-1)))) #Otto cycle air standard effeciency in %\n\n#output\nprint(\"compression ratio=\",round(r),)\nprint(\"standard efficiency=\",round(eta,1),\"%\")", + "language": "python", + "metadata": {}, + "outputs": [ + { + "output_type": "stream", + "stream": "stdout", + "text": "compression ratio= 9\nstandard efficiency= 58.5 %\n" + } + ], + "prompt_number": 2 + }, + { + "cell_type": "heading", + "level": 2, + "metadata": {}, + "source": "Example 7 Page No:309" + }, + { + "cell_type": "code", + "collapsed": false, + "input": "#Input data\nD=200*10**-3 #Otto cycle cylindrical bore in mm\nL=450*10**-3 #Otto cycle Stroke in mm\nvc=2*10**-3 #Clearance volume in mm**3\ngamma=1.4\npi=3.142\n\n#calculation\nvs=(pi/4)*(D**2*L) #Swept volume\nr=((vs+vc)/vc) #Compression ratio\neta=100*(1-(1/(r**(gamma-1)))) #Standard efficiency\n\n#output\nprint(\"Swept volume=\",round(vs,6),\"m**3\")\nprint(\"compression ratio=\",round(r,3),)\nprint(\"standard efficiency=\",round(eta,1),\"%\")\n\n", + "language": "python", + "metadata": {}, + "outputs": [ + { + "output_type": "stream", + "stream": "stdout", + "text": "Swept volume= 0.014139 m**3\ncompression ratio= 8.07\nstandard efficiency= 56.6 %\n" + } + ], + "prompt_number": 5 + }, + { + "cell_type": "heading", + "level": 2, + "metadata": {}, + "source": "Example 8 Page No:309" + }, + { + "cell_type": "code", + "collapsed": false, + "input": "#Input data\nP1=0.1*10**6 #Otto cycle air\nT1=35+273 #Otto cycle temp degree celsius\nr=9 #Compression ratio\nQs=1800 #Supplied heat in kJ/kg\nv1=9 \nv2=1\nR=0.287*10**3\ngamma=1.4\nCv=0.718\n\n\n\n#calculation\nT2=(T1*((v1/v2)**(gamma-1))) #Temperature at point 2 in K\nP2=(P1*((v1/v2)**1.4))*10**-6 #pressure at point 2 in MPa \nT3=((Qs/Cv)+(T2)) #Max temp of cycle in degree celsius\nP3=(T3/T2*P2) #Max pressure of cycle in MPa\neta=100*(1-(1/(r**(gamma-1))))#Otto cycle thermal efficiency in %\nWD=(Qs*eta)*10**-2 #Work done during the cycle in KJ/Kg\nv1=((R*T1)/P1) #Char gass equation in m**3/Kg\nv2=v1/r #Char gass equation in m**3/Kg\nSv=v1-v2 #Swept volume in m**3/Kg\nPme=(WD/Sv)*10**-3 #Mean effective pressure in MPa\nalpha=P3/P2 #Explosion ratio\nPm=(((P1*r)/((r-1)*(gamma-1)))*(((r**(gamma-1))-1)*(alpha-1)))*10**-6#Mean effective pressure in MPa\n\n\n#Output\nprint(\"Temperature at point=\",round(T2,1),\"K\")\nprint(\"pressure at point=\",round(P2,3),\"MPa\")\nprint(\"Max temp of cycle=\",round(T3,3),\"K\")\nprint(\"Max pressure= \",round(P3,1),\"MPa\")\nprint(\"Otto cycle thermal efficiency=\",round(eta,1),\"%\")\nprint(\"Work done during the cycle=\",round(WD,),\"J/Kg\")\nprint(\"Char gass equation=\",round(v1,3),\"m**3/Kg\")\nprint(\"Char gass equation=\",round(v2,4),\"m**3/Kg\")\nprint(\"Swept volume=\",round(Sv,4),\"m**3/Kg\")\nprint(\"Mean effective pressure=\",round(Pme,2),\"MPa\")\nprint(\"Explosion ratio=\",round(alpha,2))\nprint(\"Mean effective pressure=\",round(Pm,2),\"MPa\")\n\n\n", + "language": "python", + "metadata": {}, + "outputs": [ + { + "output_type": "stream", + "stream": "stdout", + "text": "Temperature at point= 741.7 K\npressure at point= 2.167 MPa\nMax temp of cycle= 3248.697 K\nMax pressure= 9.5 MPa\nOtto cycle thermal efficiency= 58.5 %\nWork done during the cycle= 1053 J/Kg\nChar gass equation= 0.884 m**3/Kg\nChar gass equation= 0.0982 m**3/Kg\nSwept volume= 0.7857 m**3/Kg\nMean effective pressure= 1.34 MPa\nExplosion ratio= 4.38\nMean effective pressure= 1.34 MPa\n" + } + ], + "prompt_number": 165 + }, + { + "cell_type": "heading", + "level": 2, + "metadata": {}, + "source": "Example 9 Page No:311" + }, + { + "cell_type": "code", + "collapsed": false, + "input": "#Input data\nP1=0.1 #Beginning compression in MPa\nT1=40+273 #Beginning temp in degree celsius\neta=0.55 #Standard effeciency in %\nQR=540 #Rejected heat in KJ/Kg\nr=7.36 #Compression ratio\n\n\n#calculation\n#eta=(1-(1/(r**(gamma-1))))\nQS=(-QR/(eta-1)) #Heat supplied/unit mass in KJ/Kg\nWD=QS-QR #Work done per Kg of air in KJ/Kg\nT2=T1*(r**(gamma-1)) #Temp at end of compression in K\nP2=P1*((r)**gamma) #pressure at point 2 in MPa\nT3=(QS/Cv)+T2 #max temp of the cycle in K\nP3=(T3/T2)*P2 #max pressure of the cycle in MPa\n\n#output\nprint(\"Heat supplied/unit mass=\",round(QS,),\"KJ/Kg\")\nprint(\"Work done per Kg of air= \",round(WD,),\"KJ/Kg\")\nprint(\"Temp at end of compression=\",round(T2,1),\"K\")\nprint(\"pressure at point two=\",round(P2,3),\" MPa\")\nprint(\"max temp of the cycle=\",round(T3,1),\"K\")\nprint(\"max pressure of the cycle=\",round(P3,3),\" MPa\")\n", + "language": "python", + "metadata": {}, + "outputs": [ + { + "output_type": "stream", + "stream": "stdout", + "text": "Heat supplied/unit mass= 1200 KJ/Kg\nWork done per Kg of air= 660 KJ/Kg\nTemp at end of compression= 695.5 K\npressure at point two= 1.635 MPa\nmax temp of the cycle= 2366.8 K\nmax pressure of the cycle= 5.565 MPa\n" + } + ], + "prompt_number": 64 + }, + { + "cell_type": "heading", + "level": 2, + "metadata": {}, + "source": "Example 10 Page No:312" + }, + { + "cell_type": "code", + "collapsed": false, + "input": "#Input data\nT1=300 #Initial temp in K\nT3=2500 #Final temp in K\nP1=1 #Initial pressure in N/m**2\nP3=50 #Final pressure in N/m**2\ngamma=1.4\nCv=0.718\n\n#calculation\nr=(P3*T1)/(P1*T3) #Compression ratio\neta=(1-(1/r**(gamma-1))) #Standard effeciency in %\nT2=T1*((P3/P1)**((gamma-1)/gamma)) #Middle temperature in K\nQs=Cv*(T3-T2) #Heat supplied in KJ/Kg\nWD=eta*Qs #Work done KJ/Kg\n\n#output\nprint(\"Compression ratio=\",r,\"\")\nprint(\"Standard effeciency=\",round(eta,4),\"%\")\nprint(\"Middle temperature=\",round(T2,2),\"K\")\nprint(\"Heat supplied=\",round(Qs,2),\"KJ/Kg\")\nprint(\"Work done=\",round(WD,1),\"KJ/Kg\")", + "language": "python", + "metadata": {}, + "outputs": [ + { + "output_type": "stream", + "stream": "stdout", + "text": "Compression ratio= 6.0 \nStandard effeciency= 0.5116 %\nMiddle temperature= 917.36 K\nHeat supplied= 1136.33 KJ/Kg\nWork done= 581.4 KJ/Kg\n" + } + ], + "prompt_number": 84 + }, + { + "cell_type": "heading", + "level": 2, + "metadata": {}, + "source": "Example 11 Page No:316" + }, + { + "cell_type": "code", + "collapsed": false, + "input": "#input data\nr=18 #compression ratio of diesel engine\nK=6 #cut-off ratio of the stroke in%\nrho=2.02 \n\n#calculation\n#diesel engine air standard efficiency\neta=100*((1-(1/r**(gamma-1)))*(1/gamma*(rho**(gamma-1)/(rho-1))))\n\n#output\nprint(\"diesel engine air standard efficiency\",round(eta,1),\"%\")\n", + "language": "python", + "metadata": {}, + "outputs": [ + { + "output_type": "stream", + "stream": "stdout", + "text": "diesel engine air standard efficiency 63.6 %\n" + } + ], + "prompt_number": 87 + }, + { + "cell_type": "heading", + "level": 2, + "metadata": {}, + "source": "Example 12 Page No:317" + }, + { + "cell_type": "code", + "collapsed": false, + "input": "#Input Data\nr=22 #compression ratio of diesel engine r=v1/v2\nr1=11 #expansion ratio r1=v4/v3\ngamma=1.4\nrho=1.4\n\n#calculation\nrho=r/r1 #cut-off ratio\n#diesel engine air standard efficiency \neta=100*((1-(1/r**(gamma-1)))*(1/gamma*(rho**(gamma-1)/(rho-1))))\n\n#output\nprint(\"cut-off ratio=\",rho,)\nprint(\"diesel engine air standard efficiency=\",round(eta,2),\"%\")", + "language": "python", + "metadata": {}, + "outputs": [ + { + "output_type": "stream", + "stream": "stdout", + "text": "cut-off ratio= 2.0\ndiesel engine air standard efficiency= 66.88 %\n" + } + ], + "prompt_number": 88 + }, + { + "cell_type": "heading", + "level": 2, + "metadata": {}, + "source": "Example 13 Page No:317" + }, + { + "cell_type": "code", + "collapsed": false, + "input": "#Input data\nVc=10/100 #Clearance volume in % \nVs=Vc/0.1 \nK=0.05 #Cut-off of the strok in \ngamma=1.4\n\n#Calculation\nr=((Vs+Vc)/(Vc)) #Compression ratio\nrho=1+K*(r-1) #Cut-off ratio\n#Effeciency in %\neta=(1-(1/r**(gamma-1))*((1/gamma)*(((rho**(gamma))-1)/(rho-1))))*100\n\n#output\nprint(\"Compression ratio=\",r,\"Vs\")\nprint(\"Cut-off ratio=\",rho,)\nprint(\"Effeciency=\",round(eta,2),\"%\")", + "language": "python", + "metadata": {}, + "outputs": [ + { + "output_type": "stream", + "stream": "stdout", + "text": "Compression ratio= 11.0 Vs\nCut-off ratio= 1.5\nEffeciency= 58.17 %\n" + } + ], + "prompt_number": 107 + }, + { + "cell_type": "heading", + "level": 2, + "metadata": {}, + "source": "Example 14 Page No:" + }, + { + "cell_type": "code", + "collapsed": false, + "input": "#Input data\nT1=50+273 #Temperature at the beginning of the compression\nT2=700+273 #Temperature at the end of the compression\nT3=2000+273 #Temperature at the beginning of the expansion\n\n\n#Calculation\nr=((T2/T1)**(1/(gamma-1))) #Compression ratio \nrho=(T3/T2) #Cut-off ratio\nK=((rho-1)/(r-1)) #Also cut-off ratio\n#Air standard efficiency\neta=(1-(1/r**(gamma-1))*((1/gamma)*(((rho**(gamma))-1)/(rho-1))))*100\n\n#Output\nprint(\"compression ratio=\",round(r,2),\"\")\nprint(\"cut-off ratio=\",round(rho,3),)\nprint(\"also cut-off ratio=\",round(K,2),\"\")\nprint(\"air standard efficiency=\",round(eta,2),\"%\")", + "language": "python", + "metadata": {}, + "outputs": [ + { + "output_type": "stream", + "stream": "stdout", + "text": "compression ratio= 15.75 \ncut-off ratio= 2.336\nalso cut-off ratio= 0.09 \nair standard efficiency= 59.54 %\n" + } + ], + "prompt_number": 122 + }, + { + "cell_type": "heading", + "level": 2, + "metadata": {}, + "source": "Example 15 Page No:317" + }, + { + "cell_type": "code", + "collapsed": false, + "input": "#Input data\nP1=0.1 #Diesel cycle is supplied# with air in MPa\nT1=40+273 #Diesel cycle is supplied with temperature in degree celsius \nr=18 #Compression ratio\nQs=1500 #Heat supplied\nv1=18\nv2=1\nCp=1.005\n\n\n#Calculation\nT2=T1*((v1/v2)**(gamma-1)) #For isentropic process the temperature is\nP2=P1*((v1/v2)**(gamma)) #For isentropic process the pressure is\nT3=(Qs/Cp)+T2 #Maximum temperatureof the cycle\nrho=T3/T2 #Cut-off ratio\n#Air standard efficiency\neta=(1-(1/r**(gamma-1))*((1/gamma)*(((rho**(gamma))-1)/(rho-1))))*100\nNWD=(Qs*eta)*10**-2 #Net work done\n\n#Output\nprint(\"for isentropic process the temperature=\",round(T2,1),\"K\")\nprint(\"for isentropic process the pressure=\",round(P2,2),\"MPa\")\nprint(\"maximum temperatureof the cycle=\",round(T3,2),\"K\")\nprint(\"cut-off ratio=\",round(rho,1),\"MPa\")\nprint(\"air standard efficiency=\",round(eta,2),\"%\")\nprint(\"net work done=\",round(NWD,),\"KJ/Kg\")\n\n", + "language": "python", + "metadata": {}, + "outputs": [ + { + "output_type": "stream", + "stream": "stdout", + "text": "for isentropic process the temperature= 994.6 K\nfor isentropic process the pressure= 5.72 MPa\nmaximum temperatureof the cycle= 2487.15 K\ncut-off ratio= 2.5 MPa\nair standard efficiency= 60.93 %\nnet work done= 914 KJ/Kg\n" + } + ], + "prompt_number": 130 + }, + { + "cell_type": "heading", + "level": 2, + "metadata": {}, + "source": "Example 16 Page No:317" + }, + { + "cell_type": "code", + "collapsed": false, + "input": "#Input data\nr=14 #compression ratio of standard diesel cycle\nP1=1 #compression stroke in bar\nT1=300 #temperature of air in k\nT3=2774 #temperature rises in k\nCP=1.005\nv1=14\nv2=1\ngamma=1.4\nQs=1921.43\nR=0.287*10**3\n\n\n#calculation\nT2=T1*((v1/v2)**(gamma-1)) #constant pressure\nrho=T3/T2 #cut-off ratio\neta=(1-(1/r**(gamma-1))*((1/gamma)*(((rho**(gamma))-1)/(rho-1))))*100 #air standard efficiency\nHS=(CP*(T3-T2)) #heat supplied\nWD=(Qs*eta)*10**-2 #Net work done\nv1=(R*T1/P1) *10**-5 #characteristics gas equation\nv2=(v1/r ) #characteristics gas equation\nSv=(v1-v2) #Swept volume\nPme=(WD/Sv )*10**-2 #Mean effective pressur\nPm=((P1*r)/((r-1)*(gamma-1)))*((gamma*(r**(gamma-1)))*(rho-1)-((rho**(gamma))-1))# mean effective pressure \n\n\n#output\nprint(\"constant pressure=\",round(T2,2),\"K\")\nprint(\"cut-off ratio= \",round(rho,2),)\nprint(\"air standard efficiency=\",round(eta,2),\"%\")\nprint(\"heat supplied= \",round(HS,2),\"KJ/Kg\")\nprint(\"Net work done= \",round(WD,2),\"KJ/Kg\")\nprint(\"characteristics gas equation= \",round(v1,3),\"m**3/Kg\")\nprint(\"characteristics gas equation= \",round(v2,4),\"m**3/Kg\")\nprint(\"Swept volume= \",round(Sv,4),\"m**3/Kg\")\nprint(\"Mean effective pressure= \",round(Pme,1),\"bar\")\nprint(\"Mean effective pressure= \",round(Pm,1),\"bar\")\n", + "language": "python", + "metadata": {}, + "outputs": [ + { + "output_type": "stream", + "stream": "stdout", + "text": "constant pressure= 862.13 K\ncut-off ratio= 3.22\nair standard efficiency= 53.65 %\nheat supplied= 1921.43 KJ/Kg\nNet work done= 1030.91 KJ/Kg\ncharacteristics gas equation= 0.861 m**3/Kg\ncharacteristics gas equation= 0.0615 m**3/Kg\nSwept volume= 0.7995 m**3/Kg\nMean effective pressure= 12.9 bar\nMean effective pressure= 12.9 bar\n" + } + ], + "prompt_number": 155 + }, + { + "cell_type": "code", + "collapsed": false, + "input": "", + "language": "python", + "metadata": {}, + "outputs": [] + } + ], + "metadata": {} + } + ] +}
\ No newline at end of file diff --git a/Basic_mechanical_engineering_by_Basant_Agrawal_,_C.M_Agrawal/Chapter_2_Properties_Of_M_CMataUP.ipynb b/Basic_mechanical_engineering_by_Basant_Agrawal_,_C.M_Agrawal/Chapter_2_Properties_Of_M_CMataUP.ipynb new file mode 100644 index 00000000..67b98032 --- /dev/null +++ b/Basic_mechanical_engineering_by_Basant_Agrawal_,_C.M_Agrawal/Chapter_2_Properties_Of_M_CMataUP.ipynb @@ -0,0 +1,146 @@ +{ + "metadata": { + "name": "Chapter 2 Properties Of Material" + }, + "nbformat": 3, + "nbformat_minor": 0, + "worksheets": [ + { + "cells": [ + { + "cell_type": "heading", + "level": 1, + "metadata": {}, + "source": "Chapter 2 Properties Of Material" + }, + { + "cell_type": "heading", + "level": 2, + "metadata": {}, + "source": "Example 1 Page No:19" + }, + { + "cell_type": "code", + "collapsed": false, + "input": "#Input data\nL=5 #Length of steel bar in m\nd=25*10**-3 #Diametr of steel bar in mm\ndeltaLt=25*10**-3 #Steel \npt=800 #Power load of steel bar in N\n\n\n#Calculation\nA=((pi/4)*((deltaLt)**2)) #Cross-section area\nsigmat=(pt)/(A) #Stress in steel bar\net=(deltaLt)/L #Strain in steel bar\nE=((sigmat)/(et)) #Young's modulus\n\n\n#Output\nprint(\"value of Cross-section area=\",A,\"m**2\")\nprint(\"value of tress in steel bar=\",sigmat,\"MN/m**2\")\nprint(\"value of strain in steel bar= \",et)\nprint(\"value of Young's modulus= \",E,\"N/m**2\")\n\n\n", + "language": "python", + "metadata": {}, + "outputs": [ + { + "output_type": "stream", + "stream": "stdout", + "text": "value of Cross-section area= 0.0004919062500000002 m**2\nvalue of tress in steel bar= 1626326.154628041 MN/m**2\nvalue of strain in steel bar= 0.005\nvalue of Young's modulus= 325265230.92560816 N/m**2\n" + } + ], + "prompt_number": 15 + }, + { + "cell_type": "heading", + "level": 2, + "metadata": {}, + "source": "Example 2 Page No:20\n" + }, + { + "cell_type": "code", + "collapsed": false, + "input": "#Input data\nL=300*10**-3 #Length of hexagonal prismatic steel bar in mm\nA=500*10**-6 #Area of cross section of steel bar mm**2\nPt=500*10**3 #Load of steel bar in KN\nE=210*10**9 #Modulus of elasticity GN/m**2\n\n#Calculation\nsigmat=((Pt)/(A)) #Stress in steel bar\net=((sigmat)/(E)) #Strain steel bar is\ndeltaLt=((et)*(L)) #Therefore,elongation of the steel bar is given by\n\n#Output\nprint('stress in steel bar=',sigmat,\"N/m**2\")\nprint('therefore,strain steel bar is given by=',et,)\nprint('therefore,elongation of the steel bar is given by=',deltaLt,\"m\")\n\n\n", + "language": "python", + "metadata": {}, + "outputs": [ + { + "output_type": "stream", + "stream": "stdout", + "text": "stress in steel bar = 1000000000.0 N/m**2\ntherefore,strain steel bar is given by = 0.004761904761904762\ntherefore,elongation of the steel bar is given by= 0.0014285714285714286 m\n" + } + ], + "prompt_number": 15 + }, + { + "cell_type": "heading", + "level": 2, + "metadata": {}, + "source": "Example 3 Page No:21\n" + }, + { + "cell_type": "code", + "collapsed": false, + "input": "#Input Data\nPt=600 #Tensils force in N\nd=2*10**-3 #Diameter of steel wire in mm\nL=15 #Length of wire in m\nE=210*10**9 #Modulus of elasticity of the material in GN/M**2\npi=3.1482\n\n\n#Calculation\nA=((pi/4)*((d)**2)) #(1)cross section area\nsigmat=(Pt)/(A) #stress in the steel wire \net=((sigmat)/(E)) #(2)Therefore, strain in steel wire is given by\ndeltaLt=et*L #(3)Enlongation of the steel wire is given by \npe=((deltaLt/L)*100) #(4)Percentage elongation\n\n\n#Output\nprint(\"cross section area= \",A,\"m**2\")\nprint(\"stress in the steel wire=\",sigmat,\"GN/m**2\")\nprint(\"modulus of elasticity=\",et)\nprint(\"strain in steel wire=\",deltaLt,\"mm\")\nprint(\"percentage elongation= \",pe,\"%\")\n\n\n\n", + "language": "python", + "metadata": {}, + "outputs": [ + { + "output_type": "stream", + "stream": "stdout", + "text": "cross section area= 3.1481999999999998e-06 m**2\nstress in the steel wire= 190585096.24547362 GN/m**2\nmodulus of elasticity= 0.0009075480773593982\nstrain in steel wire= 0.013613221160390973 mm\npercentage elongation= 0.09075480773593982 %\n" + } + ], + "prompt_number": 1 + }, + { + "cell_type": "heading", + "level": 2, + "metadata": {}, + "source": "Example 4 Page No:22\n" + }, + { + "cell_type": "code", + "collapsed": false, + "input": "#Input data\nA=30*30*10**-6 #Area of square rod in mm**2\nL=5 #Length of square rod in m\nPc=150*10**3 #Axial comperessive load of a rod in kN\nE=215*10**9 #Modulus of elasticity in GN/m**2\n\n\n#Calculation\nsigmac=((Pc)/(A)) #Stress in square rod\nec=((sigmac)/(E)) #Modulusof elasticity is E=sigmac/ec ,therefore strain in square rod is\ndeltaLc=ec*5 #Therefore shortening of length of the rod \n\n\n#Output\nprint (\"stress in square rod\",sigmac,\"N/m**2\")\nprint(\"strain in square rod ec=\",ec,)\nprint(\"shortening of length of the rod=\",deltaLc,\"m\")", + "language": "python", + "metadata": {}, + "outputs": [ + { + "output_type": "stream", + "stream": "stdout", + "text": "stress in square rod 166666666.66666666 N/m**2\nstrain in square rod ec= 0.0007751937984496124\nshortening of length of the rod= 0.003875968992248062 m\n" + } + ], + "prompt_number": 25 + }, + { + "cell_type": "heading", + "level": 2, + "metadata": {}, + "source": "Example 5 Page No:23" + }, + { + "cell_type": "code", + "collapsed": false, + "input": "#input data\nd=50*10**-6 #Diameter of metalic rod in mm**2\nL=220*10**-3 #Length of metalic rod in mm\nPt=40*10**3 #Load of metalic rod in KN\ndeltaLt=0.03*10**-3 #Elastic enlongation in mm\nypl=160*10**3 #Yield point load in KN\nml=250*10**3 #Maximum load in KN\nlsf=270*10**-3 #Length of specimen at fracture in mm\npi=3.1482\n\n#calculation\nA=(((pi)/(4)*((d)**2))) #(1)Cross section area\nsigmat=(Pt/A) #Stress in metallic rod\net=(deltaLt/L) #Strain n metallic rod\nE=(sigmat/et) #Young's modulus\nys=(ypl/A) #(2)Yeild strength\nuts=(ml/A) #(3)Ultimate tensile strength\nPebf=((lsf-L)/L)*100 #Percentage elongation before fracture \n\n\n\n#output\nprint(\"cross section area\",A,\"m**2\")\nprint(\"stress in metallic rod\",sigmat,\"N/m**2\")\nprint(\"strain n metallic rod\",et,)\nprint(\"young's modulus\",E,\"GN/m**2\")\nprint(\"yeild strength\",ys,\"MN/m**2\")\nprint(\"ultimate tensile strength\",uts,\"MN/m**2\")\nprint(\"percentage elongation before fracture\",Pebf,\"%\")\n", + "language": "python", + "metadata": {}, + "outputs": [ + { + "output_type": "stream", + "stream": "stdout", + "text": "cross section area 1.967625e-09 m**2\nstress in metallic rod 20329076932850.52 N/m**2\nstrain n metallic rod 0.00013636363636363637\nyoung's modulus 1.4907989750757046e+17 GN/m**2\nyeild strength 81316307731402.08 MN/m**2\nultimate tensile strength 127056730830315.75 MN/m**2\npercentage elongation before fracture 22.727272727272734 %\n" + } + ], + "prompt_number": 5 + }, + { + "cell_type": "heading", + "level": 2, + "metadata": {}, + "source": "Example 6 Page No:24\n" + }, + { + "cell_type": "code", + "collapsed": false, + "input": "#Input data\nA=50*50*10**-6 #Area ofsquare metal bar in mm**2\nPc=600*10**3 #Axial compress laod in KN\nL=200*10**-3 #Gauge length of metal bar in mm\ndeltaLc=0.4*10**-3 #Contraction length of metal bar in mm\ndeltaLlateral=0.05*10**-3 #Lateral length of metal bar in mm\n\n#Calculation\nsigmac=((Pc)/(A)) #Stress in square metal bar \nec=((deltaLc)/(L)) #Longitudinal or linear strain in square metal bar\nE =((sigmac)/(ec)) #Smodule of elasticity\nelateral=((deltaLlateral)/(L)) #Lateral strain in square metal bar\npoissonsratio=(elateral)/(ec)\n\n\n#Output\nprint(\"stress in bar=\",sigmac,\"n/m**2\")\nprint(\"longitudinal or linear strain in square metal bar=\",ec,)\nprint(\"module of elasticity=\",E,\"N/m**2\")\nprint(\"lateral strain in square metal bar=\",elateral,)\nprint(\"poissons ratio=\",poissonsratio,)\n\n", + "language": "python", + "metadata": {}, + "outputs": [ + { + "output_type": "stream", + "stream": "stdout", + "text": "stress in bar= 240000000.0 n/m**2\nlongitudinal or linear strain in square metal bar= 0.002\nmodule of elasticity= 120000000000.0 N/m**2\nlateral strain in square metal bar= 0.00025\npoissons ratio= 0.125\n" + } + ], + "prompt_number": 12 + } + ], + "metadata": {} + } + ] +}
\ No newline at end of file diff --git a/Basic_mechanical_engineering_by_Basant_Agrawal_,_C.M_Agrawal/Chapter_5_Metrology_tKHsuep.ipynb b/Basic_mechanical_engineering_by_Basant_Agrawal_,_C.M_Agrawal/Chapter_5_Metrology_tKHsuep.ipynb new file mode 100644 index 00000000..4528c633 --- /dev/null +++ b/Basic_mechanical_engineering_by_Basant_Agrawal_,_C.M_Agrawal/Chapter_5_Metrology_tKHsuep.ipynb @@ -0,0 +1,83 @@ +{ + "metadata": { + "name": "Chapter 5 Metrology" + }, + "nbformat": 3, + "nbformat_minor": 0, + "worksheets": [ + { + "cells": [ + { + "cell_type": "heading", + "level": 1, + "metadata": {}, + "source": "Chapter 5 Metrology" + }, + { + "cell_type": "heading", + "level": 2, + "metadata": {}, + "source": "Example 1 Page No:81" + }, + { + "cell_type": "code", + "collapsed": false, + "input": "#Input data\nMSR=3.2 #Main scale reading of cylindrical rod in cm\nNCD=7 #Number of coinciding Vernier Scale division \nLc=0.1*10**-3 #Least count of the instrument in mm\n\n#Calculation\nDOR=MSR+(NCD*Lc) #Diameter of the rod\n\n#Output\nprint(\"Diameter of the rod= \",round(DOR,3),\"cm\")\n\n", + "language": "python", + "metadata": {}, + "outputs": [ + { + "output_type": "stream", + "stream": "stdout", + "text": "Diameter of the rod= 3.201 cm\n" + } + ], + "prompt_number": 19 + }, + { + "cell_type": "heading", + "level": 2, + "metadata": {}, + "source": "Example 2 Page No:82" + }, + { + "cell_type": "code", + "collapsed": false, + "input": "#Input data\nMSR=5.3 #Main scale reading of prismatic bar in cm\nNCD=6 #Number of coinciding Vernier Scale division \nLc=0.1*10**-3 #Least count of the instrument in mm \nNe=(-0.2*10**-3) #Instrument bears a nagative error in mm\n\n#Calulation\nMlb=MSR+(NCD*Lc) #Measured length of the bar in cm\nTlb=(Mlb-(Ne)) #True length of the bar in cm\n\n\n#Output\nprint(\"Measured length of the bar= \",round(Mlb,3),\"cm\")\nprint(\"true length of the bar= \",round(Tlb,3),\"cm\")\n\n\n", + "language": "python", + "metadata": {}, + "outputs": [ + { + "output_type": "stream", + "stream": "stdout", + "text": "Measured length of the bar= 5.301 cm\ntrue length of the bar= 5.301 cm\n" + } + ], + "prompt_number": 20 + }, + { + "cell_type": "heading", + "level": 2, + "metadata": {}, + "source": "Example 3 Page No:88 " + }, + { + "cell_type": "code", + "collapsed": false, + "input": "#Input data\nimport math\nL=100 #Height of sine bar\ntheta=12.8 #angle in degree minut\n#Z=sin(theta)=0.22154849\nZ=0.22154849\n\n#Calculation\nb=Z*L #Height required to setup in mm\n\n\n#Output\nprint(\"Height required=\",round(b,4),\"mm\")\n ", + "language": "python", + "metadata": {}, + "outputs": [ + { + "output_type": "stream", + "stream": "stdout", + "text": "Height required= 22.1548 mm\n" + } + ], + "prompt_number": 18 + } + ], + "metadata": {} + } + ] +}
\ No newline at end of file diff --git a/Basic_mechanical_engineering_by_Basant_Agrawal_,_C.M_Agrawal/Chapter_7_Fluid_Mechanics_xkevzFX.ipynb b/Basic_mechanical_engineering_by_Basant_Agrawal_,_C.M_Agrawal/Chapter_7_Fluid_Mechanics_xkevzFX.ipynb new file mode 100644 index 00000000..2cb36b62 --- /dev/null +++ b/Basic_mechanical_engineering_by_Basant_Agrawal_,_C.M_Agrawal/Chapter_7_Fluid_Mechanics_xkevzFX.ipynb @@ -0,0 +1,461 @@ +{ + "metadata": { + "name": "Chapter 7 Fluid Mechanics" + }, + "nbformat": 3, + "nbformat_minor": 0, + "worksheets": [ + { + "cells": [ + { + "cell_type": "heading", + "level": 1, + "metadata": {}, + "source": "Chapter 7 Fluid Mechanics" + }, + { + "cell_type": "heading", + "level": 2, + "metadata": {}, + "source": "Example 1 Page No:113" + }, + { + "cell_type": "code", + "collapsed": false, + "input": "#Input data\nV=5 #volume of the liquid in m**3\nW=45*10**3 #weight of the liquid in KN\ng=9.81 #acceleration due to gravity in m/s**2\nrhow=1000 #constant value\n\n#Calculation\nm=((W)/(g)) #mass in Kg\nrho=(m/V) #Mass density in kg/m**3\nw=(W/V) #Weight Density in N/m**3\nv=(V/m) #Specific volume in m**3/kg\nS=rho/rhow #Specific gravity\n \n \n#Output\nprint(\"mass= \",round(m,2),\"Kg\")\nprint(\"Mass density= \",round(rho,2),\"kg/m**3\")\nprint(\"Weight Density= \",w,\"N/m**3\")\nprint(\"Specific volume= \",v,\"m**3/kg\")\nprint(\"Specific gravity= \",round(S,4),)\n\n\n", + "language": "python", + "metadata": {}, + "outputs": [ + { + "output_type": "stream", + "stream": "stdout", + "text": "mass= 4587.16 Kg\nMass density= 917.43 kg/m**3\nWeight Density= 9000.0 N/m**3\nSpecific volume= 0.00109 m**3/kg\nSpecific gravity= 0.9174\n" + } + ], + "prompt_number": 1 + }, + { + "cell_type": "heading", + "level": 2, + "metadata": {}, + "source": "Example 2 Page No:114" + }, + { + "cell_type": "code", + "collapsed": false, + "input": "#Input data\nV=3*10**-3 #3l of oil in m**3\nW=24 #Weight of oil in N\ng=9.81 #Gravity in m/s**2\nrohw=1000 #Constant value\n\n\n#Calculation\nm=((W)/(g)) #Mass in Kg\nrho=(m/V) #Mass density in kg/m**3\nw=(W/V) #Weight Density in N/m**3\nv=(V/m) #Specific volume in m**3/kg\nS=rho/rhow #Specific gravity\n \n#Output\nprint(\"mass= \",round(m,3),\"Kg\")\nprint(\"Mass density= \",round(rho,1),\"kg/m**3\")\nprint(\"Weight Density= \",w,\"N/m**3\")\nprint(\"Specific volume= \",round(v,7),\"m**3/kg\")\nprint(\"Specific gravity= \",round(S,4),)\n\n\n ", + "language": "python", + "metadata": {}, + "outputs": [ + { + "output_type": "stream", + "stream": "stdout", + "text": "mass= 2.446 Kg\nMass density= 815.5 kg/m**3\nWeight Density= 8000.0 N/m**3\nSpecific volume= 0.0012263 m**3/kg\nSpecific gravity= 0.8155\n" + } + ], + "prompt_number": 3 + }, + { + "cell_type": "heading", + "level": 2, + "metadata": {}, + "source": "Example 3 Page No:114" + }, + { + "cell_type": "code", + "collapsed": false, + "input": "#Input data\nS=0.85 #Specific gravity of a liquid\ng=9.81 #Acceleration due to gravity in m/s**2(constant)\nrhow=1000 #Constant value\n\n\n#Calculation\n#Specific gravity S=roh/rohw \nrho=S*rhow #Mass density in Kg/m**3\nw=rho*g #Weight Density in N/m**3\nv=(1/rho) #Specific volume in m**3/kg\n\n\n#Output\nprint(\"Mass densit= \",rho,\"Kg/m**3\")\nprint(\"Weight Density= \",w,\"N/m**3\")\nprint(\"Specific volume= \",round(v,6),\"m**3/kg\")\n\n\n", + "language": "python", + "metadata": {}, + "outputs": [ + { + "output_type": "stream", + "stream": "stdout", + "text": "Mass densit= 850.0 Kg/m**3\nWeight Density= 8338.5 N/m**3\nSpecific volume= 0.001176 m**3/kg\n" + } + ], + "prompt_number": 50 + }, + { + "cell_type": "heading", + "level": 2, + "metadata": {}, + "source": "Example 4 Page No:116" + }, + { + "cell_type": "code", + "collapsed": false, + "input": "#Input data\ndy=21*10**-3 #Horizontal plates in mm\ndu=1.4 #Relative velocity between the plates in m/s\nmu=0.6 #Oil of viscosity 6 poise in Ns/m**2\n\n#Calculation\ntau=(mu*(du/dy)) #Shear in the oil in N/m**2\n\n#Output\nprint(\"shear in the oil= \",round(tau,),\"N/m**2\")\n", + "language": "python", + "metadata": {}, + "outputs": [ + { + "output_type": "stream", + "stream": "stdout", + "text": "shear in the oil= 40 N/m**2\n" + } + ], + "prompt_number": 7 + }, + { + "cell_type": "heading", + "level": 2, + "metadata": {}, + "source": "Example 5 Page No:116" + }, + { + "cell_type": "code", + "collapsed": false, + "input": "#Input data\nv=4*10**-4 #kinematic viscosity is 4 stoke inm**2/s\nS=1.2 #specific gravity\ndow=1000 #density of water Kg/m**3\n\n\n#Calculation\nrho=S*dow \nvol=rho*v #viscosity of the liquid in Ns/m**2 or poise\n\n#Output\nprint(\"viscosity of the liquid= \",round(vol,2),\"Ns/m**2 \")", + "language": "python", + "metadata": {}, + "outputs": [ + { + "output_type": "stream", + "stream": "stdout", + "text": "viscosity of the liquid= 0.48 Ns/m**2 \n" + } + ], + "prompt_number": 9 + }, + { + "cell_type": "heading", + "level": 2, + "metadata": {}, + "source": "Example 6 Page No:6" + }, + { + "cell_type": "code", + "collapsed": false, + "input": "#Input data\nS=0.9 #Specific gravity\ntau=2.4 #shear stress in N/m**2\n(vg)=0.125 #velocitty gradientin per s\ndow=1000 #density of water Kg/m**3\n\n\n#Calculation\nmu=(tau)/(vg) #newton's law of viscosity in shear stress in Ns/m**2\nrho=S*dow #Density of oil in Kg/m**3\nv=(mu/rho) #Kinematic viscosity in m**2/s or stoke\n\n#Output\nprint(\"newton's law of viscosity in shear stress= \",mu,\"Ns/m**2\")\nprint(\"Density of oil= \",rho,\"Kg/m**3\")\nprint(\"Kinematic viscosity= \",round(v,5),\"m**2/s or stoke\")\n", + "language": "python", + "metadata": {}, + "outputs": [ + { + "output_type": "stream", + "stream": "stdout", + "text": "newton's law of viscosity in shear stress= 19.2 Ns/m**2\nDensity of oil= 900.0 Kg/m**3\nKinematic viscosity= 0.02133 m**2/s or stoke\n" + } + ], + "prompt_number": 11 + }, + { + "cell_type": "heading", + "level": 2, + "metadata": {}, + "source": "Example 7 Page No:117" + }, + { + "cell_type": "code", + "collapsed": false, + "input": "#Input data\nA=6*10**-2 #Space between two square plates in mm\ndy=8*10**-3 #Thickness of fluid in mm\nu1=0 #Lower pate is stationary\nu2=2.4 #Upper plate in m/s\nF=5 #Speed of force in N\ns=1.6 #Specific gravity of the liquid\ndow=1000 #Density of water Kg/m**3\n\n\n#(1)Calculation\ndu=u2-u1 #change in velocity in m/s\ntau=(F/((A)**2)) #shear stress N/m**2\nmu=(tau/(du/dy)) #Newton's law of viscosity in Ns/m**2 or poise\nrho=s*dow #Density of oil in kg/m**3\nv=(mu/rho) #kinematic viscosity is given by m**2/s or stoke\n\n\n#Output\nprint(\"change in velocity= \",du,\"m/s\")\nprint(\"shear stress= \",round(tau,2),\"N/m**2\")\nprint(\"Newton's law of viscosity= \",round(mu,1),\"Ns/m**2 \")\nprint(\"Density of oil= \",rho,\" kg/m**3\")\nprint(\"kinematic viscosity= \",round(v,4),\"m**2/s \")\n\n\n", + "language": "python", + "metadata": {}, + "outputs": [ + { + "output_type": "stream", + "stream": "stdout", + "text": "change in velocity= 2.4 m/s\nshear stress= 1388.89 N/m**2\nNewton's law of viscosity= 4.6 Ns/m**2 \nDensity of oil= 1600.0 kg/m**3\nkinematic viscosity= 0.0029 m**2/s \n" + } + ], + "prompt_number": 20 + }, + { + "cell_type": "heading", + "level": 2, + "metadata": {}, + "source": "Example 8 Page No:118" + }, + { + "cell_type": "code", + "collapsed": false, + "input": "#Input data\ndy=1.5*10**-4 #Two horizontal plates are placed in m\nmu=0.12 #Space between plates Ns/m**2\nA=2.5 #Upper area is required to move in m**2\ndu=0.6 #Speed rerlated to lower plate in m/s\n\n\n#(1)Calculation\ntau=(mu*(du/dy)) #Shear stress N/m**2\nF=tau*A #Force in N\nP=F*du #Power required to maintain the speed of upper plate in W\n\n\n#Output \nprint(\"Shear stress= \",round(tau,),\"N/m**2\")\nprint(\"Force= \",round(F,),\"N\")\nprint(\"Power required to maintain the speed of upper plate= \",round(P,),\"W\")\n", + "language": "python", + "metadata": {}, + "outputs": [ + { + "output_type": "stream", + "stream": "stdout", + "text": "Shear stress= 480 N/m**2\nForce= 1200 N\nPower required to maintain the speed of upper plate= 720 W\n" + } + ], + "prompt_number": 51 + }, + { + "cell_type": "heading", + "level": 2, + "metadata": {}, + "source": "Example 9 Page No 118" + }, + { + "cell_type": "code", + "collapsed": false, + "input": "#Input data \nmu=0.1 #Oil of viscosity used for lubricant in poise or Ns/m**2\nD=0.15 #Clearance between the shaft of diameter in m\ndy=3*10**-4 #Clearance in m\nN=90 #Shaft rorates in rpm\npi=3.14\n\n\n#Calculation\ndu=((pi*D*N)/60) #Tangential speed of shaft in m/s\ntau=(mu*(du/dy)) #The shear force in N/m**2\n\n#Output\nprint(\"Tangential speed of shaft= \",du,\"m/s\")\nprint(\"The shear force= \",tau,\"N/m**2\")\n\n\n\n", + "language": "python", + "metadata": {}, + "outputs": [ + { + "output_type": "stream", + "stream": "stdout", + "text": "Tangential speed of shaft= 0.7065 m/s\nThe shear force= 235.5 N/m**2\n" + } + ], + "prompt_number": 52 + }, + { + "cell_type": "heading", + "level": 2, + "metadata": {}, + "source": "Example 10 Page No:119" + }, + { + "cell_type": "code", + "collapsed": false, + "input": "#Input data\nimport math\nA=120*10**-3 #Side of square plate in mm\nW=30 #Side weight in N\ndu=3.75 #Uniform velocity in m/s\ntheta=30 #Lubricated inclined plane making an angle in degree at horizontal\ndy=6*10**-3 #Thickness lubricating oil film in mm\nrho=800 #Lubricating oil film density in Kg/m**3\n\n\n#Calculation\nsin30=0.5 \nF=W*sin30 #Component of force in N\ntau=(F/(A**2)) #Shear stress in Ns/m**2 \nmu=(tau/(du/dy)) #From Newton's law of Shear stress in Ns/m**2 \nV=(mu/rho)*10**3 #Kinematic viscosity in m**2/s\n\n\n#Output\nprint(\"Component of force= \",F,\"N\")\nprint(\"Shear stress= \",round(tau,2),\" Ns/m**2 \")\nprint(\"From Newton's law of Shear stress= \",round(mu,3),\"Ns/m**2\")\nprint(\"Kinematic viscosity= \",round(V,3),\"m**2/s\")\n", + "language": "python", + "metadata": {}, + "outputs": [ + { + "output_type": "stream", + "stream": "stdout", + "text": "Component of force= 15.0 N\nShear stress= 1041.67 Ns/m**2 \nFrom Newton's law of Shear stress= 1.667 Ns/m**2\nKinematic viscosity= 2.083 m**2/s\n" + } + ], + "prompt_number": 53 + }, + { + "cell_type": "heading", + "level": 2, + "metadata": {}, + "source": "Example 11 Page No 121" + }, + { + "cell_type": "code", + "collapsed": false, + "input": "#Input data \nZ=15 #Pressure due to column in m\nS=0.85 #Oil of specific gravity\ng=9.81 #Gravity\n\n\n\n#Calculation\nrho=S*10**3 #Density of oil in kg/m**3\nP=rho*g*Z #Pressure in N/m**2 or kPa\n\n\n#Output\nprint(\"Density of oil= \",rho,\"kg/m**3\")\nprint(\"Pressure= \",P,\"N/m**2\")", + "language": "python", + "metadata": {}, + "outputs": [ + { + "output_type": "stream", + "stream": "stdout", + "text": "Density of oil= 850.0 kg/m**3\nPressure= 125077.5 N/m**2\n" + } + ], + "prompt_number": 55 + }, + { + "cell_type": "heading", + "level": 2, + "metadata": {}, + "source": "Example 12 Page No 122" + }, + { + "cell_type": "code", + "collapsed": false, + "input": "#Input data\nZ1=1.5 #open tank contain water in m\nZ2=2.5 #oil of specific gravity for depth in m\nS=0.9 #oil of specific gravity \nrho1=1000 #density of water in Kg/m**3\nrho2=S*10**3 #density of oil in Kg/m**3\ng=9.81 #gravity\n\n\n\n#calculation\nP=rho1*g*Z1+rho2*g*Z2 #intensity of pressure in kPa\n\n\n#output\nprint(\"intensity of pressure=\",P,\"N/m**2\")", + "language": "python", + "metadata": {}, + "outputs": [ + { + "output_type": "stream", + "stream": "stdout", + "text": "intensity of pressure= 36787.5 N/m**2\n" + } + ], + "prompt_number": 57 + }, + { + "cell_type": "heading", + "level": 2, + "metadata": {}, + "source": "Example 13 Page No:124" + }, + { + "cell_type": "code", + "collapsed": false, + "input": "#Input data\nD1=0.2 #Diameter of pipe section 1 in m\nD2=0.3 #Diameter of pipe section 2 in m\nV1=15 #Velocity of water in m/s\npi=3.14\n\n#calculation\nQ=((3.14/4)*(0.2)**2)*15 #Discharge through pipe in m**3/s\nV2=(((3.14/4)*(0.2)**2)*15)/((3.14/4)*(0.3)**2) #velocity of section2 in m/s\n\n\n#Output\nprint(\"Discharge through pipe= \",round(Q,2),\"m**3/s\")\nprint(\"velocity of section2= \",round(V2,2),\"m/s\")", + "language": "python", + "metadata": {}, + "outputs": [ + { + "output_type": "stream", + "stream": "stdout", + "text": "Discharge through pipe= 0.47 m**3/s\nvelocity of section2= 6.67 m/s\n" + } + ], + "prompt_number": 59 + }, + { + "cell_type": "heading", + "level": 2, + "metadata": {}, + "source": "Example 14 Page No:126" + }, + { + "cell_type": "code", + "collapsed": false, + "input": "#Input data\nV=13 #Velocity of water flowing throgh pipe in m/s\nP=200*10**3 #Pressure of water in Kpa\nZ=25 #Height above the datum in m\ng=9.81\nrho=1000\n\n\n#Calculation\nE=(P/(rho*g))+((V**2)/(2*g))+(Z) #Total energy per unit weight in m\n\n\n#Output\nprint(\"Total energy per unit weight=\",round(E,),\"m\")\n", + "language": "python", + "metadata": {}, + "outputs": [ + { + "output_type": "stream", + "stream": "stdout", + "text": "Total energy per unit weight= 54 m\n" + } + ], + "prompt_number": 67 + }, + { + "cell_type": "heading", + "level": 2, + "metadata": {}, + "source": "Example 15 Page No:127" + }, + { + "cell_type": "code", + "collapsed": false, + "input": "#Input data\nimport math\nS=0.85 #Specific gravity of oil\nD=0.08 #Diameter of pipe in m\nP=1*10**5 #Intenity of presssure in N/m**2\nZ=15 #Total energy bead in m\nE=45 #Datum plane in m\nMdw=1*10**3 #Mass density of water constant\ng=9.81 #Gravity constant\nrho=S*Mdw #Mass density of oil\npi=3.14\n\n#calculation\nrho=S*Mdw #Mass density of oil\n#E=(P/(rho*g))+((V**2)/(2*g))+(Z)\nV=math.sqrt((E-((P/(rho*g))+Z))*(2*g)) #Total energy per unit weight in m/s\nQ=(pi/4)*D**2*V #Discharge in m**3/Kg\"\n\n#output\nprint(\"mass density of oil= \",rho,\"Kg/m**3\")\nprint(\"Total energy per unit weight= \",round(V,1),\"m/s\")\nprint(\"discharge=\",round(Q,4),\"m**3/Kg\")\n", + "language": "python", + "metadata": {}, + "outputs": [ + { + "output_type": "stream", + "stream": "stdout", + "text": "mass density of oil= 850.0 Kg/m**3\nTotal energy per unit weight= 18.8 m/s\ndischarge= 0.0944 m**3/Kg\n" + } + ], + "prompt_number": 64 + }, + { + "cell_type": "heading", + "level": 1, + "metadata": {}, + "source": "Example 16 Page No:127" + }, + { + "cell_type": "code", + "collapsed": false, + "input": "#input data\n#refer figure 11\nZA=2 #water flows section A-A in m \nDA=0.3 #datum pipe diameter at section A-A in m\nPA=550*10**3 #pressure in kPa\nVA=6 #flow velocity in m/s\nZB=18 #water flows at section B-B in m\nDB=0.15 #datum pipe diameter at section B-B in m\npi=3.14 #constant\nrho=1000 #constant\ng=9.81 #constant\nAa=(pi/4)*(DA)**2\nAb=(pi/4)*(DB)**2\npi=3.14\n\n#calculation\nVB=((Aa*VA)/Ab) #continuity discharge equation in m/s\n#bernoulli's equation Kpa\n#(PA/rho*g)+(VA**2/2*g)+ZA=(PB/rho*g)+(VB**2/2*g)+ZB \nPB=(((PA/(rho*g))+(VA**2/(2*g))+ZA)-((VB**2/(2*g))+ZB))*(rho*g)\n\n\n#output\nprint(\"continuity discharge equation= \",VB,\"m/s\")\nprint(\"bernoulli's equation= \",round(PB,1),\"pa\")\n\n\n", + "language": "python", + "metadata": {}, + "outputs": [ + { + "output_type": "stream", + "stream": "stdout", + "text": "continuity discharge equation= 24.0 m/s\nbernoulli's equation= 123040.0 pa\n" + } + ], + "prompt_number": 66 + }, + { + "cell_type": "heading", + "level": 1, + "metadata": {}, + "source": "Example 17 Page No:128" + }, + { + "cell_type": "code", + "collapsed": false, + "input": "#input data\n#refer figure 12\nQ=0.04 #Water flows at rate in m**2/s\nDA=0.22 #Pipe diameter at section A in m\nDB=0.12 #Pipe diameter at section B in m\nPA=400*10**3 #Intensity of pressure at setion A in kPa\nPB=150*10**3 #Intensity of pressure at setion B in kPa\npi=3.14 #Pi constant \ng=9.81 #Gravity constant\nrho=1000\n\n#calculation\nVA=Q/(pi/4*(DA)**2) #contuity equation for discharge\nVB=Q/(pi/4*(DB)**2) #bernoulli's equation for discharge\n#Z=ZB-ZA\nZ=(PA/(rho*g))+(VA**2/(2*g))-(PB/(rho*g))-(VB**2/(2*g))\n\n\n#output\nprint(\"contuity equation for discharge= \",round(VA,3),\"m**3\")\nprint(\"contuity equation for discharge= \",round(VB,3),\"m**3\")\nprint(\"bernoulli's equation for discharge= \",round(Z,2),\"m\")\n\n\n\n\n\n\n\n", + "language": "python", + "metadata": {}, + "outputs": [ + { + "output_type": "stream", + "stream": "stdout", + "text": "contuity equation for discharge= 1.053 m**3\ncontuity equation for discharge= 3.539 m**3\nbernoulli's equation for discharge= 24.9 m\n" + } + ], + "prompt_number": 69 + }, + { + "cell_type": "heading", + "level": 1, + "metadata": {}, + "source": "Example 18 Page No:129" + }, + { + "cell_type": "code", + "collapsed": false, + "input": "#Input data\nL=200 #length of pipe in m\nD1=1 #Diameter at high end in m\nD2=0.4 #Diameter at low end in m\nP1=50*10**3 #Pressure at high end in kPa\nQ=4000 #Rate of water flow l/min\nS=1 #Slope of pipe 1 in 100\nZ2=0 #Datum line is passing through the center of the low end,therefore\npi=3.14\n\n\n\n#calculation\nQ=(4000*10**-3)/60 #rate of water flow l/min in m**3/s\nZ1=1/100*L #slope of pipe 1 in 100 is in m\n#Q=A1*V1=A2V2 #continuity eqation ,discharge\nV1=Q/((pi/4)*(D1**2))#in m**3\nV2=Q/((pi/4)*(D2**2))#in m**3\n#bernoulli's equation \nP2=(((((P1/(rho*g))+(V1**2/(2*g))+Z1)-(V2**2/(2*g))-Z2))*(rho*g))*10**-3 \n\n\n#output\nprint(\"rate of water flow= \",round(Q,4),\"m**3/s\")\nprint(\"slope of pipe= \",Z1,\"m\")\nprint(\"continuity eqation ,discharge= \",round(V1,5),\"m**3\")\nprint(\"continuity eqation ,discharge= \",round(V2,4),\"m**3\")\nprint(\"bernoulli's equation for discharge= \",round(P2,2),\" Kpa\")\n", + "language": "python", + "metadata": {}, + "outputs": [ + { + "output_type": "stream", + "stream": "stdout", + "text": "rate of water flow= 0.0667 m**3/s\nslope of pipe= 2.0 m\ncontinuity eqation ,discharge= 0.08493 m**3\ncontinuity eqation ,discharge= 0.5308 m**3\nbernoulli's equation for discharge= 69.48 Kpa\n" + } + ], + "prompt_number": 74 + }, + { + "cell_type": "heading", + "level": 1, + "metadata": {}, + "source": "Example 19 Page No:130" + }, + { + "cell_type": "code", + "collapsed": false, + "input": "#Input data\nimport math\nL=36 #Length of pipe in m\nD1=0.15 #Diameter at upper side in m\nD2=0.3 #Diameter at lower side in m\nsin30=0.5\ntheta=math.sin(30) #Pipe slope upward at angle in degree\nV1=2 #Velocity of water at smaller section in m/s \npi=3.14 #Pi constant \nrho=1000 #Roh constant\ng=9.81 #Gravity constant\n\n\n#calculation\n#datum line is passing through the center of the low end,therefore\nZ1=0\nZ2=Z1+L*(0.5) #pipe inclined 30 degree,therefore in m\n#Q=A1*V1=A2*V2 continuity eqation ,discharge\nV2=(pi/4*(D1**2)*2)/(pi/4*(D2**2))\n#Z=P1-P2 bernoulli's equation \nZ=((((-V1**2)/(2*g))+((V2**2)/(2*g))-Z1+Z2)*(rho*g))*10**-3\n\n\n\n\n\n\n#output\nprint(\"pipe inclined 30 degree,therefore Z2=\",Z2,\"m\")\nprint(\"continuity eqation ,discharge V2=\",V2,\"m/s\")\nprint(\"#bernoulli's equation Z=\",round(Z,1),\"Kpa\")\n\n\n", + "language": "python", + "metadata": {}, + "outputs": [ + { + "output_type": "stream", + "stream": "stdout", + "text": "pipe inclined 30 degree,therefore Z2= 18.0 m\ncontinuity eqation ,discharge V2= 0.5 m/s\n#bernoulli's equation Z= 174.7 Kpa\n" + } + ], + "prompt_number": 76 + }, + { + "cell_type": "heading", + "level": 1, + "metadata": {}, + "source": "Example 20 Page No:130-131" + }, + { + "cell_type": "code", + "collapsed": false, + "input": "#Input data\nD1=0.25 #Diameter at inlet in m\nD2=0.175 #Diameter at outlet in m\nP1=450*10**3 #Intensity of pressure at inlet in kPa\nP2=200*10**3 #Intensity of pressure at outlet in kPa\npi=3.14 #pi constant \nrho=1000 #Roh constant\ng=9.81 #Gravity constant\nZ1=Z2\n\n#Calculation \n#A1*V1=A2*V2 Continuity eqation in V1\nV2=((pi/4)*(D1**2))/((pi/4)*(D2**2))\n#Z=V2**2-V1**2 Bernoulli's equation in m/s\nZ=-(((P2/(rho*g))-(P1/(rho*g)))*(2*g))\nX=Z/((V2**2)-1)\nV1=math.sqrt(X)\nQ=(pi/4)*(D1**2)*V1 #Flow rate Water in m**3/Kg\n\n\n#Output\nprint(\"Continuity eqation= \",round(V2,2),\"V1\")\nprint(\"Bernoulli's equation= \",Z,\"m/s\")\nprint(\"V1=\",round(V1,2),\"\")\nprint(\"Flow rate Water= \",round(Q,3),\"m**3/Kg\")\n\n\n\n", + "language": "python", + "metadata": {}, + "outputs": [ + { + "output_type": "stream", + "stream": "stdout", + "text": "Continuity eqation= 2.04 V1\nBernoulli's equation= 500.0 m/s\nV1= 12.57 \nFlow rate Water= 0.617 m**3/Kg\n" + } + ], + "prompt_number": 120 + }, + { + "cell_type": "heading", + "level": 1, + "metadata": {}, + "source": "Example 21 Page No:131-132" + }, + { + "cell_type": "code", + "collapsed": false, + "input": "#Input data\nL=300 #Length of pipe in m\nD1=0.9 #Diameter at higher end in m\nD2=0.6 #Diameter at lower end in m\nS=0.85 #Specific gravity \nQ=0.08 #Flow in l/s\nP1=40*10**3 #Pressure at higher end in kPa\npi=3.14 #pi constant \nrho=1000 #Roh constant\ng=9.81 #Gravity constant\nslop=1/50 #1 in 50\n\n\n#Calculation\n#Datum line is passing through the center of the low end,therefore\nZ2=0 \nZ1=slop*L\n#Q=A1*V1=A2*V2 Continuity eqation\nV1=Q/((pi/4)*(D1**2)) #Frome continuity eqation, discharge\nV2=Q/((pi/4)*(D2**2)) #Frome continuity eqation, discharge\n#Bernoulli's equation \nP2=(((((P1/(rho*S*g))+(V1**2/(2*g))+Z1)-(V2**2/(2*g))+Z2))*(S*rho*g))*10**-3\n\n\n\n#Output\nprint(\"Z1=\",Z1,\"m\")\nprint(\"continuity eqation, discharge V1=\",round(V1,5),\"m**3\")\nprint(\"continuity eqation, discharge V2=\",round(V2,5),\"m**3\")\nprint(\"bernoulli's equation= \",round(P2,),\"KPa\")\n\n", + "language": "python", + "metadata": {}, + "outputs": [ + { + "output_type": "stream", + "stream": "stdout", + "text": "Z1= 6.0 m\ncontinuity eqation, discharge V1= 0.12582 m**3\ncontinuity eqation, discharge V2= 0.28309 m**3\nbernoulli's equation= 90 KPa\n" + } + ], + "prompt_number": 128 + } + ], + "metadata": {} + } + ] +}
\ No newline at end of file diff --git a/Basic_mechanical_engineering_by_Basant_Agrawal_,_C.M_Agrawal/Chapter_9__Laws_Of_Thermo_bIsIgqq.ipynb b/Basic_mechanical_engineering_by_Basant_Agrawal_,_C.M_Agrawal/Chapter_9__Laws_Of_Thermo_bIsIgqq.ipynb new file mode 100644 index 00000000..d459e09d --- /dev/null +++ b/Basic_mechanical_engineering_by_Basant_Agrawal_,_C.M_Agrawal/Chapter_9__Laws_Of_Thermo_bIsIgqq.ipynb @@ -0,0 +1,209 @@ +{ + "metadata": { + "name": "Chapter 9 Laws Of Thermodynamics" + }, + "nbformat": 3, + "nbformat_minor": 0, + "worksheets": [ + { + "cells": [ + { + "cell_type": "heading", + "level": 1, + "metadata": {}, + "source": " Chapter 9 Law Of Thermodynamics" + }, + { + "cell_type": "heading", + "level": 2, + "metadata": {}, + "source": "Example 1 Page No:165" + }, + { + "cell_type": "code", + "collapsed": false, + "input": "#Input data\nQab=720 #Heat transfer of 1st processes in KJ \nQbc=-80 #Heat transfer of 2nd processes in KJ\nQcd=40 #Heat transfer of 3rd processes in KJ\nQda=-640 #Heat transfer of 4th processes in KJ\nWab=-90 #Work transfer of 1st processes in KJ\nWbc=-50 #Work transfer of 2nd processes in KJ\nWcd=130 #Work transfer of 3rd processes in KJ\n\n\n#Calculation\n#From the 1st law of thermodynamic for close system undergoing a cycle.\n\n#Work interaction during the 4th processes \nWda=((Qab+Qbc+Qcd+Qda)-(Wab+Wbc+Wcd)) \n\n#Output\nprint(\"Work interaction during the 4th processes=\",Wda,\"KJ\")\n", + "language": "python", + "metadata": {}, + "outputs": [ + { + "output_type": "stream", + "stream": "stdout", + "text": "Work interaction during the 4th processes= 50 KJ\n" + } + ], + "prompt_number": 5 + }, + { + "cell_type": "heading", + "level": 2, + "metadata": {}, + "source": "Example 2 Page No:166" + }, + { + "cell_type": "code", + "collapsed": false, + "input": "#Input data\n #During compression\nW1=-9200 #Stroke work done by the piston in Nm\nNm1=-9.2 #Nm of work done\nQ1=-50 #Heat rejected during copression in KJ\n #During expansion\nW2=8400 #Stroke work done by the piston in Nm\nNm2=8.4 #Nm of work done\n\n#Calculation\n #Quantity of heat transferred\nQ2=-((Nm1+Nm2)+Q1) #-sign for indicate heat is transferred\n\n\n#Output\nprint(\"Quantity of heat transferred=\",Q2,\"KJ\")", + "language": "python", + "metadata": {}, + "outputs": [ + { + "output_type": "stream", + "stream": "stdout", + "text": "Quantity of heat transferred= 50.8 KJ\n" + } + ], + "prompt_number": 3 + }, + { + "cell_type": "heading", + "level": 2, + "metadata": {}, + "source": "Example 3 Page No:166" + }, + { + "cell_type": "code", + "collapsed": false, + "input": "#input data\nW1=-20 #Work interaction to the fluid in KJ\nW2=42 #Work interaction from the fluid in KJ\nQ1=85 #Heat interaction to the fluid in KJ\nQ2=85 #Heat interaction to the fluid in KJ\nQ3=-50 #Heat interaction from the fluid in KJ\n\n#calculation\nW3=((Q1+Q2+Q3)-(W1+W2)) #Magnitude and direction of the third heat interation\n\n\n#output\nprint(\"Magnitude and direction of the third heat interation=\",W3,\"KJ\")", + "language": "python", + "metadata": {}, + "outputs": [ + { + "output_type": "stream", + "stream": "stdout", + "text": "Magnitude and direction of the third heat interation= 98 KJ\n" + } + ], + "prompt_number": 51 + }, + { + "cell_type": "heading", + "level": 2, + "metadata": {}, + "source": "Example 4 Page No:168" + }, + { + "cell_type": "code", + "collapsed": false, + "input": "#Input data\nQ=-2100 #Non flow process losses heat in KJ\ndeltaU=420 #Gain heat\n\n#Calculation\nW=Q-deltaU #Work done and compression process in KJ\n\n#Output\nprint(\"Work done and compression process=\",W,\"KJ\")", + "language": "python", + "metadata": {}, + "outputs": [ + { + "output_type": "stream", + "stream": "stdout", + "text": "Work done and compression process= -2520 KJ\n" + } + ], + "prompt_number": 52 + }, + { + "cell_type": "heading", + "level": 2, + "metadata": {}, + "source": "Example 5 Page No:168" + }, + { + "cell_type": "code", + "collapsed": false, + "input": "#Input data\nW=-2000 #Work input of panddle wheel in KJ\nQ=-6000 #Heat transferred to the surrounding from tank\n\n#Calculation\ndeltaU=Q-W #Change in interval energy\n\n#Output\nprint(\"change in interval energy drop=\",deltaU,\"KJ\")", + "language": "python", + "metadata": {}, + "outputs": [ + { + "output_type": "stream", + "stream": "stdout", + "text": "change in interval energy drop= -4000 KJ\n" + } + ], + "prompt_number": 9 + }, + { + "cell_type": "heading", + "level": 2, + "metadata": {}, + "source": "Example 6 Page No:169" + }, + { + "cell_type": "code", + "collapsed": false, + "input": "#Input data\nU1=520 #internal energy in KJ/Kg\nU2=350 #internal energy in KJ/Kg\nW=-80 #work done by the air in the cylinder KJ/kg\n\n#Calculation\ndeltaU=U2-U1\nQ=deltaU+W #Heat transferred during the process\n\n#Output\nprint(\"Heat transferred during the process=\",Q,\"KJ\")\n ", + "language": "python", + "metadata": {}, + "outputs": [ + { + "output_type": "stream", + "stream": "stdout", + "text": "Heat transferred during the process= -250 KJ\n" + } + ], + "prompt_number": 12 + }, + { + "cell_type": "heading", + "level": 2, + "metadata": {}, + "source": "Example 7 Page No:169" + }, + { + "cell_type": "code", + "collapsed": false, + "input": "#Input data\nW1=800 #Power of turbine shaft Kw\nW2=-5 #Work pump to feed in Kw \nQ1=2700 #Heat for steam generation KJ/Kg\nQ2=-1800 #Condenser rejected heat KJ/Kg\n\n#Calculation\nm=((W1+W2)/(Q1+Q2)) #Steam flow rate in Kg/h\n\n\n#Output\nprint(\"Steam flow rate=\",round(m,4),\"Kg/s\")\n", + "language": "python", + "metadata": {}, + "outputs": [ + { + "output_type": "stream", + "stream": "stdout", + "text": "Steam flow rate= 0.8833 Kg/s\n" + } + ], + "prompt_number": 13 + }, + { + "cell_type": "heading", + "level": 2, + "metadata": {}, + "source": "Example 8 Page No:170" + }, + { + "cell_type": "code", + "collapsed": false, + "input": "#input data\n#Data consistent with first law pf thermodynamics\nQabcd=-22 #In KJ\nN=150 #In Cycles/min\nQab=17580 #In KJ/min\nQbc=0 \nQcd=-3660 #In KJ/min\nWab=-8160 #In KJ/min\nWbc=4170 #In KJ/min \nDeltaUcd=-21630 #In KJ/min\n\n\n#calculation\nDeltaUab=Qab-Wab #In KJ/min\nDeltaUbc=Qbc-Wbc #In KJ/min \nWcd=Qcd-DeltaUcd #In KJ/min\nQabcd1=-220*150 #In KJ/min\nQda=((Qabcd1)-(Qab+Qbc+Qcd)) #In KJ/min\nWda=((Qabcd1)-(Wab+Wbc+Wcd)) #In KJ/min\nDeltaUabcd=0\nDeltaUda=((DeltaUabcd)-(DeltaUab+DeltaUbc+DeltaUcd)) #In KJ/min\nNWO=Qabcd1/60 #In KW\n\n\n#output\nprint(\"DeltaUab= \",DeltaUab,\"KJ/min\")\nprint(\"DeltaUbc= \",DeltaUbc,\"KJ/min\")\nprint(\"Wcd= \",Wcd,\"KJ/min\")\nprint(\"Qabcd1= \",Qabcd1,\"KJ/min\")\nprint(\"Qda= \",Qda,\"KJ/min\")\nprint(\"Wda= \",Wda,\"KJ/min\")\nprint(\"DeltaUabcd= \",DeltaUabcd,\"KJ/min\")\nprint(\"DeltaUda= \",DeltaUda,\"KJ/min\")\nprint(\"NWO=\",NWO,\"Kw\")\n", + "language": "python", + "metadata": {}, + "outputs": [ + { + "output_type": "stream", + "stream": "stdout", + "text": "DeltaUab= 25740 KJ/min\nDeltaUbc= -4170 KJ/min\nWcd= 17970 KJ/min\nQabcd1= -33000 KJ/min\nQda= -46920 KJ/min\nWda= -46980 KJ/min\nDeltaUabcd= 0 KJ/min\nDeltaUda= 60 KJ/min\nNWO= -550.0 Kw\n" + } + ], + "prompt_number": 47 + }, + { + "cell_type": "heading", + "level": 2, + "metadata": {}, + "source": "Example 9 Page No:171" + }, + { + "cell_type": "code", + "collapsed": false, + "input": "#Input data\nQab=-6500 #Heat transferred in 1st process KJ/min\nQbc=0 #Heat transferred in 2nd process \nQcd=-10200 #Heat transferred in 3rd process KJ/min\nQda=32600 #Heat transferred in 4th process KJ/min\nWab=-1050 #Heat transferred in 1st process KJ\nWbc=-3450 #Heat transferred in 2nd process KJ\nWcd=20400 #Heat transferred in 3rd process KJ\nWda=0 #Heat transferred in 4th process\n\n#Calculator\ndQ=Qab+Qbc+Qcd+Qda #Net heat transfer in 1st cycle\ndW=Wab+Wbc+Wcd+Wda #Net work done in 1st cycle\ndW1=dW/60 #Net work done in 1st cycle\nDeltaUab=Qab-Wab #ab process\nDeltaUbc=Qbc-Wbc #bc processes\nDeltaUcd=Qcd-Wcd #cd processes\nDeltaUda=Qda-Wda #dc processes\n\n#Output\nprint(\"Net heat transfer in 1st cycle= \",dQ,\"KJ/min\")\nprint(\"Net work done in 1st cycle= \",dW,\"KJ/min\")\nprint(\"Net work done in 1st cycle= \",dW1,\"KW\")\nprint(\"ab process= \",DeltaUab,\"KJ/min\")\nprint(\"bc processes= \",DeltaUbc,\"KJ/min\")\nprint(\"cd processes= \",DeltaUcd,\"KJ/min\")\nprint(\"dc processes= \",DeltaUda,\"KJ/min\")\n\n", + "language": "python", + "metadata": {}, + "outputs": [ + { + "output_type": "stream", + "stream": "stdout", + "text": "Net heat transfer in 1st cycle= 15900 KJ/min\nNet work done in 1st cycle= 15900 KJ/min\nNet work done in 1st cycle= 265.0 KW\nab process= -5450 KJ/min\nbc processes= 3450 KJ/min\ncd processes= -30600 KJ/min\ndc processes= 32600 KJ/min\n" + } + ], + "prompt_number": 50 + } + ], + "metadata": {} + } + ] +}
\ No newline at end of file diff --git a/Basic_mechanical_engineering_by_Basant_Agrawal_,_C.M_Agrawal/screenshots/chapter10.png b/Basic_mechanical_engineering_by_Basant_Agrawal_,_C.M_Agrawal/screenshots/chapter10.png Binary files differnew file mode 100644 index 00000000..8a74c57d --- /dev/null +++ b/Basic_mechanical_engineering_by_Basant_Agrawal_,_C.M_Agrawal/screenshots/chapter10.png diff --git a/Basic_mechanical_engineering_by_Basant_Agrawal_,_C.M_Agrawal/screenshots/chapter14.png b/Basic_mechanical_engineering_by_Basant_Agrawal_,_C.M_Agrawal/screenshots/chapter14.png Binary files differnew file mode 100644 index 00000000..18dfd180 --- /dev/null +++ b/Basic_mechanical_engineering_by_Basant_Agrawal_,_C.M_Agrawal/screenshots/chapter14.png diff --git a/Basic_mechanical_engineering_by_Basant_Agrawal_,_C.M_Agrawal/screenshots/chapter5.png b/Basic_mechanical_engineering_by_Basant_Agrawal_,_C.M_Agrawal/screenshots/chapter5.png Binary files differnew file mode 100644 index 00000000..b04af8cc --- /dev/null +++ b/Basic_mechanical_engineering_by_Basant_Agrawal_,_C.M_Agrawal/screenshots/chapter5.png diff --git a/Digital_Communications_by_S._Haykin/Chapter1_bmaHHM8.ipynb b/Digital_Communications_by_S._Haykin/Chapter1_bmaHHM8.ipynb new file mode 100644 index 00000000..de235249 --- /dev/null +++ b/Digital_Communications_by_S._Haykin/Chapter1_bmaHHM8.ipynb @@ -0,0 +1,96 @@ +{ + "cells": [ + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "# Chapter 1 Introduction" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "## Ex1.2 page 7" + ] + }, + { + "cell_type": "code", + "execution_count": 1, + "metadata": { + "collapsed": false + }, + "outputs": [ + { + "data": { + "image/png": "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\nEUnY/wfincqi2HtregAAAABJRU5ErkJggg==\n", + "text/plain": [ + "<matplotlib.figure.Figure at 0x7f10202bcf50>" + ] + }, + "metadata": {}, + "output_type": "display_data" + }, + { + "data": { + "image/png": "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\nmKgbhmEkxP8H1mfQrGLrivYAAAAASUVORK5CYII=\n", + "text/plain": [ + "<matplotlib.figure.Figure at 0x7f1009538350>" + ] + }, + "metadata": {}, + "output_type": "display_data" + } + ], + "source": [ + "from numpy import arange\n", + "%matplotlib inline\n", + "from matplotlib.pyplot import plot,title,xlabel,ylabel,show,figure,text\n", + "from math import sin,pi,sqrt\n", + "\n", + "#Figure 1.2: Analog to Digital Conversion\n", + "t = arange(-1,1.01,0.01)\n", + "x = [2*sin((pi/2)*tt) for tt in t]\n", + "dig_data = [0,1,0,0,0,0,1,0,0,0,0,0,0,0,1,1,0,1,0,1]\n", + "figure=figure()\n", + "#a=gca()#\n", + "#a.x_location =\"origin\"#\n", + "#a.y_location =\"origin\"#\n", + "#a.data_bounds =[-2,-3#2,3]\n", + "plot(t,x)\n", + "text(0.5,sqrt(2),'gnn')\n", + "text(-0.5,-sqrt(2),'gnn')\n", + "text(1,2,'gnn')\n", + "text(-1,-2,'gnn')\n", + "xlabel(' Time')\n", + "ylabel(' Voltage')\n", + "title('Analog Waveform')\n", + "show()\n", + "plot(range(1,len(dig_data)+1),dig_data)\n", + "title('Digital Representation')\n", + "show()\n" + ] + } + ], + "metadata": { + "kernelspec": { + "display_name": "Python 2", + "language": "python", + "name": "python2" + }, + "language_info": { + "codemirror_mode": { + "name": "ipython", + "version": 2 + }, + "file_extension": ".py", + "mimetype": "text/x-python", + "name": "python", + "nbconvert_exporter": "python", + "pygments_lexer": "ipython2", + "version": "2.7.9" + } + }, + "nbformat": 4, + "nbformat_minor": 0 +} diff --git a/Digital_Communications_by_S._Haykin/Chapter2_XLwGLkV.ipynb b/Digital_Communications_by_S._Haykin/Chapter2_XLwGLkV.ipynb new file mode 100644 index 00000000..497875b7 --- /dev/null +++ b/Digital_Communications_by_S._Haykin/Chapter2_XLwGLkV.ipynb @@ -0,0 +1,394 @@ +{ + "cells": [ + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "# Chapter 2 Fundamental Limit On Performance" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "## Example 2.1 page 18" + ] + }, + { + "cell_type": "code", + "execution_count": 20, + "metadata": { + "collapsed": false + }, + "outputs": [ + { + "data": { + "image/png": "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\n", + "text/plain": [ + "<matplotlib.figure.Figure at 0x7f4de4a3d1d0>" + ] + }, + "metadata": {}, + "output_type": "display_data" + } + ], + "source": [ + "from numpy import arange, zeros\n", + "from math import log\n", + "%matplotlib inline\n", + "from matplotlib.pyplot import plot,xlabel,ylabel,title,show\n", + "\n", + "Po = arange(0,1+0.01,0.01)\n", + "H_Po = zeros(len(Po))\n", + "for i in range(1,len(Po)-1):\n", + " H_Po[i]=-Po[(i)]*log(Po[(i)],2)-(1-Po[(i)])*log(1-Po[(i)],2)\n", + "\n", + "#plot\n", + "#plot2d(Po,H_Po)\n", + "plot(Po,H_Po)\n", + "xlabel('Symbol Probability, Po')\n", + "ylabel('H(Po)')\n", + "title('Entropy function H(Po)')\n", + "show()" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "## Example 2.2 page 19" + ] + }, + { + "cell_type": "code", + "execution_count": 1, + "metadata": { + "collapsed": false + }, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "Entropy of Discrete Memoryless Source\n", + "bits : 1.5\n", + "Table 2.1 Alphabet Particulars of Second-order Extension of a Discrete Memoryless Source\n", + "_________________________________________________________________________________\n", + "Sequence of Symbols of ruo2:\n", + " S0*S0 S0*S1 S0*S2 S1*S0 S1*S1 S1*S2 S2*S0 S2*S1 S2*S2\n", + "Probability p(sigma), i =0,1.....8 : [0.0625, 0.0625, 0.125, 0.0625, 0.0625, 0.125, 0.125, 0.125, 0.25]\n", + "_________________________________________________________________________________\n", + " \n", + "H(Ruo_Square)= 3.0 bits\n", + "H(Ruo_Square) = 2*H(Ruo)\n" + ] + } + ], + "source": [ + "from __future__ import division\n", + "from math import log\n", + "P0 = 1/4# #probability of source alphabet S0\n", + "P1 = 1/4# #probability of source alphabet S1\n", + "P2 = 1/2# #probability of source alphabet S2\n", + "H_Ruo = P0*log(1/P0,2)+P1*log(1/P1,2)+P2*log(1/P2,2)\n", + "print 'Entropy of Discrete Memoryless Source'\n", + "print 'bits : ',H_Ruo\n", + "#Second order Extension of discrete Memoryless source\n", + "P_sigma = [P0*P0,P0*P1,P0*P2,P1*P0,P1*P1,P1*P2,P2*P0,P2*P1,P2*P2]#\n", + "print 'Table 2.1 Alphabet Particulars of Second-order Extension of a Discrete Memoryless Source'\n", + "print '_________________________________________________________________________________'\n", + "print 'Sequence of Symbols of ruo2:'\n", + "print ' S0*S0 S0*S1 S0*S2 S1*S0 S1*S1 S1*S2 S2*S0 S2*S1 S2*S2'\n", + "print 'Probability p(sigma), i =0,1.....8 : ',P_sigma\n", + "print '_________________________________________________________________________________'\n", + "print ' '\n", + "H_Ruo_Square =0\n", + "for i in range(0,len(P_sigma)):\n", + " H_Ruo_Square=(H_Ruo_Square+P_sigma[i]*log(1/P_sigma[i],2))\n", + "print 'H(Ruo_Square)=', H_Ruo_Square,' bits'\n", + "print 'H(Ruo_Square) = 2*H(Ruo)'" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "## Example 2.3 page 20" + ] + }, + { + "cell_type": "code", + "execution_count": 2, + "metadata": { + "collapsed": false + }, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "Average code-word Length L 2.2 bits\n", + "Entropy of Huffman coding result H 2.12 bits\n", + "Average code-word length L exceeds the entropy H(Ruo) by only 3.679 %\n", + "Varinace of Huffman code : 0.16\n" + ] + } + ], + "source": [ + "from __future__ import division\n", + "from math import log\n", + "\n", + "# (a)Average code-word length 'L'\n", + "#(b)Entropy 'H'\n", + "P0 = 0.4# #probability of codeword '00'\n", + "L0 = 2# #length of codeword S0\n", + "P1 = 0.2# #probability of codeword '10'\n", + "L1 = 2# #length of codeword S1\n", + "P2 = 0.2# #probility of codeword '11'\n", + "L2 = 2# #length of codeword S2\n", + "P3 = 0.1# #probility of codeword '010'\n", + "L3 = 3# #length of codeword S3\n", + "P4 =0.1# #probility of codeword '011'\n", + "L4 = 3# #length of codeword S4\n", + "L = P0*L0+P1*L1+P2*L2+P3*L3+P4*L4#\n", + "H_Ruo = P0*log(1/P0,2)+P1*log(1/P1,2)+P2*log(1/P2,2)+P3*log(1/P3,2)+P4*log(1/P4,2)\n", + "print 'Average code-word Length L',L,'bits'\n", + "print 'Entropy of Huffman coding result H %0.2f'%H_Ruo, 'bits'\n", + "print 'Average code-word length L exceeds the entropy H(Ruo) by only %0.3f'%(((L-H_Ruo)/H_Ruo)*100),'%'\n", + "sigma_1 = P0*(L0-L)**2+P1*(L1-L)**2+P2*(L2-L)**2+P3*(L3-L)**2+P4*(L4-L)**2\n", + "print 'Varinace of Huffman code : ',sigma_1" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "## Example2.4 page 20" + ] + }, + { + "cell_type": "code", + "execution_count": 3, + "metadata": { + "collapsed": false + }, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "Average code-word Length L : 2.2 bits\n", + "Entropy of Huffman coding result H : 2.12 bits\n", + "Varinace of Huffman code = 1.36\n" + ] + } + ], + "source": [ + "from __future__ import division\n", + "from math import log\n", + "\n", + "def log2(x):\n", + " return log(x,2)\n", + "\n", + "# Calculation of (a)Average code-word length 'L' (b)Entropy 'H'\n", + "P0 = 0.4# #probability of codeword '1'\n", + "L0 = 1# #length of codeword S0\n", + "P1 = 0.2# #probability of codeword '01'\n", + "L1 = 2# #length of codeword S1\n", + "P2 = 0.2# #probility of codeword '000'\n", + "L2 = 3# #length of codeword S2\n", + "P3 = 0.1# #probility of codeword '0010'\n", + "L3 = 4# #length of codeword S3\n", + "P4 =0.1# #probility of codeword '0011'\n", + "L4 = 4# #length of codeword S4\n", + "L = P0*L0+P1*L1+P2*L2+P3*L3+P4*L4#\n", + "H_Ruo = P0*log2(1/P0)+P1*log2(1/P1)+P2*log2(1/P2)+P3*log2(1/P3)+P4*log2(1/P4)#\n", + "print 'Average code-word Length L :',L,'bits'\n", + "print 'Entropy of Huffman coding result H : %0.2f bits'%H_Ruo\n", + "sigma_2 = P0*(L0-L)**2+P1*(L1-L)**2+P2*(L2-L)**2+P3*(L3-L)**2+P4*(L4-L)**2\n", + "print 'Varinace of Huffman code = %0.2f'%sigma_2" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "## Example2.5 page 20" + ] + }, + { + "cell_type": "code", + "execution_count": 32, + "metadata": { + "collapsed": false + }, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "probility of 0 receiving if a 0 is sent = probility of 1 receiving if a 1 is sent= 0.4\n", + "Transition probility\n", + "probility of 0 receiving if a 1 is sent = probility of 1 receiving if a 0 is sent= 0.6\n" + ] + } + ], + "source": [ + "p = 0.4# #probability of correct reception\n", + "pe = 1-p##probility of error reception (i.e)transition probility\n", + "print 'probility of 0 receiving if a 0 is sent = probility of 1 receiving if a 1 is sent=',p\n", + "print 'Transition probility'\n", + "print 'probility of 0 receiving if a 1 is sent = probility of 1 receiving if a 0 is sent=',pe" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "## Example2.6 page 21" + ] + }, + { + "cell_type": "code", + "execution_count": 1, + "metadata": { + "collapsed": false + }, + "outputs": [ + { + "data": { + "image/png": "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\n", + "text/plain": [ + "<matplotlib.figure.Figure at 0x7f94d28b5310>" + ] + }, + "metadata": {}, + "output_type": "display_data" + } + ], + "source": [ + "from numpy import arange\n", + "from math import log\n", + "%matplotlib inline\n", + "from matplotlib.pyplot import plot,title,show,xlabel,ylabel\n", + "\n", + "\n", + "\n", + "def log2(x):\n", + " return log(x,2)\n", + "\n", + "\n", + "p = arange(0,0.5+0.01,0.01)\n", + "C=[]\n", + "for i in range(0,len(p)):\n", + " if(i!=0):\n", + " C.append(1+p[i]*log2(p[i])+(1-p[i])*log2((1-p[i])))\n", + " elif(i==0):\n", + " C.append(1)\n", + " elif(i==len(p)):\n", + " C.append(0)\n", + " \n", + "\n", + "plot(p,C)\n", + "xlabel('Transition Probility, p')\n", + "ylabel('Channel Capacity, C')\n", + "title('Figure 2.10 Variation of channel capacity of a binary symmetric channel with transition probility p')\n", + "show()" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "## Example2.7 page 21" + ] + }, + { + "cell_type": "code", + "execution_count": 1, + "metadata": { + "collapsed": false + }, + "outputs": [ + { + "data": { + "image/png": "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\nmff/xUXp9BgBdbUAAAAASUVORK5CYII=\n", + "text/plain": [ + "<matplotlib.figure.Figure at 0x7f1bfe6cf890>" + ] + }, + "metadata": {}, + "output_type": "display_data" + }, + { + "name": "stdout", + "output_type": "stream", + "text": [ + "Table 2.3 Average Probility of Error for Repetition Code\n", + "_______________________________________________________________\n", + "Average Probility of Error, Pe =\n", + "0.01\n", + "0.000298\n", + "9.8506e-06\n", + "3.416698e-07\n", + "Code Rate, r =1/n = \n", + "1.00\n", + "0.33\n", + "0.20\n", + "0.14\n", + "_______________________________________________________________\n" + ] + } + ], + "source": [ + "from __future__ import division\n", + "%matplotlib inline\n", + "from matplotlib.pyplot import plot,title,show,xlabel,ylabel,legend\n", + "\n", + "\n", + "#Average Probility of Error of Repetition Code\n", + "p =10**-2#\n", + "pe_1 =p# #Average Probility of error for code rate r = 1\n", + "pe_3 = 3*p**2*(1-p)+p**3##probility of error for code rate r =1/3\n", + "pe_5 = 10*p**3*(1-p)**2+5*p**4*(1-p)+p**5##error for code rate r =1/5\n", + "pe_7 = ((7*6*5)/(1*2*3))*p**4*(1-p)**3+(42/2)*p**5*(1-p)**2+7*p**6*(1-p)+p**7##error for code rate r =1/7\n", + "r = [1,1/3,1/5,1/7]#\n", + "pe = [pe_1,pe_3,pe_5,pe_7]#\n", + "plot(r,pe)\n", + "xlabel('Code rate, r')\n", + "ylabel('Average Probability of error, Pe')\n", + "title('Figure 2.12 Illustrating significance of the channel coding theorem')\n", + "#xgrid(1)\n", + "show()\n", + "print 'Table 2.3 Average Probility of Error for Repetition Code'\n", + "print '_______________________________________________________________'\n", + "print 'Average Probility of Error, Pe ='\n", + "for pp in pe: print pp\n", + "print 'Code Rate, r =1/n = '\n", + "for rr in r:print '%0.2f'%rr\n", + "print '_______________________________________________________________'" + ] + } + ], + "metadata": { + "kernelspec": { + "display_name": "Python 2", + "language": "python", + "name": "python2" + }, + "language_info": { + "codemirror_mode": { + "name": "ipython", + "version": 2 + }, + "file_extension": ".py", + "mimetype": "text/x-python", + "name": "python", + "nbconvert_exporter": "python", + "pygments_lexer": "ipython2", + "version": "2.7.9" + } + }, + "nbformat": 4, + "nbformat_minor": 0 +} diff --git a/Digital_Communications_by_S._Haykin/Chapter3_JoJ2mAG.ipynb b/Digital_Communications_by_S._Haykin/Chapter3_JoJ2mAG.ipynb new file mode 100644 index 00000000..3763a6e7 --- /dev/null +++ b/Digital_Communications_by_S._Haykin/Chapter3_JoJ2mAG.ipynb @@ -0,0 +1,432 @@ +{ + "cells": [ + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "# Chapter 3 Detection & Estimation" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "## Example3.1 page 120" + ] + }, + { + "cell_type": "code", + "execution_count": 1, + "metadata": { + "collapsed": false + }, + "outputs": [ + { + "data": { + "image/png": "iVBORw0KGgoAAAANSUhEUgAAAYkAAAEPCAYAAAC3NDh4AAAABHNCSVQICAgIfAhkiAAAAAlwSFlz\nAAALEgAACxIB0t1+/AAAIABJREFUeJzt3Xm0XFWZ9/HvzxBkzmAgjApiGLRlSAQURC6iEPOiAtpA\nRFmvY+P7gq4GB3SpuS5HbLR5aRERm6EnsBsQI0ZabblLjAHNCDaDICJDYkKCBAxDJ+R5/zjnJpWi\nhl33nlPDrd9nrVqp4dSu557c1M7Zez/7UURgZmZWy4s6HYCZmXUvdxJmZlaXOwkzM6vLnYSZmdXl\nTsLMzOpyJ2FmZnWV2klIukLSSkl3NjjmYkn3SVom6dAy4zEzs9aUfSVxJTCz3ouSZgGviIhpwIeA\nS0uOx8zMWlBqJxERtwJ/bnDI24Cr82NvByZKmlpmTGZmlq7TcxJ7AA9XPH4E2LNDsZiZWZVOdxIA\nqnrsfULMzLrEVh3+/EeBvSoe75k/twVJ7jjMzEYgIqr/I96STl9JzAXOBJD0WuCJiFhZ68CIqHu7\n6qpg9uz6r3f6NmfOnI7H0K/x93Lsjr/zt3bH/+lPB3PmFNdeEUq9kpB0DXAMMEXSw8AcYDxARFwW\nEfMkzZJ0P7AOeO9IPmfRIpg+vaiozcw6Y/p0uOqqTkexpVI7iYiYnXDM2aP9nMWL4eSTR9uKmVln\nzZgBH/lIp6PYUqeHm0bt+edh2TI4tIvT8AYGBjodwqj0cvy9HDs4/k5rd/wvexk8+yz86U9t/diG\nVNS4Vc3GpZnARcA44LsRcUHV61OAfwF2JbuquTAirqrRTtSL8+674a1vhfvvLzh4M7MOePOb4W//\nFmbNGn1bkohunbiWNA74JlnG9SuB2ZIOrDrsbGBJRBwCDABfl9TSEJjnI8xsLJk+Pfte6xZlDjcd\nDtwfEQ9GxHrgWuDtVcesAHbK7+8ErImIDa18yOLF2TiemdlYMGNG9r3WLcrsJGplU+9RdczlwKsk\nLQeWAR9t9UN8JWFmY0m3XUmUubopZbLj08DSiBiQtC/wU0kHR8RT1QcODg5uuj8wMMDAwAAbN8KS\nJe4kzGzs2HdfePJJeOwx2Hnn1t47NDTE0NBQofGUNnGdJ8cNRsTM/PGngI2Vk9eS5gFfioj5+eP/\nAj4ZEQur2qo5cf2738Hxx8ODD5byI5iZdcSxx8L558MJJ4yuna6euAYWAtMk7S1pa+A0sgzrSvcA\nbwLId3/dH3gg9QMWL/ZVhJmNPd00L1FaJ5FPQJ8N/CdwF/C9iLhb0t9I+pv8sC8Dr5G0DPgZ8ImI\neDz1MxYt8qS1mY0906d3TydRap5EUeoNNx13HHzsY/CWt3QgKDOzktx7b/a99kDyuEptRQw3Ne0k\nJE0EXgfsTTYZ/SCwICLWjuaDW1Grk4iAyZPhnntgqssUmdkYsnEjTJwIf/wjTJo08nZKnZOQdLSk\nucAvgNOBl5J1FLOBWyXNlfT6JgHOlHRPXsP6k3WOGZC0RNJvJQ2lBv6HP8D227uDMLOx50UvgkMO\n6Y4hp0ZLYE8GzouI+2q9KGk/4Czgl3VeH864fhNZjYjfSJobEXdXHDMRuAQ4ISIeybfpSOIkOjMb\ny4bnJY47rrNx1L2SiIhzI+I+SftUvyZpn4j4XUSc26DtlIzrdwHXR8Qj+WeuTg3cSXRmNpbNmNEd\nSXUpq5tuqPHc9QnvS8m4ngZMlnSLpIWS3pPQLuArCTMb27plhVPd4aZ8M75XAhMknUJWizrI9lh6\ncULbKcumxgPTgeOA7YAFkm6rNcRVmXF9zDEDLFo04CsJMxuzDjgAli+HtWthwoS097Q141rSScBJ\nwFvZMgnuKeDaiPhVw4bTMq4/CWwbEYP54+8CN0fEdVVtbbG66aGH4IgjYMWK1B/TzKz3HHkkfOUr\ncMwxI3t/Eaub6l5JRMSNwI2SjmzWIdSxKeMaWE6WcV1dqe4HwDfzSe4XA0cA32jWsOcjzKwfDG/2\nN9JOogiNlsAOSppar4OQtJukz9d7f0rGdUTcA9wM3AHcDlweEXc1C9rzEWbWD7phe45Gw00nAucB\nWwOLyWo/iKyK3HTgObJKcvNKD7JquGnWLPjQh+Ckk8r+ZDOzzlm2DE4/PavAORLtyrjeCziKLJkO\n4I/AryLi4frv2vTehuVLK447DFgAnBoRL1hNVdlJRMCuu8JvfgMvfWn1kWZmY8f69dmk9apVsMMO\nrb+/1DmJYXlncG2rDack01UcdwHZsFPTH2b58ixlfa+9Wo3IzKy3jB8Pf/VX2RXFUUd1JoYR7QIr\n6TsJh6Uk0wGcA1wHPJby2cPbg2tUfaOZWW/odFJdozyJyfVeAv5XQtu1kumOqPqMPcg6jjcCh5GQ\nW+FJazPrJ9Onw/z5nfv8RsNNq8nmH2pJKaqXkkx3EXB+RIQkkTDctGgRnHlmQstmZmPAjBlw8cWd\n+/xGncQDwHERsUVHkX+ZP5TQ9qNA5czBXmRXE5VmANdmTTIFeIuk9RFRXcFuU8b10BDMnj0ADCSE\nYGbW2171Kvj97+Hpp2G77Rof2+6M67OBX0bE0hqvnRMR/9CwYWkr4F6yLTeWA78GZldPXFccfyXw\nw0arm1auhAMPhDVrPCdhZv1jxgy45BJ47Wtbe1+p9SQi4psRsVTSqZJ2yj/ws5K+DzQdIUssX9oS\nT1qbWT/q5GZ/TZfAAp+NiH/PCwwdB1wIXErVJHQtEfFj4MdVz11W59j3NmvP23GYWT+aMSPLDeuE\nlCWwz+d/nki2bcZNZFnYbeeVTWbWjzp5JZHSSTya50WcBvxI0jaJ7wOalzCVdIakZZLukDRf0kH1\n2vKVhJn1o4MOgnvvhWefbf9np3zZn0o2r3B8RDwBTAI+ntJ4Rdb1TLLaFLPzOhWVHgDeEBEHAV8A\naibqrV4NTzwB++6b8slmZmPHNtvAtGnw29+2/7ObdhIRsS4irh8uBBQRKyLiJ4ntN826jogFEbE2\nf3g7sGethhYvhkMPzQqEm5n1m07tCFv2V25KCdNK7wdq7io7vLLJzKwfDdeWaLeU1U2jkZJ1DYCk\nY4H3ke04+wL/9E+DHHAADA7CwMAAAwMDxURoZtYDZsyAq69ufExbk+kKaTyhhGn+/EHADcDMiLi/\nRjvx8pcHN92UJdOZmfWbp5+GnXeGP/8Ztk5cX1pqMl1BNpUwlbQ12QqpLbbckPRSsg7i3bU6iGGr\nVsF++5Uaq5lZ19puO9hnH7irae3OYpXaSSRmXX+ObMXUpZKWSPp1rbYOPhjGjSszWjOz7taJeYmy\n5ySaZl1HxAeADzRrx0l0Ztbvhlc4vf/97fvMnllQ6pVNZtbvOnElUWon0SzbOj/m4vz1ZZIOrddW\nL19JFL3aoN16Of5ejh0cf6d1W/yHHAJ33gkbNrTvM0vrJFKyrSXNAl4REdOAD5FtHFjTAQeUFWn5\nuu0XrVW9HH8vxw6Ov9O6Lf4dd4S99oK7axZcKEeZVxIpNa7fBlwNEBG3AxMlTa3V2Falz56YmXW/\ndmdel9lJpGRb1zqm5rYcZmbW/nmJ0pLpJL2DLDnug/njdwNHRMQ5Fcf8EPhqRMzPH/8M+ERELK5q\nq7yMPzOzMWy0yXRlDuKk1LiuPmbP/LktjPaHNDOzkSlzuKlptnX++EzYtIXHExGxssSYzMysBaVd\nSUTEBknD2dbjgH8czrbOX78sIuZJmiXpfmAd0LSEqZmZtU+pG/yZmVlvKzuZ7gpJKyXdWef1mZIe\nl/Q/kpbXSqarl2yXkqhXttEkC0p6MC/ZWne/qrIllJY9QNICSc9KOq+V97bDKOPvhfNft7Rvj5z/\nRvF39PwnxP72PPYlkhZJemPqe9thlPG3du4jorQbcDRwKHBnjdfGAcuBW4DxwO+ApVXHzALm5feP\nAG6reO/9wN75e5cCB5b5s9SJv2EM9eLPH/8BmNzOmEcQ/87Aa4AvAue18t5ujr+Hzv/rgAn5/Zk9\n+PtfM/5On//E2LevuP9qspyvXjr3NeMfybkvexfYW4E/13n5cGAD8O3Iku2uAHavSqarlWy3K2mJ\nemUrIlmwk6u2UkrLPhYRC4H1rb63DUYT/7BuP//1Svv2yvlvVpq4U+c/JfZ1FQ93AFanvrcNRhP/\nsORz38kN/vYgq1w3nEz3CPAcW/4i1UvI273O8+000mTB4WMC+JmkhZI+WFqU9bVaWrao9xZltDH0\n2vmvLO3bi+e/ujRxJ89/UuySTpJ0N9ku1h9p5b0lG0380OK57+RmF8Mz5tU9WvVMerfmSKTO+NeL\n//URsVzSzsBPJd2TX3m1y2hWLHTDaofRxnBURKzohfOvF5b27anzXyN+6Oz5T4o9Im4EbpR0NPDP\nkrplB7kRxQ/sn7/U2rlvw/jZ3tSek3gt8BBwev74U8AqYGrFMd8GTs9Pim+++eabby3e8u/S3wMv\nqfE9PIeq+bq2zkk0sZBs0uVvlCXbvRdYHlsm021KtqsMesKEYM2a9k94jfQ2Z86cjsfQr/H3cuyO\nv/O3dsd//PHBvHnFtQcgaXr+HbpG0naSdsyf3x44Hqi5+nRYqcNNkq4BjgGmSHqYrNcanwd8maT3\nAf8G/AVYA5yuGsl2lW0+8ww8+yxMmlRm5GZm7bfbbrBiReHN/j+yERmAXYEbJEH2/f+vEfGTRm8u\ntZOIiNlNXv8xWX3rSourjjlb0v8dfrxiBey6K6hbZyrMzEaojE4iIo6uuP8AcEgr7++Z8qXDVqzI\nTmQvGRgY6HQIo9LL8fdy7OD4O63d8e+2Gyxf3taPbKrUbTkkzQQuIkv++G5EXFD1+hTgX8gugbYC\nLoyIq2q0E8Nx/sd/wLXXwvXXlxa2mVlHXHcd/Nu/wQ03FNOeJGKUu2h3tHwpcDawJCIOAQaAr0tq\nOATWi1cSZmYpSpqTGJVOly9dAeyU398JWBMRDUt8u5Mws7Gq3zqJlKzAy4FXSVoOLAM+2qxRdxJm\nNlYNdxIlzgK0rMxOIuXH/DTZpn67k824XzK8hree5cth992LCM/MrLtsuy1stx08/ninI9ms0+VL\njwS+BBARv5f0B7LU8YXVjQ0ODgKwdCk88sgA2RSGmdnYMnw18ZKXtP7eoaEhhoaGCo2ntNVN+QT0\nvcBxZFuC/xqYHRF3VxzzDWBtRHw+3x11EXBQRDxe1dam1U1TpsBdd8Euu5QStplZRx13HJx/Prz5\nzaNvq4jVTR0tXwp8GbhS0jKyoa9PVHcQlZ57Dp58MusozMzGom7LlSg74/rHZNvUVj53WcX91cBb\nU9v7059g6lR4Uc+lAJqZpdl99+5a4dRTX7de2WRmY123LYNt2klImijpLZI+LOmsvLbqhJTGU2rB\nShrIa63+VtJQo/bcSZjZWNdtnUTd4aa8UMXHyepBLCGbfBZZ3dqvSXoQ+FpE/LLO+4czrt9EttLp\nN5LmVk1cTwQuAU6IiEfybTrqcidhZmNdL81JnExWjOK+Wi9K2g84C6jZSVCRcZ0fP5xxfXfFMe8C\nro+IR2DTHEVdzpEws7GuZ+YkIuLciLhP0j7Vr0naJyJ+FxHnNmg7JeN6GjBZ0i15vdX3NArWVxJm\nNtZ1W9Z1yuqmG4BDq567Hpje5H0pP+L4vJ3jgO2ABZJuq3X1Mjg4yC9+kRUdmjZtoOe3IDYzq2WH\nHWDcuGy5/4Sk2d/N2ppMl+/Y+krg74CPkc1HBNlGfB+PiFc1bFh6LTAYETPzx58CNlZuF55PZm8b\nEYP54+8CN0fEdVVtRURw6KHw3e/CjBkj+lnNzHrCfvvBD34AB1bvm92isrcK358sh2FC/ueJ+Z/T\ngQ8mtL0QmCZp77yG9WlkNasr/QB4vaRxkrYDjgDuqtfg8uUebjKzsa+bVjjVHW6KiBuBGyUdGRG/\narXhlIzriLhH0s3AHcBG4PKIqNlJbNiQbXrl7TjMbKzrpsnrRktgB4FL63UQknYDzoqIOfXaaJZx\nnT++ELiwWaArV2bbcWxVao64mVnn9cSVBNlw0bX5UNFisgJBIis1Oh14joQv96J4ZZOZ9YtuypVo\ntAT2pog4FjgdmA9sANaT5UWcFhFvjIh5jRpPybjOjztM0gZJp9Q7xvMRZtYveuVKAoCIeJis9GhL\nUjKuK467ALiZ7EqlphUrnEhnZv2hm+Yk6l5JSNoq36vpi5KOqnrtMwltp9S4BjgHuA54rFFjHm4y\ns37RTVcSjZbAXga8AVgDXJwXCBr2joS2m2ZcS9qDrOO4NH+qbgKeOwkz6xfdNCfRaLjp8Ih4NYCk\nbwLfknQD2X5LKVIyri8Czo+IkCQaDDfdcssga9dmq5wGBpxxbWZj14QJ2bL/v/wly8BO1e6M63si\n4oCq5+YAxwO7RMS0hg2nZVw/wOaOYQrwNPDBiJhb1VbMmBF861tw+OEt/XxmZj1p333h5pthWsNv\n2sbKzrheJOktlU9ExOeBK8m2D2+macZ1RLw8IvaJiH3I5iU+XN1BDPNwk5n1k26Zl2iUcX0GgKRT\nyfZTelLSZ8lyJF7brOHEGtfJVq3KSpeamfWDbpmXSMlf/mxE/Luk15Pt1noh8C2yfZYaSsm4rnj+\nvY3amjgRtt46IVozszGgW64kUmpcP5//eSLZ3ko3Aclf180S6iSdIWmZpDskzZd0UK12PNRkZv2k\nlzqJRyV9h2xO4UeStkl8X2VC3Uyybcdn51uQV3oAeENEHAR8AfhOrbacSGdm/aRbEupSvuxPJZtX\nOD4ingAmkdW+TtE0oS4iFkTE2vzh7cCetRrylYSZ9ZOemZOIiHVkleiGH68g2+wvRa2EukZzGe8H\nau4H5U7CzPpJtww3lb3xdnKVVknHAu8Djqr1ujsJM+sn/dJJPArsVfF4L7KriS3kk9WXAzMj4s+1\nGrr11kHWrMnuO+PazMa6l7wEnn4annkGtt027T1tzbgupHFpK+BesqWzy4FfA7Mrd4KV9FLg58C7\nI+K2Ou3E/PnBkUeWFqqZWdd52cvgllvg5S8f2fvLzrgetYjYAAwn1N0FfG84oW44qQ74HNlk+KWS\nlkj6da22PNxkZv2mG4acSr2SKIqkeOaZYJttOh2JmVn7nHwynHEGvPOdI3t/119JFMkdhJn1m27I\nlSi1k0gpXyrp4vz1ZZIOLTOeTil6Iqndejn+Xo4dHH+ndTr+bsiVKK2TSMm2ljQLeEW+7fiH2Fx8\naEzp9C/aaPVy/L0cOzj+Tut0/N0wJ1HmlURK+dK3AVcDRMTtwERJ3uvVzIyx30k0LV9a55ia23KY\nmfWbbpiTKG11k6R3kCXHfTB//G7giIg4p+KYHwJfjYj5+eOfAZ+IiMVVbXX/Eiwzsy402tVNZWZc\np2RbVx+zZ/7cFkb7Q5qZ2ciUOdzUtHxp/vhM2FQT+4mIWFliTGZm1oLSriRSypdGxDxJsyTdD6wD\nGlanMzOz9uqJjGszM+uMrsq47vXku4RSrQdIWiDpWUnndSLGeooqM9spCfG/PY9/iaRFkt7YiTjr\nSfndz487TNIGSae0M75mEs7/gKS1+flfIukznYiznsTvnoE89t9KGmpziHUlnPuPVZz3O/Pfn4nJ\nHxARpd2AK4CVwJ0NjrkYuA9YBjwE7A2MB5YCB1YdOwuYl98/AritzPhb/FnHAfc3iX9n4DXAF4Hz\nOh1zi7G/DpiQ35/Zg+d++4r7rybL4el47KnxVxz3c+Am4B2djrvF8z8AzO10rKOIfyLw38Ce+eMp\nnY67ld+diuNPBH7WymeUfSVxJdkXSk1VGdcXAztF7ybfpZRqfSwiFgLrOxFgA4WVme2QlPjXVTzc\nAVjdxviaSUk8BTgHuA54rJ3BJUiNv1tXKabE/y7g+oh4BCAiuuX3J/XcD3sXcE0rH1D2VuG3AjWL\nCOU2fekDawEqvvR7LfkuJXmwW7Uae90ysx2SFL+kkyTdDfwY+EibYkvRNH5Je5D94x/euqabJhNT\nzn8AR+ZDfvMkvbJt0TWXEv80YLKkWyQtlPSetkXXWPK/XUnbASdQUY46RdmV6Zqp/AGDbIXTnmRD\nVPVU/2+kW/6xdEscI1FYmdkOSYo/Im4EbpR0NPDPwP6lRpUuJf6LgPMjIiSJ7vpfeUr8i4G9IuJp\nSW8BbgT2KzesZCnxjwemkxVQ2w5YIOm2iLiv1Miaa+V7563ALyPiiVY+oPTVTZL2Bn4YEa+u8dqm\njOs8T+Im4PiIWCzpU8DGiLjAGddmZiMTeTKypO+TFX67tpX3d3p1U2XG9UJgJ+BFtZLvRjvB87GP\nBRdcUO4k0pw5czo+keU4HaPjLP72k58Exx3X/XFW34ZJmgC8AfhBq1/Sne4kNmVck636+T3wr1SV\nOi3ig1auhKndMsVtZj1ll12y75AedhLwnxHxTKtvLHVOQtI1wDHAFEkPA3PIxvaI2hnXZ0TV5n4R\ncZmkb482llWrsr9oM7NWTZ2afYf0qoi4ms2LhFpSaicREbMTjjm7zBiGtaOTGBgYKPcDCuI4i9ML\nMYLjHK0pU+Dxx+H552HcuO6NswylTlxLmkm2KmMc8N2IuKDq9SnAvwC7knVYF0bEVTXaidHGueee\nsGAB7LVX82PNzKpNmQJ33w0779zpSNJJIka5i3ZHy5cCZwNLIuIQsozMr0sq/OomIruS6KW/XDPr\nLrvs0ttDTiPV6fKlK8hWNJH/uSYiNhQdyNq1sO22sM02RbdsZv2iXzuJMuckamUCHlF1zOXAzyUt\nB3YETi0jEE9am9lo9WsnUeaVRMokwqeBpRGxO3AIcImkHYsOxJ2EmY1Wv3YSnS5feiTwJYCI+L2k\nP5BtlbCwurHBwcFN9wcGBlpaXeBOwsxGqxc6iaGhIYaGhgpts7TVTfkE9L1ke50sB34NzI6IuyuO\n+QawNiI+n2/stwg4KCIer2prVKubvv1tWLIELrtsxE2YWZ/rxe+RIlY3dbR8KfBl4EpJy8iGvj5R\n3UEUwVcSZjZavXAlUYayk+l+TLYtc+Vzl1XcX022M2GpVq2C/btlv08z60n92kl0eu+mtli1yvs2\nmdno9Gsn0fRKIq+F+jqy8ngBPAhUVilr9N6GGdf5MQPA35Pt6bQ6IgaSo0/k4SYzGy13ElXywiwf\nJ+sclpBNPousw/iapAeBr0XEL+u8fzjj+k1kK51+I2lu1cT1ROAS4ISIeCTfpqNw7iTMbLQmTIBn\nnoFnn+2vxNxGVxInA+dFncpLkvYDzgJqdhJUZFznxw9nXN9dcUxb6sa6kzCz0ZKy75HHHuuvPeDq\nzklExLkRcZ+kfapfk7RPRPwuIs5t0HZX1I1dvz7blmPy5KJbNrN+M3Vqz9eVaFnK6qYbgEOrnrue\nrN5rI4XWjR1pMt3q1fCSl8CL+mKK3szK1O3zEmUk0zWakziQbPfWCZJOIZuPCLKN+F6c0HZKxvXD\nZJPVzwDPSPoFcDDQsJNohYeazKwo3d5JVP8H+vOf//yo22x0JbE/WQ7DBLbMZXgK+GBC2wuBaZL2\nJpv0Pg2oLkL0A+Cb+ST3i8k2APxGSuCp3EmYWVG6vZMoQ91OIiJuBG6UdGRE/KrVhlMyriPiHkk3\nA3cAG4HLI+KuEf0kdbiTMLOijIFa1y1rNNw0CFxar4OQtBtwVkTMqddGs4zr/PGFwIUtxNwSdxJm\nVpRddoE77+x0FO3VaLhpIXCtpK2BxWQFgkRWanQ68BwlfrkXxZ2EmRWlH4ebGi2BvSkijgVOB+YD\nG4D1ZHkRp0XEGyNiXqPGJc2UdI+k+yR9ssFxh0nakE+QF8qdhJkVpR87iaZLYCPiYbLSoy1Jybiu\nOO4C4GayK5VCed8mMytKP3YSda8kJE2Q9BlJZ0naStIcSTdJ+oKkbRPaTqlxDXAOcB3w2Ih+giZ8\nJWFmRdl55+w7paQyPF2pUYrZVcAk4CBgCJgKfA3Ylmy/pWaaZlxL2oOs47g0f6rwU+9OwsyKss02\nsO222S4O/aLRcNO+EXGyJJFNWr8hIjZKuhVYltB2yhf+RcD5ERH559QdbhppxrU7CTMr0vCQ08SJ\nnY7khdpavlTS0og4JL9/ZUS8t+K1OyLioIYNS68FBiNiZv74U8DGyu3CJT3A5o5hCvA08MGImFvV\n1ojKl65bl/2FrlvX8lvNzGo66ii44AJ4/es7HUlzZZcvXSRpx4h4qqqD2Bd4MqHtphnXEfHyinav\nBH5Y3UGMhq8izKxo/TZ53Sjj+v0Akk4Fbo6IJyV9FpgB/G2zhhNrXJfKnYSZFc2dxAt9NiL+XdLr\nyXZrvZBsaesRzd6YknFd8fx7az0/GitXupMws2L129YcKRtoP5//eSLZ3ko3AVunfkCzhDpJZ0ha\nJukOSfMlNZzraIWvJMysaFOn9teVREon8aik75DNKfxI0jaJ76tMqJtJtu347HwL8koPkK2cOgj4\nAvCd1OCbcSdhZkXrt+GmlC/7U8nmFY6PiCfIcic+nth+04S6iFgQEcOrjm8H9kxsuyl3EmZWtH7r\nJFK25VhHVolu+PEKsryJFLUS6hrNZbwfaLgfVCtWrYLDDiuqNTMzdxJFS05ukHQs8D7gqKI+3Ps2\nmVnR3EkUK6WEKflk9eXAzIj4c62GRpJx7eEmMyva5Mnw5JOwfj2MH9/paLbU1ozrQhqXtgLuJVs6\nuxz4NTC7cidYSS8Ffg68OyJuq9POiDKud90Vli7N/jQzK8quu8KSJbDbbp2OpLGyM65HLTGh7nNk\nk+GXZts3sT4iDh/tZ2/cCGvWwJQpo23JzGxLw0NO3d5JFKHs4aamCXUR8QHgA0V/7uOPw4QJsFXp\nP6GZ9Zt+mpdIynfoRZ6PMLOyuJMoSEr5UkkX568vk3RoUZ/tTsLMyuJOogAp2daSZgGviIhpwIfY\nXHxo1DrRSRS9qqAsjrM4vRAjOM6i/eUvQ+4kCpBSvvRtwNUAEXE7MFFSIZkN7iTqc5zF6YUYwXEW\nbdUqdxJFaFq+tM4xhWzL4eEmMyvL9tt7uKkIqYkN1Wt4C0nccCdhZmXZfvv+2S68tGS6xPKl3waG\nIuLa/PE9wDERsbKqrfIy/szMxrBuTqZrWr4UmAucDVybdypPVHcQMPof0szMRqa0TiIl2zoi5kma\nJel+YB0INW7UAAAOG0lEQVRQeHU6MzMbuVL3bjIzs97WVRnXCaVO354n3S2RtEjSG7stxorjDpO0\nQdIp7Yyv4vObncsBSWvzc7lE0me6Mc78mIE8xt9KGmpziMMxNDufH6s4l3fmf/cTuzDOKZJulrQ0\nP5//u90x5nE0i3OSpO/n/95vl/SqDsR4haSVku5scEwpycCtaBanpAMkLZD0rKTzWv6AiCjtBlwB\nrATubHDMxcB9wDLgIWBvYDywFDiw6tjtK+6/miwPo9SfoerzxwH3N4qx4rifAzcB72hnjKlxAgPA\n3HbHNoI4JwL/DeyZP57SjXFWHX8i8LNujBMYBL4yfC6BNcBWXRjn3wGfze/v36HzeTRwaL3vL2AW\nMC+/fwRwW7tjTIxzZ+A1wBeB81ptv+wriSvJMq5rqsq4vhjYKRqXOl1X8XAHYHXxITeUkiAIcA5w\nHfBYO4OrkBpnpxcEpMT5LuD6iHgEICLa/XcO6edz2LuAa9oS2ZZS4lwB7JTf3wlYExEb2hgjpMV5\nIHALQETcC+wtaed2BhkRtwI169vkSksGbkWzOCPisYhYCKwfSfuldhKtnGRgLUDFSa6VfIekkyTd\nTbaz7EeKizZJ0wRBSXuQ/cIPbzHSiUmflETGAI7ML5PnSXpl26LbLCXOacBkSbdIWijpPW2LbrOU\nOAGQtB1wAhUlf9soJc7LgVdJWk529f7RNsVWKSXOZcApAJIOB15GQYm2BSotGbibdHpOovIkB9kK\np4YnOSJujIgDgbcC/1xueC/8+IRjLgLOj+w6T3Tmf+spcS4G9oqIg4F/AG4sN6SaUuIcD0wnu7Q/\nAfispGmlRvVCrXT0bwV+GRFPlBVMAylxfhpYGhG7A4cAl0jasdywXiAlzq+S/c98Cdky+SXA86VG\nNTKlJAN3k9JXN+V5Ej+MiFfXeO2HwFcjYn6eJ3ETcHxELK5MvnMynZnZyESeZyZpDvCXiPh6K+/v\n9JVEZQ3shWRjpC+StDVZ8t3c4QMjgh/9KJg5s/0TQ910mzNnTsdj6Jabz4XPhc/F5ttzzwXjxgXP\nP7/5uSojGtXodCcxFzgzv/8a4PfAvwJ3Ad+LiuQ7yKrNTZ7c/iDNzLrd1lvDttvCU09t+bykXSU9\nDPwt8BlJD0naIbXdUot7SroGOAaYkgc5h2yMmaidcX1GRCyubCMiLsv3eOLPf4ZJk8qM2Mysd02a\nlH1PTpiw+bmI+BObR2xaVmonERHVezXVOubs1PZ8JQEDAwOdDqFr+Fxs5nOxWT+fi8mTs+/Jvfcu\nrs1ODze1xJ1Ef/8DqOZzsZnPxWb9fC4mT86uJIrU0RrXrW4R4OEmM7P6Jk3K/jNdpI7WuCZf/xwR\nh5BtE/F1SXWHwHwlYWZW3/BwU5E6XeO6pS0C3EmYmdVXxnBTmRPXtVLWj6g65nLg5/kWATsCpzZq\n0MNNZmb1lTHcVGYn0coWAQOS9gV+KungiHiq+sDBwUEeegiuuAJOPHGgryenzMxqeeyxIW65ZYjB\nweLa7HSN63nAlyJifv74v4BPRrZjYWVbsXFjsPXW8Je/wItfXErIZmY97brr4Jpr4Pp8e0lJxCjL\nP5c5J7GpxnWtbTZy9wBvgk27v+4PPFCrsXXrsoxCdxBmZrX11HBTJNS4Br4MXClpGVmH9YmIqPkj\netLazKyxMlY3lZ1x/WOyug+Vz11WcX812dbKTbmTMDNrrCOrm/I6va8jKzUYwIPAgohYm/DemWT1\nFcYB362cj6g4ZgD4e7I9nVZHxECttryyycyssbYON0k6Gvg4WeewBFhOttXs64CvSXoQ+FpE/LLO\n+4eT6d5EtiX4byTNjYi7K46ZCFwCnBARj0iaUi8eX0mYmTW2447w7LPwP/+TzeEWodGVxMlkRbPv\nq/WipP2As4CanQQVyXT58cPJdHdXHJNcv9idhJlZY9LmIaepBVXbrru6KSLOjYj7JO3zwkC0T0T8\nLiLObdB2ofWLPdxkZtZc0UNOKUtgb6jxXEqR90LrF/tKwsysuaJXODWakziQbGO+CZJOIZuPCLI9\nllKyFSpLk5Lff6TqmIfJJqufAZ6R9AvgYOAFQ1w//ekgu+0Gg4PZVsDOuDYz29LQ0BCrVw9xySXw\n058W02bdjGtJJwEnkS1RrUyCewq4NiJ+1bDhbDfXe4HjyCa9fw3Mrpq4PoBscvsEso7nduC0iLir\nqq145zuDv/5rOLXh7k5mZv3t3e+G44+HM88sJuO67pVERNwI3CjpyGYdQp33N02mi4h7JN0M3AFs\nBC6v7iCGebjJzKy5dg43DQKX1usgJO0GnBURc+q10SyZLn98IXBhs0DdSZiZNVd0Ql2jJbALgWvz\nfZcWk9V+ELAr2WTzcyR8uRfFq5vMzJqbNAnuv7+49hotgb0pIo4FTgfmAxuA9WR5EadFxBsjYl6j\nxpuVL6047jBJG/IJ8pp8JWFm1lzbhpuGRcTDZFXlWpKScV1x3AXAzWRXKjU9/TTstFO9V83MDIof\nbmppq3BJv2vh8JTypQDnANcBjzVqbOLELJvQzMzqKzqZrtHE9VNkeRGVX83bDT8fEc3+X9+0fKmk\nPcg6jjcCh9EgAc9DTWZmzbVzuOlKYCJZjYc/SRLwQES8YJuOOlIyri8Czo+IyNtvMNw0uKkkn5Pp\nzMxeaGhoiB/9aIhHHqGwEqYNy5dKeg3wNeAHZPML96d2EonlSx9gc8cwBXga+GBEzK1qK2bODH68\nxWJaMzOrtn49bLttthPsuHElly/Na02/OX84BGzTQttNy5dGxMsjYp+847kO+HB1BzHMw01mZs2N\nH591Ek89VUx7KRPXp5ANPZ0GXCrp+5KmN3tTRGwAhjOu7wK+N5xxPZx13Qp3EmZmaYpc4ZRSvvRz\nEfEfkg4im2C+ELiUqknoWlIyriuef2+jtpxIZ2aWpsgVTilXEs/nf55ItrfSTUBBNY/S+UrCzCxN\nkVcSKZ3Eo5K+Qzbc9CNJ2yS+D2iedS3pDEnLJN0haX5+xfIC7iTMzNIUuQw25cv+VLJ5heMj4glg\nElnt66Yqsq5nktWmmJ3Xqaj0APCGiDgI+ALwnVptebjJzCxNkcNNKdtyrKOiEl1ErCDb7C9F0zrX\nEbGg4vjbgT1rNeQrCTOzNO0ebhqNlDrXld4P1Nw00J2EmVmaIoebUlY3jUZK1jUAko4F3gccVev1\nf/zHQXbYIbvvjGszsxcaGhpiaGiIRYvg0UeLabNhxvWoG0/Ius6fPwi4AZgZES/YCV1SPPts8OKU\nytpmZn3uuuvgmmvghhtKzrguQNOsa0kvJesg3l2rgxjmDsLMLE3PDDel1LkGPke2YurSbI8/1kfE\n4WXGZWY2lhW5uqnU4aaiSIpeiNPMrBv88Y9w9NHw8MNdPtyUUr5U0sX568skHVpmPGZm/aDdyXQj\nkpJIJ2kW8IqImAZ8iGxPKGtgaGio0yF0DZ+LzXwuNvO5gB12gOeeK6atMq8kUsqXvg24GiAibgcm\nSppaYkw9z/8ANvO52MznYjOfi6zUc1G7VJTZSaQk0tU6pmbGtZmZpSsqAbnMTiJ1prl6UsUz1GZm\no1RUJ1Ha6qbE8qXfBoYi4tr88T3AMRGxsqotdxxmZiMw2tVNZeZJbEqkA5aTJdLNrjpmLln1umvz\nTuWJ6g4CRv9DmpnZyJTWSaQk0kXEPEmzJN0PrAMaVqczM7P26olkOjMz64yy925qiZPvNiuqot9Y\nkPJ7kR93mKQNkk5pZ3ztkvjvY0DSEkm/lTTU5hDbJuHfxxRJN0tamp+L/92BMNtC0hWSVkq6s8Ex\nI//ejIiuuJENSd0P7A2MB5YCB1YdMwuYl98/Arit03F38Fy8DpiQ35/Zz+ei4rifAzcB7+h03B36\nnZgI/DewZ/54Sqfj7uC5GAS+MnwegDXAVp2OvaTzcTRwKHBnnddH9b3ZTVcSTr7brOm5iIgFEbE2\nf1i3ot8YkPJ7AXAOcB3wWDuDa6OU8/Au4PqIeAQgIla3OcZ2STkXK4Cd8vs7AWsiYkMbY2ybiLgV\naFSHblTfm93USTj5brPCKvqNAU3PhaQ9yL4khrd1GYsTbSm/E9OAyZJukbRQ0nvaFl17pZyLy4FX\nSVoOLAM+2qbYutGovjfLrkzXCiffbVZYRb8xIOVcXAScHxGhbL/5sbhkOuU8jAemA8cB2wELJN0W\nEfeVGln7pZyLTwNLI2JA0r7ATyUdHBFPlRxbtxrx92Y3dRKPAntVPN6LrMdrdMye+XNjTcq5GK7o\ndzlZRb+Cyp53nZRzMYMs1way8ee3SFofEXMZO1LOw8PA6oh4BnhG0i+Ag4Gx1kmknIsjgS8BRMTv\nJf0B2J8sf6vfjOp7s5uGm5pWscsfnwmbMrprJt+NAYVV9BsDmp6LiHh5ROwTEfuQzUt8eIx1EJD2\n7+MHwOsljZO0Hdkk5V1tjrMdUs7FPcCbAPLx9/2BB9oaZfcY1fdm11xJhJPvNkk5F/RJRb/EczHm\nJf77uEfSzcAdwEbg8ogYc51E4u/El4ErJS0j+8/wJyKioAoL3UXSNcAxwBRJDwNzyIYeC/nedDKd\nmZnV1U3DTWZm1mXcSZiZWV3uJMzMrC53EmZmVpc7CTMzq8udhJmZ1eVOwmyEJE2Q9OFOx2FWJncS\nZiM3Cfg/nQ7CrEzuJMxG7qvAvnmRnws6HYxZGZxxbTZCkl4G3BQRr+50LGZl8ZWE2ciNxS3Jzbbg\nTsLMzOpyJ2E2ck8BO3Y6CLMyuZMwG6GIWAPMl3SnJ65trPLEtZmZ1eUrCTMzq8udhJmZ1eVOwszM\n6nInYWZmdbmTMDOzutxJmJlZXe4kzMysLncSZmZW1/8Hhw5SnakvwYMAAAAASUVORK5CYII=\n", + "text/plain": [ + "<matplotlib.figure.Figure at 0x7ff404cc5710>" + ] + }, + "metadata": {}, + "output_type": "display_data" + }, + { + "data": { + "image/png": "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\n", + "text/plain": [ + "<matplotlib.figure.Figure at 0x7ff3eae3fad0>" + ] + }, + "metadata": {}, + "output_type": "display_data" + } + ], + "source": [ + "from __future__ import division\n", + "from numpy import arange, ones, sqrt\n", + "%matplotlib inline\n", + "from matplotlib.pyplot import plot, subplot, xlabel,ylabel,title, show\n", + "\n", + "#using Gram-Schmidt orthogonalization procedure\n", + "T = 1#\n", + "t1 = arange(0,0.01+T/3,0.01)\n", + "t2 = arange(0,0.01+2*T/3,0.01)\n", + "t3 = arange(T/3,0.01+T,0.01)\n", + "t4 = arange(0,0.01+T,0.01)\n", + "s1t = [0]+[x for x in ones(len(t1)-2)]+[0]\n", + "s2t = [0]+[x for x in ones(len(t2)-2)]+[0]\n", + "s3t = [0]+[x for x in ones(len(t3)-2)]+[0]\n", + "s4t = [0]+[x for x in ones(len(t4)-2)]+[0]\n", + "t5 = arange(0,0.01+T/3,0.01)\n", + "phi1t = [sqrt(3/T)*x for x in [0]+[x for x in ones(len(t5)-2)]+[0]]\n", + "t6 =arange(T/3,0.01+2*T/3,0.01)\n", + "phi2t = [sqrt(3/T)*x for x in [0]+[x for x in ones(len(t6)-2)]+[0]]\n", + "t7 = arange(2*T/3,0.01+T,0.01)\n", + "phi3t = [sqrt(3/T)*x for x in [0]+[x for x in ones(len(t7)-2)]+[0]]\n", + "\n", + "#figure\n", + "title('Figure3.4(a) Set of signals to be orthonormalized')\n", + "subplot(4,1,1)\n", + "plot(t1,s1t)\n", + "xlabel('t')\n", + "ylabel('s1(t)')\n", + "subplot(4,1,2)\n", + "plot(t2,s2t)\n", + "xlabel('t')\n", + "ylabel('s2(t)')\n", + "subplot(4,1,3)\n", + "plot(t3,s3t)\n", + "xlabel('t')\n", + "ylabel('s3(t)')\n", + "subplot(4,1,4)\n", + "plot(t4,s4t)\n", + "xlabel('t')\n", + "ylabel('s4(t)')\n", + "show()\n", + "\n", + "\n", + "#figure\n", + "title('Figure3.4(b) The resulting set of orthonormal functions')\n", + "subplot(3,1,1)\n", + "plot(t5,phi1t)\n", + "xlabel('t')\n", + "ylabel('phi1(t)')\n", + "subplot(3,1,2)\n", + "plot(t6,phi2t)\n", + "xlabel('t')\n", + "ylabel('phi2(t)')\n", + "subplot(3,1,3)\n", + "plot(t7,phi3t)\n", + "xlabel('t')\n", + "ylabel('phi3(t)')\n", + "show()" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "## Example3.2 page 121" + ] + }, + { + "cell_type": "code", + "execution_count": 2, + "metadata": { + "collapsed": false + }, + "outputs": [ + { + "data": { + "image/png": "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\n", + "text/plain": [ + "<matplotlib.figure.Figure at 0x7ff3eb2efa90>" + ] + }, + "metadata": {}, + "output_type": "display_data" + }, + { + "name": "stdout", + "output_type": "stream", + "text": [ + "Figure 3.8 (b).Representation of transmitted dibits\n", + "Loc. of meg.point| (-3/2)asqrt(T)|(-1/2)asqrt(T)|(3/2)asqrt(T)|(1/2)asqrt(T)\n", + "________________________________________________________________________________\n", + "Transmitted dibit| 00 | 01 | 11 | 10\n", + "\n", + "\n", + "Figure 3.8 (c). Decision intervals for received dibits\n", + "Received dibit | 00 | 01 | 11 | 10\n", + "________________________________________________________________________________\n", + "Interval on phi1(t)| x1 < -a.sqrt(T) |-a.sqrt(T)<x1<0| 0<x1<a.sqrt(T) | a.sqrt(T)<x1\n", + "0.0049504950495\n" + ] + }, + { + "data": { + "image/png": "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\n", + "text/plain": [ + "<matplotlib.figure.Figure at 0x7ff3eb014210>" + ] + }, + "metadata": {}, + "output_type": "display_data" + } + ], + "source": [ + "from __future__ import division\n", + "from numpy import sqrt,arange,random,sin,pi,zeros,multiply\n", + "%matplotlib inline\n", + "from matplotlib.pyplot import plot,subplot,xlabel,ylabel,title,show,grid\n", + "\n", + "#Signal constellation and Representation of dibits\n", + "a =1# #amplitude =1\n", + "T =1# #Symbol duration in seconds\n", + "#Four message points\n", + "Si1 = [(-3/2)*a*sqrt(T),(-1/2)*a*sqrt(T),(3/2)*a*sqrt(T),(1/2)*a*sqrt(T)]\n", + "plot(Si1,[0,0,0,0])\n", + "xlabel('phi1(t)')\n", + "title('Figure 3.8 (a) Signal constellation')\n", + "grid()\n", + "show()\n", + "print 'Figure 3.8 (b).Representation of transmitted dibits'\n", + "print 'Loc. of meg.point| (-3/2)asqrt(T)|(-1/2)asqrt(T)|(3/2)asqrt(T)|(1/2)asqrt(T)'\n", + "print '________________________________________________________________________________'\n", + "print 'Transmitted dibit| 00 | 01 | 11 | 10'\n", + "print ''\n", + "print ''\n", + "print 'Figure 3.8 (c). Decision intervals for received dibits'\n", + "print 'Received dibit | 00 | 01 | 11 | 10'\n", + "print '________________________________________________________________________________'\n", + "print 'Interval on phi1(t)| x1 < -a.sqrt(T) |-a.sqrt(T)<x1<0| 0<x1<a.sqrt(T) | a.sqrt(T)<x1'\n", + " \n", + "#Implementation of LMS ADAPTIVE FILTER\n", + "#For noise cancellation application\n", + "order = 18#\n", + "t =arange(0,0.01+1,0.01)\n", + "x = [sin(2*pi*5*tt) for tt in t]\n", + "noise =random.rand(len(x))\n", + "x_n = x+noise#\n", + "ref_noise = [noise*xx for xx in random.rand(10)]\n", + "w = zeros([order,1])\n", + "\n", + "\n", + "mu = 0.01*(sum(multiply(x,x))/len(x))\n", + "\n", + "print mu\n", + "\n", + "N = len(x)#\n", + "desired=[]\n", + "for k in range(0,1010):\n", + " for i in range(0,N-order-1):\n", + " if i < len(ref_noise):\n", + " buffer = ref_noise[i]#,i+order-1]\n", + " desired.append(x_n[i]-buffer*w)\n", + " w = w+(buffer*mu*desired[i])\n", + " \n", + "\n", + "subplot(4,1,1)\n", + "plot(t,x)\n", + "title('Orignal Input Signal')\n", + "subplot(4,1,2)\n", + "plot(t,noise)\n", + "title('random noise')\n", + "subplot(4,1,3)\n", + "plot(t,x_n)\n", + "title('Signal+noise')\n", + "show()" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "## Example3.3 page 123" + ] + }, + { + "cell_type": "code", + "execution_count": 3, + "metadata": { + "collapsed": false + }, + "outputs": [ + { + "data": { + "image/png": "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\n", + "text/plain": [ + "<matplotlib.figure.Figure at 0x7ff3eaa3f9d0>" + ] + }, + "metadata": {}, + "output_type": "display_data" + } + ], + "source": [ + "from __future__ import division\n", + "from numpy import arange,sqrt,cos,pi,convolve\n", + "%matplotlib inline\n", + "from matplotlib.pyplot import plot,subplot,title,show\n", + "\n", + "\n", + "fc =4# #carrier frequency in Hz\n", + "T =1#\n", + "t1 = arange(0,0.01+T,0.01)\n", + "phit = [sqrt(2/T)*xx for xx in cos(2*pi*fc*t1)]\n", + "hopt = phit#\n", + "\n", + "phiot = convolve(phit,hopt)#\n", + "phiot = [yy/max(phiot) for yy in phiot]\n", + "\n", + "t2 = arange(0,0.01+2*T,0.01)\n", + "subplot(2,1,1)\n", + "plot(t1,phit)#\n", + "title('Figure 3.13 (a) RF pulse input')\n", + "subplot(2,1,2)\n", + "plot(t2,phiot)#\n", + "title('Figure 3.13 (b) Matched Filter output')\n", + "show()" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "## Example3.4 page 124" + ] + }, + { + "cell_type": "code", + "execution_count": 4, + "metadata": { + "collapsed": false + }, + "outputs": [ + { + "data": { + "image/png": "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\n", + "text/plain": [ + "<matplotlib.figure.Figure at 0x7ff3ea9d83d0>" + ] + }, + "metadata": {}, + "output_type": "display_data" + } + ], + "source": [ + "from __future__ import division\n", + "from numpy import random,convolve\n", + "%matplotlib inline\n", + "from matplotlib.pyplot import plot,subplot,title,show\n", + "\n", + "\n", + "phit = [0.1*xx for xx in random.uniform(0,1,10)]\n", + "hopt = phit\n", + "phi0t = convolve(phit,hopt)\n", + "phi0t = [yy/max(phi0t) for yy in phi0t]\n", + "subplot(2,1,1)\n", + "plot(range(0,len(phit)),phit)\n", + "title('Figure 3.16 (a) Noise Like input signal')\n", + "subplot(2,1,2)\n", + "plot(range(0,len(phi0t)),phi0t)\n", + "title('Figure 3.16 (b) Matched Filter output')\n", + "show()" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "## Example3.6 page 127" + ] + }, + { + "cell_type": "code", + "execution_count": 5, + "metadata": { + "collapsed": false + }, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "Predictor-error variance 0.64\n", + "1 Predictor input variance 1\n", + "The predictor-error variance is less than the variance of the predictor input\n" + ] + } + ], + "source": [ + "from __future__ import division\n", + "\n", + "Rxx = [0.6, 1, 0.6]\n", + "h01 = Rxx[2]/Rxx[1]# #Rxx(2) = Rxx(0), Rxx(3) = Rxx(1)\n", + "sigma_E = Rxx[1] - h01*Rxx[2]\n", + "sigma_X = Rxx[1]\n", + "print 'Predictor-error variance',sigma_E\n", + "print sigma_X,'Predictor input variance',sigma_X\n", + "if(sigma_X > sigma_E):\n", + " print 'The predictor-error variance is less than the variance of the predictor input'\n" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "## Example3.29 page 137" + ] + }, + { + "cell_type": "code", + "execution_count": 6, + "metadata": { + "collapsed": false + }, + "outputs": [ + { + "data": { + "image/png": "iVBORw0KGgoAAAANSUhEUgAAAX4AAADQCAYAAAAAuwrWAAAABHNCSVQICAgIfAhkiAAAAAlwSFlz\nAAALEgAACxIB0t1+/AAAIABJREFUeJzsXXmcTeX/f39Mkn1n7AxCsiVlKxNJhPiWklRK+LVIimSp\noY20aZFQoWhBUpZQGEu2MPZ1GIzZGDNj7MPcz++Pzz3umTvn3nvuveece2fc9+t1XjP3nOc8z3Oe\n85zP83k+KzEzQgghhBBCuHFQINAdCCGEEEIIwVqECH8IIYQQwg2GEOEPIYQQQrjBECL8IYQQQgg3\nGEKEP4QQQgjhBkOI8IcQQggh3GAIEf4QLAcRjSSi6Ra004+I1pndjtkgoilENMaCdsYS0Y9mtxNC\n4BEi/CH4BTtx3U1EF4goiYi+JqKS7u5h5vHMPMCqPmqBiGoSkY2ITP8GiCiaiPp7KNOfiPYTUSYR\nJRPREiIqBgDM/AIzv2d2PwGEnHpuEIQIfwg+g4heBzABwOsASgBoCaAGgL+JqKCLe8Ks62HQwC1B\nJaJ2AN4H0JuZSwBoAOAXKzrm3JUAtBlCABAi/CH4BCIqAWAsgJeZeQUzZzPzcQCPAagJoK+93Fgi\nmk9EPxLRWQD9nEUKRPQ0ER0nolQiGkNEx4iover+uUQ0y84N7yGi5qp73ySiWPu1vUTUw8fnmUlE\nk4losb2uTUQUobpuI6LBRHSEiE4T0UQiIlUf1c+j7CbCiOh9APcA+IqIzhHRFxrNtwCwkZl3AgAz\npzPzj8x8XtW3d1X1v0FEiUR0koiet7cVofM5PieiE0R0loi2ElFbX8YrhLyNEOEPwVe0BnALgAXq\nk8x8AcBSAB1Vp7sDmMfMJQHMgYoDJqLbAEwG8ASASgBKAqjs1FY3AD/br/0J4CvVtVgAbe2c8jgA\ns4mooo/P9DhkMSttr/d9p+s9ADQHcAeAhwE8Zz/viqNnZh4NYB2Al5i5ODO/olFuE4BO9gWkDREV\ncq5HaYOIHgQwFEAHAHUBRHr5HFsANLFf+wnAPCK62UX/Q8inCBH+EHxFOQCpzGzTuJZsv65gAzP/\nCQDMfBk5RQqPAviTmTcw81UAbyM3IV3HzMtYAkvNhhAu2Oubz8zJ9v/nAjgM4G4fnocBLGDmrcyc\nDVmgmjqV+ZCZM5g5HsAkyGIF6BORuCzDzOsB/A+yoCwGkEpEn7jQPzwG4Htm3s/MlwBEefMczDzH\nvqOwMfOnAAoBqKej/yHkI4QIfwi+IhVAORfEqRKA06rfJ93UU1l93U7MzjiVSVH9fxHALUq7djFR\nDBGlE1E6gNsBlNX/GC7buQSgmNP1eNX/J5B7Z+IObuX89oWtOzOXhuwm+gF4XqNoJad+aI2ty+cg\nomFEtI+IMuzjVRI5F+kQbgCECH8IvmIjgCsAHlGftFuiPAhgpeq0O6KXCKCq6v7C0Em4iagGgGkA\nXgJQxk4098A8JWV1p/8T7P9fAFBEdS3c6T6vrGWYeRWAVQAaalxOAlBN9buaRhlNENE9AIYD6MXM\npezjdRYhpe4NhxDhD8EnMPNZiEz9SyLqREQFiagmgLkQjlSvPfhvALoRUSu7rHks9BOiohCimgqg\nABE9C+H4fYGeNocRUSkiqgbgFQC/2s/HALiXiKrZTVlHOt2XAqC2y4aJuhPR40RUmgR3AWgHkf0r\nfVP6NxfAs0RUn4iKAHjLi+coDuAaRJR0MxG9DbHGCuEGQ4jwh+AzmPkjAKMAfAzhHDcBOA6gg11e\nD6gUk+pblXPMvBfAYIj5YiKAcwBOQXYT7u4HM+8D8Alk95EMIfrrtdpx9Qgeyjr//gPANgihXwzg\ne3s//oEsArsA/AdgkdO9nwN4lIjSiGiSRj/SAQwAcAgyjj8CmMjMPzv3jZmXAfgCwGp7+Y32Mh7H\nC8Ay+3EIwDGIGOiEhzEIIR+C/E3EQkTfA3gIwClmbuSizBcAOkPks/2YOcavRkPIt7CLitIB1LGb\nhwYFiMgG6dPRQPdFDSJqAGA3gJtdKNpDCCEXjOD4Z0Bkupogoi6QD6YugIEAphjQZgj5CETUjYiK\nEFFRyO5hVzAR/WADEfUkokJEVBrAhxCrqBDRD0E3/Cb8zLwOwqG5QncAs+xlNwMo5YeddQj5E90h\nitIEiCy8d2C7o4lgEoEMhOgNYgFcBfBCYLsTQl7DTRa0UQW5zc+qIqfJWQg3MOxxewIau8cTmDlo\nQk0wc+dA9yGEvA2rlLvOlgbBxD2FEEIIIdxQsILjT0BOW+OqcNg/XwcRhRaDEEIIIQQfwMxe+WJY\nwfH/CeBpACCilgAymFlTzMPMuo79+xmVKjEmTmSkpua8lpjIGDOGUasW48QJffUF2xEVFaW77I4d\njIoVGZ9/zkhLy3nt5EnG8OGMevUYSUmBfy6zx2LLFkb58owpUxhnz+a8dvw4Y/BgRqNGuedMXjm8\nGYt16xjlyjG+/ZaRmZnz2tGjjIEDGc2bM9LTA/9cZo/FP//IWMyaxTh/Pue1w4cZzzzDaN069zjl\nlcMnGNDozxD76yyILP85AIMADFKV+QqiiNoJ4A4X9bAeHDrEXKUK88yZ7st99BFz3brMiYm6qg0q\nREVF6Sq3dy9zeDjz3Lnuy40bx9ywIfOpU/73zWroHYvt25krVGD+80/XZWw25jfeYG7WjDktzZj+\nWQm9Y7FpE3P58szLl7suY7MxDx7M3LIlc2amMf2zEnrHYs0a5nLl5K8rZGczP/88c7t2zBcuGNI9\nS2Gnnd7RbW9vMOvQQ/iPHmWuXp152jR9A/Lee8wNGjCnpOgrHyzQM6kPHmSuXJn5xx8912ezMY8a\nxdy0KfOZM/73z0roGYvdu5krVmSeP99zfTYb85AhzHfdxXz2rP/9sxJ6xmLbNiH6ixd7rs9mYx44\nkPmee5jPn/e/f1ZCz1hs2CBE/++/PdeXnc381FPM99/PfOmS//2zEvma8F+5wnzbbcyff+7doIwa\nJRM7O9u7+wKJ1atXu71+8SJz7drM06frr9NmY371VeYHHpD/8wo8jUVmJnO1asxz5uiv02ZjHjSI\nuUcP//pmNTyNxZkzzJUqMS9YoL/O7Gzmp59m7tPHv75ZDU9jkZwsO8ClS/XXefUqc69ezAMG+Nc3\nq5GvCf977zF37eo90bp2Tbi7b7/17r5gxqhRzI895v19WVnMjRsz//ST8X0KFIYMYX72We/vu3yZ\n+dZbmX//3fg+BQoDBjC/9JL3950/z1yzpnvRUF7Dk08yDx/u/X0ZGSJKXrfO+D6ZhXxL+A8fZi5b\nlvnYMd8GJiZGtr95TeSjhT17ZPvqq+5i40bhCvOijNsZW7cKV3f6tG/3r1olu4W8KON2xrp1IvrL\nyPDt/iVLZBd58aKx/QoEVqyQhcxX8dW8eSJduHLF2H6ZhYAQfki4hgOQBBgjNK5HQgJPxdiPMS7q\n0Xwom425Y0fmjz/2b3CGDWPu29e/OgKN7Gzmtm2Zv/7av3pefFFEHXkZV68y33GHZyW/JzzzDPPQ\noYZ0KWC4ckWU956U/J7Qqxfz6NHG9ClQuHiRuU4dWch8hc3G/NBDzO+/b1y/zITlhB9AmN1apyaA\nggB2AGjgVCYSEkvEJ45/zhzmJk3kQ/cH588z16ihT9ETrJg+nfnuu/3XV2RkCHf477/G9CsQmDSJ\nOTLSf33F6dOya9i2zZh+BQIffMDcpYv/Y5GQILvJPXuM6VcgMGYM86OP+l9PXJxIGQ4f9r8usxEI\nwt8KwDLV7zcBvOlUJhLAIh115Xqgs2fFXHHTJmMGaNEi4QbyyhZOjdOnRVy1Y4cx9f36K/Ptt4sO\nJK8hMVE+ygMHjKnv+++ZW7TIW0pvBceOyVjExRlT31dfMd97b94ci4MHZeFKSDCmvokTmR980Ji6\nzIQvhN9fBy6tODxVnMowgNZEtJOIltqTa+vCl18C998P3O1LBlUNdO0K1KwJ/PCDMfVZiU8/BXr2\nBJo08VxWD3r1AkqWBObONaY+K/Hhh8BTTwH1DMoU268fcPUq8OefxtRnJd5/Hxg0SOa1Efi//wNO\nnQL++ceY+qzEO+8AQ4cClb1JiOkGr74KHDgA/PuvMfUFFbxdKTgnl/4IgOmq330BfOlUpjiAIvb/\nOwM45KKuHKtYZqZwuEZxdQrWrWOuVUssXPIKUlOZy5QxjqtTsHy5+DnkJa4/MZG5dGnjHfMWLBDH\nrrzE6R47JvMiNdXYemfPZm7TJm+NxcGDQi+M9s2YNk10jMEM+MDx+5WIxR6CYSwzP2j/PRKAjZk/\ndHNPHIDmzJzmdJ6joqKu/05IiMTFi5GYM8fn7rlEhw5A377As88aX7cZeOstIDkZmD7d2HqZgdat\nhbN5/HFj6zYLr78OXLsGfP65sfXabECzZsJBd+1qbN1m4YUXgFKlgPHjja03Oxu47TZgyhSgfXtj\n6zYLTz8N3HorMGaMsfVmZUm9P/8MtGplbN2+Ijo6GtHR0dd/jxs3DuxlrB5/Of6bAByBKHdvhrZy\ntyIcmb7uAnDMRV3XV7Bz52T13rfP8MWRmcV9u3Zt/xXGViAtTbi6o0fNqf+vv8QiJC84uCUnC7dv\nlAzXGfPnM995Z97gdE+ckHnhqymrJ/zwg8j68wIOHRLZvq+mrJ7wzTfBLeuH1TJ+Zr4G4GUAywHs\nA/ArM+8nokFENMhe7FEAu4loB4BJ0JFkY/Jk4TQaNPCnd65x771A1aowZTdhNCZNAh5+GKhVy5z6\nO3UCihQBfvvNnPqNxMcfA336GCfDdUbPnsDly8Bff5lTv5GYMAF4/nmgXDlz6n/iCSAxEVAxlkGL\n998HXn5ZdFZmoF8/YO9eYMsWc+oPCLxdKcw6YOf4z58X8zqzTcpWrRILn2Dm+tPTxWIjNtbcdhYv\nZm7UKLi5/pQU4fbj481tZ+5c8fQOZq4/Pl7GwmyHxBkzxGQ2mBEbK99Ierq57UyeLCazwQgEwKrH\ncEybJhx5w4bmthMZCVSqFNxWLV99BTz0EFC7trntdOkC3HxzcFu1TJokeoiqVc1t55FHgPPng9uq\n5eOPgeeeAypUMLedvn2BEyeC26rlww+BF18UXYeZ6N8f2LkT2L7d3HYsg7crhVkHAL56VaJv/vef\nCcuiBhYtEu/PYOTuLl2SiJNWOdP8+qt4BQcjzp2zZuejYMYM5k6drGnLW6SnC7d/8qQ17X31FXPP\nnta05S2Sk5lLlbIu3PjEiRIDKNiAvM7x//YbUKMGcOed1rTXpQtw4QKwdq017XmDn38GmjY1f+ej\n4H//A+Ljg1OOOWuW7ALN3vkoeOIJYNcuYM8ea9rzBtOnyy6wirO3jEno1w9Ytw44csSa9rzBlCnA\nY48B5ctb096AAcDSpcDJk9a0Zyq8XSmcD3iI1WMv84X9+k4AzVyU4RYtmBcuNHFp1MA33zB362Zt\nm55gs4lX7YoV1rb76afMjz9ubZuecO2aWGCtX29tu++9x/zcc9a26QlZWcxVq0rSGSsxciTzyy9b\n26YnXLwousD9+61td8gQSeYTTECQxurpAmCp/f+7AWxyURfXqWO9M9GFC2I6evCgte26w/LlQvit\nFkGdPSsmgr5GQTUDv/8eGGXr6dMiRkhOtrZdd5gzh/m++6xvNyFBxiKYIrpOny6B1KzGkSMidjx3\nzvq2XcEXwu+vqOcuALHMfIyZrwL4BcDDTmW6A5hl311sBlCKiCpqVfbqq0BYmJ898hJFiojL+6RJ\n1rbrDp9+Crz2GkDeuWT4jRIlZGv/5ZfWtusOgRqLcuWA3r2Br7+2tl1XYAY++UTGwmpUrgx06yaG\nF8EAm80xL6xGRIQYhsyYYX3bhsLblYJzcumPwnPIhkUAWqt+/wPx3M3F8Qcq/VtSknA0Rru++4Ld\nuyUw3eXLgWlfCQMQDGkJt2wRZX+gTG4PHhRxQjDEqI+OZq5XL3AmtzExkqAkGAIcLl0qEXsDZZSx\nYQNzRETwhDpBADh+vfEenPk1zfuKFvWvM74iPFycd6ZMCUz7anz2GfDSS0ChQoFpv0YNoGNH4Ntv\nA9O+Gp9+CgwZAtx0U2Dav/VWCRAYDEH9Pv1UApAVCJA5RtOmEhTv118D074agdoFKmjVSkxpFy4M\nTPtq+LrzMD1WDxF9AyCamX+x/z4AoB0zpzjVlSNWT2RkJCIjI33um7fYswd44AEgLi5wRDclBahf\nHzh82DyPTD3YskWsJWJjA0d0T5yQ2DlHj5rnkakH0dESE2fv3sAR3UOHgLZtgWPHRDQZKCxZInGj\ntm0LHNHduVOs8eLixPckUJg3T+JFrV9vfdtKrJ74eLGEPHs2OGP1qJW7LeFGuRtoPPCA2HAHCm+9\nxfx//xe49tVo21Zs+wOF119nfu21wLWvwGYTX4/FiwPXhxdekLkRaGRnM9evL17vgcIzz0jimUDj\n6lVJ72hUrhBf8OijkpAIAUq92BnAQYh1z0j7uUEABqnKfGW/vhPAHS7qMXWQ9GDZMgldEAjZ4cWL\n5oSh9hULFgQudEGwWRfNns3cvn1g2k5NFf1TUlJg2nfG1KnMXbsGpm3FuujMmcC074zPPmN+7LHA\ntH30qHwjmZm+EX6/RD1Ggog40H1hBho1Eguf+++3tu1p04BFi+QIBmRni0z3hx8kdLOVmDQJ2LQJ\n+OUXa9t1hatXxZpj0SKRdVuJDz4Qkdv331vbritcuiRJX9auNS4Rjl6MHg2cPSuhTIIBmZkSPHHb\nNuMS4ejF0KFAwYLAxIkAEXkt6gkRfid8/z0wf7546FkFm008dKdMEVOxYMFXX4mMe/5869q8dg2o\nW1eUiHfdZV27njBxouiBrFT0XrkihGXFCuD2261r1xOioiRLl5XGEBcuCHHduBGoU8e6dj1h+HD5\nfj/5xLo2MzKEEdm5E6hWzTfC77eox6gDQSDqYXbEyNm717o2Fy8OzuxPSoycI0esa3PuXMn+FGxI\nS7M2Rg4z88yZoncKNih5EczKBaCFyZOZe/Swrj29OH5cRC5m5QLQwkcfMffp4/iNvB6rJxhwyy0S\n7e+zz6xrM9Dmaa5QrJjEfDc625U7fPqpZNkKNpQuLdEqrRIzMAfOSckTKlaU2E7ffGNNezabfI/B\nOBbVq4s14HffWdPe1avAF1+IqMcveLtSmHUgSDh+Zon2V6qU8XldtbBtW/A4xmhBif1uhXPbunUS\nlydYHGOcocR+t8K5bflyyYwWbLtABXv2iKOhFc5tCxYEd2a0LVuYq1Wz5huePTt3ZjRYyfETURki\n+puIDhHRCiLSjIhNRMeIaBcRxRBREMZ+zI3y5SWH50cfmd/WO++InDCQNsnuULWqxKi3Ygf0zjvA\nm29aH7ZDL2rXloxlZnP9zDIWo0YF3y5QQcOGQMuW5odxYAbefVcUu8E6Fi1aiP/NrFnmtpOdDbz3\nnoyF3/B2pWAHhz4RwBv2/0cAmOCiXByAMjrqM3Rl9BcJCcLpmhmkKyaGuVKl4AgJ4A6K6ZiZZnQb\nNjDXqBG8Ox8F+/aJ2W1mpnlt/POPhGcI1p2Pgu3bmStXFr2YWfjjj8CGZ9CL9evFrj8ry7w2fv6Z\nuWXL3GMBi2X814Ov2f/2cFM2SNdq16hcGXjyScl2ZBbefVe4/cKFzWvDCNSqBfToYa6sX+Fwg3Xn\no6BBA6BDB/OCtzED48YBY8YE785HQbNmkjvDrPAeys7n7beDl9tX0KaN7Ah//NGc+m02oRdRUQaN\nhbcrBTs49HTV/6T+7VTuKIAYAFsBDHBTn7HLowGIjxdO14zcpjt3ioz0wgXj6zYDZuY23bzZOhmp\nEdizR4K3mRGaNy/kglZj61bJEWBGUMHFiyU8eTDnglZj7VoJ3mYG1z93LnOLFto7HxjtwEVEfwMI\n17g0GsAsZi6tKpvGzGU06qjEzElEVB7A3wAGM/M6jXIBjdXjCi+9JNYtH37ouaw36NVLZKTBaMHi\nCv36Cfevek2G4KGHgK5dJSZOXsFjj4lsd/hwY+uNjASefRZ45hlj6zUTXbtK/JwXXzSuTmYJkDd8\nuHwreQXt24t+sF8/4+q02YAmTYAJE+RbUWL1KBg3zsJYPZCsW+H2/ysBOKDjnigAr7u4ZsC6aDyO\nHzfeZnn3bvEVCFQYal9x6JBw/UbaLG/ZYh7HaCZ27TL+HUZHi1VTXuH2FSg7NiPf4dKlzLfdlne4\nfQWrVxv/DufPZ27e3LWeAxbL+P8EoPAlzwDIFaSUiIoQUXH7/0UBPABgtx9tWo7q1SUH69ixxtTH\nDLzxBjBsWODCUPuKunWFu3v/fWPqU8Zi5MjARUT1FY0aSR5goyy/srNlLMaMCVxEVF9x111A48Zi\nX24Erl4V666oqMBFRPUVkZFCM6ZONaa+K1fEimfcOIP1HN6uFOzg0MtAkqocArACQCn7+coAltj/\nj4BE7NwBYA/sQdxc1GfcEmkwzpwRefzmzf7XNXeu2GfnFXm2M5KSmMuVEx2Fv5g5UziZYLdecYUT\nJ2QHZERgvcmTxWM5r3G4ChQdUFyc/3V99BHz/fcHvyWPK+zdK99IQoL/dY0bx/zww+7LIBDROY06\ngpnwM4vjRNOm/m3hMjLE/M3qxOFGY+pUMSvzh0idPi0K0q1bjetXIPDZZ5IH1x8ilZgohGLPHuP6\nFQi8/77kwfVnLI4dkwXk8GHj+hUIjB7N3KuXf3UcPChjceKE+3K+EP48tpEKHPr0keQo/mxnR48W\n5UybNsb1KxB4/nnZgvvjvPPGGyJCa97cuH4FAi+/LEGz/DHje/VVYMAAcYrKyxg2TBKkLFjg2/3M\nMp6vvhpcgdh8wejRwPbtvgd7ZBZjh9GjJRCb4fB2pTDrQJBz/MwO5aYvceI3bRJxUbDEEvcXu3eL\nI5MvceJXrxaFrplOUFbiv/9E0etLWIulS8UEMK+Y9XrC2rUSgsQXA4DffmNu0CDvKfpdYflycery\nxQDghx8kcKMeCQNCoh7z8e67zB06eCejT08Xuf7s2eb1KxAYOVKScngj/jp9mrluXYm/YhWioqK4\nb9++prbxyiuSEckbfUVSkngrL1vGPHv2bH4gGENx+oDnn2d+6invRIEnTsiCsWaNef0KBPr0YR44\n0Dvx15Ejwkhs2aKvvC+E359YPb2IaC8RZRPRHW7KPUhEB4joMBGN8LW9YMGIEZID9vHHxfrAEzIz\ngQcfFG/PPn30taG20Q1mREWJNcrTT8tfT0hPl0Tujz4qye31wIixIAvcPidMAM6cAQYOFLtrTzh9\nWubE889L/J8nn3wSy5cvd3tPXpkXn30GHDkCvPKKiCw8ISlJxuK118RSSg/yylh8/bUkahkxQt9Y\nHD8uYxEVJX4iZsEfGf9uAD0BrHVVgIjCIGkXHwRwG4AniKiBH20GHAULAj//LES/b19JHOIK58+L\nTL9ZM8kqpZf+5JVJXaiQJHs+dQro3989wTt7Vghc+/buzUGvOQ1oXhmLwoUlQ9ehQ+L05+4jP3NG\nMrz9739ivqkXeWUsihUT2faWLeKg6G4sUlJkTjz7rHdhl/PKWJQsKYl0li+X0BPukJAgRP/VV813\nZvSZ8DPzAWY+5KHYXQBimfkYM18F8AuAh31tM1hw882SlSojQzz0zpzJXSYhAejeHbj1VmDy5OCP\nNeIrChcG/vgDOHpUFJTp6bnLnDgBdO4s9t4ff5x7LGrWrImJEyeicePGKF68OLKzszFhwgTUqVMH\n48ePR8OGDbFwocNNZObMmWjbti2GDx+OMmXKICIiAsuWLbt+PS4uDu3atUOJEiXwwAMPIDU1NUd7\nf/75Jxo2bIjSpUvjvvvuw4EDB3L05eOPP77el/79+yMlJQWdO3dGyZIl0bFjR2RkZGiOxX//RePo\n0apYuvRTFC1aEZUqVcbMmTOvXz979ix69nwa4eEVcOxYTRQq9L4i5sTMmTNxzz33ABDx69ChQ1Gx\nYkWULFkSjRs3xt69ewEAV65cwbBhw1CjRg2Eh4fjhRdewOXLlz2/KItRsqQQu9WrRel77lzuMocP\nyw7wscfElyO/okwZ4J9/ROk9ZoxkE3PG/v1C9AcOBIYMMb9PZlv1VAEQr/p90n4uz+OWW4Dffxdn\nm4gIIfK//CIJGdq3FwefO+4Qy5e85oTiLYoWBZYsceRj7dkTmDdPnFjuvVd2PPfdJxZRrhbAX375\nBX/99RcyMjIQFhaGOnXqYP369Rg5ciSioqLQt29fpKSkXC+/ZcsW1K9fH2fOnMEbb7yB/v37X7/W\np08ftGjRAmfOnMFbb72FWbNmXRf3HDp0CH369MEXX3yB1NRUdOnSBd26dbu+0yAiLFiwACtXrsTB\ngwexePFidO7cGRMmTMCpU6dgs9nwhRvTrlOnUvDEE5no0iURZ89+h+effwk//ngWkycDdeoMxtKl\n5zBiRBx27lyDH3/8ATNmzMhVx4oVK7Bu3TocPnwYZ8+exbx581C2bFkAwJtvvonY2Fjs3LkTsbGx\nSEhIwDvvvOPtK7MEpUsDf/8tYp+qVcWKa+FCmQd33w20bSuBEI1yjgxmlC8PrFwJxMQAVaqItGDR\nIkm207y50IwXXhBrNyvga6yeUcy8yF5mNSQMw3aN+x8B8CAzD7D/7gvgbmYerFE28Al3QwghhBDy\nINjqnLsAVgO4w8W1lgCWqX6PBDDC3zZDR/46IDkbOjidexoS1TXdflwF8Kz9Wj8A65zK2yCe4i0B\nnHK69gGAH+z/TwEw0en6RgBPqPrSXnXtRwBvq34/D+BvF88RCSBe49naA6ho72Nh1bUHARzSeiYA\ngyERbU8DmAqgOIAK9jrSVUcGgMxAv8PQkbcOo4QQrlabrQDqElFNIroZwOOQGD8hhOCM6zs+IqoB\nYBqAlyBJfEpDQn7o4WqSAJQmoiKqczVU/yeof5PIgKrZz7uCERqaVMjiVVN1rjpE/JkLzPwlM98J\nMYq4FcBwyCJwCcBtzFzafpRi5hIG9C+EGwj+mHP2JKJ4CIe1hIj+sp+vTERLAICZrwF4GcByAPsA\n/MrM+/3vdgj5HEUhC0EqgAJE9CyA2/XcyMzHIQzHOCIqSERtAXRVFZkH4CEiak9EBQG8DuAygA1G\nPoBGv7LHPkO1AAAgAElEQVQBzAXwPhEVsy9uQwHMdi5LRHcS0d32/l209y+bmRnAdACT7GHOQURV\niOgBM/seQv6DP1Y9vzNzNWYuzMzhzNzZfj6RmR9SlfuLmesxcx1mHm9Ep0PI32DmfQA+gYhgkiFE\nf726CFQ7BNU5BX0A3A0gDcDbcGSKAzMfBNAXwJcQDvohAN3sTIrLLnlo21VZZwwGcAGSnGgdgDkA\nFO2uut4SkB1PGoBjkAVQiQM6AkAsgE1EdBaS4+JWN22GEEJu+CsrAvA9gBQAu92U+QLAYciEj7P/\nrynrV5XdCaBZoGVhZh0Q+e4BV2MB4En7GOwC8C+AxoHuc6DGQlWuBYBrAP4X6D4HciwguoQYiPgr\nOtB9DtRYACgHYBkc0X/7BbrPJo2DNzRWF900olP3AGjmqlMAugBYCiAMYtoZA6Cg/WU10Cpr//9u\nAJsCPegmvcgwCNdW081YtAJQ0v7/gzfyWKjKrQKwGMAjge53AOdFKQB7AVS1/y4X6H4HcCzGAhiv\njAOAMwBuCnTfTRgLXTTW/r8uuum3cpcljaKG2851KEnZ77JP2MKQWP5azlzXE7gz82YApYioor99\nDEJ4dGxj5o3MfNb+czOAqhb30SrodfIbDGA+RDyTX6FnLPoA+I2ZTwIAM6cif0LPWCRBxGKw/z3D\n7kV2eRJe0FjddNMK1yLFiUv5exJCxLScubQcvvIjwfPWsa0/ZNeUH+FxLIioCuSjn2I/lV99PvTM\ni7oAyhDRaiLaSkRPWdY7a6FnLKYDaEhEiRARhwU+r0EJr+mmVUneCLkVZO7KqpEfP3Ldz0RE9wF4\nDkAej+LvEnrGYhKAN5mZ7eaX+TQAhq6xKAjgDgAdABQBsJGINjHzYVN7Zj30jMUoADuYOZKIagP4\nm4iaMLNGgIh8D6/oplvPXd0tEtUEsIiZG2lc+wZANMQ6YSxEZtcOQsxszPyhvVx+JPAhhBBCCFbg\nCWb+BQCI6ACAdsyc4qqwFaKePyFemFshZnmXIPKqXM5cRilD0tIY164FXinj6xEVFRXwPgTLkd/G\nYskSRteu3t/3xx+M0aPz11j4c1gxL2JjGc2bB/5ZPR12PA0ARNQSQAa7IfqAAaIeIvoZwsGXszt0\nRUG2o2Dmqcy8lIi6QMyysgCUhjhzfcfM+4lokL99cMZTT0mkyIfzfBzQEPIb9uwBdu707h6bDejV\nSwJ5hWAdYmPlyCM4SkSxED+RZz0V9pvwM/MTOsq87ObaVOC6SMgQHD0qoYDzE2w2YPNmoFWrQPck\nBH8QGwvEx0uuhmLF9N2TlASEhQHr1nl3ny9glpwC9eqZ10ZewcmTkkfi0iUJPx7McEdjtZDvAgYz\ny4eVlBTonviOyMjIXOf275ekLjcatMYiL0PhIA95ymShwtGjEtr6rrsi8fnn5vRLQWwskBeG3Ip5\ncdIeRSnFrdAkb8Jvwu8ptSIRlSOiZUS0g4j2EFE/f9t0h4wM4YoSE81sxVxoTerkZElyopXoxGz8\n9huwdWvObGMXLkiSja1bzW07PxL+Fi1kIdeLuDigVi1g6tRIfPYZkJZmXv8SEyWjmp5UmoGEFfMi\nwR62LznZ9KYsh1+EX2dqxZcBxDBzU4ir+SdEZJoZabzdmjUvE34tKFzHkSPWtpuRIbmCn31WMgl1\n6CCJIypUAF580bt0eVo4d0620jcCLl0SotqxI6BK+uURR49Ksp+6dSVd48SJ5vUxOVnEiqfzs5uc\nTpw8KQmXQoQ/N4LOuy4+HqhcOW+LerSgTD6rCf+RI0D9+sDu3ZII+vXXgS+/lHSTy5f7359Ro4Bv\nDNPuBDfi4oAaNYDbb/eO8CscPyB5W6dPN29+K/MsEOINd/mrA4GTJ4EmTfIfLQH8J/xB510XHy9p\n3fIbx5+cLLl+A0H4a9eW/0uXBrp0AVq3Fk6oShVZAPzh2I8dc8hS8zsOHxauvUED3zh+QFIYPvII\n8NNP5vRRIfxWc7knTgAVKwJXrljbrjskJAB33hni+LXgjXddZQBNAUwmouJ+tusS8fFA06Yi5w/C\nHNQeMWaM9jY7OVlELEePWtsfNeF3RliYcLBxcb7Xf/Jk/lSeaSE2FqhTB7j1Vvlfrxz96FEHxw9I\nHWYRo+RkyRFt9TsZP150F3q468xM8/tz8aIcDRuGCL8WEiDZixRUQ+6MQq0hyS/AzEcgYZk1jcXG\njh17/YiOjvapQ/HxQPXqQHi471s0ZuDRRwPDfXz7rYhVnJGSArRpE1iOXwu1a/vXpxuR8BcpItzt\nsWOe77l8WXZVVVT76AoVRFdgBpKTxZRT651s2wYsNSFi1IkTwNy5siB62ql/+y1QtqwkJr9wwX3Z\n99/3fTeakCAi40qVgo/wR0dH56CVvsBfJev11IoAEiHeuM52/QcA3A/gX3vEuHqQuPy54OtDqHHi\nBFCtmkPOr+aU9OLUKbFk+fhjoGZNv7ukG1evSttaoo/kZJnsv/5qXX8AIeqPP+76uj+E//JlIDXV\nPCIWbIiNdTgV1q8vlj3uFlVAFodq1WR3pcBswt+kiTax+/NP2X106WJsmx98AAwcKCauCS4SYNps\nwOjRwPz5wMaNomdq2hSYPVtEu85gBt59V0xT2/gQ5SohQcRq4eHBR/gjIyNzWDWNGzfO6zr84vjZ\nRWpFIhqk8sj9AMCdRLQTwD8A3mBm0wzS4uMdhN9XOb9iY231C09OlgnrivDfeadwYlbuRDxx/BER\nvhP+hAThfm80jh8Qwq9Hzh8X55DvK7CC8Gu9k/h447+J48eBefPEaKBKFe1v9soVoHdvcWDbuFG+\ng1mzgAkTgO7dgRUrct9z9qzct2OHb/06eTJ4Cb8RMMJz9y8Afzmdm6r6PxVAN3/b0QObzbFSV6rk\nP+G3WpuvcDvx8TnPX7sm8s9KlWRRi4sTwmE2rlwRAlC9uusytWsDf//tW/0nTwKNG4svQHZ2Tq42\nv+HKFZlPNexp3hs0AP77z/N9zvJ9wDzCn50tO7BGjYB//sl9/eRJ44ng+PHAoEFAuXLCrGlx/IsX\ny04+OlqMChQ88giwfbt4tD/glHVY6ac/hL9KFRHJKQwZ5aOYsPnKc/f0aaB4ceEi8yLHn5gIFCqU\nm+M/fVrkmmFh/svUvUFcnCw0N7lhD/zpz8mTIkorVUrk2O4waVLeNvtURDYFC8pvfzj+8uWF8LPB\n8WxTU+VdVKvmmuM3cnd27Jhw+4oviCuOPy5OQpWoib6CSpW0GbTkZKED3sZFUqAwkIULy5GR4Vs9\nwQrTPXftZSKJKMbuuRvtqq6LF/3riyLmAfyz5T94UGytjST8x455/lATEsQ135nwp6QI5wFYS/g9\niXkAIUrHj/vm6alspytW9ExQ/v0X2LLF+zaCBWoxD6Cf8KtNORUULiwMwtmz2vf4iuRkEW0oXK4a\nSiiUM2dEF+UvLl0CHnsMGDFCuH3ANcd//Lhjp+QMd4S/XTtg717f/AOUuQnkT3GP6Z67RFQKwGQA\n3Zj5dgCPuqrPH7NAICfh91fUc++9xol6bDYxxdy2zX25xETgrrtyE37lgwSsJfxHj3om/IULy27E\n+YNduVIWUHdQPq4KFTwT/sOHrTdlNRLOhL9CBVksPXnIqp231DBD3KPMs3LlhMNVE/izZ0XUUb68\n/169NhvQr59Y8Qwf7jjviuN3R/hd7eyTk8VnonJl7+IiKVBEPUBwWvb4Cys8d3XnCPX3w3bm+H0h\n/NnZ0o+2bY172YcPi4x+3Tr35RISRLF27lxOH4RAEX49HD+greAdNw5YsMD9fXo5fptNxtBqU1Zn\nXLkCdOvmm4jFmfATeXbkYtbm+AEZM6MJf0qKzLOwMFnM1QRe+baMIILjxkl9336bU27u6pv1leMP\nDxfLH1/k/IqoBwhx/FowNEeovx+2YsoJ+E74jx+XjyoiwriXvXmz6B48Ef7ERJlszlve5OTgFfUA\nuft0+bI8s6d+xsfrI/yJiSKvPXUqsE558fGiaEz1Ib354cM5CT/gWdyTni6EsXTp3NfM5PiB3O9E\nIfz+EsGffxaLnN9/zy2zL2EP7OLsoHX8uGuzamUhstlynveH8F+9Ku9YGQtvn3nCBN91C1bBX6se\nQ3OE/vTT2OtKFGdbVT2IjwfuuEP+L1NG5IjextI+eFAcWIxc5TdvBp5/XmyO3VkHJCTI9rJqVeGG\nFaKbkuJY0CIiRF9gs4mHpZnwlfBv2eLgVt1BL8d/+LBwx4mJQgQCFSteyfEQFyciD2/gzPEDngm/\nK24fMI/wK+KN8PCc70R5V9nZvit4Dx0CXnlFLIYURsYZCsOmLAIZGdKm1uIHiK6jeHHRPajfiUL4\nK1SA16Gsk5LkPsXKzBtnUGbx/5k5U0S7RYt617YeREdH++zgqsBfwq/HczceQCozXwJwiYjWAmgC\nIBfhL19+LPzx4VK8dgEhrsoLc/XxaOHQIZE9GmnGtXmzTL4FC2RhcWWKmZgoE79q1ZwmncnJEsoX\nkIlUqpQsEtWqaddjBGw2bYsSLdSuDfzxh+P32rUiEnGn08jKEvGXokx0pw9Q3knhwrLABIrwK+8k\nLk50MXpx9aoQTmdZff36wJo1ru9zJd8HzCP8zZvL/84KXoXjv3zZN4YoKwt44gkR8zRp4rpclSoy\nt5VvRBHzuPsGFXGPK8K/Y4d337FazANIPXv36rs3MVEYshYtxFpp6lTP93iLgDtwQeW5S0Q3QyOP\nLoA/ALQlojAiKgLgboizVy74K8JQy/gB38Q9CpG55RYhsv7GPr90Cdi3T3Yi99wDrF+vXe78eSEQ\nijmdWsGr3oID1oh7EhOlL3o4Fuf+rF0LPPmkfIxZWa7rV+TJnjh+5Z1ERARWwXvihBAPb40Qjh+X\nuXjzzTnPByPHrxZvGCnqGT1aiOkLL7gv5/zNupPvu7oHcDxL5cpC9L3ps9qiB/DumXfsEPHS5Mmy\ns/Gk5woUTPfcZeYDAJYB2AVgM4DpzKxJ+BURhi+4dk0mauXKjnP+EH7AGEVWTIyIKQoXFoWxKzm/\nwu0TOUQ9CtQyfsAawq9XzAPkVO5evQps2gTcd588x/Hj2veoPy49op66daU/WoR/4EDXrv6ucOyY\n93LYEyfEuclbwq8l5gFk3JKSXJtlBoLjV8v41XP/5EnfCf+KFSLb/+47z1y3wvEr0EP4nRW82dkO\n0Q+R93J+tUUP4N0z79wpO5oSJSSC6gsvBGf0Wb+lxMz8FzPXY+Y6zDzefm6qk/fux8zckJkbMfMX\nruoqU8b7D1iBstVTHGQA1xp/dzh40EH4jZDzb97siCVyzz2uCb8i3wdyE37F2kJBsBH+cuXkY0tL\nk4WuVi2RyboL5+AN4XfH8V+5IvJUbzOBffwx8OGH3t1z4oTYhhtF+G+6SUIOzJypfZ8njt/oUBee\nOH5fQhhkZUkSnx9+cNjru4MRHP+pU2KVpDgeNmnimvCnpQE9euQUrRrB8QPy3b/2mngVezIpXbgQ\n+L//09eGEQgqz11/4r6oLXoUeOL4ly7NGSHx4kUxYVMmmrcRPsePBxYtynlOTfgbNBCLBa3FTeH4\ngZyE/8oVEQOplVuuOF8jceSIft0IkWMxWrNGfCAA96IZ9cdVoYKMu9Zu79o1eUe1a2vPjz17ZJdx\nOJfGyD2WL/fevjs+3ljCD4iy88svtZ/dSo7feZ6pOX7FeataNX3Odmrs3St1tm+vr7yzRZsvHL+z\naNQVx3/hAtC1qzAN33/vOO8s4y9XTiys9DiuKRy/ghEjgFdfld3+kiWu71u8WMxbrdodWOK5ay/X\ngoiuEdH/XJXxh6A5y/cB94T/+HGgVy+J4KcgNlaIi6LN90bUM3GifMDDh+f0YlUTfiKZAFpyflcc\nf0qKfORqC55g4/gBx7tbu9ZB+N29TzXhL1RIdAla+YSPH5eP+JZbHAuJ2o5+2zbZ5XmbvDw1Ve7R\na5PPLMzFPffIXPPGU3nfPtcK/VathDA6hzvOzpZ2XBE9owm/4h2uzDM1x5+eLvqJ4sW95/hjYsQb\nXS+cnbjMIvxZWRLrp149iTo6Y4Zj8XUW9YSFCfH35Lh2/ry8M2fjg4EDhaMfONB12syNGyXB0ddf\nu2/DKFiRc1cp9yFE1u9SyufM0R07JrJiPR+n2qJHgTvC/+qrQP/+onxRCI5avg/on+TffgtMmSJm\njCVLOixcTp0SczR1na7k/GqOv0IF2YJmZeWexEBwEv6ICOG6168X4qic0yPqAVxzkup3UqKEw55f\nwbZtwIMPesfxL18uVkeFC+vf0aWni+igQgURI+jVHTEL8VO2/84gEq7/CycBaEKCEBut+DSA9CEz\n05jwCUDueabm+BUxDyAKf8VMWg+8Jfy+cPzO37nzs9SrJ8+gxO+/ehV45hlhOKZPF8OL0qWB1avl\nuvPcBPQxgbt3A7fdllPcrKB1a6EP772Xm8HJyBCmYupUoSVW5KC2wnMXAAYDmA/A7ZrpzCF++aVE\n5IuN9dwRLY7flYx/yRLZgk6cKLHFZ82S82r5PqCP8C9YIHlQV6yQyTJypIh8mIXbb9EiJ7fuSs6v\n5vjDwqTvCQnahL9cORGBaHHIRsEXjn/hQiGMai9jPRw/oI/wA7kXk23bJGSvt4S/Uyep11NYCQXq\n+VWrlv6dqWLeV6mS6zKPPSZEY5/d5IFZ5P7uIrAWKCDE3xdnMi04zzP1wqJ+dsVMWq+4x92ipwW1\nQ9alS6L4dp7/Wve44/gLFhSCHB0t32atWiLW/eUXhx7guedE3GOzSV1qIxFAHy1wFvM4o0oVWQCU\nBUbB5s1iRtuggdALs9JqqmG65y4RVYEsBlPsp1zy7+qP+vx5mfytW0uALk/QK+q5dAkYPBj46ivh\npl54Qbh1ZiEy6m2aJ+Xwvn0SUnbJErE6AURZd+GCxKpRi3kU3HGHEA3naH+JiTm3l4pJp7NiF5CP\nr04d/UTLWyjyTG+clGrXFiKsiHkAbdGMAr2E//DhnIRfvZhkZck76NZNrDg8ZWQC5Lmio4GOHeVd\n6x3DEyccO8patfTL+RVlnztrlkKFZB59+aUs6C+/LFErZ8xwX7eR4h5nYlmggCMKqGLRo0DvTthm\nA3bt8o7wFyoku+bTpx16O0+OispiocwzLWapWTMR7Rw6JN/rH3/kdOzs00fOHzok7TvvtPQ8s1qx\n6wodO+YOeb1xI9Cypfw/ZIjs/oyOvOoMKzx3JwF4k5mZiAhuRD0LFozF7t3A2LFAero4Kdx3nxD+\nfv3cN6JF+EuXFoeTCxcc9ujjx0siByV+d5s2MtlWrZKXPmCA4353LzsrS2zVP/gg51a2QAFR6Iwf\nL/8PcUotX7CgrOobNuTMZKSkelOgyPmdTTkVtGolYhVlwqjhr9OZwu17U4eyO2jXznGuZEkZ29On\nhUgpuHZNCIqaC3bH8T/0kOO3WmG8Z4/8Ll5c2o+Ndc9xAfKR1a4t/bGC8OvleP/v/4TjO35cxmf9\nehk/dzCT8AMOcY/zt6VXwXvkiFjqlSnjXV8UOf+pU57FPIAjdHJamuxUkpPl+1BjwgRJxaieh2qU\nLSu7wI8/zsmAKdDL8ffp477M/ffnDi++cSPw4ovyf8eOQlvWrJHsYVowwnPXipy7zQH8QkRxAB4B\n8DURddeq7KOPxiIsbCyGDBmL5csjMWSIEGY9HL+WVQ9RTq79wAFRnnz6ac4yCtfvjYw/KkoIwfPP\n577Wp48QobVrtdPCtWuXc7vHnHt7qSb8Wlvd9u1lsXLGyZNC/PzJ0hUd7b13bLVqwiWpOX5A27In\nKUnEVWpZqC+inm3bHJ6mdevqU/AqYh7Ae8KvFvV4w/HrkXGHh8u8qVpVOE9PRB8wn/ArIh21jF85\n7/xd9O6dW4ThrXxfgSLn1yPfV6D+zrWepWxZ10RfwXPPidjXWb4PeCb82dkirvPEeDRqJCI0xZrQ\nZhPJgLJQudL5qBEZGel3zl3TPXeZOYKZazFzLYic/wVmdvbuBSAPHREhK2LhwiIPb9RIJoE7D9r9\n+yWipRZnrMTlt9lEmTtuXO4X27eviGays3OKN8qUkXqdiejatSKGmj5dmysuWNCRSk5LXNKpE/CX\nKmdZaipQrFjO7aUnwh8ZKVyhs3Jv0SKZgMuW5b5HD7ZuFft2tbWTHtx0k4hlnBXsWgpeLeWZFuFX\nwgOoP361qMeZ8OuR8zsTfr3WQGrjATM4fkC8PadN01YOasFIW353HL8nUY/NJvPtl19y3u8r4Vc4\nfm8Iv1qs6+qb8YT775f7XBF+d2LfI0fkW/e0YBcoIO0oWesOHMi9KD31lFw3M/mLFTl3vULt2iI+\nGTJEiOpNN0lclA0btMvv2CHc77Rp2rJAZUJ8/bWDu3dG8eISR+TWW3MS8gIFchOkzEyxCJg+3T0H\n8cIL2rlAARH1KFtoILd8H3AQfi0ZPyCTpXbt3On7Fi2SiTV7tuu+uUJampi4TpmSk8vWC60PRkvB\nq5fwHzkiURnVGcDUOwg14b/1Vs+E//RpKaNwVxER0hc9uyNfRD1nz8ozKfofo2Elx++O8MfGCvH/\n44+c/gjBxPHrQVgYMHSoIy6WGp44fj3yfQVqOf/GjbnFUsWKyTk/pTluYYnnrqrss8zsNnpFRIRw\n+717O865Evds3Cjc2+TJskpqoXJlKTd2rLiMu1IUjRghhzOcX/iCBbKd69rV3VMI1+bKaScsTHQM\nCtfvLN8HPMv4AVnw1NvrCxdkFzB9uiw63mRostlkDHv2BB51mSrHe2iJepw5SECb8DuLeQAZp7Q0\neba9ex0fmx5Rz99/y05JiZlTsKAQcz2msWpRT9WqskvztGDs2iU7VrNyCVsh409K0lbEq7+JrVtl\nPpcrJ2ILwGHGahXHrxD+ixflvegRlWnhtddE5OMMIwn//feLhMFm0yb8ANChg3beY6NgugMXET1J\nRDuJaBcR/UtEjd3V16mTKGHUYg8twr9lC/DwwyKT+59LlzCZEF98IaIXd3LrGjVE6+8M5xe+cmVO\npayv6NzZQfhdcfzx8e65l/vuyynn/+cf2R3VrCmLwm+/ad/HLB/r228Db7whTmePPSbE1NswBp6g\n5XOgl+N3tugBhIjWqCGejrVqOZT2ekQ9ajGPAj1y/mvXcoYsDgtzH4dIgbemjN7CqGQsShAzZwYj\nPFyspgoXzhmsz9mc87//hEvu0UNMegGHeFVLUeoJyi7dF1GPskM2OjG6J8LvyZRTjapVRSwUE+Oa\n8CuLg1mwwoHrKIB7mbkxgHcBTHNX5wMP5LSsAcRyZft2B4fFLCZvn34qzjvuUKeOcB3Dhul9qpxQ\nbyGZ5WV06OBbXWp06iTcelaWNsdfqZIjjEHx4tp13HuvcFhKcpJFixw7kSefBObMyVk+MxP45BOg\ncWPg8cdFP1CunHCOrVvLQqFXvqwXrjh+Z8KvyKvVZmxaHL9S57x5DjEPION18aJruajN5jvhV+JA\nqaNr6hH3eMMF+gKjOP5z52QxK1Ys5/mKFUWc5rw7cyaCW7eKpdzDDzucF/WYsbpClSpC9JOTtcWH\nWlC+U1/FPJ5QvLjoAM+f177u7bvu2BGYP192ko01WOGmTeXd+hq7zBNMd+Bi5o3MrAgdNgPQ+Sod\nKF5cOLrt2+X3vHnyIXsynQKEi9+0yXeCpp7kBw7Ix+9NfH9XqFBBiNq//2pz/GFhjlj1rj6eEiUk\nKfzGjTIeS5aITTsgC0BMjGPiXLggi+S//4oPw+HDYnKqcPyvveZapOQPqlQRsYg6c5YW4S9SRMZW\nLZ46dEhbPl67tigT1YSfyD3Xv2uXw+xTDT2EX8tiTA/h91XUoRdGEX5XxLJiRVlItcRyit38tWvy\nnM2by3H+vHwn/jx75cpisFGxov7vVjHiMIvwKxaCP/0k89Jmkzm9cqU4bV66pH93AghHP3myjJla\nh6UgLEx29GZx/VakXlSjP4Clbq67hCLuycoCRo0Sr1s9GaiI/ONi1YRf4faN2kYq4h4tjh9wREN0\nB8Wsc9s28VtQCNstt4gI7OefZcz+9z/xBP3tNzEnNTt7lwJFNKMQyStXRPSjxcmpxT3p6WKn36hR\n7nIREVKPmvAD7hW8y5Zp7w71WPZohQPx5L2blSUE8Pbb3dftDxTC762zT0qKzAPF69cVsVTOOb+r\nYsXkvZ47J89YubKEcihQQLj+hQv9I/zly0tdrtItaqFSJWGgzCL8ADBmjMRU6tRJmK7y5eVcWJjQ\nBm/oQmSk7FC1/HAUdOiQm/Bfu+Z/jhDAGgcuAAAR3QfgOQBtfGmoTRtg7lxxCKpbV3+0P38RHu4w\nvVq5UqxejELnziLWKlhQWxZataq8aHdo3158CohyK5yffFJiEv33n3DU06YZL/vUA0XcU7++OCq1\naaP9USsy63r1xKS3e3ftUL4REY4462q4U/AuX64t7tPL8WsRfmUHqoX9+6VMkSLu6/YHRYvKOFy4\nkFtMA4iocNUquX7hguy0VqyQRbh5c/EWHj5c5rgWsSxdWrhRrUxvCtevyPcV9OgBvPWWtP3ee749\nlxLiwhsOWhH1JCWZR/iffVYOQHZCBQo4UkR6ixIlRFTrLrvs/ffLGKodMkeNkp39rl3+GQ1YkXoR\ndoXudAAPMrPLCDNqZwTn9GJt2kiohY0bXZtJmgFlQmVni3nVlCkeb9GNFi0clgiuOH5PycVbtxbF\n0pkzYs2jRrt2wh2kpspk0dpSWgFFwfvpp8IJ/vuv9gKkcPxXrkj4guXLtetr1EiezZnY1a2rPTfO\nnRM5tNZHVqGCLK5nzoiJrBZOnMita/Ak6jFbzKNA0Y1oEf4BA4RA1aol18uVk3G9+25HRNM33xTd\n0CAN42vFnFmL8CsKXkW+r6BdO1lIr13zz4y1ShXvCH/RoiIq3L/fGB2cJ5Qq5X8dK1a4J9516sh1\nJV3rgQMST6h06Wj06hWtqRvQC39JwXUHLgCJEAeuJ9QFiKg6gAUA+jKz23Br7rzQqlcX7um++7SV\nIZaeXPsAACAASURBVGZBEfVs3y7E2UhuQjHrnDtX2yega1fPJoNFigj3tmdPbuuAAgWEeFav7jrK\noxWIiBDrq6Qk0be4SueoEP45c8RCQkvMo9Tn7CUKCHH+6qvc51evFmKn1S6RI1hb69Zy7u+/ZUyV\nUAMnTuQmJp4Iv9mKXQWKuMdZdxEfL46GJ05oLwqAPPeCBfJOXBGyypW1CbDyXfz3n/jAKLj5ZtnJ\nHjvmH0datap3oh5AmLSYGNnp5gV4YsSIHNY99erJ7n3UKKBZs0gMGBCJX3+VBdyXnLt+EX5mvkZE\nigNXGIDvFAcu+/WpAN4GUBrAFAnVg6vM7EWqagcmT9Z2rjATygQ3yprHGZ07yweq9ZHoba9jR/k4\ntSbSbbf51z8jULu2LEyrV+cWmaihiA9++004U2+hKHedYxW5ku8rUMQ9rVvLQtm1q/iR/PijXNeS\n8ZcvL4tyZqb2dj8mJmeMIbPgSsE7fboYP7gi+mq4kzMvWKC9Gw0Pl0Vlz57cC9ygQcJ5+4PPPsuZ\nfEgPKleWOWaWqCcQ6NBBrH+qVpXxHjxYiH3NmsJMaYWM0QVmDopDuhKcKFmS+c47mRcuNL7ujAzm\nb7/1r47Ll5nPnzemP2bgyhXmmBjP5b7+mrlWLeZmzZhtNu/bsdmYS5dmTknJea5WLeZdu1zf9+67\nzCNGMB84wFyhAvOyZczVqjGvWiXXy5RhPnUq93233868Y0fu8+npzCVKaN9jNJ57jnnatJznsrKY\nK1Vi3rPHvHbffZe5Uyfmhg3Na8Nb9OnDDDAfOxbonhiHpCTmUqVkDq9Y4Ti/YYPM0cuXme200yt6\nG1SpF4MV4eEi6lFHnjQKJUtKDCF/oGSwClbcfLM+sUfFiiI+GTbMNyW0lklnbKxw5u6sa+rVE4fA\n7t0lXEinTsDnn0vExPR00cFoKZlvv110PupsXBcvyo6hXz/vwlr7Ci0nrj/+EPlww4bmtrt6tfU7\ncHdQor2aYZYcKISHi76jaVPZ2Sto1UpE3s56Pb2wJPUiEX1hv76TiCxQeRmL8HBRYBmh0AnBNapX\nly2ss+XUnDlz0MnZ88oFnAm/IuZxt5DUqydErFGjaIwdK5rMHj1ERPXqq6Lc1Lp/yhQREfXqJQRf\nSecXESGiCj0oXrw4jqkTP3sJLVHPlCnaMamMRHi4PK9asRtoKGalgdRnmYFp07SNSt59VxgVX2C6\n5y4RdQFQh5nrAhgIR0KWPIPwcGssBRT4G2s7r+LSpfWoWLE1ypcvhbJly6Jt27aYOnUqnnzySSx3\nZeLjhCZNhOguXCicuJa3rjMaNBCLIzWxJJJQH3PnutZLlColC0vRomJW26eP7L6+/16/n8S5c+dQ\nU6cWU2teOBP+gwdF7u4ujIkRUOTogeL4tcaiUqX8Jd9X0Lq19i6mWTNxZvUFVqRe7A5gFgAw82YA\npYgoT23GRo6UEBFW4UYk/JmZmejWrSuGDh2C9PR0JCQkICoqCjucs2R7wNChYvnwwQdiArdmjVhG\nuEPBgnKfs4I9IkLiRjVvLhZnWtYThQoBP/wgi0tWVs50fkbDFeHfs0cShq9fD3z0kQQZK1TInD4o\nCA+X57TSwk4NrbFo2NC9ojo/oo1PXlHWeO5qlfE6bEMg0aSJtmVDCMbh0KFDICI8/vjjICLccsst\n6NixIypWrIiZM2fiHiWDO4AVK1agXr16KFWqFF566SW0a9cO3333HQBg9uyZ+PLLtrj33uFISSmD\nQoUisGWLIznBjBkzcNttt6FEiRKoXbs2pk1zGzoKr70mgevIjayoVq2aKFHiExw/3gTh4aXQu3dv\nXFHZ4U6fPh1169ZF2bJl8fDDDyNJFdi9QIECOGp3AV66dCkaNmyIEiVKoGrVqvjkk0+ul1u8eDG+\n+eYblC5dGm3atMHu3bsBiOy3RQuR9Y4YIY49Zot5ALEy2bAhuMQqjRt7TlcZgsBfwq/Xc9f5qzE5\no2QIeQ316tVDWFgY+vXrh2XLliHdRSb51NRU9OrVCx9++CHS0tJQr149bNy4MQdh3rJlCxo0qI+z\nZ8/gvffeQH+V9rxixYpYsmQJMjMzMWPGDAwdOhQxMTF+9Z2IMG/ePCxfvhxxcXHYtWsXZs6cCQBY\ntWoVRo0ahXnz5iEpKQk1atRAb3XMcRX69++PadOmITMzE3v37kV7u3t6TEwM+vfvj27duiEtLQ2D\nBg1C9+7dkZWVhXLlRLS0aJE4xm3Z4t5k1igQBZdiNwTvQOxHVl8iaglgLDM/aP89EoCNmT9UlfkG\nQDQz/2L/fQBAO2ZOcaortBiEEEIIIfgAZvbODs5b+0/OaXt/E4AjAGoCuBnADgANnMp0AbDU/n9L\nAJv8aTN03BgHgHoA/gPwE4BnAKyzn38TkulNXXYDgOfs//dTyqqu2wBE2P/vDGATgDMA0gFcATDO\nfi0SQLzqvsX2MukALtkP5fefqnJxANqrfo8F8IP9/6WQdKPq/iQBaKXRtzsBLASQBiAaQEtVHRdU\nbacDOA/g8UC/p9CRNw/TPXeZeSkRdSGiWPvkfdafNkO4McDMB4loFsQSTG3Skwigm/KDRMajS2dE\nRIUA/AagL4A/mDmbiH5HblGk0oeuqnuj5BS/4+WjJEIYI6WeogDKQuJcObe3FUAPu7XcYABzAVQH\ncALA+8zso/FeCCHkhCWpF5n5Zfv1JszsJqZhCDcqiKgeEb1GRFXsv6tB4j5tdCq6FEAjInqYiG4C\n8BIAvUZ8N9uPVAA2IuoM4AG9XYSLBcJNeQD4GcCzRNTEvvB8ANn1nshRmKigPVtdSWbOBnAOgOIa\nNh3A/xHRXSQoSkQPEZGOgAwhhJAblnru3gjOXnphdMrKvAwiehDAEgDjAOwjovMQgr8LwOv2YkxE\nLQAkA5gEYCKEgDeABAtUzGgYuY0HlJgg5wC8AuGk0yALyx9aZTWgVa8rXC/LzCsBvAXZaSQCqAWg\nt1NZBX0BnCSibACTAfxlr2MbgAEQn5k0AMcBzAawhYiidfYpz0HHN1KOiJYR0Q4i2kNE/QLQTdNB\nRN8TUQoR7XZTxju66Y+cCBKGeTWAvQD2AHjFRbkvAByGfJxdABSEZ33A3cin+gCIWCwWIgJwNRat\nAJS0///gjTwWqnKrIHL3R1TnC0DEJu0C/SwWzYtS9u+tqv13uUD3O4BjMRbAeGUcIHqbmwLddxPG\n4h4AzQDsdnHda7rpL8d/FcBQZm4IUdy+5MpzF8DTALYDeJvzsbOXTliSsjKPQI8TICAy7/kATgNo\nQkSl7KKTUfbrmyzprbnQMxZ9APzGzCcBgJlTLe6jVdAzFkkAlNioJQCcYWYPqYvyHph5HUSh7wpe\n002/CD8zJzPzDvv/5wHsB+Ds6qR0qgpkV6B0Kl86e+mEZSkr8wA8joVd7v8wHOE+boVwg6cBPASg\nBzN7yFyQJ6BnXtQFUIaIVhPRViJ6yrLeWQs9YzEdQEMiSgSwE8AQi/oWbPCabhrmXG5PxtIMwp1q\ndaqSzk7dCM5elqWszAPQMxaTALzJzGy34pnHzNpeUHkbesaiIIA7AHQAUATARiLaxMwusg3nWegZ\ni1EAdjBzJBHVBvA3ETVh0eXcaPCKbvrlwHW9ErEuiAbwHjMvdLq2CMAEiIXCWMhi8waATlA5e4Uc\nuEIIIYQQfMYT7MFJVg0jwjIXhFgszHYm+nYoeXm3QraptQCcgqRp/FNd0ChlyHffMY4cCbxSxtcj\nKioq4H0IliM0FqGxCI2F+8OOp+30uCWADHZD9AH/wzITgO8A7GPmSS6K/QngaRaly1cQHUA0xPty\nPxENUhy+jMDFixJDfc4co2oMIYQQQgh6HLU7yU4F8KKnwv7K+NtAbI93EZES6WoUxNsQrO2524ZV\nTlxsd/Syx/TxG7//LmF2o6OBt94yosYQQgghhOAGM3sVON7fkA3riWgmxLLiFDM3ci5DRJEAngJw\n1H6qC8Ss0xTMmgWMHw+8/rqk3DM7LrkZiIyMDHQXggahsXAgNBYOhMbCP/it3CWieyABo35wQ/hf\nY+buHuphf/ty8qTE5E5IAO69V7IqqcK4hxBCCCHkOxAR2MvonEbE6vHkXAB4F+PEZ/z4I/Doo0Dh\nwkBkpIh7QgghhBsTs2cDmZn+1ZGd7blMXoQVsXoYQGt7DImlRHSbKY2wiHn69ZPf+ZHwu8hNEkII\nhuLChUD3wH+cPw888wzQs6eIfH3BqlWSdjM/wqTsoDmwHUA1Zr5oj4a4EOJ5mQtjx469/n9kZKRX\ncrwtWwCbDWjVSn63bQv07p135fzO2LsXuPNOec5GuQRqIYRgDDZsAHr1ErGpm2yTQY+tW4VolykD\n9O0ruZCVnMo2G7BvHxAXBxw7Bpw5IzmXS5Z03M8MvP02sHOnXC9bNiCPoYno6Gi/83Ib5cBVE8Ai\nLRm/Rtk4AM2ZOc3pvF8y/hdflLy4Y8Y4zrVokX/k/N9/LxOxVCkh/kWKuC577Zp5Cb9DyN946ikR\nkcTFATVrBro3vuPDD4HkZGDCBKBzZ6B+fclJPGuW5OW96Sbg1lvlGY8elXSVU6c67l+1SnIXV6wI\njB4NdOoUsEfxiIDI+D2BiCra7f1BRHdBFps0D7d5hU2bgF9/lUmrRn4S92zdCgwbJsrr115zXW7F\nCqBCBcDPNLJ5CjNmAKdPe3fP+vXA9lBmiBxIS5Pcva1aAdu2Bbo3/mHTJuDuu2W3v3Ch/L7jDpkn\nCxYAhw8DS5YAkyfLbmDJEmDNGsf948YJE3n33fLt5TsY4DX2MyTOeBYkJs9zAAYBGGS//hIkONsO\nSIq8li7qYW9x5AjzY48xV6nCPHt27uuLFzO3b+91tUGJFi2Y161jPnuWOSKCef783GUSE5nDw5mH\nDWOuWpX55Enr+2k1kpOZw8KYn3xSX/lNm5g7dmQuXTr/zA2j8NlnzH36MI8dy/zmm4Huje+w2eQ7\nOHrUce7qVebLl13fs3Ahc926zJcuMa9ezVynjtzz66/MPXqY3mW/YKed3tFtb2/IVQHwPYAUuIgV\nbS+jxOPfCaCZizJePewPPzCXLcv87rvMFy5ol8nIYC5WzP0Lzwu4coW5SBHmc+fk96ZNzOXLM2/Y\n4Chz7ZoQsqgo+T1+PHOzZo578is++4z5kUeYa9ZkXrHCdbmLF5l795YF8ZtvmNPTmYsXZ05Ls66v\ngURmJnNMjOvntdmY69dnXrOGedEiWRzzKo4fZ65QQZ7JGzz6KPPIkcyRkcwzZ8q5I0eEsQxmBIrw\nG5IkwBvCv307c7lyzHv3ei57553Ma9fqrjoosX07c8OGOc8tWMBcuTLzgAHMqanM77wjE/baNblu\nszH378/crZssHPkVd9zB/PffzEuXyk7o4sXcZc6dk0Wxd2/h6BR07co8Z451fTUKSUnC1HjC4cPM\nI0Yw33UXc9GizLfdJoxQ2bLMrVszr1/vKLtmjRB+m012jmXKeE84gwVz58q89xZJSTI2tWsLt88s\nY1CmjIxJsMIXwm+FHb+hyVUyMsRW/6uvgNt0GIZGRgIrV/raWnBg61ax6FGjZ0+xTLjlFhmHr7+W\n+ESK5QIRMGWKhK+oVEnMXBct8t20LRixbx+QkgLcd58o8O68E3j33ZxlMjJEMVezpigtb7nFce3h\nh4E//0Sewr//ArffLopKd7h0CejaFcjKEkVnaqpYhmVmyt9XXpE5NHeulJ82DRg4UOZNpUoyTseP\nm/88ZmDzZqBlS+/vCw8HfvhBvhvFOIJI5lVe13nkgrcrhdYBSY/miuNfBKC16vc/EKsejxx/Whpz\n377ClV28KKtv9+7MgwfrXw23bhWxyIABwb1qu8PAgcxffun6ekwM87Ztrq/HxzN//jlz27bMjRoJ\nZ5PXcO5cbpHem28yDx/u+J2YKDvBmTOZv/2W+YMPmJs0kfmSnZ27zqQk5lKl8s6O6KefZC5//73o\nKNyJ8YYNY+7Vy319O3aI6GvMGOaSJZnPnHFc69aNed48Y/ptJkaMkN2vGm3aMP/zj3FtjBrF/Pbb\nxtVnNOADx2+V0Z+uJAHOdvzr10ciIUFW4ZdfFq38hQvAvHn6G27eHDh4EPjgA+GUXn0VePNN4YTz\nCrZudTimaaFpU/f3V60qHN7gwTIO99wD/PMPUKOGod00FW+8IWas0dFAsWJiiz17NvDXX44ylSoB\n33wjVj4VKsjx2mti7aVlkx4eLmZ+a9YAHTta9ig+YeJEsUBZuVL8OBYuFEu2/v1zl924UcZm1y73\ndTZpImUfekh2P2XKOK41by5c7qOPGvscRmLaNPHWnz8f6NZNuPSrV4EdO8SU2yi0aAFMn25cff7C\nCDt+Kzj+bwD0Vv0+AKCiRrkcq9j586Kg2bdPfsfHM0+ezJyQ4PvKePQo8wMPiCz81Cnf67ESly8z\nFy7sWoHtCz7/nLlaNeYDB4yr02zUrs3coQNzly4if125krlpU//r/eAD5pdf9r8eM3H+vCj31XN/\n8WKR3Tvj4kXmevW849YvX86tG1m8OLgVvBs3yu7n4EHmdu0cytitW3Prw/xFfLy0Faw6DwRCucue\nCb9audsSOpW7kyYx9+xp7AAxi/Jz5Ejm6tVlkgQ7/vuPuXFj4+udMUOUw//f3rlHR1Xde/z7M0Go\nCFoulqeWp1zQZRZvBK6GmkpgobcKSlEvhooigiClVR5RYJX4wAepYKkoqLAK2IpWVCjyjvVBSAsR\nlIA8AiJjQUAwGEjC/O4f3xkyJDPJmZlz9swk57PWrHXmnJO99+yc8zv7/J6J4PK5bx8XAWfPqvbv\nT9VXRobqCy9E3/aOHXwIxutNrUpvpT59LtxXVkY1zdatF+6fOJEuztHi8VCdFI/z4vHwt7/3Hr8H\nul++9BKdGuzE61Vt0oTeQvFIJILfjgpcS0H//A4i8rWI/CawuIqqrkSYRQJKSoDnngMmT452dJVJ\nSqK64/nngfR0BvLEE488QuObn2CGXTvIyGBk4l13MdI3nlm3DkhLAy6+mGq+3FwasocNi77tTp3Y\nbn5+9G05xaZNdFIIJCkJGDnyQhXEvHnA8uV0fIiWpk0ZHV5YWL7vwIELr81Y4PUCQ4dSxTVoEPel\npjJqf8mS8sAtOxGhuqdGBXKF+6So+AGQDqpvvgLwWJDjqQBOAtjq+2SGaOf869rChXytd5qFC1XT\n053vxyo//qianMxgLb872X33qf7pT870V1bGeY5nw5Wq6tChfEPxc/gwjbd2MWECg5bilT59gsco\nHDzIVXlREVUdLVvS79wubr21XGV09iwN5YMH29d+JCxaRBVXRWP9unUMwGrXTjU/3/5+4zmoDaZV\nPQCSAOwBVT11wOjcjhXOSQWwwkJb2qKF6ssvU0dpp1U+FMXFfIXbudP5vqzwyScMuurXT/W557gv\nJUV182bn+vR4qPIxMd+RcO4cPXUOHnSuj40bVa+9VrWkxLk+IuX0afrgFxUFPz5oEB+MzZrZfx3P\nmEGvGVXVxx+nTaV1a3v7CIfTp6mW+/jjyse8Xnqt1a9fHstiJx98oJqWZn+7dhCJ4I9W1dMDwB5V\nLVTVUgDLAPxvkPMsJRDasIF+2JddBvziF1GOzAL16tF3ec4c5/uyQm4u/Y9feYVVxLZvB3bvZn4e\np2jalImrhg8HPJ7g52j0efwiJj+fmRGvvNK5Pvr2ZZKuIUOAM2ec6ycSPv2U///69YMfHz2a+ZlW\nraKHkp34/dfz8ugt9f77jAc4bmumLeu88ALzCPXuXfmYCO+Ze+4pj2Wxk65dOQ+xvBfsJFrB3wLM\nz+PnkG9fIJbz8bdvz+CLZcvMpYQdPZq6wXjIdZ+bC/ToAbRty4yAgwbxZg4MOnKCtDRgzBgGOlW8\nqVesoFvk9u3OjiEUa9dyfE6SlMRazfXq0bWxqMjZ/sJh0ybgxhtDHx84kBXnUlLs79vv0nnvvcDs\n2UCLFnQdjkUCQI8HyM5mts1Q9O3LB5QTNGkCNGgQu/vAbqIV/Faef/58/CkA5oD5+EPSvDnQunWU\nowqDZs14sy9YUL7vxx+ZBtnrNTcOgA+9Hj24PW4cV+NOGHaDMXkycPPNFCQ//MB9S5fyjSgjA7j7\n7tishk0IfoAG3iVLgDZt6NMfbeUmuwhm2K3IT37iTN9NmtDA26EDnQAAxtLEIor18cdp0DUpGyoy\nfjydL2rCqj+qfPwi0gvAdFVN932fDMCrqs9U8Tch8/FPmzbt/PdwC7FEQ14eX/P37GGw19ChQEEB\nn+4dOxoZAo4do9A5frz8VfXoUZZ+a9rUzBhUgVGjOA+DB9P7afVq4JprOD+tW9PbyhRnzgBXXMGi\nIIFFMpxElQ+5tm0rp38wTXExf7/Hw9VmLFi5kouRxo35ffFipjBetszcGL78kqrfXbvMXQfBKCuj\nqunBB4MHzpmiYgDXjBkzoGHm44/WuJsMYC9o3L0YwY27TVD+gOkBoDBEW44YPqzSuzd9wxs3pgfJ\nnXeqvvGGuf5XrYqPNMFlZarDhjHOYffu8v1Hj9IIvG6dubGsX6/aq5e5/vzs3ctkXSdOVD5mJTma\nXWzYEDxIK5bs2EHvGZM89ZTq+PFm+wxFfj6DueIp/QtMG3dVtQzAWACrAXwJ4E1V3Rnoxw9gCIDt\nIrINQDaAX0fTp1NMmkQf5ZwcqjZM++0GqnliSVISw/137qTNxU/jxlR/ZWTYaw8pLQ396mxKzVOR\nNm2YAuDFFy/c//77fPvyq8KcxoqaxzQdOgCHDwMnT5rrszo7h0muu47qz7FjYz2S6LCjApcGfLwA\noKovq+rLvu2XAKwHUN/3icv8kLfcQuOqX7XTvTuwZYu5/v2G3XjgoouCl3bs359qsIED7bvxJ0yg\n/jYYq1cDN91kTz/hMmUKvb38un6PB7j/fhq6TQX9bdwYPwLPT3Iyhd+2bWb6KytjHeB4Kp+amclF\n4vLlsR5J5EQl+EUkCcBcMIirE4BhItKxwjkDAbRT1fYAHgAwL5o+TdGlC5NclZY635cqBb/dEYdO\nMGsWvT3697dH+H/4IT0xiosv3J+XRxtH377R9xEJ7dvzN86dSyP/8OHU7Y4YQbdjpzlzhguPWP3+\nqjBp4N22ja68fhtDPFCvHhMBjhkT2gU63jHhx29rPn5TNGjA7JUmQtT372dt0ObNne8rWkS4Eu7Z\nk15A338feVseD43a3box02Qgzz9PL4pYFo2fOpUuhNOns47B1Kk0MpoQ/GvWMJ1Ew4bO9xUuXbua\nq1ccT2qeQPxG3owM895/gQSm1AgHE378wc5pGWW/RjCl7oknNY8VRCgQe/aMzrshJ4cr2nHj+DDx\n6/oPHuSbwMiR9ow3Ujp2pKCfM4d2j+Rk/uaCgsgfeF4vH3ZVceYMMHEi8MQTkfXhNF26OCP4g7nQ\n5uQAN9xgf192kJnJMQfaglQpM0pKnO1blQFtkarATPjxAxbz8ccbJgV/Iqh5AhEBZs7kyjRSn3f/\nTZ2eTrXR5s3c/8c/UqUSD6vd2bNpZL7qKn6vW5f/q5ycyNr785+pI68q+vXZZ7na9ychizc6dWLC\nNjsD3davpzpn167yfV4v8NFH8bniB7gQ+MtfgKwsqiYXL+ZDMTXV2Yd2aSnfNl5/PXJ7U7Qv0t8A\nCAymvxJc0Vd1TkvfvkpULMRiyo8/FN26XRjY5RS5ubH3GY+Ehg254li5Evh1BL5aOTkU8BddRH3p\n3LlcZb/2mjnjYXU0a8ZPIH51z623ht/eggUsAzl6dPAI9b17+eCL51J/deowtiM/H+jTJ/r2jhxh\nsZybbmKciD/j6PbtjGMwFccSCW3aUC3Zowevi6wsCv+UFOCOO6gWs5NTp4B+/Tbi1KmNGDKE90pE\nhOv/GfiBNT/+iPLxxwPFxSyCEqyAd7jMnav67rssehFISQkTS508GX0fseDVVyPL/370qGrDhuVZ\nSI8fZxnE3/2OcQTxzCefMHleuGzdyviIoiIWPq9Y6N3rVR0wQPXpp+0Zp5M8+CAL+kTLuXOssTBp\nkup33zHbqN9H/sUXVUeOjL4PE1T061+0iHU07E7898gjvD/8941qDLJzsk8MALALzNI52bdvFIBR\nAefM9R3PB9AlRDv2zpBNdO7Maj/R8PnnLCRyww28sIcPp4Dr31+1aVNWEEpUjhxhvdbi4vD+7p13\n+PsDeeABXpHxXiCnpES1QQMKqnAYO1Z12jRu//vfDATyZx0tKqKg69QpMWoAz5+veu+93D5+nIua\nU6fCb+eZZxg86ReQDz+s+uij3B48WHXxYluGaxz/Q/wPf7CvzQMHVBs1qlwz26jgB9AIwBoAuwF8\nCODyEOcVAvgczMWfW0V79s2Qjdx/P2/IaBgxQjUri9vffMP2srJYQejAgfischQON95YXg3JKhMm\nlM+Jn4IC1XHjbBuWowwYoPrWW9bPLy5mNHBhYfm+J59U7daNbTVowHTcW7bYP1Yn+Ne/mNK8d2+O\nvVWr8oeaFbxe1Tff5IIosLLV/v0UbidO8MEYr1WvrHDwIDMBfPGFPe2NHMnqgRUxLfhnAXjUt/0Y\ngKdDnLcfQCML7dkzOzYzfz5X6JHiL2EX7uowkcjO5sMtkCNHqn4L6NJF9Z//dHZcTjJrluqYMdbP\nX7q0cj73sjKqdf76V7OpIOygtJSpFNas4f95924K6lB1AwI5eJBFXjp2VP3ss8rH776b6VNatbJ/\n3KZZsEC1TRs+0KJh924+RI4fr3zMtOA/XzQdQFMABSHO2w/gvyy0F93MOMTWrbxAIyUzU/Whh+wb\nTzxy4AAvSr/e8dAhVoP67W+Dn//997RrVLR3JBJbtlAtY5W0NAr/msyQIVwEBOP0aRa8mTaN18qM\nGaH///n5lEx+VVKiM2cOC8gUFETexrBhqjNnBj9mWvCfCNiWwO8VztvnU/PkAbi/ivYinxUHKSlR\nveSSyPSXp09zFbRrl/3jije6dmVStZMnadQaN46v7MGM1itXqqammh+jnZSV0Rj97bfVn7t/1XX9\nFwAAB51JREFUP9U84dpBEo0tWyjgAm0UhYWq11/Pe6hnTxonrVQKGzyYb0I1hYULWSUtVFnId96h\nPTEtTfWuu1QnTmSSyB07aA9q0kT1hx+C/20kgr9Kd04RWeNbzVdkauAXVVURCeWb30dVPSJyBYA1\nIlKgqh9V1W88UacO/a6zsuhrnpdH97MuXejClZLCYJ7CQvo2d+zIwKNLLwUWLWKE39VXx/pXOM/t\ntzP69skn6eKXnc15WrCA+XgCycmJX99sqyQlMXJ5/vzQuYb8LFzIwvBOF9SJNd26MYnb0qUs3uLx\nMMneqFH00w/n9//tb+aKMZlgxAjmv+rfn4VsAl1Ui4rozjx7NtNOHznC4jqrVlHu7NnDILFLL7Vv\nPBHn4xeRAgCpqvqtiDQDsEFVqyz+JiLTABSp6vNBjsUsH391zJ9PYdW9Oy/un/2MkYu5uczn06gR\nfbOvuoqJtTZt4j9yyRL6JMdr5KGd7NzJwJ5bbgHefpvBLbm5wJ138sINTL1w/fW8oE2U13SSQ4d4\nPbz9dvBygACwbx8XCJ99BrRrZ3Z8sWDtWkZi5+QA/foxvmPq1Or/rraQmcn4hL//vfzBlpnJRePi\nxcH/5syZCx+aMc3HDxp3H/NtT0IQ4y6ASwA08G3XB/AxgJtDtGf9vSnOKShQve8+emskusdOOMyb\nV9m416fPha/s2dmqV19tT2xEPLBiherPf6567FjlY14vayzMmmV8WDHD66Xar0UL1d//vnZd/1Y4\ne5aq0Ndf5/d9+6gGPHQo8jYRA3fOtajgzgmgOYAPfNttwKCubQB2wOfnH6K9yH+5S9yyfHl5MZXF\ni2n0DXRprAmMH696222Vhdz8+ardu18YbFMbWLtWdcoUV+iHYutW2v6+/poG8Wh9/SMR/NGoeu4A\nMB3AfwPorqpB0zaJSDpYgCUJwKsaoiyjiGikY3GJX86dY4rj4cOBefOo673mmliPyl7OnqWq55e/\npJqjeXOqgTp3ZmqHa6+N9Qhd4o2ZM5myo6iIatJo6iaLSNiqnmiStG0HcBuAkOmqrOTrd6lMoP4u\n0UlKYoHqZ58F3n03fKGfCHNRty6Lchw+TCHfty9rFj/8sL1CPxHmwhSJPheTJtHAm50dndCPlIgF\nv6oWqOruak6zkq/fpQKJflFX5KGHWNegV6/w/zZR5qJVK3pxeTys3pWezpvbThJlLkyQ6HORnExD\n+K9+FaP+HW4/WC7+BEtA7BItyckUjLWBunVZmnLgwFiPxMUlNJH68U9R1fcstO8q7V1cXFzijIiN\nu+cbENkAYGIw466I9AIwXVXTfd8nA/AGM/BWEQDm4uLi4lIF4Rp37VL1hOo0D0B7EWkF4DCAoQCG\nBTsx3IG7uLi4uERGxMZdEblNRL4Gi6t8ICKrfPubi8gHAKCqZQDGAlgN4EsAb6rqzuiH7eLi4uIS\nKVGrelxcXFxcEotoi62HhYiki0iBiHwlIo+FOOdF3/F8EelscnwmqW4uRORu3xx8LiIfi8h1sRin\nCaxcF77zuotImYjcbnJ8JrF4j6SKyFYR2SEiGw0P0RgW7pHGIvIPEdnmm4uMGAzTcURkoYj8R0S2\nV3FOeHIz3FDfSD9g5O4esD5vHVRfn7cnQtTnTfSPxbm4HsBlvu302jwXAeetB/A+gMGxHncMr4vL\nAXwBoKXve+NYjzuGczEdwFP+eQBwDEByrMfuwFz8D4DOALaHOB623DS54rcSzHUrgDcAQFU3A7hc\nRJoYHKMpqp0LVf1UVU/6vm4G0NLwGE1hNcjvYQBvAThqcnCGsTIXdwFYrqqHAEBVvzM8RlNYmQsP\ngIa+7YYAjintijUKZRr7E1WcErbcNCn4gwVztbBwTk0UeFbmIpD7AKx0dESxo9q5EJEW4E0/z7er\nphqmrFwX7QE0EpENIpInIv9nbHRmsTIXrwC4RkQOA8gHMN7Q2OKNsOWm05G7gVi9WSu6ddbEm9zy\nbxKRfgB+A6CPc8OJKVbmIhvAJFVVERGEdh9OdKzMRR0AXQDcBKY9/1REPlPVrxwdmXmszMUUANtU\nNVVE2oKFnlJU9QeHxxaPhCU3TQr+bwBcGfD9SvDJVNU5LX37ahpW5gI+g+4rANJVtapXvUTGylx0\nBbCMMh+NAQwQkVJVXWFmiMawMhdfA/hOVYsBFItIDoAUADVN8FuZi94AsgBAVfeKyH4AHcD4odpE\n2HLTpKrnfDCXiFwMBnNVvHFXABgOnI/6/V5V/2NwjKaodi5E5CoAbwO4R1X3xGCMpqh2LlS1jaq2\nVtXWoJ5/dA0U+oC1e+RdAH1FJElELgGNeV8aHqcJrMxFAYA0APDptDuANb5rG2HLTWMrflUtExF/\nMFcSgAWqulNERvmOv6yqK0VkoIjsAXAawAhT4zOJlbkA8ASAnwKY51vplqpqj1iN2SkszkWtwOI9\nUiAi/wDwOQAvgFdUtcYJfovXxZMAXhORfHAR+6iqHo/ZoB1CRJYCuBFAY1/Q7DRQ5Rex3HQDuFxc\nXFxqGUYDuFxcXFxcYo8r+F1cXFxqGa7gd3FxcalluILfxcXFpZbhCn4XFxeXWoYr+F1cXFxqGa7g\nd3FxcalluILfxcXFpZbx/3rGsx341WU1AAAAAElFTkSuQmCC\n", + "text/plain": [ + "<matplotlib.figure.Figure at 0x7ff3eadbb110>" + ] + }, + "metadata": {}, + "output_type": "display_data" + } + ], + "source": [ + "from numpy import arange,sin,pi,random,zeros\n", + "%matplotlib inline\n", + "from matplotlib.pyplot import plot,subplot,title,show\n", + "\n", + "\n", + "#Implementation of LMS ADAPTIVE FILTER\n", + "#For noise cancellation application\n", + "\n", + "order = 18;\n", + "t = arange(0,0.01+1,.01)\n", + "x = sin(2*pi*5*t);\n", + "noise =random.random(len(x));\n", + "x_n = x+noise;\n", + "ref_noise = noise*random.random();\n", + "w = zeros(order)\n", + "mu = 0.01*(sum(x**22)/len(x))\n", + "N = len(x);\n", + "subplot(4,1,1)\n", + "plot(t,x)\n", + "title('Orignal Input Signal')\n", + "subplot(4,1,2)\n", + "plot(t,noise)\n", + "title('random noise')\n", + "subplot(4,1,3)\n", + "plot(t,x_n)\n", + "title('Signal+noise')\n", + "show()" + ] + } + ], + "metadata": { + "kernelspec": { + "display_name": "Python 2", + "language": "python", + "name": "python2" + }, + "language_info": { + "codemirror_mode": { + "name": "ipython", + "version": 2 + }, + "file_extension": ".py", + "mimetype": "text/x-python", + "name": "python", + "nbconvert_exporter": "python", + "pygments_lexer": "ipython2", + "version": "2.7.9" + } + }, + "nbformat": 4, + "nbformat_minor": 0 +} diff --git a/Digital_Communications_by_S._Haykin/Chapter4_D4b1XOQ.ipynb b/Digital_Communications_by_S._Haykin/Chapter4_D4b1XOQ.ipynb new file mode 100644 index 00000000..7ff40f44 --- /dev/null +++ b/Digital_Communications_by_S._Haykin/Chapter4_D4b1XOQ.ipynb @@ -0,0 +1,134 @@ +{ + "cells": [ + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "# Chapter 4 Sampling Process" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "## Example4.1 page 164" + ] + }, + { + "cell_type": "code", + "execution_count": 5, + "metadata": { + "collapsed": false + }, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "Aliasing error cannot exceed max|g(t)| = 2.0\n" + ] + }, + { + "data": { + "image/png": "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\nMMHMrs+zWFn3VZyYyr2vJK2tqNekpFWBvYAxWYvVbz+VsxW/SD0BDiXUvy0EpgPPRM93BJ6O7m9E\n6A0zFnjHYz7yAAAZCklEQVQPuCgNcUWP9yP0qphU6riAtsDzwEfAc0DrpPZVru0GTgVOzVjm5uj1\ndynQM65cMQFnRPtkLPA60KcMMT0ETAV+jL5PJ6VgPxWMKaH9tAtQE33mmOi2X5L7Kk5M5d5XQC9C\nldhYYBzw++zveX33kw/uc845F1ulV08555wrI08azjnnYvOk4ZxzLjZPGs4552LzpOGccy42TxrO\nOedi86ThnGs0SVtG02K4KudJwzlXDFsTpth2Vc4H9znnGiWahmUSsAphzqI/mdljyUblSsWThnOu\n0SQdD2xrZjmvoOeqh1dPOeeKQZT54kIuGZ40nHPF4FUWTYQnDedcMcwHWiUdhCs9TxrOuWJ4Cegh\naYykw5MOxpWON4Q755yLzUsazjnnYvOk4ZxzLjZPGs4552LzpOGccy42TxrOOedi86ThnHMuNk8a\nzjnnYvOk4ZxzLjZPGs4552LzpOGccy42TxrOOedi86ThnHMuNk8azjnnYvOk4ZxzLjZPGs4552Lz\npOGccy42TxrOOedi86ThnHMuNk8azjnnYvOk4ZxzLjZPGs4552LzpOGccy42TxrOOedi86ThnHMu\nNk8azjnnYvOk4ZxzLjZPGs4552LzpOGccy62oiUNSatIWrlY63POOZc+MrOGvVFqBhwC9Ad2IiQg\nAUuBkcCDwBPW0A9wzjmXOo1JGv8FXgGGAGPNbFH0/MrA1sBBwC5mtmuRYnXOOZewxiSNjc3sozqW\nWbk2mTjnnKt8jWnTeAhA0gv5FvCE4Zxz1aVFI97bXNIlwCaSziW0Z9QyM7uucaE555xLm8aUNI4i\nNHo3B1oBa2TcWjU+NOecc2nT4DaNZSuQ+pnZ0CLF45xzLsUaXNKQdIKkFvkShqSVJJ3Y8NCcc86l\nTWPaNNYA3pI0EXgLmE5o1+gAbAdsCtzZ6Aidc86lRqOqpyQJ2BnYBVg/evoz4FXgdR/Y55xz1aXR\nbRrOOeeajgZXT0naHPiZmf0nenw9sBZgwM1m9k5xQnTOOZcWjely+2dgdsbjvYGngBHAZY1Yr3PO\nuZRqTEP4emb2Wsbj+Wb2LwBJpzYuLOecc2nUmJLGcgP4zGyHjIfrNmK9zjnnUqoxSWOqpD7ZT0ra\n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\nYII=\n", + "text/plain": [ + "<matplotlib.figure.Figure at 0x7f1df4d30f10>" + ] + }, + "metadata": {}, + "output_type": "display_data" + } + ], + "source": [ + "from __future__ import division\n", + "from numpy import arange,ones,sinc\n", + "%matplotlib inline\n", + "from matplotlib.pyplot import plot,xlabel,ylabel,show,title,subplot\n", + "\n", + "\n", + "t = arange(-1.5,0.01+2.5,0.01)\n", + "g = [2*sinc(2*tt-1) for tt in t]\n", + "print 'Aliasing error cannot exceed max|g(t)| = ',max(g)\n", + "f = arange(-1,0.01+1,0.01)\n", + "G = [0,0,0,0]+[xx for xx in ones(len(f))]+[0,0,0,0]\n", + "f1 = arange(-1.04,0.01+1.04,0.01)\n", + "subplot(3,1,1)\n", + "plot(t,g)\n", + "xlabel(' t')\n", + "ylabel(' g(t)')\n", + "title('Figure 4.8 (a) Sinc pulse g(t)')\n", + "subplot(3,1,3)\n", + "plot(f1,G)\n", + "xlabel(' f')\n", + "ylabel(' G(f)')\n", + "title('Figure 4.8 (b) Amplitude spectrum |G(f)|')\n", + "show()" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "## Example4.3 page 165" + ] + }, + { + "cell_type": "code", + "execution_count": 1, + "metadata": { + "collapsed": false + }, + "outputs": [ + { + "data": { + "image/png": "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\nSfvkhvUmJestaVrvK2RlqFxf+XXe6hUrktYlNU9tTtq/epN+tORVHhNN+8mawPmSzqmYfvXcPAt7\nxUww/zZs6xjOa+95u1Jb5541SF/+7bEU6cdmc4Lc91REzJT0Lml959dBNdu9LZ12LszOLdeSEr5R\nwKGkmqRqPgcW/G7+JqmLw4uSxgM/i4jbqyhTR+erNJDUv7XTPqszOoJNJmW4/XPD8q9nZv+XyA1b\npWIZ+RP226ST5YYRsWz21y/m71iUtxNwlqQ3SG2xAA9LOriK2Cu/AJ9uYZpqvigHk7Lm/M7+OmlH\ny1uT+Q+aapbdkpNJv663iohlSM0kooqkTtKPSf0E8lfVTCD9Klk+t+6XiYiNs/FvkL6gmuRfV3qN\nlCAum/tbOiL2rnJZs5h/n1mVeeuqU8uddc69kdSHYaWIWJbUr6BpeW1to/m2c5Zc92fBL/kmrS3v\nGVLZWpu+pf2quR8TE4BPt9Ap8H+kX9BNPk06lic1M201Kk/0Tft6W/tVqyLiHxGxG+m8MRZoupT+\nV6Tmz89l+8ERzH9Oq1xvr5Fq1/L75FIR8bsqwnib1Lw0IDfs08y/ztvaTy4kNTmtk8V7OguegyuP\niaZ96DVSLWk+9iUj4pF2fP5McseUpMrzcOUy2jqG89p73q7U1j4ygXTcNmeBcmedpdeh+XM6pGO7\nf276vqRm3f9VTNfWdm9unTe33y3MubDScOAASWuSmjNvrPJzFvgui4hxEXFoRKxIqkG+QdKnWHBf\n6UVKXNuar732JJ1rW9Tez1ropCYiPiF19Bki6VOS1iedXCIbP5l0YB4hqZeko0ntoS0tbw7ppHWe\npBUBJK0uabcWZvkssAnweVIzBMDepLbdBUjqLWlxUgbbR9LiuV7+NwHLSjoyi/UA0on6wSrWw0vA\n35j/Sqg7gHUlHZJ97teB9UmdXOeG1NayK6bJv+5LOpFMk7QcKbFqe2GpVuJ44GuRXTacleENUse5\n30taStIiktaW9OVskuuAE7LtsSypZqoljwLTJf0w2y96SfqcpC1yyzpVUj9Ja2Tx5A+4p4DDsvn2\nIPVz6ZJyk9rUFyWdwOZk0+X3t0nA8pJaOkFfD+wlaafs0tWTSVXpD7UUSithPgb0k5SvyZnE/MfM\nSNrer5qMJp00fyNpiWx//2I2bjjwfaX7DfUlJQnXtlCr05J8WVaSdIKkPpIOzGIaGelqydb2q5YX\n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\nNWZmZlYK/x9BcGdXqAyYrQAAAABJRU5ErkJggg==\n", + "text/plain": [ + "<matplotlib.figure.Figure at 0x7f8850d971d0>" + ] + }, + "metadata": {}, + "output_type": "display_data" + } + ], + "source": [ + "from __future__ import division\n", + "from numpy import arange,ones,sinc,pi,sin\n", + "%matplotlib inline\n", + "from matplotlib.pyplot import plot,xlabel,ylabel,show,title,subplot\n", + "\n", + "T_Ts = arange(0.01,0.01+0.6,0.01)\n", + "#E = 1/(sinc_new(0.5*T_Ts))#\n", + "E=[1]\n", + "for i in range(1,len(T_Ts)):\n", + " E.append(((pi/2)*T_Ts[i])/(sin((pi/2)*T_Ts[i])))\n", + "\n", + "plot(T_Ts,E)\n", + "xlabel('Duty cycle T/Ts')\n", + "ylabel('1/sinc(0.5(T/Ts))')\n", + "title('Figure 4.16 Normalized equalization (to compensate for aperture effect) plotted versus T/Ts')\n", + "show()\n" + ] + } + ], + "metadata": { + "kernelspec": { + "display_name": "Python 2", + "language": "python", + "name": "python2" + }, + "language_info": { + "codemirror_mode": { + "name": "ipython", + "version": 2 + }, + "file_extension": ".py", + "mimetype": "text/x-python", + "name": "python", + "nbconvert_exporter": "python", + "pygments_lexer": "ipython2", + "version": "2.7.9" + } + }, + "nbformat": 4, + "nbformat_minor": 0 +} diff --git a/Digital_Communications_by_S._Haykin/Chapter5_dSjZdtS.ipynb b/Digital_Communications_by_S._Haykin/Chapter5_dSjZdtS.ipynb new file mode 100644 index 00000000..34a5529c --- /dev/null +++ b/Digital_Communications_by_S._Haykin/Chapter5_dSjZdtS.ipynb @@ -0,0 +1,313 @@ +{ + "cells": [ + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "# Chapter 5 Waveform Coding Techniques" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "## Example5.1 page 187" + ] + }, + { + "cell_type": "code", + "execution_count": 1, + "metadata": { + "collapsed": false + }, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "The average transmitted power is:\n", + "1.225e-05 W\n" + ] + } + ], + "source": [ + "from __future__ import division\n", + "\n", + "sigma_N = 10**-6 #the noise variance\n", + "k = 7 # separation constant for on-off signaling\n", + "M = 2 # number of discrete amplitude levels for NRZ polar\n", + "print 'The average transmitted power is:'\n", + "P = (k**2)*(sigma_N)*((M**2)-1)/12#\n", + "print P,\"W\"" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "## Example5.2 page 189" + ] + }, + { + "cell_type": "code", + "execution_count": 1, + "metadata": { + "collapsed": false + }, + "outputs": [ + { + "data": { + "image/png": "iVBORw0KGgoAAAANSUhEUgAAAYoAAAEfCAYAAABf1YHgAAAABHNCSVQICAgIfAhkiAAAAAlwSFlz\nAAALEgAACxIB0t1+/AAAIABJREFUeJzt3XecFdX9//HXm116RxFQKQZBwVjQxIaaVRNrgjUx+dlN\n9BtjomnGknyVmGaLMYklRY3GKLZoLN8goHGNDWwgIKKgIKICCoh0tnx+f5xzYbjsvTtb7t4tn+dj\n57HT5zNz750zc86ZMzIznHPOuVzaFTsA55xzzZsnFM455/LyhMI551xenlA455zLyxMK55xzeXlC\n4ZxzLi9PKJxzzuVVa0Ih6X8lDcwad07hQnLOOdecqLYH7iQtAT4Cvmdm/4njpprZqCaIzznnXJGl\nyXp6HzgKuFLSTwocj3POuWYmVRmFmb0LHASMlPQA0LmgUTnnnGs20iQULwOY2TozOwN4CuhQyKCc\nc841H2kSiteTA2Z2I/CHwoSTm6SVkoY09XZdes3tM5J0rqTFkj6V1LvY8bQGki6R9Nc808+Q9EwD\n1j9EUrWkBtfIlHSgpNl5pt8u6ReNsJ0G7XNLkObDOL2GcWc0chwbSZovaU086ayMP/L+ZtbdzOYX\nart1iK8sfpFXJrpT88y/v6QX4368Jml0LesfLul+SR9J+iQu84PG+OEUWnP5jAAktQd+CxxqZj3M\nbHnW9MwJ6dWs8VtL2iBpXlPGmxVDtaRV8bu1UNJvk5+/pP8n6eU4/QNJ/858rySNjcufn7XOC+L4\nyxsSm5n9xszOjuts8Ek9/t4PaUhMuZjZM2a2c75ZYtdixPPPe0293ZwfsKRvSHoU2EHSo4muHFha\nwJgM+HI86XSPP/JFhdqYpJJ6LPZ+Ir7uZnZnjnX3AR4FrgJ6AlcDj0rqlWP+ocAU4F3gs2bWC/gq\nsBfQvR5xNglJpcWOoQb9gU7AG7XM11nSLonh/we8QyOdQBpwbHYzs+7AoTGmzMn5h8DvgF8C2wAD\ngRuBMYll3wJOy1rf6cCbFObEqAYsaw1cvqGKue2Ww8xq7IDBQBnwAvCF2F8G7AmU5lquoR0wDzik\nhvHVwGdi/1aEE/AK4EXCj+aZOG1InLddYtly4Jux/wzgOeA64GPgCkKZy7WEE/Qi4GagU474yoD3\nUu7Ll4HXs8a9CZyVY/5/AI/Wss4xhOzA5YTyop0T0+YDPwamAyuBW4F+wPh4rCYBvbKO09mEmm0f\nAD9KrGvv+Nkvj9P+CLTP+jy+A8wB3q7hMzoqxvkpsDBr3WfH5ZYCDwMDstb7P4ST3XLghjzHoiNw\nfYz/fcIJtAMwHFgV17USeKKGZTP7fylwdWL8S3HcvDzbTXts3iIkOjcA12at4xHg+znWv/E4xuH7\nCNm9PeN+nZAntsuBO4FZwMg4bpf4WdwJXJ5juXeBPWP/yTGGEXH4m8BDsX8scGfsX5A4xp8C+xIS\npGeAa4Blcf+PyLHNO4EqYE1cx48Tn8tpMaaPgEsTywi4GJhL+P3eC/RO81sFRgGvxljvAcYBv8j6\nvU6Ln+tzwK6JaZltfhqP5bGJaWcQzz81xNCJ8Lv+OK73RWCbxHJvx3W+A3yD8P1dRrhQzKxjG2A1\nMAhYG49Z5pj3z3dMEsfzjPh5LQW+DXyecJ5YDvyx1nNZLSelUqC8tpU0ZkdIKA7N9+OJH/Ld8UMY\nEQ/Af7MOTDKheIp4co4HrAI4j3BH1YlwgvkX0AvoRvgR/zrPl289IUF5h5DgdMkxb00JxRzgtznm\n/xA4Pc+xyZwADwVKgAvj+koTx+55oC+wLbCY8MPYnXBSfRK4LOs43UWoxfZZYEnm2BMuCPaOx2gw\n4cRzQdbnMSEes441fEYfAqNjf09gVOw/hPDj34Pwo/gD8HTWeh8BehCulpcAh+c4HlfE/d06ds8B\nV8Rpg7O/B1nLZvZ/cPz+CBhJuAM5lPwJRZ2ODeFH+T6bnlvamvDD75tj/dXA0Ng/Mh7LM4EjCN/d\nGvcpzp9JKC4BrozjriacSPIlFHcAP4z9f4nfq2/H4b9n9o/NE4otjjHh97WBkLiIcFJ6v5bf+yGJ\n4czn8ud47HYD1gE7xekXxM98W6A98Cfg7jy/1fdifwdCwnMB4bdzQowz830ZRfi9fD7GfVqMrX2c\nfiLQP/Z/jfA77JfY51wJxf8Qvs+d4npHEXIHuhIu3obF+fqxKWG/MfPZJfb54dj/BbIuVPMdk8Tx\nvCkegy8Rzl8PEb6HmfPEQbk+I7NaEoq4oSeJV6FN0RGuilcSUrrlwIPJk1D8kDdkDnCc9gvy31Fk\nJxTvJqYpfujJK7j9gHdyxNePeBUft/U08Kcc825FuDo4KX6ApxOuBm7OMf8G4LA8x+Z/gXuyYl+Y\n+ZDjF/sbiekPADcmhr/LpivDzHEanph+FXBLjm1/P/NZJD6Psqx5kgnFu8A5QI+seW7N+hF0jfs9\nKLGO/RPT7wUuyhHTXBJXq8BhxBN8Td+DrGUz00sId1qHAVcSTrB5E4p6HptZwBcTn8NjedZXTTiJ\nLIv7eEX8rE8GPqwllrGEBGFg/AxK4//tyZ9QnMWmk9GsODwu8ZvcI7n+PL+1M4A5ieEucZ5tcmw3\nV0KxbWLcFOBrsf+NrPkHxO/PFp8zmycUB5GVYLH5hcXNmf7E9NnkOIECU4ExiX3OlVCcSdbdSeJ7\nvxw4HuicNW0fNj9HvQycmL1PWd+tGo9J4ngm79o/Br6aGH6AxIVOTV2aQqjVwAxJt0n6Y+wKWevJ\ngGPMrHfsjs+a3pfw5U8W6Cys4zaSy/YlfJlfkbRc0nJCVs3WNQZnttjMZsf++cBPCFcnNc27FDgW\n+BHhDuRw4Ik88S4lpPC5DCBc/WbWb3FftkvMszjRvzZreB3hjikpeSwWZLYfC9Ufk/ShpBXArwgJ\nX65ls51AyH6aL6lc0r6JfXg3sQ+rCfud3IdkmdSaGmLO2Da5rmT8dWCEK+Yzga8TTqYb860lnZyo\ntPB/cVx9js3fgVNi/ylxO/mMMrM+ZrajmV0WP+ulwNYpCo/NzN4jJDK/Ad4ys9p+I/8FDpTUn5B4\n3g+MljQY6Glm02pZPmnj52dma2Jvrs+w1nWw+XdgMPBQ4rc6C6gkXMDlsy3hri4p+d0ZDPwos964\n7u0J31cknSZpamLaZ9nyM6/JnYS7y3skvS/pKkml8Xt/EuGO64P4fdoJwMymAGtjwfXOwFDCXUku\nQ6j9mOQ7L6ylls8nTULxIOFK9mlCyvZK7IrlI8JBSLY/lexfHf93SYzrn7UOS/R/TDhQIxOJUy8z\n61GHmHIeRzP7r5ntbWZbEW5ndybkU9bkCXIkOtEHhC80AJJE2PfsH0BSbYV1g7L6M+u6mfCF29HM\negI/Zcv9NHIws5fN7FhCQvwvQj57Zh+GJPahK+EHl28fctlsXTH+D+qxngcJidrb2SdUM7vLNlVa\nODqOrs+x+QdwjKTdCd+Bf9UjzhcI2QbH1TJf5jP/O/DD+D9XXGGk2VzCCfl7hKzAlYST9TmEMoea\nls/5+ddBXdexgHAX2TvRdTGzD2tZ7kM2vxiBxG8prvdXWevtZmb3xsTyL4Ts6j5m1huYSYqCcDOr\nNLMrzGwXYH9CdvRpcdpEMzuMcH6aDSSrHd9BuKA4FbjfzDZkVlnDZup7TDYLNd/EWhMKM7ud8COf\nYmZ3mNntZnZHHQJoVGZWRfhhj5XUOaa4pxJ31Mw+Ipx0TpVUIuksQoqca33VhA/oekl9ASRtJ+mw\nmuaPqfxgBQMJ2TU5f/SSRklqL6kHocB8gZlNyjH75cD+kq6W1C8uv6OkO+Py9wFHSzokVv/8EeEu\n4flc20/hZ/E47kK4hb43ju9GyAJcE4/xuWlXGPf3ZEk94+e1kpDlBqEA8UxJu0vqCPwamGxmC3Kt\nLs+mxsX4t5a0NXAZtV+pbyFe3R0MfCvlInU+NjEBeplw0n7AzNbXI84VhH28UdIxkrrEY32kpKtq\nWOReQp70/XFY5D+eTxOyxZ6Ow+VZw5l1ZHxELE+p674kLK7j8n8Cfi1pEICkvpLG1LIMhES2UtL5\n8ZgdTyiPyPgr8G1Je8ffdldJR0vqRsgmMsJFZTtJZxLuKGoVzxe7xtqVKwllTFWStomfYdc4bjWb\nfiMQLiyOJ2Q3JhP6xcBW8XzQ0GOyWaj5JqZpPXYMIT/u8Tg8SlK+26BCSaZ43yUUkC4ipLzjCHly\nGWcTCno/JhQGPpe1nuzU8yLCbfrkmJUwiVBwXJNRcX2r4v9pwMY665JulnRzYv4LCT+oBYRbwZxX\ng2b2DqF8ZAjwuqRPCPmHLwGrzOwtwlXGH+M6jwa+YmaVudbJlleA2fv+NGHfnwCuMbMn4vgfE6pl\nfkq4mrqnhnXl29YpwLx4PM8hfOExsycJd6j/JFz970DI8sm13ppizvgl4eQ7PXYvx3H5YqwxXjN7\n1czmpVy2PscGwnd1V2pPzPLdqV1HuEv4GaGgfwGhhtVDiWUzF03rzOw/ZrYue1oOTxMSwf/mGM5e\n/xpCtttzkpZJ2ifHNvJt8zeExH55rPpb2/y/J2TDTJT0KSEB2DvP/JlYNxBOvGcQsvC+RvgOEqe/\nQjhv3EAoG5rDpiv/WYRncl4gnHM+CzybtY1cMfcnJNQrCHeh5YTPvx3wA8JF7VLgQBIXHDHr8FWg\n2syeTYyfTTjfvROPef8UxyTNXVveedK0HvsqoabKUxZbjJU008zypqiSOhG+aB0Jpe0Pm9klCs8W\n3Eu47ZtPKKT6JC5zCaEQrQo438wm1rp7YbmrCIVlZ6aZ34WHpQi1tkrjXZUrMEkHAv8ws8G1zuza\nPEm3EgrgLyt2LGnKKCoyJ/KEWk8s8SrmYDPbg1DF7WBJBxCq6U0ys+GEGlUXA0gaSSjcGUmoBnhT\nrkI7STtJ2i3eIu5NSFweqmle55qDmFX4fTbPh3auRvFC7nhCLcGiS9XWk6STgVJJwyT9kZR54oka\nDx0INSmWEx4Yy5Rx3EGoFQRwDKE6XkWsTTSX3LeU3Qm3jasIt/3XmlkxssNausYojHS1kDSC8N3v\nR3hA0LmcFNqfmkF4EPTd2uZvCmmynroSanVkCncnEJ5mXJd7qY3LtiPksw0lPDvwE0nLY62BTK2d\nZWbWOyZAk83srjjtFmC8mf0z1/qdc84VXq3t0MQaIZfGrk5i3vceknoCEyQdnDXdJOVLqfyK1znn\niqzWhELhIZBMGyyZ+c3MUrf4aGYrFB5W2gtYrNAa7CJJAwg1NyCU/iefh9ieGurW15KwOOecy8HM\n6tUIYpoyivsJ2Uc/I1T1zHR5xbrtvWJ/Z0J97qmEalynx9lOZ9MzCI8AX5fUQdIOwDByPJhmKZtW\naO3d5ZdfXvQYmkvnx8KPhR+L/F1DpGkCucLMbq59ti0MAO6I5RTtCO3DPClpKnCfpG8Sq8dCqKss\n6T42PX7+HWvo3jnnnGuwnAlFfN5BhPcnnEd4Gnrj06Rmtizfis1sBqGVzezxy4Av5ljm14QndZ1z\nzjUT+e4oXmXzwuQfJ/qN0JKrK6KysrJih9Bs+LHYxI/FJn4sGket1WObG0meI+Wcc3UkCStgYbZz\nzrk2zBMK55xzeeVNKGJbSgPzzeOcc651S3NHMb7gUTjnnGu28iYUsdT4ldhCq3POuTYoTaOAbwI7\nEt4vm3nNqJnZbgWOLVc8XuvJOefqqCG1ntI8mX14fVbsnHOudUjzzuz5hMb6Do79q0nxUnHnnHOt\nQ5qsp7GEVl93MrPhkrYD7jOz0U0QX03xeNaTc87VUaEfuDuO8Pa51QBm9j7hDXPOOefagDQJxXoL\nLyACNr7xzjnnXBuR6n0Ukv4M9JJ0DvAkcEthw3LOOddcpGoUUNJhJN6ZbWaTChpV/li8jMI55+qo\n0NVjAWYAnQnNi8+oz4acc861TLVmPUn6FjAFOB44AZgS307nnHOuDUhTPfYtYD8zWxqHtwJeMLPh\nTRBfTfF41pNzztVRoavHfgysSgyviuOcc861AWnuKO4EPgs8HEcdA0yPnZnZdQWNcMt4/I7COefq\nqNCF2W/HLnN2fjj2d6vPBp1zzrUs/s5s55xrA/yd2c455wrGEwrnnHN5eULhnHMur5yF2ZL+mBg0\nNn8HhZnZ+QWLyjnnXLOR747ildh1BPYE3gLmAHsAHQofmnPOueYgzXMUU4ADzKwiDrcHnjWzfZog\nvpri8VpPzjlXR4Wu9dQL6JEY7h7HOeecawPSJBRXAq9KukPSHcCrwG9qW0jSQElPSXpd0kxJ58fx\nYyUtlDQ1dkcmlrlE0hxJs2PT5s4554os7fsoBgD7EAq1p5jZohTL9Af6m9k0Sd0I5R3HAl8DVmY3\n/SFpJHA38HlgO+AJYHjy7XpxPs96cs65OmqKB+7aAR8BnwDDJR1U2wJmtsjMpsX+VcAbhAQANq9B\nlXEMMM7MKsxsPjAX2DtlfM4516Y9+c6TvPT+SwVZd5r3UVwFPAf8FPgxcGHsUpM0BBgFTI6jvifp\nNUm3SsqUd2wLLEwstpBNCYtzzrk8bpt2G7M+mlWQdadpFPA4YCczW1+fDcRspweAC8xslaSbgSvi\n5F8AvwVyvQipxjymsWPHbuwvKyujrKysPqE551yrMWPxDH603482DpeXl1NeXt4o605TPXY88DUz\nW1nnlYeqtI8B483s+hqmDwEeNbNdJV0MYGZXxmmPA5eb2ZSsZbyMwjnnEiqqKuhxZQ+W/WQZndt3\nrnGeQjczvhaYJulJIHNXUeuT2ZIE3ArMSiYSkgaY2Ydx8Dg2vYP7EeBuSdcRspyGAS+m3hPnnGuj\n3lr6FoN6DsqZSDRUmoTikdhlLuNFjiyhLKOBU4DpkqbGcZcC35C0R1zHPOB/AMxslqT7gFlAJfAd\nv3VwzrnazVgyg1232bVg609bPbYjkHlH9uzMU9rF4FlPzjm3uZ8++VPal7RnbNnYnPMUtHqspDJC\nO083xm6OpC/UZ2POOeca38yPZhb0jiJN1tN1wGFm9iaApOHAPYSGAp1zzhXZjMUz2LVf4RKKNA/c\nlWYSCQAze4t0CYxzzrkCW7VhFYtWLWJo76EF20aaE/4rkm4B/kEoyD4ZeLlgETnnnEvt9SWvM6Lv\nCEralRRsG2kSinOB84BMddhngJsKFpFzzrnUZiyZwWe3+WxBt5EmoSgBrjez3wJIKiG8zMg551yR\nzVxS2IJsSFdG8R8g+RRHF0LLrs4554qs0M9QQLqEomNs/RWA2JRHl8KF5JxzLq0Ziwuf9ZQmoVgt\naa/MgKTPEZr1cM45V0RLVi+hsrqSbbtvW9DtpCmj+D5wv6QP4vAA4KTCheSccy6NzPMToWm9wqk1\noTCzlyTtBOxEqB5b1CY8nHPOBTOWzOCzfQub7QTpmvDoClxMeJ/EDGCIpC8XPDLnnHN5zVwys6BP\nZGekKaP4G7AB2D8OfwD8qmAROeecS6UpajxBuoRiqJldRUgsMLPVhQ3JOedcbaqtmlkfzWKXbXYp\n+LbSJBTrJW18jkLSUDa9wMg551wRzP9kPr079aZXp14F31aaWk9jgceB7SXdTXgh0RkFjMk551wt\nmuL5iYw0tZ4mSnoV2DeOOt/MPi5sWM455/JpiqY7MtLUejoAWGdmjwG9gUslDS54ZM4553KasaSw\n76BISlNGcTOwRtLuwA+Bt4G/FzQq55xzeTVFq7EZaRKKSjOrBo4FbjSzG4HuhQ3LOedcLusr1/PO\n8ncYsfWIJtlemsLslZIuBU4BDozNjLcvbFjOOedyeXPpm+zQawc6ljbNGx/S3FGcBKwDzjKzRcB2\nwDUFjco551xOM5fMbLJsJ0hX6+lD4LrE8AK8jMI554pmxuKmeSI7I80dhXPOuWakKWs8gScUzjnX\n4jR11lPehEJSqaS7mioY55xz+X26/lM+XvMxn+n9mSbbZt6EwswqgcGSmqZo3TnnXF4zl8xkRN8R\ntFPTZQilqR47D3hW0iPAmjjOzOy6PMs455wrgKZsuiMjTZL0NvB/cd5usav1gTtJAyU9Jel1STMl\nnR/H95E0SdJbkiZK6pVY5hJJcyTNlnRY/XbJOedar6au8QTpqseOhfCmuzq+i6IC+IGZTZPUDXhF\n0iTgTGCSmV0t6SLC2/MuljSS8MzGSMKzGk9IGh6fCnfOOUeo8TRmpzFNus00jQLuL2kWMDsO7y7p\nptqWM7NFZjYt9q8C3iAkAGOAO+JsdxCaBgE4BhhnZhVmNh+YC+xdt91xzrnWy8ya7PWnSWmynq4H\njgA+BjCz14Av1GUjkoYAo4ApQD8zWxwnLQb6xf5tgYWJxRYSEhbnnHPAolWLkES/rv1qn7kRpSnM\nxswWSEqOqky7gZjt9E/gAjNbmVyPmZkky7fpmkaOHTt2Y39ZWRllZWVpw3HOuRbrtcWvses2u5J1\nPq5ReXk55eXljbLdNAnFAkmjASR1AM4nZCPVSlJ7QiJxp5n9K45eLKm/mS2SNABYEse/DwxMLL59\nHLeFZELhnHNtxZSFU9hnu31SzZt9Ef3zn/+83ttNk/V0LnAeIRvofUIW0nm1LaSQ5N0KzDKz6xOT\nHgFOj/2nA/9KjP+6pA6SdgCGAS+m2QnnnGsLJr8/mX2337f2GRuZzPLl/DRgxeHNeP8FprMpC+kS\nwsn/PmAQMB/4mpl9Epe5FDiLkLV1gZlNqGG9VqiYnXOuuaq2ara+emveOO8N+nWrexmFJMys9jyr\nmpat7aQraSihQHs/wgn/eUK113fqs8GG8oTCOdcWzf54NkfddRTvXFC/U29DEoo0WU93E+4ABhBq\nJt0PjKvPxpxzztXP5IXFyXaCdAlFZzO7Mz7fUGFm/wA6FTow55xzmzT3hGJ8bFpjSOwuiuP6SOpT\n6ACdc84VN6FIU0YxnxzPMxAehWi6tm7xMgrnXNuzasMq+l3bj+UXLadDSYd6raMhZRRp2noaUp8V\nO+ecaxwvvf8Su/fbvd6JREP5G+6cc66Zm7xwMvttv1/Rtu8JhXPONXPFetAuwxMK55xrxsysqAXZ\nkK6Z8QNiw35IOlXSdZIGFz4055xz8z+ZT2m7UrbvsX3RYkhzR3EzsFrS7sAPCW+8+3tBo3LOOQfA\nCwtfYN/t903VYmyhpEkoKmN91GOBG83sRlK8CtU551zDTV44mX23K162E6RLKFbGxvpOAR6TVAK0\nL2xYzjnnINZ4Gli8Gk+QLqH4GrAOOMvMFhGaG7+moFE555xjbcVaXv/odfYcsGdR40jz4qIfmNlF\nmYH4trvPFjAm55xzwNRFUxmx9Qi6tO9S1DjS3FEcVsO4Ixs7EOecc5srdrXYjJwJhaRzJc0AdpI0\nI9HNJ7yMyDnnXAFlajwVW85GASX1BHoDVwIXAZm6WSvNbGnThFdjXN4ooHOuTRj4u4E8dfpT7Nhn\nxwavq1CNApqZzZd0Hlmtx0rqY2bL6rNB55xztVv46ULWVa5jaO+hxQ4lb0IxDjgaeIUtmxk3oEmb\nF3fOubZkysIpRX/QLiNnQmFmR8f/Q5osGuecc0DzeNAuI01bT5J0gqTfSfqtpOOaIjDnnGvLmktB\nNqSrHnsT8D+Emk6vA9+WdFNBo3LOuTZsQ9UGpi6ayue3+3yxQwHSPXB3MDDSzKoBJN0OzCpkUM45\n15ZNXzydz/T+DD069ih2KEC6O4q5wKDE8KA4zjnnXAEU+4122XLeUUh6NPZ2B96Q9CKhttPewEtN\nEJtzzrVJkxdO5pAdDil2GBvly3r6bfxvbHrYjsQ455xzBfDCwhe49MBLix3GRvmqx5Y3YRzOOeeA\ndz95l5XrV7Lz1jsXO5SN/J3ZzjnXjEx8eyJfGvol2qn5nJ4LGomk2yQtjo0LZsaNlbRQ0tTYHZmY\ndomkOZJmS6qp1VrnnGvVJrw9gcM+07xOf4VOsv4GHJE1zoDrzGxU7MYDSBoJnASMjMvcJDWjJNU5\n5wqssrqSJ+c9yWFDW3hCIekOSTeneXmRmT0DLK9pNTWMOwYYZ2YVZjafUAV377rG55xzLdVL77/E\noJ6DGNB9QLFD2Ux9rthvBJ4ETmvAdr8n6TVJt0rqFcdtCyxMzLOQ8NpV55xrEya8PYHDhx5e7DC2\nkObJ7M2Y2YvAi8AD9dzmzcAVsf8XhGq438y1uZpGjh07dmN/WVkZZWVl9QzFOeeajwlvT+AXB/+i\nUdZVXl5OeXl5o6wr34uL+gLnAcsIZQ1XAwcRsoR+ZGapns6WNAR41Mx2zTdN0sUAZnZlnPY4cLmZ\nTclaxl9c5JxrdZavXc7g6wez5MIldCrt1Ojrb8iLi/JlPd0NdACGA1OAecCJwGPALfXZGICkZObb\ncUCmRtQjwNcldZC0AzCMcOfinHOt3pPznuSAQQcUJJFoqHxZT9uY2aUKb81418yujuPfiG+9q5Wk\nccAXgK0lvQdcDpRJ2oOQrTSP0DItZjZL0n2EBgcrge/4rYNzrq2YMHdCs6vtlJEv62mqmY3K7q9p\nuCl51pNzrrUxMwZfP5gJp0xgRN8RBdlGod6Z/ZlEw4A7JPoBdqjPxpxzzm1p9sezAZpVsx1J+RKK\nMfG/2NRAYMa1hQnHOefanolvT+TwoYc3i/dj1yRfQnEyMB54wsxWNlE8zjnX5kx4ewJn7nFmscPI\nKV+tp9uAPYB/S/qPpIsk7d5EcTnnXJuwrnIdzy54li9+5ovFDiWnfM2MTwYmA5dL2ho4DPixpF2B\nqcB4M7uvacJ0zrnW6bkFz7HLNrvQu3PvYoeSU6ons83sY8JzFXcDSPoc0PyeM3fOuRamObYWm63W\ntp4kbS3pj7FJ8Fcl/R6YZ2a/aoL4nHOuVZvw9gQO37F5X3enaRTwHmAJcDzhyeyPgHsLGZRzzrUF\nH678kAUrFrD3ds27oew0WU/9zSzZStUvJZ1UqICcc66tmPTOJA7d4VBK29W5fdYmleaOYqKkb0hq\nF7uTgImFDsw551q7CW8332Y7kvI14bGKTc18dwWqY387YLWZdS98eDXG5U14OOdavGqrpv+1/Xnp\n7JcY3GtwwbdXkCY8zKxb/UNyzjmXz7RF0+jTuU+TJBINVZ9XoQ6SdHMhgnHOubaiObcWmy1nQiFp\npKRHJc2lmRJ1AAAfhklEQVSSdJ+k7WPV2GeAOU0XonPOtT4Pv/kwRw87uthhpJKvqP1W4M+Ep7OP\nILxg6BZgJzNb1wSxOedcq/TO8nd4Z/k7HLLDIcUOJZV8CUVnM7s99s+WdL6ZXdgEMTnnXKt2z8x7\nOHHkibQvaV/sUFLJl1B0krRn7BewIQ4LMDN7teDROedcKzRu5jhuOuqmYoeRWr6EYhGbv4cie/jg\ngkTknHOt2MwlM/lk3SeMHjS62KGklq96bFkTxuGcc23CuBnj+PouX6ed6lzptGhaTqTOOdfCmRnj\nZo7jG7t+o9ih1IknFM4510SmvD+FDiUdGNV/VLFDqRNPKJxzromMmzGOb3z2G8323di51OfJ7AGS\nOhYiGOeca62qqqu4b9Z9LS7bCep3R/EP4E1J1zZ2MM4511qVzy9n2+7bMnyr4cUOpc7q3Ai6mR0q\nqR0wogDxOOdcqzRuZsh2aonSvAr1Okm7JMeZWbWZvV64sJxzrvVYX7meh2Y/xEm7tMx3vqXJenoD\n+IukFyV9W1LPQgflnHOtyYS3J7BL310Y2HNgsUOpl1oTCjP7q5mNBk4DhgAzJN0tyZ/Mds65FFpy\nthOkLMyWVALsTCiX+Ah4DfihpHtrWe42SYslzUiM6yNpkqS3JE2U1Csx7RJJcyTNltQyGmp3zrk8\nVm9Yzfg54zlx5InFDqXe0pRR/A54EzgK+JWZ7WVmV5nZV4A9aln8b4QmypMuBiaZ2XDgyTiMpJHA\nScDIuMxNsdDcOedarEfefIT9Bu5H3659ix1KvaU5EU8Hdjezc8zsxaxp++Rb0MyeAZZnjR4D3BH7\n7wCOjf3HAOPMrMLM5gNzgb1TxOecc81WS892gnQJxQpgY6PpknpJOhbAzD6pxzb7mdni2L8Y6Bf7\ntwUWJuZbCGxXj/U751yzsGztMp5+92mO3fnY2mduxtI8R3G5mT2YGTCzTySNBf7V0I2bmUmyfLPU\nNHLs2LEb+8vKyigrK2toKM451+jumXkPhw89nB4dezT5tsvLyykvL2+Udcks33kaJE03s92yxs0w\ns11TbUAaAjyamV/SbKDMzBZJGgA8ZWY7S7oYwMyujPM9TkikpmStz2qL2Tnniq3aqhl540j+8pW/\ncNDgg4odDpIws3o1MpUm6+mV+NDdUEk7xsLtV+qzsegR4PTYfzqb7kweAb4uqYOkHYBhQHaZiHPO\ntQgT5k6gS/suHDjowGKH0mBpEorvARXAvcA9wDrgvDQrlzQOeB7YSdJ7ks4ErgS+JOkt4JA4jJnN\nAu4DZgHjge/4rYNzrqW6fsr1fH/f77e4lmJrUmvWU3PjWU/Ouebu9SWv88U7v8j8C+bTsbR5NLbd\nkKynWguzJe0E/JjwVHZmfjOzQ+qzQeeca+3+MOUPnPu5c5tNItFQaWo93Q/cDNwCVMVxfknvnHM1\nWLpmKffNuo83v/tmsUNpNGkSigozu7ngkTjnXCvw51f+zHE7H8c2XbcpdiiNJk1C8aik84AHgfWZ\nkWa2rGBROedcC7ShagM3vnQj408eX+xQGlWahOIMQlbTj7PG79Do0TjnXAv2wKwH2Hnrndmt3261\nz9yC1JpQmNmQJojDOedaNDPjd5N/x2UHXVbsUBpdmtZju0r6X0l/jcPDJH258KE551zL8cLCF1i+\ndjlHDz+62KE0ujQP3P0N2ADsH4c/AH5VsIicc64Fun7y9VywzwW0a4VvR0izR0PN7CpCYoGZrS5s\nSM4517K8+8m7PDnvSc7Y44xih1IQaRKK9ZI6ZwYkDSVR+8k559q6G1+6kTN2P4PuHbsXO5SCSFPr\naSzwOLC9pLuB0YSaUM451+atWLeC26bexktnv1TsUAomVVtPkrYG9o2Dk83s44JGlT8Wb+vJOdds\nXPLEJSxevZjbjrmt2KHk1ZC2nnImFJJGmNkbkvYiPEeR2YABmNmr9dlgQ3lC4ZxrLhasWMCoP49i\n+rens12P5v1CzkIlFH81s7MllVND205mdnB9NthQnlA455qL0x46jcE9B/OLQ35R7FBqVZCEorny\nhMI51xxM/XAqR919FG99960WUYhd0DfcSTpPUu/EcG9J36nPxpxzrjUwMy6cdCGXHXRZi0gkGipN\n9dhzzGx5ZiD2n1O4kJxzrnl7fO7jLPx0Id/a81vFDqVJpEko2kmbHjWUVAK0L1xIzjnXfFVVV/GT\nJ37CVV+8ivYlbeNUmOY5ignAPZL+TKj59D+E5yqcc67NuX3a7fTu1JsxO40pdihNptbC7HgHcQ5w\naBw1CbjFzKpyL1U4XpjtnCuW1RtWM/yG4Tx00kPsvd3exQ6nTrzWk3PONYErnr6CWR/N4p4T7yl2\nKHXWkIQiZ9aTpPvN7KuSZrLlcxRmZq3rzRzOOZfHolWL+P2U37fqpjpyyffA3bZm9oGkwWx6Knsj\nM5tf4Nhq5HcUzrliOOfRc+jWoRvXHX5dsUOpl4LcUQCPAXsCvzSzU+sVmXPOtQIT357I43MfZ/q5\n04sdSlHkSyg6SjoZGC3peDa/qzAze7CwoTnnXPEtW7uMsx4+izuOvYNenXoVO5yiyJdQfBs4GegJ\nfKWG6Z5QOOdaNTPj3P87lxNHnsihnzm09gVaqXwJRX8z+7akV83sL00WkXPONRPjZo5jxuIZ3H7M\n7cUOpajyFWZPNbNRmf9NHFdOXpjtnGsK7614j73+shePn/I4ew7Ys9jhNFihCrOXSpoE7CDp0axp\nZmYNeixR0nzgU6AKqDCzvSX1Ae4FBgPzga+Z2ScN2Y5zztVVtVVz5sNncsE+F7SKRKKh8iUURxFq\nPf0DuJaswuxG2LYBZWa2LDHuYmCSmV0t6aI4fHEjbMs551K74cUbWF2xmosOuKjYoTQLaZrw6Gtm\nH0nqamarG23D0jzgc2a2NDFuNvAFM1ssqT9QbmY7Zy3nWU/OuYKZ9dEsDvrbQUz+1mR27LNjscNp\nNAV9HwUwTNIsYHbc2B6SbqrPxrIY8ISklyWdHcf1M7PFsX8x0K8RtuOcc6lsqNrAqQ+dyq8P/XWr\nSiQaKk3rsdcDRwAPA5jZNElfaIRtjzazDyX1BSbFu4mNzMwk+a2Dc67JXDjxQgZ0G8DZe55d+8xt\nSJqEAjNbIG12x1LZ0A2b2Yfx/0eSHgL2BhZL6m9miyQNAJbUtOzYsWM39peVlVFWVtbQcJxzbdz1\nk6/niXlP8NxZz5F1vmuRysvLKS8vb5R1pSmjeAD4HXADsA9wPqFs4ev13qjUBSgxs5WSugITgZ8D\nXwSWmtlVki4GepnZxVnLehmFc65RPfjGg5w//nyeO+s5BvcaXOxwCqKgzYzHrKHfE07iIpzUz08W\nQtd5o9IOwENxsBS4y8x+E6vH3gcMIkf1WE8onHON6YX3XmDMPWOYcMqEVl0V1t9H4Zxz9TB32VwO\n/NuB3DbmNo4cdmSxwymoQtd6cs65VufjNR9z5F1H8vOyn7f6RKKhPKFwzrU5ayvWMmbcGL468quc\ns9c5xQ6n2fOsJ+dcm1JVXcVJD5xEx9KO3HncnbRT27heLlRbT5mVdwJOAIYk5jczu6I+G3TOuWJZ\nV7mOkx88mU/Xf8pjxz/WZhKJhkpzlB4GxgAVwKrYNVpTHs451xRWrFvBkXcdSYlKeOwbj9GxtGOx\nQ2ox0jxwt52ZHV7wSJxzrkAWrVrEEf84gtEDR/OHI/9ASbuSYofUoqS5o3he0m4Fj8Q55wpg7rK5\njL5tNCeMOIEbjrrBE4l6yPfiohmxtwQYBswD1sdxZmZFSTy8MNs5l9arH77Kl+/+MmPLxrb52k2F\nKszOvCfb2PxdFJlxzjnXbP1n3n/4+gNf509f/hPHjzi+2OG0aGma8LjTzE6tbVxT8TsK51w+VdVV\nXPnslfzhxT9w74n3UjakrNghNQsFrR4LfDZrY6XAXvXZmHPOFdLCTxdyyoOnIIlXznmF7XtsX+yQ\nWoWchdmSLpW0EthV0spMR2j6+5Emi9A551J46I2H2Osve3HY0MN44tQnPJFoRGmynq7Mbuq7mDzr\nyTmXtKZiDT+a8CMmvD2Bu0+4m32337fYITVLBWk9VlKmvV1RQ+G1mb1anw02lCcUzrmMqR9O5ZSH\nTmGP/ntw01E30bNTz2KH1GwVKqEoJyQQnQllEtPjpN2Al81sv/pssKE8oXDOLV61mJ/952c8+taj\nXPOlazh196LUrWlRCtLMuJmVmdnBwAfAnma2l5ntBYyK45xzrkmtr1zPNc9dwy437UKPjj2Y/d3Z\nnkg0gTS1nnY2s8zDd5jZTEkjChiTc85txsx4+M2H+fHEHzOi7wie/+bzDN9qeLHDajPSJBTTJd0C\n/INQXvH/gNcKGpVzzkXPLXiOy8ovY9GqRdx09E0cNvSwYofU5qSp9dQZOBc4MI76L3Czma0rcGy5\n4vEyCudauarqKh5+82Guff5aFq9ezIX7X8i39vwWpe3SXNu6mvg7s51zrcLairXcPu12rpt8HX06\n9+HC/S/kuJ2P84b8GkFBnsyWdL+ZfVXSTLasHlu0RgGdc63PvOXzuH3a7fzplT+xz3b7cNuY2zhg\n0AFI9TqvuUaW7z7ugvj/y00RiHOubVm+djn3vX4fd06/kzeXvsnXRn6N8tPLGdHX68o0N2nKKL4F\nPG1mc5ompPw868m5lmtD1Qb+Peff3Dn9Tp545wkOH3o4p+x2CkfseAQdSjoUO7xWrdCNAg4C/ixp\nB+BlQmH2M2Y2rT4bdM61LQs/Xcj4OeP599x/89S8p9i9/+6cutup3DrmVnp16lXs8FwKqQuzY+2n\nc4AfA9uaWVFKl/yOwrnmbX3leiYvnMy/5/yb8XPH88HKDzh8x8M5cscjOXzo4fTt2rfYIbZJBa31\nJOl/gf2BbsA04BngWTMrytPZnlA417x8tPojnn/veZ5/73mee+85pi2axs5b78xRw47iqGFH8flt\nP++1lqKqKli7NnRr1mzZn29cmmkXXwzf/GbN2y50QjEVqAD+j5Dt9LyZrc+7UAF5QuFc8Sxds5Tp\ni6fz2uLXmLZoGs+/9zxLVi9h3+33Zf+B+zN64Gj23m5vunfsXuxQU6usTHcybowTekUFdO68qevS\npeb/9Z3Wrx/0zNEuYsGfo5DUAxhNeOjuq8BiMzugPhtsKE8onCu8ZWuXMWfpHOYsm8PMJTM3Jg6r\nNqxit367sds2u7F7/93Zb/v9GNl3ZKPeMZjB+vV1v/LO7k97Qq+uTncyruvJu6ZxHTtCsWr8FvqO\nYldCAnEQ8DlgIfBfM7usPhtsKE8onGu49ZXreX/l+7y34j0WrFjAvE/mMWfZnI2JQ0VVBcO2Gsaw\nPsMY2XcXRvTZjeE9dmfr0sGsW6fNTsa5Tsxp56lpmfbttzzZ5joZ13V89rj27Yt38m5KhU4oMllO\nzxCaF99Qnw2lDkg6ArgeKAFuMbOrsqZ7QhGVl5dTVlZW7DCahbZyLKqrN11tr1u3+f81a4xP1qzh\nv5MfodcOO/DRmsV8vHYxyzYsYnnFYlZULeKT6vf4VO+xTsvoXDmATusH0mHdQEpXD6F0xTC0bBi2\ndBgblm/DurWbEoTS0ppPxDV1tc2T62Se7Eoa6QalrXwv0iho9VgzO7o+K64PSSXADcAXgfeBlyQ9\nYmZvNFUMLYn/CDYp9LEwC/nL69en69at27J/3bot+5PdmnWVrKlYzZrKVaytWs3aqpWss09ZxwrW\nawUV7T6lqnQFJV1XUNLlE9RtKeq8DOu0lOqOy6jssBQh2j3Vge7770xX60c3+tG9XT96loxgYPsy\ntuk8kP6dB7FNl3507VKy8cTcqVP+k3tjnbibmv9GGke+JjxmJAaN0HLsxuECNeGxNzDXzObHGO4B\njgE8oWimzMJVbqarqtr0P1dXXR0KEKuqNv1P9ldWbtlVVYUTdWVlzf+ffRZ++cvNx1VUwIYKY/2G\najZUVLG+ooqKyirWb6hiQ2VVGFdZyYaKKjZUVrKhsoqKysowX1UFFdUVbKispKK6gsqqSko6VFDa\nsYL2HSso7bhhY1fSIXTtOqynXfv1tOuwHrVfh0rXQ+l6KF2HlazDStZS1W4N1V3WUtl1LZVaQwVr\n2WCrWW+rqLIKOpV0pUtpNzqXdqVr+27079iTXp160qtzT3p36UHvLj3p1akvvToNY6vOW9Gncx+2\n6hL/d96Kzu07M3bsWMaOHVvsr4ZrRfLdUXwl/v9O/H8nIbE4uYDxbAe8lxheCOyTPdM2369bqyK5\nc6pyZ2Hlz9zaNLW2XLBN07ec0bL6rIbZLDPC2GLu9S++zW+XPJ89Z+hPbDe5XktuC8v8Zc23aS7L\nHt64jG1cPwqdIPzPDCt7OM6LoXbxf2Zcu2qUWBeqjtOq4zaqN443quNwdYyjmorKNfy38lpM1ViH\nKqxDmM+oDlfZlNBOJZv+q4QSlVCiUkrblVLSrmTj/y4qoX1JezqUtqd9SSkdStvTsaQ9pSWltG/X\nng4lHXJ2HUs60qm0Ex1Luyf6w//OpZ3p0r4Lndt3pnNp543/u3XoRrcO3ehU2snbNnLNUpoyimlm\ntkfWuKlmNqrRg5FOAI4ws7Pj8CnAPmb2vcQ8XkDhnHP1UMgmPCTpADN7Ng6MZvNsqMb0PjAwMTyQ\ncFexUX131DnnXP2kSSjOAv4mKfMYxyfAmQWK52VgmKQhhPdynwR8o0Dbcs45l0Jd2nrqCWBmKwoa\nkHQkm6rH3mpmvynk9pxzzuWXpoyiE3ACMIRNdyBmZlcUNjTnnHPNQbsU8zwMjCG097QqdqsLGVQ2\nSddIekPSa5IeTGSDIekSSXMkzZbU6t+6Lumrkl6XVCVpz6xpbepYQHhAM+7vHEkXFTuepiTpNkmL\nk1XZJfWRNEnSW5ImSmoT7XhLGijpqfjbmCnp/Di+zR0PSZ0kTZE0TdIsSb+J4+t/LMwsbwfMrG2e\nQnfAl4B2sf9K4MrYP5LQom17wh3P3Mx8rbUDdgaGA08BeybGt8VjURL3c0jc72nAiGLH1YT7fyAw\nCpiRGHc18JPYf1Hmt9LaO6A/sEfs7wa8CYxow8ejS/xfCkwGDmjIsUhzR/G8pKK+H9vMJplZdRyc\nAmwf+48BxplZhYWH9OYSHtprtcxstpm9VcOkNncsSDygaWYVQOYBzTbBzJ4BlmeNHgPcEfvvAI5t\n0qCKxMwWWXyZmpmtIjykux1t93isib0dCBdUy2nAsUiTUBwIvBJvV2bEbnodYm5sZwH/jv3bsnn1\n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\nAElFTkSuQmCC\n", + "text/plain": [ + "<matplotlib.figure.Figure at 0x7f91e4fbe6d0>" + ] + }, + "metadata": {}, + "output_type": "display_data" + } + ], + "source": [ + "from __future__ import division\n", + "%matplotlib inline\n", + "from matplotlib.pyplot import plot,xlabel,ylabel,show,title,subplot\n", + "\n", + "\n", + "from math import log\n", + "def log2(x):\n", + " return log(x,2)\n", + "\n", + "\n", + "#Channel Capacity theorem\n", + "P_NoB_dB = range(-20,30) #Input signal-to-noise ratio P/NoB, decibels\n", + "P_NoB = [10**(xx/10) for xx in P_NoB_dB]\n", + "k =7# # for M-ary PCM system#\n", + "Rb_B = [log2(1+(12/k**2))*yy for yy in P_NoB]##bandwidth efficiency in bits/sec/Hz\n", + "C_B = [log2(1+xxx) for xxx in P_NoB]##ideal system according to Shannon's channel capacity theorem\n", + "#plot\n", + "plot(P_NoB_dB,C_B)\n", + "plot(P_NoB_dB,Rb_B)\n", + "xlabel('Input signal-to-noise ratio P/NoB, decibels')\n", + "ylabel('Bandwidth efficiency, Rb/B, bits per second per hertz')\n", + "title('Figure 5.9 Comparison of M-ary PCM with the ideal ssytem')\n", + "show()" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "## Example5.3 page 192" + ] + }, + { + "cell_type": "code", + "execution_count": 1, + "metadata": { + "collapsed": false + }, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "Channel width = 32000.00 Hz\n", + "Output Signal to noise ratio = 40.80 dB\n" + ] + } + ], + "source": [ + "from __future__ import division\n", + "\n", + "#Channel Bandwidth B\n", + "n = 8 # no. of bits used to encode\n", + "W = 4000 # the message signal banwidth in Hz\n", + "B = n*W#\n", + "print 'Channel width = %.2f Hz'%B\n", + "SNRo = 6*n - 7.2#\n", + "print 'Output Signal to noise ratio = %.2f dB'%SNRo\n" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "## Example 5.5 Page 207" + ] + }, + { + "cell_type": "code", + "execution_count": 4, + "metadata": { + "collapsed": false + }, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "Maximum output signal-to-nosie = -5.17 dB for Delta Modualtion:\n" + ] + } + ], + "source": [ + "from __future__ import division\n", + "from numpy import pi,log10\n", + "\n", + "a0 = 1 # The amplitude of sinusoidal signal\n", + "f0 = 4000 # the frequency of sinusoidal signal in Hz:\n", + "fs = 8000 # the sampling frequency in samples per seconds\n", + "Ts = 1/fs##Sampling interval\n", + "delta = 2*pi*f0*a0*Ts##Step size to avoid slope overload\n", + "Pmax = (a0**2)/2##maximum permissible output power\n", + "sigma_Q = (delta**2)/3##Quantization error or noise variance\n", + "W = f0##Maximum message bandwidth\n", + "N = W*Ts*sigma_Q# #Average output noise power\n", + "SNRo = Pmax/N# # Maximum output signal-to-noise ratio\n", + "SNRo_dB = 10*log10(SNRo)#\n", + "print 'Maximum output signal-to-nosie = %.2f dB for Delta Modualtion:'%SNRo_dB" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "## Example 5.13(a) page 215" + ] + }, + { + "cell_type": "code", + "execution_count": 1, + "metadata": { + "collapsed": false + }, + "outputs": [ + { + "data": { + "image/png": "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\n", + "text/plain": [ + "<matplotlib.figure.Figure at 0x7f4d48061750>" + ] + }, + "metadata": {}, + "output_type": "display_data" + } + ], + "source": [ + "from __future__ import division\n", + "from numpy import arange,sign\n", + "from sympy import log\n", + "%matplotlib inline\n", + "from matplotlib.pyplot import plot,xlabel,ylabel,show,title,subplot\n", + "\n", + "#Caption:u-Law companding\n", + "#Figure5.13(a)Mulaw companding Nonlinear Quantization\n", + "#Plotting mulaw characteristics for different \n", + "#Values of mu\n", + "\n", + "x = arange(0,0.01+1,0.01)# #Normalized input\n", + "mu = [0,5,255]##different values of mu\n", + "def mulaw(x,mu):\n", + " \"\"\"\n", + " F(x) = sgn(x) ln(1 + μ|x|) / ln (1 + μ)\n", + " -1 <= x <= 1\n", + " \"\"\"\n", + " f=sign(x)*log(1+mu*abs(x))/log(1+mu)\n", + " return f\n", + "Cx=[]\n", + "\n", + "for i in range(0,len(mu)):\n", + " Cx.append(mulaw(x[i],mu[i]))\n", + " plot(Cx)\n", + "title('Compression Law: u-Law companding')\n", + "xlabel('Normalized Input |x|')\n", + "ylabel('Normalized Output |c(x)|')\n", + "show()" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "## Example 5.13(b) page 216" + ] + }, + { + "cell_type": "code", + "execution_count": 1, + "metadata": { + "collapsed": false + }, + "outputs": [ + { + "data": { + "image/png": "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\n", + "text/plain": [ + "<matplotlib.figure.Figure at 0x7f2ef2379c10>" + ] + }, + "metadata": {}, + "output_type": "display_data" + } + ], + "source": [ + "from __future__ import division\n", + "from numpy import arange,sign,log\n", + "\n", + "%matplotlib inline\n", + "from matplotlib.pyplot import plot,xlabel,ylabel,show,title,subplot\n", + "\n", + "#Caption:A-law companding\n", + "#Plotting A-law characteristics for different \n", + "#Values of A\n", + "\n", + "x = arange(0,0.01+1,0.01)# #Normalized input\n", + "A = [1,2,87.56]##different values of A\n", + "\n", + "\n", + "def Alaw(x,a):\n", + " \"\"\"F(x) = sgn(x) A |x| / (1 + lnA) for 0 ≤|x| < 1/A\n", + " \n", + "= sgn(x) (1+ln A|x|) /(1 + lnA) for 1/A ≤|x| ≤ 1\n", + "\"\"\"\n", + " if abs(x) >= 0 and abs(x) < 1/a:\n", + " f = sign(x)*a*abs(x)/(1+log(a))\n", + " elif abs(x) >= 1/a and abs(x) <=1: \n", + " f = sign(x)*(1+log(a*abs(x))/(1+log(a)))\n", + " else:\n", + " f = 'Wrong parameters'\n", + " return f\n", + "Cx=[]\n", + "for i in range(0,len(A)):\n", + " #[Cx(i,:),Xmax(i)] = Alaw(x,A(i))#\n", + " Cx.append(Alaw(x[i],A[i]))\n", + " plot(Cx)\n", + " \n", + "title('Compression Law: A-Law companding')\n", + "xlabel('Normalized Input |x|')\n", + "ylabel('Normalized Output |c(x)|')\n", + "show()" + ] + } + ], + "metadata": { + "kernelspec": { + "display_name": "Python 2", + "language": "python", + "name": "python2" + }, + "language_info": { + "codemirror_mode": { + "name": "ipython", + "version": 2 + }, + "file_extension": ".py", + "mimetype": "text/x-python", + "name": "python", + "nbconvert_exporter": "python", + "pygments_lexer": "ipython2", + "version": "2.7.9" + } + }, + "nbformat": 4, + "nbformat_minor": 0 +} diff --git a/Digital_Communications_by_S._Haykin/Chapter6_zB6BWD2.ipynb b/Digital_Communications_by_S._Haykin/Chapter6_zB6BWD2.ipynb new file mode 100644 index 00000000..42bdaa3f --- /dev/null +++ b/Digital_Communications_by_S._Haykin/Chapter6_zB6BWD2.ipynb @@ -0,0 +1,512 @@ +{ + "cells": [ + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "# Chapter 6 Baseband Shaping For Data Transmission" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "## Example 6.1(a) page 235" + ] + }, + { + "cell_type": "code", + "execution_count": 2, + "metadata": { + "collapsed": false + }, + "outputs": [ + { + "data": { + "image/png": "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\n/6xNghwp9/1KAAAAAElFTkSuQmCC\n", + "text/plain": [ + "<matplotlib.figure.Figure at 0x7fc3cc0e5790>" + ] + }, + "metadata": {}, + "output_type": "display_data" + } + ], + "source": [ + "from __future__ import division\n", + "%matplotlib inline\n", + "from matplotlib.pyplot import plot,grid,title,show\n", + "\n", + "#Figure 6.1(c):Discrete PAM Signals Generation\n", + "# [3].BiPolar NRZ\n", + "#page 235\n", + "x = [0, 1, 1, 0, 0, 1 ,0 ,0 ,1 ,1]\n", + "binary_negative = [-1, -1 ,-1 ,-1 ,-1 ,-1 ,-1 ,-1 ,-1, -1]\n", + "binary_zero = [0 ,0 ,0 ,0 ,0, 0 ,0 ,0 ,0 ,0]\n", + "binary_positive = [1, 1 ,1 ,1 ,1 ,1 ,1 ,1 ,1 ,1]\n", + "L = len(x)\n", + "L1 = len(binary_negative)\n", + "total_duration = L*L1\n", + "#plotting\n", + "for i in range(0,L):\n", + " if(x[i]==0):\n", + " plot(range(i*L-L,i*L),binary_zero)\n", + " \n", + " elif((x[i]==1) and (x[i-1]!=1)):\n", + " plot(range(i*L-L,i*L),binary_positive)\n", + " \n", + " else:\n", + " plot(range(i*L-L,i*L),binary_negative)\n", + " \n", + "grid()\n", + "title('BiPolar NRZ')\n", + "show()" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "## Example6.2 Page 241" + ] + }, + { + "cell_type": "code", + "execution_count": 1, + "metadata": { + "collapsed": false + }, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "Precoder output in binary form:\n", + "1 \t1 \t0 \t0 \t1 \t0 \t0 \t\n", + "\n", + "Precoder output in volts:\n", + "1 \t1 \t-1 \t-1 \t1 \t-1 \t-1 \t\n", + "\n", + "Duobinary coder output in volts:\n", + "2 \t2 \t0 \t-2 \t0 \t0 \t-2 \t\n", + "\n", + "Recovered original sequence at detector oupupt:\n", + "0 \t0 \t1 \t0 \t1 \t1 \t0 \t" + ] + } + ], + "source": [ + "from __future__ import division\n", + "\n", + "b = [0,0,1,0,1,1,0]##input binary sequence:precoder input\n", + "a = [1^b[0]]\n", + "if(a[0]==1):\n", + " a_volts=[1]\n", + "\n", + "for k in range(1,len(b)):\n", + " a.append(a[(k-1)]^b[(k)])\n", + " if(a[(k)]==1):\n", + " a_volts.append(1)\n", + " else:\n", + " a_volts.append(-1)\n", + " \n", + "print 'Precoder output in binary form:'\n", + "for aa in a:\n", + " print aa,'\\t', \n", + "print '\\n'\n", + "print 'Precoder output in volts:'\n", + "for bb in a_volts:\n", + " print bb,'\\t',\n", + "print '\\n'\n", + "#Duobinary coder output in volts\n", + "c= [1+ a_volts[0]]\n", + "for k in range(1,len(a)):\n", + " c.append(a_volts[(k-1)]+a_volts[(k)])\n", + "print 'Duobinary coder output in volts:'\n", + "for cc in c:\n", + " print cc,'\\t',\n", + "print '\\n' \n", + "#Duobinary decoder output by applying decision rule\n", + "b_r=[]\n", + "for k in range(0,len(c)):\n", + " if(abs(c[(k)])>1):\n", + " b_r.append(0)\n", + " else:\n", + " b_r.append(1)\n", + "print 'Recovered original sequence at detector oupupt:'\n", + "for brr in b_r:\n", + " print brr,'\\t'," + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "## Example6.3 page 246 " + ] + }, + { + "cell_type": "code", + "execution_count": 2, + "metadata": { + "collapsed": false + }, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "Modulo-2 adder output:\n", + "1 \t1 \t0 \t1 \t1 \t0 \t0 \t0 \t0 \t1 \t0 \t\n", + "Delay element output:\n", + "1 \t1 \t0 \t1 \t1 \t0 \t0 \t0 \t0 \t1 \t\n", + "differential encoder bipolar output in volts:\n", + "1 \t1 \t0 \t1 \t1 \t0 \t0 \t0 \t0 \t1 \t" + ] + } + ], + "source": [ + "from __future__ import division\n", + "#for generating bipolar format\n", + "#Refer Table 6.4\n", + "\n", + "x = [0,1,1,0,1,0,0,0,1,1]##input binary sequence:precoder input\n", + "y= [1]\n", + "for k in range(1,len(x)+1):\n", + " y.append(x[(k-1)]^y[(k-1)])\n", + "\n", + "y_delay = y[0:-1]\n", + "print 'Modulo-2 adder output:'\n", + "for yy in y:\n", + " print yy,'\\t',\n", + "print '' \n", + "print 'Delay element output:'\n", + "for yyy in y_delay:\n", + " print yyy,'\\t',\n", + "print '' \n", + "z=[]\n", + "for k in range(0,len(y_delay)):\n", + " z.append(y_delay[k])\n", + "print 'differential encoder bipolar output in volts:'\n", + "for zz in z:\n", + " print zz,'\\t'," + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "## Example 6.4 Page 247" + ] + }, + { + "cell_type": "code", + "execution_count": 3, + "metadata": { + "collapsed": false + }, + "outputs": [ + { + "data": { + "image/png": "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\nLJaQ+D+L1IOnq28nhgAAAABJRU5ErkJggg==\n", + "text/plain": [ + "<matplotlib.figure.Figure at 0x7f06f46b5e10>" + ] + }, + "metadata": {}, + "output_type": "display_data" + } + ], + "source": [ + "from __future__ import division\n", + "from numpy import arange,sinc,sin,pi\n", + "%matplotlib inline\n", + "from matplotlib.pyplot import plot,grid,title,show,xlabel,ylabel\n", + "\n", + "\n", + "\n", + "#Different Line Coding Techniques\n", + "#[1].NRZ Polar Format [2].NRZ Bipolar format\n", + "#[3].NRZ Unipolar format [4]. Manchester format\n", + "\n", + "#[1]. NRZ Polar format\n", + "a = 1 # The Amplitude value\n", + "fb = 1 # The bit rate\n", + "Tb = 1/fb# #bit duration\n", + "f = arange(0,1/(100*Tb)+2/Tb,1/(100*Tb))\n", + "Sxxf_NRZ_P=[]\n", + "Sxxf_NRZ_BP=[]\n", + "Sxxf_NRZ_UP=[]\n", + "Sxxf_Manch=[]\n", + "for i in range(0,len(f)):\n", + " Sxxf_NRZ_P.append((a**2)*Tb*(sinc(f[i]*Tb)**2))\n", + " Sxxf_NRZ_BP.append((a**2)*Tb*((sinc(f[i]*Tb))**2)*((sin(pi*f[i]*Tb))**2))\n", + " if (i==0):\n", + " Sxxf_NRZ_UP.append((a**2)*(Tb/4)*((sinc(f[i]*Tb))**2)+(a**2)/4)\n", + " else:\n", + " Sxxf_NRZ_UP.append((a**2)*(Tb/4)*((sinc(f[i]*Tb))**2))\n", + " \n", + " Sxxf_Manch.append((a**2)*Tb*(sinc(f[i]*Tb/2)**2)*(sin(pi*f[i]*Tb/2)**2))\n", + "\n", + " \n", + "\n", + "#Plotting\n", + "plot(f,Sxxf_NRZ_P)\n", + "plot(f,Sxxf_NRZ_BP)\n", + "plot(f,Sxxf_NRZ_UP)\n", + "plot(f,Sxxf_Manch)\n", + "xlabel('f*Tb------->')\n", + "ylabel('Sxx(f)------->')\n", + "title('Power Spectral Densities of Different Line Codinig Techniques')\n", + "grid()\n", + "show()\n", + "#Result\n", + "#Enter the Amplitude value:1\n", + "#Enter the bit rate:1 " + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "## Example 6.6 page 249" + ] + }, + { + "cell_type": "code", + "execution_count": 1, + "metadata": { + "collapsed": false + }, + "outputs": [ + { + "data": { + "image/png": "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\nXII4JV2CMMk2dSo0bgw72aDrvDruOBg61HcUJgq8JQlVXQVcALwCTAeGqOqMYF6oXsFu1wAbAg+K\nyFQRKchFFisuF5Ootra98AJ06xbfO4Djeu66dXN1iZUra94vru3LVNLblwmfNQlUdTQwuspjD1f6\n/9nA2fmOy0THCy/Ao4/6jqLwtG7t7sAeP96NdDKFy1tNIkxWk0imirmEFiyAtXx2jBao225z63Y8\n/HDt+5p4inpNwpgavfACdO1qCcKX446DF1+E1at9R2J8sj+/GEhyv2hNbauoR8RZnM/d1lvD5pu7\n+1TSiXP7MpH09mXCkoSJpM8/d91NBx/sO5LCZqOcjNUksvDTT/DRR27xm++/dyNuiorclBG77ALr\nrpvzEArG7bfDrFlWtPZtxgw47DD44gvr9gtLebn7APT55+69ZMUKaNoUNt4YdtjBzS6Qr591JjUJ\nr6Obom7VKkil4OWXYcwYtxjLn/8MrVq55ACwdCnMn+/+mLbayq3qddxxsOee8R22GQVDhsDNN/uO\nwuy4IzRr5ubN2mcf39HE19Kl7ops6FCYOBE23NB157Vo4e4DWr4clixxH4x+/NHdzNixIxx/PGy6\nqefgVTX2X64Z4Vm0SPW661RbtVLde2/Vvn1Vy8pUV65M/5wVK1QnTVK9/HLVbbZR3XNP1UGDan5O\npsaPH1//g0RUdW2bO1d1003D+dn5loRzd801qn//e/XfS0L7alLf9n36qerZZ6s2a6barZvqkCGq\nX31V83OWLHHvHaecorrBBqrHHKP6+uuq5eX1CqVawXtnje+vdgFZyZIlcMkl7mph0SI3FcR778EV\nV8Buu0HDGq67GjWCdu3gpptg9my45hp44AG3BkK2i8sXumefdVdjNf28Tf706OGu7GyUU+a++w7O\nPde9J7RsCZ9+CsOGwQknuKuHmmyyiZuJ98knXS/FkUe6Y+2/P4wdm5/4/6C2LBKHL+p5JbFyperd\nd6s2b656/vmqCxfW63C/Ky9XHTZMdautVLt3V/3223COm3S77aaaSvmOwlS2++7u06ypWXm56sCB\nqi1aqF5wger334dz3FWrVAcPdr0UXbqozpkTznGxK4navfsu7LGHqzu89Rbcf78b9hcGETeE85NP\n3KeJ3Xazq4razJrlrug6dPAdiamsRw8YNMh3FNH2009wyilwyy2uF+K++9bULuurQQPo3t29l+y7\n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\n10128cW+IzFhO+YYWLrUzTwaJ4MHw4gRbv6wtezdsFpWk4gpVTev/bJlrh81Dneav/aaWy9i+vT4\n9l2b9B57DJ59Fl55xXckmZkxw92r8+qrsHuNU4cml9UkEkzEjU+fPRvuu893NLVTheuvh6uvtgSR\nVKec4u5/+eAD35HU7qef3JX4LbcUboLIlCWJGEjXL9q0qatP9O0Lb7+d35iyNX48LF4MJ574x8eT\n3udbSO1be23XlXjjjf7iyUTFVfj++7t/a5L085cJSxIxt/XW7jK/e3f3JhxV11/vFoNq6PXOHJNr\n557rhjdPmuQ7kvTuvhs+/RTuv993JPFgNYmEuPpqN23H2LHReyN+7TXo3dv1AUctNhO+Rx5xtYnX\nXvMdyf966y033cakSVBc7Dsa/6wmUUCuu87dJXrllb4j+aPVq10XxM03W4IoFGecAZ9/7pYPjpJF\ni1x354ABliCyYUkiBjLpF23QwC0mMnhwHZcozJEBA2D99dPP9Jr0Pt9CbF+jRq4uceml7kNCFFTc\nMNerV+brKEDyz18mLEkkSPPm7k7sXr3cqCfffv7ZdYPdeWc8huia8Jxwgluz/bHHfEfiCtXnnQcb\nbeTqYiY7VpNIoIcecsNj33nHfYr35YorXLfD00/7i8H4M20aHH64GxbbvLm/OO68EwYOdDW79dbz\nF0cUZVKTsCSRQKruamLBAnj5ZT+1gA8/hEMPdW8ULVvm//VNNPTpA7/+6orZPowY4f4WJk5008GY\nP7LCdUJk2y9acaNdxWV2vvPn6tVuJb2+fWtPEEnv8y309t1wA4wc6We6jmnT3JolFfOF1UXSz18m\nLEkkVKNGbhji5MluZFE+3XILrLNO7TcqmeTbYAN49FEoLXXriOTLnDlw5JFufYh99snf6yaRdTcl\n3JdfQocObmruCy/M/eu9+y507erWGGjdOvevZ+KhVy83z9jAgbkfxLBggfudv/pq+6BSG+tuMmy+\nuVvJ7o474MEHc/taX38NPXq4wrklCFPZnXdCWZn73cilr76Cww6DCy6wBBEWb0lCRDYSkbEiMltE\nXhWRomr22UJExovIJyLysYhc5CNW3+rbL1pc7BLFzTfDww/XunudrFjh7oU46STo1i3z5yW9z9fa\n56y7rrt/59pr3V3PufDFF25W15NOcutbhCHp5y8TPq8kLgPGqup2wLhgu6qVwN9VdSegPXC+iOyY\n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\n", + "text/plain": [ + "<matplotlib.figure.Figure at 0x7fd838395dd0>" + ] + }, + "metadata": {}, + "output_type": "display_data" + } + ], + "source": [ + "from __future__ import division\n", + "from numpy import arange,sinc,sin,pi\n", + "%matplotlib inline\n", + "from matplotlib.pyplot import plot,grid,title,show,xlabel,ylabel\n", + "\n", + "\n", + "#Figure 6.6(b): Ideal Solution for Intersymbol Interference\n", + "rb = 1 # The bit rate\n", + "Bo = rb/2#\n", + "t =arange(-3,1/100+3,1/100)\n", + "x = sinc(2*Bo*t)\n", + "plot(t,x)\n", + "xlabel('t------>')#\n", + "ylabel('p(t)------->')#\n", + "title('SINC Pulse for zero ISI')\n", + "grid()\n", + "show()" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "## Example 6.7 page 250" + ] + }, + { + "cell_type": "code", + "execution_count": 3, + "metadata": { + "collapsed": false + }, + "outputs": [ + { + "data": { + "image/png": "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\n", + "text/plain": [ + "<matplotlib.figure.Figure at 0x7efc2eb58310>" + ] + }, + "metadata": {}, + "output_type": "display_data" + } + ], + "source": [ + "from __future__ import division\n", + "from numpy import arange,sinc,sin,pi,zeros,cos\n", + "%matplotlib inline\n", + "from matplotlib.pyplot import plot,grid,title,show,xlabel,ylabel,legend\n", + "\n", + "#Figure6.7(b):Practical Solution for Intersymbol Interference\n", + "#Raised Cosine Spectrum\n", + "\n", + "rb = 1 # The bit rate\n", + "Tb =1/rb#\n", + "t =arange(-3,1/100+3,1/100)\n", + "Bo = rb/2#\n", + "Alpha =0# #Intialized to zero\n", + "x =t/Tb#\n", + "p=zeros([3,len(t)])\n", + "for j in range(0,3):\n", + " for i in range(0,len(t)):\n", + " if((j==2) and ((t[i]==0.5) or (t[i]==-0.5))):\n", + " p[j,i] = sinc(2*Bo*t[i])\n", + " else:\n", + " num = sinc(2*Bo*t[i])*cos(2*pi*Alpha*Bo*t[i])\n", + " den = 1-16*(Alpha**2)*(Bo**2)*(t[i]**2)+0.01\n", + " p[j,i]= num/den\n", + " \n", + " \n", + " Alpha = Alpha+0.5#\n", + "\n", + " \n", + "plot(t,p[0,:])\n", + "plot(t,p[1,:])\n", + "plot(t,p[2,:])\n", + "xlabel('t/Tb------>')\n", + "ylabel('p(t)------->')\n", + "title('RAISED COSINE SPECTRUM - Practical Solution for ISI')\n", + "legend(['ROlloff Factor =0','ROlloff Factor =0.5','ROlloff Factor =1'])\n", + "grid()\n", + "show()\n", + "#Result\n", + "#Enter the bit rate:1" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "## Example 6.9 Page 254" + ] + }, + { + "cell_type": "code", + "execution_count": 3, + "metadata": { + "collapsed": false + }, + "outputs": [ + { + "data": { + "image/png": "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\njuM4qfw/WG7FB0YOBAAAAAAASUVORK5CYII=\n", + "text/plain": [ + "<matplotlib.figure.Figure at 0x7ff3f5724410>" + ] + }, + "metadata": {}, + "output_type": "display_data" + } + ], + "source": [ + "from __future__ import division\n", + "from numpy import arange,sinc,sin,pi,cos\n", + "%matplotlib inline\n", + "from matplotlib.pyplot import plot,subplot,grid,title,show,xlabel,ylabel\n", + "\n", + "\n", + "#Caption:Frequency response of duobinary conversion filter\n", + "#Figure6.9:Frequency Response of Duobinary Conversion filter\n", + "#(a)Amplitude Response\n", + "#(b)Phase Response\n", + "rb = 8 # the bit rate\n", + "Tb =1/rb# #Bit duration\n", + "f = arange(-rb/2,1/100+rb/2,1/100)\n", + "Amplitude_Response = [abs(2*cos(pi*ff*Tb)) for ff in f]\n", + "Phase_Response = [-(pi*ff*Tb) for ff in f]\n", + "subplot(3,1,1)\n", + "plot(f,Amplitude_Response)\n", + "xlabel('Frequency f---->')\n", + "ylabel('|H(f)| ----->')\n", + "title('Amplitude Repsonse of Duobinary Singaling')\n", + "subplot(3,1,3)\n", + "plot(f,Phase_Response)\n", + "xlabel(' Frequency f---->')\n", + "ylabel(' <H(f) ----->')\n", + "title('Phase Repsonse of Duobinary Singaling')\n", + "show()" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "## Example 6.15 page 259" + ] + }, + { + "cell_type": "code", + "execution_count": 1, + "metadata": { + "collapsed": false + }, + "outputs": [ + { + "data": { + "image/png": "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\n", + "text/plain": [ + "<matplotlib.figure.Figure at 0x7f88fc7750d0>" + ] + }, + "metadata": {}, + "output_type": "display_data" + } + ], + "source": [ + "from __future__ import division\n", + "%matplotlib inline\n", + "from matplotlib.pyplot import plot,grid,title,xlabel,ylabel,show,legend,subplot\n", + "from numpy import arange,cos,pi,sinc,sin\n", + "\n", + "\n", + "#Caption:Frequency response of modified duobinary conversion filter\n", + "#Figure 6.15: Frequency Response of Modified duobinary conversion filter\n", + "#(a)Amplitude Response\n", + "#(b)Phase Response\n", + "rb = 8# the bit rate\n", + "Tb =1/rb# #Bit duration\n", + "f = arange(-rb/2,1/100+rb/2,1/100)\n", + "Amplitude_Response = [abs(2*sin(2*pi*ff*Tb)) for ff in f]\n", + "Phase_Response = [-(2*pi*ff*Tb) for ff in f]\n", + "subplot(3,1,1)\n", + "plot(f,Amplitude_Response)\n", + "xlabel('Frequency f---->')\n", + "ylabel('|H(f)| ----->')\n", + "title('Amplitude Repsonse of Modified Duobinary Singaling')\n", + "grid()\n", + "subplot(3,1,3)\n", + "plot(f,Phase_Response)\n", + "xlabel(' Frequency f---->')\n", + "ylabel(' <H(f) ----->')\n", + "title('Phase Repsonse of Modified Duobinary Singaling')\n", + "grid()\n", + "show()" + ] + } + ], + "metadata": { + "kernelspec": { + "display_name": "Python 2", + "language": "python", + "name": "python2" + }, + "language_info": { + "codemirror_mode": { + "name": "ipython", + "version": 2 + }, + "file_extension": ".py", + "mimetype": "text/x-python", + "name": "python", + "nbconvert_exporter": "python", + "pygments_lexer": "ipython2", + "version": "2.7.9" + } + }, + "nbformat": 4, + "nbformat_minor": 0 +} diff --git a/Digital_Communications_by_S._Haykin/Chapter7_iOFdfcy.ipynb b/Digital_Communications_by_S._Haykin/Chapter7_iOFdfcy.ipynb new file mode 100644 index 00000000..3fc2f580 --- /dev/null +++ b/Digital_Communications_by_S._Haykin/Chapter7_iOFdfcy.ipynb @@ -0,0 +1,976 @@ +{ + "cells": [ + { + "cell_type": "markdown", + "metadata": { + "collapsed": true + }, + "source": [ + "# Chapter 7 Digital Modulation Techniques" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "## Example 7.01 page 294" + ] + }, + { + "cell_type": "code", + "execution_count": 1, + "metadata": { + "collapsed": false + }, + "outputs": [ + { + "data": { + "image/png": "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\n", + "text/plain": [ + "<matplotlib.figure.Figure at 0x7fa9141608d0>" + ] + }, + "metadata": {}, + "output_type": "display_data" + } + ], + "source": [ + "from __future__ import division\n", + "from numpy import arange, sin, pi,zeros\n", + "%matplotlib inline\n", + "from matplotlib.pyplot import plot,xlabel,ylabel,title,grid,show\n", + "#Caption:Waveforms of Different Digital Modulation techniques\n", + "#Figure7.1\n", + "#Digital Modulation Techniques\n", + "#To Plot the ASK, FSK and PSk Waveforms\n", + "f = 2 # the Analog Carrier Frequency in Hz\n", + "t = arange(0,1/512+1,1/512)\n", + "x = [sin(2*pi*f*tt) for tt in t]\n", + "I = [0,1,1,0,1,0,0,1] # the digital binary data\n", + "#Generation of ASK Waveform\n", + "#Xask = []#\n", + "Xask=zeros(len(x))\n", + "for n in range(0,len(I)):\n", + " if((I[n]==1) and (n==0)):\n", + " Xask = [x,Xask]#\n", + " elif((I[n]==0) and (n==0)):\n", + " Xask = [zeros(len(x)),Xask]\n", + " elif((I[n]==1) and (n!=1)):\n", + " Xask = [Xask,x]\n", + " elif((I[n]==0) and (n!=1)): \n", + " Xask = [Xask,zeros(len(x))]\n", + " \n", + "\n", + "#Generation of FSK Waveform\n", + "Xfsk = []#\n", + "x1 = [sin(2*pi*f*tt) for tt in t]\n", + "x2 = [sin(2*pi*(2*f)*tt) for tt in t]\n", + "for n in range(0,len(I)):\n", + " if (I[n]==1):\n", + " Xfsk = [Xfsk,x2]\n", + " elif (I[n]!=1):\n", + " Xfsk = [Xfsk,x1]\n", + " \n", + "\n", + "#Generation of PSK Waveform\n", + "Xpsk = []#\n", + "x1 = [sin(2*pi*f*tt) for tt in t]\n", + "x2 = [-sin(2*pi*f*tt) for tt in t]\n", + "for n in range(0,len(I)):\n", + " if (I[n]==1):\n", + " Xpsk = [Xpsk,x1]\n", + " elif (I[n]!=1):\n", + " Xpsk = [Xpsk,x2]\n", + " \n", + "plot(t,x)\n", + "title('Analog Carrier Signal for Digital Modulation')\n", + "grid()\n", + "show()\n" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "## Example7.1 page 298" + ] + }, + { + "cell_type": "code", + "execution_count": 1, + "metadata": { + "collapsed": false + }, + "outputs": [ + { + "data": { + "image/png": "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\n", + "text/plain": [ + "<matplotlib.figure.Figure at 0x7fa55c4e1c50>" + ] + }, + "metadata": {}, + "output_type": "display_data" + } + ], + "source": [ + "from numpy import ones,arange,cos,sin,pi\n", + "%matplotlib inline\n", + "from matplotlib.pyplot import plot,subplot,title,xlabel,ylabel,show\n", + "\n", + "M =4#\n", + "i = range(0,M)\n", + "t = arange(0,0.001+1,0.001)\n", + "s1=ones([len(i),len(t)])\n", + "s2=ones([len(i),len(t)])\n", + "for i in range(0,M):\n", + " s1[i,:] = [cos(2*pi*2*tt)*cos((2*i-1)*pi/4) for tt in t]\n", + " s2[i,:] = [-sin(2*pi*2*tt)*sin((2*i-1)*pi/4) for tt in t]\n", + "\n", + "S1 =[]#\n", + "S2 = []#\n", + "S = []#\n", + "Input_Sequence =[0,1,1,0,1,0,0,0]\n", + "m = [3,1,1,2]\n", + "for i in range(0,len(m)):\n", + " S1 = S1+[s1[m[i],:]]\n", + " S2 = S2+[s2[m[i],:]]\n", + "S = S1+S2#\n", + "subplot(3,1,1)\n", + "plot(S1)\n", + "title('Binary PSK wave of Odd-numbered bits of input sequence') \n", + "subplot(3,1,2)\n", + "plot(S2)\n", + "title('Binary PSK wave of Even-numbered bits of input sequence') \n", + "subplot(3,1,3)\n", + "plot(S)\n", + "title('QPSK waveform') \n", + "show()" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "## Example 7.02 page 302" + ] + }, + { + "cell_type": "code", + "execution_count": 1, + "metadata": { + "collapsed": false + }, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "coordinates of message points [1.0, -1.0]\n", + "Message points ['0b1', '0b0']\n" + ] + }, + { + "data": { + "image/png": "iVBORw0KGgoAAAANSUhEUgAAAY0AAAEkCAYAAADTtG33AAAABHNCSVQICAgIfAhkiAAAAAlwSFlz\nAAALEgAACxIB0t1+/AAAG75JREFUeJzt3Xm4LHV95/H3B66OYQBRURSQ4L4mDurgdYuHaMwVFTUa\nHXeiVzGOGqIZr6jRqw9uT0x0GKNxEJUxKO4MRkSZyPGicRkQlYuiIjKAKMoiixpl+c4fVQeaw1nq\nLL2/X8/Tz+2u+lX1t+ue7l9/6ldVnapCkqQudhh2AZKk8WGnIUnqzE5DktSZnYYkqTM7DUlSZ3Ya\nkqTO7DQkSZ116jSS7JvkUe39nZLs2t+yJEmjaNlOI8kLgY8D720n7Q18up9FSZJGU5ek8V+BhwFX\nAFTVD4Db9bMoSdJo6tJp/Laqfjv3IMkGwGuPSNIU6tJpfCnJa4CdkvwJza6qz/S3LEnSKMpyFyxM\nsgOwGXh0O+nzwPvKKx1K0tRZstNod0Vtr6p7Dq4kSdKoWnL3VFVdA3w/ye8PqB5J0gjb0KHNrYEz\nk3wD+FU7rarqoP6VJUkaRV06jb/texWSpLGw7EC4NKmS7AucA2yoquuSzAIfqqqjVrGufYAzgV3X\n+yCRJA8FPgjcHnhmVR2/nuuXVqLLGeFXJbmyvf02yXVJrhhEcRpvSZ6R5NT2b+fCJCe0H4D9er6Z\nJOevYRVFx3OQkpyb5I+vX7DqvKrapU9HFb4ROKJd/5o7jCQfbN/LVya5ov0/+qOe+Qcnubadf3mS\n05M8tmf+q5Oc084/P8mxPfNmkzy/5/FMkkuTPHWtdWs0LNtpVNXO7R/rLsDvAX8GvLvvlWmsJXk5\n8A7gcJorCNwR+EdgUsbCCsiAnmsf4LurWTDJjgtMLuBt7ft6V+A9wKeS9L6er7Tv+d2Ao4CPJdkt\nyXOBZwGPbOc/EPg/89Zd7XM/muaSQwdX1cdWU79Gz4qucltV11XVccCmPtWjCZDklsAbgBdX1XFV\n9ZuquraqPltVW9o2/yHJO5P8pL29I8nN23kzSS5I8vIkF7Up5eCe9R+Y5Mz2W/Jcu52AzwF79nyD\nvn0ar0pydpKLk3w0ya06vIa7JPliu8wvkvxz+7pI8iGaD/LPtM/1N+1FPa9rz2siyZ5Jjk9ySZIf\nJtncs+6tST6W5Oi2zu1JHrBIHT8C7tw+1xVJbtZh3Z9I8qEklwPP7fBf9hGaA1726H1qaI54AT5A\n84XxLjSdxOer6sft/Iuq6n03LTuPAz4KPN3daZOly+6pJ/fc/jzJW4HfDKA2ja8HA7dg6QtbvgbY\nH7hfe9sfeG3P/D2AXYE9gecD/zj3oU3zzfeF7bfk+wAnV9Wvab7MXDj3Dbqqfga8jCbd/BFwB+Ay\nmsTTxZvaZe5Fk5S2AlTVs4HzgMe1z/X2BZY9tm1zB+ApwJuTHNAz//E0H9a3BI4H3rVQAVV1l57n\n2rWqru6w7oOAj1fVLYEPL/LaAtcnkefQjO1cdJNGzblam4ErgR8AXwOe03aUD1wkyRwE/C/gyVV1\n4iLPrzHVJWk8Hnhce3s0zR/PE/pZlMbebYCLq+q6Jdo8A3hjVV1cVRfTJJNn98y/up1/bVV9DrgK\nuEc773fAfZLsWlWXV9Xp7fSFdhcdAry2qi5sP3DfADxlLhEspqp+VFX/WlVXt/W9A3jE0i+7LSK5\nI/AQYEtV/a6qvg28j+bDec4pVXVi+03+n2k6zvVa97/Nfbuvqn9faDXA3yS5jOb9/A/A6+aNx2xs\n5/8UeBrwpKq6sqqOAV4K/CkwC1yU5JXz1j1D08H8W5fXpPHS5ZDb91XVl3sntIOZP+9PSZoAlwC7\nJ9lhiY5jT+D/9Tw+r512/TrmLftrYOf2/pNpUslbk3wHeFVVfW2R59kX+HSS3nVdw413xdxEkj2A\n/05zheddaL5gXbrUMj32BC6tql/1TDuPZtfOnN5v9b8GbrHM9lrJui9YZh0F/F1VvQ4gyX2ALyS5\ntCcZfK2qHr7gwlUfBj7cpownAcckOb2qTmrX/bc0Cei4JAdV1e+WqUdjpEvSOGKBaQtGaan1VeC3\nNB8oi7mQ5gN9zj7ttGVV1alV9UTgtsBxwNwg60JHLp0HbKqqW/Xcdqqqny7zNG8GrgXu2+7meTY3\nfr8sdZTUhcCtk+zcM20flv8w76LLuld0BFdVnQl8BXjscm3nLXdtVX0C+A5w355ZVwEH0ux6+3i7\ni0sTYtFOI8mDk7wCuF070PiK9rZ1qeWkqroceB3NOMQT0vza482SPCbJ29pmHwFem2T3JLu37T+0\n3Lrb9TwzyS2r6lqa3SvXtrMvAm6TG/+y5D/R7PPfp13+tkm6HMG1M80VEK5Ishfw3+bNv4hmYHih\n138+za6Zt7QD/n8IPI9mN9SarNO6Q8+uvCT3pElU25ddMHlueyDCLkl2SPIYmnGlr/c2q6qraMaY\n9qJJJX5mTIil/iNvThPLd2z/3bm9XUETPaVFVdU/AC+n2Y30c5pv/C/mhsHxw4FTab6lfqe9f3jv\nKpZY/bOAH7dHB70QeGb7nGfRdEbnpDk34PY0u5iOp9n9cgVNCtq/w/O8Abg/cDnNTwF8cl7bt9B0\nepelObx4/rqeTpOkLgQ+RTNm8MWedvOfdyXpYKXrnq+AV7ZHfl1Fc+Xq91fVe3vmL7aOK4BX0+xa\nvAx4K/Ciquodvyi4/svDnwB3B45OMqhDlNVHXS6Nvm9VnduXJ0/eTxOJf15Vf7BImyOAx9Ds9z24\nZ9BTkjRgXfY1/jrJ24F70xyrDc3h23+8xDJdfQD4HzSH591EkgOBu1bV3ZI8iOYkpI3r8LySpFXo\nsp/xGOAsmhOMtgLn0uxKWLOqOoUm4i7mIODotu3Xgd3ao1okSUPQpdO4TXvG5++q6ktV9RfAeqSM\nLvYCeq8ldAGw94CeW5I0T5fdU3PHWP+svTTAhcCyl2FYR/MHz7wsryQNSZdO4/AkuwGvoBl/2BX4\n675WdYOf0Fy+Yc7e7bQbSWJHIkmrUFUrOqptyd1T7Rmfd6+qX1bVGVU1U1X3H+AFyI6nvTxCko3A\nL6vqJtfHATjyyGL33YvDDy+uvrqoms7b61//+qHXMCo3t4Xbwm2x9G01lrv+zrU0x4T3RZKP0Jyo\ndI801+V/XpJDkhzSPv8JNMfcnw28l+Y4/wVt3gynnQbbtsHGjbB92dOUJEkr1WX31JeTvIvmMse/\nohljqKr65lqfvKqW7ZCq6iVd17fPPnDiiXDUUXDAAXDoobBlC2zwIgaStC66HD21H81lAt4I/D3w\n9vbfkZRMd+qYmZkZdgkjw21xA7fFDdwWazMRvxGepBZ6HVVN6jjsMFOHJM2XhFrhQPiinUZ7sUJY\n5BDXaq4tNBIW6zTmnHcevOAFcMkl8MEPwn3vu2hTSZoaq+k0lto9NXeRwgcCf0lzot3ewItoLuQ2\nNubGOl70omas401vgmuuGXZVkjR+ulyw8BTgwKq6sn28C3BCLfIDLcOwXNLoZeqQpMZ6J405t6P5\n6c05V7fTxpKpQ5JWr0vSeA3NbwR/iuZw2ycCH62qN/e/vG5WkjR6mTokTbN1HQift+IHAA+nGRTf\nViP2mxar7TTAI6wkTa++dRrtyvcAbsENv8p13oor7JO1dBpzTB2Spk1fxjSSHJTkh8A5wCzN72l8\nbjUFjjLHOiRpeV0Gwg8HHgz8oKruBDySG/+I/MSY9rPJJWk5XTqNq6vqYmCHJDtW1ck0525MLFOH\nJC2sS6dxWXtuxinAMUmOAK7qb1nDZ+qQpJvqcsjtzsBvaDqYZ9L8CNMxVXVJ/8vrZj0GwpfiEVaS\nJlFfj54aZf3uNOZ4hJWkSdKvo6euSnJle/ttkuuSXLH6MseXYx2Spt2KkkaSHYCDgI1V9aq+VbVC\ng0oavUwdksZdv649db2quq6qjgM2raiyCWTqkDSNugyEP7nn4Q7AA4BHVNWD+1nYSgwjafQydUga\nR/1KGo8HHtfeHg1cCTxh5eVNLlOHpGnh0VPrzNQhaVyse9JIcmCSLyW5OMnlSU5J8qR23i5rKXZS\nmTokTbKlfiP8BcAhwCuB09rJDwDeChwDPLGqDhhEkcsZpaTRy9QhaZSt68l9Sb4HPGz+md9JbgP8\nBPjrqnrPaotdT6PaaYBnk0saXeveaVTVvRaZd1ZV3XMVNfbFKHcac0wdkkbNeo9pXJHkPy3wJPcD\nLl9pcdPOsQ5Jk2CppPEwmrGLD9CMaYRmTONg4FlVdcqAalzWOCSNXqYOSaNgXZNGVX0ZeBCwI01H\n8dy2/YNGqcMYR6YOSePK8zSGzNQhaVj6fu0prT9Th6RxYtIYIaYOSYNk0hhzpg5Jo86kMaJMHZL6\nzaQxQUwdkkaRSWMMmDok9YNJY0KZOiSNCpPGmDF1SFovJo0pYOqQNEwmjTFm6pC0FiaNKWPqkDRo\nJo0JYeqQtFImjSlm6pA0CCaNCWTqkNSFSUOAqUNS/5g0JpypQ9JiTBq6CVOHpPVk0pgipg5JvcYu\naSTZlOSsJD9MsmWB+TNJLk9yent77TDqnBSmDklrNbSkkWRH4PvAo4CfAP8XeHpVfa+nzQzw8qo6\naJl1mTRWyNQhadySxv7A2VV1blVdDRwLPGGBdit6QerG1CFpNYbZaewFnN/z+IJ2Wq8CHpLk20lO\nSHLvgVU3BRLYvBlOOw22bYONG2H79mFXJWmUbRjic3fZn/RN4I5V9eskjwGOA+6+UMOtW7def39m\nZoaZmZl1KHE6zKWOo45qUsehh8KWLbBhmH8dktbd7Owss7Oza1rHMMc0NgJbq2pT+/gw4LqqetsS\ny/wYeEBVXTpvumMa68SxDml6jNuYxqnA3ZLsm+TmwNOA43sbJNkjSdr7+9N0cpfedFVaL451SFrK\n0DqNqroGeAnweeC7wEer6ntJDklySNvsKcAZSb4FvBP4L8Opdro41iFpMZ7cpyVVNWMdhx3mWIc0\naVaze8pOQ5041iFNnnEb09AYcaxDEpg0tAqmDmkymDQ0EKYOaXqZNLQmpg5pfJk0NHCmDmm6mDS0\nbkwd0ngxaWioTB3S5DNpqC9MHdLoM2loZJg6pMlk0lDfmTqk0WTS0EgydUiTw6ShgTJ1SKPDpKGR\nZ+qQxptJQ0Nj6pCGy6ShsWLqkMaPSUMjwdQhDZ5JQ2PL1CGNB5OGRo6pQxoMk4YmgqlDGl0mDY00\nU4fUPyYNTRxThzRaTBoaG6YOaX2ZNDTRTB3S8Jk0NJZMHdLamTQ0NUwd0nCYNDT2TB3S6pg0NJVM\nHdLgmDQ0UUwdUncmDU09U4fUXyYNTSxTh7Q0k4bUw9QhrT+ThqaCqUO6KZOGtAhTh7Q+TBqaOqYO\nqWHSkDowdUirZ9LQVDN1aJqZNKQVMnVIK2PSkFqmDk0bk4a0BqYOaXkmDWkBpg5NA5OGtE5MHdLC\nTBrSMkwdmlQmDakPTB3SDUwa0gqYOjRJTBpSn5k6NO1MGtIqmTo07sYuaSTZlOSsJD9MsmWRNke0\n87+dZL9B1ygtxtShaTS0TiPJjsC7gE3AvYGnJ7nXvDYHAnetqrsBLwTeM/BCpSUksHkznHYabNsG\nGzfC9u3Drkrqn2Emjf2Bs6vq3Kq6GjgWeMK8NgcBRwNU1deB3ZLsMdgypeWZOjQthtlp7AWc3/P4\ngnbacm327nNd0qqYOjQNNgzxubuOXM8fpFlwua1bt15/f2ZmhpmZmVUVJa3VXOo46qgmdRx6KGzZ\nAhuG+W6TgNnZWWZnZ9e0jqEdPZVkI7C1qja1jw8Drquqt/W0+SdgtqqObR+fBTyiqi6aty6PntJI\n8ggrjbJxO3rqVOBuSfZNcnPgacDx89ocDzwHru9kfjm/w5BGmWMdmjRD6zSq6hrgJcDnge8CH62q\n7yU5JMkhbZsTgHOSnA28F3jxsOqVVsuxDk0ST+6TBqiqGes47DDHOjR8q9k9ZachDYFjHRoF4zam\nIU0txzo0rkwa0pCZOjQsJg1pDJk6NE5MGtIIMXVokEwa0pgzdWjUmTSkEWXqUL+ZNKQJYurQKDJp\nSGPA1KF+MGlIE8rUoVFh0pDGjKlD68WkIU0BU4eGyaQhjTFTh9bCpCFNGVOHBs2kIU0IU4dWyqQh\nTTFThwbBpCFNIFOHujBpSAJMHeofk4Y04UwdWoxJQ9JNmDq0nkwa0hQxdaiXSUPSkkwdWiuThjSl\nTB0yaUjqzNSh1TBpSDJ1TCmThqRVMXWoK5OGpBsxdUwPk4akNTN1aCkmDUmLMnVMNpOGpHVl6tB8\nJg1JnZg6Jo9JQ1LfmDoEJg1Jq2DqmAwmDUkDYeqYXiYNSWti6hhfJg1JA2fqmC4mDUnrxtQxXkwa\nkobK1DH5TBqS+sLUMfpMGpJGhqljMpk0JPWdqWM0mTQkjSRTx+QwaUgaKFPH6DBpSBp5po7xZtKQ\nNDSmjuEyaUgaK6aO8WPSkDQSTB2DNzZJI8mtk5yU5AdJvpBkt0XanZvkO0lOT/KNQdcpaXBMHeNh\nWLunXgWcVFV3B/61fbyQAmaqar+q2n9g1UkaigQ2b4bTToNt22DjRti+fdhVqdewOo2DgKPb+0cD\nT1yi7Yqik6TxZ+oYXUMZ00hyWVXdqr0f4NK5x/PanQNcDlwLvLeqjlxkfY5pSBPKsY7+Wc2YxoY+\nFnMScPsFZr2m90FVVZLFPvEfWlU/TXJb4KQkZ1XVKQs13Lp16/X3Z2ZmmJmZWVXdkkbLXOo46qgm\ndRx6KGzZAhv69uk1uWZnZ5mdnV3TOoaVNM6iGav4WZI7ACdX1T2XWeb1wFVV9fcLzDNpSFPA1LG+\nxuboKeB44Lnt/ecCx81vkGSnJLu09/8j8GjgjIFVKGnkONYxfMNKGrcGPgbsA5wLPLWqfplkT+DI\nqnpskjsDn2oX2QAcU1VvWWR9Jg1pypg61m41ScOT+ySNrapmrOOwwxzrWA07DUlTydSxOuM0piFJ\n68axjsExaUiaKKaO7kwakqaeqaO/TBqSJpapY2kmDUnqYepYfyYNSVPB1HFTJg1JWoSpY32YNCRN\nHVNHw6QhSR2YOlbPpCFpqk1z6jBpSNIKmTpWxqQhSa1pSx0mDUlaA1PH8kwakrSAaUgdJg1JWiem\njoWZNCRpGZOaOkwaktQHpo4bmDQkaQUmKXWYNCSpz6Y9dZg0JGmVxj11mDQkaYCmMXWYNCRpHYxj\n6jBpSNKQTEvqMGlI0jobl9Rh0pCkETDJqcOkIUl9NMqpw6QhSSNm0lKHSUOSBmTUUodJQ5JG2CSk\nDpOGJA3BKKQOk4YkjYlxTR0mDUkasmGlDpOGJI2hcUodJg1JGiGDTB0mDUkac6OeOkwakjSi+p06\nTBqSNEFGMXWYNCRpDPQjdZg0JGlCjUrqMGlI0phZr9Rh0pCkKTDM1GHSkKQxtpbUYdKQpCkz6NRh\n0pCkCbHS1GHSkKQpNojUMZROI8mfJzkzybVJ7r9Eu01JzkrywyRbBlmjJI2jBDZvhtNOg23bYONG\n2L59/dY/rKRxBvAkYNtiDZLsCLwL2ATcG3h6knsNprzxNTs7O+wSRobb4gZuixtMy7boV+oYSqdR\nVWdV1Q+WabY/cHZVnVtVVwPHAk/of3XjbVreEF24LW7gtrjBNG2LfqSOUR7T2As4v+fxBe00SdIK\nrGfq6FunkeSkJGcscHt8x1V4OJQkrZOFUseq1jPMQ1WTnAy8oqq+ucC8jcDWqtrUPj4MuK6q3rZA\nWzsYSVqFlR5yu6FfhazAYgWfCtwtyb7AhcDTgKcv1HClL1qStDrDOuT2SUnOBzYCn03yuXb6nkk+\nC1BV1wAvAT4PfBf4aFV9bxj1SpIaE3FGuCRpMEb56Kkb6XKiX5Ij2vnfTrLfoGsclOW2RZJnttvg\nO0m+kuQPh1HnIHQ9ATTJf05yTZI/G2R9g9TxPTKT5PQk25PMDrjEgenwHtk9yYlJvtVui4OHUGbf\nJXl/kouSnLFEm5V9blbVyN+AHYGzgX2BmwHfAu41r82BwAnt/QcBXxt23UPcFg8Gbtne3zTN26Kn\n3ReBfwGePOy6h/h3sRtwJrB3+3j3Ydc9xG2xFXjL3HYALgE2DLv2PmyLhwP7AWcsMn/Fn5vjkjS6\nnOh3EHA0QFV9HdgtyR6DLXMglt0WVfXVqrq8ffh1YO8B1zgoXU8AfSnwCeAXgyxuwLpsi2cAn6yq\nCwCq6uIB1zgoXbbFT4Fd2/u7ApdUM446UarqFOCyJZqs+HNzXDqNLif6LdRmEj8sV3rS4/OBE/pa\n0fAsuy2S7EXzgfGedtKkDuJ1+bu4G3DrJCcnOTXJswdW3WB12RZHAvdJciHwbeCvBlTbqFnx5+Yo\nHHLbRdc3+vxDbyfxA6Lza0pyAPA84KH9K2eoumyLdwKvqqpKEhY/xHvcddkWNwPuDzwS2An4apKv\nVdUP+1rZ4HXZFq8GvlVVM0nuApyU5H5VdWWfaxtFK/rcHJdO4yfAHXse35GmR1yqzd7ttEnTZVvQ\nDn4fCWyqqqXi6Tjrsi0eABzb9BfsDjwmydVVdfxgShyYLtvifODiqvoN8Jsk24D7AZPWaXTZFg8B\n3gRQVT9K8mPgHjTnh02TFX9ujsvuqetP9Etyc5oT/ea/6Y8HngPXn03+y6q6aLBlDsSy2yLJPsCn\ngGdV1dlDqHFQlt0WVXXnqrpTVd2JZlzjLyeww4Bu75H/DTwsyY5JdqIZ+PzugOschC7b4izgUQDt\nPvx7AOcMtMrRsOLPzbFIGlV1TZK5E/12BI6qqu8lOaSd/96qOiHJgUnOBn4F/MUQS+6bLtsCeB1w\nK+A97Tfsq6tq/2HV3C8dt8VU6PgeOSvJicB3gOuAI6tq4jqNjn8XbwY+kOTbNF+eX1lVlw6t6D5J\n8hHgEcDu7QnVr6fZTbnqz01P7pMkdTYuu6ckSSPATkOS1JmdhiSpMzsNSVJndhqSpM7sNCRJndlp\nSBpr7eXeP7PCZQ5O8ov2MvFnJtncTt+a5BX9qXQyjMXJfZK0zgr4SFW9LMltgTOTHM9kXq9uXZk0\nJE2MNim8v72S74+SvHSp5gBV9QvgR8Dvt9PvvdDyST7dXh14e5IXtNN2TPLBJGe0P3p2aDv9Lkk+\n17bfluQe/XnFg2fSkDRp7g4cQPM7Gd9P8u6qunaxxknuDNyZ5sKNAe4JzCyw/POq6rIkvwd8I8kn\ngTsBe1bVH7TrmvuNjv8JHFJVZyd5EPBumqsLjz07DUmTpIDPtj++dEmSnwN7ABfOaxfgaUkeBvwW\neGFV/TJJAf+yyPJ/leSJ7fJ3BO4K/AC4c5IjgM8CX0iyM82vZ368vfYbwM379HoHzk5D0qT5Xc/9\na4GbJXkx8AKaTuWx7b/HVtXLOiy/IckMTVLYWFX/nuRk4BZtR3M/4E+BFwFPBQ6luVrs8r+3PYYc\n05A0SRb6ka2qqndX1X5Vdf+q+mnbrusPcoVmV9VlbYdxT2AjQJLbADtW1aeAvwX2a3/I6cdJntK2\nSfv7NhPBTkPSuCtuOOqp937XZRaaN//xiTSJ47vAW4CvtvP2Ak5OcjrwIeCwdvozgecn+Rawnea3\nuCeCl0aXJHVm0pAkdWanIUnqzE5DktSZnYYkqTM7DUlSZ3YakqTO7DQkSZ3ZaUiSOvv/PZ9twEsl\nI2sAAAAASUVORK5CYII=\n", + "text/plain": [ + "<matplotlib.figure.Figure at 0x7fcab6354f10>" + ] + }, + "metadata": {}, + "output_type": "display_data" + } + ], + "source": [ + "from numpy import ones,arange,cos,sin,pi\n", + "%matplotlib inline\n", + "from matplotlib.pyplot import plot,subplot,title,xlabel,ylabel,show\n", + "\n", + "M =2#\n", + "i = range(1,M+1)\n", + "y = [cos(2*pi+(ii-1)*pi) for ii in i]\n", + "\n", + "annot = [bin(xx) for xx in arange(len(y)-1,-1,-1)]\n", + "annot = [bin(yy) for yy in arange(len(y)-1,-1,-1)]\n", + "\n", + "print 'coordinates of message points',y\n", + "\n", + "print 'Message points',annot\n", + "plot(y)\n", + "xlabel(' In-Phase')#\n", + "ylabel(' Quadrature')#\n", + "title('Constellation for BPSK')\n", + "show()" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "## Example7.2 page 304" + ] + }, + { + "cell_type": "code", + "execution_count": 4, + "metadata": { + "collapsed": false + }, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "coordinates of message points\n", + "[1.0, -1.0]\n", + "[-1.0, -1.0]\n", + "[-1.0, 1.0]\n", + "[1.0, 1.0]\n" + ] + }, + { + "data": { + "image/png": "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\nzjmXyv8Dg9CmkODLrqIAAAAASUVORK5CYII=\n", + "text/plain": [ + "<matplotlib.figure.Figure at 0x7f2c4eca9c10>" + ] + }, + "metadata": {}, + "output_type": "display_data" + } + ], + "source": [ + "from numpy import ones,arange,cos,sin,pi\n", + "%matplotlib inline\n", + "from matplotlib.pyplot import plot,subplot,title,xlabel,ylabel,show,legend,grid,subplot\n", + "#Table 7.2 signal space characterization of MSK\n", + "\n", + "M =2#\n", + "Tb =1#\n", + "t1 = arange(-Tb,0.01+Tb,Tb)\n", + "t2 = arange(0,0.01+2*Tb,2*Tb)\n", + "phi1 = [cos(2*pi*t11)* cos((pi/(2*Tb))*t11) for t11 in t1]\n", + "phi2 = [sin(2*pi*t22)*sin((pi/(2*Tb))*t22) for t22 in t2]\n", + "teta_0 = [0,pi]\n", + "teta_tb = [pi/2,-pi/2]\n", + "S1 = [];s1 = []\n", + "S2 = [];s2 = []\n", + "for i in range(0,M):\n", + " s1.append(cos(teta_0[i]))\n", + " s2.append(-sin(teta_tb[i]))\n", + " S1 = S1+[s1[i]*phi1]\n", + " S2 = S2+[s2[0]*phi2]\n", + "\n", + "for i in arange(M,-1+1,1):\n", + " S1 = S1+[s1[i]*phi1]\n", + " S2 = S2+[s2(1)*phi2]\n", + "\n", + "Input_Sequence =[1,1,0,1,0,0,0]\n", + "S = []\n", + "t = arange(0,0.01+1,1)\n", + "S = S+[cos(0)*cos(2*pi*tt)-sin(pi/2)*sin(2*pi*tt) for tt in t]\n", + "S = S+[cos(0)*cos(2*pi*tt)-sin(pi/2)*sin(2*pi*tt) for tt in t]\n", + "S = S+[cos(pi)*cos(2*pi*tt)-sin(pi/2)*sin(2*pi*tt) for tt in t]\n", + "S = S+[cos(pi)*cos(2*pi*tt)-sin(-pi/2)*sin(2*pi*tt) for tt in t]\n", + "S = S+[cos(0)*cos(2*pi*tt)-sin(-pi/2)*sin(2*pi*tt) for tt in t]\n", + "S = S+[cos(0)*cos(2*pi*tt)-sin(-pi/2)*sin(2*pi*tt) for tt in t]\n", + "S = S+[cos(0)*cos(2*pi*tt)-sin(-pi/2)*sin(2*pi*tt) for tt in t]\n", + "\n", + "y = [[s1[0],s2[0]],[s1[1],s2[0]],[s1[1],s2[1]],[s1[0],s2[1]]]\n", + "print 'coordinates of message points'\n", + "for yy in y:\n", + " print yy\n", + " \n", + "\n", + "subplot(3,1,1)\n", + "plot(S1[0])\n", + "title('Scaled time function s1*phi1(t)')\n", + "#subplot(3,1,2)plot(S2[0])title('Scaled time function s2*phi2(t)')\n", + "subplot(3,1,3)\n", + "plot(S)\n", + "title('Obtained by adding s1*phi1(t)+s2*phi2(t) on a bit-by-bit basis') \n", + "show()\n", + "\n" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "## Example 7.3 page 308" + ] + }, + { + "cell_type": "code", + "execution_count": 2, + "metadata": { + "collapsed": false + }, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "Table 7.3 Illustrating the Generation of DPSK Signal\n", + "_____________________________________________________\n", + "\n", + "(bk) [1, 0, 0, 1, 0, 0, 1, 1]\n", + "\n", + "(bk_not) [0, 1, 1, 0, 1, 1, 0, 0]\n", + "\n", + "Differentially encoded sequence (dk)\n", + "1 \t0 \t1 \t1 \t0 \t1 \t1 \t1 \t\n", + "\n", + "Transmitted phase in radians\n", + "0 \t3.14159265359 \t0 \t0 \t3.14159265359 \t0 \t0 \t0 \t\n", + "\n", + "_____________________________________________________\n" + ] + } + ], + "source": [ + "from __future__ import division\n", + "from math import pi\n", + "\n", + "\n", + "bk = [1,0,0,1,0,0,1,1]##input digital sequence\n", + "bk_not=[]\n", + "for i in range(0,len(bk)):\n", + " if(bk[i]==1):\n", + " bk_not.append(0)\n", + " else:\n", + " bk_not.append(1)\n", + " \n", + "dk_1 = [ 1 and bk[0]]# #initial value of differential encoded sequence\n", + "dk_1_not =[ 0 and bk_not[0]]\n", + "dk = [dk_1[0]^dk_1_not[0]] #first bit of dpsk encoder\n", + "for i in range(1,len(bk)):\n", + " dk_1.append(dk[(i-1)])\n", + " if dk[(i-1)]==1:\n", + " xxx=0\n", + " else:\n", + " xxx=1\n", + " dk_1_not.append(xxx)\n", + " dk.append(((dk_1[i] and bk[i])^(dk_1_not[i] and bk_not[i])))\n", + "dk_radians=[]\n", + "for i in range(0,len(dk)):\n", + " if(dk[i]==1):\n", + " dk_radians.append(0)\n", + " elif(dk[i]==0):\n", + " dk_radians.append(pi)\n", + " \n", + "print 'Table 7.3 Illustrating the Generation of DPSK Signal'\n", + "print '_____________________________________________________'\n", + "print '\\n(bk)',bk\n", + "print '\\n(bk_not)',bk_not\n", + "print '\\nDifferentially encoded sequence (dk)'\n", + "for dd in dk:\n", + " print dd,'\\t',\n", + "print '\\n\\nTransmitted phase in radians'\n", + "for ddd in dk_radians:\n", + " print ddd,'\\t',\n", + "print '\\n\\n_____________________________________________________'" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "## Example 7.4 page 314" + ] + }, + { + "cell_type": "code", + "execution_count": 1, + "metadata": { + "collapsed": false + }, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "coordinates of message points\n", + "[[1, 0], [0, 1]]\n", + "[[1, 0], [0, 1]]\n", + "Message points ['0b1', '0b0']\n" + ] + }, + { + "data": { + "image/png": "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\n3WNmhWZ2ipndTTAYeNpQehBJnGeffZYRI0ZEVbawsJB777230jIXXXQRXbp0oW7dutx///1VbvO6\n667j2muvjWr/w4YN44UXXoiqbLzdeeedHHPMMdSvX5/zzz+/1LKuXbuSl5fH008/nZC6RNMwnA98\nCIwneMLqh6F5aUXpQST1RHN58pFHHsm0adM46qijqiz/zjvvsHnzZnr06FFpuXjbvXt3tdcpKCjg\n+uuv54ILLih3+bBhw5g5c2a5y2KtyobB3be7+x/d/czQ9Cd331HVeqlK6UFqo0OHDkyePJmuXbuS\nk5PDmDFjWLt2LaeffjpNmjShT58+bNy49+EAb731Fscffzz5+fkceeSRvPrqq+Fl9913H507dyY3\nN5dOnTrx97//HYBly5Zx8sknk5eXR4sWLTj33HPD64wfP5527drRpEkTjjnmGF5//fXwsu3btzNq\n1CiaNm3KYYcdxu23307btnsfXrx69WqGDBlCy5Yt6dSpE3/5y18qfJ+jR49m7Nix9O3bl9zcXAoL\nC1m+fHl4+RtvvEH37t3Jy8ujR48evPnmm+FlkSngvvvuo1evXvzmN7+hadOmdOrUieefDx7OfN11\n1zFv3jwuu+wycnJyGDduXLl1ueSSS+jduzf169cvd3mk5557rtw7n5955hk6d+5MixYt+O1vfxvu\nqL3vvvs48cQTw+Xq1KnDzJkzOfjgg8nPz+eyy/Y+sefTTz+ld+/eNG/enBYtWjB8+HA2bdoUXt6h\nQwduv/12unbtSuPGjZk8eTI/+9nPStVj3LhxXHHFFeXW/cwzz2TQoEE0a9as3OUnn3wyL7/8Mrt2\n7aryONRaVU/sAw4GHiNICp+Hps8S+dTAoJqx9+qr7p07uw8f7r5uXVx2IdUUr//rWOnQoYP37NnT\nv/76a1+1apW3bNnSu3Xr5osWLfIdO3Z47969/aabbnJ395UrV3qzZs38ueeec3f3l156yZs1a+bf\nfvutb9261XNzc/3jjz92d/evvvrK//Of/7i7+7nnnuu33HKLu7t///33Pn/+/PD+Z8+e7evXr/fi\n4mKfMmWKH3jggf7999+7u/vVV1/thYWFvnHjRl+5cqUffvjh3rZtW3d3Ly4u9qOOOspvvvlm37Vr\nl3/22WfeqVMnf+GFF8p9n6NGjfKcnByfN2+ef//99z5+/Hjv1auXu7uvW7fO8/LyfPbs2V5cXOxz\n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\nAAAAAElFTkSuQmCC\n", + "text/plain": [ + "<matplotlib.figure.Figure at 0x7fa400160c50>" + ] + }, + "metadata": {}, + "output_type": "display_data" + } + ], + "source": [ + "from numpy import ones,arange,cos,sin,pi\n", + "%matplotlib inline\n", + "from matplotlib.pyplot import plot,subplot,title,xlabel,ylabel,show,legend,grid\n", + "\n", + "M =2#\n", + "y = [[1,0],[0,1]]\n", + "annot = [bin(xx) for xx in (arange(M-1,-1,-1))]\n", + "print 'coordinates of message points'\n", + "for yy in y:\n", + " print y\n", + "\n", + "print 'Message points',annot\n", + "\n", + "plot(y[0])\n", + "plot(y[1])\n", + "xlabel(' In-Phase')#\n", + "ylabel(' Quadrature')#\n", + "title('Constellation for BFSK')\n", + "legend(['message point 1 (binary 1)','message point 2 (binary 0)'])\n", + "show()" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "## Example 7.4. page 320" + ] + }, + { + "cell_type": "code", + "execution_count": 1, + "metadata": { + "collapsed": false + }, + "outputs": [ + { + "data": { + "image/png": "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\nU5l8wJ1PhmeB5sARAFVdD1RzJ3MRiRWRzSKyVUSGZ3O9i4j8IiLrRWSdiLR1N21+cn1EBA9Ursyd\nycmkBstXa2govPceREZCt25w5oyZw/AwwdCeaWlp+eZcdO7cufTq1Yv4+Hj27NnDP//8w3PPPZfv\nSuhCPizuFhHeeOMNTpw4kXE0b96cGTNmMHPmTJYtW8aJEydISkri5ptvzpQu3a3YV199Rbdu3UhI\nSKBXr15el9lbuKOEzqvq0SzncpypF5ECwOtALFAHiBORrJvIL1XV+rY/unhgai7S5isjqlYlTISx\nO3f6UgzPEhoKM2dCeLi1jsiNBa2GywcR4dFHH2X8+PEcO3Ys2zirV6+madOmRERE0KxZM77//vuM\nazExMTz99NNcf/31lChRgvbt23Po0KFs81FVHn74YZ5++mn69+9PeHg4AK1bt2bq1KkZcZ5//vmM\nHlrfvn05fvx4pnxmzpxJVFQUV1xxBWPHjs2U/4svvkj16tUpU6YMvXv35siRI4A1lBcSEsL06dOJ\niorKeOlPnz6dOnXqUKpUKWJjY9m1a1dGfiEhIUyZMoWaNWsSGRnJ0KFDAUhOTmbIkCF8//33hIeH\nZ+y95C5JSUm0b98+Y2+mcuXKce+9mfcRVVUWLVpE7969mTVrFp07d85VGX6Hqro8gOlYG9v9CtQA\nJgFvuZGuJbDYITwCGJFD/DW5SWuJn3/sPnNGy65cqauOHs3Xcr3OuXOq3burduumev68r6W5rMjv\nZzg3REdH69KlS7V79+46atQoVVV9++23NSYmRlVVDx06pBERETpz5kxNTU3VWbNmaWRkpB4+fFhV\nVW+88UatXr26bt26VU+fPq0xMTE6YsSIbMtKTk5WEdEdO3Y4lWfatGlavXp1/fPPP/XkyZPavXt3\n7dOnj6qq/vnnnyoiOnDgQD1z5oz+8ssvWqhQId28ebOqqk6YMEFbtmype/bs0XPnzumgQYM0Li4u\nU9q+fftqSkqKnj59WhcsWKDVq1fXzZs3a2pqqj7//PN63XXXZcgiItqpUyc9duyY7tq1S6+44gpd\nvHixqqomJCTo9ddf77JtY2Ji9J133rno/MyZM7VUqVL60ksv6Y8//qgXLly4KF3nzp01MjJSly1b\n5rIMVefPl30+x/d/fhzuKKGiwFggyT7+CxR2I93twNsO4buBSdnE6wokA0eBZrlMm+NN8DSf/POP\nRn//vR4Ntpf1mTOqsbGqffqopqb6WprLhpyeYZYv98iRF6Kjo3XZsmX622+/acmSJfXAgQOZlNB7\n772nzZs3z5SmZcuWmpCQoKrWC/O///1vxrXJkydrbGxstmWtXLlSRUTPnj3rVJ62bdvqm2++mRHe\nsmWLhoWFaWpqaoYi2bNnT8b1Zs2a6Zw5c1RV9eqrr8700t67d+9Faf/888+M67GxsTpt2rSMcGpq\nqhYtWlR37dqlqpYSWrVqVcb1Xr166Ysvvqiqqu+++26OSujGG2/UokWLakREhEZERGjjxo0zrn3w\nwQd68803a7FixbR06dI6bty4TOlKlCihzZs319OnT7ssQzUwlJDTzXNEpAiWr7jqwAagpaqez00n\ny61IqguABSJyA/C+iFydizKIj48nOjoagIiICBo0aJDhPj99TN6T4QggtmJFhvz+O/ft34+IeLW8\nfAsXKsSENm1oMHMmMUOHwhtvkPjtt/4jXwCGJ0yY4Nbz6Ar1g6016tatS8eOHXnxxRepXfvfUfG9\ne/dStWrVTHGjoqLYu3dvRrh8+fIZ/xcpUoSTJ08CMHjwYD744AMAnnzySbp16wbAvn37iIqKylaO\nrNeqVq3KhQsX2L9/f7blFS1aNKO8nTt30q1bt0yWc6GhoZnSVqlSJeP/nTt38uCDD/LII49kkmHP\nnj0Z8bKWdSoXjo9FhEmTJtG/f/+Lrt15553ceeedpKam8sknn3DXXXfRsGFDbrnlFkSEMWPGMHfu\nXLp27crChQspWLBgjuUlJiaSkJAAkPG+9BucaSfgI2AmliJaAEzMjXYDWpB5SG0kMDyHNH8Apd1N\ni4+GMk5duKB1fvhBZ+zb55PyvcXy5ctVjx1TbdJE9fHHVdPSfC1SQLPcjR6Ir55hd0jvCamqbtu2\nTUuUKKGjR4/O6Am9//772qxZs0xpWrZsqTNmzFBVqyfk2Jtw1UNIS0vTqlWr6vjx453Kc9NNN+nk\nyZMzwtn1hFIdevGO5deqVUtXr16dbb7ZpW3fvr1++OGHTmUREf3jjz8ywvHx8frUU0+pqvvDcY5t\n44omTZroK6+8kindiRMntEWLFtq5c2c972JUxtnzhR/1hFwZJtRW1btV9S2s4bHWudRvSUANEYkW\nkYJAbyCTabeIXCW2qYeINLK1yiF30vqSogUKMKtOHR754w+2BZELnJiYmH+9b3/+Obzwgq9FCmiC\n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\nngAAAABJRU5ErkJggg==\n", + "text/plain": [ + "<matplotlib.figure.Figure at 0x7f9fcb8b6d50>" + ] + }, + "metadata": {}, + "output_type": "display_data" + } + ], + "source": [ + "from numpy import ones,arange,cos,sin,pi\n", + "%matplotlib inline\n", + "from matplotlib.pyplot import plot,subplot,title,xlabel,ylabel,show,legend,grid\n", + "from scipy.special import erfc\n", + "from math import log10,sqrt,exp\n", + "from __future__ import division\n", + "#Comparison of Symbol Error Probability\n", + "#of Different Digital Transmission System\n", + "#Eb = Energy of the bit No = Noise Spectral Density\n", + "Eb_No =[18,0.3162278]\n", + "x = arange(Eb_No[1],1/100+Eb_No[0],1./100)\n", + "x_dB = [10*log10(xx) for xx in x]\n", + "Pe_BPSK=ones(len(x))\n", + "Pe_BFSK=ones(len(x))\n", + "Pe_DPSK=ones(len(x))\n", + "Pe_NFSK=ones(len(x))\n", + "Pe_QPSK_MSK=ones(len(x))\n", + "for i in range(0,len(x)):\n", + " #Error Probability of Coherent BPSK \n", + " Pe_BPSK[i]= (1/2)*erfc(sqrt(x[i]))#\n", + " #Error Probability of Coherent BFSK\n", + " Pe_BFSK[i]= (1/2)*erfc(sqrt(x[i]/2))#\n", + " #Error Probability Non-Coherent PSK = DPSK \n", + " Pe_DPSK[i]= (1/2)*exp(-x[i])#\n", + " #Error Probability Non-Coherent FSK\n", + " Pe_NFSK[i]= (1/2)*exp(-(x[i]/2))#\n", + " #Error Probability of QPSK & MSK\n", + " Pe_QPSK_MSK[i]= erfc(sqrt(x[i]))-((1/4)*(erfc(sqrt(x[i]))**2))\n", + "\n", + "plot(x_dB,Pe_BPSK)\n", + "plot(x_dB,Pe_BFSK)\n", + "plot(x_dB,Pe_NFSK)\n", + "plot(x_dB,Pe_QPSK_MSK)\n", + "xlabel('Eb/No in dB ---->')\n", + "ylabel('Probability of Error Pe--->')\n", + "title('Comparison of Noise Performance of different PSK & FSK Scheme')\n", + "legend(['BPSK','BFSK','DPSK','Non-Coherent FSK','QPSK & MSK'])\n", + "grid()\n", + "show()" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "## Example 7.06 page 324" + ] + }, + { + "cell_type": "code", + "execution_count": 1, + "metadata": { + "collapsed": false + }, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "Table 7.7 Bandwidth Efficiency of M-ary PSK signals\n", + "______________________________________________________\n", + "M\n", + "[2, 4, 8, 16, 32, 64]\n", + "______________________________________________________\n", + "r in bits/s/Hz\n", + "[0.5, 1.0, 1.5, 2.0, 2.5, 3.0]\n", + "______________________________________________________\n" + ] + } + ], + "source": [ + "from math import log\n", + "\n", + "#Bandwidth Efficiency of M-ary PSK signals\n", + "M = [2,4,8,16,32,64]##M-ary\n", + "Ruo = [log(MM,2)/2 for MM in M]# #Bandwidth efficiency in bits/s/Hz\n", + "print 'Table 7.7 Bandwidth Efficiency of M-ary PSK signals'\n", + "print '______________________________________________________'\n", + "print 'M\\n',M\n", + "print '______________________________________________________'\n", + "print 'r in bits/s/Hz\\n',Ruo\n", + "print '______________________________________________________'" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "## Example 7.6 page 326" + ] + }, + { + "cell_type": "code", + "execution_count": 1, + "metadata": { + "collapsed": false + }, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "coordinates of message points\n", + "\n", + "(0.707106781187+0.707106781187j)\n", + "(0.707106781187-0.707106781187j)\n", + "(-0.707106781187-0.707106781187j)\n", + "(-0.707106781187+0.707106781187j)\n", + "dibits value ['0', '1', '10', '11']\n" + ] + }, + { + "data": { + "image/png": "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\n", + "text/plain": [ + "<matplotlib.figure.Figure at 0x7fb8900e9cd0>" + ] + }, + "metadata": {}, + "output_type": "display_data" + }, + { + "name": "stdout", + "output_type": "stream", + "text": [ + "0.707106781187\n", + "0.707106781187\n" + ] + } + ], + "source": [ + "from numpy import ones,arange,cos,sin,pi\n", + "%matplotlib inline\n", + "from matplotlib.pyplot import plot,subplot,title,xlabel,ylabel,show\n", + "\n", + "\n", + "#Figure7.6 Signal Space Diagram for coherent QPSK system\n", + "M =4#\n", + "i = range(0,M)\n", + "y = [cos((2*ii-1)*pi/4)-sin((2*ii-1)*pi/4)*1J for ii in i]\n", + "annot = [bin(xx)[2:] for xx in range(0,M)]\n", + "print 'coordinates of message points\\n'\n", + "for yyy in y:\n", + " print yyy\n", + "\n", + "print 'dibits value',annot\n", + "plot([y[0].real,y[1].real,y[2].real,y[3].real],[y[0].imag,y[1].imag,y[2].imag,y[3].imag])\n", + "xlabel(' In-Phase')#\n", + "ylabel(' Quadrature')#\n", + "title('Constellation for QPSK')\n", + "show()\n", + "print y[0].imag\n", + "print y[0].real\n" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "## Example 7.7 page 329" + ] + }, + { + "cell_type": "code", + "execution_count": 1, + "metadata": { + "collapsed": false + }, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "Table 7.7 Bandwidth Efficiency of M-ary FSK signals\n", + "______________________________________________________\n", + "M = \n", + "[2, 4, 8, 16, 32, 64]\n", + "______________________________________________________\n", + "r in bits/s/Hz=\n", + "[1.0, 1.0, 0.75, 0.5, 0.3125, 0.1875]\n", + "______________________________________________________\n" + ] + } + ], + "source": [ + "from math import log\n", + "# Bandwidth Efficiency of M-ary FSK\n", + "M = [2,4,8,16,32,64]##M-ary\n", + "Ruo = [2*log(MM,2)/MM for MM in M]# #Bandwidth efficiency in bits/s/Hz\n", + "#M = M'#\n", + "#Ruo = Ruo'#\n", + "print 'Table 7.7 Bandwidth Efficiency of M-ary FSK signals'\n", + "print '______________________________________________________'\n", + "print 'M = \\n',M\n", + "print '______________________________________________________'\n", + "print 'r in bits/s/Hz=\\n',Ruo\n", + "print '______________________________________________________'" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "## Example7.12.7.2 page 332" + ] + }, + { + "cell_type": "code", + "execution_count": 1, + "metadata": { + "collapsed": false + }, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "coordinates of message points\n", + "\n", + "[1.0, -1.0]\n", + "[-1.0, 1.0]\n", + "[-1.0, 1.0]\n", + "[1.0, 1.0]\n" + ] + }, + { + "data": { + "image/png": "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\nyZ49e9i9ezepqame169VqxYbN270vL73z/Xq1aNhw4aF+rJv3z5mz57t9z15P//AgQPs2rWLOnXq\nULt2bdavX1+o/fr166lTp07A2y7Y9xlr0aIFv/zyi2f+3HPP5ddffy00SC1btoxzzz3X8To3bNhQ\n6OfTTjuNatWqndLO16Dx+OOP8/HHHzN37lySkpIKLTt+/DirV6/m/PPPd9yXaOBk0BiO64aFQ4E2\nwPXAgFB2KlpZ6jCBuP7663n//feZO3cu+fn5HD58mNzcXPLy8ti+fTvvvvsuv/32G6eddhpVqlSh\nfPnygGs306ZNmwBIS0vz7Mrav38/FSpUoFq1ahw9epS//vWvhb5FX3311YwaNYo9e/aQl5fH888/\n7/lQzsrKIjk5mdGjR3Po0CHy8/P58ccfWbJkid/+f/jhhyxcuJCjR4/y6KOP0q5dO+rUqcNll13G\nL7/8wquvvsrx48d5/fXXWblyJT179gx4G9WsWZM1a9YU2+bYsWMcPnyYEydOcPToUQ4fPux3oO7R\nowf//e9/PfPnnHMOLVu2ZOTIkRw+fJi3336bH3/8kb59+wKu03HLlStXaGDwpqpMnz6dFStWcPDg\nQR577DGuuuqqUwa7gwcPsnjxYjp37ux5bNSoUbz66qt88sknpKenn7Lur7/+mgYNGhRKMrGgxEFD\nVb9W1f2qulFVb1LVPqr6ZTg6F40sdZiivD9ARMQzX7duXd59912eeuopatSoQWZmJmPHjkVVOXHi\nBM8++yx16tShatWqLFiwgBdeeAGAJUuWcNFFF5GcnEyvXr0YP348DRo0oHv37nTv3p1zzjmHBg0a\ncMYZZxTaTfTYY49Rt25dGjZsSE5ODldddRUVK1YEoHz58syePZulS5fSqFEjqlevzm233XbKrhvv\n93HdddcxcuRIqlatynfffcf06dMBqFq1KrNnz2bs2LFUq1aNMWPGMHv2bDIyTr0Ft/f28LW9hg0b\nxptvvklGRgbDhw/32Zdu3bpRuXJlvvzyS2677TYqV67MggULfLZt1aoVqampfP31157HXnvtNZYs\nWUJGRgYPP/wwb731FlWrVgVcaaxBgwZ+U5KIcMMNN3DTTTdRq1Ytjh49yvjx4095L/PmzaN9+/ae\n7Q2u60U2btzIWWedRXJyMsnJyfz973/3LJ8xYwZ33nmnz9eNaiUdKQc+8zHNC/SIeygnInS2jZ1h\n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\n7P8D6Iyuzawxn60AAAAASUVORK5CYII=\n", + "text/plain": [ + "<matplotlib.figure.Figure at 0x7f16dcd88a50>" + ] + }, + "metadata": {}, + "output_type": "display_data" + } + ], + "source": [ + "from __future__ import division\n", + "from numpy import pi,sin,cos,arange,ones,sinc\n", + "from math import log\n", + "%matplotlib inline\n", + "from matplotlib.pyplot import plot,xlabel,ylabel,title,show,legend,grid\n", + "\n", + "M =2#\n", + "teta_0 = [0,pi]#\n", + "teta_tb = [pi/2,-pi/2]#\n", + "s1=[]\n", + "s2=[]\n", + "for i in range(0,M):\n", + " s1.append(cos(teta_0[i]))\n", + " s2.append(-sin(teta_tb[i]))\n", + "y = [[s1[0],s2[0]],[s1[1],s2[1]],[s1[1],s2[1]],[s1[0],s2[1]]]\n", + "print 'coordinates of message points\\n'\n", + "for xx in y:\n", + " print xx\n", + "plot(y[0])\n", + "plot(y[1])\n", + "plot(y[2])\n", + "plot(y[3])\n", + "xlabel(' In-Phase')#\n", + "ylabel(' Quadrature')#\n", + "title('Constellation for MSK')\n", + "legend(['message point 1 (0, pi/2)','message point 2 (pi, pi/2)','message point 3 (pi, - pi/2)','message point 4(0, - pi/2)'])\n", + "show()" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "## Example7.29 page 334" + ] + }, + { + "cell_type": "code", + "execution_count": 1, + "metadata": { + "collapsed": false + }, + "outputs": [ + { + "data": { + "image/png": "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\nk08CsH79eipWrMhff+W+dC5cuJDDDz+cAwcOHFTnKSkpjB07lmbNmlG1alWuvjp3hqDs7GxuvPFG\natSoQePGjXnqqadISUkhOzs7qL0Rowiz9HUEysZohkCNBjNXzdQmjzfRge8M1E07N0WljHjks88+\ni7UJcUG07qtIkJGRodOmTTvouIjoSSedpJs3b9bdu3frwoUL9fDDD9e5c+dqdna2vvzyy5qRkaF7\n9+7VPXv2aIMGDXT06NG6f/9+feutt7RMmTJ65513qqrquHHjtFu3bgflv3LlSlVVve666/Sss87S\nzZs36/bt2/WMM87Q2267TVXdPVS6dGkdOXKk7t+/X6dMmaIVKlTQLVu2qKrqlVdeqT169NC1a9fq\ngQMH9KuvvtI9e/bopEmTtFOnTjnlLVq0SKtVq6b79u076LvOnj1by5cvryNHjtTPP/9cd+/enef8\nkCFDtFq1ajpv3jzdv3+/XnTRRTpgwIB8v8uoUaN00KBBOeeGDh2aUw/BEBE999xz9YgjjtDffvst\n5/iBAwe0ffv2eu+99+q+ffv0559/1saNG+vUqVNVVfXUU0/VMWPG5KS/7rrr9Nprr823zkVEzzjj\nDN26dav++uuvWqNGDf34449VVXXMmDHasmVLXbNmjW7evFl79eqlKSkpeuDAgYNsDXYve8eL/swN\nKRHUBvYBA8Mp5FC3aP6Ad+zZoddOuVbrPFpHJy+fHLVyjPijsPsKIrOFQ8OGDbVSpUqalpamaWlp\nes4556iqe5D4O/bLL7/8oAdc8+bNdebMmTpz5kytU6dOnnPHHXdcSI4hOztbK1asmPNgVVX98ssv\ntVGjRqrqHEP58uXzPKQOP/xw/frrr/XAgQNavnx5/fbbbw/6Xrt27dKqVavqihUrVFX1xhtv1Kuu\nuipoPXz00Ud6xhlnaFpamlaqVElvuOGGnDKHDh2ql1xySU7aKVOm6JFHHnnQd1FVHTlypA4cODDn\n3NChQ/WOO+4IWq7v+ipVqug111yT5/icOXO0QYMGeY498MADOmzYMFVVnThxonbt2lVVVffv36+1\natXSefPmqWr+juGLL77I2e/fv78+9NBDqqrao0cPfe6553LOTZs2TUWkWBxDqLOrDsWtzXwxMCFS\nrZV4wGZsNYKhMRziICK899579OzZ86Bz9evnrm21evVqXnnllZxQBsC+fftYt24dqkrdunXzXNuw\n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\n", + "text/plain": [ + "<matplotlib.figure.Figure at 0x7fcadd25bb90>" + ] + }, + "metadata": {}, + "output_type": "display_data" + } + ], + "source": [ + "from __future__ import division\n", + "from numpy import arange,ones,sinc,pi,sin,cos\n", + "from math import log\n", + "%matplotlib inline\n", + "from matplotlib.pyplot import plot,xlabel,ylabel,title,show,legend,grid\n", + "\n", + "rb = 2 # the bit rate in bits per second\n", + "Eb = 1 # the Energy of bit\n", + "\n", + "f = arange(0,1/100+8/rb,8/rb)\n", + "Tb = 1/rb# #Bit duration\n", + "SB_PSK=ones(len(f))\n", + "SB_FSK=ones(len(f))\n", + "for i in range(0,len(f)):\n", + " if(f[i]==(1/(2*Tb))):\n", + " SB_FSK[i]=Eb/(2*Tb)\n", + " else:\n", + " SB_FSK[i]= (8*Eb*(cos(pi*f[i]*Tb)**2))/((pi**2)*(((4*(Tb**2)*(f[i]**2))-1)**2))\n", + " \n", + " SB_PSK[i]=2*Eb*(sinc(f[i]*Tb)**2)\n", + "\n", + "plot([ff*Tb for ff in f],[yy/(2*Eb) for yy in SB_FSK]) \n", + "plot([ff*Tb for ff in f],[yy/(2*Eb) for yy in SB_PSK]) \n", + "xlabel('Normalized Frequency ---->')\n", + "ylabel('Normalized Power Spectral Density--->')\n", + "title('PSK Vs FSK Power Spectra Comparison')\n", + "legend(['Frequency Shift Keying','Phase Shift Keying'])\n", + "grid() \n", + "show()" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "## Example7.30 page 336" + ] + }, + { + "cell_type": "code", + "execution_count": 1, + "metadata": { + "collapsed": false + }, + "outputs": [ + { + "data": { + "image/png": "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\n", + "text/plain": [ + "<matplotlib.figure.Figure at 0x7faefe72dc10>" + ] + }, + "metadata": {}, + "output_type": "display_data" + } + ], + "source": [ + "from __future__ import division\n", + "from numpy import arange,ones,sinc,pi,cos\n", + "from math import log\n", + "%matplotlib inline\n", + "from matplotlib.pyplot import plot,xlabel,ylabel,title,show,legend,grid\n", + "\n", + "rb = 2 # the bit rate in bits per second\n", + "Eb = 1 # the Energy of bit\n", + "f = arange(0,1/(100*rb)+(4/rb),1/(100*rb))\n", + "Tb = 1/rb# #bit duration in seconds\n", + "SB_MSK=ones(len(f))\n", + "SB_QPSK=ones(len(f))\n", + "for i in range(0,len(f)):\n", + " if(f[i]==0.5):\n", + " SB_MSK[i]= 4*Eb*f[i]\n", + " else:\n", + " SB_MSK[i]=(32*Eb/(pi**2))*(cos(2*pi*Tb*f[i])/((4*Tb*f[i])**2-1))**2\n", + " \n", + " SB_QPSK[i]=4*Eb*sinc((2*Tb*f[i]))**2\n", + "\n", + "plot([ff*Tb for ff in f],[yy/(4*Eb) for yy in SB_MSK])\n", + "plot([ff*Tb for ff in f],[yy/(4*Eb) for yy in SB_QPSK])\n", + "xlabel('Normalized Frequency ---->')\n", + "ylabel('Normalized Power Spectral Density--->')\n", + "title('QPSK Vs MSK Power Spectra Comparison')\n", + "legend(['Minimum Shift Keying','QPSK'])\n", + "grid()\n", + "show()" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "## Example7.31 page 338" + ] + }, + { + "cell_type": "code", + "execution_count": 1, + "metadata": { + "collapsed": false + }, + "outputs": [ + { + "data": { + "image/png": "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\n", + "text/plain": [ + "<matplotlib.figure.Figure at 0x7f18572c4a10>" + ] + }, + "metadata": {}, + "output_type": "display_data" + } + ], + "source": [ + "from __future__ import division\n", + "from numpy import arange,ones,sinc\n", + "from math import log\n", + "%matplotlib inline\n", + "from matplotlib.pyplot import plot,xlabel,ylabel,title,show,legend,grid\n", + "\n", + "rb = 2 # the bit rate\n", + "Eb = 1 # the energy of the bit\n", + "f = arange(0,1.0/100+rb,1./100)\n", + "Tb = 1/rb# #Bit duration\n", + "M = [2,4,8]#\n", + "SB_PSK=ones([len(M),len(f)])\n", + "for j in range(0,len(M)):\n", + " for i in range(0,len(f)):\n", + " SB_PSK[j,i]=2*Eb*(sinc(f[i]*Tb*log(M[j],2))**2)*log(M[j],2)\n", + " \n", + "plot([ff*Tb for ff in f],[xx/(2*Eb) for xx in SB_PSK[0,:]])\n", + "plot([ff*Tb for ff in f],[xx/(2*Eb) for xx in SB_PSK[1,:]])\n", + "plot([ff*Tb for ff in f],[xx/(2*Eb) for xx in SB_PSK[2,:]])\n", + "xlabel('Normalized Frequency ---->')\n", + "ylabel('Normalized Power Spectral Density--->')\n", + "title('Power Spectra of M-ary signals for M =2,4,8')\n", + "legend(['M=2','M=4','M=8'])\n", + "grid()\n", + "show()" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "## Example7.41 page 340" + ] + }, + { + "cell_type": "code", + "execution_count": 1, + "metadata": { + "collapsed": false + }, + "outputs": [ + { + "data": { + "image/png": "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\ngg==\n", + "text/plain": [ + "<matplotlib.figure.Figure at 0x7f8cd9bd9710>" + ] + }, + "metadata": {}, + "output_type": "display_data" + }, + { + "data": { + "image/png": "iVBORw0KGgoAAAANSUhEUgAAAX0AAAEZCAYAAAB7HPUdAAAABHNCSVQICAgIfAhkiAAAAAlwSFlz\nAAALEgAACxIB0t1+/AAAIABJREFUeJzt3Xm4HFWZx/HvGxIgkEAQF1CWAMoiO46AitIqOlEE1AEh\nRllcUMFtREXEkYs6Btk04rgFg6gxgbAJyqiAdEQTRQIJBJBxQ8IOSdh3884f53RS6XTf20tVV3XX\n7/M8edJdvdTbffu+fe6vT58yd0dERMphVN4FiIhI76jpi4iUiJq+iEiJqOmLiJSImr6ISImo6YuI\nlIiafp8ys9eY2V/M7FEzO7DB5duZ2UIze8TMPmZm3zGzL8TLKma2pPdVZ8/MjjSza1K6r4lmtsLM\n9HvSoiK9tvKqxcz+3cwuHubyXczs972sKak0L+bYDG4ys8fN7B4z+7aZbdjG7W83szekWE+39/cl\n4JvuPt7dL21w+WeBq9x9A3c/y90/4u5fyaiWTJnZD83sy3nXUa8oz1uab3SSiv8GptbOxIHD1rXz\n7n4j8JCZvS2P4krR9M3sOOAU4DhgA2BvYEvgCjMb0+LdOGApltXt/W0B3DLM5VuOcHkqtVjUyW0H\nQGqvCTMbncb99DMzWyvvGrplZq8ENnD3a+svqjs/E/hQb6qq4+4D/Y/Q5B8FDq7bvj5wP3BUPP9D\n4MuJyyvAknj6x8C/gCfifX0amAisAD4I3AXcDRyXuH1b99ek9g8CfwGWAj8DNo3b/5a4/SPAmLrb\n/QZ4DngyXv6yZD2t1EJ4Y5wHLAcWAvsm7r8KfAX4fbzd1g1qvz0+TzfG+/0B8CLgf4GHgSuACYnr\nzwHuAR4C5gIvj9uPBp4Bno7387O4fXPgovgzfBA4K24/ErgGOA1YBvwdmJTYz4axlruBO4EvA6Pi\nZaOA04EH4nN8bPwZj2rw+Jo9bwcCN8fn7Wpg+2FemyuAY+LP+G9x29vi8708Pr87J66/xmMGtgee\nij/vR4Fl8br7AzfE5/oO4KTE/UyM+z4c+Gd8vJ9PXD4WODc+f7cQ/mpcUlf31onzP6TBayue/xzw\nV8Lr8Gbg7YnLjoyP8cz4eL7U4DkaAi4AZsf7WADs0mEtx8ef+SPAn4E3xO2WqPNB4Dxgo2F+bp9N\nvH4+kKwB+CLw/cR1fxsvfyz+fA6J218SXztjmu0ns57Y6x32/AHCJOBZGv/i/hD4aTx9TvJF1+AF\n84/ai6TuF2dm/CXZifDL+MZO7q9BbW+Iv4y7AWsD3wTmtnH7q4H3Jc6vrKeFx/aS+OKfFM/vF89v\nHM9XCU19B0KjHN1g//8gvGm8AHgxcB9wPbArsA5wFfDFxPWPJLwRjwG+DtzQqPZ4fi1gEXBGfO7X\nAV6duJ9ngPcTfpk/DNyVuO3FwHfi7V4A/BE4Ol72YeDW+Pg3is/hvxq9dpo8b9sSfrnfGGv8DKGh\nN/zFjq+fXwET4mPYPT5Pr4y1Hx73MWaEx3wEcE3dfe8L7BhP7wzcCxxU99r9XryfXQhvHNvFy0+J\nj33D+FzcCNxRV/fWjX4+rPnaOhjYJJ5+V3x+XpT4WT1LeHMdBazb4Dkaij/Pd8bn4DjCG/la7dQC\nbEd486vVsgWrGvUnCK/VF8fn+rvEvtCkn9xDeO2PBX7C6k3/fBKDv0Y1JrY/DOyUZf9r9K8M8c7z\ngQfdfUWDy+4FNk6c7+RP9ZPd/Ul3X0x4wU3u8v5qpgA/cPeF7v4McALwKjPboo37qN9/q/W8B7jc\n3X8J4O5XAtcRRo8QYo0fuvut7r7C3Z9rcj9nufsD7n43YfQ9390XufvThOa7e+2K7v5Dd3/c3Z8F\nTgZ2NbPxTWrfE9gU+Ex87p9293mJy//p7j/w8Jv1I2BTM3uhmb0IeAvwn/F2DwDfAA6Lt3sX8HV3\nv8vdlwNfbeM5AzgU+Lm7X+Xu/yL81TAWePUwt5nq7g/F5+Ro4Hvu/icPfkT4C+dVIzzmNWp097nu\nfnM8fRNhpLxv3dVOjvdzI+ENZde4/RDgq+7+sLvfBUxr4XloeLm7X+Du98bT5xPeBPdKXOVud/+f\n+Dp6qsl9X+fuF8Xn9ExgXcJfou3U8i/CG9yOZjbG3e9w97/Hyz4EfMHd7068/g5u8gH+u4AZ8bX/\nJHBS3eUTCCP6Vjwar99TZWj6DwLPb/ID3DRe3o3k7IA7CKOFNGxK+NMbAHd/nBDzvKSN++h0Nb0t\ngUPMbHntH/AaYJPEdVqZFXFf4vSTdeefAsZByHLN7BQz+6uZPUwY3UJ4w25kc0Jjb/RGDuHNHAB3\nfyKeHBcf1xjgnsTj+i5hxA/hOa//ebZj0+Rt4pvOEoZ/TST3tyVwXN3zvlm835Ee82rMbC8zu9rM\n7jezhwiNbeO6q92bOP0E8ecR603WdWcr+2xSx+FmdkPi8exUV0crr6OV+4/P6Z20+Xvm7n8FPkn4\ny+E+M5tlZpvGiycCFydqvIUQl72owV3Vv0bqn5vlhEi5FeMJcWZPlaHpzyeMlv4judHMxhH+VLsq\nbnocWC9xlWSDg+YNdIu603d1eX81dxNejLV61yf8stzV7AYtaLbP+u13AD92940S/8a7+6kt3Ndw\nmo0W303Iwt/o7hsCW9Vdv35fS4AtOvjgbwnhtbBx4nFt6O47x8vvYc2f53Dq67qb0LiB8CE3oVkP\n9zNL3scdwH/XPe/j3P08hn/MjX4WPwUuATZz9wmEN7dWf9/viXXXbF53+ROs/tretFENZrYl8H1C\nfPM8d98IWMzqr4NWXkcr9x8Hb5sRnuuWawFw91nu/lrCz8iBr8WL7iBEmcnnfT13v6fB3Yz03NxI\niPmGZWYvIcS2t4103bQNfNN394cJf66dFefPjjGziYTsbQnhAzkIH5691cw2MrNNCKOCpPuAbRrs\n4gtmNtbMdiRklOd1eX81s4CjzGxXM1uHEDX8wd3bGX1a3elmTbe+lp8AB5jZm+MofN045zn5V0aa\nM3bGEZrxsvjm9tUG9W2dOP9Hwi/fKWa2XqxvuAgFgPhL/GvgTDMbb2ajzGwbM3tdvMr5wMfN7CVm\nthHhw73h1D9v5wP7m9kb4qyw4wh/0cxrdOMGpgMfNrM946So9c1s/zhAGe4x3wdsVjcTbRyw3N2f\nMbM9CW+srb5Rnw+cYGYT4s/8o3W3XQhMia+NScDrGt0J4TMaJ/w1PcrMjiKM9Nv1CjN7R5zh9EnC\nc/qHdmoxs23jz2UdwmvtKULkA+EN8au16NTMXmANvvsSnU/4vdzezNYD/qvu8stZM0Zr9Lu+L2FK\n9bPNH3Y2Br7pA7j7acDnCRnrw4QXzD8JI8vak/5jQq55O/BLQgaafKFPJTT45Wb2qcT2uYRP/a8E\nTov5dzf3V6v5KsIL6kLCqGYrVmXPLT/0utP15xvW4u53AgcRnrP7CSOh42h/hNZqPT8i/DzuIowE\n59dd9wfAy2N9F8WI4wDgpbG2JYSstdHjrN/v4YQR1i2E2SlzWPVX2HTCB6uLCJ9hXDjC46x/3v6P\n8HnIWYQP4fcHDhjmM4/V7tvdFxBmbH0r1vaXWC8jPOarCDNj7jWz++O2Y4AvmdkjhNdRbTDScN91\nvkSILf5BeJOcQ/gwteYTsZblhDeT+i8ieaz5FsIHz/MJUdJOwO/qrjfS68gJM9cOJTwnU4B3xny/\n5VoIef5Uws/lHkJ0eEK8bBpwKfDr+HzNJ3yGsmYx4XOubxI+6P6/eF0IbyS4+w3Aw/GNtmYIODe+\nTg6O26YQ3mx6zkJElsEdm80gvOjvT/z5jJl9jPCC/BfwC3c/PpMCMhb/Wvg7YeZKSzmrSD8ys48A\n73L31+ew75OAl7r7e3u971aY2Q7ATcDatT5gZm8CjnH3dzS5zS7Ad9z9Nb2rdJUsR/rnEDLzlczs\n9YTsdhd334kw8haRAjGzTSws8zHKzLYDPsWaI+ielZPTfpuKUdM6MQL8GnBpcuDn7lc0a/jx8hvz\naviQYdN392sIf3IlfYQwRe3ZeJ0Hstp/j2TzZ5JIvtYmRA+PEKKjS4Bv51RLKxFQrx1NyOn/Svie\nwUfyLac9mcU7sDICuawW75jZDYR8bhLhg5RPu/t1mRUgIiKr6fV6H6MJX2/e28IaFeez+qwMERHJ\nUK+b/p2EtUNw9z9ZWH1uY3dfmrySmRXtzzkRkb7g7sN+DtLrKZuXENaUwcy2JXzivbTRFb3H61F0\n8u+kk07KvQbV2Zt/p5/u7LWX8/TTzh57nMTkyc6KFfnX1Y/PperM7l8rMmv6ZjaL8KWUbc1sSfxi\nxgxgazO7ifDlo8Oz2r9IWubPh1NPhfPOg7XXhkmTYPFimD4978pE2pdZvOPuk5tcVMj5tiKNLFsG\nhx0WGvyWcYGFMWNgzhzYZx/Yay/Yddfh70OkSErxjdysVCqVvEtoiersjDsccQQcfDAcmPhSfqVS\nYbvt4BvfgEMOgUdbXVOxh4r2XDajOnsv0ymbnTIzL2JdUi5nnBFG9L/9bYh1Gjn6aHjsMZg5E0p7\n/DApDDPDR/ggV01fpIH58+Htb4drr10V6zTy5JMh4vnoR8MbgEie1PRFOrBsGey+O5x11uqxTjO3\n3Rby/SuvVL4v+Wql6SvTF0loluMPp+j5vkiSRvoiCa3k+M0o35e8Kd4RaUOrOX4zyvclb2r6Ii1q\nN8dvRvm+5EmZvkgLOsnxm1G+L0Wnkb6UXjc5fjPK9yUPindERtBtjt+M8n3Jg5q+yDBqOf63vgUH\nHJD+/Svfl15Tpi/SRC3HP+SQbBo+KN+XYtJIX0rpjDPgggtCjj9mTLb7Ur4vvaJ4R6SBrHL8ZpTv\nS6+o6YvUyTrHb0b5vvSCMn2RhF7k+M0o35ei0EhfSqOXOX4zyvclS4p3RKJe5/jNKN+XLOUa75jZ\nDDO7Lx4Evf6y48xshZk9L6v9i9TUjnN79tn5NnyAsWPDt39PPBEWLcq3FimnLDP9c4BJ9RvNbHPg\nTcA/M9y3CJBvjt+M8n3JU2ZN392vAZY3uOhM4LNZ7Vck6cwz4cEHYerUvCtZ3ZQpUKnAhz4U3phE\neqWns3fM7CDgTne/sZf7lXKaPx9OPRVmz87vg9vhTJsGixfD9Ol5VyJlMrpXOzKz9YDPE6KdlZt7\ntX8plyLl+M3U8v199gkf7mr+vvRCz5o+sA0wEVhkYa7aZsACM9vT3e+vv/LQ0NDK05VKhUql0pMi\npf8VMcdvJpnvL1gA48fnXZH0k2q1SrVabes2mU7ZNLOJwGXuvnODy/4BvMLdlzW4TFM2pWNFmI/f\nLs3flzTkPWVzFjAP2NbMlpjZUXVXUVeX1BU9x29G+b70ir6cJQMjr3V10qL1eaRbWntHSqOfcvxm\nNH9fekEjfRkI/ZjjN6N8XzqltXekFIqyrk5atD6PdEpNXwZev+f4zSjfl04o05eBNgg5fjPK9yUr\nGulL3xqkHL8Z5fvSDsU7MrAGLcdvRvm+tENNXwbSoOb4zSjfl1Yp05eBM8g5fjPK9yVNGulLXylD\njt+M8n0ZieIdGShlyfGbUb4vI1HTl4FRthy/GeX7Mhxl+jIQypjjN6N8X7qlkb4UXplz/GaU70sj\ninek75U9x29G+b40oqYvfU05/vCU70s9ZfrSt5Tjj0z5vnRCI30pJOX4rVO+LzWKd6QvKcdvj/J9\nqck93jGzGWZ2n5ndlNh2mpndamaLzOwiM9swyxqkvyxbBocdBmefrYbfqrFjYc4cOPFEWLQo72qk\n6LLO9M8BJtVt+zWwo7vvCvwfcELGNUifUI7fOeX70qpMm767XwMsr9t2hbuviGf/CGyWZQ3SP848\nEx58EKZOzbuS/jRlClQq8KEPhTdQkUbynr3zPuDynGuQApg/H049FWbP1ge33Zg2DRYvhunT865E\nimp0Xjs2sxOBZ9z9p40uHxoaWnm6UqlQqVR6U5j03LJlMHlyaFTK8btTy/f32Qf23BN22y3viiRL\n1WqVarXa1m0yn71jZhOBy9x958S2I4EPAm9096ca3Eazd0rCHQ48MGTSp5+edzWDY+ZMOPlkWLAA\nxo/Puxrpldxn7zRiZpOAzwAHNWr4Ui7K8bOhfF+ayXSkb2azgH2B5wP3AScRZuusDSyLV5vv7sfU\n3U4j/RLQfPxsaf5++aTy5Swz+5q7Hz/StjSp6Q8+ravTG1qfp1zSinfe3GDbWzsrSUTz8XtJ8/el\nXtORvpl9BDgG2Ab4W+Ki8cDv3X1KZkVppD/QtK5O72l9nnLoKt6JyyNsBJwCHA/U7uhRd1+aZqEN\n9q2mP6CU4+dD+X45pJXpbwmscSV3v6O78obdp5r+AFKOny/l+4MvraZ/U+LsusBWwG3uvmP3JTbd\np5r+gNF8/GLQ/P3BlsnSyma2B3Csu7+/m+JG2Iea/oBRjl8cyvcHV2br6ZvZYnffqePKRr5/Nf0B\nohy/WJTvD65Wmv6Ia++Y2XGJs6OAPYC7uqxNSkLr4xdPcn2evfZSvl82rczTHw+Mi//WBn4OHJRl\nUTIYNB+/uDR/v7xajnfiFE5390eyLUnxzqBQjl98yvcHS1qzd14JzAA2iJseAt7v7telUmXjfarp\n9znl+P1B+f5gSXPK5jHxKFiY2T7At919l9QqXXOfavp9TPPx+4vm7w+OtNbeea7W8AHc/XfAc90W\nJ4NJOX7/Ub5fLq2M9L8BjAVmxU2HAk8BPwZw9+tTL0oj/b6lHL9/Kd/vf2nFO1UaLMNQ4+6v76i6\n4feppt+HlOP3N+X7/S+tpr+1u/99pG1pUtPvP8rxB4Py/f6WVqZ/QYNtczorSQaRcvzBoXx/8DX9\nRq6Z7QC8HJhgZu8kLK3shKmb6/amPOkHtePcXnRR3pVIGqZMgblzw/F1le8PnuHW0z8IeAdwAHBp\n4qJHgdnuPi+zohTv9A3l+INJ+X5/SivTf5W7z+9g5zOA/YH73X3nuO15wHnAlsDtwLvc/aEGt1XT\n7wPK8Qeb8v3+k1bTP6dukwO4+/tGuN1rgceAHyWa/qnAg+5+qpkdD2zk7p9rcFs1/YLT+vjloPX3\n+0taTf9gVk3ZHEuIfO5294+1UMBE4LJE0/8zsK+732dmmwBVd9++we3U9AtO8/HLQ/P3+0dWB1EZ\nRTgw+qtauO5EVm/6y919o3jagGW183W3U9MvMOX45aJ8v3+ksp5+A9sCL+ispFXc3c2saWcfGhpa\nebpSqVCpVLrdpaRg6VKtj182Wn+/uKrVKtVqta3btBLvPMaqeMeB+4DPufuFI95543in4u73mtmm\nwNWKd/rHihUhx99+e+X4ZaR8v/hS+XKWu49z9/Hx3wbu/rJWGn4TlwJHxNNHAJd0eD+SgzPPDCP9\nqVPzrkTyMGUKVCph/r7GZP2rpUw/ztl/HWGkP9fdL2vhNrOAfYHnE/46+CLwM+B8YAs0ZbOvzJsH\n73iHcvyyU75fbGnN3jkFeCUwk/Ct3MOA69z9hLQKbbBPNf0CWboU9thD8/El0Pz94krzICq7ufu/\n4vm1gIW1nD4LavrFoRxfGlG+X0xpLbjmwITE+QkMs9SyDBbl+NKI8v3+1cpIfzJwCnA1Id7ZlzB7\nZ3ZmRWmkXwjK8WU4yveLJ7UvZ5nZiwm5vgN/cvd70imx6f7U9HOmHF9aoXy/WDL5Rm4vqOnnSzm+\ntEP5fnGo6UtHTj8dLrxQ6+pI67Q+TzGo6UvblONLJ5TvF0PXTd/MRgM3u/t2aRc3HDX9fCjHl24o\n389f11M23f054M9mpjHfgFuxQse5le7o+Lr9oZUpm9cAuwPXAo/Hze7uB2ZWlEb6PaccX9KifD8/\naX0jt9Jgs7v73C5qG2mfavo9pBxf0qR8Pz9pztOfCLzU3a80s/WA0e7+SCpVNt6fmn6PKMeXLCjf\nz0cqyzCY2dHAHOB7cdNmwMXdlyd5U44vWVG+X1ytxDuLgD2BP7j77nHbTVpwrf8px5esKd/vrbQW\nXHva3Z9O3OlotOBa35s3D047DWbPVsOX7EybBosXw/TpeVciNa00/blmdiKwnpm9iRD1jHgQFSmu\npUth8mQd51ayVzu+7oknwqJFeVcj0Fq8Mwr4APDmuOlXwNlZ5i+Kd7KjdXUkD1qfpzfSmrL5CXef\nNtK2NKnpZ0c5vuRF+X720mr6N9Q+wE1sW+juu6VQY7N9qulnQPPxJU+av5+9Vpr+6GFuPBl4N7CV\nmSUz/PHA0i4LOwF4D7ACuAk4KvlhsaRPOb7krZbv77NPaP6av5+PpiP9uN7OVoSjZh1POGoWwKPA\norguT/s7DF/0+g2wg7s/bWbnAZe7+7mJ62iknyLl+FIkyvezU8illc3secB8YG/CG8jFwDR3vzJx\nHTX9FCnHl6JRvp+Nrpq+mT1G8/n47u4bdFHY0cAZwJPAr9z9vXWXq+mnRDm+FFEt3z/22HBwdUlH\nV5m+u49LvyQws22ATwITgYeBOWY2xd1nJq83NDS08nSlUqFSqWRRzkCr5fjTp6vhS7Ek8/2991a+\n36lqtUq1Wm3rNsON9Ddw90diHLMGd1/WdoXhfg8F3uTuH4jn3wvs7e7HJq6jkX6XlONLP1C+n65u\nl2GYFf+/HljQ4F+n/gzsbWZjzcyA/YBburg/aeDMM8NIf+rUvCsRaW7KFKhUQsSjcV5vDDfSf5W7\nz89kp2afBY4gTNm8HviAuz+buFwj/S4ox5d+ovn76en2g9yVX8oys/nu/qoMamy2bzX9Dml9fOlH\nWn8/HWmtsgmwbgr1SMa0Pr70K62/3zvDNf21zOx5ZrZx4vTKf70qUFqnHF/6mfL93hgu3rmdVfP0\njdXn7Lu7b51ZUYp32qYcXwaB8v3uFPIbua1Q02+PcnwZJMr3O5dmpi8FpRxfBo3y/WxppN/ntK6O\nDCqtz9M+xTsDTjm+DDLl++3rdp7+sDN0Ol2GoRVq+iNTji9loHy/Pd02/dsJM3YM2AJYHi/aCPin\nu2+VXqlr7FtNfxhaV0fKROvztK6rD3LdfWJs7FcAb3P3jd19Y2D/uE1yovn4Uiaav5+uVo6Ru9jd\ndxppW6pFaaTflHJ8KSPl+63paj39hLvN7AvATwhRz7uBu1KoT9qk49xKWen4uulpZZ7+ZOCFhMMa\nXhRPT86yKFmT5uNL2Wn+fjpanrJpZuu7++MZ11Pbl+KdOpqPLxJo/n5zqXwj18xebWa3EA5+gpnt\nambfTqlGacG8eXDaaTB7thq+yLRpsHhxOAyotK+VD3KvBQ4GfpZYX/9md98xs6I00l9J8/FF1qT5\n+42ltvaOu99Rt+m5jquSlinHF2lM+X7nWmn6d5jZawDMbG0z+zRwa7ZlCWg+vshwNH+/M63EOy8A\nphEOYG7Ar4GPu/vSzIpSvKP5+CIt0Pz91RV2wTUzmwCcDexIWOrhfe7+h8TlpW76yvFFWqd8f5VU\nmr6ZvRD4IDCRVV/mcnd/XxeFnQvMdfcZZjYaWN/dH05cXtqmr3V1RNqn9XmCtJr+fOC3wAJgRdzs\n7n5hh0VtCNww3OEWy9z0NR9fpDOav59e01/o7rulWNRuwPeAW4BdCW8mn3D3JxLXKWXTV44v0jnl\n++mtvfNzM9vf3X+RUl2jgT2Aj7r7n8zsG8DngC8mrzQ0NLTydKVSoVKppLT7YtK6OiLdKeP6PNVq\nlWq12tZthltP/zHCh6wA6wPPAM/G8+7uG3RSpJltAsyvrcdvZvsAn3P3tyWuU6qRvnJ8kfSUOd/v\ndj39ce4+Pv4b5e7rJs531PDj/d4LLDGzbeOm/YCbO72/QaD5+CLp0fz94bWS6b8DuNrdH4rnJwAV\nd7+k452a7UqYsrk28DfgqLLO3lGOL5K+sub7aX2Qu8jdd63bluqHuw32WYqmr/n4Itkp4/z9tNbe\naXQHa3VWktRoXR2RbGl9nsZaGemfQzgo+v8Q3gCOBTZy9yMzK6oEI33NxxfpjTLN308r3hkH/Bfw\nxrjpCuArWR5QZdCbvnJ8kd4pU76fVtM/xN3njLQtTYPc9JXji/ReWfL9tDL9z7e4TUagHF8kH8r3\nVxnuy1lvAd4KHArMZtUHuuOBl7v7npkVNaAjfeX4Ivka9Hy/25H+3YR1cZ6K/9f+XQr8e1pFloWO\ncyuSPx1ft7VMf213f6ZH9dT2OVAjfeX4IsUxyPl+Wpn+RDO7wMxuMbN/xH9/T6nGgaccX6RYyp7v\nt9L0zwG+SzgYegU4F5iZYU0DRevqiBRPmdfnaSXeud7d9zCzm9x95+S2zIoakHhH8/FFimsQ5++n\ntZ7+U2a2FvBXM/so4QPe9dMocJBpfXyRYivj+vvQ2kh/T+BWYALwZWAD4NTkgcxTL6rPR/paH1+k\nfwzS+vupfCM3D/3e9DUfX6S/DMr8/a6avpldRjhyVqM7cHc/sPsSmxTVx01fOb5I/xmUfL/bpv8A\ncCcwC/hjbXP83919blqFNth3XzZ9zccX6V+DMH+/26Y/GngTMBnYGfgFMMvdMz+0YT82feX4Iv2v\n3/P91DJ9M1uH0PxPB4bc/VvplNh0f33X9JXjiwyGfs73u276ZrYusD9wGDCRsO7ODHe/K8U6G+23\nr5q+cnyRwdHP+X638c6PgR2By4Hz3P2mlItbC7gOuNPdD6i7rG+avnJ8kcHTr/l+t01/BdDs6Fju\n7ht0WdyngFcA4+tnAvVL01eOLzK4+jHf72rBNXcf5e7jm/zrtuFvRlir/2waTwntC1pXR2RwDer6\nPK0suJaFrwOfAVbktP+uaX18kcFXW3//+9/Pu5L0tLL2TqrM7G3A/e5+g5lVml1vaGho5elKpUKl\n0vSqPVdbV2f6dH1wKzLIkuvz7L138fL9arVKtVpt6zY9X4bBzL4KvJewVPO6hLV8LnT3wxPXKWym\nrxxfpHz6Jd8v/No7ZrYv8Ol+mr2j+fgi5dQP8/fTOnJW1orZ3RtQji9SXoNyfF2tstkizccXkaLP\n3++XkX7h6Ti3IgKDcXxdjfRboBxfRJKKmu8X/oPcZorU9LWujojUK+r6PGr6XVKOLyLNFDHfV6bf\nBeX4IjKcfs33NdJvQjm+iLSiSPm+4p0OKccXkVYVKd9X0++AcnwRaVdR8n1l+m1Sji8ineinfF8j\n/QTl+CL+xFGtAAAIJElEQVTSjbzzfcU7bVCOLyLdyjvfV9NvkXJ8EUlLnvm+Mv0WKMcXkTQVPd8v\n/UhfOb6IZCGPfF/xzgiU44tIVvLI99X0h6EcX0Sy1ut8X5l+E8rxRaQXipjvl3KkrxxfRHqpV/l+\nYUf6Zra5mV1tZjeb2WIz+3iv9q3j3IpIrxXp+Lq5jPTNbBNgE3dfaGbjgAXA29391nh5JiN95fgi\nkpde5PuFHem7+73uvjCefgy4FXhxlvtUji8ieSpKvp97pm9mE4G5wI7xDSCTkb5yfBEpgizz/cKO\n9GtitHMB8Ilaw8+CcnwRKYq88/3R+ewWzGwMcCHwE3e/pP7yoaGhlacrlQqVSqWj/SxdCpMnw9ln\n6wtYIpK/sWNhzpyQ7++1V3f5frVapVqttnWbvD7INeBcYKm7/2eDy1OJd1asgAMPhO23D/GOiEhR\nzJwJJ58MCxbA+PHp3Gdhv5FrZvsAvwVuBGoFnODuv4yXp9L0leOLSJGlne8XtumPJI2mr3V1RKTo\n0l6fp7RNX/PxRaRfpDl/v/Czd7Kg+fgi0k96PX9/4Eb6yvFFpB+lke+XLt5Rji8i/SqNfL9UTV85\nvoj0u27z/dJk+srxRWQQ9CLfH4iRvnJ8ERkkneb7pYh3lOOLyKDpNN8f+KavHF9EBlUn+f5AZ/rK\n8UVkkGWV7/ftSF85voiUQTv5/sDGO8rxRaQs2sn3B7LpK8cXkbJpNd8fuExfOb6IlFGa+X5fjfSV\n44tImY2U7w9UvKMcX0TKbqR8f2CavnJ8EZFguHx/IDJ95fgiIqt0m+8XfqSvHF9EZE2N8v3CjvTN\nbJKZ/dnM/mJmxze73rx5cNppMHu2Gr6ISNK0abB4MUyf3t7tet70zWwt4FvAJODlwGQz26H+ekuX\nwuTJcPbZxf3gtlqt5l1CS1Rnuvqhzn6oEVRnN8aOhTlz4MQTYdGi1m+Xx0h/T+Cv7n67uz8LzAYO\nqr9SP+T4RXwhNKI609UPdfZDjaA6u9VJvp9H038JsCRx/s64bTVLl8LUqT2rSUSkL02ZApVK60sw\n59H0W/rkWDm+iEhrpk2Dm29u7bo9n71jZnsDQ+4+KZ4/AVjh7l9LXKd4U4pERPpA4b6cZWajgduA\nNwJ3A9cCk9391p4WIiJSQqN7vUN3f87MPgr8ClgL+IEavohIbxTyy1kiIpKNwi3D0OoXt/JkZjPM\n7D4zuynvWoZjZpub2dVmdrOZLTazj+ddUz0zW9fM/mhmC83sFjMr9JwtM1vLzG4ws8vyrqUZM7vd\nzG6MdV6bdz3NmNkEM7vAzG6NP/u9866pnpltF5/H2r+Hi/h7BOHz0fi7fpOZ/dTM1ml4vSKN9OMX\nt24D9gPuAv5EAfN+M3st8BjwI3ffOe96mjGzTYBN3H2hmY0DFgBvL+DzuZ67PxE/7/kd8Gl3/13e\ndTViZp8CXgGMd/cD866nETP7B/AKd1+Wdy3DMbNzgbnuPiP+7Nd394fzrqsZMxtF6Et7uvuSka7f\nS2Y2EfgNsIO7P21m5wGXu/u59dct2ki/pS9u5c3drwGW513HSNz9XndfGE8/BtwKvDjfqtbk7k/E\nk2sTPucpZLMys82AtwJnAyMcrTR3ha7PzDYEXuvuMyB81lfkhh/tB/ytaA0/egR4FlgvvoGuR3iD\nWkPRmn5LX9yS9sWRwO7AH/OtZE1mNsrMFgL3AVe7+y1519TE14HPACvyLmQEDlxpZteZ2QfzLqaJ\nrYAHzOwcM7vezKab2Xp5FzWCw4Cf5l1EI/GvujOAOwizIh9y9ysbXbdoTb84WdMAidHOBcAn4oi/\nUNx9hbvvBmwGvM7MKjmXtAYzextwv7vfQMFH0cBr3H134C3AsTGOLJrRwB7At919D+Bx4HP5ltSc\nma0NHADMybuWRsxsG+CTwETCX/PjzGxKo+sWrenfBWyeOL85YbQvHTKzMcCFwE/c/ZK86xlO/PP+\nF8C/5V1LA68GDox5+SzgDWb2o5xrasjd74n/PwBcTIhNi+ZO4E53/1M8fwHhTaCo3gIsiM9pEf0b\nMM/dl7r7c8BFhNfsGorW9K8DXmZmE+M766HApTnX1LfMzIAfALe4+zfyrqcRM3u+mU2Ip8cCbwJu\nyLeqNbn75919c3ffivBn/m/c/fC866pnZuuZ2fh4en3gzUDhZpm5+73AEjPbNm7aD2hxIYFcTCa8\n2RfVn4G9zWxs/L3fD2gYk/b8y1nD6ZcvbpnZLGBfYGMzWwJ80d3PybmsRl4DvAe40cxqjfQEd/9l\njjXV2xQ4N86MGAX82N2vyrmmVhQ1inwRcHH4vWc0MNPdf51vSU19DJgZB3h/A47KuZ6G4pvnfkBR\nPx/B3RfFvzyvI3zmdD3w/UbXLdSUTRERyVbR4h0REcmQmr6ISImo6YuIlIiavohIiajpi4iUiJq+\niEiJqOmLEBYAM7OP5F2HSNbU9EWCjYBj2r1R/AbsmAzqEcmEmr5IcAqwTTxQxqlt3G474DYzO83M\nts+oNpHU6Bu5IoCZbQn8vJOD4sRVTA8lLCPghPWO5rj74+lWKdI9NX0RVh5v4LJuj4RmZjsQmv6O\n7r5hCqWJpErxjkgdM/tKjHmurx3gJZ4/2czenjhe6h6J20w0s5MIS9r+E/iP3B6AyDA00hcBzGxj\nwnrpE9u83UTC4RM3BmYQjltQ+ENpSnmp6YtEZjYT2AX4X3f/bIu32Yxw8PnrMi1OJCVq+iIiJaJM\nX0SkRNT0RURKRE1fRKRE1PRFREpETV9EpETU9EVESkRNX0SkRNT0RURK5P8BVZaJTuXDd5QAAAAA\nSUVORK5CYII=\n", + "text/plain": [ + "<matplotlib.figure.Figure at 0x7f8cd98532d0>" + ] + }, + "metadata": {}, + "output_type": "display_data" + } + ], + "source": [ + "from numpy import ones,convolve as convol\n", + "%matplotlib inline\n", + "from matplotlib.pyplot import plot,xlabel,ylabel,title,show\n", + "#Matched Filter Output\n", + "T =4#\n", + "a =2#\n", + "t = range(0,T+1)\n", + "g = [2*xx for xx in ones([1,T+1])][0]\n", + "h =[abs(x) for x in (convol(g,g))]\n", + "for i in range(0,len(h)):\n", + " if(h[i]<0.01):\n", + " h[i]=0\n", + " \n", + "h = [hh-T for hh in h]\n", + "t1 = range(0,len(h))\n", + "plot(t,g)\n", + "xlabel('t--->')\n", + "ylabel('g(t)---->')\n", + "title('Rectangular pulse duration T = 4, a =2')\n", + "show()\n", + "plot(t1,h)\n", + "xlabel('t--->')\n", + "ylabel('Matched Filter output')\n", + "title('Output of filter matched to rectangular pulse g(t)')\n", + "show()\n" + ] + } + ], + "metadata": { + "kernelspec": { + "display_name": "Python 2", + "language": "python", + "name": "python2" + }, + "language_info": { + "codemirror_mode": { + "name": "ipython", + "version": 2 + }, + "file_extension": ".py", + "mimetype": "text/x-python", + "name": "python", + "nbconvert_exporter": "python", + "pygments_lexer": "ipython2", + "version": "2.7.9" + } + }, + "nbformat": 4, + "nbformat_minor": 0 +} diff --git a/Digital_Communications_by_S._Haykin/Chapter8_ffLFErg.ipynb b/Digital_Communications_by_S._Haykin/Chapter8_ffLFErg.ipynb new file mode 100644 index 00000000..ad52b4d6 --- /dev/null +++ b/Digital_Communications_by_S._Haykin/Chapter8_ffLFErg.ipynb @@ -0,0 +1,577 @@ +{ + "cells": [ + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "# Chapter 8 Error Control Coding" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "## Example8.1 page 384" + ] + }, + { + "cell_type": "code", + "execution_count": 1, + "metadata": { + "collapsed": false + }, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "generator matrix\n", + "[[ 1. 1. 1. 1. 1.]]\n", + "\n", + "parity-check matrix\n", + "[[ 1. 0. 0. 0. 1.]\n", + " [ 0. 1. 0. 0. 1.]\n", + " [ 0. 0. 1. 0. 1.]\n", + " [ 0. 0. 0. 1. 1.]]\n", + "\n", + "code word for binary one input\n", + "[[ 1. 1. 1. 1. 1.]]\n" + ] + } + ], + "source": [ + "from __future__ import division\n", + "from numpy import ones,zeros,identity,transpose,hstack,mat\n", + "\n", + "n =5# #block of identical 'n' bits\n", + "k =1# #one bit\n", + "m = 1## bit value = 1\n", + "I = identity(n-k) #Identity matrix\n", + "P = ones(n-k)##coefficient matrix\n", + "I=mat(I)\n", + "P=mat(P)\n", + "H = hstack([I,transpose(P)])##parity-check matrix\n", + "G = hstack([P, mat([1])])##generator matrix \n", + "x = m*G# #code word\n", + "print 'generator matrix\\n',G\n", + "print '\\nparity-check matrix\\n',H\n", + "print '\\ncode word for binary one input\\n',x" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "## Example8.2 page 386" + ] + }, + { + "cell_type": "code", + "execution_count": 1, + "metadata": { + "collapsed": false + }, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "identity matrix Ik\n", + "[[ 1. 0. 0. 0.]\n", + " [ 0. 1. 0. 0.]\n", + " [ 0. 0. 1. 0.]\n", + " [ 0. 0. 0. 1.]]\n", + "\n", + "coefficient matrix P\n", + "[[1 1 0]\n", + " [0 1 1]\n", + " [1 1 1]\n", + " [1 0 1]]\n", + "generator matrix G\n", + "[[ 1. 1. 0. 1. 0. 0. 0.]\n", + " [ 0. 1. 1. 0. 1. 0. 0.]\n", + " [ 1. 1. 1. 0. 0. 1. 0.]\n", + " [ 1. 0. 1. 0. 0. 0. 1.]]\n", + "parity chechk matrix H\n", + "[[ 1. 0. 0. 1. 0. 1. 1.]\n", + " [ 0. 1. 0. 1. 1. 1. 0.]\n", + " [ 0. 0. 1. 0. 1. 1. 1.]]\n", + "Code words of (7,4) Hamming code\n", + "[[ 0. 0. 0. 0. 0. 0. 0.]\n", + " [ 1. 0. 1. 0. 0. 0. 1.]\n", + " [ 1. 1. 1. 0. 0. 1. 0.]\n", + " [ 0. 1. 0. 0. 0. 1. 1.]\n", + " [ 0. 1. 1. 0. 1. 0. 0.]\n", + " [ 1. 1. 0. 0. 1. 0. 1.]\n", + " [ 1. 0. 0. 0. 1. 1. 0.]\n", + " [ 0. 0. 1. 0. 1. 1. 1.]\n", + " [ 1. 1. 0. 1. 0. 0. 0.]\n", + " [ 0. 1. 1. 1. 0. 0. 1.]\n", + " [ 0. 0. 1. 1. 0. 1. 0.]\n", + " [ 1. 0. 0. 1. 0. 1. 1.]\n", + " [ 1. 0. 1. 1. 1. 0. 0.]\n", + " [ 0. 0. 0. 1. 1. 0. 1.]\n", + " [ 0. 1. 0. 1. 1. 1. 0.]\n", + " [ 1. 1. 1. 1. 1. 1. 1.]]\n" + ] + } + ], + "source": [ + "from __future__ import division\n", + "from numpy import ones,zeros,identity,multiply,mat,concatenate,hstack,transpose\n", + "\n", + "\n", + "k = 4# #message bits length\n", + "n = 7# #block length\n", + "m = n-k##Number of parity bits\n", + "I = identity(k) #identity matrix\n", + "I=mat(I)\n", + "print 'identity matrix Ik\\n',I\n", + "P =[[1,1,0],[0,1,1],[1,1,1],[1,0,1]]##coefficient matrix\n", + "P=mat(P)\n", + "print '\\ncoefficient matrix P\\n',P\n", + "G = hstack([P,I]) #generator matrix\n", + "print 'generator matrix G\\n',G\n", + "\n", + "H = hstack([identity(k-1),transpose(P)])##parity check matrix\n", + "print 'parity chechk matrix H\\n',H\n", + "\n", + "#message bits\n", + "m = [[0,0,0,0],[0,0,0,1],[0,0,1,0],[0,0,1,1],[0,1,0,0],[0,1,0,1],[0,1,1,0],[0,1,1,1],[1,0,0,0],[1,0,0,1],[1,0,1,0],[1,0,1,1],[1,1,0,0],[1,1,0,1],[1,1,1,0],[1,1,1,1]]\n", + "\n", + "C = m*G#\n", + "C = (C%2)#\n", + "print 'Code words of (7,4) Hamming code\\n',C\n", + "\n" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "## Example8.3 page 389" + ] + }, + { + "cell_type": "code", + "execution_count": 1, + "metadata": { + "collapsed": false + }, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "remainder in polynomial form: \n", + " 2\n", + "1 x + 1 x\n", + "Parity bits are: [ 1. 1. 0.]\n", + "G:\n", + "[1, 1, 0, 1, 0, 0, 0]\n", + "[0, 1, 1, 0, 1, 0, 0]\n", + "[0, 0, 1, 1, 0, 1, 0]\n", + "[0, 0, 0, 1, 1, 0, 1]\n", + "\n", + "Generator Matrix G =\n", + "[1, 1, 0, 1, 0, 0, 0]\n", + "[0, 1, 1, 0, 1, 0, 0]\n", + "[1, 1, 1, 0, 0, 1, 0]\n", + "[1, 0, 1, 0, 0, 0, 1]\n", + "\n", + "Partiy Check matrix H =\n", + "\n", + "[1, 0, 0, 1, 0, 1, 1]\n", + "[0, 1, 0, 1, 1, 1, 0]\n", + "[0, 0, 1, 0, 1, 1, 1]\n" + ] + } + ], + "source": [ + "from numpy import poly1d, polydiv\n", + "#message sequence = [1,0,0,1]\n", + "g = poly1d([1,0,1,1]) #generator polynomial\n", + "m = poly1d([1,0,0,0])*poly1d([1,0,0,1]) #message sequence\n", + "q = polydiv(m,g)[0]\n", + "r = polydiv(m,g)[1]\n", + "p = r.coeffs\n", + "print 'remainder in polynomial form: \\n',r\n", + "print 'Parity bits are:',p\n", + "\n", + "def rev_coeffs(x):\n", + " X=[]\n", + " for i in reversed(x):\n", + " X.append(i)\n", + " return X\n", + "\n", + "\n", + "G = [rev_coeffs(g.coeffs),rev_coeffs((g*poly1d([1,0])).coeffs),rev_coeffs((g*poly1d([1,0,0])).coeffs),rev_coeffs((g*poly1d([1,0,0,0])).coeffs)]\n", + "M=len(G[-1])\n", + "for gg in G:\n", + " while len(gg)<M:\n", + " gg.append(0)\n", + "print \"G:\" \n", + "for gg in G:\n", + " print gg\n", + "\n", + "def fun1(a,x,y):\n", + " import numpy as np\n", + " z=[]\n", + " for xx,yy in np.nditer([a[x-1],a[y-1]]):\n", + " z.append(xx+yy)\n", + " a[x-1]=z\n", + " return a \n", + "\n", + "def modulo(a,i):\n", + " bb=[]\n", + " for aa in a[i-1]:\n", + " bb.append(aa%2)\n", + " a[i-1]=bb \n", + " return a\n", + "\n", + "G=fun1(G,3,1)#G(3,:) = G(3,:)+G(1,:);\n", + "G=modulo(G,3)#G(3,:) = modulo(G(3,:),2);\n", + "G=fun1(G,4,1)\n", + "G=fun1(G,4,2)#G(4,:) = G(1,:)+G(2,:)+G(4,:);\n", + "G=modulo(G,4)#G(4,:) = modulo(G(4,:),2);\n", + "print '\\nGenerator Matrix G ='\n", + "for ggg in G:\n", + " print ggg\n", + "\n", + "\n", + "#h = 1+D^-1+D^-2+D^-4;\n", + "#H_D = [D^4*h;D^5*h;D^6*h];\n", + "H_D=[poly1d([1,1,1,0,1]),poly1d([1,1,1,0,1,0]),poly1d([1,1,1,0,1,0,0])] \n", + "\n", + "\n", + "#H_num =numer(H_D);\n", + "#H = coeff(H_num);\n", + "H=[rev_coeffs(aa.coeffs) for aa in H_D]\n", + "\n", + "M=len(H[-1])\n", + "for hh in H:\n", + " while len(hh)<M:\n", + " hh.append(0)\n", + "H=fun1(H,1,3)\n", + "H= modulo(H,1) \n", + "print '\\nPartiy Check matrix H =\\n'\n", + "for hh in H:\n", + " print hh" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "## Example8.4 page 395" + ] + }, + { + "cell_type": "code", + "execution_count": 1, + "metadata": { + "collapsed": false + }, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "remainder in polynomial form: \n", + " 2\n", + "1 x + 1 x\n", + "Parity bits are: [ 1. 1. 0.]\n", + "Table 8.3 Contents of the Shift Register in the Encoder of fig8.7 for Message Sequence(1001)\n", + "__________________________________________________________________________________________\n", + "Shift Input Register Contents\n", + "__________________________________________________________________________________________\n", + "1 1 1 1 0\n", + "2 0 0 1 1\n", + "3 0 1 1 1\n", + "4 1 0 1 1\n", + "____________________________________________________________________________________________\n" + ] + } + ], + "source": [ + "from numpy import poly1d,polydiv\n", + "#message sequence = [1,0,0,1]\n", + "g = poly1d([1,0,1,1]) #generator polynomial\n", + "m = poly1d([1,0,0,0])*poly1d([1,0,0,1])# #message sequence\n", + "q= polydiv(m,g)[0]\n", + "r= polydiv(m,g)[1]\n", + "p = r.coeffs\n", + "print 'remainder in polynomial form: \\n',r\n", + "print 'Parity bits are:',p\n", + "print 'Table 8.3 Contents of the Shift Register in the Encoder of fig8.7 for Message Sequence(1001)'\n", + "print '__________________________________________________________________________________________'\n", + "print 'Shift Input Register Contents'\n", + "print '__________________________________________________________________________________________'\n", + "print '1 1 1 1 0'\n", + "print '2 0 0 1 1'\n", + "print '3 0 1 1 1'\n", + "print '4 1 0 1 1'\n", + "print '____________________________________________________________________________________________'" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "## Example8.5 page 396" + ] + }, + { + "cell_type": "code", + "execution_count": 1, + "metadata": { + "collapsed": false + }, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "remainder in polynomial form : \n", + " 2\n", + "2 x + 2 x\n", + "Syndrome bits for error free codeword are: [0.0, 0.0, 0.0]\n", + "remainder in polynomial form for errored codeword : \n", + " 2\n", + "2 x + 3 x + 1\n", + "Syndrome bits for errored codeword are: [0.0, 1.0, 1.0]\n" + ] + } + ], + "source": [ + "from numpy import poly1d,polydiv\n", + "\n", + "#message sequence = [0,1,1,1,0,0,1]\n", + "\n", + "g = poly1d([1,0,1,1]) # #generator polynomial\n", + "C1 = poly1d([1,0,0,1,1,1,0]) #error free codeword\n", + "C2 = poly1d([1,0,0,0,1,1,0]) #middle bit is error\n", + "#[r1,q1] = pdiv(C1,g)#\n", + "\n", + "q1 = polydiv(C1,g)[0]\n", + "r1 = polydiv(C1,g)[1]\n", + "\n", + "S1 = (r1).coeffs\n", + "S1 = [xx%2 for xx in S1]\n", + "print 'remainder in polynomial form : \\n',r1\n", + "print 'Syndrome bits for error free codeword are:',S1\n", + "q2 = polydiv(C2,g)[0]\n", + "r2 = polydiv(C2,g)[1]\n", + "S2 = (r2).coeffs\n", + "S2 = [xx%2 for xx in S2]\n", + "print 'remainder in polynomial form for errored codeword : \\n',r2\n", + "print 'Syndrome bits for errored codeword are:',S2" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "## Example8.6 page 399" + ] + }, + { + "cell_type": "code", + "execution_count": 1, + "metadata": { + "collapsed": false + }, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "n = 3\n", + "n-k = 2\n", + "Code rate:r = k/n = 0.333\n", + "It can correct any error upto = 2\n" + ] + } + ], + "source": [ + "from __future__ import division\n", + "#Single-error-correcting RS code with a 2-bit byte\n", + "\n", + "m =2# #m-bit symbol\n", + "k = 1**2# #number of message bits\n", + "t =1# #single bit error correction\n", + "n = 2**m-1# #code word length in 2-bit byte\n", + "p = n-k# #parity bits length in 2-bit byte\n", + "r = k/n# #code rate\n", + "print 'n =',n\n", + "print 'n-k =',p\n", + "print 'Code rate:r = k/n = %.3f'%r\n", + "print 'It can correct any error upto =',(2*t)" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "## Example8.7 page 401" + ] + }, + { + "cell_type": "code", + "execution_count": 1, + "metadata": { + "collapsed": false + }, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "Result:\n", + "[1.0, 1.0] \n", + "\n", + "[1.0, 0.0] \n", + "\n", + "[1.0, 1.0] \n", + "\n", + "[1.0, 1.0] \n", + "\n", + "[0.0, 1.0] \n", + "\n", + "[0.0, 1.0] \n", + "\n", + "[1.0, 1.0] \n", + "\n" + ] + } + ], + "source": [ + "from numpy import convolve,ones\n", + "g1 = [1,1,1] # The input Top Adder Sequence\n", + "g2 = [1,0,1] #The input Bottom Adder Sequence\n", + "m =[1,1,0,0,1] # The message sequence\n", + "x1 = [round(xx) for xx in convolve(g1,m)]\n", + "x2 = [round(xx) for xx in convolve(g2,m)]\n", + "x1 = [xx%2 for xx in x1]\n", + "x2 = [xx%2 for xx in x2]\n", + "N = len(x1)\n", + "x=[]\n", + "for i in range(0,len(x1)):\n", + " x.append([x1[N-i-1],x2[N-i-1]])\n", + "print 'Result:' \n", + "for xx in x:\n", + " print xx,'\\n'" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "## Example8.8 page 404" + ] + }, + { + "cell_type": "code", + "execution_count": 1, + "metadata": { + "collapsed": false + }, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "top output sequence\n", + "1 \t1 \t1 \t1 \t0 \t0 \t1 \t\n", + "bottom output sequence\n", + "1 \t0 \t1 \t1 \t1 \t1 \t1 \t" + ] + } + ], + "source": [ + "from numpy import poly1d\n", + "g1D=poly1d([1,1,1]) #generator polynomial 1\n", + "g2D=poly1d([1,0,1]) #generator polynomial 2\n", + "mD=poly1d([1,1,0,0,1]) #message sequence polynomial representation\n", + "x1D=(g1D*mD) #top output polynomial\n", + "x2D=(g2D*mD) #bottom output polynomial\n", + "x1=x1D.coeffs\n", + "x2=x2D.coeffs\n", + "x1=x1.tolist()\n", + "X1=[]\n", + "for i in reversed(x1):\n", + " X1.append(i)\n", + "X2=[]\n", + "for i in reversed(x2):\n", + " X2.append(i)\n", + "print 'top output sequence'\n", + "for xx in X1:\n", + " print xx%2,'\\t',\n", + "print '\\nbottom output sequence' \n", + "for xx in X2:\n", + " print xx%2,'\\t'," + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "## Example8.11 page 409" + ] + }, + { + "cell_type": "code", + "execution_count": 1, + "metadata": { + "collapsed": false + }, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "branch metric for correct reception : 0.8822\n", + "branch metric for any one correct recption: -3.7027\n", + "branch metric for no correct reception : -8.2877\n" + ] + } + ], + "source": [ + "from __future__ import division\n", + "from math import log\n", + "\n", + "r = 1/2# #code rate\n", + "n =2# #number of bits\n", + "pe = 0.04# #transition probility \n", + "p = 1-pe## probability of correct reception\n", + "gama_1 = 2*log(p,2)+2*(1-r)# #branch metric for correct reception\n", + "gama_2 = log(pe*p,2)+1# #branch metric for any one correct recption\n", + "gama_3 = 2*log(pe,2)+1# #branch metric for no correct reception\n", + "print 'branch metric for correct reception : %.4f'%gama_1\n", + "print 'branch metric for any one correct recption: %.4f'%gama_2\n", + "print 'branch metric for no correct reception : %.4f'%gama_3" + ] + } + ], + "metadata": { + "kernelspec": { + "display_name": "Python 2", + "language": "python", + "name": "python2" + }, + "language_info": { + "codemirror_mode": { + "name": "ipython", + "version": 2 + }, + "file_extension": ".py", + "mimetype": "text/x-python", + "name": "python", + "nbconvert_exporter": "python", + "pygments_lexer": "ipython2", + "version": "2.7.9" + } + }, + "nbformat": 4, + "nbformat_minor": 0 +} diff --git a/Digital_Communications_by_S._Haykin/Chapter9_4roMWPw.ipynb b/Digital_Communications_by_S._Haykin/Chapter9_4roMWPw.ipynb new file mode 100644 index 00000000..ca08a40e --- /dev/null +++ b/Digital_Communications_by_S._Haykin/Chapter9_4roMWPw.ipynb @@ -0,0 +1,365 @@ +{ + "cells": [ + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "# Chapter 9 Spread Spectrum Modulation" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "## Example9.1 page 461" + ] + }, + { + "cell_type": "code", + "execution_count": 4, + "metadata": { + "collapsed": false + }, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "The PN sequence at step: 1\n", + "x= [1, 0, 0]\n", + "The PN sequence at step: 2\n", + "x= [1, 1, 0]\n", + "The PN sequence at step: 3\n", + "x= [1, 1, 1]\n", + "The PN sequence at step: 4\n", + "x= [0, 1, 1]\n", + "The PN sequence at step: 5\n", + "x= [1, 0, 1]\n", + "The PN sequence at step: 6\n", + "x= [0, 1, 0]\n", + "The PN sequence at step: 7\n", + "x= [0, 0, 1]\n", + "Table 9.1 Range of PN Sequence lengths\n", + "_________________________________________________________\n", + "Length of shift register (m) = [7, 8, 9, 10, 11, 12, 13, 17, 19]\n", + "PN sequence Length (N) = [127, 255, 511, 1023, 2047, 4095, 8191, 131071, 524287]\n", + "_________________________________________________________\n" + ] + } + ], + "source": [ + "#Program to generate Maximum Length Pseudo Noise Sequence\n", + "#Period of PN Sequence N = 7\n", + "\n", + "#Assign Initial value for PN generator\n", + "x0= 1#\n", + "x1= 0#\n", + "x2 =0#\n", + "x3 =0#\n", + "N = 7 # the period of the signal\n", + "for i in range(1,N+1):\n", + " x3 =x2\n", + " x2 =x1\n", + " x1 = x0\n", + " x0 =(x1^x3)\n", + " print 'The PN sequence at step:',i\n", + " x = [x1, x2, x3]\n", + " print 'x=',x\n", + "\n", + "m = [7,8,9,10,11,12,13,17,19]#\n", + "N = [2**mm-1 for mm in m]\n", + "print 'Table 9.1 Range of PN Sequence lengths'\n", + "print '_________________________________________________________'\n", + "print 'Length of shift register (m) =',m\n", + "print 'PN sequence Length (N) =',N\n", + "print '_________________________________________________________'" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "## Example9.2 page 462" + ] + }, + { + "cell_type": "code", + "execution_count": 1, + "metadata": { + "collapsed": false + }, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "The PN sequence at step : 1\n", + "x= [1, 0, 0]\n", + "The PN sequence at step : 2\n", + "x= [1, 1, 0]\n", + "The PN sequence at step : 3\n", + "x= [1, 1, 1]\n", + "The PN sequence at step : 4\n", + "x= [0, 1, 1]\n", + "The PN sequence at step : 5\n", + "x= [1, 0, 1]\n", + "The PN sequence at step : 6\n", + "x= [0, 1, 0]\n", + "The PN sequence at step : 7\n", + "x= [0, 0, 1]\n", + "Output Sequence : [0, 0, 1, 1, 1, 0, 1]\n", + "Output Sequence levels : [-1, -1, 1, 1, 1, -1, 1]\n", + "Number of 1s in the given PN sequence : 4\n", + "Number of 0s in the given PN sequence : 3\n", + "Property 1 (Balance property) is satisified\n" + ] + }, + { + "data": { + "image/png": "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\n", + "text/plain": [ + "<matplotlib.figure.Figure at 0x7f421c158a90>" + ] + }, + "metadata": {}, + "output_type": "display_data" + } + ], + "source": [ + "from numpy import corrcoef as corr\n", + "%matplotlib inline\n", + "from matplotlib.pyplot import plot,xlabel,ylabel,title,show\n", + "\n", + "#Period of PN Sequence N = 7\n", + "#Properites of maximum-length sequence\n", + "\n", + "#Assign Initial value for PN generator\n", + "x0= 1#\n", + "x1= 0#\n", + "x2 =0#\n", + "x3 =0#\n", + "N = 7 #the period of the signal\n", + "one_count = 0\n", + "zero_count = 0\n", + "C=[]\n", + "C_level=[]\n", + "t=[]\n", + "for i in range(1,N+1):\n", + " x3 =x2#\n", + " x2 =x1#\n", + " x1 = x0#\n", + " x0 =(x1^x3)\n", + " print 'The PN sequence at step :',i\n", + " x = [x1 ,x2 ,x3]\n", + " print 'x=',x\n", + " C.append(x3)\n", + " if(C[i-1]==1):\n", + " C_level.append(1)\n", + " one_count = one_count+1\n", + " elif(C[i-1]==0):\n", + " C_level.append(-1)\n", + " zero_count = zero_count+1\n", + " \n", + "print 'Output Sequence : ',C #refer equation 9.4\n", + "print 'Output Sequence levels :',C_level#refer equation 9.5\n", + "if(zero_count < one_count):\n", + " print 'Number of 1s in the given PN sequence : ',one_count\n", + " print 'Number of 0s in the given PN sequence :',zero_count\n", + " print 'Property 1 (Balance property) is satisified'\n", + "\n", + "Rc_tuo = corr(C_level,rowvar=N)\n", + "t = range(1,2*len(C_level)+1)\n", + "plot(t,C_level+C_level)\n", + "xlabel(' t')\n", + "title('Waveform of maximum-length sequence [0 0 1 1 1 0 1 0 0 1 1 1 0 1]')\n", + "show()" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "## Example9.3 page 468" + ] + }, + { + "cell_type": "code", + "execution_count": 1, + "metadata": { + "collapsed": false + }, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "The processing gain is: 4095.0\n", + "The required PN sequence is: 4095.0\n", + "The feedback shift register length: 12.0\n", + "Jamming Margin in dB: 26.122539061\n" + ] + } + ], + "source": [ + "from math import log,log10\n", + "def log2(x):\n", + " return log(x,2)\n", + "\n", + "Tb = 4.095*10**-3##Information bit duration\n", + "Tc = 1*10**-6##PN chip duration\n", + "PG = Tb/Tc##Processing gain\n", + "print 'The processing gain is:',PG\n", + "N = PG# #PN sequence length\n", + "m = log2(N+1)##feedback shift register length\n", + "print 'The required PN sequence is:',N\n", + "print 'The feedback shift register length:',m\n", + "Eb_No = 10##Energy to noise density ratio\n", + "J_P = PG/Eb_No##Jamming Margin\n", + "print 'Jamming Margin in dB:',10*log10(J_P)" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "## Example9.4 page 469" + ] + }, + { + "cell_type": "code", + "execution_count": 1, + "metadata": { + "collapsed": false + }, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "number of bits per symbol K = 2\n", + "Number of MFSK tones M= 4\n", + "Period of the PN sequence N = 15\n", + "length of PN sequence per hop k = 3\n", + "Total number of frequency hops = 8\n" + ] + } + ], + "source": [ + "#Slow and Fast Frequency Hopping\n", + "K =2# #number of bits per symbol\n", + "M = 2**K# #Number of MFSK tones\n", + "N = 2**M-1##Period of the PN sequence\n", + "k = 3# #length of PN sequence per hop\n", + "print 'number of bits per symbol K =',K\n", + "print 'Number of MFSK tones M=',M\n", + "print 'Period of the PN sequence N =',N\n", + "print 'length of PN sequence per hop k =',k\n", + "print 'Total number of frequency hops =',2**k" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "## Example9.5 page 470" + ] + }, + { + "cell_type": "code", + "execution_count": 2, + "metadata": { + "collapsed": false + }, + "outputs": [ + { + "data": { + "image/png": "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\nreSLO92IZLTJSIOebEmTgb1SnPpJ8oGZmaR0f/LxZrZc0leAyZLmmdlzqRqWM59+Iu3C66+XbIiq\norbW+Zevvz67TTITJ7oSdB07llxaxZNcuPu3vw1bTelJrAXdckvYShzHHw+ffAIzZpQnWWNo+fSD\nvPg1Zva+pL2Bp82swWhZSSOADWb2hxTnyppw7d574R//qIyal1HAzBXv/tvfstsOf/750K8fXBKp\ne7/48uabrvDP4sUuN08lM2MGnHsuvPNOeXfhNsTPf+5CN//0p/KPXc6Eaw8BXw+efx3YLlpYUlNJ\nzYPnuwJ9gUjchPrY/OIiZe9bXrPG7WT0aReKR/furjbs00+HraT0hJF2IRO1tc7lFIe0DIV8bDcA\nfSQtAHoHx0hqKylRu2Yv4DlJM4FpwCNmNqkQwcVg1SqXHvW888JWUlkMGeJilj/5pOF248bB174G\nLVIG+XrypRpi9rdscZFKYUft1KdTJ9hvP5dDKurkbfTNbI2ZnWpmnc2sr5mtC15/z8zOCJ6/Y2aH\nBY+Dzew3xRJeCGPHutjy5s3DVlJZtGsHRxzhikc3RBRC7SqRRFqGjz8OW0npePJJl/OmS5ewlWxP\nXKKoInSDVD680SkdmWabb7/tis/361c+TdVCmzZw3HFw//1hKykdUd7MN3AgPPYYfPRR2EoapuqM\n/vz5biPFqaeGraQyOe88eO45WLky9fmRI922+R13LK+uaiEus818WL/e1b0IK+1CJvbc04XPjh8f\ntpKGqTqjX1fnfM8+7UJpaNbMbZgZO3b7c2b+LqvU9O8PL79cmWkZ7rvPGdVWrcJWkp44rKtUldH3\naRfKQ7ov/osvuovtkUeWX1O10KSJC2eMc+HudMRhwnDmmW7vz+LFYStJT1UZ/eeec4u3PXqEraSy\nOeUUWLbMFapOxu+ALg+VWFxlyRKX4+bMM8NW0jA77+xCkaOclqGqjL7P9VIeGjf+Yodogs8+cxvi\nfNqF0nPSSa4EZSXtNh81CgYMcLluok7iohvVtAxVY/Q/+cSlYh0yJGwl1UFt7ZcLdz/6qKvruu++\n4eqqBhKFu6PuW86WuK0FHXecyy316qthK0lNIfn0L5D0pqStktJmnJDUT9I8SW9Juirf8Qrl4Ydd\nDHm7dmEpqC4OPdRtvnr2WXccpx9tJZC46G7dGraSwpkxw03ajj8+bCXZIUV7QbeQmf5s4Fzg2XQN\n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\n", + "text/plain": [ + "<matplotlib.figure.Figure at 0x7f228c011a90>" + ] + }, + "metadata": {}, + "output_type": "display_data" + }, + { + "data": { + "image/png": "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\n", + "text/plain": [ + "<matplotlib.figure.Figure at 0x7f2287962410>" + ] + }, + "metadata": {}, + "output_type": "display_data" + } + ], + "source": [ + "from numpy import ones,sin,arange,hstack,nditer,pi\n", + "%matplotlib inline\n", + "from matplotlib.pyplot import plot,subplot,xlabel,ylabel,title,show\n", + "\n", + "\n", + "#Figure 9.4:Generation of waveforms in DS/BPSK spread spectrum transmitter\n", + "t = range(0,13+1)\n", + "N = 7#\n", + "wt = arange(0,0.01+1,0.01)\n", + "bt = hstack([[1*xx for xx in ones(N)],[-1*yy for yy in ones(N)]])\n", + "ct = [0,0,1,1,1,0,1,0,0,1,1,1,0,1]\n", + "ct_polar = [-1,-1,1,1,1,-1,1,-1,-1,1,1,1,-1,1]\n", + "mt = [a*b for a,b in nditer([bt,ct_polar])]\n", + "Carrier = [2*sin(wtt*2*pi) for wtt in wt]\n", + "\n", + "st = []#\n", + "for i in range(0,len(mt)):\n", + " st = st+[mt[i]*Cr for Cr in Carrier]\n", + "\n", + "subplot(3,1,1)\n", + "plot(t,bt)\n", + "xlabel(' t')\n", + "title('Data b(t)')\n", + "subplot(3,1,2)\n", + "plot(t,ct_polar)\n", + "xlabel(' t')\n", + "title('Spreading code c(t)')\n", + "subplot(3,1,3)\n", + "plot(t,mt)\n", + "xlabel(' t')\n", + "title('Product Signal m(t)')\n", + "show()\n", + "subplot(3,1,1)\n", + "plot(t,mt)\n", + "xlabel(' t')\n", + "title('Product Signal m(t)')\n", + "subplot(3,1,2)\n", + "plot(Carrier)\n", + "xlabel(' t')\n", + "title('Carrier Signal')\n", + "subplot(3,1,3)\n", + "plot(st)\n", + "xlabel(' t')\n", + "title('DS/BPSK signal s(t)')\n", + "show()" + ] + } + ], + "metadata": { + "kernelspec": { + "display_name": "Python 2", + "language": "python", + "name": "python2" + }, + "language_info": { + "codemirror_mode": { + "name": "ipython", + "version": 2 + }, + "file_extension": ".py", + "mimetype": "text/x-python", + "name": "python", + "nbconvert_exporter": "python", + "pygments_lexer": "ipython2", + "version": "2.7.9" + } + }, + "nbformat": 4, + "nbformat_minor": 0 +} diff --git a/Digital_Communications_by_S._Haykin/screenshots/Ch-6_RaisedCosineSpectrum_NizDJ8d.png b/Digital_Communications_by_S._Haykin/screenshots/Ch-6_RaisedCosineSpectrum_NizDJ8d.png Binary files differnew file mode 100644 index 00000000..96b74924 --- /dev/null +++ b/Digital_Communications_by_S._Haykin/screenshots/Ch-6_RaisedCosineSpectrum_NizDJ8d.png diff --git a/Digital_Communications_by_S._Haykin/screenshots/Ch6_powerSpectralDensities_9tUd56q.png b/Digital_Communications_by_S._Haykin/screenshots/Ch6_powerSpectralDensities_9tUd56q.png Binary files differnew file mode 100644 index 00000000..505c3998 --- /dev/null +++ b/Digital_Communications_by_S._Haykin/screenshots/Ch6_powerSpectralDensities_9tUd56q.png diff --git a/Digital_Communications_by_S._Haykin/screenshots/ch6_sinc_pilse_snbi7FJ.png b/Digital_Communications_by_S._Haykin/screenshots/ch6_sinc_pilse_snbi7FJ.png Binary files differnew file mode 100644 index 00000000..8f97aed2 --- /dev/null +++ b/Digital_Communications_by_S._Haykin/screenshots/ch6_sinc_pilse_snbi7FJ.png diff --git a/Electrical_Machines_-_I_by_M._Verma_And_V._Ahuja/README.txt b/Electrical_Machines_-_I_by_M._Verma_And_V._Ahuja/README.txt new file mode 100644 index 00000000..21b573c6 --- /dev/null +++ b/Electrical_Machines_-_I_by_M._Verma_And_V._Ahuja/README.txt @@ -0,0 +1,10 @@ +Contributed By: Preeti Rani +Course: btech +College/Institute/Organization: Techwords Institute +Department/Designation: ME +Book Title: Electrical Machines - I +Author: M. Verma And V. Ahuja +Publisher: Vayu Education Of India, New Delhi +Year of publication: 2009 +Isbn: 9788184316957 +Edition: 1
\ No newline at end of file diff --git a/Principle_of_Communication_Engineering_by_A._Singh_and_A._K._Chhabra/Chapter10_8mim6PA.ipynb b/Principle_of_Communication_Engineering_by_A._Singh_and_A._K._Chhabra/Chapter10_8mim6PA.ipynb new file mode 100644 index 00000000..0eb7d255 --- /dev/null +++ b/Principle_of_Communication_Engineering_by_A._Singh_and_A._K._Chhabra/Chapter10_8mim6PA.ipynb @@ -0,0 +1,165 @@ +{ + "cells": [ + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "# Chapter No 10 - Propagation of radio waves" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "## Example10.1 PageNo 412" + ] + }, + { + "cell_type": "code", + "execution_count": 1, + "metadata": { + "collapsed": false + }, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "Field strength will reduce by 5.23 dBs\n" + ] + } + ], + "source": [ + "from __future__ import division\n", + "from math import sqrt, log10\n", + "#Given\n", + "Pt1=100#Radiated power\n", + "Pt2=30# Reduced Power \n", + "r=1#assume distance to be unity for easeof calculation\n", + "E1=300*sqrt(100)/r\n", + "E2=300*sqrt(30)/r\n", + "E=20*log10((E2/E1))# Reduction in field strength in dBs\n", + "print 'Field strength will reduce by %0.2f dBs'%(-E)" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "## Example10.2 PageNo 413" + ] + }, + { + "cell_type": "code", + "execution_count": 1, + "metadata": { + "collapsed": false + }, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "The field strength at distance 20km is 190.53 uV/m\n" + ] + } + ], + "source": [ + "#Given\n", + "P=3#Transmitter power\n", + "ht=100# Antenna height\n", + "G=5#Antenna gain\n", + "d=20e3#distance\n", + "lamda=1\n", + "hr=1#assumed\n", + "E=((88*G*ht*hr*P**0.5)/(lamda*d**2))#field strength\n", + "print 'The field strength at distance 20km is %0.2f uV/m'%(E*1e6)" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "## Example10.3 PageNo 413" + ] + }, + { + "cell_type": "code", + "execution_count": 4, + "metadata": { + "collapsed": false + }, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "Direct ray coverage is possible over 63.03 km\n" + ] + } + ], + "source": [ + "from math import sqrt\n", + "#Given\n", + "ht=152.5\n", + "hr=9.15 # Antenna height\n", + "d=4100*(sqrt(ht)+sqrt(hr)) #distance\n", + "print 'Direct ray coverage is possible over %0.2f km'%(d*1e-3)" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "## Example10.4 PageNo 414" + ] + }, + { + "cell_type": "code", + "execution_count": 3, + "metadata": { + "collapsed": false + }, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "Max possible distance for efective point to point\n", + " communication is 514.48 km\n" + ] + } + ], + "source": [ + "from math import sqrt\n", + "#Given\n", + "#b\n", + "ht=3e3\n", + "hr=5e3 # Antenna height\n", + "d=4100*(sqrt(ht)+sqrt(hr))#distance\n", + "print 'Max possible distance for efective point to point\\n communication is %0.2f km'%(d*1e-3)" + ] + } + ], + "metadata": { + "kernelspec": { + "display_name": "Python 2", + "language": "python", + "name": "python2" + }, + "language_info": { + "codemirror_mode": { + "name": "ipython", + "version": 2 + }, + "file_extension": ".py", + "mimetype": "text/x-python", + "name": "python", + "nbconvert_exporter": "python", + "pygments_lexer": "ipython2", + "version": "2.7.9" + } + }, + "nbformat": 4, + "nbformat_minor": 0 +} diff --git a/Principle_of_Communication_Engineering_by_A._Singh_and_A._K._Chhabra/Chapter11_NAIDtL1.ipynb b/Principle_of_Communication_Engineering_by_A._Singh_and_A._K._Chhabra/Chapter11_NAIDtL1.ipynb new file mode 100644 index 00000000..b8b0be75 --- /dev/null +++ b/Principle_of_Communication_Engineering_by_A._Singh_and_A._K._Chhabra/Chapter11_NAIDtL1.ipynb @@ -0,0 +1,68 @@ +{ + "cells": [ + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "# Chapter No 11 - Broadband Communication" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "## Example11.1, page no 435" + ] + }, + { + "cell_type": "code", + "execution_count": 2, + "metadata": { + "collapsed": false + }, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "The total no of samples per second is:\n", + "160000 samples/second\n" + ] + } + ], + "source": [ + "#Given\n", + "c=20# no of signal channels\n", + "s=8e3# Channel sampling rate\n", + "t=1/s# time interval over which ll channels are sampled once\n", + "#b\n", + "g=5e-6# guaed time for each channel sample\n", + "s_duration=t-g# duration of each sample\n", + "#c\n", + "samples_sec=c*s#\n", + "print 'The total no of samples per second is:\\n%d samples/second'%samples_sec" + ] + } + ], + "metadata": { + "kernelspec": { + "display_name": "Python 2", + "language": "python", + "name": "python2" + }, + "language_info": { + "codemirror_mode": { + "name": "ipython", + "version": 2 + }, + "file_extension": ".py", + "mimetype": "text/x-python", + "name": "python", + "nbconvert_exporter": "python", + "pygments_lexer": "ipython2", + "version": "2.7.9" + } + }, + "nbformat": 4, + "nbformat_minor": 0 +} diff --git a/Principle_of_Communication_Engineering_by_A._Singh_and_A._K._Chhabra/Chapter15_F19vfPd.ipynb b/Principle_of_Communication_Engineering_by_A._Singh_and_A._K._Chhabra/Chapter15_F19vfPd.ipynb new file mode 100644 index 00000000..d45717f4 --- /dev/null +++ b/Principle_of_Communication_Engineering_by_A._Singh_and_A._K._Chhabra/Chapter15_F19vfPd.ipynb @@ -0,0 +1,153 @@ +{ + "cells": [ + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "# Chapter No 15 - Basic Information theory" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "## Example15.1, page no 533" + ] + }, + { + "cell_type": "code", + "execution_count": 4, + "metadata": { + "collapsed": false + }, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "The source entropy is: 1.50 bits/symbol\n" + ] + } + ], + "source": [ + "from math import log\n", + "#Given\n", + "P_A=0.5# probability of producing symbol 'A'\n", + "P_B=0.25# probability of producing symbol 'B'\n", + "P_C=0.25# probability of producing symbol 'C'\n", + "def log2(x):\n", + " return log(x,2)\n", + "H=P_A*log2(1/P_A)+P_B*log2(1/P_B)+P_C*log2(1/P_C)# the source entropy\n", + "print 'The source entropy is: %0.2f bits/symbol'%(H)" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "## Example15.2, page no 535" + ] + }, + { + "cell_type": "code", + "execution_count": 9, + "metadata": { + "collapsed": false + }, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "The source entropy is: 1.94 bits/symbol\n" + ] + } + ], + "source": [ + "from __future__ import division\n", + "from math import log\n", + "def log2(x):\n", + " return log(x,2)\n", + "\n", + "#Given\n", + "P_A=0.5\n", + "P_B=0.25\n", + "P_C=1/32\n", + "P_D=1/8\n", + "P_E=1/16\n", + "P_F=1/32# probabilities of producing respective symbol\n", + "H=(P_A*log2(1/P_A))+(P_B*log2(1/P_B))+(P_C*log2(1/P_C))+(P_D*log2(1/P_D))+(P_E*log2(1/P_E))+(P_F*log2(1/P_F))# Source Entropy\n", + "n=6\n", + "T=1\n", + "print 'The source entropy is: %0.2f bits/symbol'%(round(1000*H)/1000)" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "## Example15.3, page no 536" + ] + }, + { + "cell_type": "code", + "execution_count": 11, + "metadata": { + "collapsed": false + }, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "a)\n", + " Channel capacity is: 20 Kbits/sec\n", + " Bandwidth: 5 KHz\n", + "b)\n", + " SNR for 3KHz bandwidth: 100.59\n" + ] + } + ], + "source": [ + "from math import log\n", + "def log2(x):\n", + " return log(x,2)\n", + "\n", + "#Given\n", + "#a\n", + "B1=4e3#Channel Bandwidth\n", + "SNR1=31#Channel SNR\n", + "C1=B1*log2(1+SNR1)#Channel Capacity\n", + "SNR2=14#Reduced SNR\n", + "B2=round(C1/log2(1+SNR2))#Bandwidth for reduced SNR with same Channel capacity\n", + "\n", + "#b\n", + "B3=3e3#Reduced Bandwidth\n", + "SNR3=(2**(C1/B3))-1#Signal Power for reduced bandwidth\n", + "print 'a)\\n Channel capacity is: %d Kbits/sec\\n Bandwidth: %d KHz\\nb)\\n SNR for 3KHz bandwidth: %0.2f'%(C1*1e-3,B2*1e-3,SNR3)\n", + "# the Answer in the book is wrong.It is printed as 90.4 for SNR3 but it should be 100.59" + ] + } + ], + "metadata": { + "kernelspec": { + "display_name": "Python 2", + "language": "python", + "name": "python2" + }, + "language_info": { + "codemirror_mode": { + "name": "ipython", + "version": 2 + }, + "file_extension": ".py", + "mimetype": "text/x-python", + "name": "python", + "nbconvert_exporter": "python", + "pygments_lexer": "ipython2", + "version": "2.7.9" + } + }, + "nbformat": 4, + "nbformat_minor": 0 +} diff --git a/Principle_of_Communication_Engineering_by_A._Singh_and_A._K._Chhabra/Chapter1_fAOC2QW.ipynb b/Principle_of_Communication_Engineering_by_A._Singh_and_A._K._Chhabra/Chapter1_fAOC2QW.ipynb new file mode 100644 index 00000000..0bf8c0e2 --- /dev/null +++ b/Principle_of_Communication_Engineering_by_A._Singh_and_A._K._Chhabra/Chapter1_fAOC2QW.ipynb @@ -0,0 +1,1411 @@ +{ + "cells": [ + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "# Chapter 1 : Signals" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "## Example1,page no12" + ] + }, + { + "cell_type": "code", + "execution_count": 22, + "metadata": { + "collapsed": false + }, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "The value of the above integral is:C=0\n", + " Since C=0, the two functions: \n", + " f(t)=sin(n*wo*t)\n", + " g(t)=cos(n*wo*t) are Orthogonal\n" + ] + } + ], + "source": [ + "from numpy.random import randint\n", + "from numpy import pi, arange\n", + "from mpmath import quad, sin, cos\n", + "#Given:\n", + "n=round(randint(1000))#any integers\n", + "m=round(randint(1000))#any integers\n", + "wo=2*(n+m)*pi#Angular Freq\n", + "t=arange(0,2*pi/wo,0.01)\n", + "to=0;t1=2*pi/wo\n", + "C= quad(lambda t:sin(n*wo*t)*cos(m*wo*t),[to,t1])# integrating sin(n*wo*t)*cos(m*wo*t) function\n", + "print \"The value of the above integral is:C=%d\\n Since C=%d, the two functions: \\n f(t)=sin(n*wo*t)\\n g(t)=cos(n*wo*t) are Orthogonal\"%(C,C)" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "## Example2,page no 12" + ] + }, + { + "cell_type": "code", + "execution_count": 23, + "metadata": { + "collapsed": false + }, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "The optimum value of C to minimise the mean square error is:\n", + " C= 1.273240\n" + ] + } + ], + "source": [ + "from numpy import arange,pi\n", + "from mpmath import quad, sin, cos\n", + "#Given:\n", + "# Curve on page no 9....fig 1.6\n", + "t=arange(0,2*pi,0.1)\n", + "t0=0\n", + "t1=2*pi\n", + "C=((quad(lambda t: sin(t),[t0,t1/2])-quad(lambda t: sin(t),[t1/2,t1]))/quad(lambda t :(sin(t))**2,[t0,t1]))\n", + "\n", + "print \"The optimum value of C to minimise the mean square error is:\\n C= %f\"%(C)" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "## Example3,page no12" + ] + }, + { + "cell_type": "code", + "execution_count": 14, + "metadata": { + "collapsed": false + }, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "a) The value of constants Cn are:\n", + "1.273237 for n= 1\n", + "\n", + "0.000000 for n= 2\n", + "\n", + "0.424406 for n= 3\n", + "\n", + "0.000000 for n= 4\n", + "\n", + "0.254636 for n= 5\n", + "\n", + "0.000000 for n= 6\n", + "\n", + "0.181874 for n= 7\n", + "\n", + "b) Mean Square error is\n", + "epsi(1) = 0.190000\n", + "\n", + "epsi(3) = 0.100000\n", + "\n", + "epsi(5) = 0.070000\n", + "\n", + "epsi(7) = 0.050000\n", + "\n" + ] + } + ], + "source": [ + "from numpy import arange\n", + "from mpmath import quad\n", + "from math import pi,sin\n", + "#Given:\n", + "#a # Referance Figure on page no 9.. (1.6d)\n", + "\n", + "t=range(0,int(2*3.14+1))\n", + "t0=0\n", + "t1=2*3.14\n", + "print 'a) The value of constants Cn are:'\n", + "C=[] \n", + "for i in range(1,8):\n", + " C.append((quad(lambda t:sin(i*t),[t0,t1/2])-quad(lambda t:sin(i*t),[t1/2,t1]))/quad(lambda t:(sin(i*t))**2,[t0,t1]))\n", + " if C[i-1] <= 0.01:\n", + " C[i-1]=0\n", + " \n", + " print '%f for n= %d\\n'%(C[i-1],i)\n", + "\n", + "#b Mean Square error\n", + "\n", + "int1=quad(lambda t:(1)**2,[t0,t1])\n", + "for n in range(1,8):\n", + " if (n%2) == 0:\n", + " C[n-1] = 0\n", + " else:\n", + " C[n-1]=4.0/(n*pi)\n", + "\n", + "\n", + "K=[]\n", + "for n in range(1,8):\n", + " \n", + " K.append(quad(lambda t:(sin(n*t))**2,[t0,t1]))\n", + " \n", + "K[n-1]=pi\n", + "S=[0]\n", + "for n in range(1,8):\n", + " S.append(S[n-1]+(((C[n-1])**2)*K[n-1]))\n", + "#Mean Square error\n", + "epsi=[]\n", + "for n in range(1,8):\n", + " epsi.append((1.0/(t1-t0)*(int1-S[n])))\n", + "\n", + "print 'b) Mean Square error is'\n", + "for n in arange(1,2+7,2):\n", + " print 'epsi(%d) = %f\\n'%(n,round(100*epsi[n-1])/100)" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "## Example4,page no12" + ] + }, + { + "cell_type": "code", + "execution_count": 5, + "metadata": { + "collapsed": false + }, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "P0 = 1\n", + "P1 = t\n", + "P2 = 1.5*t**2 - 0.5\n", + "P3 = 2.5*t**2 - 1.5\n", + "\n", + "The Constant coeff (Cn) values are :\n", + "C0 = 0.0\n", + "C1 = -1.5\n", + "C2 = 0.0\n", + "C3 = 0.875\n", + "\n", + "f(t)= 0*P0 + -1.500000*P1 + 0*P2 + 0.875000*P3\n" + ] + } + ], + "source": [ + "from sympy import symbols,solve\n", + "from mpmath import quad\n", + "from numpy import arange\n", + "#Given:\n", + "t=arange(-1,1.01,0.01)\n", + "t0=-1\n", + "t1=1\n", + "# Legendre Polynomial\n", + "t=symbols(\"t\")\n", + "P0=1\n", + "P1=t\n", + "P2=-0.5+1.5*t**2\n", + "P3=-1.5+2.5*t**2\n", + "print \"P0 =\",P0\n", + "print \"P1 =\",P1\n", + "print \"P2 =\",P2\n", + "print \"P3 =\",P3\n", + "#The Constant coeff (Cn)\n", + "C0=0.5*(quad(lambda t:1,[-1,0])+quad(lambda t:-1,[0,1]))\n", + "C1=1.5*(quad(lambda t:t,[-1,0])+quad(lambda t:-t,[0,1]))\n", + "C2=2.5*(quad(lambda t:(1.5*t**2)-0.5,[-1,0])+quad(lambda t:-(1.5*t**2)+0.5,[0,1]))\n", + "C3=3.5*(quad(lambda t:(2.5*t**3)-(1.5*t),[-1,0])+quad(lambda t:-(2.5*t**3)+(1.5*t),[0,1]))\n", + "print \"\\nThe Constant coeff (Cn) values are :\"\n", + "print \"C0 =\",C0\n", + "print \"C1 =\",C1\n", + "print \"C2 =\",C2\n", + "print \"C3 =\",C3\n", + "print \"\\nf(t)= %d*%s + %f*%s + %d*%s + %f*%s\"%(C0,\"P0\",C1,\"P1\",C2,\"P2\",C3,\"P3\")" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "## Example 5, page no 19" + ] + }, + { + "cell_type": "code", + "execution_count": 15, + "metadata": { + "collapsed": false + }, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "The value of a0 is: 0.500000\n", + "\n", + "The values of a(n): (upto n=10)\n", + "0\n", + "0\n", + "0\n", + "0\n", + "0\n", + "0\n", + "0\n", + "0\n", + "0\n", + "0\n", + "The values of b(n): (upto n=10)\n", + "-0.318308838986\n", + "-0.159152848691\n", + "-0.106100153783\n", + "-0.0795732827116\n", + "-0.0636567411629\n", + "-0.0530453643632\n", + "-0.0454655102642\n", + "-0.0397803578398\n", + "-0.0353583398512\n", + "-0.0318205159538\n", + "The trigonometric Fourier series for given function\n", + " can be written as:\n", + "\n", + "f(t)=-0.318309-0.159153sin(2*pi*t)-0.106100sin(4*pi*t)\n", + "-0.079573sin(6*pi*t)-0.063657sin(8*pi*t)-0.053045sin(10*pi*t)\n", + "-0.045466sin(12*pi*t)-0.039780sin(14*pi*t).......\n" + ] + } + ], + "source": [ + "from math import pi,cos,sin\n", + "from numpy import arange,trapz\n", + "#given\n", + "T=1\n", + "t0=0\n", + "wo=2*pi\n", + "P=1\n", + "t=arange(0,1.001,0.001)\n", + "f=P*t\n", + "#The trigonometric Fourier series coeff for given function\n", + "a0=(1/T)*trapz(t,f)\n", + "a=[]\n", + "a.append(0)\n", + "for n in range(1,11):\n", + " f1=[]\n", + " for tt in t:\n", + " f1.append((P*tt)*cos(wo*n*tt))\n", + " a.append((2/T)*trapz(t,f1))\n", + " \n", + " if a[(n)]<2.01:\n", + " a[(n)]=0\n", + " \n", + "b=[]\n", + "b.append(0)\n", + "for n in range(1,11):\n", + " f2=[]\n", + " for tt in t:\n", + " f2.append((P*tt)*sin(2*pi*(1/T)*n*tt))\n", + " b.append(-(2/T)*trapz(t,f2))\n", + "\n", + "# Displaying trigonometric Fourier series coeff\n", + "print \"The value of a0 is: %f\\n\"%(a0)\n", + "print \"The values of a(n): (upto n=10)\"\n", + "for n in range(1,11):\n", + " print a[(n)]\n", + "\n", + "print \"The values of b(n): (upto n=10)\"\n", + "for n in range(1,11):\n", + " print b[(n)]\n", + "\n", + "print \"The trigonometric Fourier series for given function\\n can be written as:\\n\"\n", + "print \"f(t)=%f%fsin(2*pi*t)%fsin(4*pi*t)\\n%fsin(6*pi*t)%fsin(8*pi*t)%fsin(10*pi*t)\\n%fsin(12*pi*t)%fsin(14*pi*t).......\"%(b[1],b[2],b[3],b[4],b[5],b[6],b[7],b[8])" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "## Example 6, page no 21" + ] + }, + { + "cell_type": "code", + "execution_count": 22, + "metadata": { + "collapsed": false + }, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "The Exponential Fourier coeff(Fn) are:for n=-5 to 5\n", + "-0.05j \n", + "\n", + "(1+0j) \n", + "\n", + "-0.0981305252753j \n", + "\n", + "(1+0j) \n", + "\n", + "-0.315687575734j \n", + "\n", + "(0.5+0j) \n", + "\n", + "0j \n", + "\n", + "(1-0.153884176859j) \n", + "\n", + "0j \n", + "\n", + "(1-0.0688190960236j) \n", + "\n", + "0j \n", + "\n", + "\n", + "The given function in Expo Fourier series can be represented as \n", + "\n", + "f(t)= 0.500000+jP/2*pi* ∑1/n *exp(j2*pi*t)\n" + ] + } + ], + "source": [ + "from __future__ import division\n", + "from numpy import nditer,trapz\n", + "#given\n", + "\n", + "t0=1\n", + "T=1\n", + "w0=2*3.14/T\n", + "P=1\n", + "t=arange(0,0.1+1,0.1)\n", + "f=[P*tt for tt in t]# function f(t)=P*t, 0<t<1\n", + "a=1\n", + "print 'The Exponential Fourier coeff(Fn) are:for n=-5 to 5'\n", + "Fr=[];Fi=[]\n", + "for n in range(-5,6): # Calculating the fourier coeff\n", + " fr=[ff*cos(pi*n*tt/T) for ff,tt in nditer([f,t])]\n", + " #Fr(a)=inttrap(t,fr)\n", + " Fr.append(trapz(t,fr))\n", + " fi=[ff*sin(pi*n*tt/T) for ff,tt in nditer([f,t])]\n", + " Fi.append(trapz(t,fi))\n", + " if Fr[a-1] < 0.01:\n", + " Fr[a-1]=0\n", + " \n", + " if Fi[a-1] < 0.01:\n", + " Fi[a-1]=0\n", + " \n", + " print Fr[a-1]-1J*Fi[a-1],'\\n'\n", + " a=a+1\n", + "\n", + "print '\\nThe given function in Expo Fourier series can be represented as \\n'\n", + "print 'f(t)= %f+jP/2*pi* ∑1/n *exp(j2*pi*t)'%(P/2)" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "## Example 7, page no 22" + ] + }, + { + "cell_type": "code", + "execution_count": 25, + "metadata": { + "collapsed": false + }, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "The Expo fourier series coeff are: for n=-5 to 5\n", + "(2.77555756156e-17-1.37737043993e-15j) \n", + "\n", + "(0.127481160803+3.12250225676e-16j) \n", + "\n", + "(-1.9567680809e-15-1.47624967806e-15j) \n", + "\n", + "(0.636776885598+6.54858112181e-16j) \n", + "\n", + "(-1.69309011255e-15-0.5j) \n", + "\n", + "(-1.90970223489+0j) \n", + "\n", + "(-1.69309011255e-15+0.5j) \n", + "\n", + "(0.636776885598-6.54858112181e-16j) \n", + "\n", + "(-1.9567680809e-15+1.47624967806e-15j) \n", + "\n", + "(0.127481160803-3.12250225676e-16j) \n", + "\n", + "(2.77555756156e-17+1.37737043993e-15j) \n", + "\n", + "The given function in Expo Fourier series can be represented as \n", + "\n", + "f(t)= 2V/pi -2V*exp(j2*pi*t)/3*pi -2V*exp(j2*pi*t)/15*pi\n", + " -2V*exp(j2*pi*t)/35*pi ...\n", + " -2V*exp(-j2*pi*t)/3*pi -2V*exp(-j2*pi*t)/15*pi...\n" + ] + }, + { + "data": { + "image/png": "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\nTkSuQmCC\n", + "text/plain": [ + "<matplotlib.figure.Figure at 0x7f3df8629110>" + ] + }, + "metadata": {}, + "output_type": "display_data" + } + ], + "source": [ + "from numpy import arange,sin,pi,cos,trapz,nditer,zeros\n", + "%matplotlib inline \n", + "from matplotlib.pyplot import plot,subplot,title,legend,xlabel,ylabel,show\n", + "\n", + "#given\n", + "V=1\n", + "t0=1\n", + "T=1\n", + "w0=2*3.14/T\n", + "P=1\n", + "t=arange(0,0.01+3,0.01)\n", + "f=[V*abs(sin(pi*tt)) for tt in t]\n", + "#The Expo fourier series coeff\n", + "print 'The Expo fourier series coeff are: for n=-5 to 5'\n", + "a=1\n", + "Fr=[];Fi=[];mag=[]\n", + "for n in range(-5,6):\n", + " fr=[ff*cos(pi*n*tt/T) for ff,tt in nditer([f,t])]\n", + " Fr.append(trapz(t,fr))\n", + " fi=[ff*sin(pi*n*tt/T) for ff,tt in nditer([f,t])] \n", + " Fi.append(trapz(t,fi))\n", + " mag.append(abs(Fr[a-1]+1J*Fi[a-1]))\n", + "\n", + " print Fr[a-1]-(1J*Fi[a-1]),'\\n'\n", + " x=zeros(len(t))\n", + " #x=x+((Fr(a))-1J*Fi(a)).*(cos(pi*n*t/T)+1J*sin(pi*n*t/T))\n", + " x=x+((Fr[a-1])-1J*Fi[a-1])*(cos(pi*n*t/T)+1J*sin(pi*n*t/T))\n", + " a=a+1\n", + "\n", + "print 'The given function in Expo Fourier series can be represented as \\n'\n", + "print 'f(t)= 2V/pi -2V*exp(j2*pi*t)/3*pi -2V*exp(j2*pi*t)/15*pi\\n -2V*exp(j2*pi*t)/35*pi ...\\n -2V*exp(-j2*pi*t)/3*pi -2V*exp(-j2*pi*t)/15*pi...'\n", + "n=range(-5,6)\n", + "subplot(2,1,1)\n", + "plot(t,f) # Rectified sine function Plot\n", + "xlabel(\"t\")\n", + "ylabel(\"sin(t)\")\n", + "legend([\"sin(pi*t)\"])\n", + "subplot(2,1,2)\n", + "plot(n,mag) #Plot of the magnitude of the Fourier coeff\n", + "xlabel(\"w\")\n", + "ylabel(\"Fn\")\n", + "legend([\"Expo Fourier Coeff\"])\n", + "show()" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "## Example 8, page no 24" + ] + }, + { + "cell_type": "code", + "execution_count": 17, + "metadata": { + "collapsed": false + }, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "The fourier series coeff Fn are:\n", + "(-0.185792520964+0j) \n", + "\n", + "(-0.121542879381+6.93889390391e-18j) \n", + "\n", + "(-0.0695370407613+0j) \n", + "\n", + "(-0.0312803786267+0j) \n", + "\n", + "(-0.00787673751141+1.73472347598e-18j) \n", + "\n", + "(1+0j) \n", + "\n", + "(-0.00787673751141+1.73472347598e-18j) \n", + "\n", + "(-0.00787673751141-1.73472347598e-18j) \n", + "\n", + "(-0.0312803786267+0j) \n", + "\n", + "(-0.0695370407613+0j) \n", + "\n", + "(-0.121542879381-6.93889390391e-18j) \n", + "\n", + "(-1.23107341487-2.77555756156e-17j) \n", + "\n", + "(-0.86361423984-2.77555756156e-17j) \n", + "\n", + "(-0.520835737317-2.77555756156e-17j) \n", + "\n", + "(-0.243085758762+2.77555756156e-17j) \n", + "\n", + "(-0.0625607572533+0j) \n", + "\n", + "(1+0j) \n", + "\n", + "(-0.0625607572533+0j) \n", + "\n", + "(-0.0625607572533+0j) \n", + "\n", + "(-0.243085758762-2.77555756156e-17j) \n", + "\n", + "(-0.520835737317+2.77555756156e-17j) \n", + "\n", + "(-0.86361423984+2.77555756156e-17j) \n", + "\n" + ] + }, + { + "data": { + "image/png": "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\nqKpadaBKF36+UB+Y84AO/b+h2u7+dnrd5Ot09rrZae+s9qvqQJVOXjFZv/ncN7XNfW30iDee1h+/\nO1GXb10et44VlRU6/ZPpOnD6P7XbP6/Trg921duKbtPlW5f7Lr/fvHm6ZPfhzUr1GbZ4sb55SJtQ\nbHv379WJiyfq+U+dr63+t0DbvPqq3vjHv+r7K+P3dazbXKp3Pv2y9nrm73riJb/R449X/d3vVL84\nvJUvul27XId1Vf1/J4eorlZt00Z12zZfm2/erPrHP7r2+bM7rtRtrXvoSy+5E2U8GzeqPjtht1Y0\nztf27ap06FDVCRNUE/w40urjj1XvvFO1e3c34OCOO1SnTYvfZFZd7d776KOqF1/s/ksvvVT1pZdi\nNPPlgGQDR8wVAEVksaoO8u6/oKoJDDj3R0Qu4OBw3CdU9b6aRZzUW5dDRP4MjAb2Aler6qIo+9FY\nx5Ht9lXto+iTIorWFDHt02msK11H78Le9CnsQ8eWHWuHx27Zu4XVO1azpmQN3dp0Y3jP4YzoNYKv\n9PkKzRsHfN0doNKKUi5fPIedpcv5YsU49uzfUzs8tl1ztzxrtVazYfcGVu9YzWc7P+O4Dsexrvcv\nuadzG67rd27CTXqXLl3Ktzt04HI/OZk8Hd95h0WnnEIXn+lGary/agM/mPkGrT+axZz815DqZrTa\n34cjG/eiRZ5rRqvSSrbsX8uuxquparaFjrvPpPSin/NUk/Z8a9jghMoD3Bjc6dPdOFU/NmyAU05x\nq/8laOmHBzjm1NZcds5Wps9vyZFHuvkhPXpA06Zum7Iyl3Jr9Wo3t+QHJ7zHrWtuoGzOopQXLEyn\n6mp45x148003/PfDD10TV58+bm2tvDy3XWmpG9q8apWbQzJ8OIwYARddBPWsMJwTkl0B0G/gqL2f\njXI5cETaWbGTNSVrWL1jNVv3bq19vn1+e3oX9nYn3Ba59df66Oefs3jPHv7Wrx9by7ayZoc7vl37\ndgHuj7dz6870btebXu160bxJPq1nz2bLmWfSKok1vf/7009pBNzjc1D/tv376TN/PiVnn51QP0yN\naydMYEirVlz7zct5f+XnzP14DR98toay/RUANMlrzDGdunNGvz6cMeBoPl1RzOUrVrD8iisSLguA\nCy6AG2+EMWP8bf/mm/DAAy7YJOOkk2DCBCpPPIV16w7OD6mqci83b+7mT/Tp41a4zfv7/8G0afDM\n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\nAElFTkSuQmCC\n", + "text/plain": [ + "<matplotlib.figure.Figure at 0x7fbfb25b1a10>" + ] + }, + "metadata": {}, + "output_type": "display_data" + } + ], + "source": [ + "from numpy import pi,arange,cos,sin,trapz,zeros\n", + "%matplotlib inline \n", + "from matplotlib.pyplot import plot,subplot,title,legend,xlabel,ylabel,show\n", + "\n", + "\n", + "#given\n", + "\n", + "T=500e-3\n", + "w0=2*pi/T\n", + "d=50e-3\n", + "A=10\n", + "t=arange(-d/2,0.01+T-d/2,0.01)\n", + "t1=arange(-d/2,0.01+d/2,0.01)\n", + "f1=A\n", + "t2=arange(d/2,0.01+T-(d/2),0.01)\n", + "f2=0\n", + "a=0\n", + "Fr=[];Fi=[];mag=[]\n", + "print 'The fourier series coeff Fn are:'\n", + "for n in range(-5,6):\n", + " if n==0:\n", + " Fr.append(1);Fi.append(0)\n", + " else: \n", + " fa1=f1*cos(pi*n*t1/T)\n", + " fa2=f2*cos(pi*n*t2/T)\n", + " fb1=f1*sin(pi*n*t1/T)\n", + " fb2=f2*sin(pi*n*t2/T)\n", + " \n", + " Fr.append(1/T*(trapz(t1,fa1)+trapz(t2,fa2)))\n", + " Fi.append(trapz(t1,fb1)+trapz(t2,fb2))\n", + " mag.append(abs(Fr[a]+1J*Fi[a]))\n", + "\n", + " print Fr[a]-1J*Fi[a],'\\n'\n", + " x=zeros(len(t))\n", + " x=x+((Fr[a])-1J*Fi[a])*(cos(pi*n*t/T)+1J*sin(pi*n*t/T))\n", + " a=a+1\n", + "\n", + "n=range(-5,6)\n", + "subplot(3,1,1)\n", + "plot(t,[f1]*len(t))\n", + "xlabel(\"t\")\n", + "ylabel(\"f(t)\")\n", + "subplot(3,1,2)\n", + "plot(n,mag) # expo fourier series coeff\n", + "xlabel(\"n\") \n", + "ylabel(\"Coeff Magnitude\") \n", + "subplot(3,1,3)\n", + "plot(t,x)\n", + "plot(-t,x) # one sided spectrum with T=500ms\n", + "xlabel(\"w\")\n", + "ylabel(\"Fn\")\n", + "\n", + "T1=T/2\n", + "t=arange(-d/2,0.01+T1-d/2,0.01)\n", + "t1=arange(-d/2,0.01+d/2,0.01)\n", + "f1=A\n", + "t2=arange(d/2,0.01+T1-(d/2),0.01)\n", + "f2=0\n", + "#The Expo fourier series coeff\n", + "a=0\n", + "Fr1=[];Fi1=[];mag=[]\n", + "for n in range(-5,6):\n", + " if n==0:\n", + " Fr1.append(1);Fi1.append(0)\n", + " else :\n", + " fr1=f1*cos(pi*n*t1/T1)\n", + " fr2=f2*cos(pi*n*t2/T1)\n", + " fi1=f1*sin(pi*n*t1/T1)\n", + " fi2=f2*sin(pi*n*t2/T1)\n", + " \n", + " Fr1.append(1/T1*(trapz(t1,fr1)+trapz(t2,fr2)))\n", + " Fi1.append(1/T1*(trapz(t1,fi1)+trapz(t2,fi2)))\n", + " mag.append(abs(Fr1[a]+1J*Fi1[a]))\n", + " print Fr1[a]-1J*Fi1[a],'\\n'\n", + " y = zeros(len(t))\n", + " y=y+((Fr1[a])-1J*Fi1[a])*(cos(pi*n*t/T1)+1J*sin(pi*n*t/T1))\n", + " a=a+1\n", + "\n", + "plot(t,y)\n", + "plot(-t,y) # double sided spectrum with T=250ms\n", + "show()" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "## Example 9, page no 12" + ] + }, + { + "cell_type": "code", + "execution_count": 1, + "metadata": { + "collapsed": false + }, + "outputs": [ + { + "data": { + "image/png": "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\n2hmKAAAAAElFTkSuQmCC\n", + "text/plain": [ + "<matplotlib.figure.Figure at 0x7f606a00b0d0>" + ] + }, + "metadata": {}, + "output_type": "display_data" + }, + { + "data": { + "image/png": "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\n", + "text/plain": [ + "<matplotlib.figure.Figure at 0x7f6066ed1f90>" + ] + }, + "metadata": {}, + "output_type": "display_data" + }, + { + "name": "stdout", + "output_type": "stream", + "text": [ + "|F(w)|= 1/sqrt(a**2+w**2) and\n", + " Theta(w)=-atan(w/a)\n" + ] + }, + { + "data": { + "image/png": "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\nFvfPAu6SNJHQSupPKcdTFGY2Ebid8KNtUlz8z/QiajhJ9wCvAH0kzZI0BLgU+Kakd4ED43xZynN+\npwF/AzoAI+L15e8F9+MP7jnnnEuibEsYzjnnmpYnDOecc4l4wnDOOZeIJwznnHOJeMJwzjmXiCcM\n55xziXjCcC6HpM6SflLL+y83ZTzOlQp/DsO5HLGzx8dj193OuchLGM5VdymwVXz69bLcNyV9Fv+t\nkDRS0gNxIJo78+1M0tlxsKGJ8YlbJK0fB7UZHXuzPSoubyXpL3FgoolxGGPnSkJqY3o7V8IuIAws\ns2sN72cXy3chDOA1B3hZ0j5mlltldQHQ28xWSuoUl10IPGdmp8WR3EZLepbQZ9HmwM5mVimpS7FO\nyrmG8hKGc9XVpbv1181sduz+egKhy+9ck4C7Yxfgq+OyQ4BfSxoPvAC0IySKg4AbMgPbmFnuoD7O\npcZLGM41zIqs16vJ/3/qcGA/4EjgQkmZeyPHmtl72SuGzl+b5fggrhnwEoZz1S0DOhZjR7H7783N\nbCRhAKXOhB5CnwbOzlovU/01AjgjjlmPV0m5UuIJw7kcZraQcD9icr6b3lS9h5HbzDB3vhVwh6RJ\nwDjg6ji29/8BbSRNkvQmcHFc/ybC0KeTJE0ATgKQdLGkIxt0Ys41kDerdc45l4iXMJxzziXiCcM5\n51winjCcc84l4gnDOedcIp4wnHPOJeIJwznnXCKeMJxzziXiCcM551winjCcc84l4gnDOedcIp4w\nnHPOJeIJwznnXCKeMJxzziXiCcM551winjCcc84l4gnDOedcIp4wnHPOJeIJwznnXCKeMJxzziXi\nCcM551winjCcc84l4gnDOedcIp4wnHPOJeIJwznnXCKeMJxzziXiCcM551winjCcc84l4gnDOedc\nIp4wnHPOJeIJwznnXCKeMJxzziXiCcM551winjCcc84l4gnDOedcIp4wnHPOJeIJwznnXCKeMJxz\nziXiCcM551winjCcc84l4gnDOedcIp4wnHPOJeIJwznnXCKeMJxzziXiCcM551winjCcc84l4gnD\nOedcIp4wnHPOJeIJwznnXCKeMJxzziXiCcPVmaQ3Je2Xdhz1Jem7kp5OO45ikvSUpO+lHUexSNpH\n0nuSlkk6Ku14XCAzSzsGVwSSTgbOA/oAy4AJwB/N7OUG7vdfwCwz+22Dg0yBpN7AB0BrM6tM4fiV\n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\nY+pgAAAAAElFTkSuQmCC\n", + "text/plain": [ + "<matplotlib.figure.Figure at 0x7f6066d6d210>" + ] + }, + "metadata": {}, + "output_type": "display_data" + }, + { + "name": "stdout", + "output_type": "stream", + "text": [ + "|F(w)|= 2*a/sqrt(a**2+w**2) and\n", + " Theta(w)=0\n" + ] + } + ], + "source": [ + "from __future__ import division\n", + "from numpy import arange, exp, pi, transpose, mat, fliplr, angle, absolute, shape\n", + "%matplotlib inline\n", + "from matplotlib.pyplot import plot, xlabel, ylabel, show, title, subplot\n", + "\n", + "#Given:\n", + "# Analog Signal\n", + "A =1 # Amplitude\n", + "Dt = 0.005#\n", + "t = arange(0,Dt+10,Dt)\n", + "xt = exp(-A*t)#\n", + "\n", + "# Continuous time Fourier Transform\n", + "Wmax =2*pi*1# # Analog Frequency = 1Hz\n", + "K = 4#\n", + "k = arange(0,(K/1000)+K, (K/1000))\n", + "W = k* Wmax /K#\n", + "XW = mat(xt)*exp(-1J*transpose(mat(t))*mat(W))*Dt\n", + "XW_Mag =abs(XW)#\n", + "W = -1*fliplr(mat(W))+mat(W)# (2:1001)]# # Omega from -Wmax to Wmax\n", + "XW_Mag=fliplr(XW_Mag )+XW_Mag # (2:1001)]#\n", + "\n", + "\n", + "#[XW_Phase ,db] = phasemag (XW)#\n", + "XW_Phase = angle(XW)\n", + "db=abs(XW)\n", + "XW_Phase = -1*fliplr(XW_Phase)+XW_Phase #(2:1001)]#\n", + "\n", + "\n", + "\n", + "# Plotting Continuous Time Signal\n", + "plot(t,xt)#\n", + "xlabel( 't in sec .')#\n", + "ylabel(' x(t) ')\n", + "title(' Continuous Time Signal ' )\n", + "show()\n", + "\n", + "\n", + "# Plotting Magnitude Response of CTS\n", + "subplot (3 ,1 ,1)#\n", + "i, j = shape(W)\n", + "W1=[]\n", + "XW_Mag1=[]\n", + "for ii in range(0,i):\n", + " for jj in range(0,j):\n", + " W1.append(W[ii,jj])\n", + " XW_Mag1.append(XW_Mag[ii,jj])\n", + " \n", + "plot(W1, XW_Mag1)\n", + "xlabel ( ' Frequency in Radians / Seconds---> W' )#\n", + "ylabel ( ' abs (X(jW) ) ' )\n", + "title ( 'Magnitude Response (CTFT) ' )\n", + "\n", + "\n", + "\n", + "\n", + "# Plotting Phase Reponse of CTS\n", + "subplot (3 ,1 ,3)#\n", + "\n", + "i, j = shape(W)\n", + "W1=[]\n", + "XW_Phase1=[]\n", + "for ii in range(0,i):\n", + " for jj in range(0,j):\n", + " W1.append(W[ii,jj])\n", + " XW_Phase1.append(XW_Phase[ii,jj])\n", + "\n", + "\n", + "plot(W1, [xx*pi/180 for xx in XW_Phase1 ])\n", + "xlabel(' Frequency in Radians / Seconds---> W')#\n", + "ylabel('<X(jW) ')\n", + "title(' Phase Response (CTFT)in Radians' )\n", + "show()\n", + "print '|F(w)|= 1/sqrt(a**2+w**2) and\\n Theta(w)=-atan(w/a)'\n", + "\n", + "#Part b \n", + "# Analog Signal\n", + "\n", + "A=1## Amplitude\n", + "Dt=0.005#\n", + "t1=arange(-4.5,Dt+4.5,Dt)\n", + "xt1=exp(-A*abs(t1))\n", + "# Continuous time Fourier Transform\n", + "Wmax1 =2*pi*1## Analog Frequency = 1Hz\n", + "K=4#\n", + "k=arange(0,(K/1000)+K,(K/1000))\n", + "W1=k*Wmax1/K\n", + "XW1=mat(xt1)*exp(-1J*transpose(mat(t1))*mat(W1))*Dt\n", + "XW1=(XW1).real\n", + "W1=-1*fliplr(mat(W1))+mat(W1) # (2:1001) ]# # Omega from -Wmax to Wmax\n", + "XW1=fliplr(mat(XW1))+mat(XW1) #(2:1001) ]#\n", + "subplot(3 ,1 ,1)#\n", + "plot(t,xt)\n", + "xlabel('t in sec.')#\n", + "ylabel('x(t)')\n", + "title(' Continuous Time Signal')\n", + "subplot(3 ,1 ,3)\n", + "i, j = shape(W1)\n", + "W11=[]\n", + "XW11=[]\n", + "for ii in range(0,i):\n", + " for jj in range(0,j):\n", + " W11.append(W[ii,jj])\n", + " XW11.append(XW_Phase[ii,jj])\n", + "\n", + "plot(W11,XW11)\n", + "xlabel('Frequency in Radians / Seconds W')#\n", + "ylabel('X(jW)')\n", + "title('Continuous time Fourier Transform ')\n", + "show()\n", + "print '|F(w)|= 2*a/sqrt(a**2+w**2) and\\n Theta(w)=0'" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "## Example10, page no 38" + ] + }, + { + "cell_type": "code", + "execution_count": 2, + "metadata": { + "collapsed": false + }, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "a)\n", + "At wo,n=0: The spectral amplitude is: F0= 0.100000 V\n", + "\n", + "b)\n", + "The Fourier tranform of f(t-delta/2) is given as: \n", + "\n", + "f(t)=A*delta/T*∑Sa(n*delta*pi/T)*exp(jwo(t-delta/2))\n" + ] + } + ], + "source": [ + "from numpy import pi,sin\n", + "\n", + "#Given\n", + "#a\n", + "A=1\n", + "delta=1e-3\n", + "T=10e-3\n", + "w0=2*pi/T\n", + "n=0\n", + "for i in range(0,11):\n", + " if n==0:\n", + " Sa=1 \n", + " else :\n", + " Sa=sin(n*pi*delta/T)/(n*pi*delta/T)\n", + " \n", + "\n", + "F=(A*delta/T)*Sa #spectral Amplitude\n", + "print 'a)\\nAt wo,n=0: The spectral amplitude is: F0= %f V\\n'%F\n", + "#b\n", + "# displaying the fourier Transform of the given function\n", + "print 'b)\\nThe Fourier tranform of f(t-delta/2) is given as: '\n", + "print '\\nf(t)=A*delta/T*∑Sa(n*delta*pi/T)*exp(jwo(t-delta/2))'" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "## Example11(1), page no 39" + ] + }, + { + "cell_type": "code", + "execution_count": 3, + "metadata": { + "collapsed": false + }, + "outputs": [ + { + "data": { + "image/png": "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\nhM4s987Gks2Bg4Bt0rB9IyT1q8F6QxcwdCistlrnSe4A++4LN9yQdxShK6h6Db5kAFGDrzvffguv\nvOLNCN/7HqyySv22bw8aBN//Phx/fN6RlO+rr2C55Xxg8B498o5mTt99B6NHw8cfQ7dusOqqsGxc\n91Z3yqnBR4IPgN9Cf8stcPnl8MgjsPLKsNRS8PXX8OqrnpB+9jM47DAfZ7QeTJvmzTNPPw19+uQd\nTdvsvz9ssw0cfnjekczy2GNw3nl+T0GvXr5vv/3W3/9FF/WYjzjCPwshf/XSRBPq3EMPwVprwbnn\n+uAU48fDqFHwwAPeze0nn8DFF8Ojj8Iaa8DNN+cdsRs6FFZcsfMld/Bked11eUfhPvrIT1IfdBBs\nvTWMGQMvv+zv/6OP+vs/eLAfeay9NpxyCkyenHfUoSxmluvDQwh5+PRTs4MOMlthBbPbbitvmUcf\nNVtlFbPDDzf77rvqxlfKgQeanXdevjG017ffmi22mNn77+cbx4MPmi2zjNlpp5l9/XXp+T/6yOyA\nA8x69zYbMqT68YWWpdzZan6NJpp2mjEDXnzRa7pjxsAHH3gzxyKLeI3yhz+EddeF+ebLO9LiXnjB\nr+bYfXf4wx/a1uzyxRdw8MFeo7v1Vt/mWvviC+/A6403YMkla7/+Shg40D8jxx2Xz/r//W844QQ/\nkth227Yte999fv5jv/3gzDNhnppccN12H3zgHbyNGuVHIvPOCwss4M2PG2wA66/vzU+dUV000Ujq\nJ+lVSW9IOrna66um6dP9jsmDDvL2yX32gXvugW++8RttNt7YT0aOGuVt1Ysv7oe+d9/t7cX14oYb\nYIcd4KyzvFmmrW3qiyzi7fUrr+zdA3z9dXXibM3gwdDU1HmTO/j18Hk101xzDZx6Kgwb1vbkDj5K\n1XPP+Wd92229madevPMOnH66fz7XWw+uusqnr7WWT+ve3ec57TQ/n7DZZv49eP/9fOOuilJV/I48\ngLmBN4HewLzAC8AaBfNU8SCmMj791Ox3vzNbfnmzTTYxu+gis3feKb3cpElml1xi1revL3vBBX5o\nnpdp08xOPtkPr194oePlTZ/uTTz9+tW+uWarrcxuuaW266y0qVPNevY0e+WV2q73ttvMll7a7KWX\nOl7WtGlmZ5xhttxyZk891fHyOuK558z69zfr0cPs6KP9/xkzWl9myhSze+4xGzjQm8z22svs4YdL\nL1cPKKOJptoJflPgv5n/TwFOKZinqjuhIz76yOzEE/2NP+wws5Ej21/WM8+Y7bKLJ/rLL/fkWEsT\nJ5r96Edm225r9sknlSt36lSzPfYw22ef2m3TW2/5lzjvcwCVcPLJZiecULv1DR1qtuSSZs8+W9ly\nb7vN35OrrqpsueV44w3/DC67rNn555t98037yvnyS7MLLzRbbTWzjTc2u+OO+k709ZDgfwxclvn/\nIOCCgnmquhPa4913zY46yhP7UUf5/5XyxBN+FLDppmYjRlSu3Na89JKfGD3uOE/Ilfbtt2abb272\n299WvuxiTj/d35dG8NprZkstVZsfqzFjvOb+wAPVKb/an7NCkyeb/eY3ZkssYXbWWeWdJC7H9Olm\nN91ktu66ZuutZzZ4cO0rZOWohwS/dzkJ/vTTT5/5GDp0aDX3Savef99r6ost5jX3jz6qznqmTze7\n9FL/Yh91lDflVMutt9amZjVunFmvXv5lqKZp08xWXLHyNdA8bb212Y03VncdX39ttuGGZn/5S3XX\nM2GC2Q47mG23nTdtVsOMGWa33+5NjfvuazZ2bHXXs9FGZmuuaXbzzdVZT7mGDh06W66shwTft6CJ\n5lTg5IJ5qrpT2mLMGK+FVuuDWejTT80GDfLL1K66qrKHg99954f+vXqZPf105cptzbPP+o9JJdr3\nW3LrrX5Oo5HceKPZlltWr/wZM8wGDDDbf//aNDlMnWp2/PFmK61k9uKLlS37rbe8qXO11czuu6+y\nZbdkxgy/JPTvf6/N+spVDwl+HuCtdJJ1vs56krXannrKawlbbNGxdv5mb7zh5e26a2Xb28txzTX+\nxZ44sTrlb7ON2bXXVqfsvEyZ4udmqtVkd9FFZmuvbfbVV9UpvyX//rc3n5x3XsebOL7+2k/mLrGE\n2Z/+lO/FCvUi9wTvMbAT8Fq6mubUIq9XdSd0FtOmmf3jH34C7LDDzN5+u+1lTJ7s7dOLL+4nm/I6\nQXTccWY77VT5dssRI/xEWiOcXC105plmBx9c+XIfe8ybAt98s/Jll+PVV80228wrL6NHt335KVPM\n/vUvb4758Y8rez6ss6uLBF8ygEjws5kwwezXv/YkPWCA2fDhpRPl5Mn+49Crlx+G5/0lmDLFL2Os\n9EnXffYx++tfK1tmvZg0yd/zt96qXJkffuiXL959d+XKbI9p07wW36OH2aGHlnd55rhxZuecY9an\n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\n1P8H1yCRRYSRqj0AAAAASUVORK5CYII=\n", + "text/plain": [ + "<matplotlib.figure.Figure at 0x7f6080c29ad0>" + ] + }, + "metadata": {}, + "output_type": "display_data" + }, + { + "name": "stdout", + "output_type": "stream", + "text": [ + "F(w)= A*t*Sa(w*t/2) \n" + ] + } + ], + "source": [ + "from numpy import arange, ones,pi,exp,mat,transpose, shape\n", + "%matplotlib inline\n", + "from matplotlib.pyplot import plot, xlabel, ylabel, show, title, subplot\n", + "\n", + "#Given\n", + "T = 10# #time Tau\n", + "Tg = arange(-T/2,0.1+T/2,0.1) # time period for given Gate Function -tau/2 to tau/2\n", + "G_t0 = 1# #Magnitude of Gate Function (A)\n", + "G_t = G_t0*ones (len(Tg))## Gate function G(t)\n", + "f = arange(-pi,pi / len(Tg)+pi,pi / len(Tg))\n", + "Dw = 0.1#\n", + "F_jW =mat(G_t)*exp(1J*transpose(mat(Tg))*mat(f))*Dw## fourier Transform of the gate function\n", + "F_jW = (F_jW).real\n", + "# Plotting the Fourier Transform of G(t)\n", + "subplot (2 ,1 ,1)\n", + "plot(Tg,G_t)\n", + "title( ' Given Function (Gate Function) G(t) ' )\n", + "subplot(2 ,1 ,2)\n", + "i,j =shape(mat(f))\n", + "m,n=shape(F_jW)\n", + "f1=[];F_jW1=[]\n", + "for ii in range(0,i):\n", + " for jj in range(0,j):\n", + " f1.append(mat(f)[ii,jj])\n", + "for ii in range(0,m):\n", + " for jj in range(0,n):\n", + " F_jW1.append(F_jW[ii,jj])\n", + " \n", + "\n", + "plot(f1,F_jW1)\n", + "xlabel('Frequency in Radians/Seconds ')#\n", + "title('Continuous time Fourier Transform X(jW)' )\n", + "title ( 'Fourier Transform of G(t)= F(jW) ' )\n", + "show()\n", + "print 'F(w)= A*t*Sa(w*t/2) '" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "## Example11(2), page no 43" + ] + }, + { + "cell_type": "code", + "execution_count": 4, + "metadata": { + "collapsed": false + }, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "|F(w)|= 2*pi*A*delta(w), Hence the Fourier Transform of constant is an Impulse Function\n" + ] + }, + { + "data": { + "image/png": "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\n", + "text/plain": [ + "<matplotlib.figure.Figure at 0x7f6080c29e50>" + ] + }, + "metadata": {}, + "output_type": "display_data" + } + ], + "source": [ + "from __future__ import division\n", + "from numpy import arange, ones,pi,exp,mat,transpose,pi, fliplr, shape\n", + "%matplotlib inline\n", + "from matplotlib.pyplot import plot, xlabel, ylabel, show, title, subplot\n", + "\n", + "#Given\n", + "# CTS Signal\n", + "A=2## Amplitude\n", + "Dt=0.01#\n", + "T1=49.5# #Time in seconds\n", + "t=arange(-T1/2,Dt+T1 /2, Dt)\n", + "xt=[]\n", + "for i in range(0,len(t)):\n", + " xt.append(A)\n", + "\n", + "# Continuous time Fourier Transform\n", + "Wmax=2*pi*1## Analog Frequency = 1Hz\n", + "K =4#\n", + "k=arange(0,(K/1000)+K,(K/1000))\n", + "W=k*Wmax/K#\n", + "#xt=transpose(mat(xt))\n", + "XW =(mat(xt)*exp(1J*transpose(mat(t))*mat(W)*Dt))-5#\n", + "\n", + "\n", + "XW_Mag =(XW).real\n", + "W = -1*fliplr(mat(W))+W # (2:1001)]# # Omega from -Wmax to Wmax\n", + "XW_Mag = fliplr(mat(XW_Mag))+XW_Mag #(2:1001)\n", + "subplot(2 ,1 ,1)#\n", + "plot(t,xt)#\n", + "xlabel('t in msec .')#\n", + "title(' Contiuous Time Signal x(t) ')\n", + "subplot(2 ,1 ,2)#\n", + "i,j =shape(mat(W))\n", + "m,n=shape(XW_Mag)\n", + "W1=[];XW_Mag1=[]\n", + "for ii in range(0,i):\n", + " for jj in range(0,j):\n", + " W1.append(mat(W)[ii,jj])\n", + "for ii in range(0,m):\n", + " for jj in range(0,n):\n", + " XW_Mag1.append(XW_Mag[ii,jj])\n", + "\n", + "plot(W1,XW_Mag1)\n", + "xlabel('Frequency in Radians/Seconds ')#\n", + "title('Continuous time Fourier Transform X(jW) = an Impulse Function' )\n", + "print '|F(w)|= 2*pi*A*delta(w), Hence the Fourier Transform of constant is an Impulse Function'" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "## Example13, page no 44" + ] + }, + { + "cell_type": "code", + "execution_count": 6, + "metadata": { + "collapsed": false + }, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "F(w)= 1/(j*w)+ pi*delta(w)\n" + ] + }, + { + "data": { + "image/png": "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\nQg35f44uyQwHAKflAAAAAElFTkSuQmCC\n", + "text/plain": [ + "<matplotlib.figure.Figure at 0x7f6066d01690>" + ] + }, + "metadata": {}, + "output_type": "display_data" + } + ], + "source": [ + "from __future__ import division\n", + "from numpy import arange, ones,pi,exp,mat,transpose,pi, fliplr, shape\n", + "%matplotlib inline\n", + "from matplotlib.pyplot import plot, xlabel, ylabel, show, title, subplot\n", + "\n", + "\n", + "# CTS Signal\n", + "A =1# # Amplitude\n", + "Dt = 0.005#\n", + "T1 =0.5# #Time in seconds\n", + "t=arange(0,Dt+T1, Dt)\n", + "xt=[]\n", + "for i in range(0,len(t)):\n", + " xt.append(A)\n", + "\n", + "# Continuous time Fourier Transform\n", + "Wmax= 2*pi*1# # Analog Frequency = 1Hz\n", + "K =4#\n", + "k=arange(0,(K/1000)+K,(K/1000))\n", + "W =k*Wmax/K#\n", + "#xt=transpose(mat(xt))\n", + "XW =mat(xt)*exp(-1J*transpose(mat(t))*mat(W))*Dt#\n", + "XW_Mag =(XW).real\n", + "W =-1*fliplr(mat(W))+W #(2:1001)]# # Omega from -Wmax to Wmax\n", + "XW_Mag =fliplr(mat(XW_Mag))+XW_Mag #(2:1001)]\n", + "# displaying the given function\n", + "subplot(2 ,1 ,1)#\n", + "plot(t,xt)#\n", + "xlabel('t in msec .')#\n", + "title(' Contiuous Time Signal x(t) ')\n", + "# displaying the fourier Transform of the given function\n", + "subplot(2 ,1 ,2)#\n", + "print 'F(w)= 1/(j*w)+ pi*delta(w)'\n", + "i,j =shape(mat(W))\n", + "m,n=shape(XW_Mag)\n", + "W1=[];XW_Mag1=[]\n", + "for ii in range(0,i):\n", + " for jj in range(0,j):\n", + " W1.append(mat(W)[ii,jj])\n", + "for ii in range(0,m):\n", + " for jj in range(0,n):\n", + " XW_Mag1.append(XW_Mag[ii,jj])\n", + "\n", + "plot(W1,XW_Mag1)\n", + "\n", + "xlabel('Frequency in Radians / Seconds ')#\n", + "title('Continuous time Fourier Transform X(jW)' )\n", + "show()" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "## Example14, page no 44" + ] + }, + { + "cell_type": "code", + "execution_count": 7, + "metadata": { + "collapsed": false + }, + "outputs": [ + { + "data": { + "image/png": "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\n+f9guQur8xUbEQAAAABJRU5ErkJggg==\n", + "text/plain": [ + "<matplotlib.figure.Figure at 0x7f6080bf8a10>" + ] + }, + "metadata": {}, + "output_type": "display_data" + }, + { + "data": { + "image/png": "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\n", + "text/plain": [ + "<matplotlib.figure.Figure at 0x7f6066d83990>" + ] + }, + "metadata": {}, + "output_type": "display_data" + } + ], + "source": [ + "from numpy import pi,sqrt\n", + "%matplotlib inline\n", + "from matplotlib.pyplot import plot, xlabel, ylabel, show, title, subplot\n", + "\n", + "# CTS Signal\n", + "# Continuous Time Fourier Transforms of\n", + "# Sinusoidal waveforms(a)sin(Wot)(b)cos(Wot)\n", + "\n", + "# CTFT\n", + "T1 = 2#\n", + "T = 4* T1#\n", + "Wo = 2* pi /T#\n", + "W = [-Wo ,0, Wo ]#\n", + "ak = (2* pi *Wo*T1/ pi )/ 1J#\n", + "XW = [-ak ,0, ak ]#\n", + "ak1 = (2* pi*Wo*T1/pi)#\n", + "XW1 =[ ak1 ,0, ak1 ]#\n", + "#displaying the given function\n", + "plot(W,[aa.imag for aa in XW])\n", + "xlabel('W' )#\n", + "title( 'CTFT of sin(Wot ) ')\n", + "show()\n", + "#displaying the fourier Transform of the given function\n", + "plot(W,XW1)\n", + "xlabel('W' )#\n", + "title( 'CTFT of cos (Wot)')\n", + "show()" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "## Example16, page no 47" + ] + }, + { + "cell_type": "code", + "execution_count": 9, + "metadata": { + "collapsed": false + }, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "Spectral Amplitude of the given function is given by \n", + "Fn= A*delta/2 *[Sa(n*pi*delta/T)]\n", + "Therefore the fourier transform will be :\n", + "F[f(t)]=0.628319 ∑Sa[n*pi/10]8delta(w-4*n*pi)\n" + ] + } + ], + "source": [ + "from numpy import pi\n", + "A=1\n", + "delta=50e-3\n", + "T=500e-3\n", + "print 'Spectral Amplitude of the given function is given by '# Displaying the expression for Spectral Amplitude\n", + "print 'Fn= A*delta/2 *[Sa(n*pi*delta/T)]'\n", + "print 'Therefore the fourier transform will be :'\n", + "print 'F[f(t)]=%f ∑Sa[n*pi/10]8delta(w-4*n*pi)'%(2*pi*A*delta/T)# Displaying the Fourier transform" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "## Example17,page no12" + ] + }, + { + "cell_type": "code", + "execution_count": 10, + "metadata": { + "collapsed": false + }, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "F[∂t(t)]= 2*pi/T*∑∂(w-wo)\n" + ] + }, + { + "data": { + "image/png": "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\n", + "text/plain": [ + "<matplotlib.figure.Figure at 0x7f6080bf8910>" + ] + }, + "metadata": {}, + "output_type": "display_data" + } + ], + "source": [ + "from numpy import ones,pi\n", + "%matplotlib inline\n", + "from matplotlib.pyplot import plot, xlabel, ylabel, show, title, subplot\n", + "\n", + "#Given:\n", + "# CTFT\n", + "T = range(-4,5)##\n", + "T1 = 1# # Sampling Interval\n", + "xt = ones (len(T))#\n", + "ak = 1/ T1#\n", + "XW = 2* pi *ak* ones (len(T))#\n", + "Wo = 2*pi/T1#\n", + "W = [Wo*Tt for Tt in T]#\n", + "# Displaying the given function\n", + "subplot(2 ,1 ,1)\n", + "plot(T,xt)\n", + "xlabel ( 't ' )#\n", + "title('Periodic Impulse Train ')\n", + "# displaying the fourier Transform of the given function\n", + "subplot(2 ,1 ,2)\n", + "plot(W,XW)\n", + "xlabel('t')#\n", + "title ( 'CTFT of Periodic Impulse Train')\n", + "\n", + "print 'F[∂t(t)]= 2*pi/T*∑∂(w-wo)'" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "## Example18,page no12" + ] + }, + { + "cell_type": "code", + "execution_count": 11, + "metadata": { + "collapsed": false + }, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "Hence Fourier transform of given Gate function is:\n", + " A*delta*Sa[w*delta/2]/ exp(-j*w*delta/2)\n" + ] + }, + { + "data": { + "image/png": "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\n/w+9sYHJi5vhcwAAAABJRU5ErkJggg==\n", + "text/plain": [ + "<matplotlib.figure.Figure at 0x7f6066c6b150>" + ] + }, + "metadata": {}, + "output_type": "display_data" + } + ], + "source": [ + "from __future__ import division\n", + "from numpy import arange, pi,exp,mat, transpose,fliplr,shape\n", + "%matplotlib inline\n", + "from matplotlib.pyplot import plot, xlabel, ylabel, show, title, subplot\n", + "\n", + "#Given:\n", + "# CTS Signal\n", + "A =1# # Amplitude\n", + "Dt = 0.005#\n", + "T1 = 2# #Time in seconds\n", + "t = arange(0,Dt+T1 /2, Dt)\n", + "xt=[]\n", + "for i in range(0,len(t)):\n", + " xt.append(A)\n", + "\n", + "# Continuous time Fourier Transform\n", + "Wmax= 2*pi*1# # Analog Frequency = 1Hz\n", + "K =4#\n", + "k=arange(0,(K/1000)+K,(K/1000))\n", + "W =k*Wmax/K#\n", + "XW =mat(xt)*exp(-1J*transpose(mat(t))*mat(W))*Dt#\n", + "XW_Mag =(XW).real\n", + "W =-fliplr(mat(W))+W #(2:1001)]# # Omega from Wmax to Wmax\n", + "XW_Mag =fliplr(mat(XW_Mag))+XW_Mag #(2:1001)]#\n", + "# displaying the given function\n", + "subplot(2 ,1 ,1)#\n", + "plot(t,xt)#\n", + "xlabel('t in msec .')#\n", + "title(' Contiuous Time Signal x(t) {Gate Function} ')\n", + "# displaying the fourier Transform of the given function\n", + "subplot(2 ,1 ,2)#\n", + "i,j =shape(mat(W))\n", + "m,n=shape(XW_Mag)\n", + "W1=[];XW_Mag1=[]\n", + "for ii in range(0,i):\n", + " for jj in range(0,j):\n", + " W1.append(mat(W)[ii,jj])\n", + "for ii in range(0,m):\n", + " for jj in range(0,n):\n", + " XW_Mag1.append(XW_Mag[ii,jj])\n", + "\n", + "plot(W1,XW_Mag1)\n", + "\n", + "xlabel('Frequency in Radians / Seconds ')#\n", + "title('Continuous time Fourier Transform X(jW)' )\n", + "print 'Hence Fourier transform of given Gate function is:\\n A*delta*Sa[w*delta/2]/ exp(-j*w*delta/2)'" + ] + } + ], + "metadata": { + "kernelspec": { + "display_name": "Python 2", + "language": "python", + "name": "python2" + }, + "language_info": { + "codemirror_mode": { + "name": "ipython", + "version": 2 + }, + "file_extension": ".py", + "mimetype": "text/x-python", + "name": "python", + "nbconvert_exporter": "python", + "pygments_lexer": "ipython2", + "version": "2.7.9" + } + }, + "nbformat": 4, + "nbformat_minor": 0 +} diff --git a/Principle_of_Communication_Engineering_by_A._Singh_and_A._K._Chhabra/Chapter2_NaNiwP4.ipynb b/Principle_of_Communication_Engineering_by_A._Singh_and_A._K._Chhabra/Chapter2_NaNiwP4.ipynb new file mode 100644 index 00000000..8d9af0c5 --- /dev/null +++ b/Principle_of_Communication_Engineering_by_A._Singh_and_A._K._Chhabra/Chapter2_NaNiwP4.ipynb @@ -0,0 +1,444 @@ +{ + "cells": [ + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "# Chapter 2 Switched communication systems" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "## Example 2.2, page no 125" + ] + }, + { + "cell_type": "code", + "execution_count": 9, + "metadata": { + "collapsed": false + }, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "maximum auxillary current is:10.00 mA\n", + "\n", + "MMF in the auxillary winding is:2.00AT \n", + "\n", + "MMF in main winding is:40.00 AT \n", + "\n", + "net MMF required in main winding is:44.00 AT \n", + "\n", + "operating current needed is:4.40 mA \n", + "\n", + "working voltage is:2.84 volts \n", + "\n" + ] + } + ], + "source": [ + "from __future__ import division\n", + "#given\n", + "Io=4*10**-3 #rqueired operating current\n", + "N1=10000 #no of turns in the main winding\n", + "R1=645 #resistence of the main winding in ohms\n", + "N2=200 #no of turns in auxillary winding\n", + "B=2 #spacing bias\n", + "Iaux=B/N2 #maximum auxillary current\n", + "print \"maximum auxillary current is:%0.2f mA\\n\"%(Iaux*1e3)\n", + "MMFaux=N2*Iaux #MMF in the auxillary winding\n", + "print \"MMF in the auxillary winding is:%0.2fAT \\n\"%(MMFaux)\n", + "MMFop=Io*N1 #operating MFF in main winding\n", + "print \"MMF in main winding is:%0.2f AT \\n\"%(MMFop)\n", + "MMFnet=MMFop+(0.1*MMFop) #net MMF required in main winding\n", + "print \"net MMF required in main winding is:%0.2f AT \\n\"%(MMFnet)\n", + "Iop=MMFnet/N1 #operating current needed\n", + "print \"operating current needed is:%0.2f mA \\n\"%(Iop*1e3)\n", + "V=Iop*R1 #working voltage in volts\n", + "print \"working voltage is:%0.2f volts \\n\"%(V)" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "## Example 2.3,page no 125" + ] + }, + { + "cell_type": "code", + "execution_count": 10, + "metadata": { + "collapsed": false + }, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "Busy hour calling rate is:1.20 \n", + "\n", + "Rate of traffic flow is 250.00 traffic unit \n" + ] + } + ], + "source": [ + "#given\n", + "C=6000#Tatol no of call in busy hour\n", + "SC=5000#no of subscribers\n", + "CR=C/SC#busy hour calling rate\n", + "print \"Busy hour calling rate is:%0.2f \\n\"%(CR)\n", + "T=2.5/60#avarage duration of calls in hours\n", + "\n", + "A=C*T#rate of traffic flow\n", + "print \"Rate of traffic flow is %0.2f traffic unit \"%(A)" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "## Example 2.4,page no 126" + ] + }, + { + "cell_type": "code", + "execution_count": 11, + "metadata": { + "collapsed": false + }, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "maxixmum current is 33.33 mamps \n", + "\n", + "operate lag is 1.83 msec \n", + "\n", + "release lag is 2.85 msec \n", + "\n" + ] + } + ], + "source": [ + "from __future__ import division\n", + "from math import log\n", + "#given\n", + "L=3#relay inductance in henry\n", + "R=1500#relay resistance in ohm\n", + "Io=20e-3#oparating current in amps\n", + "Ir=8e-3#release current in amps\n", + "\n", + "V=50#supply volatage in volts\n", + "Im=V/R#maxixmum current in amps\n", + "print \"maxixmum current is %0.2f mamps \\n\"%(Im*1e3)\n", + "to=(L/R)*log(1/(1-(Io/Im)))#operate lag in sec\n", + "print \"operate lag is %0.2f msec \\n\"%(to*1000)\n", + "tr=(L/R)*log(Im/Ir)#release lag in sec\n", + "print \"release lag is %0.2f msec \\n\"%(tr*1000)" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "## Example 2.4.1,page no 126" + ] + }, + { + "cell_type": "code", + "execution_count": 12, + "metadata": { + "collapsed": false + }, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "(a)\n", + "periods per character is:150.00 msec\n", + "\n", + "period per element is:20.00 msec\n", + "\n", + "speed is:50.00 bauds\n", + "\n", + "\n", + "(b)\n", + "periods per character is:100.00 msec\n", + "\n", + "period per element is:13.33 msec\n", + "\n", + "speed is 75.00 bauds\n", + "\n", + "\n", + "(c)\n", + "periods per character is:100.00 msec\n", + "\n", + "period per element is:10.00 msec\n", + "\n", + "speed is 100.00 bauds\n", + "\n" + ] + } + ], + "source": [ + "from __future__ import division\n", + "#given\n", + "#a\n", + "C_S1=20/3#speed in characters per second\n", + "P_C1=1/C_S1#periods per character\n", + "print \"(a)\\nperiods per character is:%0.2f msec\\n\"%(P_C1*1e3)\n", + "E_C1=7.5#elements per character\n", + "P_E1=P_C1/E_C1#period per element\n", + "print \"period per element is:%0.2f msec\\n\"%(P_E1*1e3)\n", + "Sb1=1/P_E1#speed in bauds\n", + "print \"speed is:%0.2f bauds\\n\\n\"%(Sb1)\n", + "#b\n", + "C_S2=10#speed in characters per second\n", + "P_C2=1/C_S2#periods per character\n", + "print \"(b)\\nperiods per character is:%0.2f msec\\n\"%(P_C2*1e3)\n", + "E_C2=7.5#elements per character\n", + "P_E2=P_C2/E_C2#period per element\n", + "print \"period per element is:%0.2f msec\\n\"%(P_E2*1e3)\n", + "Sb2=1/P_E2#speed in bauds\n", + "print \"speed is %0.2f bauds\\n\\n\"%( Sb2)\n", + "#c\n", + "C_S3=10#speed in characters per second\n", + "P_C3=1/C_S3#periods per character\n", + "print \"(c)\\nperiods per character is:%0.2f msec\\n\"%(P_C3*1e3)\n", + "E_C3=10#elements per character\n", + "P_E3=P_C3/E_C3#period per element\n", + "print \"period per element is:%0.2f msec\\n\"%(P_E3*1e3)\n", + "Sb3=1/P_E3#speed in bauds\n", + "print \"speed is %0.2f bauds\\n\"%(Sb3)" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "## Example 2.5,page no 127" + ] + }, + { + "cell_type": "code", + "execution_count": 13, + "metadata": { + "collapsed": false + }, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "total inductance is 0.05 H \n", + "\n", + "maximum current is 10.00 mA \n", + "\n", + "operating current is 5.00 mA \n", + "\n", + "operate lag is 0.35 msec \n", + "\n" + ] + } + ], + "source": [ + "from __future__ import division\n", + "#given\n", + "N=1000#no of turns\n", + "L1=5e-8#inductance per turn\n", + "L=N**2*L1#total inductance\n", + "print \"total inductance is %0.2f H \\n\"%(L)\n", + "R=100#resistance of winding in ohm\n", + "MMF=5#operating MMF in amp. turn\n", + "V=1#voltage of received signal in volts\n", + "Im=V/R#maximum current\n", + "print \"maximum current is %0.2f mA \\n\"%(Im*1e3)\n", + "Io=MMF/N#operating current\n", + "print \"operating current is %0.2f mA \\n\"%(Io*1e3)\n", + "to=(L/R)*log(1/(1-(Io/Im)))#operate lag\n", + "print \"operate lag is %0.2f msec \\n\"%(to*1e3)" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "## Example 2.6,page no 128" + ] + }, + { + "cell_type": "code", + "execution_count": 14, + "metadata": { + "collapsed": false + }, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "Busy hour calling rate is:1.60 \n", + "\n", + "Rate of traffic flow is 693.33 traffic unit \n" + ] + } + ], + "source": [ + "#given\n", + "S=10000#no of subscribers\n", + "C=16000#Tatol no of call in busy hour\n", + "CR=C/S#busy hour calling rate\n", + "print \"Busy hour calling rate is:%0.2f \\n\"%(CR)\n", + "T=2.6#avarage duration of calls in min\n", + "\n", + "A=C*(T/60)#rate of traffic flow\n", + "print \"Rate of traffic flow is %0.2f traffic unit \"%(A)" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "## Example 2.7,page no 135" + ] + }, + { + "cell_type": "code", + "execution_count": 15, + "metadata": { + "collapsed": false + }, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "duration of each element is:10.00 msec\n", + "\n", + "speed is 100.00 bauds\n", + "\n", + "total possible combinations are:128.00\n" + ] + } + ], + "source": [ + "#given\n", + "N=7#no of character elements\n", + "E_C=10#elements per character (1+7+1+1)\n", + "To=100e-3#duration of one character\n", + "Te=To/E_C#duration of each element\n", + "print \"duration of each element is:%0.2f msec\\n\"%(Te*1e3)\n", + "Sb=1/Te#speed in bauds\n", + "print \"speed is %0.2f bauds\\n\"%(Sb)\n", + "C=2**N#total possible combinations\n", + "print \"total possible combinations are:%0.2f\"%(C)" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "## Example 2.8,page no 129" + ] + }, + { + "cell_type": "code", + "execution_count": 16, + "metadata": { + "collapsed": false + }, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "Total no of call in busy hour is:1500.00 calls per Hour\n", + "\n", + "Busy hour calling rate is:1.50 \n", + "\n", + "grade of service is: 0.02\n" + ] + } + ], + "source": [ + "#given\n", + "S=1000#no of subscribers\n", + "T=2.4/60#avarage duration of calls in hours\n", + "A=60#rate of traffic flow\n", + "C=A/T#Tatol no of call in busy hour\n", + "print \"Total no of call in busy hour is:%0.2f calls per Hour\\n\"%(C)\n", + "CR=C/S#busy hour calling rate\n", + "print \"Busy hour calling rate is:%0.2f \\n\"%(CR)\n", + "SCL=30#no of call lost per hour\n", + "\n", + "B=SCL/(C+SCL)#grade of service\n", + "print \"grade of service is: %0.2f\"%(B)" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "## Example 2.9,page no 129" + ] + }, + { + "cell_type": "code", + "execution_count": 17, + "metadata": { + "collapsed": false + }, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "grade of service is: 2.00e-03\n", + "\n", + "traffic lost is: 1.80e-03\n" + ] + } + ], + "source": [ + "from math import factorial\n", + "#given\n", + "N=5#no of switches\n", + "A=0.9#traffic offered \n", + "#grade of service B=(A**N/N!)/(1+A+A**2/2!+A**3/3!+...+A**N/N!)\n", + "#here\n", + "B=(A**N/factorial(N))/(1+A+(A**2/factorial(2))+(A**3/factorial(3))+(A**4/factorial(4))+(A**5/factorial(5)))\n", + "print \"grade of service is: %0.2e\\n\"%(B)\n", + "Tl=A*B#traffic lost\n", + "print \"traffic lost is: %0.2e\"%(Tl)" + ] + } + ], + "metadata": { + "kernelspec": { + "display_name": "Python 2", + "language": "python", + "name": "python2" + }, + "language_info": { + "codemirror_mode": { + "name": "ipython", + "version": 2 + }, + "file_extension": ".py", + "mimetype": "text/x-python", + "name": "python", + "nbconvert_exporter": "python", + "pygments_lexer": "ipython2", + "version": "2.7.9" + } + }, + "nbformat": 4, + "nbformat_minor": 0 +} diff --git a/Principle_of_Communication_Engineering_by_A._Singh_and_A._K._Chhabra/Chapter3_xiZnYrP.ipynb b/Principle_of_Communication_Engineering_by_A._Singh_and_A._K._Chhabra/Chapter3_xiZnYrP.ipynb new file mode 100644 index 00000000..49782c9f --- /dev/null +++ b/Principle_of_Communication_Engineering_by_A._Singh_and_A._K._Chhabra/Chapter3_xiZnYrP.ipynb @@ -0,0 +1,1095 @@ +{ + "cells": [ + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "# Chapter No. 3 - Modulation" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "## Example3.1, page no 135" + ] + }, + { + "cell_type": "code", + "execution_count": 58, + "metadata": { + "collapsed": false + }, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "percentage modulation is:83.14.2f \n", + " Power after modulation is:13.46.2f watts\n" + ] + } + ], + "source": [ + "from __future__ import division\n", + "from math import sqrt\n", + "#Given\n", + "Ic=10 #carrier current in Amps\n", + "Imod=11.6# Current after modulation\n", + "Rl=1#Assumed load in ohm\n", + "Pmod=Rl*Imod**2#power before modulation\n", + "Ma= sqrt(2*((Pmod/Ic**2)-1))#percentage modulation\n", + "Pc=10\n", + "Pmod=Pc*(1+(Ma**2/2))#power after modulation\n", + "print 'percentage modulation is:%0.2f.2f \\n Power after modulation is:%0.2f.2f watts'%(Ma*100,Pmod)" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "## Example3.2, page no 135" + ] + }, + { + "cell_type": "code", + "execution_count": 11, + "metadata": { + "collapsed": false + }, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "Depth of modulation is:0.50.2f\n" + ] + } + ], + "source": [ + "from __future__ import division\n", + "from math import sqrt\n", + "#Given\n", + "Pc=9e3# Tx Power without modulation\n", + "Pmod=10.125e3#Tx Power after modulation\n", + "Ma= sqrt(2*((Pmod/Pc)-1))#depth of (percentage) modulation\n", + "print 'Depth of modulation is:%0.2f.2f'%(Ma)" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "## Example3.3, page no 136" + ] + }, + { + "cell_type": "code", + "execution_count": 12, + "metadata": { + "collapsed": false + }, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "The total power radiated is 1320 watts\n" + ] + } + ], + "source": [ + "#Given\n", + "M1=0.2#depth of modulation for first tone\n", + "M2=0.4#depth of modulation for second tone\n", + "Pc=1200#Tx Power\n", + "Pmod=Pc*(1+M1**2/2+M2**2/2)#total power radiated after modulation by both the tones\n", + "print 'The total power radiated is %d watts'%(Pmod)" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "## Example3.4, page no 138" + ] + }, + { + "cell_type": "code", + "execution_count": 3, + "metadata": { + "collapsed": false + }, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "modulating power required from the audio source\n", + " is:37.69 watts\n", + " Modulator Impedance is:29850.75 ohm\n", + " Plate dissipation is:96.69 watts\n" + ] + } + ], + "source": [ + "#Given\n", + "Ebb=2e3#DC plate supply\n", + "Ecc=-500#DC grid bias\n", + "Ib=67e-3#DC plate current\n", + "Ic=30e-3#DC grid current\n", + "Egm=750#RF peak grid voltage\n", + "Pout=75#RF Power output\n", + "Ma=0.75#Depth of modulation\n", + "Paf=(Ma**2*Ebb*Ib)/(2*1)#modulating power required from the audio source\n", + "Pdc=Ebb*Ib#Power supplied by DC source\n", + "Zm=Ebb**2/Pdc#Modulator Impedance\n", + "\n", + "Pd=Pdc+Paf-Pout#Plate dissipation\n", + "print 'modulating power required from the audio source\\n is:%0.2f watts\\n Modulator Impedance is:%0.2f ohm\\n Plate dissipation is:%0.2f watts'%(Paf,Zm,Pd)" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "## Example3.5b, page no 139" + ] + }, + { + "cell_type": "code", + "execution_count": 4, + "metadata": { + "collapsed": false + }, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "Tx power:1200.00 Watts\n", + " Power dissipation at the modulator is: 3000.00 Watts\n", + " Overall Efficiency at0.6 modulation is:41.16% \n" + ] + } + ], + "source": [ + "from __future__ import division\n", + "from math import sqrt\n", + "#Given\n", + "Pd=944#Anode dissipation of the class C amplifier in watts\n", + "Ma=0.6#modulation depth,\n", + "Etta=0.6#efficiency\n", + "Pout=(Etta*Pd/(1-Etta))#power dissipation at 60% modulation\n", + "Pc=Pout/(1+(Ma**2/2))#Tx power\n", + "Psb=Pout-Pc\n", + "Pdc1=Pc/Etta#DC power inputto PA\n", + "Paf=Psb/Etta# modulation power input to PA\n", + "Eff=0.25# efficiency of the modulator\n", + "Pdc2=Paf/Eff#DC power input to modulator\n", + "Pdct=Pdc1+Pdc2#Total DC power to the system\n", + "Effo=Pout/Pdct#Overall Efficiency\n", + "Ma=1# 100% modulation\n", + "Pt=Pc*(1+(Ma**2)/2)\n", + "Psb=(Pc*Ma**2)/2\n", + "Paf=Psb/Etta#modulating input power to PA\n", + "Pdc2=Paf/Eff# DC power input to modulator\n", + "Pd=Pdc2-Paf#Power dissipation at the modulator\n", + "Effo1=Pout/(Pdc1+Pdc2)#Overall Efficiency\n", + "print 'Tx power:%0.2f Watts\\n Power dissipation at the modulator is: %0.2f Watts\\n Overall Efficiency at0.6 modulation is:%0.2f%c '%(Pc,Pd,100*Effo,'%')" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "## Example3.6, page no 141" + ] + }, + { + "cell_type": "code", + "execution_count": 13, + "metadata": { + "collapsed": false + }, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "Carrier Power is: 1133.33 watts \n", + " DC plate dissipation is: 266.67 watts\n", + " output power of modulator is: 700.00 watts\n", + " Plate dissipation inthe modulator is:466.67 watts\n" + ] + } + ], + "source": [ + "from __future__ import division\n", + "from math import sqrt#Given\n", + "Pdc=1400#DC power i/p to PA under 100% modulation\n", + "Ptdc=400#Plate dissipation\n", + "Pd=Ptdc*(2/3)#DC plate dissipation\n", + "\n", + "Pdmod=Ptdc*(1/3)#\n", + "Pc=Pdc-Pd#Carrier Power\n", + "\n", + "Psb=Pc/2#side band power\n", + "Paf=Psb+Pdmod#output power of modulator\n", + "\n", + "Mod_Eff=0.6\n", + "Pdc2=Paf/Mod_Eff#DC i/p power to the modulator\n", + "Pd_AF=Pdc2-Paf#Plate dissipation inthe modulator\n", + "print 'Carrier Power is: %0.2f watts \\n DC plate dissipation is: %0.2f watts\\n output power of modulator is: %0.2f watts\\n Plate dissipation inthe modulator is:%0.2f watts'%(Pc,Pd,Paf,Pd_AF)" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "## Example3.7, page no 141" + ] + }, + { + "cell_type": "code", + "execution_count": 6, + "metadata": { + "collapsed": false + }, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "Maximum carrier power is: 750 watts\n", + " Total RF power is: 1125 watts\n" + ] + } + ], + "source": [ + "#Given\n", + "Paf=500#Modulator output power\n", + "Eff=0.75#Efficiency of the amplifier\n", + "P_lost=Paf*(1-Eff)#modulating power lost in the amplifier\n", + "Psb=Paf*Eff#side band power\n", + "\n", + "m=1\n", + "Pc=2*Psb\n", + "\n", + "Pt=Pc+Psb#Total RF power\n", + "print 'Maximum carrier power is: %d watts\\n Total RF power is: %d watts'%(Pc,Pt)" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "## Example3.8, page no 143" + ] + }, + { + "cell_type": "code", + "execution_count": 14, + "metadata": { + "collapsed": false + }, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "Carrier power is: 2100 watts\n", + " Maximum depth of modulation is: 92.58\n" + ] + } + ], + "source": [ + "from __future__ import division\n", + "from math import sqrt#Given\n", + "Po=3000# Rating of Power Amplifier\n", + "Pr=750#Push-Pull amplifier rated as\n", + "Paf=2*Pr#Rated power output from Push-Pull modulator\n", + "Eff=0.6\n", + "P_lost=Paf-(Eff*Paf)#Modulation power lost\n", + "Psb=Paf-P_lost#side band power\n", + "\n", + "Pc=Po-Psb#Carrier power\n", + "Ma=sqrt(2*Psb/Pc)*100#Maximum depth of modulation\n", + "print 'Carrier power is: %d watts\\n Maximum depth of modulation is: %0.2f'%(Pc,Ma)" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "## Example3.9, page 143" + ] + }, + { + "cell_type": "code", + "execution_count": 8, + "metadata": { + "collapsed": false + }, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "Carrier freq is: 10 MHz\n", + "Modulating freq is:500 Hz\n", + "Carrier power is: 208.00 watts\n", + "Mean output power is: 224.64 watts\n", + "Peak output power is: 408.33 watts\n" + ] + } + ], + "source": [ + "from numpy import arange, pi\n", + "#Given\n", + "t=arange(0,10,0.001)\n", + "#e=500*(1+(0.4*sin(3140*t)))*sin(6.28e7*t)\n", + "#a\n", + "wc=6.28e7#Carrier angular frequency\n", + "fc=wc/(2*pi)# Carrier freq\n", + "#b\n", + "wm=3140#Modulating angular freq\n", + "fm=wm/(2*pi)#Modulating freq\n", + "#c\n", + "Ec=500#/peak carrier voltage\n", + "Pc=(Ec**2)/(2*600)#Carrier power\n", + "#d\n", + "Ma=0.4\n", + "Pt=Pc*(1+(Ma**2 / 2))#Mean output power\n", + "#e\n", + "Rl=600#load resistance\n", + "Ecp=Ec+(Ma*Ec)#Peak output voltage\n", + "Ptm=Ecp**2/(2*Rl)#Peak power\n", + "print 'Carrier freq is: %d MHz\\nModulating freq is:%d Hz\\nCarrier power is: %0.2f watts\\nMean output power is: %0.2f watts\\nPeak output power is: %0.2f watts'%(round(fc*1e-6),round(fm),Pc,Pt,Ptm)" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "## Example3.10, page no 143" + ] + }, + { + "cell_type": "code", + "execution_count": 15, + "metadata": { + "collapsed": false + }, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "Antenna current for full modulation is: 45.64 amp\n", + "Peak base voltage is: 5672.55/_48 volts\n", + "Peak base voltage is: 4254.41/_48 volts\n" + ] + } + ], + "source": [ + "from math import atan,sqrt\n", + "from cmath import polar\n", + "#Given\n", + "#b\n", + "Pc=50e3#Carrier power\n", + "Z=36 + 1J*40#base impedance of the antenna\n", + "Ma=1#modulation depth\n", + "Pmod=Pc*(1+((Ma**2)/2))#power delivered to the antenna under 100% modulation\n", + "#i\n", + "R=36#resistance of the antenna \n", + "Irms=sqrt(Pmod/R)#Antenna Current\n", + "\n", + "#ii\n", + "Ic=sqrt(Pc/R)#RMS carrier current \n", + "\n", + "Icm=Ic*sqrt(2)# Peak carrier current \n", + "Imod=2*Icm#Modulated current\n", + "\n", + "Theta=atan(40/36)*180/pi# from real and imaginary components of Z\n", + "Vbm100=Imod*Z#Peak base output voltage for 100% modulation\n", + "[Re_Vb,Im_Vb]=polar(Vbm100)\n", + "\n", + "#iii\n", + "Ma=0.5\n", + "Imod=Icm*(1+0.5)\n", + "\n", + "Vbm50=Imod*Z\n", + "[Re_Vb1,Im_Vb1]=polar(Vbm50)\n", + "print 'Antenna current for full modulation is: %0.2f amp\\nPeak base voltage is: %0.2f/_%d volts\\nPeak base voltage is: %0.2f/_%d volts'%(Irms,Re_Vb,Theta,Re_Vb1,Theta)\n", + "# The Ans is little deviated from that of book as the decimal places considered while calculating at different stages might be different \n", + "\n", + "#Answers from the book are little deviated but the evaluated values in the scilab are correct results" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "## Example3.11, page no 144" + ] + }, + { + "cell_type": "code", + "execution_count": 16, + "metadata": { + "collapsed": false + }, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "USB freq=10005 k5Hz\n", + "USB amplitude=2.50 V\n", + "LSB freq=9995 kHz\n", + "LSB amplitude=2.50 V\n", + "Carrier amplitude=10 V\n" + ] + }, + { + "data": { + "image/png": "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\n", + "text/plain": [ + "<matplotlib.figure.Figure at 0x7fac3ffd5150>" + ] + }, + "metadata": {}, + "output_type": "display_data" + } + ], + "source": [ + "from math import sin\n", + "%matplotlib inline\n", + "from matplotlib.pyplot import plot, subplot, title, xlabel, ylabel, show\n", + "# Given\n", + "def f(x):\n", + " y=[]\n", + " for xx in x:\n", + " y.append(Ec*(1+ma*(sin(wm*xx)))*sin(wc*xx))\n", + " return y\n", + "Ec=10\n", + "ma=0.5\n", + "wm=10000*pi\n", + "wc=2*pi*1e7\n", + "x=arange(0,20*pi/10,.01)\n", + "subplot(2,1,1)\n", + "plot(x,f(x))\n", + "xlabel(\"t\")\n", + "ylabel(\"Modulated Wave\")\n", + "Fc=wc/(2*pi)\n", + "Fm=wm/(2*pi)\n", + "Fusb=(wm+wc)/(2*pi)\n", + "Flsb=(wm-wc)/(2*pi)\n", + "print 'USB freq=%d k5Hz\\nUSB amplitude=%0.2f V\\nLSB freq=%d kHz\\nLSB amplitude=%0.2f V\\nCarrier amplitude=%d V'%(Fusb*1e-3,2.5,Flsb*-1e-3,2.5,10)\n", + "F=[0,2.5,10,2.5,0]\n", + "T=[-2,-1,0,1,2]\n", + "subplot(2,1,2)\n", + "plot(T,F)\n", + "xlabel(\"Freq\")\n", + "ylabel(\"Amplitude\")\n", + "show()" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "## Example3.12 page no 145" + ] + }, + { + "cell_type": "code", + "execution_count": 69, + "metadata": { + "collapsed": false + }, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "The depth of modulation is: 50%\n" + ] + } + ], + "source": [ + "from math import sqrt\n", + "#Given\n", + "Pc=9e3#unmodulated carrier power\n", + "Pt=10.125e3#Modulated carrier power\n", + "Ma=sqrt(2*((Pt/Pc)-1))#depth of modulation\n", + "print 'The depth of modulation is: %d%c'%(Ma*100,'%')" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "## Example3.13 page no 148" + ] + }, + { + "cell_type": "code", + "execution_count": 1, + "metadata": { + "collapsed": false + }, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "The power output is: 34.45 W\n" + ] + } + ], + "source": [ + "#Given\n", + "Pt=5e3#carrier power for 95% modulation\n", + "Ma=0.95\n", + "Pc=Pt/(1+((Ma**2)/2))#carrier power\n", + "Ma=0.2#average modulation by speech signal\n", + "Psb=(Ma**2)*Pc/2#the power n the sideband\n", + "Pout=Psb/2# because one of the side band is suppressed\n", + "print 'The power output is: %0.2f W'%(Pout)" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "## Example3.14 page no 152" + ] + }, + { + "cell_type": "code", + "execution_count": 2, + "metadata": { + "collapsed": false + }, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "DeltaPhi1= 10 rad\n", + "DeltaPhi2=500 rad\n", + "\n" + ] + } + ], + "source": [ + "#Given\n", + "#Phi=(wc*t+Mf*sin(wmt))....instantaneous phase of FM\n", + "fm=5000#modulating freq\n", + "deltaf=50e3#freq deviation\n", + "deltaPhi1=deltaf/fm# Advance or retard in phase\n", + "\n", + "fm=100#modulating freq in second signal\n", + "deltaPhi2=deltaf/fm\n", + "print 'DeltaPhi1= %d rad\\nDeltaPhi2=%d rad\\n'%(deltaPhi1,deltaPhi2)" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "## Example3.14 page no 157" + ] + }, + { + "cell_type": "code", + "execution_count": 4, + "metadata": { + "collapsed": false + }, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "Peak Phase Deviation: 0.76 rad\n", + "Peak Freq Deviation: 761 Hz\n", + "Depth of residual AM: 0.08\n", + "Residual AM freq:2 kHz\n" + ] + } + ], + "source": [ + "from __future__ import division\n", + "from math import sqrt,atan\n", + "#Given\n", + "#e=Ec(1+0.4cos(2pie3*t))*sin(2pie7*t)\n", + "fm=1000#modulating s/g freq\n", + "deltaTheta=2*atan(0.4)#peak phase deviation\n", + "\n", + "deltaF=deltaTheta*fm#Peak freq deviation\n", + "\n", + "Ec=1\n", + "Er=sqrt((Ec**2)*(1+(0.4**2)))\n", + "m=(Er-Ec)/Ec#depth of residual AM \n", + "\n", + "AMFr=2*fm# freq ofresidual AM\n", + "print 'Peak Phase Deviation: %0.2f rad\\nPeak Freq Deviation: %d Hz\\nDepth of residual AM: %0.2f\\nResidual AM freq:%d kHz'%(deltaTheta,deltaF,(round(m*100)/100),AMFr*1e-3)" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "## Example3.16 page no 170" + ] + }, + { + "cell_type": "code", + "execution_count": 5, + "metadata": { + "collapsed": false + }, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "a)\n", + "Max phase deviation is:250 rad\n", + "b)\n", + "Max phase deviation is:2.50 rad\n" + ] + } + ], + "source": [ + "#Given\n", + "deltaF=25e3#freq deviation\n", + "#a\n", + "fm=100#modulation signal freq\n", + "mf=deltaF/fm# Max phase deviation\n", + "print 'a)'\n", + "print 'Max phase deviation is:%d rad'%(mf)\n", + "#b\n", + "fm=10e3#modulation signal freq\n", + "mf=deltaF/fm#Max phase deviation\n", + "\n", + "print 'b)'\n", + "print 'Max phase deviation is:%0.2f rad'%(mf)" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "## Example3.17, page no 171" + ] + }, + { + "cell_type": "code", + "execution_count": 7, + "metadata": { + "collapsed": false + }, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "The maximum freq deviation is: 5 kHz\n" + ] + } + ], + "source": [ + "from __future__ import division\n", + "from math import sqrt\n", + "#Given\n", + "gm=0.1e-3# trans-conductance variation A/V\n", + "C=0.5e-12# capactance between anode and grid\n", + "R=1e3# resistance\n", + "fo=10e6# oscillator freq\n", + "Vrms=1.414#AF RMS voltage \n", + "Vp=sqrt(2)*Vrms#Peak voltage\n", + "Ct=100e-12#tank capacitance\n", + "deltaC=gm*C*R*Vp\n", + "\n", + "deltaF=fo*(deltaC/(2*Ct))# maximum freq deviation\n", + "print 'The maximum freq deviation is: %d kHz'%(round(deltaF/1000))" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "## Example3.18, page no 172" + ] + }, + { + "cell_type": "code", + "execution_count": 75, + "metadata": { + "collapsed": false + }, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "The approximate bandwidth is: 2 MHz\n" + ] + } + ], + "source": [ + "#Given\n", + "deltaF=1e6# max freq deviation\n", + "fm=10e3#modulating freq\n", + "mf=(2*deltaF)/fm# modulation coefficient\n", + "BW=mf*fm# bandwidth\n", + "print 'The approximate bandwidth is: %d MHz'%(BW/1e6)" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "## Example3.19, page no 172" + ] + }, + { + "cell_type": "code", + "execution_count": 76, + "metadata": { + "collapsed": false + }, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "The approximate bandwidth is: 150 kHz\n" + ] + } + ], + "source": [ + "#Given\n", + "deltaF=75e3# max freq deviation\n", + "fm=15e3#modulation freq\n", + "mf=(2*deltaF)/fm# freq modulation depth\n", + "BW=mf*fm# Bandwidth\n", + "print 'The approximate bandwidth is: %d kHz'%(BW/1e3)" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "## Example3.21, page no 173" + ] + }, + { + "cell_type": "code", + "execution_count": 77, + "metadata": { + "collapsed": false + }, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "Overall bandwidth including guard band is 200 kHz\n" + ] + } + ], + "source": [ + "#Given\n", + "deltaF=75e3#freq deviation\n", + "fm=15e3# modulating freq\n", + "mf=deltaF/fm\n", + "BW=2*mf*fm# Bandwidth\n", + "GB=25e3#Guard Band\n", + "BWo=BW+(2*GB)# Overall bandwidth\n", + "print 'Overall bandwidth including guard band is %d kHz'%(BWo/1e3)" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "## Example3.25, pageno 175" + ] + }, + { + "cell_type": "code", + "execution_count": 78, + "metadata": { + "collapsed": false + }, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "Average power is: 25.17 watts\n" + ] + }, + { + "data": { + "image/png": "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\n", + "text/plain": [ + "<matplotlib.figure.Figure at 0x7f9d76e23e90>" + ] + }, + "metadata": {}, + "output_type": "display_data" + } + ], + "source": [ + "from math import sin\n", + "%matplotlib inline\n", + "from matplotlib.pyplot import plot, subplot, title, xlabel, ylabel, show\n", + "#Given\n", + "#em=3sin(2*pi*1000t)+5cos(2*pi*3000t)\n", + "#ec=50sin(2*pi*500e3*t)\n", + "m1=0.06#(sine wave amplitude/ peak carrier voltage)\n", + "m2=0.1#(cosine wave amplitude/ peak carrier voltage)\n", + "Vc=50#Carrier voltage\n", + "R=50#load resistance\n", + "Pc=(Vc**2)/(2*R)#Peak carrier power\n", + "Pt=Pc*(1+((m1**2+m2**2)/2))#Total power after modulation\n", + "print 'Average power is: %0.2f watts'%(Pt)\n", + "F=[0,2.5,1.5,50,1.5,2.5,0]\n", + "T=[490,497,499,500,501,503,510]\n", + "plot(T,F)\n", + "xlabel(\"Freq\")\n", + "ylabel(\"Amplitude\")\n", + "show()" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "## Example3.26, page no 176" + ] + }, + { + "cell_type": "code", + "execution_count": 79, + "metadata": { + "collapsed": false + }, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "Required Deviation is: 50 kHz\n", + "\n", + "Required Multipication Factor is: 5*5*5*5*2\n" + ] + } + ], + "source": [ + "#Given\n", + "mp=0.1#Modulating index\n", + "fm=400#Modulating signal freq\n", + "deltaF=mp*fm#Max freq deviation\n", + "#print deltaF)\n", + "ReqDev=50e3# Required deviation\n", + "MF=ReqDev/deltaF# multiplication factor\n", + "print 'Required Deviation is: %d kHz\\n'%(ReqDev/1e3)\n", + "print 'Required Multipication Factor is: 5*5*5*5*2'" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "## Example3.27, page no 176" + ] + }, + { + "cell_type": "code", + "execution_count": 80, + "metadata": { + "collapsed": false + }, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "The Depth of modulation across the \n", + " circuit is : Ma= 49.07%\n" + ] + } + ], + "source": [ + "#Given\n", + "Q=100 #Q factor\n", + "fc=1000e3# Carrier freq\n", + "fsb1=999e3#lower Side band freq\n", + "fsb2=1001e3#Upper side Band freq\n", + "ma=0.5#Modulation depth of signal current\n", + "Ma=ma/1.019# Expression for Ma after simplification\n", + "print 'The Depth of modulation across the \\n circuit is : Ma= %0.2f%c'%(Ma*100,'%')\n", + "\n", + "# Note : There are some calculation errors in the solution presented in the book" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "## Example3.28, page no 177" + ] + }, + { + "cell_type": "code", + "execution_count": 81, + "metadata": { + "collapsed": false + }, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "Depth of modulation:72.90 %\n" + ] + } + ], + "source": [ + "#Given\n", + "R=1#Antenna Resistance assumed to be 1 ohm for ease of calculation\n", + "Ic=10.8# current with no modulation\n", + "Pc=Ic**2*R#power with no modulation\n", + "It=12.15#modulated current\n", + "Pt=It**2*R# modulated power\n", + "ma=(sqrt(2*(((It/Ic)**2)-1)))#modulation depth)\n", + "\n", + "print 'Depth of modulation:%0.2f %c'%(round(1000*ma)/10,'%')#" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "## Example3.29, page no 177" + ] + }, + { + "cell_type": "code", + "execution_count": 82, + "metadata": { + "collapsed": false + }, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "Total RF power delivered is:Pt= 112.50 kW\n" + ] + } + ], + "source": [ + "#Given\n", + "Pc=100e3#Carrier power\n", + "ma=0.5#Depth of modulation\n", + "Pt=Pc*(1+((ma**2)/2))#total RF power\n", + "print 'Total RF power delivered is:Pt= %0.2f kW'%(Pt/1e3)" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "## Example3.30, page no 178" + ] + }, + { + "cell_type": "code", + "execution_count": 83, + "metadata": { + "collapsed": false + }, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "Carrier power:71.17 kW\n", + "The Intelligence power: 28.83 kW\n" + ] + } + ], + "source": [ + "#Given\n", + "Pt=100e3# Total power\n", + "ma=0.9#Depth of modulation\n", + "Pc=Pt/(1+((ma**2)/2))#Carrier power\n", + "Psb=Pt-Pc# Intelligence power i.e sideband power\n", + "print 'Carrier power:%0.2f kW\\nThe Intelligence power: %0.2f kW'%(Pc/1000,Psb/1000)" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "## Example3.19, page no 178" + ] + }, + { + "cell_type": "code", + "execution_count": 8, + "metadata": { + "collapsed": false + }, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "Modulation Index is: 64.81 \n" + ] + } + ], + "source": [ + "from math import sin,sqrt\n", + "#Given\n", + "R=1# load resistance\n", + "Eo=100#RF voltage\n", + "Po=Eo**2/R#Carrier power\n", + "E=110#Modulated RMS voltage\n", + "Pt=E**2/R#Total modulated power\n", + "ma=sqrt(2*((Pt/Po)-1))# Depth of modulation\n", + "print 'Modulation Index is: %0.2f '%(ma*100)" + ] + } + ], + "metadata": { + "kernelspec": { + "display_name": "Python 2", + "language": "python", + "name": "python2" + }, + "language_info": { + "codemirror_mode": { + "name": "ipython", + "version": 2 + }, + "file_extension": ".py", + "mimetype": "text/x-python", + "name": "python", + "nbconvert_exporter": "python", + "pygments_lexer": "ipython2", + "version": "2.7.9" + } + }, + "nbformat": 4, + "nbformat_minor": 0 +} diff --git a/Principle_of_Communication_Engineering_by_A._Singh_and_A._K._Chhabra/Chapter5_b3JDxfA.ipynb b/Principle_of_Communication_Engineering_by_A._Singh_and_A._K._Chhabra/Chapter5_b3JDxfA.ipynb new file mode 100644 index 00000000..e234ad9f --- /dev/null +++ b/Principle_of_Communication_Engineering_by_A._Singh_and_A._K._Chhabra/Chapter5_b3JDxfA.ipynb @@ -0,0 +1,69 @@ +{ + "cells": [ + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "# Chapter 5 : Radio Transmission system" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "## Example 5.1, page no 230" + ] + }, + { + "cell_type": "code", + "execution_count": 4, + "metadata": { + "collapsed": false + }, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + " Freq deviation is 17.453293 Hz\n", + " Multification factor is 1718\n", + " corresponding modified max freq deviation is 30114kHz\n" + ] + } + ], + "source": [ + "from numpy import pi\n", + "#Given\n", + "#b\n", + "fm=1e2#modulation freq\n", + "Phimax=10*pi/180# Max Phase deviation\n", + "#i\n", + "Freq_dev=Phimax*fm# Freq deviation\n", + "#ii\n", + "Mul_fact=30e3/Freq_dev# Multification factor\n", + "print ' Freq deviation is %f Hz\\n Multification factor is %d\\n corresponding modified max freq deviation is 30114kHz'%(Freq_dev,Mul_fact)\n" + ] + } + ], + "metadata": { + "kernelspec": { + "display_name": "Python 2", + "language": "python", + "name": "python2" + }, + "language_info": { + "codemirror_mode": { + "name": "ipython", + "version": 2 + }, + "file_extension": ".py", + "mimetype": "text/x-python", + "name": "python", + "nbconvert_exporter": "python", + "pygments_lexer": "ipython2", + "version": "2.7.9" + } + }, + "nbformat": 4, + "nbformat_minor": 0 +} diff --git a/Principle_of_Communication_Engineering_by_A._Singh_and_A._K._Chhabra/Chapter6_hxtqyXd.ipynb b/Principle_of_Communication_Engineering_by_A._Singh_and_A._K._Chhabra/Chapter6_hxtqyXd.ipynb new file mode 100644 index 00000000..c82ada44 --- /dev/null +++ b/Principle_of_Communication_Engineering_by_A._Singh_and_A._K._Chhabra/Chapter6_hxtqyXd.ipynb @@ -0,0 +1,104 @@ +{ + "cells": [ + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "# Chapter 6 : Radio Receivers" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "## Example 6.1, page no 262" + ] + }, + { + "cell_type": "code", + "execution_count": 1, + "metadata": { + "collapsed": false + }, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "Carrier freq for the BW to be 1% of fc is: 2000 kHz\n" + ] + } + ], + "source": [ + "#Given\n", + "#Vm(t),Vc(t),Vmod(t)\n", + "fm=10e3#modulating freq\n", + "BW=2*fm# Bandwidth\n", + "fc=100*BW#Carrier freq\n", + "print'Carrier freq for the BW to be 1%% of fc is: %d kHz'%(fc/1000)" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "## Example6.2, page no 262" + ] + }, + { + "cell_type": "code", + "execution_count": 2, + "metadata": { + "collapsed": false + }, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "a)\n", + "Tuning capacitor range is: 4.579156\n", + "b)\n", + "Tuning capacitor range is: 1051\n" + ] + } + ], + "source": [ + "#Given\n", + "fmax=1600e3\n", + "fmin=500e3\n", + "IF=465e3\n", + "#i\n", + "fo1max=fmax+IF\n", + "fo1min=fmin+IF\n", + "C1max_C1min=(fo1max/fo1min)**2\n", + "#ii\n", + "fo2max=fmax-IF\n", + "fo2min=fmin-IF\n", + "C2max_C2min=(fo2max/fo2min)**2\n", + "print 'a)\\nTuning capacitor range is: %f\\nb)\\nTuning capacitor range is: %d'%(C1max_C1min,C2max_C2min)\n" + ] + } + ], + "metadata": { + "kernelspec": { + "display_name": "Python 2", + "language": "python", + "name": "python2" + }, + "language_info": { + "codemirror_mode": { + "name": "ipython", + "version": 2 + }, + "file_extension": ".py", + "mimetype": "text/x-python", + "name": "python", + "nbconvert_exporter": "python", + "pygments_lexer": "ipython2", + "version": "2.7.9" + } + }, + "nbformat": 4, + "nbformat_minor": 0 +} diff --git a/Principle_of_Communication_Engineering_by_A._Singh_and_A._K._Chhabra/Chapter7_QXJtmam.ipynb b/Principle_of_Communication_Engineering_by_A._Singh_and_A._K._Chhabra/Chapter7_QXJtmam.ipynb new file mode 100644 index 00000000..7df129c1 --- /dev/null +++ b/Principle_of_Communication_Engineering_by_A._Singh_and_A._K._Chhabra/Chapter7_QXJtmam.ipynb @@ -0,0 +1,438 @@ +{ + "cells": [ + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "# Chapter 7 : Noise" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "## Example7.2, page no 276" + ] + }, + { + "cell_type": "code", + "execution_count": 5, + "metadata": { + "collapsed": false + }, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "The mean square noise voltage is: 18.363 mV\n" + ] + } + ], + "source": [ + "from numpy import sqrt,pi\n", + "from mpmath import quad\n", + "#Given\n", + "mue=25#\n", + "rp=5e3\n", + "Rl=10e3\n", + "C=1e-9\n", + "gm=mue/rp\n", + "Req=2.5/gm\n", + "\n", + "k=1.381e-23\n", + "T=293\n", + "R1=1e5\n", + "# Power density spectrum for respective res\n", + "d1=2*k*T*R1\n", + "d2=2*k*T*Req\n", + "d3=2*k*T*Rl\n", + "xo=0\n", + "x1=1e14\n", + "#w=0:inf\n", + "#H1(w)=(-gm*rp*Rl)/(rp+Rl+(1J*w*rp*Rl*C))\n", + "Vo=sqrt((20231.65e2/pi)*quad(lambda w:1/(((3e9)**2)+(w**2)),[xo,x1]))\n", + "print 'The mean square noise voltage is: %0.3f mV'%(Vo*1e3)" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "## Example7.3, page no 279" + ] + }, + { + "cell_type": "code", + "execution_count": 6, + "metadata": { + "collapsed": false + }, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "The mean square noise voltage is: 22.414 uV\n" + ] + } + ], + "source": [ + "from numpy import sqrt,pi\n", + "from mpmath import quad\n", + "\n", + "#Given\n", + "mue=25\n", + "rp=5e3\n", + "Rs=1e3#input resistance\n", + "#Coupling Capacitors are assumed as short circuit\n", + "Rg=1e5\n", + "gm=25/5e3\n", + "Req=2.5/gm\n", + "F=1+((((Req*(Rs+Rg)**2)+(Rg*Rs**2))/(Rs*Rg**2)))\n", + "xo=0\n", + "x1=1e10\n", + "#w=0:inf\n", + "\n", + "vo=sqrt((30145e-8/pi)*quad(lambda w:1/(((3e5)**2)+(w**2)),[xo,x1]))\n", + "print 'The mean square noise voltage is: %.3f uV'%(vo*1e6)" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "## Example7.4, page no 283" + ] + }, + { + "cell_type": "code", + "execution_count": 7, + "metadata": { + "collapsed": false + }, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "overall noise Figure is: 4.33\n" + ] + } + ], + "source": [ + "from __future__ import division\n", + "#Given\n", + "Ap1=10\n", + "Ap2=10\n", + "Ap3=10# # Gain of each states\n", + "F_1=6\n", + "F_2=6\n", + "F_3=6# #Noise figure of each state\n", + "F1= round(10**(F_1/10))\n", + "F2= round(10**(F_2/10))\n", + "F3= round(10**(F_3/10))# # approximating the values\n", + "\n", + "F=F1+((F2-1)/Ap1)+((F3-1)/(Ap1*Ap2))\n", + "print 'overall noise Figure is: %.2f'%(F)" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "## Example7.5, page no 283" + ] + }, + { + "cell_type": "code", + "execution_count": 8, + "metadata": { + "collapsed": false + }, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "The overall noise figure is: 7.04\n" + ] + } + ], + "source": [ + "from __future__ import division\n", + "#Given\n", + "Fif=15# Noise figure of IF amplifier\n", + "Ap1=10# Gain of Preamplifier\n", + "Fpa=6#Noise figure of preamplifier\n", + "F2=10**(Fif/10)\n", + "F1=10**(Fpa/10)\n", + "\n", + "F=F1+((F2-1)/Ap1)#overall noise figure\n", + "print 'The overall noise figure is: %.2f'%(F)" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "## Example7.6, page no 284" + ] + }, + { + "cell_type": "code", + "execution_count": 9, + "metadata": { + "collapsed": false + }, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "Overall Noise figure is: 2.055\n" + ] + } + ], + "source": [ + "from __future__ import division\n", + "#Given\n", + "mue=25# tube parameters\n", + "rp=10e3# tube parameters\n", + "gm=2.5e-3# transconductance\n", + "Req=2.5/gm# equivalent resistance\n", + "Rs=1000\n", + "Rg=1e5\n", + "F1=1+(((Req*((Rs+Rg)**2))+Rg*Rs**2)/(Rs*(Rg**2)))#noise figure of the first stage\n", + "Rg2=9.1e3\n", + "Rs2=10e3\n", + "Es=1# assuming Es=1 for ease of calculation\n", + "Pi=((Es/2e3)**2)*1e3\n", + "Po=1.532e-2*Es**2\n", + "Ap1=Po/Pi\n", + "F2=1+(((Req*((Rs2+Rg2)**2))+Rg2*Rs2**2)/(Rs2*(Rg2**2)))# noise figure of the second stage\n", + "F=(F1)+((F2-1)/Ap1)\n", + "print 'Overall Noise figure is: %.3f'%(F)" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "## Example7.8, page no 285" + ] + }, + { + "cell_type": "code", + "execution_count": 10, + "metadata": { + "collapsed": false + }, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "The equivalent noise temp is: 4.913 K\n" + ] + } + ], + "source": [ + "from __future__ import division\n", + "#Given\n", + "g01=30# gain of 1st stage\n", + "g02=20#gain of 2nd stage\n", + "g03=40#gain of 3rd stage\n", + "F2=6# Noise factor of stage 2\n", + "F3=12# Noise factor of stage 3\n", + "Te1=4# Eq noise temp of stage 1\n", + "T=290# Room \n", + "G01=round(10**(g01/10))\n", + "G02=round(10**(g02/10))\n", + "G03=round(10**(g03/10))\n", + "F_2=round(10**(F2/10))\n", + "F_3=round(10**(F3/10))\n", + "Te2=round((F_2-1))*T\n", + "Te3=round((F_3-1))*T\n", + "Te=Te1+(Te2/G01)+(Te3/(G01*G02))# Eq overall noise temp\n", + "print 'The equivalent noise temp is: %.3f K'%(Te)" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "## Example7.9, page no 286" + ] + }, + { + "cell_type": "code", + "execution_count": 11, + "metadata": { + "collapsed": false + }, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "Equivalent noise temperature is 7.028 K\n" + ] + } + ], + "source": [ + "from __future__ import division\n", + "#Given\n", + "g01=round(10**(25/10))#low noise amplifier gain\n", + "Te1=4#low noise amplifier noise temp\n", + "g02=round(10**(1.7))#preamplifier gain\n", + "F2=round(10**0.6)#preamplifier noise figure\n", + "F3=round(10**1.2)#preamplifier noise figure\n", + "T=290# room temp\n", + "Te2=round((F2-1)*T)\n", + "Te3=round((F3-1)*T)\n", + "Te=Te1+(Te2/g01)+(Te3/(g01*g02))#Overall noise Temperature\n", + "print 'Equivalent noise temperature is %.3f K'%(Te)" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "## Example7.10, page no 286" + ] + }, + { + "cell_type": "code", + "execution_count": 12, + "metadata": { + "collapsed": false + }, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "S/N ratio for FM is 43.29 dBs\n" + ] + } + ], + "source": [ + "from __future__ import division\n", + "from math import log10\n", + "#Given\n", + "SNRam=25# Signal to noise ratio of AM\n", + "PcFM_AM=0.9#\n", + "mf=5\n", + "SNRfm=(10*log10(3*(mf**2)*(PcFM_AM)))+SNRam\n", + "print 'S/N ratio for FM is %.2f dBs'%(SNRfm)\n", + "# Note : There are some calculation errors in the solution presented in the book" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "## Example7.11, page no 287" + ] + }, + { + "cell_type": "code", + "execution_count": 13, + "metadata": { + "collapsed": false + }, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "a)\n", + " New SNR for 3dB increase in input s/g is 23 dBs\n", + "b) When Modulation depth is increased to 60%\n", + " SNR becomes 25.676045 dBs\n" + ] + } + ], + "source": [ + "from __future__ import division\n", + "from math import log10\n", + "#Given\n", + "ma=0.3\n", + "SNR=20# s/n ratio\n", + "SNR1=10**(0.1*SNR)\n", + "SNR_new=SNR+3\n", + "ma2=0.6# increased new depth of modulation\n", + "Pt_Ni=SNR1*((1+(ma**2))/(ma**2))\n", + "SNR2=10*log10(Pt_Ni*((ma2**2)/(1+((ma2**2)/2))))\n", + "\n", + "print 'a)\\n New SNR for 3dB increase in input s/g is %d dBs\\nb) When Modulation depth is increased to 60%%\\n SNR becomes %f dBs'%(SNR_new,(SNR2))" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "## Example7.12, page no 287" + ] + }, + { + "cell_type": "code", + "execution_count": 14, + "metadata": { + "collapsed": false + }, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "a) Bit Transmission rate: 60 kbits/s\n", + " Signal to Quantization noise ratio 128 \n", + "b)\n", + " Bit Transmission rate: 5 kbits/sample\n", + " Signal to Quantization noise ratio: 64\n" + ] + } + ], + "source": [ + "from __future__ import division\n", + "from math import log\n", + "#Given\n", + "fmax=5e3#max s/g freq\n", + "S_fmin=2*fmax# Min sampling freq\n", + "B_S=6#Binary bits sent per sample\n", + "BTR=B_S*S_fmin#Bit Transmission rate\n", + "Q=2**B_S#No of Quantizable levels\n", + "MQN=0.5/Q#Max Quantization noise\n", + "S_QNR=MQN**-1# Signal to Quantization noise ratio\n", + "#b\n", + "S_QNRreq=0.5*S_QNR# Signal to Quantization noise ratio\n", + "Qreq=0.5*S_QNRreq#No of Quantizable levels\n", + "B_Sreq=log(Qreq,2)#Binary bits sent per sample\n", + "print 'a) Bit Transmission rate: %d kbits/s\\n Signal to Quantization noise ratio %d \\nb)\\n Bit Transmission rate: %d kbits/sample\\n Signal to Quantization noise ratio: %d'%(BTR/1000,S_QNR,B_Sreq,S_QNRreq)" + ] + } + ], + "metadata": { + "kernelspec": { + "display_name": "Python 2", + "language": "python", + "name": "python2" + }, + "language_info": { + "codemirror_mode": { + "name": "ipython", + "version": 2 + }, + "file_extension": ".py", + "mimetype": "text/x-python", + "name": "python", + "nbconvert_exporter": "python", + "pygments_lexer": "ipython2", + "version": "2.7.9" + } + }, + "nbformat": 4, + "nbformat_minor": 0 +} diff --git a/Principle_of_Communication_Engineering_by_A._Singh_and_A._K._Chhabra/Chapter8_ojfkyD4.ipynb b/Principle_of_Communication_Engineering_by_A._Singh_and_A._K._Chhabra/Chapter8_ojfkyD4.ipynb new file mode 100644 index 00000000..3631a473 --- /dev/null +++ b/Principle_of_Communication_Engineering_by_A._Singh_and_A._K._Chhabra/Chapter8_ojfkyD4.ipynb @@ -0,0 +1,779 @@ +{ + "cells": [ + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "# Chapter No 8 - Transmission Line" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "## Example8.1, page no 313" + ] + }, + { + "cell_type": "code", + "execution_count": 60, + "metadata": { + "collapsed": false + }, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "The characteristic Impedance is Zo= 154.92 ohm\n", + "\n", + "Propagation constant is Gama=0.0+7.75e-06j W\n", + "\n", + " The freq at which the line length is equal to wavelength is: 750 KHz\n", + " The velocity of propagation is: 322.75 km/sec\n" + ] + } + ], + "source": [ + "from __future__ import division\n", + "from math import sqrt, pi\n", + "#Given\n", + "#a\n", + "L=1.2*10**-3#distributed inductance\n", + "C=0.05*10**-6#distributed capacitance\n", + "Zo=sqrt(L/C)#Characteristic Impedance\n", + "print 'The characteristic Impedance is Zo= %0.2f ohm'%(Zo)\n", + "Wo=1# Assumedfor ease of calculation \n", + "G=1J*sqrt(L*C)*Wo\n", + "print '\\nPropagation constant is Gama={0:0.1f}+{1:0.2e}j W'.format(G.real,G.imag)\n", + "#b\n", + "#i\n", + "lamda=0.4e3#wavelength=Line length\n", + "c=3e8\n", + "f=c/lamda\n", + "#ii\n", + "L=L*0.4\n", + "C=C*0.4\n", + "v=1/(sqrt(L*C))\n", + "print '\\n The freq at which the line length is equal to wavelength is: %d KHz\\n The velocity of propagation is: %0.2f km/sec'%(f*1e-3,v*1e-3)" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "## Example8.2, page no 314" + ] + }, + { + "cell_type": "code", + "execution_count": 61, + "metadata": { + "collapsed": false + }, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "The phase shift is: 144 degrees\n", + "Open Circuited line impedance: -688.19 ohms\n", + "Short Circuited line impedance: -363.27 ohms\n" + ] + } + ], + "source": [ + "from math import cos, sin, tan,pi\n", + "#Given\n", + "v=3e8# velocty of light\n", + "f=1.2e6# Operating Freq\n", + "lamda=v/f\n", + "#print lamda)\n", + "l=100# length of the Tx-Line\n", + "phi=2*(pi*l)/(lamda)# Phase shift in degrees\n", + "Zo=500# Characteristic impedance\n", + "#a Open circuited Line\n", + "\n", + "Zin=-1J*Zo*(cos(phi)/sin(phi))\n", + "\n", + "#b Short circuited Line\n", + "Z1in=1J*Zo*tan(phi)\n", + "print 'The phase shift is: %d degrees'%(phi*180/pi)\n", + "print 'Open Circuited line impedance: {0:0.2f}'.format(-Zin.imag),'ohms'\n", + "print 'Short Circuited line impedance: {0:.2f}'.format(Z1in.imag),'ohms'" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "## Example8.3, page no 315" + ] + }, + { + "cell_type": "code", + "execution_count": 62, + "metadata": { + "collapsed": false + }, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "The Characteristic impedance:Zo= \n", + "(185.464726748-135.988363959j)\n", + "The value of Alpha=0.263 nepere/km\n", + "\n", + "The value of Beta= 0.308\n", + "the tx-Line parameters are\n", + "R= 90.72 ohms\n", + "L= 21.46 mH\n", + "G= 128.80 umhos\n", + "C= 1.76 mF\n", + "\n" + ] + } + ], + "source": [ + "from __future__ import division\n", + "from cmath import exp,sqrt,log,atan\n", + "#Given\n", + "f=1600\n", + "w=1000\n", + "Zoc=2460*exp(1J*-86.5*pi/180)# Open circuited Line impedance\n", + "Zsc=21.5*exp(1J*14*pi/180)# Short circuited Line impedance\n", + "Zo=sqrt(Zoc*Zsc)# Characteristic impedance\n", + "A=(sqrt(Zsc/Zoc)).real# tan(a+ jBeta) = A + jB\n", + "B=(sqrt(Zsc/Zoc)).imag\n", + "l=1/4\n", + "alpha=(1/(4*l))*log(((1+A**2+B)**2)/(((1-A)**2)+B**2)) #Attenuation Constant\n", + "Beta=(1/(2*l))*atan((2*B)/(1-A**2-B)) #phase constant\n", + "\n", + "#the tx-Line parameters\n", + "R=(Zo*complex(alpha,Beta)).real\n", + "L=(Zo*complex(alpha,Beta)).imag\n", + "G=(complex(alpha,Beta)/Zo).real\n", + "C=(complex(alpha,Beta)/Zo).imag\n", + "print 'The Characteristic impedance:Zo= '\n", + "print Zo\n", + "print 'The value of Alpha={0:.3f} '.format(alpha.real),'nepere/km\\n'\n", + "print 'The value of Beta= {0:0.3f}'.format(Beta.real)\n", + "print 'the tx-Line parameters are\\nR= %0.2f ohms\\nL= %0.2f mH\\nG= %0.2f umhos\\nC= %0.2f mF\\n'%(R,L,G*1e6,C*1e3)\n", + "\n", + "# Note : There are some calculation errors in the solution presented in the book" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "## Example8.4, page no 316" + ] + }, + { + "cell_type": "code", + "execution_count": 63, + "metadata": { + "collapsed": false + }, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "The atenuation constant is 0.011 nepers/mile\n", + "The Cut-off Freq is 6 KHz\n" + ] + } + ], + "source": [ + "from __future__ import division\n", + "from math import sqrt,pi\n", + "#Given\n", + "d=0.7# distance between two insertions\n", + "Ld_m= (80e-3)*(10/7)#Loading coil inductance\n", + "#print Ld_m)\n", + "Rd_m=100/7#Loading coil resistance\n", + "#print Rd_m)\n", + "R=20+Rd_m#Line resistance \n", + "L=Ld_m# Line inductance\n", + "C=0.05e-6# Line Capacitance\n", + "alfa=0.5*R*sqrt(C/L)#Attenuation Constant\n", + "#\n", + "fc=(pi*d*sqrt(L*C))**-1#cut off freq\n", + "print 'The atenuation constant is %0.3f nepers/mile\\nThe Cut-off Freq is %d KHz'%(alfa,fc*1e-3)\n", + "\n", + "# Note : There are some calculation errors in the solution presented in the book" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "## Example8.5, page no 317" + ] + }, + { + "cell_type": "code", + "execution_count": 64, + "metadata": { + "collapsed": false + }, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "the voltage at the mid point of the line is \n", + " 6.97+6.97j\n", + " V with Angle = -8.59degrees\n" + ] + } + ], + "source": [ + "from cmath import exp\n", + "#Given\n", + "a=0.7#attenuation constant\n", + "b=0.3#phase constant\n", + "Gamma=a+(1J*b)#propagation constant\n", + "l=0.5# half length of line( for midpoint)\n", + "Vs=10# Excitation voltage\n", + "V_mod=Vs*(exp(-a*l))#Magnitude of the Vs\n", + "\n", + "phi=b*l*180/pi#phase shift\n", + "V=V_mod*(exp(-1J*(phi*pi/180)))#voltage at the mid point\n", + "print 'the voltage at the mid point of the line is \\n {0:0.2f}+{0:.2f}j\\n V with Angle = -%0.2fdegrees'.format(V.real,V.imag)%phi\n", + "\n", + "# Note : There are some calculation errors in the solution presented in the book" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "## Example8.6, page no 317" + ] + }, + { + "cell_type": "code", + "execution_count": 65, + "metadata": { + "collapsed": false + }, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "The characteristic impedance Zo= 22.20 /_-19.66 ohm\n", + "\n", + " The Phase velocity is: v= 2.88e+07 m/sec\n", + " Percent decrease in the voltage is 14.91%\n" + ] + } + ], + "source": [ + "from cmath import pi,sqrt,polar,phase\n", + "#Given\n", + "R=0.01\n", + "l=1e3\n", + "L=1e-6\n", + "G=1e-6\n", + "C=0.001e-6\n", + "f=1.59e3# operating freq\n", + "w=2*pi*f# angular freq\n", + "#a\n", + "Zo=sqrt((R+(1J*w*L))*0.35/(G+(1J*w*C)))#characteristic impedance\n", + "Z0=polar(Zo)\n", + "Z0r=Z0[0]\n", + "Z0i=Z0[1]\n", + "#b\n", + "\n", + "Beta=sqrt(0.5*(sqrt((((R**2)+(round(w**2)*(L**2)))*(round(G**2)+(round(w**2)*(C**2)))))-(round(R*G)-((w**2)*L*C))))#Phase constant\n", + "\n", + "v=w/Beta#phase velocity\n", + "\n", + "#c\n", + "Alpha=sqrt(0.5*(sqrt((((R**2)+((w**2)*(L**2)))*((G**2)+((w**2)*(C**2)))))+((R*G)-((w**2)*L*C))))#attenuation constant\n", + "Vs=1#Assumed for easeof calculation\n", + "A=(Vs-(Vs*exp(-Alpha*l)))*100\n", + "print 'The characteristic impedance Zo= %0.2f /_%0.2f ohm\\n'%(Z0r,Z0i*180/pi)\n", + "print ' The Phase velocity is: v= %3.2e m/sec\\n Percent decrease in the voltage is %0.2f%c'%(v.real,A.real,'%')\n", + "\n", + "# Note : There are some calculation errors in the solution presented in the book" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "## Example8.15, page no 348" + ] + }, + { + "cell_type": "code", + "execution_count": 66, + "metadata": { + "collapsed": false + }, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "The input impedance is 526.81 /_-2.18deg\n", + "Reflection Coeff is 0.07 /_-163.77deg\n" + ] + } + ], + "source": [ + "from cmath import exp,polar,cosh,sinh\n", + "\n", + "#Given\n", + "l=100# Tx-line length\n", + "ZR=200#Terminal resistance\n", + "Zo=600#Characteristic impedance\n", + "a=0.01#attenuation constant\n", + "Beta=0.03#phase constant\n", + "d=0#reflection coeff at load is Zero\n", + "Gamma=a+1J*Beta#propagation constant\n", + "Kd=((ZR-Zo)/(ZR+Zo))*exp(-2*Gamma*d)#reflection coeff at point D d km from load\n", + "Kdd=polar(Kd)\n", + "Kdr=Kdd[0]\n", + "Kdi=Kdd[1]\n", + "d1=100# distance\n", + "Ks=((ZR-Zo)/(ZR+Zo))*exp(-2*Gamma*d1)#reflection coeff at the sending end\n", + "[Ksr,Ksi]=polar(Ks)\n", + "Zin=Zo*(((ZR*cosh(Gamma*l))+(Zo*sinh(Gamma*l)))/((Zo*cosh(Gamma*l))+(ZR*sinh(Gamma*l))))#Input impedance\n", + "Zz=polar(Zin)\n", + "Zinr=Zz[0]\n", + "Zini=Zz[1]\n", + "print 'The input impedance is %0.2f /_%0.2fdeg\\nReflection Coeff is %0.2f /_%0.2fdeg'%(Zinr,Zini*180/pi,Ksr,Ksi*180/pi)\n", + "\n", + "# Note : There are some calculation errors in the solution presented in the book" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "## Example8.15, page no 334" + ] + }, + { + "cell_type": "code", + "execution_count": 67, + "metadata": { + "collapsed": false + }, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "The current received is= 13.64 mA at phase-22.59\n" + ] + } + ], + "source": [ + "from cmath import cosh,polar\n", + "#GivenR=0.01\n", + "x=10#line length\n", + "Zo=100# characteristic impedance\n", + "a=0.1# attenuation constant\n", + "Beta=0.05# phase constant\n", + "Is=20e-3# source current\n", + "Gamma=a+ 1J*Beta# propagation constant\n", + "\n", + "I=Is/cosh(Gamma*x)# received current\n", + "\n", + "Ii=polar(I)\n", + "I_r=Ii[0]\n", + "I_i=Ii[1]\n", + "\n", + "print 'The current received is= %0.2f mA at phase%0.2f'%(1000*I_r,I_i*180/pi)" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "## Example8.16, page no 349" + ] + }, + { + "cell_type": "code", + "execution_count": 68, + "metadata": { + "collapsed": false + }, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "The characteristic impedance is 283.94 /_-41.38deg\n" + ] + } + ], + "source": [ + "from cmath import sqrt,polar\n", + "#Given\n", + "L=1e-3#inductance\n", + "R=40# Resistance\n", + "C=0.1e-6# capacitance\n", + "G=1e-6#conductance\n", + "w=5000# angular freq\n", + "Zo=sqrt(complex(R,(w*L))/complex(G,(w*C)))#Characteristic impedance\n", + "#Zr=sqrt(sqrt(R**2+(w*L)**2)/sqrt(G**2+(w*C)**2))\n", + "Zz=polar(Zo)\n", + "ZoR=Zz[0]\n", + "ZoI=Zz[1]\n", + "print 'The characteristic impedance is %0.2f /_%0.2fdeg'%(ZoR,ZoI*180/pi)\n", + "\n", + "# Note : There are some calculation errors in the solution presented in the book" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "## Example8.17, page no 349" + ] + }, + { + "cell_type": "code", + "execution_count": 69, + "metadata": { + "collapsed": false + }, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "The voltage at the mid point of the line is 7.05 /_-8.59 \n" + ] + } + ], + "source": [ + "from cmath import polar,exp\n", + "#Given\n", + "l=0.5#half line distance\n", + "Vs=10#Excitation voltage\n", + "Gamma=0.7+1J*0.3#propagation constant\n", + "Vv=polar(Vs*(exp(-Gamma*l)))#vtg at mid point\n", + "Vr=Vv[0]\n", + "Vi=Vv[1]\n", + "print 'The voltage at the mid point of the line is %0.2f /_%0.2f '%(Vr,Vi*180/pi)" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "## Example8.18, page no350" + ] + }, + { + "cell_type": "code", + "execution_count": 70, + "metadata": { + "collapsed": false + }, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "The max voltage on line is 5.92 V\n", + " The min voltage on line is 4.23 V\n" + ] + } + ], + "source": [ + "from math import sqrt\n", + "#Given\n", + "Zo=50# characteristic impedance\n", + "P=500e-3#Supplied power\n", + "S=1.4#VSWR on the line\n", + "Emax=sqrt(Zo*S*P)#Max vtg\n", + "\n", + "Emin=sqrt(Zo*P/S)# Min vtg\n", + "print 'The max voltage on line is %0.2f V\\n The min voltage on line is %0.2f V'%(Emax,Emin)" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "## Example8.19, page no 350" + ] + }, + { + "cell_type": "code", + "execution_count": 71, + "metadata": { + "collapsed": false + }, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "\n", + "The voltage reflection coeff is 0.17\n", + "The VSWR is 1.40\n", + "\n", + "\n", + "The Max and min voltage and crresponding crrent is\n", + " Emax= 3.74V Imin= 26.73mA\n", + " Emin= 2.67V Imax= 37.42mA\n", + "\n", + " The Termination resistance should be 28.57 ohm\n" + ] + } + ], + "source": [ + "from math import sqrt\n", + "#Given\n", + "Zo=100# Characteristic Impedance\n", + "P=100e-3#Load power\n", + "Zr=140#Load Resistance\n", + "f=100e3# Operating freq\n", + "#a\n", + "K=(Zr-Zo)/(Zo+Zr)#Vtg Reflection coeff\n", + "\n", + "#b\n", + "S=(1+K)/(1-K)#VSWR\n", + "\n", + "#c+d\n", + "Emax=sqrt(Zr*P)#Max line vltg\n", + "Imin=Emax/Zr#Min line current\n", + "\n", + "Emin=Emax/S# Min line vltg\n", + "Imax=S*Imin#Max line current\n", + "\n", + "#e\n", + "R=14000/40\n", + "\n", + "Zr=(Zo**2)/R#\n", + "print '\\nThe voltage reflection coeff is %0.2f\\nThe VSWR is %0.2f\\n\\n\\nThe Max and min voltage and crresponding crrent is\\n Emax= %0.2fV Imin= %0.2fmA\\n Emin= %0.2fV Imax= %0.2fmA\\n\\n The Termination resistance should be %0.2f ohm'%(K,S,Emax,Imin*1e3,Emin,Imax*1e3,Zr)" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "## Example8.20, page no 352" + ] + }, + { + "cell_type": "code", + "execution_count": 72, + "metadata": { + "collapsed": false + }, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "the receiving voltage will be 0.25 V\n" + ] + } + ], + "source": [ + "from math import exp,log\n", + "#Given\n", + "V=0.5#receiving vtg\n", + "Vs=2#Source vtg\n", + "al=-log(V/Vs)#attenuation\n", + "\n", + "al2=al*1.5\n", + "V=Vs*exp(-al2)#receiving voltage\n", + "print 'the receiving voltage will be %0.2f V'%(V)" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "## Example8.22, page no352" + ] + }, + { + "cell_type": "code", + "execution_count": 73, + "metadata": { + "collapsed": false + }, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "The lrngth should be 25 metres\n", + "The Characteristic Impedance should be 48.79 ohms\n" + ] + } + ], + "source": [ + "from cmath import sqrt\n", + "#Given\n", + "Zin=25+1J*15# Internal Impedance\n", + "Zr=70-1J*42#load\n", + "f=3e6#operating freq\n", + "v=3e8#light velocity\n", + "L=v/(4*f)#length of the line\n", + "\n", + "Zo=sqrt(Zin*Zr)#Characteristic Impedance\n", + "\n", + "print 'The lrngth should be %d metres\\nThe Characteristic Impedance should be %0.2f ohms'%(L,Zo.real)" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "## Example8.23, page no353" + ] + }, + { + "cell_type": "code", + "execution_count": 74, + "metadata": { + "collapsed": false + }, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "The cut-off freq is 3.03 KHz \n", + " the voltage being measured is 1 V\n" + ] + } + ], + "source": [ + "from math import sqrt,pi\n", + "from __future__ import division\n", + "#Given\n", + "#a\n", + "L=1e-3# inductance\n", + "C=61.25e-9#capacitance\n", + "Ld=44e-3#coil inductance\n", + "d=2#distance intervals after which coils are added\n", + "Lt=(L*2)+(Ld*2)#total inductance\n", + "Ct=C*2#total capacitance\n", + "fc=(pi*sqrt(Lt*Ct))**-1#cut off freq\n", + "\n", + "#b\n", + "I=100e-3#milliameter range\n", + "R=1#milliameter resistance\n", + "Zo=100#characteristic impedance\n", + "Zin=(Zo**2)/R#input impedance\n", + "\n", + "Er=I*R#\n", + "Es=Er*sqrt(Zin/Zo)\n", + "print 'The cut-off freq is %0.2f KHz \\n the voltage being measured is %d V'%(fc*1e-3,Es)" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "## Example8.24, page no 354" + ] + }, + { + "cell_type": "code", + "execution_count": 75, + "metadata": { + "collapsed": false + }, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "the Length of the transformer(stub) is 3.75 metres\n", + " The characteristic impedance of this transformer is 224 ohms\n" + ] + } + ], + "source": [ + "#Given\n", + "f=20e6#tuned freq\n", + "ZR=100#Equivalent aerial Resistance\n", + "Zin=500#input impedance\n", + "c=3e8\n", + "lamda=c/f\n", + "l=lamda/4#lamda/4 Transformer\n", + "\n", + "Zo=sqrt(Zin*ZR)#Characteristic impedance\n", + "print 'the Length of the transformer(stub) is %0.2f metres\\n The characteristic impedance of this transformer is %d ohms'%(l,round(Zo))" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "## Example8.25, page no 354" + ] + }, + { + "cell_type": "code", + "execution_count": 76, + "metadata": { + "collapsed": false + }, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "The sending end (Source end)impedance (Zl)is: \n", + "330.46+-16.35j\n" + ] + } + ], + "source": [ + "#Given\n", + "lamda=5#wavelength\n", + "Zo=200#Characteristic impedance\n", + "Zo1=100#Zo'\n", + "ZL=50+(1J*50)# load impedance\n", + "l1=0.4*lamda\n", + "l2=0.2*lamda\n", + "Beta=(2*pi/lamda)# phase difference\n", + "Z2=Zo1*(((ZL*cos(Beta*l2))+(1J*Zo1*sin(Beta*l2)))/((Zo1*cos(Beta*l2))+(1J*ZL*sin(Beta*l2))))#I/p Impedance offered by I2toI1\n", + "Z1=Zo*(((Z2*cos(Beta*l1))+(1J*Zo*sin(Beta*l1)))/((Zo*cos(Beta*l1))+(1J*Z2*sin(Beta*l1))))#I/p impedance\n", + "print 'The sending end (Source end)impedance (Zl)is: '\n", + "print '{0:0.2f}+{1:0.2f}j'.format(Z1.real,Z1.imag)" + ] + } + ], + "metadata": { + "kernelspec": { + "display_name": "Python 2", + "language": "python", + "name": "python2" + }, + "language_info": { + "codemirror_mode": { + "name": "ipython", + "version": 2 + }, + "file_extension": ".py", + "mimetype": "text/x-python", + "name": "python", + "nbconvert_exporter": "python", + "pygments_lexer": "ipython2", + "version": "2.7.9" + } + }, + "nbformat": 4, + "nbformat_minor": 0 +} diff --git a/Principle_of_Communication_Engineering_by_A._Singh_and_A._K._Chhabra/Chapter9_1ERbfbH.ipynb b/Principle_of_Communication_Engineering_by_A._Singh_and_A._K._Chhabra/Chapter9_1ERbfbH.ipynb new file mode 100644 index 00000000..9a611935 --- /dev/null +++ b/Principle_of_Communication_Engineering_by_A._Singh_and_A._K._Chhabra/Chapter9_1ERbfbH.ipynb @@ -0,0 +1,338 @@ +{ + "cells": [ + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "# Chapter No 9 - Aerials" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "## Example9.1, page no 397" + ] + }, + { + "cell_type": "code", + "execution_count": 4, + "metadata": { + "collapsed": false + }, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "The maximum effective aperture of the\n", + " aerial is 28.65 sq m\n" + ] + } + ], + "source": [ + "from __future__ import division\n", + "from math import pi\n", + "\n", + "#Given\n", + "D=90# directivity\n", + "lamda=2# wavelength\n", + "Ae=(D*(lamda**2))/(4*pi)#effective aperture\n", + "print 'The maximum effective aperture of the\\n aerial is %0.2f sq m'%(Ae)" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "## Example9.2, page no 397" + ] + }, + { + "cell_type": "code", + "execution_count": 3, + "metadata": { + "collapsed": false + }, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "Angular beam width is 22.92 degrees\n", + "BeamWidth is 0.40 rad\n" + ] + } + ], + "source": [ + "from math import pi,cos\n", + "#Given\n", + "n=10#no of aerial elements\n", + "d=0.5#distance in terms of wavelength\n", + "Beam_Width=2/(n*d)#\n", + "Beam_Width_degrees=Beam_Width*180/pi\n", + "print 'Angular beam width is %0.2f degrees\\nBeamWidth is %0.2f rad'%(Beam_Width_degrees,Beam_Width)" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "## Example9.3, pageno 397" + ] + }, + { + "cell_type": "code", + "execution_count": 7, + "metadata": { + "collapsed": false + }, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "Total power radiated is 888.89 watts\n" + ] + } + ], + "source": [ + "from numpy import arange, pi\n", + "from mpmath import quad, sin\n", + "#Given\n", + "r=1#assume distance for ease of calculation\n", + "#Pav(theta)=(1000/(3*pi*r**2))*((sin(theta))**2)\n", + "theta=arange(0, pi, 0.1)\n", + "x0=0\n", + "x1=pi\n", + "Pt=(2000/(3*r**2))*quad(lambda theta: (sin(theta))**3,[x0,x1])#Total power radiated \n", + "print 'Total power radiated is %0.2f watts'%(Pt)" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "## Example9.4, page no 398" + ] + }, + { + "cell_type": "code", + "execution_count": 10, + "metadata": { + "collapsed": false + }, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "electric field intensity is 0.25 mV/m \n", + " magnetic field intensity is 0.67 uA/m\n" + ] + } + ], + "source": [ + "from math import pi,cos\n", + "#Given\n", + "dl=2# length of wire \n", + "I=6#current in the wire\n", + "f=1e6# operating freq\n", + "r=30e3#distance at which field is to be calculated\n", + "theta=90#right angles to the wire axis\n", + "lamda=300# wavelength\n", + "w=2*pi*f#angular freq\n", + "c=3e8\n", + "t=f**-1\n", + "Phi=w*(t-(r/c))#Phase shift\n", + "Erad=25.13e-5*cos(Phi)#Radiation electric field intensity\n", + "H=Erad/(120*pi)#Radiation magnetic field intensity\n", + "print 'electric field intensity is %0.2f mV/m \\n magnetic field intensity is %0.2f uA/m'%(Erad*1e3,H*1e6)" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "## Example9.5, page no 399" + ] + }, + { + "cell_type": "code", + "execution_count": 12, + "metadata": { + "collapsed": false + }, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "The radiated power is 1.03 watts\n" + ] + } + ], + "source": [ + "from math import sqrt\n", + "#Given\n", + "#c\n", + "Rr=73# radition resistance\n", + "Vrms=10#RMS voltage of the signal\n", + "Zin_mod=sqrt((73**2)+(42**2))#absolute input impedance\n", + "Irms=Vrms/Zin_mod#RMS current\n", + "Pt=(Irms**2)*Rr# Radiated power\n", + "print 'The radiated power is %0.2f watts'%(round(100*Pt)/100)" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "## Example9.6 page no 400" + ] + }, + { + "cell_type": "code", + "execution_count": 13, + "metadata": { + "collapsed": false + }, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "Ideal directive gain is 55840\n" + ] + } + ], + "source": [ + "#Given\n", + "#b\n", + "c=3e8\n", + "f=2e9#operating freq\n", + "Ae=100#aperture area\n", + "lamda=c/f# operating wavwlength\n", + "D=((4*3.141*Ae)/(lamda**2))# Directivity\n", + "print 'Ideal directive gain is %d'%(D)" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "## Example9.7, pageno 400" + ] + }, + { + "cell_type": "code", + "execution_count": 15, + "metadata": { + "collapsed": false + }, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "The angular width is 0.40 degrees\n" + ] + } + ], + "source": [ + "#Given\n", + "#b\n", + "n=10# no of aerial elements\n", + "lambda_d=2#\n", + "BeamWidth=2*lambda_d/n# Beamwidth\n", + "print 'The angular width is %0.2f degrees'%(BeamWidth)" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "## Example9.8, page no 400" + ] + }, + { + "cell_type": "code", + "execution_count": 17, + "metadata": { + "collapsed": false + }, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "Overall Gain is 3.52 dBs\n" + ] + } + ], + "source": [ + "from math import log10\n", + "#Given\n", + "D1=1\n", + "D2=1.5*D1 # diameters of the new reflectors D1=1assumed for ease of calculation\n", + "G_dbs=10*log10((D2/D1)**2)#Gain in dBs\n", + "print 'Overall Gain is %0.2f dBs'%(round(1000*G_dbs)/1000)" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "## Example9.9, page no 401" + ] + }, + { + "cell_type": "code", + "execution_count": 19, + "metadata": { + "collapsed": false + }, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "Radiation resistance is 2.05 ohm\n" + ] + } + ], + "source": [ + "#Given\n", + "#b\n", + "c=3e8\n", + "f=800e3# operating freq\n", + "dl=27#effective height\n", + "lamda=c/f\n", + "\n", + "Rr=40*(3.142**2)*(dl/lamda)**2#Radiation Resistance\n", + "print 'Radiation resistance is %0.2f ohm'%(Rr)" + ] + } + ], + "metadata": { + "kernelspec": { + "display_name": "Python 2", + "language": "python", + "name": "python2" + }, + "language_info": { + "codemirror_mode": { + "name": "ipython", + "version": 2 + }, + "file_extension": ".py", + "mimetype": "text/x-python", + "name": "python", + "nbconvert_exporter": "python", + "pygments_lexer": "ipython2", + "version": "2.7.9" + } + }, + "nbformat": 4, + "nbformat_minor": 0 +} diff --git a/Principle_of_Communication_Engineering_by_A._Singh_and_A._K._Chhabra/screenshots/ctftch1_EJ1lbz2.png b/Principle_of_Communication_Engineering_by_A._Singh_and_A._K._Chhabra/screenshots/ctftch1_EJ1lbz2.png Binary files differnew file mode 100644 index 00000000..7c959f08 --- /dev/null +++ b/Principle_of_Communication_Engineering_by_A._Singh_and_A._K._Chhabra/screenshots/ctftch1_EJ1lbz2.png diff --git a/Principle_of_Communication_Engineering_by_A._Singh_and_A._K._Chhabra/screenshots/fourier_Kpk6AU4.png b/Principle_of_Communication_Engineering_by_A._Singh_and_A._K._Chhabra/screenshots/fourier_Kpk6AU4.png Binary files differnew file mode 100644 index 00000000..c0033679 --- /dev/null +++ b/Principle_of_Communication_Engineering_by_A._Singh_and_A._K._Chhabra/screenshots/fourier_Kpk6AU4.png diff --git a/Principle_of_Communication_Engineering_by_A._Singh_and_A._K._Chhabra/screenshots/modulat_XbQVmZD.png b/Principle_of_Communication_Engineering_by_A._Singh_and_A._K._Chhabra/screenshots/modulat_XbQVmZD.png Binary files differnew file mode 100644 index 00000000..3b34f439 --- /dev/null +++ b/Principle_of_Communication_Engineering_by_A._Singh_and_A._K._Chhabra/screenshots/modulat_XbQVmZD.png diff --git a/Semiconductor_circuit_approximations_by_A.P._Malvino/README.txt b/Semiconductor_circuit_approximations_by_A.P._Malvino/README.txt new file mode 100644 index 00000000..55c96836 --- /dev/null +++ b/Semiconductor_circuit_approximations_by_A.P._Malvino/README.txt @@ -0,0 +1,10 @@ +Contributed By: Ashvani Kumar +Course: btech +College/Institute/Organization: Uttarakhand Technical University +Department/Designation: EN +Book Title: Semiconductor circuit approximations +Author: A.P. Malvino +Publisher: Tata McGraw - Hill Education, New Delhi +Year of publication: 2005 +Isbn: 0070994854 +Edition: 4
\ No newline at end of file diff --git a/Strength_Of_Materials_by_S_S_Bhavikatti/chapter_02.ipynb b/Strength_Of_Materials_by_S_S_Bhavikatti/chapter_02.ipynb new file mode 100644 index 00000000..c89cb397 --- /dev/null +++ b/Strength_Of_Materials_by_S_S_Bhavikatti/chapter_02.ipynb @@ -0,0 +1,2794 @@ +{
+ "metadata": {
+ "name": "chapter 02.ipynb"
+ },
+ "nbformat": 3,
+ "nbformat_minor": 0,
+ "worksheets": [
+ {
+ "cells": [
+ {
+ "cell_type": "heading",
+ "level": 1,
+ "metadata": {},
+ "source": [
+ "Chapter 2:Simple Stresses And Strains"
+ ]
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 2.2.1,Page No.14"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "import numpy as np\n",
+ "\n",
+ "#Initilization of Variables\n",
+ "P=45*10**3 #N #Load\n",
+ "E=200*10**3 #N/mm**2 #Modulus of elasticity of rod\n",
+ "L=500 #mm #Length of rod\n",
+ "d=20 #mm #Diameter of rod\n",
+ "\n",
+ "#Calculations\n",
+ "\n",
+ "A=pi*d**2*4**-1 #mm**2 #Area of circular rod\n",
+ "p=P*A**-1 #N/mm**2 #stress\n",
+ "e=p*E**-1 #strain \n",
+ "dell_l=(P*L)*(A*E)**-1\n",
+ "\n",
+ "#Result\n",
+ "print\"The stress in bar due to Load is\",round(p,5),\"N/mm\"\n",
+ "print\"The strain in bar due to Load is\",round(e,5),\"N/mm\"\n",
+ "print\"The Elongation in bar due to Load is\",round(dell_l,2),\"mm\""
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "The stress in bar due to Load is 143.23945 N/mm\n",
+ "The strain in bar due to Load is 0.00072 N/mm\n",
+ "The Elongation in bar due to Load is 0.36 mm\n"
+ ]
+ }
+ ],
+ "prompt_number": 1
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 2.2.2,Page No.15"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "import numpy as np\n",
+ "\n",
+ "#Initilization of Variables\n",
+ " \n",
+ "A=15*0.75 #mm**2 #area of steel tape\n",
+ "P=100 #N #Force apllied\n",
+ "L=30*10**3 #mm #Length of tape\n",
+ "E=200*10**3 #N/m**2 #Modulus of Elasticity of steel tape\n",
+ "AB=150 #m #Measurement of Line AB \n",
+ "\n",
+ "#Calculations\n",
+ "\n",
+ "dell_l=P*L*(A*E)**-1 #mm #Elongation\n",
+ "l=L+dell_l*10**-3 #mm #Actual Length \n",
+ "AB1=AB*l*L**-1 #m Actual Length of AB\n",
+ "\n",
+ "#Result\n",
+ "print\"The Actual Length of Line AB is\",round(AB1,2),\"m\""
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "The Actual Length of Line AB is 150.0 m\n"
+ ]
+ }
+ ],
+ "prompt_number": 2
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 2.2.3,Page No.15"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "import numpy as np\n",
+ "\n",
+ "#Initilization of Variables\n",
+ "\n",
+ "#Let y be the yield stress\n",
+ "\n",
+ "y=250 #N/mm**2 #yield stress\n",
+ "FOS=1.75 #Factor of safety\n",
+ "P=140*10**3 #N #compressive Load\n",
+ "D=101.6 #mm #External diameter\n",
+ "\n",
+ "#Calculations\n",
+ "\n",
+ "p=y*(FOS)**-1 #N/mm**2 #Permissible stress\n",
+ "A=P*p**-1 #mm**2 #Area of hollow tube\n",
+ "\n",
+ "#Let d be the internal diameter of tube\n",
+ "d=-((A*4*(pi)**-1)-D**2)\n",
+ "X=d**0.5\n",
+ "t=(D-X)*2**-1 #mm #Thickness of steel tube\n",
+ "\n",
+ "#result\n",
+ "print\"The thickness of steel tube is\",round(t,2),\"mm\""
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "The thickness of steel tube is 3.17 mm\n"
+ ]
+ }
+ ],
+ "prompt_number": 3
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 2.2.4,Page No.16"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "import numpy as np\n",
+ "\n",
+ "#Initilization of Variables\n",
+ "\n",
+ "d=25 #mm #diameter of steel\n",
+ "d2=18 #mm #Diameter at neck\n",
+ "L=200 #mm #length of stee\n",
+ "P=80*10**3 #KN #Load \n",
+ "P1=160*10**3 #N #Load at Elastic Limit\n",
+ "P2=180*10**3 #N #Max Load\n",
+ "L1=56 #mm #Total Extension\n",
+ "dell_l=0.16 #mm #Extension\n",
+ "\n",
+ "\n",
+ "#Calculations\n",
+ "\n",
+ "A=pi*d**2*4**-1 #Area of steel #mm**2\n",
+ "\n",
+ "p=P1*A**-1 #Stress at Elastic Limit #N/mm**2\n",
+ "Y=P*L*(A*dell_l)**-1 #Modulus of elasticity\n",
+ "\n",
+ "#Let % elongation be x\n",
+ "x=L1*L**-1*100 \n",
+ "\n",
+ "#Percentage reduction in area\n",
+ "#Let % A be a\n",
+ "a=((pi*4**-1*d**2)-(pi*4**-1*d2**2))*(pi*4**-1*d**2)**-1*100\n",
+ "\n",
+ "#Ultimate tensile stress\n",
+ "sigma=P2*A**-1 #N/mm**2\n",
+ "\n",
+ "#result\n",
+ "print\"Stress at Elastic limit is\",round(p,2),\"N/mm**2\"\n",
+ "print\"Young's Modulus is\",round(Y,2),\"N/mm**2\"\n",
+ "print\"Percentage Elongation is\",round(a,2)\n",
+ "print\"Percentage reduction in area is\",round(P2,2)\n",
+ "print\"Ultimate tensile stress\",round(sigma,2),\"N/mm**2\""
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Stress at Elastic limit is 325.95 N/mm**2\n",
+ "Young's Modulus is 203718.33 N/mm**2\n",
+ "Percentage Elongation is 48.16\n",
+ "Percentage reduction in area is 180000.0\n",
+ "Ultimate tensile stress 366.69 N/mm**2\n"
+ ]
+ }
+ ],
+ "prompt_number": 4
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 2.2.5,Page No.16"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "import numpy as np\n",
+ "%matplotlib inline\n",
+ "\n",
+ "#Initilization of Variables\n",
+ "\n",
+ "d=20 #mm #Diameter of bar\n",
+ "d2=14.7 #mm #Diameter at neck \n",
+ "L=200 #mm #guage Length \n",
+ "\n",
+ "#Calculations\n",
+ "\n",
+ "print \"The Shear Force and Bending Moment Diagrams are the results\"\n",
+ "\n",
+ "#Plotting the Shear Force Diagram\n",
+ "\n",
+ "X1=[0,10,20,30,40,50,60]\n",
+ "Y1=[0,32,64,95,127,160,190]\n",
+ "Z1=[0,0,0,0,0,0,0]\n",
+ "plt.plot(X1,Y1,X1,Z1)\n",
+ "plt.xlabel(\"Extension in divisions\")\n",
+ "plt.ylabel(\"Load in kN\")\n",
+ "plt.show()\n",
+ "\n",
+ "A=pi*4**-1*d**2 #mm**2 #Area of Bar\n",
+ "A2=pi*4**-1*d2**2\n",
+ "\n",
+ "P=45 #KN #Load obtained from graph\n",
+ "dell=0.143 #mm #Divisions\n",
+ "\n",
+ "#Modulus of Elasticity\n",
+ "E=P*L*(dell*A)**-1 \n",
+ "\n",
+ "BL=93*10**3 #N #Breaking Load\n",
+ "\n",
+ "#Nominal stress at Breaking point\n",
+ "sigma=BL*A**-1 #KN/mm**2 \n",
+ "\n",
+ "#True stress at breaking Point\n",
+ "sigma1=BL*A2**-1\n",
+ "\n",
+ "#Percentage Elongation \n",
+ "dell_l=(A-A2)*A**-1*100\n",
+ "\n",
+ "#Result\n",
+ "print\"The Value of ELongation is\",round(E,2),\"N/mm**2\"\n",
+ "print\"The Nominal stress at the Breaking Point\",round(sigma,2),\"KN/mm**2\"\n",
+ "print\"The True stress at the Breaking Point\",round(sigma1,2),\"KN/mm**2\"\n",
+ "print\"The Percentage Reduction in Area is\",round(dell_l,2)"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "The Shear Force and Bending Moment Diagrams are the results\n"
+ ]
+ },
+ {
+ "metadata": {},
+ "output_type": "display_data",
+ "png": "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\n",
+ "text": [
+ "<matplotlib.figure.Figure at 0x54b2a10>"
+ ]
+ },
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "The Value of ELongation is 200.33 N/mm**2\n",
+ "The Nominal stress at the Breaking Point 296.03 KN/mm**2\n",
+ "The True stress at the Breaking Point 547.97 KN/mm**2\n",
+ "The Percentage Reduction in Area is 45.98\n"
+ ]
+ }
+ ],
+ "prompt_number": 8
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 2.2.6,Page No.19"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "import numpy as np\n",
+ "\n",
+ "#Initilization of Variables\n",
+ "\n",
+ "P=40*10**3 #N #Load \n",
+ "L1=160 #mm #Length of Bar1\n",
+ "L2=240 #mm #Length of bar2\n",
+ "L3=160 #mm #Length of bar3\n",
+ "d1=25 #mm #Diameter of Bar1\n",
+ "d2=20 #mm #diameter of bar2\n",
+ "d3=25 #mm #diameter of bar3\n",
+ "dell_l=0.285 #mm #Total Extension of bar\n",
+ "\n",
+ "#Calculations\n",
+ "\n",
+ "E=P*4*(dell_l*pi)**-1*(L1*(d1**2)**-1+L2*(d2**2)**-1+L3*(d3**2)**-1)\n",
+ "\n",
+ "#Result\n",
+ "print\"The Young's Modulus of the material\",round(E,2),\"N/mm**2\""
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "The Young's Modulus of the material 198714.72 N/mm**2\n"
+ ]
+ }
+ ],
+ "prompt_number": 4
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 2.2.7,Page No.19"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "import numpy as np\n",
+ "\n",
+ "#Initilization of Variables\n",
+ "\n",
+ "E1=2*10**5 #N/mm**2 #modulus of Elasticity of material1\n",
+ "E2=1*10**5 #N/mm**2 #modulus of Elasticity of material2\n",
+ "P=25*10**3 #N #Load \n",
+ "t=20 #mm #thickness of material\n",
+ "b1=40 #mm #width of material1\n",
+ "b2=30 #mm #width of material2\n",
+ "L1=500 #mm #Length of material1\n",
+ "L2=750 #mm #Length of material2\n",
+ "\n",
+ "#Calculations\n",
+ "\n",
+ "A1=b1*t #mm**2 #Area of materila1\n",
+ "A2=b2*t #mm**2 #Area of material2\n",
+ "\n",
+ "dell_l1=P*L1*(A1*E1)**-1 #Extension of Portion1\n",
+ "dell_l2=P*L2*(A2*E2)**-1 #Extension of portion2\n",
+ "\n",
+ "#Total Extension of Bar is\n",
+ "dell_l=dell_l1+dell_l2\n",
+ "\n",
+ "#Result\n",
+ "print\"The Total Extension of the Bar is\",round(dell_l,2),\"mm\""
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "The Total Extension of the Bar is 0.39 mm\n"
+ ]
+ }
+ ],
+ "prompt_number": 5
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 2.2.8,Page No.20"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "import numpy as np\n",
+ "\n",
+ "#Initilization of Variables\n",
+ "\n",
+ "L=1000 #mm #Length of Bar\n",
+ "l=400 #mm #Length upto which bire is drilled \n",
+ "D=30 #mm #diameter of bar\n",
+ "d1=10 #mm #diameter of bore\n",
+ "P=25*10**3 #N #Load\n",
+ "dell_l=0.185 #mm #Extension of bar\n",
+ "\n",
+ "#Calculations \n",
+ "\n",
+ "L1=L-l #Length of bar above the bore\n",
+ "L2=400 #mm #Length of bore\n",
+ "\n",
+ "A1=pi*4**-1*D**2 #Area of bar\n",
+ "A2=pi*4**-1*(D**2-d1**2) #Area of bore\n",
+ "\n",
+ "E=P*dell_l**-1*(L1*A1**-1+L2*A2**-1)\n",
+ "\n",
+ "#Result\n",
+ "print\"The Modulus of ELasticity is\",round(E,2),\"N/mm**2\""
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "The Modulus of ELasticity is 200735.96 N/mm**2\n"
+ ]
+ }
+ ],
+ "prompt_number": 6
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 2.2.11,Page No.23"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "import numpy as np\n",
+ "\n",
+ "#Initilization of Variables\n",
+ "\n",
+ "t=10 #mm #Thickness of steel\n",
+ "b1=60 #mm #width of plate1\n",
+ "b2=40 #mm #width of plate2\n",
+ "P=60*10**3 #Load\n",
+ "L=600 #mm #Length of plate\n",
+ "E=2*10**5 #N/mm**2\n",
+ " \n",
+ "#Calculations\n",
+ "\n",
+ "#Extension of taperong bar of rectangular section\n",
+ "dell_l=P*L*(t*E*(b1-b2))**-1*log(b1*b2**-1)\n",
+ "\n",
+ "A_av=(b1*t+b2*t)*2**-1 #Average Area #mm**2\n",
+ "dell_l2=P*L*(A_av*E)**-1 \n",
+ "\n",
+ "#PErcentage Error\n",
+ "e=(dell_l-dell_l2)*(dell_l)**-1*100\n",
+ "\n",
+ "#Result\n",
+ "print\"The Percentage Error is\",round(e,2)"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "The Percentage Error is 1.35\n"
+ ]
+ }
+ ],
+ "prompt_number": 7
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 2.2.12,Page No.23"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "import numpy as np\n",
+ "\n",
+ "#Initilization of Variables\n",
+ "\n",
+ "L=1.5 #m #Length of steel bar\n",
+ "L1=1000 #m0 #Length of steel bar 1\n",
+ "L2=500 #m #Length of steel bar 2 \n",
+ "d1=40 #Diameter of steel bar 1\n",
+ "d2=20 #diameter of steel bar 2\n",
+ "E=2*10**5 #N/mm**2 #Modulus of Elasticity\n",
+ "P=160*10**3 #N #Load\n",
+ "\n",
+ "#Calculations\n",
+ "\n",
+ "A1=pi*4**-1*d1**2 #Area of Portion 1\n",
+ "\n",
+ "#Extension of uniform Portion 1\n",
+ "dell_l1=P*L1*(A1*E)**-1 #mm\n",
+ "\n",
+ "#Extension of uniform Portion 2\n",
+ "dell_l2=4*P*L2*(pi*d1*d2*E)**-1 #mm\n",
+ "\n",
+ "#Total Extension of Bar\n",
+ "dell_l=dell_l1+dell_l2\n",
+ "\n",
+ "#Result\n",
+ "print\"The Elongation of the Bar is\",round(dell_l,2),\"mm\" "
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "The Elongation of the Bar is 1.27 mm\n"
+ ]
+ }
+ ],
+ "prompt_number": 9
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 2.2.14,Page No.25"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "import numpy as np\n",
+ "\n",
+ "#Initilization of Variables\n",
+ "\n",
+ "#Portion AB\n",
+ "L_AB=600 #mm #Length of AB\n",
+ "A_AB=40*40 #mm**2 #Cross-section Area of AB\n",
+ "\n",
+ "#Portion BC\n",
+ "L_BC=800 #mm #Length of BC\n",
+ "A_BC=30*30 #mm #Length of BC\n",
+ "\n",
+ "#Portion CD\n",
+ "L_CD=1000 #mm #Length of CD\n",
+ "A_CD=20*20 #mm #Area of CD\n",
+ "\n",
+ "P1=80*10**3 #N #Load1\n",
+ "P2=60*10**3 #N #Load2\n",
+ "P3=40*10**3 #N #Load3\n",
+ "\n",
+ "E=2*10**5 #Modulus of Elasticity\n",
+ "\n",
+ "#Calculations\n",
+ "\n",
+ "P4=P1-P2+P3 #Load4\n",
+ "\n",
+ "#Now Force in AB\n",
+ "F_AB=P1\n",
+ "\n",
+ "#Force in BC\n",
+ "F_BC=P1-P2\n",
+ "\n",
+ "#Force in CD\n",
+ "F_CD=P4\n",
+ "\n",
+ "#Extension of AB\n",
+ "dell_l_AB=F_AB*L_AB*(A_AB*E)**-1\n",
+ "\n",
+ "#Extension of BC\n",
+ "dell_l_BC=F_BC*L_BC*(A_BC*E)**-1\n",
+ "\n",
+ "#Extension of CD\n",
+ "dell_l_CD=F_CD*L_CD*(A_CD*E)**-1\n",
+ "\n",
+ "#Total Extension\n",
+ "dell_l=dell_l_AB+dell_l_BC+dell_l_CD\n",
+ "\n",
+ "#Result\n",
+ "print\"The Total Extension in Bar is\",round(dell_l,2),\"mm\""
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "The Total Extension in Bar is 0.99 mm\n"
+ ]
+ }
+ ],
+ "prompt_number": 5
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 2.2.15,Page No.26"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "import numpy as np\n",
+ "\n",
+ "#Initilization of Variables\n",
+ "\n",
+ "L=800 #mm #Length of bar\n",
+ "F1=30*10**3 #N #Force acting on the bar\n",
+ "F2=60*10**3 #N #force acting on the bar\n",
+ "L=800 #mm #Length of bar\n",
+ "d=25 #mm #diameter of bar \n",
+ "L_AC=275 #mm #Length of AC\n",
+ "L_CD=150 #mm #Length of CD\n",
+ "L_DB=375 #mm #Length of DB\n",
+ "E=2*10**5 #Pa #Modulus of elasticity\n",
+ "\n",
+ "#Calculations\n",
+ "\n",
+ "#Let P be the Reaction on tne Bar from support at A\n",
+ "\n",
+ "#Shortening of Portion AC\n",
+ "#dell_l_AC1=P*L_AC*(A*E)**-1\n",
+ "\n",
+ "#Shortening of Portion CD\n",
+ "#dell_l_CD1=(30+P)*L_CD*(A*E)**-1\n",
+ "\n",
+ "#Extension of Portion DB\n",
+ "#dell_l_DB1=(30-P)*L_DB*(A*E)**-1\n",
+ "\n",
+ "#Total Extensions=1*(A*E)**-1*(P*L_AC-(30+P)*L_CD+(30-P)*L_DB)\n",
+ "#As Supports are unyielding,Total Extensions=0\n",
+ "\n",
+ "#After substituting values in above equation and Further simplifying we get\n",
+ "P=(30*375-150*30)*800**-1\n",
+ "\n",
+ "#Reaction of support A\n",
+ "R_A=P\n",
+ "\n",
+ "#Reaction of support B\n",
+ "R_B=30-P\n",
+ "\n",
+ "#Cross-sectional Area\n",
+ "A=pi*4**-1*d**2\n",
+ "\n",
+ "#Stress in Portion AC\n",
+ "sigma1=P*10**3*A**-1 #N/mm**2\n",
+ "\n",
+ "#Stress in Portion CD\n",
+ "sigma2=(30+P)*10**3*A**-1 #N/mm**2\n",
+ "\n",
+ "#Stress in Portion DB\n",
+ "sigma3=(30-P)*10**3*A**-1 #N/mm**2\n",
+ "\n",
+ "#Shortening of Portion AC\n",
+ "dell_l_AC2=P*10**3*L_AC*(A*E)**-1 #mm \n",
+ "\n",
+ "#Shortening of Portion CD\n",
+ "dell_l_CD2=(30+P)*10**3*L_CD*(A*E)**-1 #mm \n",
+ "\n",
+ "#Extension of Portion DB\n",
+ "dell_l_DB2=(30-P)*10**3*L_DB*(A*E)**-1 #mm \n",
+ "\n",
+ "#result\n",
+ "print\"The Reactios at two Ends are:R_A\",round(R_A,2),\"KN\"\n",
+ "print\" :R_B\",round(R_B,2),\"KN\"\n",
+ "print\"Stress in Portion AC\",round(sigma1,2),\"N/mm**2\"\n",
+ "print\"Stress in Portion CD\",round(sigma2,2),\"N/mm**2\"\n",
+ "print\"Stress in Portion DB\",round(sigma3,2),\"N/mm**2\"\n",
+ "print\"Shortening of Portion AC\",round(dell_l_AC2,3),\"mm\"\n",
+ "print\"Shortening of Portion CD\",round(dell_l_CD2,3),\"mm\"\n",
+ "print\"Shortening of Portion DB\",round(dell_l_DB2,3),\"mm\""
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "The Reactios at two Ends are:R_A 8.44 KN\n",
+ " :R_B 21.56 KN\n",
+ "Stress in Portion AC 17.19 N/mm**2\n",
+ "Stress in Portion CD 78.3 N/mm**2\n",
+ "Stress in Portion DB 43.93 N/mm**2\n",
+ "Shortening of Portion AC 0.024 mm\n",
+ "Shortening of Portion CD 0.059 mm\n",
+ "Shortening of Portion DB 0.082 mm\n"
+ ]
+ }
+ ],
+ "prompt_number": 10
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 2.2.19,Page No.29"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "import numpy as np\n",
+ "\n",
+ "#Initilization of Variables\n",
+ " \n",
+ "h=4 #m #height of Pillars\n",
+ "P=20 #KN #Load at M\n",
+ "\n",
+ "#Calculations\n",
+ "\n",
+ "#Let P_A,P_B,P_C,P_D be the forces introduced in the Pillars\n",
+ "#Sun of All Vertical Forces\n",
+ "#P_A+P_B+P_C+P_D=20 ....................(1)\n",
+ "\n",
+ "#Sum of moment about AB, we get\n",
+ "#P_D+P_C=12 ....................(2)\n",
+ "\n",
+ "#Sum of Moment about AD\n",
+ "#P_C+P_B=8 ....................(3)\n",
+ "\n",
+ "#Let dell_l_A,dell_l_B,dell_l-C,dell_l_D be the deformations of Pillars A,B,C,D respectively\n",
+ "#Diagonals AC and BD will remain straight Lines even after the Load is applied.\n",
+ "#Deflection of central Point is given by (dell_l_A+dell_l_C)*2**-1 & (dell_l_B+dell_l_D)*2**-1\n",
+ "\n",
+ "#dell_l_A+dell_l_C=dell_l_B+ell_l_D\n",
+ "#P_A*L*(A*E)**-1+P_C*L*(A*E)**-1=P_B*L*(A*E)**-1+P_D*L*(A*E)**-1\n",
+ "\n",
+ "#Since Pillars are identical in Length,cross-sectional area,material Property\n",
+ "#P_A+P_C=P_B+P_D ..............(4)\n",
+ "\n",
+ "#From Equations 1 and 4 we get\n",
+ "#P_B+P_D=10 ....................(5)\n",
+ " \n",
+ "#Substracting Equation 3 from Equation 2 we get\n",
+ "#P_D-P_B=4 ....................(6)\n",
+ "\n",
+ "#Adding Equation 5 and 6 we get\n",
+ "\n",
+ "P_D=14*2**-1\n",
+ "P_C=12-P_D\n",
+ "P_B=8-P_C\n",
+ "\n",
+ "#Now substituting values of P_B,P_C,P_D in equation1 we get\n",
+ "P_A=20-(P_B+P_C+P_D)\n",
+ "\n",
+ "#Result\n",
+ "print\"The Forces Developed in the Pillars are:P_A\",round(P_A,2),\"KN\"\n",
+ "print\" :P_B\",round(P_B,2),\"KN\"\n",
+ "print\" :P_C\",round(P_C,2),\"KN\"\n",
+ "print\" :P_D\",round(P_D,2),\"KN\""
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "The Forces Developed in the Pillars are:P_A 5.0 KN\n",
+ " :P_B 3.0 KN\n",
+ " :P_C 5.0 KN\n",
+ " :P_D 7.0 KN\n"
+ ]
+ }
+ ],
+ "prompt_number": 11
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 2.2.20,Page No.31"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "import numpy as np\n",
+ "\n",
+ "#Initilization of Variables\n",
+ "\n",
+ "sigma=150 #N/mm**2 #Stress\n",
+ "P=40*10**3 #N #Load\n",
+ "\n",
+ "#Calculations\n",
+ "\n",
+ "#LEt P_A.P_B,P_C,P_D be the forces developed in wires A,B,C,D respectively\n",
+ "\n",
+ "#Let sum of all Vertical Forces=0\n",
+ "#P_A+P_B+P_C+P_D=40 ..........................(1)\n",
+ "\n",
+ "#Let x be the distance between each wires\n",
+ "#sum of all moments=0\n",
+ "#P_B*x+P_C*2*x+P_D*3*x=40*2*x\n",
+ "\n",
+ "#After further simplifying we get\n",
+ "#P_B+2*P_C+3*P_D=80 ..........................(2)\n",
+ "\n",
+ "#As the equations of statics ae not enough to find unknowns,Consider compatibilit Equations\n",
+ "\n",
+ "#Let dell_l be the increse in elongation of wire\n",
+ "\n",
+ "#dell_l_B=dell_l_A+dell_l\n",
+ "#dell_l_C=dell_l_A+2*dell_l\n",
+ "#dell_l_D=dell_l_A+3*dell_l\n",
+ "\n",
+ "#Let P1 be the force required for the Elongation of wires,then\n",
+ "#P_B=P_A+P1 ]\n",
+ "#P_C=P_A+2*P1 ]\n",
+ "#P_D=P_A+3*P1 ] ................................(3) \n",
+ "\n",
+ "#from Equation (3) and (1) we get\n",
+ "#2*P_A+3*P1=20 ................................(4)\n",
+ "\n",
+ "#from Equation (3) and (2) we get\n",
+ "#6*P_A+14*P1=80 \n",
+ "\n",
+ "#subtracting 3 times equation (4) from (3) we get\n",
+ "P1=20*5**-1\n",
+ "\n",
+ "#from Equation 4 we get\n",
+ "P_A=(80-14*P1)*6**-1\n",
+ "P_B=P_A+P1\n",
+ "P_C=P_A+2*P1 \n",
+ "P_D=P_A+3*P1\n",
+ "\n",
+ "#Let d be the diameter required,then\n",
+ "d=(P_D*10**3*4*(pi*150)**-1)**0.5\n",
+ "\n",
+ "#result\n",
+ "print\"The Required Diameter is\",round(d,2),\"mm\""
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "The Required Diameter is 11.65 mm\n"
+ ]
+ }
+ ],
+ "prompt_number": 12
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 2.2.21,Page No.32"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "import numpy as np\n",
+ "\n",
+ "#Initilization of Variables\n",
+ "\n",
+ "P=20*10**3 #N #Load\n",
+ "d=6 #mm #diameter of wire\n",
+ "E=2*10**5 #N/mm**2 \n",
+ "L_BO=4000 #mm #Length of BO\n",
+ "\n",
+ "#Calculations\n",
+ "\n",
+ "#Let theta be the angle between OA and OB and also between OC and OB\n",
+ "theta=30\n",
+ "\n",
+ "#Let P_OA,P_OB,P_OC be the Forces introduced in wires OA,OB,OC respectively\n",
+ "#Due to symmetry P_OA=P_OC (same angles)\n",
+ "\n",
+ "#Sum of all Vertical Forces=0\n",
+ "#P_OA*cos(theta)+P_OB+P_OC*cos(theta)=P\n",
+ "\n",
+ "#After further simplifyinf we get\n",
+ "#2*P_OA*cos(theta)+P_OB=20 ...............(1)\n",
+ "\n",
+ "#Let oo1 be the extension of BO\n",
+ "#oo1=L_A1o1*(cos(theta))**-1\n",
+ "\n",
+ "#From relation we get\n",
+ "#P_OB*L_BO=P_OA*L_AO*(cos(theta))**-1\n",
+ "\n",
+ "#But L_AO=L_BO*(cos(theta))**-1\n",
+ "\n",
+ "#After substituting value of L_AO in above equation we get\n",
+ "#P_OB=0.75*P_OA .......................(2)\n",
+ "\n",
+ "#substituting in Equation 1 we get\n",
+ "#2*P_OA*cos(theta)+0.75*P_OA=20\n",
+ "\n",
+ "P_OA=20*(2*cos(theta*pi*180**-1)+0.75)**-1\n",
+ "\n",
+ "P_OB=0.75*P_OA\n",
+ "\n",
+ "A=pi*4**-1*d**2 \n",
+ "\n",
+ "#Vertical displacement of Load\n",
+ "dell_l_BO=P_OB*10**3*L_BO*(A*E)**-1\n",
+ " \n",
+ "#Result\n",
+ "print\"Forces in each wire is:P_OA\",round(P_OA,2),\"KN\"\n",
+ "print\" :P_OB\",round(P_OB,2),\"KN\"\n",
+ "print\"Vertical displacement of Loadis\",round(dell_l_BO,2),\"mm\""
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Forces in each wire is:P_OA 8.06 KN\n",
+ " :P_OB 6.04 KN\n",
+ "Vertical displacement of Loadis 4.27 mm\n"
+ ]
+ }
+ ],
+ "prompt_number": 13
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 2.2.22,Page No.34"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "import numpy as np\n",
+ "\n",
+ "#Initilization of Variables\n",
+ "\n",
+ "L_s=L_a=L=500 #mm #Length of bar\n",
+ "A_a=50*20 #mm #Area of aluminium strip\n",
+ "A_s=50*15 #mm #Area of steel strip\n",
+ "P=50*10**3 #N #Load\n",
+ "E_a=1*10**5 #N/mm**2 #Modulus of aluminium \n",
+ "E_s=2*10**5 #N/mm**2 #Modulus of steel\n",
+ "\n",
+ "#Calculations\n",
+ "\n",
+ "#Let P_a and P_s br the Load shared by aluminium and steel strip\n",
+ "#P_a+P_s=P ..................(1)\n",
+ "\n",
+ "#For compatibility condition,dell_l_a=dell_l_s\n",
+ "#P_a*L_a*(A_a*E_a)**-1=P_s*L_s*(A_s*E_s)**-1 .....(2)\n",
+ "\n",
+ "#As L_a=L_s we get\n",
+ "#P_s=1.5*P_a .................(3)\n",
+ " \n",
+ "#From Equation 1 and 2 we get\n",
+ "P_a=P*2.5**-1\n",
+ "\n",
+ "#Substituting in equation 1 we get\n",
+ "P_s=P-P_a\n",
+ "\n",
+ "#stress in aluminium strip \n",
+ "sigma_a=P_a*A_a**-1\n",
+ "\n",
+ "#stress in steel strip\n",
+ "sigma_s=P_s*A_s**-1\n",
+ "\n",
+ "#Now from the relation we get\n",
+ "dell_l_a=dell_l_s=P_s*L_s*(A_s*E_s)**-1\n",
+ "\n",
+ "#result\n",
+ "print\"Stress in Aluminium strip is\",round(sigma_a,2),\"N/mm**2\"\n",
+ "print\"Stress in steel strip is\",round(sigma_s,2),\"N/mm**2\"\n",
+ "print\"The Extension of the bar is\",round(dell_l_s,2),\"mm\""
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Stress in Aluminium strip is 20.0 N/mm**2\n",
+ "Stress in steel strip is 40.0 N/mm**2\n",
+ "The Extension of the bar is 0.1 mm\n"
+ ]
+ }
+ ],
+ "prompt_number": 14
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 2.2.23,Page No.35"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "import numpy as np\n",
+ "\n",
+ "#Initilization of Variables\n",
+ "\n",
+ "D_s=20 #mm #Diameter of steel\n",
+ "D_Ci=20 #mm #Internal Diameter of Copper\n",
+ "t=5 #mm #THickness of copper bar\n",
+ "P=100*10**3 #N #Load\n",
+ "E_s=2*10**5 #N/mm**2 #modulus of elasticity of steel\n",
+ "E_c=1.2*10**5 #N/mm**2 #Modulus of Elasticity of Copper\n",
+ "\n",
+ "#Calculations\n",
+ "\n",
+ "A_s=pi*4**-1*D_s**2 #mm**2 #Area of steel\n",
+ "D_Ce=D_s+2*t #mm #External Diameterof Copper Tube\n",
+ "\n",
+ "A_c=pi*4**-1*(D_Ce**2-D_Ci**2) #mm**2 #Area of Copper\n",
+ "\n",
+ "#From static Equilibrium condition\n",
+ "#Let P_s and P_c be the Load shared by steel and copper in KN\n",
+ "#P_s+P_c=100 ....................................(1)\n",
+ "\n",
+ "#From compatibility Equation,dell_l_s=dell_l_c\n",
+ "#P_s*L*(A_s*E_s)**-1=P_c*L*(A_c*E_c)**-1\n",
+ "\n",
+ "#Substituting values in above Equation we get\n",
+ "#P_s=1.3333*P_C \n",
+ "\n",
+ "#Now Substituting value of P_s in Equation (1),we get\n",
+ "P_c=100*2.3333**-1 #KN\n",
+ "P_s=100-P_c #KN\n",
+ "\n",
+ "#Stress in steel\n",
+ "sigma_s=P_s*10**3*A_s**-1 #N/mm**2 \n",
+ "\n",
+ "#Stress in copper\n",
+ "sigma_c=P_c*10**3*A_c**-1 #N/mm**2\n",
+ "\n",
+ "#Result\n",
+ "print\"Stresses Developed in Two material are:sigma_s\",round(sigma_s,2),\"N/mm**2\"\n",
+ "print\" :sigma_c\",round(sigma_c,2),\"N/mm**2\""
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Stresses Developed in Two material are:sigma_s 181.89 N/mm**2\n",
+ " :sigma_c 109.14 N/mm**2\n"
+ ]
+ }
+ ],
+ "prompt_number": 15
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 2.2.24,Page No.36"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "import numpy as np\n",
+ "\n",
+ "#Initilization of Variables\n",
+ "\n",
+ "A_C=230*400 #mm #Area of column\n",
+ "D_s=12 #mm #Diameter of steel Bar\n",
+ "P=600*10**3 #N #Axial compression\n",
+ "#E_s*E_c=18.67\n",
+ "n=8 #number of steel Bars\n",
+ "\n",
+ "#Calculations \n",
+ "\n",
+ "A_s=pi*4**-1*D_s**2*n #Area of steel #mm**2 \n",
+ "A_c=A_C-A_s #mm**2 #Area of concrete\n",
+ "\n",
+ "#From static Equilibrium condition\n",
+ "#P_s+P_c=600 .........(1)\n",
+ "\n",
+ "#Now from compatibility Equation dell_l_s=dell_l_c we get,\n",
+ "#P_s*L*(A_s*E_s)**-1=P_c*L*(A_c*E_c)**-1\n",
+ "\n",
+ "#Substituting values in above Equation we get\n",
+ "#P_s=0.1854*P_c\n",
+ "\n",
+ "#Now Substituting value of P_s in Equation (1),we get\n",
+ "P_c=600*1.1854**-1\n",
+ "P_s=600-P_c\n",
+ "\n",
+ "#Stress in steel\n",
+ "sigma_s=P_s*10**3*A_s**-1 #N/mm**2\n",
+ "\n",
+ "#Stress in copper\n",
+ "sigma_c=P_c*10**3*A_c**-1 #N/mm**2\n",
+ "\n",
+ "#Result\n",
+ "print\"Stresses Developed in Two material are:sigma_s\",round(sigma_s,2),\"N/mm**2\"\n",
+ "print\" :sigma_c\",round(sigma_c,2),\"N/mm**2\""
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Stresses Developed in Two material are:sigma_s 103.72 N/mm**2\n",
+ " :sigma_c 5.56 N/mm**2\n"
+ ]
+ }
+ ],
+ "prompt_number": 16
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 2.2.25,Page No.36"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "import numpy as np\n",
+ "\n",
+ "#Initilization of Variables\n",
+ "\n",
+ "P=200*10**3 #N #Load\n",
+ "A_a=1000 #mm**2 #Area of Aluminium\n",
+ "A_s=800 #mm**2 #Area of steel\n",
+ "E_a=1*10**5 #N/mm**2 #Modulus of Elasticity of Aluminium\n",
+ "E_s=2*10**5 #N/mm**2 #Modulus of ELasticity of steel\n",
+ "sigma_a1=65 #N/mm**2 #stress in aluminium\n",
+ "sigma_s1=150 #N/mm**2 #Stress in steel\n",
+ "\n",
+ "#Calculations \n",
+ "\n",
+ "#Let P_a and P_s be the force in aluminium and steel pillar respectively\n",
+ "\n",
+ "#Now,sum of forces in Vertical direction we get\n",
+ "#2*P_a+P_s=200 .........................................(1)\n",
+ "\n",
+ "#By compatibility Equation dell_l_s=dell_l_a we get\n",
+ "#P_s=1.28*P_a ..........................................(2)\n",
+ "\n",
+ "#Now substituting value of P_s in Equation 1 we get\n",
+ "P_a=200*3.28**-1 #KN\n",
+ "P_s=200-2*P_a #KN\n",
+ "\n",
+ "#Stress developed in aluminium\n",
+ "sigma_a=P_a*10**3*A_a**-1 #N/mm**2 \n",
+ "\n",
+ "#Stress developed in steel\n",
+ "sigma_s=P_s*10**3*A_s**-1 #N/mm**2 \n",
+ "\n",
+ "#Part-2\n",
+ "\n",
+ "#Let sigma_a1 and sigma_s1 be the stresses in Aluminium and steel due to Additional LOad\n",
+ "\n",
+ "P_a1=sigma_a1*A_a #Load carrying capacity of aluminium\n",
+ "P_s1=1.28*P_a1\n",
+ "\n",
+ "#Total Load carrying capacity \n",
+ "P1=2*P_a1+P_s1 #N \n",
+ "\n",
+ "P_s2=sigma_s1*A_s #Load carrying capacity of steel\n",
+ "P_a2=P_s2*1.28**-1\n",
+ "\n",
+ "#Total Load carrying capacity\n",
+ "P2=2*P_a2+P_s2\n",
+ "\n",
+ "#Additional Load\n",
+ "P3=P1-P\n",
+ "\n",
+ "#Result\n",
+ "print\"Stresses Developed in Each Pillar is:sigma_a\",round(sigma_a,2),\"N/mm**2\"\n",
+ "print\" :sigma_s\",round(sigma_s,2),\"N/mm**2\"\n",
+ "print\"Additional Load taken by pillars is\",round(P3,2),\"N\""
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Stresses Developed in Each Pillar is:sigma_a 60.98 N/mm**2\n",
+ " :sigma_s 97.56 N/mm**2\n",
+ "Additional Load taken by pillars is 13200.0 N\n"
+ ]
+ }
+ ],
+ "prompt_number": 17
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 2.2.26,Page No.37"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "import numpy as np\n",
+ "\n",
+ "#Initilization of Variables\n",
+ "\n",
+ "L=500 #mm #Length of assembly\n",
+ "D=16 #mm #Diameter of steel bolt\n",
+ "Di=20 #mm #internal Diameter of copper tube\n",
+ "Do=30 #mm #External Diameter of copper tube\n",
+ "E_s=2*10**5 #N/mm**2 #Modulus of Elasticity of steel\n",
+ "E_c=1.2*10**5 #N/mm**2 #Modulus of Elasticity of copper\n",
+ "p=2 #mm #Pitch of nut\n",
+ "\n",
+ "#Calculations\n",
+ "\n",
+ "#Let P_s be the Force in bolt and P_c be the FOrce in copper tube\n",
+ "#P_s=-P_s\n",
+ "\n",
+ "dell=1*4**-1*2 #Quarter turn of nut total movement\n",
+ "\n",
+ "#dell=dell_s+dell_c\n",
+ " \n",
+ "#Area of steel\n",
+ "A_s=pi*4**-1*D**2\n",
+ "\n",
+ "#Area of copper\n",
+ "A_c=pi*4**-1*(Do**2-Di**2)\n",
+ "\n",
+ "#dell=P*L*(A_s*E_s)**-1+P*L*(A_c*E_c)**-1\n",
+ "P=dell*(1*(A_s*E_s)**-1+1*(A_c*E_c)**-1)**-1*L**-1 #LOad\n",
+ "\n",
+ "P_s=P*A_s**-1\n",
+ "P_c=P*A_c**-1\n",
+ "\n",
+ "#result\n",
+ "print\"stress introduced in bolt is\",round(P_s,2),\"N/mm**2\"\n",
+ "print\"stress introduced in tube is\",round(P_c,2),\"N/mm**2\""
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "stress introduced in bolt is 107.91 N/mm**2\n",
+ "stress introduced in tube is 55.25 N/mm**2\n"
+ ]
+ }
+ ],
+ "prompt_number": 18
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 2.2.27,Page No.39"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "import numpy as np\n",
+ "\n",
+ "#Initilization of Variables\n",
+ "\n",
+ "D=20 #mm #Diameter of Bolts\n",
+ "Di=25 #m #internal Diameter\n",
+ "t=10 #mm #Thickness of bolt\n",
+ "E_s=2*10**5 #N/mm**2 #Modulus of Elasticity\n",
+ "E_c=1.2*10**5 #N/mm**2 #Modulus of copper\n",
+ "p=3 #mm #Pitch\n",
+ "theta=30 #degree\n",
+ "L_c=500 #Lengh of copper \n",
+ "L_s=600 #Length of steel\n",
+ "\n",
+ "#Calculations\n",
+ "\n",
+ "#Let P_s be the Force in each bolt and P_c be the FOrce in copper tube\n",
+ "#From Static Equilibrium condition\n",
+ "#P_c=2*P_s\n",
+ "\n",
+ "#As nut moves by 60 degree.If nut moves by 360 degree its Longitudinal movement is by 3 mm\n",
+ "dell=theta*360**-1*p\n",
+ "\n",
+ "#From Compatibility Equaton we get\n",
+ "#dell=dell_c+dell_s\n",
+ "\n",
+ "\n",
+ "A_s=pi*4**-1*Di**2 #mm**2 #Area of steel\n",
+ "A_c=pi*4**-1*(45**2-Di**2) #mm**2 #Area of copper\n",
+ "\n",
+ "#Force introduced in steel\n",
+ "P_s=0.5*(2*L_c*(A_c*E_c)**-1+L_s*(A_s*E_s)**-1)**-1 #N\n",
+ "P_s2=P_s*A_s**-1\n",
+ "\n",
+ "#Force introduced in copper \n",
+ "P_c=2*P_s*A_c**-1 #N\n",
+ "\n",
+ "#Result\n",
+ "print\"Stress introduced in bolt is\",round(P_s2,2),\"N/mm**2\"\n",
+ "print\"stress introduced in tube is\",round(P_c,2),\"N/mm**2\""
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Stress introduced in bolt is 74.4 N/mm**2\n",
+ "stress introduced in tube is 66.43 N/mm**2\n"
+ ]
+ }
+ ],
+ "prompt_number": 19
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 2.2.28,Page No.40"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "import numpy as np\n",
+ "\n",
+ "#Initilization of Variables\n",
+ "\n",
+ "L=9 #m #Length of rigid bar\n",
+ "L_b=3000 #Length of bar\n",
+ "A_b=1000 #mm**2 #Area of bar\n",
+ "E_b=1*10**5 #N/mm**2 #Modulus of Elasticity of brasss bar\n",
+ "L_s=5000 #mm #Length of steel bar\n",
+ "A_s=445 #mm**2 #Area of steel bar\n",
+ "E_s=2*10**5 #N/mm**2 #Modulus of elasticity of steel bar\n",
+ "P=3000 #N #Load\n",
+ "\n",
+ "#Calculations\n",
+ "\n",
+ "#From static equilibrium Equation of the rod after appliying Load is\n",
+ "#P_b+P_s=P ......................(1)\n",
+ "\n",
+ "#P_b=1.8727*P_s ..................(2)\n",
+ "\n",
+ "#NOw substituting equation 2 in equation 1 we get\n",
+ "P_s=P*2.8727**-1\n",
+ "P_b=P-P_s\n",
+ "\n",
+ "d=P_s*L*P**-1 \n",
+ "\n",
+ "#Result\n",
+ "print\"Distance at which Load applied even after which bar remains horizontal is\",round(d,2),\"m\" "
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Distance at which Load applied even after which bar remains horizontal is 3.13 m\n"
+ ]
+ }
+ ],
+ "prompt_number": 20
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 2.2.29,Page No.41"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "import numpy as np\n",
+ "\n",
+ "#Initilization of Variables\n",
+ "\n",
+ "A_b=1000 #MM**2 #Area of brass bar\n",
+ "E_b=1*10**5 #N/mm**2 #Modulus of Elasticity of brass\n",
+ "A_s=600 #N/mm**2 #Area of steel rod\n",
+ "E_s=2*10**5 #N/mm**2 #Modulus of eLasticity of steel bar\n",
+ "P=10*10**2 #N #Load\n",
+ "\n",
+ "#Calculations\n",
+ "\n",
+ "#Let P_b be the tensile force in brass bar and P_s be the compressive force in steel bar\n",
+ "#Now taking moment about A we get static Equilibrium condition as\n",
+ "#P_b+2*P_s=27500 ......................................(1)\n",
+ "\n",
+ "#Now from deformed shape we get\n",
+ "#dell_s=2*dell_b\n",
+ "\n",
+ "#P_s*L_s*(A_s*E_s)**-1=P_b*L_b*(A_b*E_b)**-1\n",
+ "#Further simplifying we get\n",
+ "#P_s=1.2*P_b .........................................(2)\n",
+ "\n",
+ "#Now substituting equation 1 in equation 2 we get\n",
+ "P_b=27500*3.4**-1\n",
+ "P_s=1.2*P_b \n",
+ "\n",
+ "#Tensile stress in brass bar \n",
+ "sigma_b=P_b*A_b**-1\n",
+ "\n",
+ "#compressive stress in steel bar\n",
+ "sigma_s=P_s*A_s**-1\n",
+ "\n",
+ "#Result\n",
+ "print\"Compressive Stress in Bar is\",round(sigma_s,2),\"N/mm**2\"\n",
+ "print\"tensile Stress in Bar is\",round(sigma_b,2),\"N/mm**2\""
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Compressive Stress in Bar is 16.18 N/mm**2\n",
+ "tensile Stress in Bar is 8.09 N/mm**2\n"
+ ]
+ }
+ ],
+ "prompt_number": 21
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 2.2.30,Page No.44"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "import numpy as np\n",
+ "\n",
+ "#Initilization of Variables\n",
+ "\n",
+ "L=12.6 #m #Length of rail\n",
+ "t1=24 #Degree celsius\n",
+ "t2=44 #degree celsius\n",
+ "alpha=12*10**-6 #Per degree celsius\n",
+ "E=2*10**5 #N/mm**2 #Modulus of ELasticity\n",
+ "gamma=2 #mm #Gap provided for Expansion\n",
+ "sigma=20 #N/mm**2 #Stress\n",
+ "\n",
+ "#Calculations \n",
+ "\n",
+ "t=t2-t1 #Temperature Difference\n",
+ "\n",
+ "#Free Expansion of the rails\n",
+ "dell=alpha*t*L*1000 #mm \n",
+ "\n",
+ "#When no expansion joint is provided then\n",
+ "p=dell*E*(L*10**3)**-1\n",
+ "\n",
+ "#When a gap of 2 mm is provided,then free expansion prevented is\n",
+ "dell_1=dell-gamma\n",
+ "p2=dell_1*E*(L*10**3)**-1\n",
+ "\n",
+ "#When stress is developed,then gap left is\n",
+ "gamma2=-(sigma*L*10**3*E**-1-dell)\n",
+ "\n",
+ "#Result\n",
+ "print\"The minimum gap between the two rails is\",round(dell,2),\"mm\"\n",
+ "print\"Thermal Developed in the rials if:No expansionn joint is provided:p\",round(p,2),\"N/mm**2\"\n",
+ "print\" :If a gap of is provided then :p2\",round(p2,2),\"N/mm**2\"\n",
+ "print\"When stress is developed gap left between the rails is\",round(gamma2,2),\"mm\""
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "The minimum gap between the two rails is 3.02 mm\n",
+ "Thermal Developed in the rials if:No expansionn joint is provided:p 48.0 N/mm**2\n",
+ " :If a gap of is provided then :p2 16.25 N/mm**2\n",
+ "When stress is developed gap left between the rails is 1.76 mm\n"
+ ]
+ }
+ ],
+ "prompt_number": 22
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 2.2.31,Page No.45"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "import numpy as np\n",
+ "\n",
+ "#Initilization of Variables\n",
+ "\n",
+ "t=20 #degree celsius\n",
+ "E_a=70*10**9 #N/mm**2 #Modulus of Elasticicty of aluminium\n",
+ "alpha_a=11*10**-6 #per degree celsius #Temperature coeff of aluminium\n",
+ "alpha_s=12*10**-6 #Per degree celsius #Temperature coeff of steel\n",
+ "L_a=1000 #mm #Length of aluminium \n",
+ "L_s=3000 #mm #Length of steel\n",
+ "E_a=7*10**4 #N/mm**2 #Modulus of Elasticity of aluminium\n",
+ "E_s=2*10**5 #N/mm*2 #Modulus of Elasticity of steel\n",
+ "A_a=600 #mm**2 #Area of aluminium\n",
+ "A_s=300 #mm**2 #Area of steel\n",
+ "\n",
+ "#Calculations\n",
+ "\n",
+ "#Free Expansion \n",
+ "dell=alpha_a*t*L_a+alpha_s*t*L_s\n",
+ " \n",
+ "#support Reaction\n",
+ "P=dell*(L_a*(A_a*E_a)**-1+L_s*(A_s*E_s)**-1)**-1\n",
+ "\n",
+ "#Result\n",
+ "print\"Reaction at support is\",round(P,2),\"N\""
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Reaction at support is 12735.48 N\n"
+ ]
+ }
+ ],
+ "prompt_number": 23
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 2.2.33,Page No.48"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "import numpy as np\n",
+ "\n",
+ "#Initilization of Variables\n",
+ "\n",
+ "D=25 #mm #Diameter of Brass\n",
+ "De=50 #mm #External Diameter of steel tube\n",
+ "Di=25 #mm #Internal Diameter of steel tube\n",
+ "L=1.5 #m #Length of both bars\n",
+ "t1=30 #degree celsius #Initial Temperature\n",
+ "t2=100 #degree celsius #final Temperature\n",
+ "E_s=2*10**5 #N/mm**2 #Modulus of ELasticity of steel bar\n",
+ "E_b=1*10**5 #N/mm**2 #Modulus of Elasticity of brass bar\n",
+ "alpha_s=11.6*10**-6 #Temperature Coeff of steel\n",
+ "alpha_b=18.7*10**-6 #Temperature coeff of brass bar\n",
+ "d=20 #mm #diameter of pins\n",
+ "\n",
+ "#Calculations\n",
+ "\n",
+ "t=t2-t1 #Temperature Difference\n",
+ "A_s=pi*4**-1*(De**2-Di**2) #mm**2 #Area of steel\n",
+ "A_b=pi*4**-1*D**2 #mm**2 #Area of brass\n",
+ "\n",
+ "#Let P_b be the tensile force in brass bar and P_s be the compressive force in steel bar\n",
+ "#But from Equilibrium of Forces \n",
+ "#P_b=P_s=P\n",
+ "\n",
+ "#Let dell=dell_s+dell_b\n",
+ "dell=(alpha_b-alpha_s)*t*L*1000\n",
+ "\n",
+ "P=dell*(1*(A_s*E_s)**-1+1*(A_b*E_b)**-1)**-1*(L*1000)**-1\n",
+ "P_b=P_s=P\n",
+ "\n",
+ "#Stress in steel\n",
+ "sigma_s=P_s*A_s**-1\n",
+ "\n",
+ "#Stress in Brass\n",
+ "sigma_b=P_b*A_b**-1\n",
+ "\n",
+ "#Area of Pins\n",
+ "A_p=pi*4**-1*d**2\n",
+ "\n",
+ "#Since,the force is resisted by two cross section of pins\n",
+ "tou=P*(2*A_p)**-1\n",
+ " \n",
+ "#Result\n",
+ "print\"Stress in steel bar is\",round(sigma_s,2),\"N/mm**2\"\n",
+ "print\"Stress in Brass bar is\",round(sigma_b,2),\"N/mm**2\"\n",
+ "print\"Shear Stresss induced in pins is\",round(tou,2),\"N/mm**2\""
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Stress in steel bar is 14.2 N/mm**2\n",
+ "Stress in Brass bar is 42.6 N/mm**2\n",
+ "Shear Stresss induced in pins is 33.28 N/mm**2\n"
+ ]
+ }
+ ],
+ "prompt_number": 24
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 2.2.34,Page No.49"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "import numpy as np\n",
+ "\n",
+ "#Initilization of Variables\n",
+ "\n",
+ "b_s=60 #mm #width of steel Bar\n",
+ "t_s=10 #mm #thickness of steel Bar\n",
+ "b_c=40 #mm #width of copper bar\n",
+ "t_c=5 #mm #thickness of copper bar\n",
+ "E_s=2*10**5 #N/mm**2 #Modulus of Elasticity of steel bar\n",
+ "E_c=1*10**5 #N/mm**2 #Modulus of Elasticity of copper bar\n",
+ "alpha_s=12*10**-6 #Per degree celsius #Temperature coeff of steel bar\n",
+ "alpha_c=17*10**-6 #Per degree celsius #Temperature coeff of copper bar\n",
+ "L_s=L_c=L=1000 #mm #Length of bar\n",
+ "t=80 #degree celsius\n",
+ "\n",
+ "#Calculations\n",
+ "\n",
+ "A_s=b_s*t_s #Area of steel bar\n",
+ "A_c=b_c*t_c #Area of copper bar\n",
+ "\n",
+ "#Let P_s be the tensile force in steel bar and P_c be the compressive force in copper bar\n",
+ "#The equilibrium of forces gives \n",
+ "#P_s=2*P_c\n",
+ "\n",
+ "#Let dell=dell_s+dell_b\n",
+ "dell=(alpha_c-alpha_s)*t\n",
+ "\n",
+ "P_c=dell*(2*(A_s*E_s)**-1+1*(A_c*E_c)**-1)**-1\n",
+ "P_s=2*P_c\n",
+ "\n",
+ "#Stress in copper \n",
+ "sigma_c=P_c*A_c**-1\n",
+ "\n",
+ "#Stress in steel \n",
+ "sigma_s=P_s*A_s**-1\n",
+ "\n",
+ "#Change in Length of bar\n",
+ "dell_2=alpha_s*t*L+P_s*L_s*(A_s*E_s)**-1\n",
+ "\n",
+ "#result\n",
+ "print\"Stress in copper is\",round(sigma_c,2),\"N/mm**2\"\n",
+ "print\"Stress in steel is\",round(sigma_s,2),\"N/mm**2\"\n",
+ "print\"the change in Length is\",round(dell_2,2),\"mm\""
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Stress in copper is 30.0 N/mm**2\n",
+ "Stress in steel is 20.0 N/mm**2\n",
+ "the change in Length is 1.06 mm\n"
+ ]
+ }
+ ],
+ "prompt_number": 25
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 2.2.35,Page No.50"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "import numpy as np\n",
+ "\n",
+ "#Initilization of Variables\n",
+ "\n",
+ "P=2*10**5 #N #Weight\n",
+ "L=1 #m #Length of each rod\n",
+ "A_c=A_s=A=500 #mm**2 #Area of each rod\n",
+ "t=40 #degree celsius #temperature\n",
+ "E_s=2*10**5 #N/mm**2 #Modulus of Elasticity of steel rod\n",
+ "E_c=1*10**5 #N/mm**2 #modulus of Elastictiy of copper rod\n",
+ "alpha_s=1.2*10**-5 #Per degree Celsius #temp coeff of steel rod\n",
+ "alpha_c=1.8*10**-5 #Per degree Celsius #Temp coeff of copper rod\n",
+ "\n",
+ "#Calculations\n",
+ "\n",
+ "#Let P_s be the force in each one of the copper rods and P_s be the force in steel rod\n",
+ "#2*P_c+P_s=P .....................(1)\n",
+ "\n",
+ "#Extension of copper bar=Extension of steel bar\n",
+ "#P_s*L*(A_s*E_s)**-1=P_c*L*(A_c*E_c)**-1\n",
+ "#after simplifying above equation we get\n",
+ "#P_s=2*P_c ........................(2)\n",
+ "\n",
+ "#Now substituting value of P_s in Equation 1 we get\n",
+ "P_c=P*4**-1\n",
+ "P_s=2*P_c\n",
+ "\n",
+ "#Now EXtension due to copper Load\n",
+ "dell_1=P_c*L*1000*(A_c*E_c)**-1\n",
+ "\n",
+ "#Part-2\n",
+ "\n",
+ "#Due to rise of temperature of40 degree celsius\n",
+ "\n",
+ "#As bars are rigidly joined,let P_c1 be the compressive forccesdeveloped in copper bar and P_s1 be the tensile force in steel causing changes\n",
+ "#P_s1=2*P_c1\n",
+ "\n",
+ "#dell_s+dell_c=(alpha_c-alpha_s)*t*L .......................................(3)\n",
+ "#P_s1*L*(A_s*E_s)**-1+P_c1*L*(A_c*E_c)**-1=(alpha_c-alpha_s)*t*L ................(4)\n",
+ "#After substituting values in above equation and further simplifying we get,\n",
+ "P_c1=(alpha_c-alpha_s)*t*L*(2*(A_s*E_s)**-1+1*(A_c*E_c)**-1)**-1 #.................(5)\n",
+ "P_s1=2*P_c1\n",
+ "\n",
+ "#Extension of bar due to temperature rise\n",
+ "dell_2=alpha_s*t*L+P_s1*L*(A_s*E_s)**-1\n",
+ "\n",
+ "#Amount by which bar will descend\n",
+ "dell_3=dell_1+dell_2\n",
+ "\n",
+ "#Load carried by steel bar\n",
+ "P_S=P_s+P_s1\n",
+ "\n",
+ "#Load carried by copper bar\n",
+ "P_C=P_c-P_c1\n",
+ "\n",
+ "#Part-3\n",
+ "\n",
+ "#Let P_c1_1=P_c #For convenience\n",
+ "#Rise in temperature if Load is to be carried out by steel rod alone\n",
+ "P_c1_1=P_c\n",
+ "\n",
+ "#From equation 5 \n",
+ "t=P_c1_1*(2*(A_s*E_s)**-1+1*(A_c*E_c)**-1)*(alpha_c-alpha_s)**-1\n",
+ "\n",
+ "#result\n",
+ "print\"Extension Due top copper Load\",round(dell_1,2),\"mm\"\n",
+ "print\"Load carried by each rod:P_s\",round(P_s,2),\"N\"\n",
+ "print\" :P_c\",round(P_c,2),\"N\"\n",
+ "print\"Rise in Temperature of steel rod should be\",round(t,2),\"degree Celsius\""
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Extension Due top copper Load 1.0 mm\n",
+ "Load carried by each rod:P_s 100000.0 N\n",
+ " :P_c 50000.0 N\n",
+ "Rise in Temperature of steel rod should be 333.33 degree Celsius\n"
+ ]
+ }
+ ],
+ "prompt_number": 26
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 2.2.36,Page No.53"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "import numpy as np\n",
+ "\n",
+ "#Initilization of Variables\n",
+ "\n",
+ "t=40 #degree celsius #temperature\n",
+ "A_s=400 #mm**2 #Area of steel bar\n",
+ "A_c=600 #mm**2 #Area of copper bar\n",
+ "E_s=2*10**5 #N/mm**2 #Modulus of Elasticity of steel bar\n",
+ "E_c=1*10**5 #N/mm**2 #Modulus of Elasticity of copper bar\n",
+ "alpha_s=12*10**-6 #degree celsius #Temperature coeff of steel bar\n",
+ "alpha_c=18*10**-6 #degree celsius #Temperature coeff of copper bar\n",
+ "L_c=800 #mm #Length of copper bar\n",
+ "L_s=600 #mm #Length of steel bar\n",
+ "\n",
+ "#Calculations\n",
+ "\n",
+ "#Let P_s be the tensile force in steel bar and P_c be the compressive force in copper bar\n",
+ "#Static Equilibrium obtained by taking moment about A\n",
+ "#P_c=2*P_s\n",
+ "\n",
+ "#From property of similar triangles we get\n",
+ "#(alpha_c*Lc-dell_c)*1**-1=(alpha_s*L_s-dell_s)*2**-1\n",
+ "#After substituting values in above equations and further simplifying we get\n",
+ "P_s=(2*alpha_c*L_c-alpha_s*L_s)*t*(L_s*(A_s*E_s)**-1+4*L_c*(A_c*E_c)**-1)**-1\n",
+ "P_c=2*P_s\n",
+ "\n",
+ "#Stress in steel rod\n",
+ "sigma_s=P_s*A_s**-1 #N/mm**2 \n",
+ "\n",
+ "#Stress in copper rod\n",
+ "sigma_c=P_c*A_c**-1 #N/mm**2\n",
+ "\n",
+ "#Result\n",
+ "print\"Stress in steel rod is\",round(sigma_s,2),\"N/mm**2\"\n",
+ "print\"STress in copper rod is\",round(sigma_c,2),\"N/mm**2\""
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Stress in steel rod is 35.51 N/mm**2\n",
+ "STress in copper rod is 47.34 N/mm**2\n"
+ ]
+ }
+ ],
+ "prompt_number": 4
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 2.2.37,Page No.61"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "import numpy as np\n",
+ "\n",
+ "#Initilization of Variables\n",
+ "\n",
+ "d=20 #mm #Diameter of bar\n",
+ "P=37.7*10**3 #N #Load\n",
+ "L=200 #mm #Guage Length \n",
+ "dell=0.12 #mm #Extension\n",
+ "dell_d=0.0036 #mm #contraction in diameter\n",
+ "\n",
+ "#Calculations\n",
+ "\n",
+ "#Area of bar\n",
+ "A=pi*4**-1*d**2\n",
+ "\n",
+ "#Let s and dell_s be the Linear strain and Lateral strain\n",
+ "s=dell*L**-1\n",
+ "dell_s=dell_d*d**-1\n",
+ "mu=dell_s*s**-1 #Poissoin's ratio \n",
+ "\n",
+ "#dell=P*L*(A*E)**-1\n",
+ "E=P*L*(dell*A)**-1 #N/mm**2 #Modulus of Elasticity of bar\n",
+ "\n",
+ "#Modulus of Rigidity\n",
+ "G=E*(2*(1+mu))**-1 #N/mm**2\n",
+ "\n",
+ "#Bulk Modulus \n",
+ "K=E*(3*(1-2*mu))**-1 #N/mm**2\n",
+ "\n",
+ "#result\n",
+ "print\"Poisson's ratio is\",round(mu,2)\n",
+ "print\"The Elastic constant are:E\",round(E,2)\n",
+ "print\" :G\",round(G,2)\n",
+ "print\" :K\",round(K,2)"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Poisson's ratio is 0.3\n",
+ "The Elastic constant are:E 200004.71\n",
+ " :G 76924.89\n",
+ " :K 166670.59\n"
+ ]
+ }
+ ],
+ "prompt_number": 13
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 2.2.38,Page No.62"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "import numpy as np\n",
+ "\n",
+ "#Initilization of Variables\n",
+ "\n",
+ "d=100 #mm #Diameter of circular rod\n",
+ "P=1*10**6 #N #Tensile Force\n",
+ "mu=0.3 #Poisson's ratio\n",
+ "E=2*10**5 #N/mm**2 #Young's Modulus \n",
+ "L=500 #mm #Length of rod\n",
+ "\n",
+ "#Calculations\n",
+ "\n",
+ "#Modulus of Rigidity\n",
+ "G=E*(2*(1+mu))**-1 #N/mm**2\n",
+ "\n",
+ "#Bulk Modulus \n",
+ "K=E*(3*(1-2*mu))**-1 #N/mm**2\n",
+ "\n",
+ "A=pi*4**-1*d**2 #mm**2 #Area of Circular rod\n",
+ "#Let sigma be the Longitudinal stress\n",
+ "sigma=P*A**-1 #N/mm**2 \n",
+ "\n",
+ "s=sigma*E**-1 #Linear strain\n",
+ "e_x=s\n",
+ "\n",
+ "#Volumetric strain\n",
+ "e_v=e_x*(1-2*mu)\n",
+ "\n",
+ "v=pi*4**-1*d**2*L\n",
+ "#Change in VOlume\n",
+ "dell_v=e_v*v\n",
+ "\n",
+ "#Result\n",
+ "print\"Bulk Modulus is\",round(E,2),\"N/mm**2\"\n",
+ "print\"Modulus of Rigidity is\",round(G,2),\"N/mm**2\"\n",
+ "print\"The change in Volume is\",round(dell_v,2),\"mm**3\""
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Bulk Modulus is 200000.0 N/mm**2\n",
+ "Modulus of Rigidity is 76923.08 N/mm**2\n",
+ "The change in Volume is 1000.0 mm**3\n"
+ ]
+ }
+ ],
+ "prompt_number": 21
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 2.2.39,Page No.62"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "import numpy as np\n",
+ "\n",
+ "#Initilization of Variables\n",
+ "\n",
+ "L=500 #mm #Length of rectangular cross section bar\n",
+ "A=20*40 #mm**2 #Area of rectangular cross section bar\n",
+ "P1=4*10**4 #N #Tensile Force on 20mm*40mm Faces\n",
+ "P2=2*10**5 #N #compressive force on 20mm*500mm Faces\n",
+ "P3=3*10**5 #N #Tensile Force on 40mm*500mm Faces\n",
+ "E=2*10**5 #N/mm**2 #young's Modulus \n",
+ "mu=0.3 #Poisson's Ratio\n",
+ "\n",
+ "#Calculations\n",
+ "\n",
+ "#Let P_x,P_y,P_z be the forces n x,y,z directions\n",
+ "\n",
+ "P_x=P1*A**-1\n",
+ "P_y=P2*A**-1\n",
+ "P_z=P3*A**-1\n",
+ "\n",
+ "#Let e_x,e_y,e_z be the strains in x,y,z directions\n",
+ "e_x=1*E**-1*(50+mu*20-15*mu)\n",
+ "e_y=1*E**-1*(-mu*50-20-mu*15)\n",
+ "e_z=1*E**-1*(-mu*50+mu*20+15)\n",
+ "\n",
+ "#Volumetric strain\n",
+ "e_v=e_x+e_y+e_z\n",
+ "\n",
+ "#Volume\n",
+ "V=20*40*500 #mm**3\n",
+ "#Change in Volume \n",
+ "dell_v=e_v*V #mm**3\n",
+ "\n",
+ "#Result\n",
+ "print\"The change in Volume is\",round(dell_v,2),\"mm**3\""
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "The change in Volume is 36.0 mm**3\n"
+ ]
+ }
+ ],
+ "prompt_number": 2
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 2.2.41,Page No.65"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "import numpy as np\n",
+ "\n",
+ "#Initilization of Variables\n",
+ "\n",
+ "E=2.1*10**5 #N/mm**2 #Young's Modulus \n",
+ "G=0.78*10**5 #N/mm**2 #Modulus of Rigidity\n",
+ "\n",
+ "#Calculations\n",
+ "\n",
+ "#Now using the relation\n",
+ "#E=2*G*(1+mu)\n",
+ "mu=E*(2*G)**-1-1 #Poisson's ratio\n",
+ "\n",
+ "#Bulk Modulus \n",
+ "K=E*(3*(1-2*mu))**-1 #N/mm**2\n",
+ "\n",
+ "\n",
+ "#Result\n",
+ "print\"The Poisson's Ratio is\",round(mu,2)\n",
+ "print\"The modulus of Rigidity\",round(K,2),\"N/mm**2\""
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "The Poisson's Ratio is 0.35\n",
+ "The modulus of Rigidity 227500.0 N/mm**2\n"
+ ]
+ }
+ ],
+ "prompt_number": 5
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 2.2.42,Page No.65"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "import numpy as np\n",
+ "\n",
+ "#Initilization of Variables\n",
+ "\n",
+ "G=0.4*10**5 #N/mm**2 #Modulus of rigidity\n",
+ "K=0.75*10**5 #N/mm**2 #Bulk Modulus \n",
+ "\n",
+ "#Calculations\n",
+ "\n",
+ "#Young's Modulus\n",
+ "E=9*G*K*(3*K+G)**-1\n",
+ "\n",
+ "#Now from the relation\n",
+ "#E=2*G(1+2*mu)\n",
+ "mu=E*(2*G)**-1-1 #POissoin's ratio \n",
+ "\n",
+ "#result\n",
+ "print\"Young's modulus is\",round(E,2),\"N/mm**2\"\n",
+ "print\"Poissoin's ratio is\",round(mu,2)"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Young's modulus is 101886.79 N/mm**2\n",
+ "Poissoin's ratio is 0.27\n"
+ ]
+ }
+ ],
+ "prompt_number": 25
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 2.2.43,Page No.65"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "import numpy as np\n",
+ "\n",
+ "#Initilization of Variables\n",
+ "\n",
+ "b=60 #mm #width of bar\n",
+ "d=30 #mm #depth of bar\n",
+ "L=200 #mm #Length of bar\n",
+ "A=30*60 #mm**2 #Area of bar\n",
+ "A2=30*200 #mm**2 #Area of bar along which expansion is restrained\n",
+ "P=180*10**3 #N #Compressive force\n",
+ "E=2*10**5 #N/mm**2 #Young's Modulus\n",
+ "mu=0.3 #Poissoin's ratio\n",
+ "\n",
+ "#Calculations\n",
+ "\n",
+ "#The bar is restrained from expanding in Y direction\n",
+ "P_z=0\n",
+ "P_x=P*A**-1 #stress developed in x direction\n",
+ "\n",
+ "#Now taking compressive strain as positive\n",
+ "#e_x=P_x*E**-1-mu*P_y*E**-1 .......................(1)\n",
+ "#e_y=-mu*P_x*E**-1+P_y*E**-1 ....................(2)\n",
+ "#e_z=-mu*P_x*E**-1-mu*P_y*E**-1 ......................(3)\n",
+ "\n",
+ "#Part-1\n",
+ "#When it is fully restrained\n",
+ "e_y=0\n",
+ "P_y=30 #N/mm**2 \n",
+ "e_x=P_x*E**-1-mu*P_y*E**-1\n",
+ "e_z=-mu*P_x*E**-1-mu*P_y*E**-1\n",
+ "\n",
+ "#Change in Length \n",
+ "dell_l=e_x*L #mm\n",
+ "\n",
+ "#Change in width\n",
+ "dell_b=b*e_y\n",
+ "\n",
+ "#change in Depth\n",
+ "dell_d=d*e_z\n",
+ "\n",
+ "#Volume of bar\n",
+ "V=b*d*L #mm**3\n",
+ "#Change in Volume\n",
+ "e_v=(e_x+e_y+e_z)*V #mm**3\n",
+ "\n",
+ "#Part-2\n",
+ "#When 50% is restrained\n",
+ "\n",
+ "#Free strain in Y direction\n",
+ "e_y1=mu*P_x*E**-1\n",
+ "\n",
+ "#As 50% is restrained,so\n",
+ "e_y2=-50*100**-1*e_y1\n",
+ "\n",
+ "#But form Equation 2 we have e_y=-mu*P_x*E**-1+P_y*E**-1 \n",
+ "#After substituting values in above equation and furthe simplifying we get\n",
+ "P_y=e_y2*E+d\n",
+ "\n",
+ "e_x2=P_x*E**-1-mu*P_y*E**-1 \n",
+ "e_z2=-mu*P_x*E**-1-mu*P_y*E**-1\n",
+ "\n",
+ "#Change in Length \n",
+ "dell_l2=e_x2*L #mm\n",
+ "\n",
+ "#Change in width\n",
+ "dell_b2=b*e_y2\n",
+ "\n",
+ "#change in Depth\n",
+ "dell_d2=d*e_z2\n",
+ "\n",
+ "#Change in Volume\n",
+ "e_v2=(e_x2+e_y2+e_z2)*V #mm**3\n",
+ "\n",
+ "#REsult\n",
+ "print\"Change in Dimension of bar is:dell_l\",round(dell_l,2),\"mm\"\n",
+ "print\" :dell_b\",round(dell_b,4),\"mm\"\n",
+ "print\" :dell_d\",round(dell_d,2),\"mm\"\n",
+ "print\"Change in Volume is\",round(e_v,2),\"mm**3\"\n",
+ "print\"Changes in material when only 50% of expansion can be reatrained:dell_l2\",round(dell_l2,2),\"mm\"\n",
+ "print\" :dell_b2\",round(dell_b2,4),\"mm\"\n",
+ "print\" :dell_d2\",round(dell_d2,2),\"mm\""
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Change in Dimension of bar is:dell_l 0.09 mm\n",
+ " :dell_b 0.0 mm\n",
+ " :dell_d -0.01 mm\n",
+ "Change in Volume is 93.6 mm**3\n",
+ "Changes in material when only 50% of expansion can be reatrained:dell_l2 0.1 mm\n",
+ " :dell_b2 -0.0045 mm\n",
+ " :dell_d2 -0.01 mm\n"
+ ]
+ }
+ ],
+ "prompt_number": 23
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 2.2.44,Page No.72"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "import numpy as np\n",
+ "\n",
+ "#Initilization of Variables\n",
+ "\n",
+ "P=10*10**3 #N #Load\n",
+ "E=2*10**5 #N/mm**2 #Young's Modulus\n",
+ "d2=12 #mm #Diameter of bar1\n",
+ "d1=16 #mm #diameter of bar2\n",
+ "L1=200 #mm #Length of bar1\n",
+ "L2=500 #mm #Length of bar2\n",
+ "\n",
+ "#Calculations\n",
+ "\n",
+ "#Let A1 and A2 be the cross Area of Bar1 & bar2 respectively\n",
+ "A1=pi*4**-1*d1**2 #mm**2\n",
+ "A2=pi*4**-1*d2**2 #mm**2\n",
+ "\n",
+ "#Let p1 and p2 be the stress in Bar1 nad bar2 respectively\n",
+ "p1=P*A1**-1 #N/mm**2\n",
+ "p2=P*A2**-1 #N/mm**2\n",
+ "\n",
+ "#Let V1 nad V2 be the Volume of of Bar1 and Bar2\n",
+ "V1=A1*(L1+L1)\n",
+ "V2=A2*L2\n",
+ "\n",
+ "#Let E be the strain Energy stored in the bar\n",
+ "E=p1**2*(2*E)**-1*V1+p2**2*V2*(2*E)**-1\n",
+ "\n",
+ "#result\n",
+ "print\"The Strain Energy stored in Bar is\",round(E,2),\"N-mm\""
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "The Strain Energy stored in Bar is 1602.6 N-mm\n"
+ ]
+ }
+ ],
+ "prompt_number": 74
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 2.2.45,Page No.73"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "import numpy as np\n",
+ "\n",
+ "#Initilization of Variables\n",
+ "\n",
+ "#Bar-A\n",
+ "d1=30 #mm #Diameter of bar1\n",
+ "L=600 #mm #length of bar1\n",
+ "\n",
+ "#Bar-B\n",
+ "d2=30 #mm #Diameter of bar2\n",
+ "d3=20 #mm #Diameter of bar2\n",
+ "L2=600 #mm #length of bar2\n",
+ "\n",
+ "#Calculations\n",
+ "\n",
+ "#Area of bar-A\n",
+ "A1=pi*4**-1*d1**2\n",
+ "\n",
+ "#Area of bar-B\n",
+ "A2=pi*4**-1*d2**2\n",
+ "A3=pi*4**-1*d3**2\n",
+ "\n",
+ "#let SE be the Strain Energy\n",
+ "#Strain Energy stored in Bar-A\n",
+ "#SE=p**2*(2*E)**-1*V\n",
+ "#After substituting values and simolifying further we get\n",
+ "#SE=P**2*E**-1*0.4244\n",
+ "\n",
+ "#Strain Energy stored in Bar-B\n",
+ "#SE2=p1**2*V1*(2*E)**-1+p2**2*V2*(2*E)**-1\n",
+ "#After substituting values and simolifying further we get\n",
+ "#SE2=0.6897*P**2*E**-1\n",
+ "\n",
+ "#Let X be the ratio of SE in Bar-B and SE in Bar-A\n",
+ "X=0.6897*0.4244**-1\n",
+ "\n",
+ "#Part-2\n",
+ "\n",
+ "#When Max stress is produced is same:Let p be the max stress produced\n",
+ "\n",
+ "#Stress in bar A is p throughout \n",
+ "#In bar B:stress in 20mm dia.portion=p2=p\n",
+ "\n",
+ "#Stress in 30 mm dia.portion\n",
+ "#p1=P*A2*A3**-1\n",
+ "#After substituting values and simolifying further we get\n",
+ "#p1=4*9**-1*p\n",
+ "\n",
+ "#Strain Energy in bar A\n",
+ "#SE_1=p**2*(2*E)**-1*A1*L1\n",
+ "#After substituting values and simolifying further we get\n",
+ "#SE_1=67500*p**2*pi*E**-1\n",
+ "\n",
+ "#Strain Energy in bar B\n",
+ "#SE_2=p1**2*V1*(2*E)**-1+p2**2*V2*(2*E)**-1\n",
+ "#After substituting values and simolifying further we get\n",
+ "#SE_2=21666.67*pi*p**2*E**-1\n",
+ "\n",
+ "#Let Y be the Ratio of SE in bar B and SE in bar A\n",
+ "Y=21666.67*67500**-1\n",
+ "\n",
+ "#result\n",
+ "print\"Gradually applied Load is\",round(X,2)\n",
+ "print\"Gradually applied Load is\",round(Y,2)"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Gradually applied Load is 1.63\n",
+ "Gradually applied Load is 0.32\n"
+ ]
+ }
+ ],
+ "prompt_number": 4
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 2.2.46,Page No.74"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "import numpy as np\n",
+ "\n",
+ "#Initilization of Variables \n",
+ "\n",
+ "W=100 #N #Load\n",
+ "E=2*10**5 #N/mm**2 #Young's Modulus \n",
+ "h=60 #mm #Height through Load falls down\n",
+ "L=400 #mm #Length of collar\n",
+ "d=30 #mm #diameter of bar\n",
+ "\n",
+ "#Calculations\n",
+ "\n",
+ "A=pi*4**-1*d**2 #mm**2 #Area of bar\n",
+ "\n",
+ "#Instantaneous stress produced is\n",
+ "p=W*A**-1*(1+(1+(2*A*E*h*(W*L)**-1))**0.5)\n",
+ "\n",
+ "#Now the EXtension of the bar is neglected in calculating work doneby the Load,then\n",
+ "P=(2*E*h*W*(A*L)**-1)**0.5\n",
+ "\n",
+ "#Let percentage error be denoted by E1\n",
+ "#Percentage error in approximating is\n",
+ "E1=(p-P)*p**-1*100\n",
+ "\n",
+ "#Instantaneous Extension produced is\n",
+ "dell_l=round(P,3)*E**-1*L\n",
+ "\n",
+ "#Result\n",
+ "print\"The Instantaneous stress is\",round(p,2),\"N/mm\"\n",
+ "print\"Percentage Error is\",round(E1,2)\n",
+ "print\"The Instantaneous extension is\",round(dell_l,2),\"mm\""
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "The Instantaneous stress is 92.27 N/mm\n",
+ "Percentage Error is 0.15\n",
+ "The Instantaneous extension is 0.18 mm\n"
+ ]
+ }
+ ],
+ "prompt_number": 23
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 2.2.47,Page No.75"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "import numpy as np\n",
+ "\n",
+ "#Initilization of Variables\n",
+ "\n",
+ "d=20 #mm #Diameter of steel bar\n",
+ "L=1000 #mm #Length of bar\n",
+ "E=2*10**5 #N/mm**2 #Young's Modulus \n",
+ "p=300 #N/mm**2 #max Permissible stress\n",
+ "h=50 #mm #Height through which weight will fall\n",
+ "w=600 #N #Load\n",
+ "\n",
+ "#Calculations\n",
+ "\n",
+ "#ARea of steel bar\n",
+ "A=pi*4**-1*d**2\n",
+ "\n",
+ "#Instantaneous extension is\n",
+ "dell_l=p*L*E**-1 #mm \n",
+ "\n",
+ "#Work done by Load \n",
+ "#W=W1*(h+dell_l)\n",
+ "\n",
+ "#Volume of bar\n",
+ "V=round(A,2)*L\n",
+ "#Let E1 be the strain Energy\n",
+ "E1=p**2*(2*E)**-1*V\n",
+ "\n",
+ "#Answer in Book for Strain Energy is Incorrect \n",
+ "\n",
+ "#Now Equating Workdone by Load to strain Energy \n",
+ "W1=E1*51.5**-1\n",
+ "\n",
+ "#Now when w=600 N\n",
+ "#Let W2 be the Work done by the Load\n",
+ "#W2=w(h2*dell_l)\n",
+ "\n",
+ "h=E1*w**-1-dell_l\n",
+ "\n",
+ "#Result\n",
+ "print\"The Max Lodad which can Fall from a height of 50 mm on the collar is\",round(W1,2),\"N\"\n",
+ "print\"the Max Height from which a 600 N Load can fall on the collar is\",round(h,2),\"mm\""
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "The Max Lodad which can Fall from a height of 50 mm on the collar is 1372.54 N\n",
+ "the Max Height from which a 600 N Load can fall on the collar is 116.31 mm\n"
+ ]
+ }
+ ],
+ "prompt_number": 40
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 2.2.48,Page No.76"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "import numpy as np\n",
+ "\n",
+ "#Initilization of Variables\n",
+ "\n",
+ "D_s=30 #mm #Diameter of steel rod\n",
+ "d=30 #mm #Internal Diameter of copper tube\n",
+ "D=40#mm #External Diameter of copper tube\n",
+ "E_s=2*10**5 #N/mm**2 #Young's Modulus of Steel rod\n",
+ "E_c=1*10**5#N/mm**2 #Young's Modulus of copper tube\n",
+ "P=100 #N #Load\n",
+ "h=40 #mm #height from which Load falls\n",
+ "L=800 #mm #Length \n",
+ "\n",
+ "#Calculations\n",
+ "\n",
+ "#Area of steel rod\n",
+ "A_s=pi*4**-1*D_s**2\n",
+ "\n",
+ "#Area of copper tube\n",
+ "A_c=pi*4**-1*(D**2-d**2)\n",
+ "\n",
+ "#But Dell_s=dell_c=dell\n",
+ "#p_s*E_s**-1*L=p_c*L*E_c\n",
+ "#After simplifying furthe we get\n",
+ "#p_s=2*p_c\n",
+ "\n",
+ "#Now Equating internal Energy to Workdone we get\n",
+ "p_c=(2*P*h*L**-1*(4*A_s*E_s**-1+A_c*E_c**-1))**0.5\n",
+ "p_s=2*p_c\n",
+ "\n",
+ "#Result\n",
+ "print A_s\n",
+ "print\"STress produced in steel is\",round(p_s,2),\"N/mm**2\"\n",
+ "print\"STress produced in copper is\",round(p_c,2),\"N/mm**2\""
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "706.858347058\n",
+ "STress produced in steel is 0.89 N/mm**2\n",
+ "STress produced in copper is 0.44 N/mm**2\n"
+ ]
+ }
+ ],
+ "prompt_number": 9
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 2.2.49,Page No.77"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "import numpy as np\n",
+ "\n",
+ "dell=0.25 #mm #Instantaneous Extension\n",
+ "\n",
+ "#Bar-A\n",
+ "b1=25 #mm #width of bar\n",
+ "D1=500 #mm #Depth of bar\n",
+ "\n",
+ "#Bar-B\n",
+ "b2_1=25 #mm #width of upper bar\n",
+ "b2_2=15 #mm #Width of Lower Bar\n",
+ "L2=200 #mm #Length of upper bar\n",
+ "L1=300 #mm #Length of Lower bar\n",
+ "\n",
+ "E=2*10**5 #N/mm**2 #Young's Modulus of bar\n",
+ "\n",
+ "#Calculations\n",
+ "\n",
+ "#Strain\n",
+ "e=dell*D1**-1 \n",
+ "\n",
+ "#Load\n",
+ "p=e*E\n",
+ "\n",
+ "#Area of bar-A\n",
+ "A=pi*4**-1*25**2\n",
+ "\n",
+ "#Volume of bar-A\n",
+ "V=A*D1\n",
+ "\n",
+ "#Let E1 be the Energy of Blow\n",
+ "#Energy of Blow\n",
+ "E1=p**2*(E)**-1*V\n",
+ "\n",
+ "#Let p2 be the Max stress in bar B When this blow is applied.\n",
+ "#the max stress occurs in the 15mm dia. portion,Hence, the stress in 25 mm dia.portion is\n",
+ "#p2*pi*4**-1*b2_2**2*(pi*4**-1*b2_2**2=0.36*p\n",
+ "\n",
+ "#Strain Energy of bar B\n",
+ "#E2=p**2*(2*E)**-1*v1+1*(2*E)**-1*(0.36*p2)**2*v2\n",
+ "#After substituting values and Further substituting values we get\n",
+ "#E2=0.1643445*p2**2\n",
+ "\n",
+ "#Equating it to Energy of applied blow,we get\n",
+ "p2=(12271.846*0.1643445**-1)**0.5\n",
+ "\n",
+ "#Stress in top portion\n",
+ "sigma=0.36*p2\n",
+ "\n",
+ "#Extension in Bar-1\n",
+ "dell_1=p2*E**-1*L1\n",
+ "\n",
+ "#Extension in Bar-2\n",
+ "dell_2=0.36*p2*E**-1*L2\n",
+ "\n",
+ "#Extension of bar\n",
+ "dell_3=dell_1+dell_2\n",
+ "\n",
+ "#Result\n",
+ "print\"Instantaneous Max stress is\",round(sigma,2),\"N/mm**2\"\n",
+ "print\"extension in Bar is\",round(dell_3,2),\"mm\""
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Instantaneous Max stress is 98.37 N/mm**2\n",
+ "extension in Bar is 0.51 mm\n"
+ ]
+ }
+ ],
+ "prompt_number": 1
+ }
+ ],
+ "metadata": {}
+ }
+ ]
+}
\ No newline at end of file diff --git a/Strength_Of_Materials_by_S_S_Bhavikatti/chapter_03.ipynb b/Strength_Of_Materials_by_S_S_Bhavikatti/chapter_03.ipynb new file mode 100644 index 00000000..d6656ff0 --- /dev/null +++ b/Strength_Of_Materials_by_S_S_Bhavikatti/chapter_03.ipynb @@ -0,0 +1,1601 @@ +{
+ "metadata": {
+ "name": "chapter 03.ipynb"
+ },
+ "nbformat": 3,
+ "nbformat_minor": 0,
+ "worksheets": [
+ {
+ "cells": [
+ {
+ "cell_type": "heading",
+ "level": 1,
+ "metadata": {},
+ "source": [
+ "Chapter 3:Shear Force And Bending Moment Diagrams in Statically Determinate Beams"
+ ]
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 3.3.1,Page No.100"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "import numpy as np\n",
+ "%matplotlib inline\n",
+ "\n",
+ "#Initilization of Variables\n",
+ "\n",
+ "L_AC=L_CD=1 #m #Length of AC & CD\n",
+ "L_DB=1.5 #m #Lengh of DB\n",
+ "L=3.5 #m #Length of Beam\n",
+ "F_B=10 #KN #Force at pt B\n",
+ "F_C=F_D=20 #KN #Force at pt C & D\n",
+ "\n",
+ "#Calculations\n",
+ "\n",
+ "R_A=F_C+F_D+F_B #KN #Force at support A \n",
+ "\n",
+ "#Shear Force Calculations\n",
+ "\n",
+ "#S.F At pt B\n",
+ "V_B1=0 #KN \n",
+ "V_B2=F_B #KN\n",
+ "\n",
+ "#S.F At pt D\n",
+ "V_D1=V_B2 #KN\n",
+ "V_D2=V_D1+F_D #KN\n",
+ "\n",
+ "#S.F At pt C \n",
+ "V_C1=V_D2 #KN\n",
+ "V_C2=V_D2+F_C #KN\n",
+ "\n",
+ "#S.F At Pt A\n",
+ "V_A1=V_C2 #KN\n",
+ "V_A2=V_C2-R_A #KN\n",
+ "\n",
+ "#Bending Moment Calculations\n",
+ "\n",
+ "#B.M At Pt B\n",
+ "M_B=0 #KN.m\n",
+ "\n",
+ "#B.M AT Pt D\n",
+ "M_D=F_B*L_DB #KN.m\n",
+ "\n",
+ "#B.M At pt C\n",
+ "M_C=F_B*(L_DB+L_CD)+F_D*L_CD #KN.m\n",
+ "\n",
+ "#B.M At pt A\n",
+ "M_A=F_B*L+F_D*(L_CD+L_AC)+F_C*L_AC\n",
+ "\n",
+ "#Result\n",
+ "print \"The Shear Force and Bending Moment Diagrams are the results\"\n",
+ "\n",
+ "#Plotting the Shear Force Diagram\n",
+ "\n",
+ "X1=[0,0,L_DB,L_DB,L_CD+L_DB,L_CD+L_DB,L_CD+L_DB+L_AC,L_CD+L_DB+L_AC]\n",
+ "Y1=[V_B1,V_B2,V_D1,V_D2,V_C1,V_C2,V_A1,V_A2]\n",
+ "Z1=[0,0,0,0,0,0,0,0]\n",
+ "plt.plot(X1,Y1,X1,Z1)\n",
+ "plt.xlabel(\"Length x in m\")\n",
+ "plt.ylabel(\"Shear Force in kN\")\n",
+ "plt.show()\n",
+ "\n",
+ "#Plotting the Bendimg Moment Diagram\n",
+ "\n",
+ "Y2=[M_B,M_D,M_C,M_A]\n",
+ "X2=[0,L_DB,L_DB+L_CD,L_AC+L_CD+L_DB]\n",
+ "Z2=[0,0,0,0]\n",
+ "plt.plot(X2,Y2,X2,Z2)\n",
+ "plt.xlabel(\"Length in m\")\n",
+ "plt.ylabel(\"Bending Moment in kN.m\")\n",
+ "plt.show()"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "The Shear Force and Bending Moment Diagrams are the results\n"
+ ]
+ },
+ {
+ "metadata": {},
+ "output_type": "display_data",
+ "png": "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\n",
+ "text": [
+ "<matplotlib.figure.Figure at 0x5fcc2d0>"
+ ]
+ },
+ {
+ "metadata": {},
+ "output_type": "display_data",
+ "png": "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\n",
+ "text": [
+ "<matplotlib.figure.Figure at 0x5c11b50>"
+ ]
+ }
+ ],
+ "prompt_number": 23
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 3.3.2,Page No.101"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "import numpy as np\n",
+ "%matplotlib inline\n",
+ "\n",
+ "#Initilization of Variables\n",
+ "\n",
+ "w1=10 #KN/m #u.d.L\n",
+ "F_D=20 #KN #Force at pt D\n",
+ "F_C=30 #KN #Force at pt C\n",
+ "L_DB=4 #m #Length of DB\n",
+ "L_CD=L_AC=2 #m #Length of AC & CD\n",
+ "L=8 #m #Length of Beam\n",
+ "\n",
+ "#Calculations\n",
+ "\n",
+ "#Let R_A And R_B be the Reactions at pt A and B \n",
+ "#R_A+R_B=90 \n",
+ "#Now Taking moment at A,M_A we get\n",
+ "R_A=(w1*L_DB*(L_DB*2**-1)+F_D*L_DB+F_C*(L_CD+L_DB))*L**-1\n",
+ "R_B=90-R_A\n",
+ "\n",
+ "#Shear Force Calculations\n",
+ "\n",
+ "#S.F At Pt B\n",
+ "V_B1=0 #KN\n",
+ "V_B2=R_B #KN\n",
+ "\n",
+ "#S.F At pt D\n",
+ "V_D1=R_B-w1*L_DB #KN\n",
+ "V_D2=V_D1-F_D #KN\n",
+ "\n",
+ "#S.F at Pt C\n",
+ "V_C1=V_D2 #KN\n",
+ "V_C2=V_C1-F_C \n",
+ "\n",
+ "#S.F at PT A\n",
+ "V_A1=V_C2 #KN\n",
+ "V_A2=V_C2+R_A #KN\n",
+ "\n",
+ "#Bending Moment Calculations\n",
+ "\n",
+ "#B.M At Pt B\n",
+ "M_B=0 #KN.m\n",
+ "\n",
+ "#B.M At Pt D\n",
+ "M_D=-R_B*L_DB+w1*L_DB*L_DB*2**-1 #KN.m\n",
+ "\n",
+ "#B.M At PT C\n",
+ "M_C=-R_B*(L_DB+L_CD)+w1*L_DB*(L_DB*2**-1+L_CD)+F_D*L_CD #KN.m\n",
+ "\n",
+ "#B.M At Pt A\n",
+ "M_A=-R_B*L+w1*L_DB*(L_DB*2**-1+L_CD+L_AC)+F_D*(L_CD+L_AC)+F_C*L_AC\n",
+ "\n",
+ "#Result\n",
+ "print \"The Shear Force and Bending Moment Diagrams are the results\"\n",
+ "\n",
+ "#Plotting the Shear Force Diagram\n",
+ "\n",
+ "X1=[0,0,L_DB,L_DB,L_CD+L_DB,L_CD+L_DB,L_CD+L_DB+L_AC,L_CD+L_DB+L_AC]\n",
+ "Y1=[V_B1,V_B2,V_D1,V_D2,V_C1,V_C2,V_A1,V_A2]\n",
+ "Z1=[0,0,0,0,0,0,0,0]\n",
+ "plt.plot(X1,Y1,X1,Z1)\n",
+ "plt.xlabel(\"Length x in m\")\n",
+ "plt.ylabel(\"Shear Force in kN\")\n",
+ "plt.show()\n",
+ "\n",
+ "#Plotting the Bendimg Moment Diagram\n",
+ "\n",
+ "Y2=[M_B,M_D,M_C,M_A]\n",
+ "X2=[0,L_DB,L_DB+L_CD,L_AC+L_CD+L_DB]\n",
+ "Z2=[0,0,0,0]\n",
+ "plt.plot(X2,Y2,X2,Z2)\n",
+ "plt.xlabel(\"Length in m\")\n",
+ "plt.ylabel(\"Bending Moment in kN.m\")\n",
+ "plt.show()"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "The Shear Force and Bending Moment Diagrams are the results\n"
+ ]
+ },
+ {
+ "metadata": {},
+ "output_type": "display_data",
+ "png": "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\nRQWwZQuwdSvw8MMtS0sPPwz8718lIpKByZaPtFotXn/9ddy4cQOvvvoqJk2a1O1w1dXVqK6uRkRE\nBOrq6hAVFYXPPvsM27dvx4ABA7B8+XKsXbsWV65cQXp6etvQLAWbwbkDkfXodikcPHgQq1evhrOz\nM1599VWDS0qmMHXqVCxevBiLFy/G0aNH4e3tjerqakRHR+P7779vG5qlYHM4dyCSX7dKYfjw4fj5\n55/x4osvYvTo0dIvvC0yMtJkQXU6HcaOHYtz587hgQcewJUrVwAAQgh4enpKj6XQLAWbxrkDkTw6\n893paOgHLi4ucHFxQUZGBjIyMtr9/MiRI91PCKCurg4zZszApk2b4Obm1uZnCoWiTRG1tnLlSul+\ndHQ0oqOjTZKHzO/28Q635w6jRnHuQGQOWq0WWq22S+8xOlNobm6Gg0PbY9xu3ryJe+65p8sB73Tr\n1i089thjmDRpEp577jkAQHBwMLRaLXx8fFBVVYWYmBguH/VwnDsQWYZJTnMxf/78No/r6uowefLk\n7iVDy9LQs88+C7VaLRUCAMTHx2Pnzp0AgJ07d2Lq1Knd/iyybi4uwKJFwPffAytWAO+9B/z+98C6\ndcAdK4dEZGZGS8HX1xcpKSkAgCtXrmDixIl4+umnu/3BX375JT788EMcOXIEGo0GGo0GBw8eRGpq\nKrKzsxEUFIScnBykpqZ2+7PINvA8S0Ty69QuqS+99BKuXr2Kr7/+GqmpqUhISLBENoO4fGQ/eLwD\nkel0a++j28Pl279k1apVGD58OB599FEoFApMnz7d9Ik7iaVgfzh3IOq+bpXCM88802bPHyFEm8fb\nt283UcyuYynYLx7vQHT3eEI86tF4vANR1/AiO9Sj8foORKbHLQXqMTh3IOoYl4/ILnHuQKSfSUrh\n5s2byMjIgE6nQ2Njo/SLV6xYYbqkXcRSoM5qPXd46qmWuUNgoNypiORhkpnC448/jqysLDg5OcHV\n1RWurq5wcXExWUgic2o9d3BzA0aP5tyBqCNGtxTCwsJw7tw5S+XpFG4p0N1qPXdwd2+ZO8ycybkD\n2QeTbCk8+OCDKCgoMFkoIjm1Ps/Sa68Bf/87z7NE1JrRLYWQkBBcuHAB/v7+6N27d8ubFApZi4Jb\nCmRKnDuQvTDJoFmn0+l9XqVS3W2ubmMpkDlUVracZ+m993ieJeqZulUKV69ehbu7O2pqavS+0dPT\n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\n",
+ "text": [
+ "<matplotlib.figure.Figure at 0x5cab090>"
+ ]
+ },
+ {
+ "metadata": {},
+ "output_type": "display_data",
+ "png": "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\nsrBgEBGRLP8PAOBgfwTG6goAAAAASUVORK5CYII=\n",
+ "text": [
+ "<matplotlib.figure.Figure at 0x5c19930>"
+ ]
+ }
+ ],
+ "prompt_number": 22
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 3.3.3,Page No.102"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "import numpy as np\n",
+ "%matplotlib inline\n",
+ "\n",
+ "#Initilization of Variables\n",
+ "\n",
+ "L_DB=L_CD=1.5 #m #Length of DB & CD\n",
+ "L_AC=3 #m #Length of AC\n",
+ "F_D=80 #KN #Force at Pt D\n",
+ "w=40 #KN/m #u.v.l\n",
+ "L=6 #Length of beam\n",
+ "\n",
+ "#Calculations\n",
+ "\n",
+ "#Let R_A and R_B be the Reactions at Pt A & B respectively\n",
+ "#R_A+R_B=140 \n",
+ "#Taking moment at B we get,M_B\n",
+ "R_A=(1*2**-1*L_AC*w*(1*3**-1*L_AC+(L_CD+L_DB))+F_D*L_DB)*L**-1\n",
+ "R_B=140-R_A\n",
+ "\n",
+ "#Shear Force Calculations\n",
+ "\n",
+ "#S.F at B\n",
+ "V_B1=0 #KN\n",
+ "V_B2=R_B #KN\n",
+ "\n",
+ "#S.F At D\n",
+ "V_D1=V_B2 #KN\n",
+ "V_D2=V_D1-F_D #KN\n",
+ "\n",
+ "#S.F at C\n",
+ "V_C=V_D2 #KN\n",
+ "\n",
+ "#S.F At A\n",
+ "V_A1=V_C-1*2**-1*w*L_AC #KN\n",
+ "V_A2=V_A1+R_A #KN\n",
+ "\n",
+ "#Bending Moment Calculations\n",
+ "\n",
+ "#B.M At B\n",
+ "M_B=0 #KN.m\n",
+ "\n",
+ "#B.M At D\n",
+ "M_D=-R_B*L_DB\n",
+ "\n",
+ "#B.M At C\n",
+ "M_C=F_D*L_CD-R_B*(L_DB+L_CD)\n",
+ "\n",
+ "#B.M At A\n",
+ "M_A=F_D*(L_CD+L_AC)-R_B*L+1*2**-1*w*L_AC*(1*3**-1*L_AC)+R_A\n",
+ "\n",
+ "#Result\n",
+ "print \"The Shear Force and Bending Moment Diagrams are the results\"\n",
+ "\n",
+ "#Plotting the Shear Force Diagram\n",
+ "\n",
+ "X1=[0,0,L_DB,L_DB,L_DB+L_CD,L_DB+L_CD+L_AC,L_DB+L_CD+L_AC]\n",
+ "Y1=[V_B1,V_B2,V_D1,V_D2,V_C,V_A1,V_A2]\n",
+ "Z1=[0,0,0,0,0,0,0]\n",
+ "plt.plot(X1,Y1,X1,Z1)\n",
+ "plt.xlabel(\"Length x in m\")\n",
+ "plt.ylabel(\"Shear Force in kN\")\n",
+ "plt.show()\n",
+ "\n",
+ "#Plotting the Bendimg Moment Diagram\n",
+ "\n",
+ "X2=[0,L_DB,L_CD+L_DB,L_AC+L_CD+L_DB]\n",
+ "Y2=[M_B,M_D,M_C,M_A]\n",
+ "Z2=[0,0,0,0]\n",
+ "plt.plot(X2,Y2,X2,Z2)\n",
+ "plt.xlabel(\"Length in m\")\n",
+ "plt.ylabel(\"Bending Moment in kN.m\")\n",
+ "plt.show()"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "The Shear Force and Bending Moment Diagrams are the results\n"
+ ]
+ },
+ {
+ "metadata": {},
+ "output_type": "display_data",
+ "png": "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\nRK5CYII=\n",
+ "text": [
+ "<matplotlib.figure.Figure at 0x5cbcdf0>"
+ ]
+ },
+ {
+ "metadata": {},
+ "output_type": "display_data",
+ "png": "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\ngg==\n",
+ "text": [
+ "<matplotlib.figure.Figure at 0x5d72230>"
+ ]
+ }
+ ],
+ "prompt_number": 21
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 3.3.4,Page No.104"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "import numpy as np\n",
+ "%matplotlib inline\n",
+ "\n",
+ "#Initilization of Variables\n",
+ "\n",
+ "M_D=120 #KN.m #B.M at Pt D\n",
+ "F_C=40 #KN #Force at Pt C\n",
+ "w1=20 #KN.m\n",
+ "L_DB=1.5 #m #Length of DB\n",
+ "L_CD=1.5 #m #Length of CD\n",
+ "L_AC=3 #m #Length of AC\n",
+ "L=6 #m #Length of Beam\n",
+ "\n",
+ "#Calculations\n",
+ "\n",
+ "#Let R_A And R_B be the Reactions at pt A and B \n",
+ "#R_A+R_B=100\n",
+ "#Now Taking Moment At Pt B We get,M_B\n",
+ "R_A=-(M_D-F_C*(L_CD+L_DB)-w1*L_AC*(L_AC*2**-1+L_CD+L_DB))*L**-1\n",
+ "R_B=100-R_A\n",
+ "\n",
+ "#Shear Force Calculations\n",
+ "\n",
+ "#S.F At Pt B\n",
+ "V_B1=0\n",
+ "V_B2=R_B\n",
+ "\n",
+ "#S.F at Pt D\n",
+ "V_D=V_B2 #KN\n",
+ "\n",
+ "#S.F At Pt C\n",
+ "V_C1=V_D #KN\n",
+ "V_C2=V_C1-F_C\n",
+ "\n",
+ "#S.F At Pt A\n",
+ "V_A1=V_C2-w1*L_AC #KN\n",
+ "V_A2=V_A1+R_A\n",
+ "\n",
+ "#Bending Moment Calculations\n",
+ "\n",
+ "#B.M At Pt B\n",
+ "M_B=0 #KN.m\n",
+ "\n",
+ "#B.M At Pt D\n",
+ "M_D1=M_B-R_B*L_DB #KN.m\n",
+ "M_D2=M_B+M_D-R_B*L_DB\n",
+ "\n",
+ "#B.M At Pt C\n",
+ "M_C=M_D-R_B*(L_CD+L_DB)\n",
+ "\n",
+ "#B.M At Pt A\n",
+ "M_A=M_D-R_B*L+F_C*L_AC+w1*L_AC*L_AC*2**-1\n",
+ "\n",
+ "#Result\n",
+ "print \"The Shear Force and Bending Moment Diagrams are the results\"\n",
+ "\n",
+ "#Plotting the Shear Force Diagram\n",
+ "\n",
+ "X1=[0,0,L_DB,L_DB+L_CD,L_DB+L_CD,L_DB+L_CD+L_AC,L_DB+L_CD+L_AC]\n",
+ "Y1=[V_B1,V_B2,V_D,V_C1,V_C2,V_A1,V_A2]\n",
+ "Z1=[0,0,0,0,0,0,0]\n",
+ "plt.plot(X1,Y1,X1,Z1)\n",
+ "plt.xlabel(\"Length x in m\")\n",
+ "plt.ylabel(\"Shear Force in kN\")\n",
+ "plt.show()\n",
+ "\n",
+ "#Plotting the Bendimg Moment Diagram\n",
+ "\n",
+ "Y2=[M_B,M_D1,M_D2,M_C,M_A]\n",
+ "X2=[0,L_DB,L_DB,L_CD+L_DB,L_AC+L_CD+L_DB]\n",
+ "Z2=[0,0,0,0,0]\n",
+ "plt.plot(X2,Y2,X2,Z2)\n",
+ "plt.xlabel(\"Length in m\")\n",
+ "plt.ylabel(\"Bending Moment in kN.m\")\n",
+ "plt.show()"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "The Shear Force and Bending Moment Diagrams are the results\n"
+ ]
+ },
+ {
+ "metadata": {},
+ "output_type": "display_data",
+ "png": "iVBORw0KGgoAAAANSUhEUgAAAYUAAAEPCAYAAACtCNj2AAAABHNCSVQICAgIfAhkiAAAAAlwSFlz\nAAALEgAACxIB0t1+/AAAHfFJREFUeJzt3X1UlHX+//HXIGiJmpUIHfEsHLyBwRK8SavjCireBlkS\nha66Grm/3CzrW0rndFr3ayat2cm12nO2Y2o3u1myG+S2rrqEt3lTWH5dtsCElvtciQxvFoHr9wfr\nVQg4IDNzMTPPxzlznLnmurjeo57rxfv6fK5rbIZhGAIAQJKf1QUAALoOQgEAYCIUAAAmQgEAYCIU\nAAAmQgEAYLI0FGpqapScnKyoqCjZ7XYdOnRI1dXVSkhI0JAhQzR58mTV1NRYWSIA+BRLQ+HRRx/V\n9OnT9c9//lPHjh1TZGSkMjIylJCQoIKCAk2cOFEZGRlWlggAPsVm1cVr3333nWJjY3Xy5MlmyyMj\nI7V7924FBwersrJScXFx+uKLL6woEQB8jmWdQlFRkYKCgrRgwQKNGDFCDz74oM6ePauqqioFBwdL\nkoKDg1VVVWVViQDgcywLhfr6euXl5Wnx4sXKy8tTYGBgi1NFNptNNpvNogoBwAcZFqmoqDDCwsLM\n13v37jWmT59uREZGGhUVFYZhGEZ5ebkxdOjQFttGREQYknjw4MGDRwceERERDo/NlnUKISEhGjhw\noAoKCiRJu3btUnR0tBITE7V582ZJ0ubNmzVz5swW23711VcyDMNrH7/61a8sr4HPx+fzxc/nzZ/N\nMAx99dVXDo/N/s491HfM+vXrNWfOHNXV1SkiIkIbN25UQ0ODUlJStGHDBoWFhendd9+1skQA8CmW\nhsLw4cN15MiRFst37dplQTUAAK5o7oLi4uKsLsGl+HyezZs/nzd/tvay7DqFzrDZbPLAsgHAUu05\ndtIpAABMhAIAwGTpQHNnLFpkdQVA6/7nf6ShQ62uArg6HhsKo0ZZXQHQ0uuvS4cOEQrwXB4bCnQK\n6Ir27bO6AqBzGFMAAJgIBQCAiVAAAJgIBQCAiVAAAJgIBQCAiVAAAJgIBQCAiVAAAJgIBQCAiVAA\nAJgIBQCAiVAAAJgIBQCAiVAAAJgIBQCAiVAAAJgIBQCAiVAAAJgIBQCAiVAAAJgsD4WGhgbFxsYq\nMTFRklRdXa2EhAQNGTJEkydPVk1NjcUVAoDvsDwU1q1bJ7vdLpvNJknKyMhQQkKCCgoKNHHiRGVk\nZFhcIQD4DktDobS0VB9++KHS0tJkGIYkKTs7W/Pnz5ckzZ8/X++//76VJQKAT7E0FB577DGtWbNG\nfn4/lFFVVaXg4GBJUnBwsKqqqqwqDwB8jmWhsG3bNvXv31+xsbFml3A5m81mnlYCALiev1U7PnDg\ngLKzs/Xhhx/qwoULOnPmjObOnavg4GBVVlYqJCREFRUV6t+/f6vbr1ixwnweFxenuLg49xQOAB4i\nNzdXubm5HdrGZrT1a7ob7d69Wy+88II++OADLVu2TDfeeKOWL1+ujIwM1dTUtBhsttlsbXYXgJXm\nzZMmTWr6E+hq2nPstHz20SWXThOlp6dr586dGjJkiHJycpSenm5xZQDgO7pEp9BRdAroqugU0JV5\nVKcAALAeoQAAMBEKAAAToQAAMBEKAAAToQAAMBEKAAAToQAAMBEKAAAToQAAMBEKAAAToQAAMBEK\nAAAToQAAMBEKAAAToQAAMBEKAAAToQAAMBEKAAAToQAAMBEKAAAToQAAMBEKAAAToQAAMBEKAAAT\noQAAMBEKAAAToQAAMPm39UZ8fHyry202myQpJyfHNRUBACzTZiisWbPGfH4pCA4ePKjnn39e/fv3\n7/SOS0pKNG/ePH3zzTey2WxatGiRHnnkEVVXV+u+++7T119/rbCwML377rvq27dvp/cHAHDMZhiG\n4Wil3NxcPfvsszp//ryefvppTZs2rdM7rqysVGVlpWJiYlRbW6uRI0fq/fff18aNG9WvXz8tW7ZM\nzz//vL799ltlZGQ0L9pmUzvKBtxu3jxp0qSmP4Gupj3HzjY7BUnavn27Vq1ape7du+vpp59u85TS\n1QgJCVFISIgkqVevXoqKilJZWZmys7O1e/duSdL8+fMVFxfXIhQAAK7RZiiMHj1ap06d0hNPPKHb\nbrtNkpSXl2e+P2LECKcVUVxcrKNHj2rMmDGqqqpScHCwJCk4OFhVVVVO2w8A4MraDIXAwEAFBgYq\nMzNTmZmZLd7/6KOPnFJAbW2tZs2apXXr1ql3797N3rPZbOZ4xuVWrFhhPo+Li1NcXJxT6gEAb5Gb\nm6vc3NwObeNwTKGxsVF+fs1nrl64cEHXXHNNhwu83MWLF3XnnXdq2rRpWrp0qSQpMjJSubm5CgkJ\nUUVFheLj4/XFF180L5oxBXRRjCmgK2vPsdPhdQppaWnNXtfW1mr69Omdq0ySYRh64IEHZLfbzUCQ\npKSkJG3evFmStHnzZs2cObPT+wIAtI/DUBgwYIAWL14sSfr22281efJkzZ07t9M73r9/v9566y19\n9NFHio2NVWxsrLZv36709HTt3LlTQ4YMUU5OjtLT0zu9LwBA+7RrSuqTTz6pM2fO6NNPP1V6erqS\nk5PdUVubOH2ErorTR+jKOjUl9dLgss1m09ixY7Vy5UqNHj1aNptNf/rTn3TPPfc4t1oAgOXaDIUP\nPvig2cyfmJgY1dfXa9u2bZJEKACAF2ozFDZt2uTGMgAAXQF3SQUAmAgFwImio6VVq6QDB6yuBLg6\n7Zp91NUw+whdWWam9PDD0pw50sqV0rXXWl0R0KQ9x06HoXDhwgVlZmaquLhY9fX15g9+5plnnFdp\nBxEK6Or+/e+mYDh6VNq4Ubr9dqsrApxwl1RJuuuuu9S3b1+NHDnSKbe2AHxBv37SO+80dQ2zZtE1\nwHM47BSGDRum48ePu6uedqFTgCeha0BX4ZR7H91+++06duyY04oCfM2lruG555q6hieekM6ft7oq\noHUOO4WoqCidOHFC4eHh6tGjR9NGNpulQUGnAE9F1wArOWWgubi4uNXlYWFhV1tXpxEK8HTMUIIV\nOnX66MyZM5KkPn36tPoAcPVmzZL+7/+k0lIpJobrGtB1tNkpzJgxQ3/5y18UFhbW4tvPbDabTp48\n6ZYCW0OnAG9C1wB3ccrpo66IUIC3YawB7kAoAB6GrgGu5JQpqQDch7EGWI1OAeii6BrgbE7rFPbu\n3auNGzdKkk6dOqWioqLOVwfgiugaYAWHncKKFSv06aef6ssvv1RBQYHKysqUkpKi/fv3u6vGFugU\n4GvoGuAMTukU/vznPysrK0uBgYGSpAEDBuj77793ToUA2oWuAe7iMBR69OghP78fVjt79qxLCwLQ\nOu6hBHdwGAr33nuvfvGLX6impka///3vNXHiRKWlpbmjNgCtoGuAK7Vr9tGOHTu0Y8cOSdKUKVOU\nkJDg8sKuhDEFoAljDegIp1y8VlRUpJCQEF373/9t58+fV1VVFTfEA7oIroZGezlloDk5OVndunX7\nYQM/PyUnJ3e+OgBOwVgDnMlhKDQ0NKh79+7m6x49eujixYsuLQpAxzHWAGdwGAr9+vVTVlaW+Tor\nK0v9+vVzaVEArg5dAzrL4ZjCiRMnNGfOHJWXl0uSQkND9eabb2rQoEEuK2r79u1aunSpGhoalJaW\npuXLlzcvmjEFwCHGGnC5Tg80NzQ0aPny5XrhhRfMC9Z69+7t3Cpb2efQoUO1a9cuDRgwQKNHj9Yf\n//hHRUVF/VA0oQC0GzOUcEmnB5q7deumffv2yTAM9e7d2+WBIEmHDx/WoEGDFBYWpoCAAN1///3N\nTl8B6BjGGtAR/o5WiImJ0V133aV7771XPXv2lNSUNvfcc49LCiorK9PAgQPN16GhoTp06JBL9gX4\niktjDZmZTSFB1+B7Tp9u33oOQ+HChQu64YYblJOT02y5q0Lh8q/+bHO9uB+tFyYp3CXlAN7n/0lr\nJa39jdWFwOWKJBV3bBOHobBp06arquVqDRgwQCUlJebrkpIShYaGtljPyGVMAegMxhp8y7590rhx\njn/pdjgltaSkRHfffbeCgoIUFBSkWbNmqbS01ClFtmbUqFEqLCxUcXGx6urqtGXLFiUlJblsf4Cv\nYqwBrXEYCgsWLFBSUpLKy8tVXl6uxMRELViwwGUF+fv76+WXX9aUKVNkt9t13333NZt5BMB5uK4B\nl3N4ncLw4cP1+eefO1zmTkxJBZyP6xq826XTR52+99GNN96oN998Uw0NDaqvr9dbb73FFc2AF6Jr\ngNSOUHj99df17rvvKiQkRDfddJPee+898/uaAXgfxhp8W5unjw4ePKixY8e6u5524fQR4B7MUPIe\nnT599NBDD5nPb7vtNudVBsBj0DX4Hoenj6SmC9gA+CbGGnxLm6HQ0NCg6upqnT592nz+4wcA30LX\n4BvaHFMICwszbzlhGEaz20/YbDadPHnSPRW2gjEFwFqMNXie9o4pOLxOoSsiFADrcV2DZ3HadQoA\n0BrGGrwToQCgUxhr8C6EAoBOo2vwHlcMhfr6eg0dOtRdtQDwcHQNnu+KoeDv76/IyEh9/fXX7qoH\ngIeja/BsDr9kp7q6WtHR0br11lsVGBgoqWn2T3Z2tsuLA+C5Zs2Sxo9vmqEUE8MMJU/hMBRWrlzp\njjoAeCG+G9rzcJ0CALfgugZrOe06hY8//lijR49Wr169FBAQID8/P/Xp08dphQLwDYw1eAaHofDw\nww/rD3/4gwYPHqwLFy5ow4YNWrx4sTtqA+CFmKHUtbXrOoXBgweroaFB3bp104IFC7R9+3ZX1wXA\ni9E1dF0OQyEwMFD/+c9/NHz4cC1btkwvvvgi5/MBOAVdQ9fjMBTeeOMNNTY26uWXX1bPnj1VWlqq\nzMxMd9QGwAfQNXQt7Zp9dO7cOZWUlHSZq5uZfQR4J2YouY7TZh9lZ2crNjZWU6ZMkSQdPXpUSUlJ\nzqkSAH6ErsF6DkNhxYoVOnTokK6//npJUmxsrKVfsAPA+zHWYB2HoRAQEKC+ffs238iPm6sCcK1L\nXcOqVXQN7uTw6B4dHa23335b9fX1Kiws1JIlS3Q7J/oAuElysnTsmFRSQtfgDg5DYf369frHP/6h\nHj16KDU1VX369NFLL73kjtoAQJIUFCRt2ULX4A7c+wiARzl1qmmG0mefMUOpI5w2++jLL7/Ugw8+\nqISEBMXHxys+Pl4TJkzoVHFPPvmkoqKiNHz4cN1zzz367rvvzPdWr16twYMHKzIyUjt27OjUfgB4\nH7oG13LYKdxyyy166KGHNGLECHXr1q1pI5tNI0eOvOqd7ty5UxMnTpSfn5/S09MlSRkZGcrPz9fs\n2bN15MgRlZWVadKkSSooKGgxsE2nAECia+iI9nYKDr9PISAgQA899JDTCpOkhIQE8/mYMWPMK6Sz\nsrKUmpqqgIAAhYWFadCgQTp8+LDGjh3r1P0D8A6XuoatW/m+Bmdp8/RRdXW1Tp8+rcTERL3yyiuq\nqKhQdXW1+XCW119/XdOnT5cklZeXKzQ01HwvNDRUZWVlTtsXAO/EDCXnabNTGDFihGw2m/n6hRde\nMJ/bbDaHF7AlJCSosrKyxfLnnntOiYmJkqRVq1ape/fumj17dps/58c1/NiKFSvM53FxcYqLi7ti\nPQC8G11DS7m5ucrNzZUk/etf7dvGstlHmzZt0muvvaa///3vuuaaayQ1jStIMscZpk6dql//+tca\nM2ZMs20ZUwBwJYw1tNTp2UdHjhxRRUWF+Xrz5s1KSkrSI4880unTR9u3b9eaNWuUlZVlBoIkJSUl\n6Z133lFdXZ2KiopUWFioW2+9tVP7AuB7mKF09doMhUWLFqlHjx6SpD179ig9PV3z589Xnz59tGjR\nok7tdMmSJaqtrVVCQoJiY2PNb3Kz2+1KSUmR3W7XtGnT9Oqrr7Z5+ggAHGGsoePaPH00fPhwff75\n55KkX/7ylwoKCjLP4//4PStw+ghAR23dKi1Z4rtjDZ0+fdTQ0KCLFy9Kknbt2qX4+Hjzvfr6eieV\nCQDuQdfQPm3OPkpNTdX48ePVr18/9ezZU+PGjZMkFRYWtrhrKgB4AmYoOXbF2Ucff/yxKisrNXny\nZAUGBkqSCgoKVFtbqxEjRrityMtx+ghAZ/naDKX2nj7ihngAfJqvjDU47YZ4AODNGGtojlAA4PO4\nruEHhAIA/BddA6EAAM34etdAKABAK3y1ayAUAKANvtg1EAoA4IAvdQ2EAgC0g690DYQCAHSAt3cN\nhAIAdJA3dw2EAgBcJW/sGggFAOgEb+saCAUAcAJv6RoIBQBwEm/oGggFAHAyT+4aCAUAcAFP7RoI\nBQBwIU/rGggFAHAxT+oaCAUAcBNP6BoIBQBwo67eNRAKAGCBrto1EAoAYJGu2DUQCgBgsa7UNRAK\nANAFdJWuwdJQWLt2rfz8/FRdXW0uW716tQYPHqzIyEjt2LHDwuoAwP2s7hr83bu7H5SUlGjnzp36\nyU9+Yi7Lz8/Xli1blJ+fr7KyMk2aNEkFBQXy86OhAeA7LnUNW7c2dQ1z5kgrV0rXXuv6fVt2tH38\n8cf1m9/8ptmyrKwspaamKiAgQGFhYRo0aJAOHz5sUYUAYC0rugZLQiErK0uhoaG65ZZbmi0vLy9X\naGio+To0NFRlZWXuLg8Augx3jzW47PRRQkKCKisrWyxftWqVVq9e3Wy8wDCMNn+OzWZzSX0A4EmS\nk6Xx46WHH27qGjZulG6/3fn7cVko7Ny5s9Xlx48fV1FRkYYPHy5JKi0t1ciRI3Xo0CENGDBAJSUl\n5rqlpaUaMGBAqz9nxYoV5vO4uDjFxcU5rXYA6Io6OtaQm5ur3NxcSdK//tW+fdiMK/2a7gbh4eH6\n9NNPdcMNNyg/P1+zZ8/W4cOHzYHmEydOtOgWbDbbFbsLAPB2p041dQ2ffda+rmHfPmncOMfHTstm\nH13y4wO+3W5XSkqK7Ha7/P399eqrr3L6CABa4aoZSpZ3CleDTgEAftCerqG9nQIXAACAh3PmDCVC\nAQC8hDOuayAUAMCLdLZrIBQAwAtdbdfAQDMAeLmtW6XFi6VTpxwfOwkFAPABp05J/fsTCgCA/2rP\nsZMxBQCAiVAAAJgIBQCAiVAAAJgIBQCAiVAAAJgIBQCAiVAAAJgIBQCAiVAAAJgIBQCAiVAAAJgI\nBQCAiVAAAJgIBQCAiVAAAJgIBQCAiVAAAJgIBQCAiVAAAJgIBQCAybJQWL9+vaKiojRs2DAtX77c\nXL569WoNHjxYkZGR2rFjh1XlAYBPsiQUPvroI2VnZ+vYsWM6fvy4nnjiCUlSfn6+tmzZovz8fG3f\nvl2LFy9WY2OjFSVaKjc31+oSXIrP59m8+fN582drL0tC4Xe/+52eeuopBQQESJKCgoIkSVlZWUpN\nTVVAQIDCwsI0aNAgHT582IoSLeXt/zH5fJ7Nmz+fN3+29rIkFAoLC7Vnzx6NHTtWcXFx+uSTTyRJ\n5eXlCg0NNdcLDQ1VWVmZFSUCgE/yd9UPTkhIUGVlZYvlq1atUn19vb799lsdPHhQR44cUUpKik6e\nPNnqz7HZbK4qEQBwOcMCU6dONXJzc83XERERxqlTp4zVq1cbq1evNpdPmTLFOHjwYIvtIyIiDEk8\nePDgwaMDj4iICIfHZ5d1Clcyc+ZM5eTkaPz48SooKFBdXZ369eunpKQkzZ49W48//rjKyspUWFio\nW2+9tcX2J06csKBqAPB+loTCwoULtXDhQt18883q3r273njjDUmS3W5XSkqK7Ha7/P399eqrr3L6\nCADcyGYYhmF1EQCArsHjrmjevn27IiMjNXjwYD3//PNWl+NUCxcuVHBwsG6++WarS3GJkpISxcfH\nKzo6WsOGDdNvf/tbq0tymgsXLmjMmDGKiYmR3W7XU089ZXVJLtHQ0KDY2FglJiZaXYrThYWF6ZZb\nblFsbGyrp609XU1NjZKTkxUVFSW73a6DBw+2vqIzBo7dpb6+3oiIiDCKioqMuro6Y/jw4UZ+fr7V\nZTnNnj17jLy8PGPYsGFWl+ISFRUVxtGjRw3DMIzvv//eGDJkiFf9+509e9YwDMO4ePGiMWbMGGPv\n3r0WV+R8a9euNWbPnm0kJiZaXYrThYWFGadPn7a6DJeZN2+esWHDBsMwmv6P1tTUtLqeR3UKhw8f\n1qBBgxQWFqaAgADdf//9ysrKsrospxk3bpyuv/56q8twmZCQEMXExEiSevXqpaioKJWXl1tclfP0\n7NlTklRXV6eGhgbdcMMNFlfkXKWlpfrwww+VlpYmw0vPOnvr5/ruu++0d+9eLVy4UJLk7++v6667\nrtV1PSoUysrKNHDgQPM1F7d5ruLiYh09elRjxoyxuhSnaWxsVExMjIKDgxUfHy+73W51SU712GOP\nac2aNfLz86jDRrvZbDZNmjRJo0aN0muvvWZ1OU5VVFSkoKAgLViwQCNGjNCDDz6oc+fOtbquR/3r\nMhPJO9TW1io5OVnr1q1Tr169rC7Hafz8/PTZZ5+ptLRUe/bs8apbJmzbtk39+/dXbGys1/42vX//\nfh09elR//etf9corr2jv3r1Wl+Q09fX1ysvL0+LFi5WXl6fAwEBlZGS0uq5HhcKAAQNUUlJivi4p\nKWl2Wwx0fRcvXtSsWbP0s5/9TDNnzrS6HJe47rrrNGPGDPP2Ld7gwIEDys7OVnh4uFJTU5WTk6N5\n8+ZZXZZT3XTTTZKa7sV29913e9V910JDQxUaGqrRo0dLkpKTk5WXl9fquh4VCqNGjVJhYaGKi4tV\nV1enLVu2KCkpyeqy0E6GYeiBBx6Q3W7X0qVLrS7Hqf7973+rpqZGknT+/Hnt3LlTsbGxFlflPM89\n95xKSkpUVFSkd955RxMmTDCvL/IG586d0/fffy9JOnv2rHbs2OFVswBDQkI0cOBAFRQUSJJ27dql\n6OjoVte15OK1q+Xv76+XX35ZU6ZMUUNDgx544AFFRUVZXZbTpKamavfu3Tp9+rQGDhyo//3f/9WC\nBQusLstp9u/fr7feesuc9ic1fX/G1KlTLa6s8yoqKjR//nw1NjaqsbFRc+fO1cSJE60uy2W87VRu\nVVWV7r77bklNp1rmzJmjyZMnW1yVc61fv15z5sxRXV2dIiIitHHjxlbX4+I1AIDJo04fAQBci1AA\nAJgIBQCAiVAAAJgIBQCAiVAAAJgIBXgVV98246WXXtL58+edvr8PPvjA624FD8/EdQrwKr179zav\nTHWF8PBwffLJJ7rxxhvdsj/A3egU4PW++uorTZs2TaNGjdJPf/pTffnll5Kkn//853r00Ud1xx13\nKCIiQpmZmZKa7na6ePFiRUVFafLkyZoxY4YyMzO1fv16lZeXKz4+vtnVyk8//bRiYmJ022236Ztv\nvmmx/6VLl2rlypWSpL/97W8aP358i3U2bdqkJUuWXLGuHysuLlZkZKQWLFigoUOHas6cOdqxY4fu\nuOMODRkyREeOHOn8Xxx8kzu+3AFwl169erVYNmHCBKOwsNAwDMM4ePCgMWHCBMMwDGP+/PlGSkqK\nYRiGkZ+fbwwaNMgwDMN47733jOnTpxuGYRiVlZXG9ddfb2RmZhqG0fKLWGw2m7Ft2zbDMAxj2bJl\nxrPPPtti/+fOnTOio6ONnJwcY+jQocbJkydbrLNp0ybj4YcfvmJdP1ZUVGT4+/sbx48fNxobG42R\nI0caCxcuNAzDMLKysoyZM2c6/LsCWuNR9z4COqq2tlYff/yx7r33XnNZXV2dpKb791y6U2tUVJSq\nqqokSfv27VNKSookmd+N0Jbu3btrxowZkqSRI0dq586dLda59tpr9dprr2ncuHFat26dwsPDr1hz\nW3VdLjw83LypWXR0tCZNmiRJGjZsmIqLi6+4D6AthAK8WmNjo/r27aujR4+2+n737t3N58Z/h9ds\nNluz7wwwrjDsFhAQYD738/NTfX19q+sdO3ZMQUFB7f5SqNbqulyPHj2a7fvSNleqA3CEMQV4tT59\n+ig8PFxbt26V1HSAPXbs2BW3ueOOO5SZmSnDMFRVVaXdu3eb7/Xu3VtnzpzpUA1ff/21XnzxRfML\nXFq7T/+VggdwJ0IBXuXcuXMaOHCg+XjppZf09ttva8OGDYqJidGwYcOUnZ1trv/jW0Bfej5r1iyF\nhobKbrdr7ty5GjFihPl9tosWLdLUqVPNgebLt7/8ltKGYSgtLU1r165VSEiINmzYoLS0NPMUVlvb\ntvX88m3aeu1tt7aG+zAlFWjF2bNnFRgYqNOnT2vMmDE6cOCA+vfvb3VZgMsxpgC04s4771RNTY3q\n6ur0zDPPEAjwGXQKAAATYwoAABOhAAAwEQoAABOhAAAwEQoAABOhAAAw/X/endCY0sA2EwAAAABJ\nRU5ErkJggg==\n",
+ "text": [
+ "<matplotlib.figure.Figure at 0x5d72210>"
+ ]
+ },
+ {
+ "metadata": {},
+ "output_type": "display_data",
+ "png": "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\n",
+ "text": [
+ "<matplotlib.figure.Figure at 0x5cc52f0>"
+ ]
+ }
+ ],
+ "prompt_number": 20
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 3.3.5,Page No.105"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "import numpy as np\n",
+ "%matplotlib inline\n",
+ "\n",
+ "#Initilization of Variables\n",
+ "\n",
+ "F_C=20 #KN #Force at Pt C\n",
+ "F_D=40 #KN #Force at pt D\n",
+ "w=20 #KN.m #u.d.l \n",
+ "L_AD=L_DB=2 #m #Length of AD & DB\n",
+ "L_BC=1 #m #Length of BC\n",
+ "L=5 #m #Length of Beam\n",
+ "\n",
+ "#Calculations\n",
+ "\n",
+ "#LEt R_A and R_B be the reactions at A & B respectively\n",
+ "#R_A+R_B=100 \n",
+ "#Now Taking Moment at B,M_B we get\n",
+ "R_A=-(F_C*L_BC-F_D*L_DB-w*L_AD*(L_AD*2**-1+L_DB))*(L_AD+L_DB)**-1\n",
+ "R_B=100-R_A\n",
+ "\n",
+ "#Shear Force Calculations\n",
+ "\n",
+ "#S.F At pt C\n",
+ "V_C1=0 #KN\n",
+ "V_C2=-F_C #KN\n",
+ "\n",
+ "#S.F At PT B\n",
+ "V_B1=V_C2 #KN\n",
+ "V_B2=V_C2+R_B #KN\n",
+ "\n",
+ "#S.F At Pt D\n",
+ "V_D1=V_B2 #KN\n",
+ "V_D2=V_D1-F_D #KN\n",
+ "\n",
+ "#S.F At Pt A\n",
+ "V_A1=V_D2-w*L_AD #KN\n",
+ "V_A2=V_A1+R_A #KN\n",
+ "\n",
+ "#Bending Moment Calculations\n",
+ "\n",
+ "#B.M At Pt C\n",
+ "M_C=0 \n",
+ "\n",
+ "#B.M At Pt B\n",
+ "M_B=F_C*L_BC\n",
+ "\n",
+ "#B.M At Pt D\n",
+ "M_D=F_C*(L_BC+L_DB)-R_B*L_DB\n",
+ "\n",
+ "#B.M At Pt A\n",
+ "M_A=F_C*L-R_B*(L_DB+L_AD)+F_D*L_AD+w*L_AD*L_AD*2**-1\n",
+ "\n",
+ "#Result\n",
+ "print \"The Shear Force and Bending Moment Diagrams are the results\"\n",
+ "\n",
+ "#Plotting the Shear Force Diagram\n",
+ "\n",
+ "X1=[0,0,L_BC,L_BC,L_BC+L_DB,L_BC+L_DB,L_BC+L_DB+L_AD,L_BC+L_DB+L_AD]\n",
+ "Y1=[V_C1,V_C2,V_B1,V_B2,V_D1,V_D2,V_A1,V_A2]\n",
+ "Z1=[0,0,0,0,0,0,0,0]\n",
+ "plt.plot(X1,Y1,X1,Z1)\n",
+ "plt.xlabel(\"Length x in m\")\n",
+ "plt.ylabel(\"Shear Force in kN\")\n",
+ "plt.show()\n",
+ "\n",
+ "#Plotting the Bendimg Moment Diagram\n",
+ "\n",
+ "Y2=[M_C,M_B,M_D,M_A]\n",
+ "X2=[0,L_BC,L_BC+L_DB,L_BC+L_DB+L_AD]\n",
+ "Z2=[0,0,0,0]\n",
+ "plt.plot(X2,Y2,X2,Z2)\n",
+ "plt.xlabel(\"Lenght in m\")\n",
+ "plt.ylabel(\"Bending Moment in kN.m\")\n",
+ "plt.show()"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "The Shear Force and Bending Moment Diagrams are the results\n"
+ ]
+ },
+ {
+ "metadata": {},
+ "output_type": "display_data",
+ "png": "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\niJj+H1U+eMmY8O6MAAAAAElFTkSuQmCC\n",
+ "text": [
+ "<matplotlib.figure.Figure at 0x5f26c10>"
+ ]
+ },
+ {
+ "metadata": {},
+ "output_type": "display_data",
+ "png": "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\n776bzMxMs8Myxc0338yVV15pdhiW0KZNG2JjYwEIDQ2la9euHDx40OSozNOsWTMAKisrqa6urvNN\nwJ8dOHCAtWvX8tBDD+kQTXDpd+BTSaG0tJR27do5v9fmNjlfSUkJhYWFJCQkmB2KaU6fPk1sbCyt\nW7emX79+REVFmR2SaZ588knmzp1LUJBPvdV5hM1mIzExkZ49e7Jw4cJaH+dTvymtRJKLqaio4K67\n7uKVV14hNDTU7HBMExQURFFREQcOHOCzzz4L2GMe1qxZQ6tWrYiLi9MoAcjPz6ewsJB169Yxf/58\nNm7cWOPjfCoptG3blv379zu/379//znHYkjg+uWXXxgxYgT33nsvw4YNMzscS2jRogW33347X331\nldmhmOKLL75g9erVdOjQgdTUVD799FPuv/9+s8MyzZm9Yddccw133nlnrefK+VRS6NmzJ7t27aKk\npITKykqWL19OcnKy2WGJyRwOB+PGjSMqKoqJEyeaHY6pjhw54jxL7OTJk6xfv564uDiTozLHrFmz\n2L9/P3v37mXZsmX84Q9/4O233zY7LFOcOHGC48ePA/Dzzz+Tk5NT68pFn0oKwcHBzJs3j4EDBxIV\nFcWoUaMCdoVJamoqN910Ezt37qRdu3ZkZGSYHZJp8vPzeeedd9iwYYOzR0d2drbZYZni0KFD/OEP\nfyA2NpaEhASGDh1K//79zQ7LEgJ5+vnw4cPcfPPNzr8XQ4YMYcCAATU+1qeWpIqIiGf51EhBREQ8\nS0lBRESclBRERMRJSUFERJyUFERExElJQUREnJQUxK95+riL8PBwfvzxxwvuz8vL48svv6zxOVlZ\nWQF97LtYmymd10S8xdMblmw2W43n6mzYsIHmzZvTu3fvC342dOjQgD/bX6xLIwUJOHv27GHQoEH0\n7NmTW265hR07dgAwduxYnnjiCfr06UNERAQrVqwAjFNHx48fT9euXRkwYAC3336782cAr732GvHx\n8XTv3p0dO3ZQUlLCG2+8wV//+lfi4uL4/PPPz7n+W2+9xWOPPXbRa56tpKSEyMhIHnjgAbp06cI9\n99xDTk4Offr0oXPnzmzZssVTvyoJQEoKEnD++Mc/8tprr/HVV18xd+5cxo8f7/xZWVkZ+fn5rFmz\nhilTpgDw4Ycf8t1337F9+3aWLl3Kl19+ec4I5JprrmHr1q08+uijvPjii4SHh/PII48wadIkCgsL\nL2hwc/7opaZrnm/Pnj1MnjyZb7/9lh07drB8+XLy8/N58cUXmTVrlrt+NSKaPpLAUlFRwZdffsnI\nkSOd91VWVgLGm/WZE1a7du3K4cOHAfj8889JSUkBcPYoONvw4cMB6NGjBx9++KHzfldOkKntmufr\n0KED3bp1A6Bbt24kJiYCEB0dTUlJSZ3XEXGVkoIElNOnT3PFFVdQWFhY48+bNm3q/PrMm/r5dYPz\n3+wvueQSAJo0aUJVVVW9Y6rpmuc7cw0w+iWceU5QUFCDrilSG00fSUC5/PLL6dChAx988AFgvAn/\n61//uuhz+vTpw4oVK3A4HBw+fJi8vLw6r9O8eXPnUcXn0xmUYmVKCuLXTpw4Qbt27Zy3//3f/+Xd\nd99l0aJFxMbGEh0dfU4z97Pn+898PWLECMLCwoiKiuK+++6jR48etGjR4oJr2Ww253OGDh3KypUr\niYuLIz8/v9bH1XbNml67tu8D+UhocT8dnS3igp9//pnLLruM//znPyQkJPDFF1/QqlUrs8MScTvV\nFERcMGTIEMrLy6msrGTatGlKCOK3NFIQEREn1RRERMRJSUFERJyUFERExElJQUREnJQURETESUlB\nRESc/j+iaB8fTwtkoQAAAABJRU5ErkJggg==\n",
+ "text": [
+ "<matplotlib.figure.Figure at 0x5d473b0>"
+ ]
+ }
+ ],
+ "prompt_number": 19
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 3.3.6,Page No.107"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "import numpy as np\n",
+ "%matplotlib inline\n",
+ "\n",
+ "#Initilization of Variables\n",
+ "\n",
+ "L_BC=L_EB=L_AD=1 #m #Length of spans BC,ED,AD\n",
+ "L_ED=2 #m #Length of ED\n",
+ "w=60 #KNm #u.d.l\n",
+ "F_C=20 #KN Pt Load at C\n",
+ "L=5 #m #Span of beam \n",
+ "\n",
+ "#Calculations\n",
+ "\n",
+ "#Let R_A & R_B be the reactions at A & B respectively\n",
+ "#R_A+R_B=80 \n",
+ "#Taking Moment At A,we get M_A\n",
+ "R_B=(F_C*L+1*2**-1*L_ED*w*(2*3**-1*L_ED+L_AD))*(L_AD+L_ED+L_EB)**-1\n",
+ "R_A=80-R_B\n",
+ "\n",
+ "#Shear Force Calculations\n",
+ "\n",
+ "#S.F At C\n",
+ "V_C1=0 #KN\n",
+ "V_C2=-F_C #KN\n",
+ "\n",
+ "#S.F At B\n",
+ "V_B1=V_C2 #KN\n",
+ "V_B2=V_C2+R_B #KN \n",
+ "\n",
+ "#S.F aT E\n",
+ "V_E=V_B2 #KN\n",
+ "\n",
+ "#S.F AT D\n",
+ "V_D=V_B2-1*2**-1*L_ED*w #KN\n",
+ "\n",
+ "#S.F At A\n",
+ "V_A1=V_D #KN \n",
+ "V_A2=V_D+R_A\n",
+ "\n",
+ "#Bending Moment Calculations\n",
+ "\n",
+ "#B.M at C\n",
+ "M_C=0 #KN.m\n",
+ "\n",
+ "#B.M at B\n",
+ "M_B=F_C*L_BC #KN.m\n",
+ "\n",
+ "#B.M at E\n",
+ "M_E=F_C*(L_EB+L_BC)-R_B*L_EB #KN.m\n",
+ "\n",
+ "#B.M at D\n",
+ "M_D=F_C*(L_ED+L_EB+L_BC)-R_B*(L_ED+L_EB)+1*2**-1*L_ED*w*1*3**-1*L_ED #KN.m\n",
+ "\n",
+ "#B.M at A\n",
+ "M_A=1*2**-1*L_ED*w*(2*3**-1*L_ED+L_AD)-R_B*(L_AD+L_ED+L_EB)+F_C*L\n",
+ "\n",
+ "#Result\n",
+ "print \"The Shear Force and Bending Moment Diagrams are the results\"\n",
+ "\n",
+ "#Plotting the Shear Force Diagram\n",
+ "\n",
+ "X1=[0,0,L_BC,L_BC,L_EB+L_BC,L_ED+L_EB+L_BC,L_AD+L_ED+L_EB+L_BC,L_ED+L_EB+L_BC+L_AD]\n",
+ "Y1=[V_C1,V_C2,V_B1,V_B2,V_E,V_D,V_A1,V_A2]\n",
+ "Z1=[0,0,0,0,0,0,0,0]\n",
+ "plt.plot(X1,Y1,X1,Z1)\n",
+ "plt.xlabel(\"Length x in m\")\n",
+ "plt.ylabel(\"Shear Force in kN\")\n",
+ "plt.show()\n",
+ "\n",
+ "#Plotting the Bendimg Moment Diagram\n",
+ "\n",
+ "X2=[0,L_BC,L_BC+L_EB,L_EB+L_BC+L_ED,L_EB+L_BC+L_ED+L_AD]\n",
+ "Y2=[M_C,M_B,M_E,M_D,M_A]\n",
+ "Z2=[0,0,0,0,0]\n",
+ "plt.plot(X2,Y2,X2,Z2)\n",
+ "plt.xlabel(\"Lenght in m\")\n",
+ "plt.ylabel(\"Bending Moment in kN.m\")\n",
+ "plt.show()"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "The Shear Force and Bending Moment Diagrams are the results\n"
+ ]
+ },
+ {
+ "metadata": {},
+ "output_type": "display_data",
+ "png": "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\nAABJRU5ErkJggg==\n",
+ "text": [
+ "<matplotlib.figure.Figure at 0x5fc3ed0>"
+ ]
+ },
+ {
+ "metadata": {},
+ "output_type": "display_data",
+ "png": "iVBORw0KGgoAAAANSUhEUgAAAYUAAAEPCAYAAACtCNj2AAAABHNCSVQICAgIfAhkiAAAAAlwSFlz\nAAALEgAACxIB0t1+/AAAIABJREFUeJzt3XtUVPXaB/DvcNNjoKUEnuNIsECTWzHqEUurMbl4w7so\nlJVmZa4uvtZJrKNhvQqUWmLZMRPtttLTMQUzSUuwRBO8lYr3nEIQLxkJoi8C8/4xZ+9kYJhhZs/s\nPTPfz1qsmM3M7CeWax72/u7nt1V6vV4PIiIiAB5yF0BERMrBpkBERCI2BSIiErEpEBGRiE2BiIhE\nbApERCSSrSmUlZVh0KBBiIyMRFRUFLKzswEAly9fRnx8PHr27ImEhARUVVXJVSIRkdtRyTWnUFlZ\nicrKSsTExKCmpgZ9+vTBxo0bsXr1avj7++Oll15CVlYWfv/9d2RmZspRIhGR25HtSKFr166IiYkB\nAPj6+iI8PBzl5eXIy8vDo48+CgB49NFHsXHjRrlKJCJyO7IdKdxMp9PhgQcewOHDhxEUFITff/8d\nAKDX69G5c2fxMRER2ZfsQXNNTQ3GjRuHpUuXws/Pr8nPVCoVVCqVTJUREbkfLzl3fuPGDYwbNw6T\nJ0/G6NGjAQCBgYGorKxE165dce7cOQQEBDR7XVhYGE6fPu3ocomInFpoaChOnTrV6nNkO1LQ6/V4\n/PHHERERgZkzZ4rbR44ciQ8//BAA8OGHH4rN4manT5+GXq93y6/r1/WYMkWPu+/W45df9HjxxVfh\n76/HoUPy1yb316uvvip7DUr54u+Cv4uWviz5Y1q2plBUVIRPPvkEBQUF0Gg00Gg0yM/PR1paGrZt\n24aePXti+/btSEtLk6tExbl4EYiLA37/Hdi5EwgKAm65BXj1VeCZZwC97OkQETk72U4fDRw4EI2N\njS3+7JtvvnFwNcp3+DAwciSQkgK8/jrgcVM7nz4dWLUKWLvW8HMiImvJHjSTeZs3Aw8+CLz2GrBg\nQdOGoNVq4eUFvPsu8OKLwJUr8tUpN61WK3cJisHfxZ/4u2gbRVyS2lYqlQpOWHab6fXA4sXAkiXA\n+vXAPfe0/vwpU4AuXYBFixxTHxE5F0s+O9kUFOr//g94+mlg/34gL8+QH5hz4QIQGQkUFABRUfav\nkYiciyWfnTx9pEAtBcqWCAhg6ExEtmFTUJjDh4HYWOD++w2njHx92/b66dOBP/4whM5ERG3F00cK\nsnmzIRdYsgR4+GHr32fXLmDCBODoUaBjR+nqIyLnxkzBSbQ1ULYEQ2ciMsam4ASsCZQtwdCZiIwx\naFY4awNlSzB0JiJrsCnIxNZA2RIMnYmorXj6SAZSBcqWYOhMRAJmCgpjj0DZEgydiQhgU1AUewXK\nlmDoTEQAg2bFsGegbAmGzkRkKTYFO3NEoGwJhs5EZAmePrIjRwbKlmDoTOTemCnIRK5A2RIMnYnc\nF5uCDOQMlC3B0JnIfTFodjC5A2VLMHQmotbI2hSmTp2KwMBAREdHi9suX76M+Ph49OzZEwkJCaiq\nqpKxQsspJVC2BENnIjJF1qYwZcoU5OfnN9mWmZmJ+Ph4nDhxAoMHD0ZmZqZM1VmutXsoKxHv6UxE\npsieKeh0OiQlJeHQoUMAgF69emHHjh0IDAxEZWUltFotjh071uQ1SskUlBwoW4KhM5F7seSz08tB\ntVjs/PnzCAwMBAAEBgbi/PnzMlfUspsD5R9+UGZ+YE5WliF0fuwxhs5EZKDoEx0qlQoqlUruMppx\nhkDZEgydiciY4o4UhNNGXbt2xblz5xAQENDi89LT08XvtVottFqtQ+o7fBgYORJISQFef135+YE5\n06cDq1YZQueUFLmrISIpFRYWorCwsE2vUVym8NJLL6FLly6YPXs2MjMzUVVV1SxslitTUNqEslQ4\n6UzkHhQ/vJaSkoIdO3bg0qVLCAwMxGuvvYZRo0YhOTkZv/76K4KDg/Hvf/8bt956a5PXObopOHug\nbAmGzkSuT/FNwVqObApKn1CWijDpXFho+C8RuR5ONNvIVQJlSzB0JiKATcEkZ5pQlsr06UBVFSed\nidwZTx+1wFUDZUswdCZyXcwU2sgdAmVLMHQmck1sCm3gLoGyJRg6E7kmBs0WcqdA2RIMnYncl9s3\nBXcMlC3B0JnIPbn16SN3DpQtwdCZyLUwUzCBgbLlGDoTuQ42hRYwUG4bhs5EroNBsxEGym3H0JnI\nvbhNU2CgbD2GzkTuwy1OHzFQth1DZyLn5/aZAgNlaTF0JnJubt0UGChLj6EzkXNz26CZgbJ9MHQm\ncn0u1xQYKNsXQ2ci1+ZSp48YKDsGQ2ci5yTJ6aNNmzZBo9Hgtttug5+fH/z8/NBRYZ8Eer0h/Hzi\nCSA3lw3B3u69F0hIAF57Te5KiEhqZo8UQkNDsWHDBkRFRcHDwzFnm/Lz8zFz5kw0NDRg2rRpmD17\ndpOf39ztGCjLg6EzkfOR5EhBrVYjMjLSYQ2hoaEBzzzzDPLz81FaWorPPvsMR48ebfG5DJTlw9CZ\nyDV5mXtCVlYWhg4dikGDBsHHxweAodvMmjXLLgUVFxcjLCwMwcHBAIBJkyYhNzcX4eHhTZ53+DAw\nciSQkgK8/jrgoJ5FN5k+HVi1yhA6p6TIXQ0RScFsU5g7dy78/Pxw/fp11NXV2b2g8vJydO/eXXys\nVquxZ8+eZs978EEGynLz8gLefdcQOg8fztCZSMnq6y17ntmmcO7cOWzbts3WeiymUqkset7FCBUm\nfwBM/gBAMIAQe1ZFrXoS6PSW3EUQUTNnAOja9hKzTWHYsGH4+uuvkZiYaF1RbdStWzeUlZWJj8vK\nyqBWq5s9T1/IE9lKwdCZSPmGDgXyYf6PbrNXH/n6+qK2thY+Pj7w9vY2vEilwpUrV6Sp1Eh9fT3u\nvPNOfPvtt/jb3/6Gfv364bPPPmuSKUh15zWSzjvvGIYFt28HLDzYIyIH0emAvn2B336T4Oqjmpoa\nNDY24vr166iurkZ1dbXdGgIAeHl54Z133kFiYiIiIiIwceLEZiEzKQ8nnYmU64MPLM9fXWqimeS1\naxeQnGyYdPbzk7saIgKAGzeAO+4AvvkGiIy004J4Go3GquLItd17LxAfD8yfL3clRCTYvBkIDQUi\nIix7Po8USFIMnYmUZehQIDUVmDzZze+nQPJh6EykDELAXFYG/OUvNjaFkBDTF/6rVCr8/PPPNhVr\nCzYFZauvB/7+d+CllzjpTCSnf/4TqKkB3n7b8NimpnDp0qU/n6RSobGxEevWrcOiRYvQp08frF+/\nXrrK24hNQfkYOhPJ6+aAWcgTbFoQz9/fH/7+/ujcuTM2bdoErVaL3bt346uvvpK1IZBzYOhMJK+2\nBswCk0cKdXV1yMnJwVtvvYWBAwdizpw5CAsLk6JWm/FIwTkwdCaSz80Bs8Cm00dqtRpeXl54/vnn\nERQUJK5JpNfroVKpMHbsWOmqbyM2BefB0JnI8YwDZoFNTeGxxx4T36Qlq1evtqpYKbApOA+GzkSO\nZxwwCyS5JPX69eto3759k22//fYbunTpYl21EmBTcC4MnYkcp6WAWSDJndfGjh2LGzduiI/PnTuH\n+Ph466olt8TQmchxrA2YBWabwpgxY5CcnIyGhgbodDokJiYiMzPTur2R28rKAj78EDhyRO5KiFzb\nihXAk09a/3qLJprfeecd5Ofn45dffsG//vUvDBgwwPo9SoCnj5wTQ2ci+zIVMAtsyhQWL17c5E0+\n+ugjREdHQ6PR2PUezZZgU3BODJ2J7MtUwCyw5LPT5J3Xqqurm1x5NGbMGKhUKtTU1FhXLbk94Z7O\nycnAiBEMnYmkdOMGkJNjCJhtwQXxyOGmTAG6dAEWLZK7EiLXsXEjsHgx8P33pp/DVVJJkTjpTCS9\nliaYjbEpkGIxdCaSjrmAWSDJnAKRPfCezkTSEe7B3FpDsJTZI4ULFy5g5cqV0Ol0qK+vN7xIpUJO\nTo7VO/3888+Rnp6OY8eOoaSkBL179xZ/lpGRgZycHHh6eiI7OxsJCQnNi+aRgkvgpDOR7VqbYDZm\n09VHglGjRuH+++9HfHw8PDw8xDe2RXR0NDZs2ICnnnqqyfbS0lKsW7cOpaWlKC8vR1xcHE6cOCHu\nl1zLzZPODJ2JrGPrBLMxs03h2rVryMrKkmZv/9WrV68Wt+fm5iIlJQXe3t4IDg5GWFgYiouL0b9/\nf0n3T8qRlWUIm6dMYehMZA1bJ5iNmf0TfMSIEdi8ebN0e2xFRUUF1Gq1+FitVqO8vNwh+yZ5BAQA\nr74KPPMMwDOCRG2j0wElJcD48dK9p9kjhbfffhsLFy6Ej48PvL29ARhOH125cqXV18XHx6OysrLZ\n9oULFyIpKcniAk2dqkpPTxe/12q10Gq1Fr8nKcv06cCqVYbQmZPORJYzFzAXFhaisLCwTe9ptilY\nO8G8bdu2Nr+mW7duKCsrEx+fPXsW3bp1a/G5NzcFcm6cdCZqO0smmI3/YJ5vwVLFJk8fHT16FACw\nf//+Fr+kcnMSPnLkSKxduxZ1dXU4c+YMTp48iX79+km2L1IuLq9N1DZSB8wCk5ekPvHEE1i5ciW0\nWm2Lp3AKCgqs3umGDRvw3HPP4dKlS+jUqRM0Gg22bNkCwHB6KScnB15eXli6dCkSExObF81LUl3S\nhQtAVBRQUMDQmcgcSyaYjXGimZwOJ52JzLN0gtkYJ5rJ6XDSmcg8KSeYjfFIgRSHk85EprVlgtkY\njxTIKTF0JjLNXgGzwGxTGDx4sEXbiKSUlQV89BHv6UxkTOoJZmMm5xSuXbuG2tpaXLx4EZcvXxa3\nX7lyhVPGZHcBAcC8eYZJZ4bORAbCBPMXX9hvHyabwooVK7B06VJUVFSgT58+4nY/Pz8888wz9quI\n6L846UzUlD0DZoHZoDk7OxvPPfec/SqwAoNm98HQmcjAloBZINmcwq5du5rcTwEAHnnkEeuqkgCb\ngnvhPZ2JLLsHszmSNIWHH34YP//8M2JiYuDp6SluX7ZsmfWV2YhNwb1w0pnIuglmY5I0hfDwcJSW\nltp8Yx0psSm4H046kzuzdoLZmCRzClFRUTh37pz1VRBJgJPO5M4cETALzB4paLVaHDx4EP369UO7\ndu0ML1KpkJeXZ//qTOCRgnti6EzuSIqAWSDJ6SPhBg03v5lKpcIDDzxgW3U2YFNwXwydyd1IETAL\nJLv6SKfT4dSpU4iLi0NtbS3q6+vRsWNH2yu0EpuC+2LoTO5GioBZIEmm8P7772PChAl46qmnABju\nhjZmzBjbqyOyws2Tzvy7gFydPe7BbI7ZpvDuu+9i586d4pFBz549ceHCBbsXRmQKQ2dyF44MmAVm\nm0K7du3EgBkA6uvrFXV5Krkf4Z7O//gHUF0tdzVE9iHcg9mei9+1xGxTeOCBB7BgwQLU1tZi27Zt\nmDBhApKSkhxRG5FJXF6bXJ29l8g2xWzQ3NDQgFWrVmHr1q0AgMTEREybNk3WowUGzQQwdCbXJmXA\nLFDsPZr/8Y9/4Msvv4SPjw9CQ0OxevVqdOrUCQCQkZGBnJwceHp6Ijs7GwkJCc2LZlOg/+KkM7ki\nqSaYjUly9dGmTZug0Whw2223wc/PD35+fjZfjpqQkIAjR47gxx9/RM+ePZGRkQEAKC0txbp161Ba\nWor8/HzMmDEDjY2NNu2LXBtDZ3JFcgTMArNNYebMmfjwww/x22+/obq6GtXV1bhy5YpNO42Pj4eH\nh2HXsbGxOHv2LAAgNzcXKSkp8Pb2RnBwMMLCwlBcXGzTvsi1MXQmVyNXwCww2xTUajUiIyPFD3Gp\n5eTkYNiwYQCAiooKqNXqJvvmXd7IHCF0fvVVuSshsp1cAbPA5J3XBFlZWRg6dCgGDRoEHx8fAIbz\nUrNmzWr1dfHx8aisrGy2feHCheLVSwsWLICPjw9SU1NNvo+pQDs9PV38XqvVQqvVmvk/IVeWlQX0\n72843H79dcBOf8MQ2Z2U92AuLCwUlyqylNmgOT4+Hn5+foiOjm5ytPCqjX+WrVmzBitXrsS3336L\n9u3bAwAyMzMBAGlpaQCAIUOGYP78+YiNjW1aNINmasHFi8C4cYC/P/DRR4Cvr9wVEbWNvQJmgSRX\nH0VFReHw4cOSFpafn48XXngBO3bsgL+/v7i9tLQUqampKC4uRnl5OeLi4nDq1KlmRwtsCmRKXZ0h\nfN6/H8jLA4KC5K6IyHL//CdQUwO8/bZ93l+Sq4+GDRuGr7/+WrKiAODZZ59FTU0N4uPjodFoMGPG\nDABAREQEkpOTERERgaFDh2L58uWcnqY28fEBVq0yXNvdvz+we7fcFRFZRu6AWWD2SMHX1xe1tbXw\n8fGBt7e34UUqlc1XINmCRwpkic2bDUttv/UW8NBDcldD1Dopl8g2RbHDa7ZiUyBLHTkCJCUBKSkM\noEnZ7DHBbEyyppCbm4vvvvtOvLmO3GsfsSlQWzCAJqWzd8AskCRTSEtLQ3Z2NiIjIxEeHo7s7GzM\nmTNHsiKJ7O322w23Mrz1VmDgQODXX+WuiKgpOSeYjZk9UoiOjsbBgwfh6ekJwLBAXkxMDA4dOuSQ\nAlvCIwWyhl4PLFliOG+7fj1wzz1yV0Qk7T2YzZHkSEGlUqGqqkp8XFVVxSuCyCmpVMALLwArVwKj\nRgGffip3RUTyTzAbMzvRPGfOHPTu3VucGN6xY4c4ZEbkjIYPNyy3nZQElJYygCZ5STnBLAWLguaK\nigqUlJRApVKhX79+6Nq1qyNqM4mnj0gKDKBJbo4KmAU2XX20f//+Jo+Fpwmnjnr37i1FjVZhUyCp\ncAKa5GTvCWZjNjUFDw8PREVFoUuXLi2+sKCgwPYKrcSmQFJiAE1ycGTALLDks9NkprBkyRJ8/vnn\n6NChAyZOnIgxY8bAz89P8iKJ5CYE0L16GQJoTkCTIygtYBaYzRROnz6NdevWYePGjbjjjjvwyiuv\nICYmxlH1tYhHCmQvnIAmR3HEBLMxSS5JDQ0NxahRo5CQkICSkhIcP35csgKJlCYyEtizx7D+zPjx\nhvO9RFLT6YCSEsO/MaUxeaRw+vRprF27Frm5uQgKCsLEiRMxYsQI/EUBI3c8UiB7YwBN9uTogFlg\nc9AcHR2N0aNHo2PHjk3e0JI7r9kTmwI5AgNosgc5AmaBTUHzvHnzxMtPa3gMTW6IATTZg1IDZgGX\nziayAANokoocAbOA91MgkhAnoMlWjp5gNibJ1UdEZMAluMlWSloi2xQ2BaI24D2gyVpKuQezOWZX\nSV28eHGTQw6VSoVOnTqhT58+Vg+xzZ07F3l5eVCpVOjSpQvWrFmD7t27AwAyMjKQk5MDT09PZGdn\nIyEhwap9ENkLA2iyhtIDZoHZTCE1NRV79+5FUlIS9Ho9Nm/ejOjoaPzyyy8YP348Zs+e3eadVldX\ni0tmLFu2DD/++CM++OADlJaWIjU1FSUlJSgvL0dcXBxOnDgBD6NUj5kCKQUDaLKUnAGzQJJMoays\nDPv378fixYuxZMkS7Nu3DxcuXMCOHTuwZs0aqwq7eQ2lmpoa+Pv7AzDcCzolJQXe3t4IDg5GWFgY\niouLrdoHkSNwAposoeQJZmNmm8LFixfh4+MjPvb29sb58+fRoUMHtG/f3uodv/LKKwgKCsKaNWvE\nez5XVFRArVaLz1Gr1SgvL7d6H0SOwACazHGGgFlgNlN46KGHEBsbi9GjR0Ov12PTpk1ITU3F1atX\nEdHKybH4+HhUVlY2275w4UIkJSVhwYIFWLBgATIzMzFz5kysXr26xfcxdevP9PR08XutViveGY5I\nDkIAvWSJIYDmBDQJhID5m28cv+/CwkIUFha26TUWzSmUlJSgqKgIKpUKAwYMQN++fa2tsZlff/0V\nw4YNw+HDh8XbfKalpQEAhgwZgvnz5yM2NrZp0cwUSME2bwamTGEATQYbNxqWSvn+e7krkXB4raGh\nAZWVlaivrxf/cg+yYYWwkydPokePHgAMQXNxcTE+/vhjMWguLi4Wg+ZTp041O1pgUyClYwBNAiUE\nzAJJmsKyZcswf/58BAQEwNPTU9x+6NAhqwsbP348jh8/Dk9PT4SGhuK9995DQEAAAMPppZycHHh5\neWHp0qVITExsXjSbAjkBTkCT3BPMxiRpCqGhoSguLjZ5W045sCmQs+AS3O5NriWyTZHkktSgoCBx\n6WwiahtOQLsvZ5lgNmb26qOQkBAMGjQIw4cPFy9Nlft+CkTOhBPQ7slZJpiNmW0KQUFBCAoKQl1d\nHerq6sSb7BBR2wwfDhQUGALo0lIG0K5uxQrnO0oAuHQ2kcMxgHZ9SguYBTYFzc8//zyWLl2KpKSk\nFt84Ly9PmiqtwKZAzo4BtGtTWsAssKkp7N27F3379jU5DSfnBDGbArkC3gPaNcl5D2ZzeOc1IifA\nCWjXoqQJZmOWfHaaDJqjo6NbfeOffvrJ+sqISMQA2rU4a8AsMHmkoNPpAADLly8HAEyePBl6vR6f\nfvopACArK8sxFbaARwrkihhAOz+lBswCSU4fxcTE4ODBg022aTQaHDhwwPYKrcSmQK6KAbRzU2rA\nLJBkolmv12Pnzp3i46KiIn4gE9kJJ6Cdl7NOMBszO7yWk5ODKVOm4I8//gAA3HrrrSbvfUBEtuME\ntHNy1glmYxZffSQ0hU6dOtm1IEvw9BG5Cy7B7TyUtES2KZJkCtevX8f69euh0+lQX18vvvG8efOk\nq7SN2BTInTCAVj6lB8wCSTKFUaNGIS8vD97e3vD19YWvry9uueUWyYokotbxHtDK50z3YDbH7JFC\nVFQUDh8+7Kh6LMIjBXJHnIBWJiVPMBuT5Ejh3nvv5aAakQIIAfTKlYYA+r8jQyQzVwmYBWaPFMLD\nw3Hq1CmEhISgXbt2hhfJPNHMIwVydwyglcMZAmaBJEGzMNlsLDg42Nq6bMamQMQAWgmcJWAWSHL6\nKDg4GGVlZSgoKEBwcDBuueUWyT6QFy9eDA8PD1y+fFnclpGRgR49eqBXr17YunWrJPshckUMoOXn\nSgGzwGxTSE9PxxtvvIGMjAwAQF1dHR5++GGbd1xWVoZt27bhjjvuELeVlpZi3bp1KC0tRX5+PmbM\nmIHGxkab90XkqjgBLR9XmWA2ZrYpbNiwAbm5ueJlqN26dUN1dbXNO541axbeeOONJttyc3ORkpIC\nb29vBAcHIywsDMXFxTbvi8iVMYCWh6sFzAKzTaFdu3bwuCnFunr1qs07zc3NhVqtxl133dVke0VF\nBdRqtfhYrVajvLzc5v0RuQNhCe65c4GXXwZ4kG1fzr5Etilm1z6aMGECnnrqKVRVVeH9999HTk4O\npk2bZvaN4+PjUVlZ2Wz7ggULkJGR0SQvaC2jUKlULW5PT08Xv9dqtbLeCY5IKSIjgT17DAH0uHHA\nxx8zgLYHnQ4oKQG++ELuSlpXWFho8u6Zpli09tHWrVvFD/HExETEx8dbVSAAHD58GIMHD0aHDh0A\nAGfPnkW3bt2wZ88ecaG9tLQ0AMCQIUMwf/58xMbGNi2aVx8RtYpLcNuX0pfINkXy23FevHgR/v7+\nJv96t0ZISAj27duHzp07o7S0FKmpqSguLkZ5eTni4uJw6tSpZvtjUyAyjxPQ9uFME8zGbLokdffu\n3dBqtRg7diwOHDiAqKgoREdHIzAwEFu2bJG0SEFERASSk5MRERGBoUOHYvny5ZI2ICJ3wgDaPlw1\nYBaYPFLo06cPMjIy8Mcff+CJJ55Afn4++vfvj2PHjmHSpEnN7sbmSDxSIGobYQJ60iTgf/+XE9C2\ncKYJZmM2nT66+Tac4eHhOHr0qPgz3o6TyPkIE9BdujCAtpazTTAbs+n00c2nbdq3by9dVUQkC2EC\n+rbbOAFtLVecYDZm8kjB09NTvELo2rVr+MtNv4Vr166JN9yRA48UiKzHANo6zhwwCyz57DQ5p9DQ\n0CB5QUQkP94D2jquHjALzA6vEZFrEiagk5IMQTQD6Na56gSzsTbNKSgFTx8RSYcBtHnOHjALJFk6\nm4hcGwNo89whYBawKRARl+BuhasukW0KmwIRAeAEtCnuEjALGDQTURMMoJtyl4BZwKCZiFrEANp1\nAmYBg2YishoDaPcKmAVsCkRkkjsH0O4WMAvYFIioVe4aQLtbwCxg0ExEFnG3ANrdAmYBg2YiahN3\nCKBdLWAWMGgmIskJAXTnzq4bQLtjwCxgUyCiNvPxMXxwPvKIYeltVwqg3TVgFrApEJFVVCpg1izg\n/fddK4B214BZIEtTSE9Ph1qthkajgUajwZYtW8SfZWRkoEePHujVqxe2bt0qR3lE1AZCAD13LvDy\ny0Bjo9wV2cZdA2aBLEHz/Pnz4efnh1mzZjXZXlpaitTUVJSUlKC8vBxxcXE4ceIEPIwucWDQTKQ8\nrhBAu2rALFB00NxSYbm5uUhJSYG3tzeCg4MRFhaG4uJiGaojorZyhQDanQNmgWxNYdmyZbj77rvx\n+OOPo6qqCgBQUVEBtVotPketVqO8vFyuEomojZw5gHb3gFlgt+G1+Ph4VFZWNtu+YMECPP3005g3\nbx4AYO7cuXjhhRewatWqFt9HpVK1uD09PV38XqvVQqvV2lwzEdlOCKDvvNO57gHtigFzYWEhCgsL\n2/Qa2YfXdDodkpKScOjQIWRmZgIA0tLSAABDhgzB/PnzERsb2+Q1zBSInMORI4YJ6EmTlD8BPXQo\nkJpqWOfJVSk2Uzh37pz4/YYNGxAdHQ0AGDlyJNauXYu6ujqcOXMGJ0+eRL9+/eQokYgkEBkJ7NkD\n7NxpCKFrauSuqGU6HVBSAowfL3cl8pNl7aPZs2fj4MGDUKlUCAkJwYoVKwAAERERSE5ORkREBLy8\nvLB8+XKTp4+IyDkIAfTTTxsC6Lw8IChI7qqaYsD8J9lPH1mDp4+InI9eb8gXFi8G/vMfQxCtBDdu\nAHfcYWhcrpQntESxp4+IyP0odQLaFQNmW3DpbCJyKKUtwe3uE8zGePqIiGShhAloV59gNsbTR0Sk\nWEqYgGbA3BybAhHJRs4JaE4wt4xNgYhkJVcAzYC5ZQyaiUgRHB1AM2BuGYNmIlIURwTQ7hYwCxg0\nE5HTcUSyPgBUAAAI10lEQVQAzYDZNDYFIlIcewbQDJhbx6ZARIpkrwCaAXPrGDQTkaJJHUAzYG4d\ng2YicgpSBNDuGjALGDQTkcuQIoBmwGwemwIROQ1bAmgGzJZhUyAip2JtAM2A2TIMmonIKbU1gGbA\nbBkGzUTk1CwJoN09YBYoOmhetmwZwsPDERUVhdmzZ4vbMzIy0KNHD/Tq1Qtbt26VqzwichKWBNAM\nmNtAL4Pt27fr4+Li9HV1dXq9Xq+/cOGCXq/X648cOaK/++679XV1dfozZ87oQ0ND9Q0NDc1eL1PZ\nilRQUCB3CYrB38Wf3PF30dio1y9erNf/7W96/a5df27ftq1A/9e/6vVHjshXm1JY8tkpy5HCe++9\nhzlz5sDb2xsAcPvttwMAcnNzkZKSAm9vbwQHByMsLAzFxcVylOg0CgsL5S5BMfi7+JM7/i5MBdAf\nfFDIgLkNZGkKJ0+exHfffYf+/ftDq9Vi7969AICKigqo1WrxeWq1GuXl5XKUSEROSgig584FXn4Z\n2LuXAXNb2O3qo/j4eFRWVjbbvmDBAtTX1+P333/HDz/8gJKSEiQnJ+Pnn39u8X1UKpW9SiQiFxUZ\nCezZYwigy8uB8ePlrsiJOOA0VjNDhgzRFxYWio9DQ0P1Fy9e1GdkZOgzMjLE7YmJifoffvih2etD\nQ0P1APjFL37xi19t+AoNDTX7+SzLnMLo0aOxfft2PPDAAzhx4gTq6urg7++PkSNHIjU1FbNmzUJ5\neTlOnjyJfv36NXv9qVOnZKiaiMj1ydIUpk6diqlTpyI6Oho+Pj746KOPAAARERFITk5GREQEvLy8\nsHz5cp4+IiJyIKccXiMiIvtwurWP8vPz0atXL/To0QNZWVlylyObqVOnIjAwENHR0XKXIruysjIM\nGjQIkZGRiIqKQnZ2ttwlyeb69euIjY1FTEwMIiIiMGfOHLlLkl1DQwM0Gg2SkpLkLkVWwcHBuOuu\nu6DRaFo8LS9wqiOFhoYG3Hnnnfjmm2/QrVs3/P3vf8dnn32G8PBwuUtzuO+//x6+vr545JFHcOjQ\nIbnLkVVlZSUqKysRExODmpoa9OnTBxs3bnTLfxcAUFtbiw4dOqC+vh4DBw7EokWLMHDgQLnLks2S\nJUuwb98+VFdXIy8vT+5yZBMSEoJ9+/ahc+fOrT7PqY4UiouLERYWhuDgYHh7e2PSpEnIzc2VuyxZ\n3HfffbjtttvkLkMRunbtipiYGACAr68vwsPDUVFRIXNV8unQoQMAoK6uDg0NDWY/BFzZ2bNn8dVX\nX2HatGlcLw2w6HfgVE2hvLwc3bt3Fx9zuI2M6XQ6HDhwALGxsXKXIpvGxkbExMQgMDAQgwYNQoQb\nj/L+z//8D95880142HL/ThehUqkQFxeHvn37YuXKlSaf51S/KV6JRK2pqanB+PHjsXTpUvhac69G\nF+Hh4YGDBw/i7Nmz+O6779xyyQsA+PLLLxEQEACNRsOjBABFRUU4cOAAtmzZgnfffRfff/99i89z\nqqbQrVs3lJWViY/LysqaLItB7uvGjRsYN24cHn74YYwePVruchShU6dOGD58uLiMjLvZtWsX8vLy\nEBISgpSUFGzfvh2PPPKI3GXJ5q9//SsAw1pzY8aMMbmunFM1hb59++LkyZPQ6XSoq6vDunXrMHLk\nSLnLIpnp9Xo8/vjjiIiIwMyZM+UuR1aXLl1CVVUVAODatWvYtm0bNBqNzFXJY+HChSgrK8OZM2ew\ndu1aPPjgg+JMlLupra1FdXU1AODq1avYunWrySsXnaopeHl54Z133kFiYiIiIiIwceJEt73CJCUl\nBffeey9OnDiB7t27Y/Xq1XKXJJuioiJ88sknKCgogEajgUajQX5+vtxlyeLcuXN48MEHERMTg9jY\nWCQlJWHw4MFyl6UI7nz6+fz587jvvvvEfxcjRoxAQkJCi891qktSiYjIvpzqSIGIiOyLTYGIiERs\nCkREJGJTICIiEZsCERGJ2BSIiEjEpkAuzd7LXQQHB+Py5cvNtu/YsQO7d+9u8TWbNm1y62XfSdlk\nufMakaPYe2BJpVK1uK5OQUEB/Pz8cM899zT7WVJSktuv7U/KxSMFcjunT5/G0KFD0bdvX9x///04\nfvw4AOCxxx7D888/jwEDBiA0NBTr168HYFh1dMaMGQgPD0dCQgKGDx8u/gwAli1bhj59+uCuu+7C\n8ePHodPpsGLFCrz11lvQaDTYuXNnk/2vWbMGzz77bKv7vJlOp0OvXr0wZcoU3HnnnXjooYewdetW\nDBgwAD179kRJSYm9flXkhtgUyO08+eSTWLZsGfbu3Ys333wTM2bMEH9WWVmJoqIifPnll0hLSwMA\nfPHFF/jll19w9OhRfPzxx9i9e3eTI5Dbb78d+/btw9NPP41FixYhODgY06dPx6xZs3DgwIFmN7gx\nPnppaZ/GTp8+jRdffBHHjh3D8ePHsW7dOhQVFWHRokVYuHChVL8aIp4+IvdSU1OD3bt3Y8KECeK2\nuro6AIYPa2GF1fDwcJw/fx4AsHPnTiQnJwOAeI+Cm40dOxYA0Lt3b3zxxRfidktWkDG1T2MhISGI\njIwEAERGRiIuLg4AEBUVBZ1OZ3Y/RJZiUyC30tjYiFtvvRUHDhxo8ec+Pj7i98KHunFuYPxh365d\nOwCAp6cn6uvr21xTS/s0JuwDMNwvQXiNh4eHVfskMoWnj8itdOzYESEhIfjPf/4DwPAh/NNPP7X6\nmgEDBmD9+vXQ6/U4f/48duzYYXY/fn5+4lLFxrgGJSkZmwK5tNraWnTv3l38evvtt/Hpp59i1apV\niImJQVRUVJObud98vl/4fty4cVCr1YiIiMDkyZPRu3dvdOrUqdm+VCqV+JqkpCRs2LABGo0GRUVF\nJp9nap8tvbepx+68JDRJj0tnE1ng6tWruOWWW/Dbb78hNjYWu3btQkBAgNxlEUmOmQKRBUaMGIGq\nqirU1dVh3rx5bAjksnikQEREImYKREQkYlMgIiIRmwIREYnYFIiISMSmQEREIjYFIiIS/T+6l7ug\nkeDZfAAAAABJRU5ErkJggg==\n",
+ "text": [
+ "<matplotlib.figure.Figure at 0x5d72c50>"
+ ]
+ }
+ ],
+ "prompt_number": 18
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 3.3.7,Page No.109"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "import numpy as np\n",
+ "%matplotlib inline\n",
+ "\n",
+ "#Initilization of Variables\n",
+ "\n",
+ "L_BC=1 #m #Length of BC\n",
+ "L_DB=2 #m #Length of DB\n",
+ "L_AD=4 #m #Length 0f AD\n",
+ "M_D=30 #KN.m #Moment at D\n",
+ "w=45 #KN/m #u.d.l\n",
+ "L=7 #m #Span of beam\n",
+ "\n",
+ "#Calculations\n",
+ "\n",
+ "#Let R_B & R_A be the Reactions at B & A respectively\n",
+ "#R_B+R_A=180+P ............(1)\n",
+ "\n",
+ "#Now Taking Moment about A,we get\n",
+ "#R_B=7*P+390 ...............(2)\n",
+ "\n",
+ "#Since R_A & R_B Are Equal\n",
+ "#2*R_B=180+P ...................(3)\n",
+ "\n",
+ "#From equation 1 and 3 we get\n",
+ "#3*(180+P)=7P+390\n",
+ "#After simplifying Further above equation we get\n",
+ "P=150*4**-1 #KN\n",
+ "R_A=R_B=(180+P)*2**-1\n",
+ "F_C=P\n",
+ "\n",
+ "#Shear Force Calculations\n",
+ "\n",
+ "#S.F At C\n",
+ "V_C1=0 #KN\n",
+ "V_C2=-P #KN\n",
+ "\n",
+ "#S.F At B\n",
+ "V_B1=V_C2 #KN\n",
+ "V_B2=V_C2+R_B #KN \n",
+ "\n",
+ "#S.F At D\n",
+ "V_D=V_B2 #KN\n",
+ "\n",
+ "#S.F At A\n",
+ "V_A1=V_D-w*L_AD #KN\n",
+ "V_A2=V_A1+R_A #KN\n",
+ "\n",
+ "#Bending Moment Calculations\n",
+ "\n",
+ "#B.M at C\n",
+ "M_C=0 #KN.m \n",
+ "\n",
+ "#B.M at B\n",
+ "M_B=F_C*L_BC #KN.m\n",
+ "\n",
+ "#B.M at D\n",
+ "M_D1=F_C*(L_BC+L_DB)-R_B*L_DB #KN.m\n",
+ "M_D2=M_D1+M_D\n",
+ "\n",
+ "#B.M At A\n",
+ "M_A=w*L_AD*L_AD*2**-1+M_D-R_B*(L_AD+L_DB)+P*L\n",
+ "\n",
+ "#Result\n",
+ "print \"The Shear Force and Bending Moment Diagrams are the results\"\n",
+ "\n",
+ "#Plotting the Shear Force Diagram\n",
+ "\n",
+ "X1=[0,0,L_BC,L_BC,L_DB+L_BC,L_DB+L_BC+L_AD,L_DB+L_BC+L_AD]\n",
+ "Y1=[V_C1,V_C2,V_B1,V_B2,V_D,V_A1,V_A2]\n",
+ "Z1=[0,0,0,0,0,0,0]\n",
+ "plt.plot(X1,Y1,X1,Z1)\n",
+ "plt.xlabel(\"Length x in m\")\n",
+ "plt.ylabel(\"Shear Force in kN\")\n",
+ "plt.show()\n",
+ "\n",
+ "#Plotting the Bendimg Moment Diagram\n",
+ "\n",
+ "X2=[0,L_BC,L_DB+L_BC,L_DB+L_BC,L_AD+L_DB+L_BC]\n",
+ "Y2=[M_C,M_B,M_D1,M_D2,M_A]\n",
+ "Z2=[0,0,0,0,0]\n",
+ "plt.plot(X2,Y2,X2,Z2)\n",
+ "plt.xlabel(\"Lenght in m\")\n",
+ "plt.ylabel(\"Bending Moment in kN.m\")\n",
+ "plt.show()"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "The Shear Force and Bending Moment Diagrams are the results\n"
+ ]
+ },
+ {
+ "metadata": {},
+ "output_type": "display_data",
+ "png": "iVBORw0KGgoAAAANSUhEUgAAAYwAAAEPCAYAAABRHfM8AAAABHNCSVQICAgIfAhkiAAAAAlwSFlz\nAAALEgAACxIB0t1+/AAAIABJREFUeJzt3X9c1fWhx/HXAYlNkcQNUYGJV1CEKEHz50MHmj+YgZLK\nQuevIr362Ky7e1de7x6bM0u709m0uDOvqdlKK+ePfujUFFMn2JRuK5qSQRcRzTKvhhkC3/vHt840\nhXNAOJ9z4P18PHjscH5w3jo7b77fz+f7+Tgsy7IQERFxwc90ABER8Q0qDBERcYsKQ0RE3KLCEBER\nt6gwRETELSoMERFxi9HCuO+++wgLCyMhIcF537lz5xg+fDjdu3dnxIgRnD9/3vnYokWLiImJITY2\nlp07d5qILCLSYhktjOnTp7Njx45r7lu8eDHDhw/n+PHjDBs2jMWLFwNQWFjIxo0bKSwsZMeOHcye\nPZuamhoTsUVEWiSjhTF48GBCQkKuuW/btm1MnToVgKlTp7JlyxYAtm7dSlZWFgEBAURFRREdHc3h\nw4c9nllEpKXyujGMM2fOEBYWBkBYWBhnzpwB4NSpU0RERDifFxERQVlZmZGMIiItkdcVxtUcDgcO\nh6POx0VExDNamQ7wbWFhYZw+fZqOHTtSXl5Ohw4dAAgPD6e0tNT5vJMnTxIeHn7d66Ojozlx4oTH\n8oqINAfdunXjww8/rPM5XneEkZ6ezrp16wBYt24dY8eOdd6/YcMGKisrKS4upqioiL59+173+hMn\nTmBZls9+/frXvzaeoSVmV37zX8pv9sudX7SNHmFkZWWxb98+Pv30UyIjI1mwYAFz584lMzOT1atX\nExUVxUsvvQRAXFwcmZmZxMXF0apVK3JycnRKSkTEg4wWxosvvnjD+3fv3n3D++fNm8e8efOaMpKI\niNTC605JtXTJycmmIzSYL2cH5TdN+b2fw7KsZrWBksPhoJn9kUREmpw7n506whAREbeoMERExC0q\nDBERcYsKQ0RE3KLCEBERt6gwRETELSoMERFxiwpDRETcosIQERG3qDBERMQtKgwREXGLCkNERNyi\nwhAREbeoMERExC0qDBERcYsKQ0RE3KLCEBERt6gwRETELa1MB5B/OHECTp82naLlCguD6GjTKUS8\nl/b09iK33w7+/tC6tekkLdPx4/DYYzBjhukkIp7nzmenjjC8SHU1vPgixMebTtIyFRXB3XdDYSEs\n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\nImzdCg88AMuW2WtSmaDCEBHxAQMGwKFDsGYNzJwJX+8+4VEqDBERH9GlCxw8COXlMHIkeHq3bBWG\niIgPadvWnnKblGRfGX78uOfeW4UhIuJj/P1hyRJ4+GEYPBjefNMz76vCEBHxUdnZ9tTbiRNh5cqm\nfz8VhoiID0tJgQMH4He/g4cegurqpnsvI4Xx8ssvEx8fj7+/P0ePHr3msUWLFhETE0NsbCw7d+50\n3n/kyBESEhKIiYnhwQcf9HRkERGvFRNjLyfy/vv2pkwXLjTN+xgpjISEBDZv3syQIUOuub+wsJCN\nGzdSWFjIjh07mD17tnPLwFmzZrF69WqKioooKipix44dJqKLiHilkBB44w178cKBA6G4uPHfw0hh\nxMbG0r179+vu37p1K1lZWQQEBBAVFUV0dDT5+fmUl5dz8eJF+vbtC8CUKVPYsmWLp2OLiHi1gAB4\n+mn7Oo2BA+0puI3Jq8YwTp06RUREhPP7iIgIysrKrrs/PDycMm/fmkpExACHA372M3j2WXu59PXr\nG+9nN9l+GMOHD+f06dPX3f/444+TlpbWVG8LwPz58523k5OTSU5ObtL3ExHxNqmpsHevPabxwQew\ncKG9NtU3cnNzyc3NBdy/ALDJCmPXrl31fk14eDilpaXO70+ePElERATh4eGcPHnymvvDw8Nr/TlX\nF4aISEsVHw/5+XDPPfYWsM89B23a2I9d/cv088/D55//xuXPM35KyrpqFa309HQ2bNhAZWUlxcXF\nFBUV0bdvXzp27EhwcDD5+flYlsX69esZO3aswdQiIr4hNBR274agIBgyBG7mbL6Rwti8eTORkZHk\n5eUxevRoUlNTAYiLiyMzM5O4uDhSU1PJycnB8fX+hDk5OWRnZxMTE0N0dDSjRo0yEV1ExOcEBsLa\ntfZRRv/+cORIw36Ow7JMLZTbNBwOB83sjyQi0mg2b4YZM+C//gvGj7fvi46GEydcf3Y22RiGiIh4\nn4wM+1qNMWPg2DGYN8/916owRERamMRE+8rwMWPsGVSVle69zvigt4iIeF7nzrBvn10WV01OrZPG\nMEREWrCaGntcY/x415+dKgwREXHrs1OnpERExC0qDBERcYsKQ0RE3KLCEBERt6gwRETELSoMERFx\niwpDRETcosIQERG3qDBERMQtKgwREXGLCkNERNyiwhAREbeoMERExC0qDBERcYsKQ0RE3KLCEBER\nt6gwRETELSoMERFxiwpDRETcosIQERG3qDBERMQtKgwREXGLCkNERNyiwhAREbeoMERExC0qDBER\ncYsKQ0RE3KLCEBERt6gwRETELSoMERFxi5HCePnll4mPj8ff35+jR4867y8pKeG73/0uiYmJJCYm\nMnv2bOdjR44cISEhgZiYGB588EETsUVEWjQjhZGQkMDmzZsZMmTIdY9FR0dTUFBAQUEBOTk5zvtn\nzZrF6tWrKSoqoqioiB07dngyssfk5uaajtBgvpwdlN805fd+RgojNjaW7t27u/388vJyLl68SN++\nfQGYMmUKW7Zsaap4RvnyPzpfzg7Kb5ryez+vG8MoLi4mMTGR5ORkDhw4AEBZWRkRERHO54SHh1NW\nVmYqoohIi9SqqX7w8OHDOX369HX3P/7446Slpd3wNZ07d6a0tJSQkBCOHj3K2LFjef/995sqooiI\n1IdlUHJysnXkyBGXj586dcqKjY113v/CCy9YM2fOvOFrunXrZgH60pe+9KWvenx169bN5Wd2kx1h\nuMuyLOftTz/9lJCQEPz9/fnoo48oKirin/7pn2jXrh3BwcHk5+fTt29f1q9fz5w5c2748z788ENP\nRRcRaVGMjGFs3ryZyMhI8vLyGD16NKmpqQDs27ePO+64g8TERCZMmMDKlStp164dADk5OWRnZxMT\nE0N0dDSjRo0yEV1EpMVyWFf/ii8iIlILr5sl1VA7duwgNjaWmJgYnnjiCdNx6u2+++4jLCyMhIQE\n01HqrbS0lJSUFOLj47nttttYvny56Uj1cvnyZfr160evXr2Ii4vj3//9301HapDq6moSExNrnVTi\nzaKiorj99ttJTEx0Tp/3FefPn2f8+PH07NmTuLg48vLyTEdy27Fjx5wXSicmJnLrrbfW/d9vPcep\nvVJVVZXVrVs3q7i42KqsrLTuuOMOq7Cw0HSsennrrbeso0ePWrfddpvpKPVWXl5uFRQUWJZlWRcv\nXrS6d+/uc3//FRUVlmVZ1pUrV6x+/fpZ+/fvN5yo/pYuXWpNnDjRSktLMx2l3qKioqzPPvvMdIwG\nmTJlirV69WrLsux/P+fPnzecqGGqq6utjh07Wv/7v/9b63OaxRHG4cOHiY6OJioqioCAAO699162\nbt1qOla9DB48mJCQENMxGqRjx4706tULgKCgIHr27MmpU6cMp6qf1q1bA1BZWUl1dTXt27c3nKh+\nTp48yRtvvEF2dvY1E0l8iS/m/r//+z/279/PfffdB0CrVq249dZbDadqmN27d9OtWzciIyNrfU6z\nKIyysrJjFZu/AAAGPklEQVRr/pARERG6sM+QkpISCgoK6Nevn+ko9VJTU0OvXr0ICwsjJSWFuLg4\n05Hq5V/+5V/47W9/i5+fb/4n7XA4uOuuu+jTpw+rVq0yHcdtxcXFhIaGMn36dJKSknjggQe4dOmS\n6VgNsmHDBiZOnFjnc3zzX9e3OBwO0xEE+OKLLxg/fjy///3vCQoKMh2nXvz8/HjnnXc4efIkb731\nlk8t8/Daa6/RoUMHEhMTffK3dICDBw9SUFDA9u3befrpp9m/f7/pSG6pqqri6NGjzJ49m6NHj9Km\nTRsWL15sOla9VVZW8uqrrzJhwoQ6n9csCiM8PJzS0lLn96WlpdcsJSJN78qVK4wbN46f/OQnjB07\n1nScBrv11lsZPXo0f/3rX01Hcdtf/vIXtm3bRteuXcnKymLPnj1MmTLFdKx66dSpEwChoaFkZGRw\n+PBhw4ncExERQUREBHfeeScA48ePv2YFbl+xfft2evfuTWhoaJ3PaxaF0adPH4qKiigpKaGyspKN\nGzeSnp5uOlaLYVkW999/P3FxcTz00EOm49Tbp59+yvnz5wH48ssv2bVrF4mJiYZTue/xxx+ntLSU\n4uJiNmzYwNChQ3nuuedMx3LbpUuXuHjxIgAVFRXs3LnTZ2YLduzYkcjISI4fPw7Y4wDx8fGGU9Xf\niy++SFZWlsvnGb/SuzG0atWKp556ipEjR1JdXc39999Pz549Tceql6ysLPbt28dnn31GZGQkCxYs\nYPr06aZjueXgwYM8//zzzmmRAIsWLfKZiyvLy8uZOnUqNTU11NTUMHnyZIYNG2Y6VoP52inaM2fO\nkJGRAdineCZNmsSIESMMp3LfihUrmDRpEpWVlXTr1o01a9aYjlQvFRUV7N69262xI124JyIibmkW\np6RERKTpqTBERMQtKgwREXGLCkNERNyiwhAREbeoMERExC0qDGkRmnqpkieffJIvv/yy0d/v1Vdf\n9cnl+qV50nUY0iK0bdvWeTVxU+jatSt//etf+d73vueR9xMxQUcY0mKdOHGC1NRU+vTpw5AhQzh2\n7BgA06ZN48EHH2TQoEF069aNTZs2AfaKtrNnz6Znz56MGDGC0aNHs2nTJlasWMGpU6dISUm55grx\nX/7yl/Tq1YsBAwbwySefXPf+Dz30EI8++igAf/7zn/nhD3943XPWrl3Lz372szpzXa2kpITY2Fim\nT59Ojx49mDRpEjt37mTQoEF0796dt99+++b/4qTl8sC+HCLGBQUFXXff0KFDraKiIsuyLCsvL88a\nOnSoZVmWNXXqVCszM9OyLMsqLCy0oqOjLcuyrJdfftn60Y9+ZFmWZZ0+fdoKCQmxNm3aZFnW9RsA\nORwO67XXXrMsy7Iefvhha+HChde9/6VLl6z4+Hhrz549Vo8ePayPPvrouuesXbvW+ulPf1pnrqsV\nFxdbrVq1st577z2rpqbG6t27t3XfffdZlmVZW7dutcaOHevy70qkNs1iLSmR+vriiy84dOjQNcs5\nV1ZWAvZaTN+suNuzZ0/OnDkDwIEDB8jMzARw7ptRm1tuuYXRo0cD0Lt3b3bt2nXdc7773e+yatUq\nBg8ezO9//3u6du1aZ+bacn1b165dnQvgxcfHc9dddwFw2223UVJSUud7iNRFhSEtUk1NDe3ataOg\noOCGj99yyy3O29bXw3wOh+Oa/SasOob/AgICnLf9/Pyoqqq64fPeffddQkND3d7w60a5vi0wMPCa\n9/7mNXXlEHGHxjCkRQoODqZr16688sorgP3h++6779b5mkGDBrFp0yYsy+LMmTPs27fP+Vjbtm25\ncOFCvTJ8/PHH/O53v3NuHHSjPSDqKiURT1NhSItw6dIlIiMjnV9PPvkkf/zjH1m9ejW9evXitttu\nY9u2bc7nX71E+De3x40bR0REBHFxcUyePJmkpCTn/s0zZsxg1KhRzkHvb7/+20uOW5ZFdnY2S5cu\npWPHjqxevZrs7GznabHaXlvb7W+/prbvfW3pc/EumlYrUg8VFRW0adOGzz77jH79+vGXv/yFDh06\nmI4l4hEawxCph7vvvpvz589TWVnJr371K5WFtCg6whAREbdoDENERNyiwhAREbeoMERExC0qDBER\ncYsKQ0RE3KLCEBERt/w/DSM1oLe5H2sAAAAASUVORK5CYII=\n",
+ "text": [
+ "<matplotlib.figure.Figure at 0x5cb7750>"
+ ]
+ },
+ {
+ "metadata": {},
+ "output_type": "display_data",
+ "png": "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\n1FS8vLzw8PDAxcWFfv36kZiYqHescnnkkUe455579I5RIY0aNSIwMBCAWrVq0bx5c06cOKFzqvK5\n++67ASgsLKS4uJh69erpnKh8jh8/zooVKxg6dOgNG0lsiS3m/vPPP9mwYQNDhgwBoFq1atSpU0fn\nVBWzZs0aPD09ady4camfYxcFIzs7+4Y/pLu7uxzs00lmZia7d+8mNDRU7yjlUlJSQmBgIA0bNqRj\nx474+fnpHalcXn/9dT766COcnGzzn7TBYKBz5860bt2aWbNm6R3HZMeOHaN+/fo8++yztGrViuef\nf54LFy7oHatC5s2bR//+/e/4Obb5t+sm1/ejEvo5f/48vXv3ZurUqdSqVUvvOOXi5OTEnj17OH78\nOD///LNNtXlYtmwZDRo0ICgoyCa/SwfYtGkTu3fvZuXKlXzyySds2LBB70gmKSoqYteuXQwfPpxd\nu3ZRs2ZN4uPj9Y5VboWFhSxdupQ+ffrc8fPsomC4ubmRlZVl/DgrK+uGViLC8q5cuUKvXr14+umn\n6dGjh95xKqxOnTp069aNHTt26B3FZJs3b2bJkiU0bdqU6Oho1q5dy6BBg/SOVS73338/oBqQ9uzZ\nk9TUVJ0Tmcbd3R13d3ceeughAHr37s2uXbt0TlV+K1euJDg4mPr169/x8+yiYLRu3ZrDhw+TmZlJ\nYWEh8+fP5/HHH9c7lsPQNI3nnnsOPz8/XnvtNb3jlNvp06fJy8sD4OLFiyQnJxMUFKRzKtNNmDCB\nrKwsjh07xrx583j00Uf56quv9I5lsgsXLpCfnw9AQUEBq1evtpndgo0aNaJx48akp6cDah3A399f\n51Tl9/333xMdHV3m5+l+0tscqlWrxvTp0+nSpQvFxcU899xzNG/eXO9Y5RIdHc369es5c+YMjRs3\n5oMPPuDZZ5/VO5ZJNm3axDfffGPcFgkQFxdnM4crc3JyGDx4MCUlJZSUlDBw4EA6deqkd6wKs7Up\n2pMnT9KzZ09ATfEMGDCAiIgInVOZbtq0aQwYMIDCwkI8PT2ZO3eu3pHKpaCggDVr1pi0diQH94QQ\nQpjELqakhBBCWJ4UDCGEECaRgiGEEMIkUjCEEEKYRAqGEEIIk0jBEEIIYRIpGMJhWbp9iYeHB2fP\nnr3l8fXr17Nly5bbPmfp0qU22Z5fOAa7OLgnREVY+oCbwWC4bW+ndevW4erqesM1xNdERUXZ5H0W\nwjHICEOI62RkZBAZGUnr1q1p3749hw4dAuCZZ55hxIgRtG3bFk9PTxYuXAioLrfDhw+nefPmRERE\n0K1bN+PvgToFHBwcTMuWLTl06BCZmZl8+umnfPzxxwQFBbFx48Yb3v+LL77gH//4xx3f83qZmZn4\n+vry7LPP0qxZMwYMGMDq1atp27YtPj4+bN++3VL/qYQDkoIhxHVeeOEFpk2bxo4dO/joo48YPny4\n8fdyc3PZtGkTy5YtIyYmBoAff/yR//73vxw4cICvv/6aLVu23DByqV+/Pjt37uSll15i0qRJeHh4\n8OKLL/LGG2+we/du2rVrd8P73zzqud173iwjI4ORI0dy8OBBDh06xPz589m0aROTJk1iwoQJ5vpP\nI4RMSQlxzfnz59myZcsNLZ4LCwsB9YX8Whfe5s2bc/LkSQA2btxI3759AYx3aVzvySefBKBVq1b8\n+OOPxsdN6chT2nverGnTpsaGd/7+/nTu3BmAFi1akJmZWeb7CGEqKRhCXFVSUkLdunXZvXv3bX+/\nevXqxl9f+4J/8zrFzYWgRo0aADg7O1NUVFTuTLd7z5tdew9Q93pce46Tk1OF3lOI0siUlBBX1a5d\nm6ZNm/LDDz8A6gv0vn377victm3bsnDhQjRN4+TJk6xfv77M93F1dTW2876Z9AIV1kwKhnBYFy5c\noHHjxsYfU6ZM4dtvv2X27NkEBgbSokULlixZYvz869cXrv26V69euLu74+fnx8CBA2nVqtVt73Q2\nGAzG50RFRbFo0SKCgoLYtGlTqZ9X2nve7rVL+9jWWp0L6ybtzYWopIKCAmrWrMmZM2cIDQ1l8+bN\nNGjQQO9YQpidrGEIUUndu3cnLy+PwsJC3nvvPSkWwm7JCEMIIYRJZA1DCCGESaRgCCGEMIkUDCGE\nECaRgiGEEMIkUjCEEEKYRAqGEEIIk/w/Ax1NdOgaZEcAAAAASUVORK5CYII=\n",
+ "text": [
+ "<matplotlib.figure.Figure at 0x5d72690>"
+ ]
+ }
+ ],
+ "prompt_number": 17
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 3.3.8,Page No.110"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "import numpy as np\n",
+ "%matplotlib inline\n",
+ "\n",
+ "#Initilization of Variables\n",
+ "\n",
+ "L=6 #m #Span Of beam\n",
+ "w=30 #KN/m #u.d.l\n",
+ "\n",
+ "#Calculations\n",
+ "\n",
+ "#Due to Symmetry\n",
+ "#Let R_B and R_C be the reactions at B & C Respectively\n",
+ "R_B=R_C=w*L*2**-1 #KN\n",
+ "\n",
+ "#Let a be the overhang.The Max -ve moment occurs at the support and max +ve moment at middle of the beam\n",
+ "#Now Equating these two equations we get\n",
+ "#30*a*a*2**-1=90*(3-a)-w*L*2**-1*L*4**-1\n",
+ "#After simplifying we get an equation as\n",
+ "#a**2+6*a-9=0\n",
+ "x=1\n",
+ "y=6\n",
+ "z=-9\n",
+ "\n",
+ "p=y**2-4*x*z\n",
+ "\n",
+ "a1=(-y+p**0.5)*2**-1\n",
+ "a2=(-y-p**0.5)*2**-1\n",
+ "\n",
+ "#Now Length cannot be negative,so taking a1 into Consideration\n",
+ "\n",
+ "L_CD=L_AB=a1\n",
+ "L_BC=L-2*a1\n",
+ "\n",
+ "#Shear Force Calculations\n",
+ "\n",
+ "#S.F At D\n",
+ "V_D=0\n",
+ "\n",
+ "#S.F At C\n",
+ "V_C1=V_D-w*L_CD #KN\n",
+ "V_C2=V_C1+R_C #KN\n",
+ "\n",
+ "#S.F At B\n",
+ "V_B1=-w*(L_BC+L_CD)+R_C\n",
+ "V_B2=V_B1+R_B\n",
+ "\n",
+ "#S.F At A\n",
+ "V_A=round(V_B2,2)-round(w*L_AB,2)\n",
+ "\n",
+ "#Bending Moment Calculations\n",
+ "\n",
+ "#B.M At D\n",
+ "M_D=0\n",
+ "\n",
+ "#B.M At C\n",
+ "M_C=w*L_CD*L_CD*2**-1 #KN.m\n",
+ "\n",
+ "#B.M At B\n",
+ "M_B=w*(L_BC+L_CD)*(L_BC+L_CD)*2**-1-R_C*L_BC*L_BC*2**-1\n",
+ "\n",
+ "#B.M At A\n",
+ "X=w*L*L*2**-1\n",
+ "Y=-R_C*(L_AB+L_BC)-R_B*L_AB\n",
+ "M_A=X+Y\n",
+ "\n",
+ "#Result\n",
+ "print \"The Shear Force and Bending Moment Diagrams are the results\"\n",
+ "\n",
+ "#Plotting the Shear Force Diagram\n",
+ "\n",
+ "X1=[0,L_CD,L_CD,L_CD+L_BC,L_CD+L_BC,L_CD+L_BC+L_AB]\n",
+ "Y1=[V_D,V_C1,V_C2,V_B1,V_B2,V_A]\n",
+ "Z1=[0,0,0,0,0,0]\n",
+ "plt.plot(X1,Y1,X1,Z1)\n",
+ "plt.xlabel(\"Length x in m\")\n",
+ "plt.ylabel(\"Shear Force in kN\")\n",
+ "plt.show()\n",
+ "\n",
+ "#Plotting the Bendimg Moment Diagram\n",
+ "\n",
+ "X2=[0,L_CD,L_BC+L_CD,L_AB+L_BC+L_CD]\n",
+ "Y2=[M_D,M_C,M_B,M_A]\n",
+ "Z2=[0,0,0,0]\n",
+ "plt.plot(X2,Y2,X2,Z2)\n",
+ "plt.xlabel(\"Length in m\")\n",
+ "plt.ylabel(\"Bending Moment in kN.m\")\n",
+ "plt.show()"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "The Shear Force and Bending Moment Diagrams are the results\n"
+ ]
+ },
+ {
+ "metadata": {},
+ "output_type": "display_data",
+ "png": "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\nAElFTkSuQmCC\n",
+ "text": [
+ "<matplotlib.figure.Figure at 0x5cabbb0>"
+ ]
+ },
+ {
+ "metadata": {},
+ "output_type": "display_data",
+ "png": "iVBORw0KGgoAAAANSUhEUgAAAYwAAAEPCAYAAABRHfM8AAAABHNCSVQICAgIfAhkiAAAAAlwSFlz\nAAALEgAACxIB0t1+/AAAIABJREFUeJzt3XlYVeXaBvB7y+AEipmiggYCCggJSGBZiQoO4IDzlFNp\npql06rLhnJNp5XTMk2JZ5oeanUpTQjQTsQGnUlSwQTJRwZhTCwUBEVjfH69sRUAWsPZee7h/18WV\nrL2GZ1vtZ7/D874aSZIkEBER1aGJ2gEQEZFxYMIgIiJZmDCIiEgWJgwiIpKFCYOIiGRhwiAiIlks\n1Q6gNk5OTmjVqhUsLCxgZWWFxMRE/PXXXxg/fjwuXboEJycnfPHFF7Czs1M7VCIis2CwLQyNRoOE\nhAQkJycjMTERALBixQqEhITg3LlzGDBgAFasWKFylERE5sNgEwYA3FtTuHv3bkybNg0AMG3aNOza\ntUuNsIiIzJLBJgyNRoPg4GD4+/tj48aNAIC8vDzY29sDAOzt7ZGXl6dmiEREZsVgxzCOHj2Kjh07\n4vLlywgJCYG7u3uV1zUaDTQajUrRERGZH4NNGB07dgQAtGvXDiNHjkRiYiLs7e2Rm5uLDh06ICcn\nB+3bt692naurKy5cuKDvcImIjJqLiwvOnz9/33MMskuqqKgIBQUFAIAbN24gPj4e3t7eGD58OD7+\n+GMAwMcff4zw8PBq1164cAGSJJnszxtvvKF6DHxvfH98f6b3I+eLtkG2MPLy8jBy5EgAQFlZGSZP\nnoyBAwfC398f48aNQ1RUlHZaLRER6YdBJgxnZ2ecPn262vEHHngA33zzjQoRERGRQXZJUe2CgoLU\nDkFnTPm9AXx/xs7U358cGkmSTGoDJY1GAxN7S0REOifns5MtDCIikoUJg4iIZGHCICIiWZgwiIhI\nFiYMIiKShQmDiIhkYcIgIiJZmDCIiEgWJgwiIpKFCYOIiGRhwiAiIlmYMIiISBYmDCIiksUg98Og\nxrl+HTh6FEhIAA4eBGxtgW3bgLZt1Y6MiIwZWxgm4No1YO9e4OWXgYAAoFMn4D//AZo3B1asAPz8\ngMcfB/74Q+1IiciYsYVhhPLzgSNH7rQgfvtNJIqgIGDVKiAwEGjW7M75QUGAvb1IGvv2AT16qBQ4\nERk1bqBkBPLzgcOHRYJISADOnRNJoW9fkQwCAoCmTeu+z//+B7z0EhATAzz2mI6DJiKjIuezkwnD\nAP31150EcfAgkJoK9O4tkkPfvsAjj8hLEDWJiwOmTAG2bAHCwhQMmoiMGhOGkbh6tWoL4uJF4NFH\n77Qg/P0Ba2vlnnf8ODBiBLByJTBtmnL3JSLjxYRhoK5cAQ4dutOCSEsTXUSVLQh/f8DKSrcxnD0L\nDB4MPP88sHChbp9FRIaPCcNAXL58J0EkJIjZSn363GlB+PnpPkHUJDNTJI3Bg8WsqiacM0dktpgw\nVPLnn6LlUNmCyMgQM5QqWxB+foClgcxP++svYNgwoGtXYNMmdRIXEamPCUNP8vLuJIiEBCA7G3ji\niTstCB8fw0kQNSkqAsaPB8rKgJ07gZYt1Y6IiPSNCUNHcnKqtiByc0WCqGxB+PgAFhY6DUFxZWXA\nrFmipmPvXlaFE5kbJgyFZGdXbUFcvgw8+eSdFsTDDxtfgqiJJAGvvQbExgL79wNduqgdERHpCxNG\nA2VmVm1BXL0qEkRlC8Lb2zQSRG3efVf8sCqcyHyYZMKIi4vDCy+8gPLycsycOROvvPJKldcbkjAy\nMqq2IPLzRWKobEF4eZnfDKJPPwVefJFV4UTmwuQSRnl5Obp3745vvvkGDg4OeOSRR/D555/Dw8ND\ne46cN/3HH3eSw8GDYnXXyuTQt6/4Vm1uCaImlVXhmzcDQ4eqHQ0R6ZKcz04DnrtTXWJiIlxdXeHk\n5AQAmDBhAmJjY6skjJqkp1dtQdy4cSc5vPQS4OHBBFGTwYOBr74SVeErVgDTp6sdERGpyagSRlZW\nFjp37qz93dHREcePH692XlrandZDQgJQXCwSRFCQqGr28AA0Gn1FbdwCA8Xf4eDBor5k4UL+3RGZ\nK6NKGBqZn1R3L7Px6qtA9+78kGsMd3exnPrgwaLmZNUqtsiITMnMmfLOM6qE4eDggIyMDO3vGRkZ\ncHR0rHZebncNtuWIXeZwDICz/mI0aWOBMwD++5bagRBRo6UBSK/fJUY16F1WVobu3bvj22+/RadO\nnRAQENCgQW9qOFaFE5mWKVOAnj2BhQvr/uw0qo4FS0tLvPfeexg0aBA8PT0xfvz4Oge8SVktWoip\nth07Av37i5V3icg45eSIiS3PPCPvfKNqYcjBFoZ+SBLwz38Cu3axKpzIWC1eLMYlP/jABOsw5GDC\n0K81a4D//pdV4UTG5uZN4KGHgO++Azw9TbAOgwzPCy8A7dqJ7qkvvxT7fBCR4duxQyxz5Okp/xqj\nGsMgwzR5MrB1KxAeLvpDiciwSRKwdi0QEVG/65gwSBGDBoll0WfOBLZsUTsaIrqfY8eAv/8GQkPr\ndx27pEgxAQF3qsLz8oCXX2bBJJEhiowE5s2rfwEuB71JcVlZImmEhADvvMOqcCJDkpUlxi7S0oDW\nre8cl/PZyf+VSXEODsChQ0BiIjB1KlBaqnZERFTpgw/EuOPdyUIutjBIZ4qKgAkTRMLYuROwsVE7\nIiLzVlIiptIeOiTW2LsbWxikqhYtxFRbBwdgwABWhROpbds2wM+verKQq86EsWfPHvj6+qJNmzaw\ntbWFra0tWrVq1bCnkdmxtAT+7/9EncbjjwOXLqkdEZF5kiQx2L1gQcPvUWeXlIuLC2JiYuDl5YUm\nRjB6yS4pw7VmDbB6tagK9/JSOxoi83L4sJj2/ttvNU9EUaTS29HRET169DCKZEGG7YUXgPbtRfcU\nq8KJ9CsyEpg/v3GzFutsYRw7dgyLFi1Cv379YG1tLS7SaPDiiy82/Kk6xBaG4du/H3jqKWDTJmDY\nMLWjITJ9f/wB+PiILmFb25rPUWTQ+/XXX4eNjQ1KSkpQWFiIwsJCFBQUNChoIuBOVfizzwKbN6sd\nDZHp++ADMcW9tmQhV50tDC8vL/z666+Ne4oesYVhPH7/XSSPOXNYFU6kK0VFYirtjz8Crq61n6dI\nCyM0NBT79++vd5BEdeneHTh6FPjf/4CXXgIqKtSOiMj0fPYZ0Lv3/ZOFXHW2MGxsbFBUVARra2tY\nWVmJizQaXL9+vfFP1wG2MIzP338Dw4eLTZg2bwZuD5URUSNJkth+dfVqsVTP/SjSwigsLERFRQVK\nSkpQUFCAgoICg00WZJzatAHi44HCQpE4CgvVjojINBw8CJSVAcHBytyPc2XJIDRvDkRHsyqcSElr\n14qptEqNDzYoYfj6+irzdKK7VFaFDxjAqnCixkpLE2tGTZ2q3D25+CAZpLVrxdLorAonapiFC8UY\nxjvvyDtfzmcnEwYZrM8/F9Xh0dGixUFE8ty4IabSnjgBODvLu6ZRS4M43+cpGo0GFy9elBcFUQNN\nnAi0bQuMGgVERbEqnEiuTz4RX7LkJgu5am1hXLlr1FGj0aCiogLbt2/HO++8g169eiE6OlrZSBTC\nFobpSUwERowAli0DZsxQOxoiwyZJQI8ewPvvA/36yb+uUS2MBx98EABQUVGBrVu3YtWqVfDx8cHX\nX38NT09P+VEQNdK9e4W/8gqrwolq8+23gIUFEBSk/L1rTRilpaXYtGkT3n33XTz++OOIjY2FqxKl\ngkQNUFkVPmiQSBqrV3OvcKKaVO55oYsvVbV2STk6OsLS0hIRERHo0qULNLefLkkSNBoNRo0apXw0\nCmCXlGljVThR7S5cEMuAXLokdrysj0bNkpo+fbr2JjXZbKDLjDJhmL7iYrFX+M2b3Cuc6G7/+AfQ\ntCmwYkX9r1VkWm1JSQmaNWtW5djVq1fRtm3b+kekB0wY5qGsDJg9G/jlF7FUert2akdEpK6CAsDJ\nCUhOFi3w+lJkLalRo0bh1q1b2t9zcnIQUtcqVo2wePFiODo6wtfXF76+vti3b5/2teXLl8PNzQ3u\n7u6Ij4/XWQxk+CqrwkNCWBVOBABbt4pZUQ1JFnLVuUXryJEjMW7cOOzcuRMZGRkYPnw43pFbOtgA\nlbv53bujX0pKCrZv346UlBRkZWUhODgY586d49axZkyjAZYuBeztRdJgVTiZq4oKMdi9caNun1Nn\nwpg1axZu3ryJESNG4NKlS/jwww/RR8ebMdfULIqNjcXEiRNhZWUFJycnuLq6IjExEb1799ZpLGT4\nFiwQXVIDBrAqnMxTfLwY5H7iCd0+p9aEsXr1agB3+rUyMjLQs2dPHDt2DMePH9fpnt7r1q3D1q1b\n4e/vj9WrV8POzg7Z2dlVkoOjoyOysrJ0FgMZl7urwv/v/8RMKiJzocuptHerNWEUFBRUmSE1cuRI\naDQaFCqwWUFISAhyc3OrHV+6dCnmzJmDRYsWARD7ib/00kuIioqq8T61zeBavHix9s9BQUEI0kUF\nCxmcgQPFAPjw4WJ59KefVjsiIt07dw44eRL48sv6XZeQkICEhIR6XWPQiw+mp6dj2LBh+OWXX7Di\n9jyxV199FQAwePBgLFmyBIGBgVWu4SwpOndOFPg9+yzw6qusCifTNn8+0KqVGM9rDEVmSelbTk6O\n9s8xMTHw9vYGAAwfPhzbtm1DaWkp0tLSkJqaioCAALXCJAPWrZuoCv/8czEvnXuFk6m6dg349FNg\n7lz9PK/OQW99e+WVV3D69GloNBo4Oztjw4YNAABPT0+MGzcOnp6esLS0xPr162vtkiLq1ElsHjN8\nOPDUU8CWLawKJ9OzZYvoinVw0M/zDLpLqiHYJUV3Ky4WA+LFxWIGFavCyVRUVIjW9NatwGOPNf5+\njVqtttKff/6JjRs3Ij09HWVlZdobb9q0qfEREulY8+Zi+ZDnngP692dVOJmOr78G7OyARx/V3zPr\nTBgjRozAk08+iZCQEG2RHLuCyJhYWoqCptdfFzUa+/eLJRSIjFlkJBARod9JHXV2Sfn4+OD06dP6\niqfR2CVF97NuHfCf/4hvZ7fnUxAZnZQU0WK+dEksNqgERWZJDR06FHv37lUmIiKVzZ8PrFoFBAcD\nhw+rHQ1Rw7z3nlh8U6lkIVedLQwbGxsUFRXB2toaVlZW4iKNBtevX9dLgPXFFgbJceAAMHkyq8LJ\n+Pz9N9C1q2hldOyo3H0VGfRWorKbyNCEhIhuqWHDgMuXgWeeUTsiInk2bQLCwpRNFnLV2sL47bff\n4OHhgaSkpBov9PPz02lgDcUWBtUHq8LJmJSXA66uwPbtYq97JTVqA6VZs2Zh48aNCAoKqnFW1Pff\nf69MlApjwqD6ys4GBg8Wewm8+y73CifDFRsLLF8OHDum/L0V2XHP2DBhUEPk54uxDEdHVoWT4erf\nH5g5E5g0Sfl7G+VaUkRqsLMT9RlFRcDQoWK7SyJD8ssvwNmzwJgx6sXAhEF0W2VV+EMPiW9yly+r\nHRHRHevWAXPmqNv6ZZcU0T0kCVi0CPjiC1aFk2G4elUMdp89K7Yk1gVFuqQGDBgg6xiRqdBogLfe\nAubNE0uJ/Pyz2hGRuausF9JVspCr1jqM4uJiFBUV4fLly/jrr7+0x69fv86tUckszJ8vFioMCRFd\nVbreL5moJmVlwPvvAzExakdyn4SxYcMGrF27FtnZ2ejVq5f2uK2tLebNm6eX4IjUNmEC8OCDwOjR\nYgHDESPUjojMTWws0KULcNfHsGrqHMOIjIzEggUL9BVPo3EMg3Th5ElRFf7WW2JaI5G+9O0LPP88\nMG6cbp+jWB3GDz/8UGU/DACYOnVq4yPUASYM0pVz50SB38yZwGuvsSqcdO/0afFF5eJF4PZSfjqj\nyFpSTz31FC5evAgfHx9YWFhojxtqwiDSlW7dgCNHgCFDgLw8VoWT7kVGiv26dZ0s5KqzheHh4YGU\nlBSj2TSJLQzStfx8MZbRqRPw8cesCifduHxZfElJTRXjaLqmyLRaLy8v5OTkKBYUkbGzswPi4oCS\nElaFk+5s3AiMGqWfZCFXnS2MoKAgnD59GgEBAWh6e7cOjUaD3bt36yXA+mILg/SlrEx0FyQni6XS\nuVc4KeXWLcDZWexB37Onfp6pyBjG4sWLq93MWLqniHTJ0hLYsEFUhffpA8THsyqclPHll6KyW1/J\nQi5Zs6TS09Nx/vx5BAcHo6ioCGVlZWjVqpU+4qs3tjBIDevWAStXipbGww+rHQ0Zuz59gJdeEl1S\n+qLIGMZHH32EsWPHYvbs2QCAzMxMjBw5UpkIiUzE/PnA6tWiKpx7hVNjnDwJZGYa5tbBdSaM999/\nH0eOHNG2KLp164Y///xT54ERGZvx44FPPxVV4bt2qR0NGavISFGoZ1nngIH+1ZkwmjZtqh3sBoCy\nsjKOYRDVIjhYdEvNmSMWjCOqj9xcYM8ew11NoM6E0bdvXyxduhRFRUU4cOAAxo4di2HDhukjNiKj\n5O8PHDoELFsmfjikRnJ99JFYAuSBB9SOpGZ1DnqXl5cjKioK8fHxAIBBgwZh5syZBtvK4KA3GYqc\nHLGUSN++wJo1rAqn+ystFbPs4uMBLy/9P1+RQW8LCws8++yz2LlzJ3bu3IlZs2Y1Olns2LEDPXr0\ngIWFBZKSkqq8tnz5cri5ucHd3V2bpADg1KlT8Pb2hpubGyIiIhr1fCJ96NgROHgQ+OknYPJk8YFA\nVJsdOwAPD3WShVx1Jow9e/bA19cXbdq0ga2tLWxtbRs9pdbb2xsxMTF48sknqxxPSUnB9u3bkZKS\ngri4OMydO1eb8ebMmYOoqCikpqYiNTUVcXFxjYqBSB8q9wq/eRMIC2NVONUuMhIw9O/CdSaMF154\nAR9//DGuXr2KgoICFBQU4Pr16416qLu7O7p161bteGxsLCZOnAgrKys4OTnB1dUVx48fR05ODgoK\nChAQEABALHy4i9NQyEg0aya+PTo7i73COcmQ7nX8uFg7KixM7Ujur86E4ejoiB49eqCJHjpgs7Oz\n4ejoWOXZWVlZ1Y47ODhw1z8yKhYWoip8yBCx7WtamtoRkSGJjBRbAt+1ILhBqnOm78qVKzFkyBD0\n69cP1reX5dRoNHjxxRfve11ISAhyc3OrHV+2bJnOZ1lVLmcCiLWwgoKCdPo8Ijk0GuDNN4H27cV2\nr6wKJwDIzgb27RPbsOpTQkICEhIS6nVNnQnj9ddfh62tLUpKSlBaj1G7AwcO1CsQQLQcMjIytL9n\nZmbC0dERDg4OyMzMrHLcwcGh1vvcnTCIDM28eSJpBAeLvcLvGcojM/Phh8DEiWK8S5/u/TK9ZMmS\nOq+pM2Hk5OQ06MNfrruncQ0fPhyTJk3Ciy++iKysLKSmpiIgIAAajQatWrXC8ePHERAQgE8++cSo\nto0lulflXPsxY8Tc+/BwtSMiNdy8Kf79f/+92pHIU+fARGhoKPbv36/oQ2NiYtC5c2ccO3YMYWFh\nGDJkCADA09MT48aNg6enJ4YMGYL169drp/CuX78eM2fOhJubG1xdXTF48GBFYyLSt+Bg0RUxdy6r\nws3V9u1iRVoPD7UjkafOwj0bGxsUFRXB2toaVrf3CdRoNI2eKaUrLNwjY5OaCgwaBDzzDPDPf3Kv\ncHMhSWJVgDffNIzZUYrsh1FYWKhYQERUnZsbcPSoqArPzQXWrmVVuDn44Qfg+nUxc85YyNoPIzY2\nFocOHYJGo0Hfvn0Nei0ptjDIWF27JvYK79BB7BV+15qfZILGjxf7XhjKcKycz846E8arr76KEydO\nYPLkyZAkCdu2bYO/vz+WL1+uaLBKYcIgY1ZSAkyaJCrCv/wSsLVVOyLShcxMMaU6PR0wlL3oFEkY\n3t7eOH36NCxuV5SUl5fDx8cHv/zyi3KRKogJg4xdebkYCD91StRqtG+vdkSktH/+EygsFAV7hkKR\nxQc1Gg3y8/O1v+fn5xvsSrVEpsDCQszNDw1lVbgpKi4Ws+LmzVM7kvqrc9D7tddeg5+fn7bA4+DB\ng1ixYoWu4yIya5VV4fb2oip8714x/ZKM3+efA488AtSwnJ7BkzXonZ2djRMnTkCj0SAgIAAdOnTQ\nR2wNwi4pMjVffCG+jbIq3PhJEuDrC6xcKaZSG5JGjWHcu09F5WmV3VF+fn5KxKg4JgwyRd9+K5aP\nYFW4cTt4EJg9G0hJMbyp041KGE2aNIGXlxfatm1b44XfG2gtOxMGmaqkJGDoUGDJEmDWLLWjoYYY\nPVoscf/882pHUl2jEsaaNWuwY8cO2NnZYfz48Rg5ciRsjWCOHxMGmbLz50VXxowZwL/+xapwY3Lp\nEuDnJ/5pY6N2NNUpMq32woUL2L59O3bt2oWHHnoI//rXv+Dj46NooEpiwiBTl5NzZ1+NyEjD69qg\nmr3yCnDrFvDf/6odSc0UmVbr4uKCESNGYODAgThx4gR+//13xQIkovqr3Cv811/FuMbNm2pHRHW5\ncQOIijLMrqj6qLWFceHCBWzbtg2xsbHo0qULxo8fj6FDh6J58+b6jrFe2MIgc1FSAkyeLJYUiYlh\nVbgh++gj4KuvgN271Y6kdo0e9Pb29kZ4eDha3a5dr7yhnB331MKEQeaksir85EmxVDqrwg2PJAHe\n3mJRyQED1I6mdo1arXbRokXaKbRcsZbIMFVWhS9eLBayi48HnJ3Vjoru9v33Imn07692JI0nq3DP\nmLCFQeZq/Xpg6VKx/hSrwg3HiBFimZfZs9WO5P4UmSVlbJgwyJzt2CEGVnfsAPr2VTsaungRCAgQ\nU2lbtlQ7mvtTZJYUERmPsWOBbdvEP2Ni1I6G3n8fePppw08WcrGFQWSCKqvCFy8Gnn1W7WjMU2Eh\n8NBDYpl6Jye1o6mbIlu0rl69usqNNBoNWrdujV69ehl0AR+ROfPzAw4dElXheXnAv//NqnB927pV\ndAsaQ7KQq84WxqRJk3Dy5EkMGzYMkiRh79698Pb2xqVLlzBmzBi88sor+opVFrYwiO7IzRV7hT/+\nuJjWeXsfNNKxigqgRw/ggw+A2ztDGDxFBr2feOIJ7Nu3Dza3Fz8pLCxEaGgo4uLi0KtXL/z222/K\nRawAJgyiqq5dEyvctm8vvvVyr3Ddi48HFi4ETp82npadIoPely9fhrW1tfZ3Kysr5OXloUWLFmjW\nrFnjoyQinWrdWhT1lZUBYWFiv3DSrchIYMEC40kWctU5hjF58mQEBgYiPDwckiRhz549mDRpEm7c\nuAFPT099xEhEjdSsmdiI6fnnRRcJq8J1JzUVOH5cTG02NbJmSZ04cQJHjx6FRqNBnz594O/vr4/Y\nGoRdUkS1kySxn8annwL79wNdu6odkemJiABatACWL1c7kvpRrHCvvLwcubm5KCsr0y4X0qVLF2Wi\nVBgTBlHdWBWuG9evi1lRP/0EdO6sdjT1o8i02nXr1mHJkiVo3749LO6aYvHLL780PkIiUsXcuaJL\nKiSEVeFK+vhjIDjY+JKFXHW2MFxcXJCYmFjrVq2Ghi0MIvm++w6YMEEsYDhqlNrRGLeKCsDdHdi0\nSUxjNjaKzJLq0qWLdnlzpezYsQM9evSAhYUFkpKStMfT09PRvHlz+Pr6wtfXF3PnztW+durUKXh7\ne8PNzQ0RERGKxkNkrvr3B+LigHnzxJ4N1HBxcWLr1T591I5Ed+rsknJ2dka/fv0QFhamnV7b2P0w\nvL29ERMTg9k1LN/o6uqK5OTkasfnzJmDqKgoBAQEaOtABg8e3OAYiEhgVbgyIiPFgLcp/93VmTC6\ndOmCLl26oLS0FKWlpdoNlBrD3d29Xufn5OSgoKAAAQEBAICpU6di165dTBhECnF1BY4eFXuF5+Wx\nKry+zp4FkpOBXbvUjkS36kwYixcv1kMYd6SlpcHX1xetW7fG22+/jccffxxZWVlwdHTUnuPg4ICs\nrCy9xkVk6jp0ABISRFX4xInAJ5+wKlyudevEIo+mXstca8KIiIjA2rVrMWzYsGqvaTQa7K5jc9qQ\nkBDk5uZWO75s2bIa7wkAnTp1QkZGBtq0aYOkpCSEh4fjzJkzdb2Hau5OckFBQQgylsVciFRWWRX+\n1FNi05+YGEDhIUyTk58PfPYZ0ICPKlUlJCQgISGhXtfUmjCmTJkCAHjppZcaFMyBAwfqfY21tbV2\nnMTPzw8uLi5ITU2Fg4MDMjMztedlZmbCwcGh1vvou1VEZEqaNQO2bxcD4f36iVoNe3u1ozJcmzeL\nrrxOndSOpH7u/TK9ZMmSOq+pNWFUVnPr+tv53dO4rly5gjZt2sDCwgIXL15EamoqunbtCjs7O7Rq\n1QrHjx9HQEAAPvnkEyxYsECncRGZMwsLUdy3ZImYIsqq8JqVlwPvvScq581BrQnD29u71os0Gg1+\n/vnnBj80JiYGCxYswJUrVxAWFgZfX1/s27cPBw8exBtvvAErKys0adIEGzZsgJ2dHQBg/fr1mD59\nOoqLixEaGsoBbyId02jEBkz29sATTwB79wLcAqeqvXuBtm2BwEC1I9GPWgv30tPTAYgPakB0UUmS\nhE9vp9KVK1fqJ8J6YuEekfJ27hTV4V98YTz7O+hDcDAwfboY8zF2iqwl5ePjg9OnT1c55uvrW2Ot\nhCFgwiDSDVaFV3XmjEgYly4Bd+0AYbQUqfSWJAlHjhzR/n706FF+IBOZof79xVjG/PnAhg1qR6O+\ndeuA554zjWQhV50tjFOnTmHGjBm4du0aAMDOzg6bN2+Gn5+fXgKsL7YwiHTrwgVg4EBg2jTg9ddN\nu7K5Nn/9Bbi4AL/9JupXTIFiy5sD0CaM1q1bNz4yHWLCINK93FwxlfSxx8SSGOZWFb5qFfDzz6K4\n0VQokjBKSkoQHR2N9PR0lJWVaW+8aNEi5SJVEBMGkX5cvy6qwh980LyqwsvKxFIqO3YAjzyidjTK\nUWQMY8SIEdi9ezesrKxgY2MDGxsbtGzZUrEgicg4tWolivokSVSFX7+udkT6sWePKNIzpWQhV50t\nDC8vL/z666/6iqfR2MIg0q/ycjEQfuyYWFbE1KvCg4LEYPeECWpHoixFWhiPPfZYo4r0iMi0WVgA\n778PjBgVQG6LAAAQ40lEQVQh9oK4eFHtiHTnp5+A1FRg9Gi1I1FHnS0MDw8PnD9/Hs7Ozmh6u5Oy\nsZXeusQWBpF6PvwQeOst060KnzkTcHYG/vUvtSNRniKD3pUV3/dycnJqaFw6xYRBpK7oaGDOHNOr\nCr9yBXBzA86dA9q1Uzsa5SnSJeXk5ISMjAx8//33cHJyQsuWLfmBTES1Gj1arHY7bpxIHqZi40Yx\nK8wUk4VcdbYwFi9ejFOnTuH333/HuXPnkJWVhXHjxuHo0aP6irFe2MIgMgzJycDQoaK477nn1I6m\ncW7dEqv17t4N+PqqHY1uyPnsrHPHvZiYGCQnJ6NXr14AxG53BQUFykRIRCbL17fqXuGLFhlvVfiu\nXWLswlSThVx1dkk1bdoUTZrcOe3GjRs6DYiITIeLi9grPDZWbMhUXq52RA0TGQlwCx4ZCWPs2LGY\nPXs28vPz8dFHH2HAgAGYOXOmPmIjIhNgby/2Cj97VtQu3LypdkT1k5QkVqQND1c7EvXJWksqPj4e\n8fHxAIBBgwYhJCRE54E1FMcwiAzTzZti34irV0UXj7HsFT59OuDuDrz6qtqR6Jaiiw8CwOXLl/Hg\ngw9CY8AdkUwYRIbL2KrC//wT6N4dOH9e7Kxnyho1rfbHH39EUFAQRo0aheTkZHh5ecHb2xv29vbY\nt2+f4sESkemrrAoPDxdV4RcuqB3R/X30ETBmjOknC7lqbWH06tULy5cvx7Vr1zBr1izExcWhd+/e\nOHv2LCZMmFBtFz5DwRYGkXGorAr/6ivDnH1UWipmRu3bBzz8sNrR6F6jWhjl5eUYOHAgxo4di44d\nO6J3794AAHd3d4PukiIi4/Dcc2L20aBBwPffqx1NddHRQLdu5pEs5Ko1YdydFJo1a6aXYIjIvIwe\nLZYQGT8e2LlT7Wiq4lTa6mrtkrKwsECLFi0AAMXFxWjevLn2teLiYu1mSoaGXVJExuf0aSAszHCq\nwhMTxdImFy6Yz26Cjar0LjfWChsiMjo+PoZVFR4ZKQoNzSVZyFWvabXGgC0MIuOVlyf2Cu/dG1i3\nTp0P7JwcwNNT7OvRpo3+n68WRVarJSLSl8qq8N9/F+MaJSX6j2HDBvFsc0oWcrGFQUQGp7Iq/MoV\nsQ6VvqrCb94EHnoI+O470cowJ2xhEJFRatoU2LZNfGj37Qvk5urnuV98AXh7m1+ykIsJg4gMkoUF\n8N57wMiR+qkKlyRg7VpOpb0fVRLGwoUL4eHhgZ49e2LUqFG4du2a9rXly5fDzc0N7u7u2gUPAeDU\nqVPw9vaGm5sbIiIi1AibiPRMoxEzpl5+GXjiCbEpk64cOwb8/TcQGqq7Zxg7VRLGwIEDcebMGfz0\n00/o1q0bli9fDgBISUnB9u3bkZKSgri4OMydO1fbpzZnzhxERUUhNTUVqampiIuLUyN0IlLB7Nmi\ntaHLqvDISLEwIqfS1k6VhBESEqLdlCkwMBCZmZkAgNjYWEycOBFWVlZwcnKCq6srjh8/jpycHBQU\nFCAgIAAAMHXqVOzatUuN0IlIJaNG6a4qPCsL2L8fmDFD2fuaGtXHMDZt2oTQ223A7OxsODo6al9z\ndHREVlZWteMODg7IysrSe6xEpK6gICA+HoiIAD74QLn7fvABMGkS0Lq1cvc0RXXu6d1QISEhyK1h\nasOyZcswbNgwAMDSpUthbW2NSZMm6SoMIjIxPj7A4cN3qsLfeKNxVeElJcDGjaLSnO5PZwnjwIED\n9319y5Yt+Prrr/Htt99qjzk4OCAjI0P7e2ZmJhwdHeHg4KDttqo87uDgUOu9Fy9erP1zUFAQgoKC\n6v8GiMhgde0KHDkiqsLz8sT4RkPHHrZtA/z8xEZJ5iQhIQEJCQn1u0hSwb59+yRPT0/p8uXLVY6f\nOXNG6tmzp3Tz5k3p4sWLUteuXaWKigpJkiQpICBAOnbsmFRRUSENGTJE2rdvX433VuktEZEKrl2T\npP79JWn0aEkqLq7/9RUVkuTjI0lff618bMZGzmenKpXebm5uKC0txQMPPAAAePTRR7F+/XoAostq\n06ZNsLS0xNq1azFo0CAAYlrt9OnTUVxcjNDQUERGRtZ4b1Z6E5mXmzeBKVOAy5fFXuH1GYc4fBh4\n5hng7FmgieojuupSfE9vY8CEQWR+ysvFQPjRo2KHvA4d5F03dizw5JNiOq25Y8IgIrMhScDbbwNb\ntoiZVC4u9z//jz/EAPqlS4CtrV5CNGiN2g+DiMiYaDRiAyZ7e1EVvnfv/fcKX78emDqVyaI+2MIg\nIpPz5Zdi575t24D+/au/XlQkVqX98UfA1VX/8RkirlZLRGZp1Chgxw5gwoSaq8I/+wwIDGSyqC92\nSRGRSerbFzhwQOwVfvkyMGeOOC5JYt2o1avVjc8YMWEQkcnq2fPOXuG5ucDixWJHv7IyIDhY7eiM\nDxMGEZm0rl3FdNvKqvDsbDGNtjHLiZgrDnoTkVm4fl2MbZw8CWRmAjY2akdkWFiHQUR0l5s3gbQ0\nwN1d7UgMDxMGERHJwmm1RESkGCYMIiKShQmDiIhkYcIgIiJZmDCIiEgWJgwiIpKFCYOIiGRhwiAi\nIlmYMIiISBYmDCIikoUJg4iIZGHCICIiWZgwiIhIFiYMIiKShQmDiIhkYcIgIiJZmDCIiEgWJgwi\nIpJFlYSxcOFCeHh4oGfPnhg1ahSuXbsGAEhPT0fz5s3h6+sLX19fzJ07V3vNqVOn4O3tDTc3N0RE\nRKgRNhGRWVMlYQwcOBBnzpzBTz/9hG7dumH58uXa11xdXZGcnIzk5GSsX79ee3zOnDmIiopCamoq\nUlNTERcXp0boqktISFA7BJ0x5fcG8P0ZO1N/f3KokjBCQkLQpIl4dGBgIDIzM+97fk5ODgoKChAQ\nEAAAmDp1Knbt2qXzOA2RKf9Ha8rvDeD7M3am/v7kUH0MY9OmTQgNDdX+npaWBl9fXwQFBeHIkSMA\ngKysLDg6OmrPcXBwQFZWlt5jJSIyZ5a6unFISAhyc3OrHV+2bBmGDRsGAFi6dCmsra0xadIkAECn\nTp2QkZGBNm3aICkpCeHh4Thz5oyuQiQiovqQVLJ582bpsccek4qLi2s9JygoSDp16pSUnZ0tubu7\na49/9tln0uzZs2u8xsXFRQLAH/7whz/8qcePi4tLnZ/bOmth3E9cXBxWrVqFgwcPolmzZtrjV65c\nQZs2bWBhYYGLFy8iNTUVXbt2hZ2dHVq1aoXjx48jICAAn3zyCRYsWFDjvc+fP6+vt0FEZFY0kiRJ\n+n6om5sbSktL8cADDwAAHn30Uaxfvx7R0dF44403YGVlhSZNmuDNN99EWFgYADGtdvr06SguLkZo\naCgiIyP1HTYRkVlTJWEQEZHxUX2WlFLi4uLg7u4ONzc3rFy5Uu1wFPX000/D3t4e3t7eaoeiExkZ\nGejXrx969OgBLy8vk2s9lpSUIDAwED4+PvD09MRrr72mdkiKKy8vh6+vr3ZCiylxcnLCww8/DF9f\nX+3UflOSn5+PMWPGwMPDA56enjh27FjtJ9dvqNowlZWVSS4uLlJaWppUWloq9ezZU0pJSVE7LMUc\nOnRISkpKkry8vNQORSdycnKk5ORkSZIkqaCgQOrWrZtJ/fuTJEm6ceOGJEmSdOvWLSkwMFA6fPiw\nyhEpa/Xq1dKkSZOkYcOGqR2K4pycnKSrV6+qHYbOTJ06VYqKipIkSfz3mZ+fX+u5JtHCSExMhKur\nK5ycnGBlZYUJEyYgNjZW7bAU88QTT6BNmzZqh6EzHTp0gI+PDwDAxsYGHh4eyM7OVjkqZbVo0QIA\nUFpaivLycu34nSnIzMzE119/jZkzZ0Iy0R5uU31f165dw+HDh/H0008DACwtLdG6detazzeJhJGV\nlYXOnTtrf3d0dGRhn5FKT09HcnIyAgMD1Q5FURUVFfDx8YG9vT369esHT09PtUNSzD/+8Q+sWrVK\nu3qDqdFoNAgODoa/vz82btyodjiKSktLQ7t27TBjxgz4+flh1qxZKCoqqvV8k/g3rNFo1A6BFFBY\nWIgxY8Zg7dq1sLGxUTscRTVp0gSnT59GZmYmDh06ZDLLTHz11Vdo3749fH19TfZb+NGjR5GcnIx9\n+/bh/fffx+HDh9UOSTFlZWVISkrC3LlzkZSUhJYtW2LFihW1nm8SCcPBwQEZGRna3zMyMqosJUKG\n79atWxg9ejSeeuophIeHqx2OzrRu3RphYWE4efKk2qEo4ocffsDu3bvh7OyMiRMn4rvvvsPUqVPV\nDktRHTt2BAC0a9cOI0eORGJiosoRKcfR0RGOjo545JFHAABjxoxBUlJSreebRMLw9/dHamoq0tPT\nUVpaiu3bt2P48OFqh0UySZKEZ555Bp6ennjhhRfUDkdxV65cQX5+PgCguLgYBw4cgK+vr8pRKWPZ\nsmXIyMhAWloatm3bhv79+2Pr1q1qh6WYoqIiFBQUAABu3LiB+Ph4k5qt2KFDB3Tu3Bnnzp0DAHzz\nzTfo0aNHreerUumtNEtLS7z33nsYNGgQysvL8cwzz8DDw0PtsBQzceJEHDx4EFevXkXnzp3x5ptv\nYsaMGWqHpZijR4/if//7n3bqIgAsX74cgwcPVjkyZeTk5GDatGmoqKhARUUFpkyZggEDBqgdlk6Y\nWvdwXl4eRo4cCUB030yePBkDBw5UOSplrVu3DpMnT0ZpaSlcXFywefPmWs9l4R4REcliEl1SRESk\ne0wYREQkCxMGERHJwoRBRESyMGEQEZEsTBhERCQLEwaZLV0vP7JmzRoUFxfX63l79uwxueX5yXSw\nDoPMlq2trbaKVxecnZ1x8uRJtG3bVi/PI9I1tjCI7nLhwgUMGTIE/v7+ePLJJ/H7778DAKZPn46I\niAj06dMHLi4uiI6OBiBWoZ07dy48PDwwcOBAhIWFITo6GuvWrUN2djb69etXpar73//+N3x8fPDo\no4/izz//rPb8LVu2YP78+fd95t3S09Ph7u6OGTNmoHv37pg8eTLi4+PRp08fdOvWDSdOnNDFXxOZ\nK11vzkFkqGxsbKod69+/v5SamipJkiQdO3ZM6t+/vyRJkjRt2jRp3LhxkiRJUkpKiuTq6ipJkiTt\n2LFDCg0NlSRJknJzc6U2bdpI0dHRkiRV33hHo9FIX331lSRJkvTyyy9Lb7/9drXnb9myRZo3b959\nn3m3tLQ0ydLSUvr111+liooKqVevXtLTTz8tSZIkxcbGSuHh4fX9ayGqlUmsJUWkhMLCQvz4448Y\nO3as9lhpaSkAsUZS5Sq6Hh4eyMvLAwAcOXIE48aNAwDtXhe1sba2RlhYGACgV69eOHDgwH3jqe2Z\n93J2dtYuGNejRw8EBwcDALy8vJCenn7fZxDVBxMG0W0VFRWws7NDcnJyja9bW1tr/yzdHvrTaDRV\n9oGQ7jMkaGVlpf1zkyZNUFZWVmdMNT3zXk2bNq1y38pr5D6DSC6OYRDd1qpVKzg7O2Pnzp0AxAf0\nzz//fN9r+vTpg+joaEiShLy8PBw8eFD7mq2tLa5fv16vGO6XcIjUxoRBZquoqAidO3fW/qxZswaf\nfvopoqKi4OPjAy8vL+zevVt7/t1Ld1f+efTo0XB0dISnpyemTJkCPz8/7Z7Izz77LAYPHqwd9L73\n+pqWAr/3eG1/vvea2n43teXGSV2cVkvUSDdu3EDLli1x9epVBAYG4ocffkD79u3VDotIcRzDIGqk\noUOHIj8/H6WlpVi0aBGTBZkstjCIiEgWjmEQEZEsTBhERCQLEwYREcnChEFERLIwYRARkSxMGERE\nJMv/A+qBKcq11Z1HAAAAAElFTkSuQmCC\n",
+ "text": [
+ "<matplotlib.figure.Figure at 0x5fd1a70>"
+ ]
+ }
+ ],
+ "prompt_number": 25
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 3.3.9,Page No.112"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "import numpy as np\n",
+ "%matplotlib inline\n",
+ "\n",
+ "#Initilization of Variables\n",
+ "\n",
+ "F_F=6 #KN #Force at F\n",
+ "w1=w2=w=3 #KN.m #u.d.l\n",
+ "M_D=24 #KN.m \n",
+ "L_AB=L_CD=L_DE=L_EF=4 #m #Length of AB,CD,DE,EF\n",
+ "L_BC=2 #m #Length of BC\n",
+ "L=18 #m #Span of Beam\n",
+ "\n",
+ "#Calculations\n",
+ "\n",
+ "#LEt R_B and R_E be the Reactions at B & E respectively\n",
+ "#R_B+R_E=42\n",
+ "\n",
+ "#Taking Moment At Pt B,M_B\n",
+ "R_E=(F_F*(L_BC+L_CD+L_DE+L_EF)+w*(L_CD+L_DE)*((L_CD+L_DE)*2**-1+L_BC)-w*L_AB*L_AB*2**-1-M_D)*(L_BC+L_CD+L_DE)**-1\n",
+ "R_B=42-R_E #KN\n",
+ "\n",
+ "#Shear Force Calculations\n",
+ "\n",
+ "#S.F aT F\n",
+ "V_F1=0 #KN \n",
+ "V_F2=-F_F #KN\n",
+ "\n",
+ "#S.F at E\n",
+ "V_E1=V_F2 #KN\n",
+ "V_E2=V_E1+R_E #KN\n",
+ "\n",
+ "#S.F aT C\n",
+ "V_C=V_E2-w*(L_CD+L_DE) #KN\n",
+ "\n",
+ "#S.F at B\n",
+ "V_B1=V_C #KN \n",
+ "V_B2=V_C+R_B #KN\n",
+ "\n",
+ "#S.F At A\n",
+ "V_A=V_B2-w*L_AB #KN\n",
+ "\n",
+ "#Bending Moment Calculations\n",
+ "\n",
+ "#B.M At F\n",
+ "M_F=0\n",
+ "\n",
+ "#B.M At E\n",
+ "M_E=F_F*L_EF #KN.m\n",
+ "\n",
+ "#B.M At D\n",
+ "M_D1=F_F*(L_DE+L_EF)-R_E*L_DE+w*L_DE*L_DE*2**-1 #KN.m\n",
+ "M_D2=M_D1-M_D\n",
+ "\n",
+ "#B.M At C\n",
+ "M_C=F_F*(L_CD+L_DE+L_EF)-R_E*(L_CD+L_DE)+w*(L_CD+L_DE)*(L_CD+L_DE)*2**-1-M_D\n",
+ "\n",
+ "#B.M At B\n",
+ "M_B=F_F*(L_BC+L_CD+L_DE+L_EF)-R_E*(L_BC+L_CD+L_DE)-M_D+w*(L_CD+L_DE)*((L_CD+L_DE)*2**-1+L_BC)\n",
+ "\n",
+ "#B.M At A\n",
+ "M_A=w*L_AB*L_AB*2**-1-R_B*L_AB+w*(L_CD+L_DE)*((L_CD+L_DE)*2**-1+L_BC+L_AB)-R_E*(L_AB+L_BC+L_CD+L_DE)+F_F*L-M_D\n",
+ "\n",
+ "#Result\n",
+ "print \"The Shear Force and Bending Moment Diagrams are the results\"\n",
+ "\n",
+ "#Plotting the Shear Force Diagram\n",
+ "\n",
+ "X1=[0,0,L_EF,L_EF,L_EF+L_DE+L_CD,L_EF+L_DE+L_CD+L_BC,L_EF+L_DE+L_CD+L_BC,L_EF+L_DE+L_CD+L_BC+L_AB]\n",
+ "Y1=[V_F1,V_F2,V_E1,V_E2,V_C,V_B1,V_B2,V_A]\n",
+ "Z1=[0,0,0,0,0,0,0,0]\n",
+ "plt.plot(X1,Y1,X1,Z1)\n",
+ "plt.xlabel(\"Length x in m\")\n",
+ "plt.ylabel(\"Shear Force in kN\")\n",
+ "plt.show()\n",
+ "\n",
+ "#Plotting the Bendimg Moment Diagram\n",
+ "\n",
+ "X2=[0,L_EF,L_DE+L_EF,L_DE+L_EF,L_CD+L_DE+L_EF,L_CD+L_DE+L_EF+L_BC,L_CD+L_DE+L_EF+L_BC+L_AB]\n",
+ "Y2=[M_F,M_E,M_D1,M_D2,M_C,M_B,M_A]\n",
+ "Z2=[0,0,0,0,0,0,0]\n",
+ "plt.plot(X2,Y2,X2,Z2)\n",
+ "plt.xlabel(\"Lenght in m\")\n",
+ "plt.ylabel(\"Bending Moment in kN.m\")\n",
+ "plt.show()"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "The Shear Force and Bending Moment Diagrams are the results\n"
+ ]
+ },
+ {
+ "metadata": {},
+ "output_type": "display_data",
+ "png": "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\nQmCC\n",
+ "text": [
+ "<matplotlib.figure.Figure at 0x5d72d10>"
+ ]
+ },
+ {
+ "metadata": {},
+ "output_type": "display_data",
+ "png": "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\nfyRzHAAAAABJRU5ErkJggg==\n",
+ "text": [
+ "<matplotlib.figure.Figure at 0x5cbc210>"
+ ]
+ }
+ ],
+ "prompt_number": 26
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 3.3.10,Page No.114"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "import numpy as np\n",
+ "%matplotlib inline\n",
+ "\n",
+ "#Initilization of Variables\n",
+ "\n",
+ "L_DC=L_BA=2 #m #Length of BA & DC\n",
+ "L_CB=1 #m #Length of CB\n",
+ "F_A=10 #KN #Force at pt A\n",
+ "F_B=20 #KN #Force at pt B\n",
+ "w=4 #KN.m #u.d.l\n",
+ "L=5 #m #Length of beam\n",
+ "\n",
+ "#Calculations\n",
+ "\n",
+ "#Let R_D be the reactions at Pt D\n",
+ "R_D=F_B+F_A+w*L_DC #KN\n",
+ "\n",
+ "#Shear Force Calculations\n",
+ "\n",
+ "#S.F at Pt A\n",
+ "V_A1=0 #KN\n",
+ "V_A2=F_A #KN\n",
+ "\n",
+ "#S.F At Pt B\n",
+ "V_B1=V_A2\n",
+ "V_B2=F_B+F_A\n",
+ "\n",
+ "#S.F at Pt C\n",
+ "V_C=F_B+F_A #KN \n",
+ "\n",
+ "#S.F At Pt D\n",
+ "V_D1=V_B2+w*L_DC\n",
+ "V_D2=F_B+F_A+w*L_DC-R_D\n",
+ "\n",
+ "#B.M At Pt A\n",
+ "M_A=0\n",
+ "\n",
+ "#B.M At Pt B\n",
+ "M_B=F_A*L_BA\n",
+ "\n",
+ "#B.M at Pt C\n",
+ "M_C=F_B*L_CB+F_A*(L_BA+L_CB) #KN\n",
+ "\n",
+ "#B.M At Pt D\n",
+ "M_D1=F_A*L+F_B*(L_CB+L_DC)+w*L_DC*L_DC*2**-1\n",
+ "M_D2=(F_A*L+F_B*(L_CB+L_DC)+w*L_DC*L_DC*2**-1)-M_D1\n",
+ "\n",
+ "#Result\n",
+ "print \"The Shear Force and Bending Moment Diagrams are the results\"\n",
+ "\n",
+ "#Plotting the Shear Force Diagram\n",
+ "\n",
+ "X1=[0,0,L_BA,L_BA,L_BA+L_CB,L_BA+L_CB+L_DC,L_BA+L_CB+L_DC]\n",
+ "Y1=[V_A1,V_A2,V_B1,V_B2,V_C,V_D1,V_D2]\n",
+ "Z1=[0,0,0,0,0,0,0]\n",
+ "plt.plot(X1,Y1,X1,Z1)\n",
+ "plt.xlabel(\"Length x in m\")\n",
+ "plt.ylabel(\"Shear Force in kN\")\n",
+ "plt.show()\n",
+ "\n",
+ "#Plotting the Bendimg Moment Diagram\n",
+ "\n",
+ "Y2=[M_A,M_B,M_C,M_D1,M_D2]\n",
+ "X2=[0,L_BA,L_CB+L_BA,L_CB+L_BA+L_DC,L_CB+L_BA+L_DC]\n",
+ "Z2=[0,0,0,0,0]\n",
+ "plt.plot(X2,Y2,X2,Z2)\n",
+ "plt.xlabel(\"Length in m\")\n",
+ "plt.ylabel(\"Bending Moment in kN.m\")\n",
+ "plt.show()"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "The Shear Force and Bending Moment Diagrams are the results\n"
+ ]
+ },
+ {
+ "metadata": {},
+ "output_type": "display_data",
+ "png": "iVBORw0KGgoAAAANSUhEUgAAAX4AAAEPCAYAAABFpK+YAAAABHNCSVQICAgIfAhkiAAAAAlwSFlz\nAAALEgAACxIB0t1+/AAAHOxJREFUeJzt3X1UVHXix/HP4FMBEpo6uOo5cDQV0GDUMk1WkIBMQVsf\nWk8ZqZw6dmrXbLfsbA/s2hptbmnmObWtla3VZkspPZEWTQ8+9LS4tVnpprSowGaEikjIcH9/+HME\ndZhBuXMH7/t1zpwuw70zH+bYx+uXe79fh2EYhgAAthFmdQAAQHBR/ABgMxQ/ANgMxQ8ANkPxA4DN\nUPwAYDOmF7/H45HL5VJ2drYkqbq6WhkZGRo8eLAyMzNVU1NjdgQAQDOmF//y5cuVkJAgh8MhSSoo\nKFBGRoZ27Nih9PR0FRQUmB0BANCMqcW/Z88evfHGG8rLy9Px+8SKioqUm5srScrNzdW6devMjAAA\nOImpxX/bbbfpoYceUljYibepqqqS0+mUJDmdTlVVVZkZAQBwEtOK/7XXXlOfPn3kcrnka1YIh8Ph\nHQICAARHZ7NeePPmzSoqKtIbb7yh+vp6HTx4ULNnz5bT6VRlZaViYmJUUVGhPn36nPb4QYMG6dtv\nvzUrHgCckwYOHKj//Oc/re9kBIHb7TYmT55sGIZh/Pa3vzUKCgoMwzCMBx54wLjzzjtPe0yQonUI\n9913n9URQgafxQl8FifwWZwQSHcG7Tr+40M6ixYt0saNGzV48GCVlJRo0aJFwYoAAJCJQz3NjR8/\nXuPHj5ck9ezZU2+//XYw3hYAcBrcudsBpKamWh0hZPBZnMBncQKfRds4/n9MKOQ4HA6fVwMBAE4v\nkO7kjB8AbIbiBwCbofgBwGYofgCwmaBczgkAME9lpVRYKG3eHNj+nPEDQAdUWSmtXCmlpkrx8dKW\nLcfKPxBczgkAHcTxM/uXXpL+9S9p0iRpxgwpK0s67zwpOlo6cMB/dzLUAwAh7HRlf9ttJ8r+TFD8\nABBizCj75ih+AAgBZpd9cxQ/AFgkmGXfHMUPAEFkVdk3R/EDgMlCoeybo/gBwAShVvbNUfwA0E5C\nueybo/gB4Cx0lLJvjuIHgDbqiGXfnKlz9dTX12v06NFKTk5WQkKC7rrrLklSfn6++vfvL5fLJZfL\npeLiYjNjAMBZO93cOLfdJlVUSGvWSFOmdIzSl4IwV09dXZ3Cw8PV2NiocePGaenSpXrnnXfUvXt3\nLVy40Hcw5uoBYDF/c+OEmpCZqyc8PFyS1NDQII/Hox49ekgSpQ4gJHX0YZxAmD4tc1NTk5KTk+V0\nOpWWlqbExERJ0ooVK5SUlKR58+appqbG7BgA4NO5NIwTiKBNy3zgwAFlZWWpoKBACQkJ6t27tyTp\nnnvuUUVFhVatWtUyGEM9AEzU0YZxAhEyQz3HXXDBBZo0aZI+/fRTpaamep/Py8tTdnb2aY/Jz8/3\nbqemprY4DgDa6lwcxnG73XK73ZKk+vrAjjH1jH///v3q3LmzoqOjdeTIEWVlZem+++5TYmKiYmJi\nJEmPPPKIPvnkEz3//PMtg3HGD6AdnItn9r6ExBl/RUWFcnNz1dTUpKamJs2ePVvp6em6/vrrtW3b\nNjkcDsXFxemJJ54wMwYAmzkXz+zbE0svAjgn2OnM3peQOOMHADNxZn9mKH4AHQplf/YofgAhj7Jv\nXxQ/gJBE2ZuH4gcQMij74KD4AViKsg8+ih9A0FH21qL4AQQFZR86KH4ApqHsQxPFD6BdUfahj+IH\ncNYo+46F4gdwRij7joviBxAwyv7cQPEDaBVlf+6h+AGcgrI/t1H8ACRR9nZC8QM2RtnbE8UP2Axl\nD4ofsAHKHs2ZVvz19fUaP368fvrpJzU0NGjKlCl64IEHVF1drWuuuUbfffedYmNjtXbtWkVHR5sV\nA7Atyh6+mLrYel1dncLDw9XY2Khx48Zp6dKlKioqUq9evXTHHXfowQcf1I8//qiCgoJTg7HYOtBm\nLDhub4Euth5mZojw8HBJUkNDgzwej3r06KGioiLl5uZKknJzc7Vu3TozIwDnvMpKaeVKKTVVio+X\ntmw5dmZfUSGtWSNNmULpoyVTx/ibmpo0YsQIffvtt5o/f74SExNVVVUlp9MpSXI6naqqqjIzAs4h\ntbXSwYNWpwgNR45IxcUM4+DMmFr8YWFh2rZtmw4cOKCsrCy9++67Lb7vcDjkcDh8Hp+fn+/dTk1N\nVWpqqklJ0RGkp0u7dkldulidxHqdOknjx1P2kNxut9xutySpvj6wY0wd429u8eLFOv/88/XXv/5V\nbrdbMTExqqioUFpamr7++utTgzHGj5MkJUnPPnvsvwBOZfkY//79+1VTUyNJOnLkiDZu3CiXy6Wc\nnBytXr1akrR69WpNnTrVrAgAgNMwbainoqJCubm5ampqUlNTk2bPnq309HS5XC7NnDlTq1at8l7O\nCQAInqAN9bQVQz04GUM9QOssH+oBAIQmih8AbIbiBwCbofgBwGYofgCwGYofAGyG4gcAm6H4AcBm\nKH4AsBmfUzakpaWd9vnjs2mWlJSYkwgAYCqfxf/QQw95t4+X/datW/Xggw+qT58+5icDAJjCZ/GP\nGjXKu+12u3X//ffryJEjeuKJJzRx4sSghAMAtL9WZ+csLi7WH//4R3Xt2lV33323z+EfAEDH4bP4\nL7nkEn3//ff6zW9+ozFjxkiS/vnPf3q/P2LECPPTAQDanc/ij4iIUEREhAoLC1VYWHjK909eRhEA\n0DH4LP7jazg2NTUpLKzlVZ/1gS7sCAAIOX6v48/Ly2vxdW1tra666irTAgEAzOW3+Pv166ebb75Z\nkvTjjz8qMzNTs2fPNj0YAMAcfot/8eLFioiI0E033aSMjAwtXLhQc+bMCUY2AIAJfBb/8V/qvvzy\ny7rsssv00UcfyeVyyeFw6OWXXw7oxcvLy5WWlqbExEQNGzZMjz76qCQpPz9f/fv3l8vlksvlUnFx\ncfv8NAAAv3wutn7DDTd479iVJMMwWnz99NNP+33xyspKVVZWKjk5WbW1tRo5cqTWrVuntWvXqnv3\n7lq4cKHvYCy2jpOw2DrQukAXW/d5Vc8zzzxz1iFiYmIUExMjSYqMjFR8fLz27t0rSZQ6AFgkaLNz\nlpWVqbS0VJdddpkkacWKFUpKStK8efNUU1MTrBgAYHutTtnQXmprazV9+nQtX75ckZGRmj9/vu69\n915J0j333KPbb79dq1atOuW4/Px873ZqaqpSU1ODERcAOgy32+297yrQW6x8jvG3l6NHj2ry5Mma\nOHGiFixYcMr3y8rKlJ2drS+++KJlMMb4cRLG+IHWnfUY/3H19fUqLCxUWVmZGhsbJR0r5eNn7K0x\nDEPz5s1TQkJCi9KvqKhQ3759JUmvvPKKhg8f7ve1AADtw2/xT5kyRdHR0Ro5cqTOO++8Nr34pk2b\ntGbNGl188cVyuVySpCVLluiFF17Qtm3b5HA4FBcXpyeeeOLM0gMA2sxv8e/du1dvvfXWGb34uHHj\n1NTUdMrzzOcPANbxe1XP2LFj9fnnnwcjCwAgCPye8X/wwQd6+umnFRcXp27dukk6NsbPXwYA0DH5\nLf4333wzGDkAAEHis/gPHjyoqKgoRUVFBTMPAMBkPot/1qxZev311zVixIgWc/RIx4Z6du3aZXo4\nAED781n8r7/+uqRjN1gBAM4dQZurBwAQGih+ALAZih8AbCag4j9+Lb8kff/999q9e7epoQAA5vFb\n/Pn5+frTn/6kBx54QJLU0NCg6667zvRgAABz+C3+V155RevXr1dERIQkqV+/fjp06JDpwQAA5vBb\n/N26dVNY2IndDh8+bGogAIC5/Bb/jBkzdNNNN6mmpkZ/+ctflJ6erry8vGBkAwCYIKAVuDZs2KAN\nGzZIkrKyspSRkWF+MFbgwklYgQtoXbutwLV7926lpKQoMzNTknTkyBGVlZUpNja2XYICAILL71DP\n9OnT1alTpxMHhIVp+vTppoYCAJjHb/F7PB517drV+3W3bt109OhRU0MBAMzjt/h79eql9evXe79e\nv369evXqZWooAIB5/Bb/448/riVLlmjAgAEaMGCACgoKAl4cvby8XGlpaUpMTNSwYcP06KOPSpKq\nq6uVkZGhwYMHKzMzUzU1NWf3UwAAAtZq8Xs8Hj3++OP66KOPtH37dm3fvl1btmzRoEGDAnrxLl26\n6JFHHtGXX36prVu3auXKlfrqq69UUFCgjIwM7dixQ+np6SooKGiXHwYA4F+rxd+pUyd9+OGHMgxD\n3bt3V/fu3dv04jExMUpOTpYkRUZGKj4+Xnv37lVRUZFyc3MlSbm5uVq3bt0ZxgcAtJXfyzmTk5M1\nZcoUzZgxQ+Hh4ZKOXWP/i1/8ok1vVFZWptLSUo0ePVpVVVVyOp2SJKfTqaqqqjOIDgA4E36Lv76+\nXj179lRJSUmL59tS/LW1tZo2bZqWL19+yr8aHA7HKUs7Hpefn+/dTk1NVWpqasDvCQB24Ha75Xa7\nJUn19YEdE9Cdu2fj6NGjmjx5siZOnKgFCxZIkoYOHSq3262YmBhVVFQoLS1NX3/9dctg3LmLk3Dn\nLtC6QO/c9XtVT3l5ua6++mr17t1bvXv31rRp07Rnz56AQhiGoXnz5ikhIcFb+pKUk5Oj1atXS5JW\nr16tqVOnBvR6AICz57f458yZo5ycHO3bt0/79u1Tdna25syZE9CLb9q0SWvWrNG7774rl8sll8ul\n4uJiLVq0SBs3btTgwYNVUlKiRYsWnfUPAgAIjN+hnqSkJP3rX//y+1y7B2OoBydhqAdoXbsN9Vx4\n4YX629/+Jo/Ho8bGRq1Zs4Y7dwGgA/Nb/E899ZTWrl2rmJgY9e3bVy+99JJ3/V0AQMfj83LOrVu3\n6rLLLlNsbKxeffXVYGYCAJjI5xn//PnzvdtjxowJShgAgPn8DvVIx27iAgCcG3wO9Xg8HlVXV8sw\nDO92cz179jQ9HACg/fks/oMHD2rkyJGSjt2IdXxbOnap5a5du8xPBwBodz6Lv6ysLIgxAADBEtAY\nPwDg3EHxA4DNUPwAYDOtFn9jY6OGDBkSrCwAgCBotfg7d+6soUOH6rvvvgtWHgCAyfyuwFVdXa3E\nxERdeumlioiIkHTscs6ioiLTwwEA2p/f4l+8eHEwcgAAgsRv8bPOLQCcW/xe1bNlyxZdcsklioyM\nVJcuXRQWFqaoqKhgZAMAmMBv8d9yyy16/vnnddFFF6m+vl6rVq3SzTffHIxsAAATBHQd/0UXXSSP\nx6NOnTppzpw5Ki4uNjsXAMAkfos/IiJCP/30k5KSknTHHXfo4YcfDngt3Llz58rpdGr48OHe5/Lz\n89W/f/8Wi68DAILHb/E/++yzampq0mOPPabw8HDt2bNHhYWFAb346f514HA4tHDhQpWWlqq0tFRX\nXnnlmSUHAJwRv1f1xMbGqq6uTpWVlcrPz2/Ti6ekpJx2ls9A/8UAAGh/fs/4i4qK5HK5lJWVJUkq\nLS1VTk7OWb3pihUrlJSUpHnz5qmmpuasXgsA0DZ+z/jz8/P10UcfKS0tTZLkcrnOahGW+fPn6957\n75Uk3XPPPbr99tu1atUqn+99XGpqKvcUAMBJ3G633G63JCnQVXL9Fn+XLl0UHR3d4rmwsDOf1LNP\nnz7e7by8PGVnZ/vct61DSwBgN81Pipctk3766fd+j/Hb4ImJiXruuefU2NionTt36tZbb9XYsWPP\nOGRFRYV3+5VXXmlxxQ8AwHx+i3/FihX68ssv1a1bN82aNUtRUVFatmxZQC8+a9YsjR07Vt98840G\nDBigp556SnfeeacuvvhiJSUl6b333tMjjzxy1j8EACBwDiNEL7FxOBxc/YMWkpKkZ5899l8Ap4qO\nlg4c8N+dfsf4v/nmGy1dulRlZWVqbGyUdKyUS0pK2icpACCo/Bb/jBkzNH/+fOXl5alTp06SjhU/\nAKBjCuiqnvnz5wcjCwAgCHz+cre6ulo//PCDsrOztXLlSlVUVKi6utr7AAB0TD7P+EeMGNFiSGfp\n0qXebYfDcVY3cQEArOOz+E83xw4AoOPzOdTzySeftLjZavXq1crJydGvfvUrhnoAoAPzWfw33nij\nunXrJkl6//33tWjRIuXm5ioqKko33nhj0AICANqXz6GepqYm9ezZU5L04osv6qabbtK0adM0bdo0\nJXEHDQB0WD7P+D0ej44ePSpJevvtt72zc0ry3sgFAOh4fJ7xz5o1S+PHj1evXr0UHh6ulJQUSdLO\nnTtPma0TANBx+Cz+3/3ud5owYYIqKyuVmZnpnYrZMAytWLEiaAEBAO2r1Tt3x4wZc8pzgwcPNi0M\nAMB8Z76iCgCgQ6L4AcBmKH4AsBmKHwBshuIHAJuh+AHAZkwt/rlz58rpdGr48OHe56qrq5WRkaHB\ngwcrMzNTNTU1ZkYAAJzE1OKfM2eOiouLWzxXUFCgjIwM7dixQ+np6SooKDAzAgDgJKYWf0pKinr0\n6NHiuaKiIuXm5kqScnNztW7dOjMjAABO4nfN3fZWVVUlp9MpSXI6naqqqvK5b35+kEKhQ6istDoB\ncG4IevE353A4WizveDK3O9+7HRubqtjYVPNDIWT96lfSoEFWpwBCi9vtltvtliTV1wd2jMMwDMO8\nSMeWcMzOztYXX3whSRo6dKjcbrdiYmJUUVGhtLQ0ff3116cGczhkcjQAOKdER0sHDvjvzqBfzpmT\nk6PVq1dLOrac49SpU4MdAQBszdQz/lmzZum9997T/v375XQ69Yc//EFTpkzRzJkz9d///lexsbFa\nu3btaef354wfANom0DN+04d6zhTFDwBtE7JDPQAAa1H8AGAzFD8A2AzFDwA2Q/EDgM1Q/ABgMxQ/\nANgMxQ8ANkPxA4DNUPwAYDMUPwDYDMUPADZD8QOAzVD8AGAzFD8A2AzFDwA2Q/EDgM1Q/ABgMxQ/\nANhMZ6veODY2VlFRUerUqZO6dOmijz/+2KooAGArlhW/w+GQ2+1Wz549rYoAALZk6VCPv5XgAQDt\nz7LidzgcuuKKKzRq1Cg9+eSTVsUAANuxbKhn06ZN6tu3r77//ntlZGRo6NChSklJabFPfn6+dzs1\nNVWpqanBDQkAIc7tdsvtdkuS6usDO8ZhhMB4y+9//3tFRkbq9ttv9z7ncDgYCgKANoiOlg4c8N+d\nlgz11NXV6dChQ5Kkw4cPa8OGDRo+fLgVUQDAdiwZ6qmqqtLVV18tSWpsbNS1116rzMxMK6IAgO2E\nxFDP6TDUAwBtE9JDPQAA61D8AGAzFD8A2AzFDwA2Q/EDgM1Q/ABgMxQ/ANgMxQ8ANkPxA4DNUPwA\nYDMUPwDYDMUPADZD8QOAzVD8AGAzFD8A2AzFDwA2Q/EDgM1Q/ABgM5YVf3FxsYYOHaqLLrpIDz74\noFUxAMB2LCl+j8ejW265RcXFxdq+fbteeOEFffXVV1ZE6RDcbrfVEUIGn8UJfBYn8Fm0jSXF//HH\nH2vQoEGKjY1Vly5d9Mtf/lLr16+3IkqHwB/qE/gsTuCzOIHPom0sKf69e/dqwIAB3q/79++vvXv3\nWhEFAGzHkuJ3OBxWvC0AQJIMC2zZssXIysryfr1kyRKjoKCgxT4DBw40JPHgwYMHjzY8Bg4c6LeD\nHYZhGAqyxsZGDRkyRO+8845+9rOf6dJLL9ULL7yg+Pj4YEcBANvpbMmbdu6sxx57TFlZWfJ4PJo3\nbx6lDwBBYskZPwDAOiF35y43dp0wd+5cOZ1ODR8+3OooliovL1daWpoSExM1bNgwPfroo1ZHskx9\nfb1Gjx6t5ORkJSQk6K677rI6kuU8Ho9cLpeys7OtjmKp2NhYXXzxxXK5XLr00ktb3Tekzvg9Ho+G\nDBmit99+W/369dMll1xi67H/Dz74QJGRkbr++uv1xRdfWB3HMpWVlaqsrFRycrJqa2s1cuRIrVu3\nzrZ/Lurq6hQeHq7GxkaNGzdOS5cu1bhx46yOZZmHH35Yn332mQ4dOqSioiKr41gmLi5On332mXr2\n7Ol335A64+fGrpZSUlLUo0cPq2NYLiYmRsnJyZKkyMhIxcfHa9++fRansk54eLgkqaGhQR6PJ6D/\n0c9Ve/bs0RtvvKG8vDyF0DmsZQL9DEKq+LmxC/6UlZWptLRUo0ePtjqKZZqampScnCyn06m0tDQl\nJCRYHckyt912mx566CGFhYVUlVnC4XDoiiuu0KhRo/Tkk0+2um9IfVrc2IXW1NbWavr06Vq+fLki\nIyOtjmOZsLAwbdu2TXv27NH7779v2+kKXnvtNfXp00cul4uzfUmbNm1SaWmp3nzzTa1cuVIffPCB\nz31Dqvj79eun8vJy79fl5eXq37+/hYkQKo4ePapp06bpuuuu09SpU62OExIuuOACTZo0SZ9++qnV\nUSyxefNmFRUVKS4uTrNmzVJJSYmuv/56q2NZpm/fvpKk3r176+qrr9bHH3/sc9+QKv5Ro0Zp586d\nKisrU0NDg1588UXl5ORYHQsWMwxD8+bNU0JCghYsWGB1HEvt379fNTU1kqQjR45o48aNcrlcFqey\nxpIlS1ReXq7du3fr73//uyZMmKBnn33W6liWqKur06FDhyRJhw8f1oYNG1q9GjCkir/5jV0JCQm6\n5pprbHvlhiTNmjVLY8eO1Y4dOzRgwAA9/fTTVkeyxKZNm7RmzRq9++67crlccrlcKi4utjqWJSoq\nKjRhwgQlJydr9OjRys7OVnp6utWxQoKdh4qrqqqUkpLi/XMxefJkZWZm+tw/pC7nBACYL6TO+AEA\n5qP4AcBmKH4AsBmKHwBshuIHAJuh+AHAZih+dChmT9WwbNkyHTlypN3f79VXX7X9NOMIHVzHjw6l\ne/fu3jsUzRAXF6dPP/1UF154YVDeD7ACZ/zo8L799ltNnDhRo0aN0s9//nN98803kqQbbrhBv/71\nr3X55Zdr4MCBKiwslHRsdsubb75Z8fHxyszM1KRJk1RYWKgVK1Zo3759SktLa3E37N13363k5GSN\nGTNG//vf/055/wULFmjx4sWSpLfeekvjx48/ZZ9nnnlGt956a6u5misrK9PQoUM1Z84cDRkyRNde\ne602bNigyy+/XIMHD9Ynn3xy9h8c7MvvcuxACImMjDzluQkTJhg7d+40DMMwtm7dakyYMMEwDMPI\nzc01Zs6caRiGYWzfvt0YNGiQYRiG8dJLLxlXXXWVYRiGUVlZafTo0cMoLCw0DMMwYmNjjR9++MH7\n2g6Hw3jttdcMwzCMO+64w7j//vtPef+6ujojMTHRKCkpMYYMGWLs2rXrlH2eeeYZ45Zbbmk1V3O7\nd+82OnfubPz73/82mpqajJEjRxpz5841DMMw1q9fb0ydOtXvZwX4Ysli60B7qa2t1ZYtWzRjxgzv\ncw0NDZKOzd1yfCbP+Ph4VVVVSZI+/PBDzZw5U5K8c9r70rVrV02aNEmSNHLkSG3cuPGUfc4//3w9\n+eSTSklJ0fLlyxUXF9dqZl+5ThYXF6fExERJUmJioq644gpJ0rBhw1RWVtbqewCtofjRoTU1NSk6\nOlqlpaWn/X7Xrl2928b//zrL4XC0mL/daOXXXF26dPFuh4WFqbGx8bT7ff755+rdu3fACwedLtfJ\nunXr1uK9jx/TWg4gEIzxo0OLiopSXFyc/vGPf0g6VqKff/55q8dcfvnlKiwslGEYqqqq0nvvvef9\nXvfu3XXw4ME2Zfjuu+/08MMPexfBON086K395QIEG8WPDqWurk4DBgzwPpYtW6bnnntOq1atUnJy\nsoYNG9Ziwe3mU/Ue3542bZr69++vhIQEzZ49WyNGjNAFF1wgSbrxxht15ZVXen+5e/LxJ0/9axiG\n8vLy9Oc//1kxMTFatWqV8vLyvMNNvo71tX3yMb6+tvMUxDh7XM4JWzp8+LAiIiL0ww8/aPTo0dq8\nebP69OljdSwgKBjjhy1NnjxZNTU1amho0L333kvpw1Y44wcAm2GMHwBshuIHAJuh+AHAZih+ALAZ\nih8AbIbiBwCb+T+gqVKkQGpm/QAAAABJRU5ErkJggg==\n",
+ "text": [
+ "<matplotlib.figure.Figure at 0x5d63a10>"
+ ]
+ },
+ {
+ "metadata": {},
+ "output_type": "display_data",
+ "png": "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\niAD/D0GjsePfia+aAAAAAElFTkSuQmCC\n",
+ "text": [
+ "<matplotlib.figure.Figure at 0x5fe5130>"
+ ]
+ }
+ ],
+ "prompt_number": 28
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 3.3.11,Page No.115"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "import numpy as np\n",
+ "%matplotlib inline\n",
+ "\n",
+ "#Initilization of Variables\n",
+ "\n",
+ "w=20 #KN/m #u.v.l\n",
+ "F_C=40 #KN #Force at Pt C\n",
+ "M_D=40 #KN.m #Moment at pt D\n",
+ "L_AB=3 #m #Length of AB\n",
+ "L_BC=1 #m #Length of BC\n",
+ "L_CD=L_DE=2 #m #Length of CD & DE\n",
+ "L=8 #8 #Length of beam\n",
+ "\n",
+ "#Calculations\n",
+ "\n",
+ "#Let R_A & R_E be the Reactions at A & E respectively\n",
+ "#R_A+R_E=70\n",
+ "\n",
+ "#Taking Moments At Pt A we get,M_A\n",
+ "R_E=(F_C*(L_AB+L_BC)+1*2**-1*L_AB*w*2+40)*L**-1\n",
+ "R_A=70-R_E\n",
+ "\n",
+ "#shear Force Calculations\n",
+ "\n",
+ "#S.F At Pt E\n",
+ "V_E1=0\n",
+ "V_E2=R_E #KN\n",
+ "\n",
+ "#S.F aT pt D\n",
+ "V_D=V_E2\n",
+ "\n",
+ "#S.F At PT C\n",
+ "V_C1=V_D\n",
+ "V_C2=V_D-F_C #KN\n",
+ "\n",
+ "#S.F At Pt A\n",
+ "V_A1=V_C2-(1*2**-1*w*L_AB)\n",
+ "V_A2=V_A1+R_A\n",
+ "\n",
+ "#Bending Moment Calculations\n",
+ "\n",
+ "#B.M At Pt E\n",
+ "M_E=0\n",
+ "\n",
+ "#B.M At Pt D\n",
+ "M_D1=M_E-R_E*L_DE\n",
+ "M_D2=M_D1+M_D\n",
+ "\n",
+ "#B.M At Pt C\n",
+ "M_C=-R_E*(L_DE+L_CD)+M_D\n",
+ "\n",
+ "#B.M At Pt B\n",
+ "M_B=-R_E*(L_DE+L_CD+L_BC)+M_D+F_C*L_BC\n",
+ "\n",
+ "#B.M At Pt A\n",
+ "M_A=-R_E*L+M_D+(1*2**-1*L_AB*w*2)+F_C*(L_BC+L_AB)\n",
+ "\n",
+ "#Result\n",
+ "print \"The Shear Force and Bending Moment Diagrams are the results\"\n",
+ "\n",
+ "#Plotting the Shear Force Diagram\n",
+ "\n",
+ "X1=[0,0,L_DE,L_CD+L_DE,L_CD+L_DE,L_CD+L_DE+L_AB,L_CD+L_DE+L_AB]\n",
+ "Y1=[V_E1,V_E2,V_D,V_C1,V_C2,V_A1,V_A2]\n",
+ "Z1=[0,0,0,0,0,0,0]\n",
+ "plt.plot(X1,Y1,X1,Z1)\n",
+ "plt.xlabel(\"Length x in m\")\n",
+ "plt.ylabel(\"Shear Force in kN\")\n",
+ "plt.show()\n",
+ "\n",
+ "#Plotting the Bendimg Moment Diagram\n",
+ "\n",
+ "Y2=[M_E,M_D1,M_D2,M_C,M_B,M_A]\n",
+ "X2=[0,L_DE,L_DE,L_CD+L_DE,L_DE+L_CD+L_BC,L_AB+L_BC+L_CD+L_DE]\n",
+ "Z2=[0,0,0,0,0,0]\n",
+ "plt.plot(X2,Y2)\n",
+ "plt.xlabel(\"Lenght in m\")\n",
+ "plt.ylabel(\"Bending Moment in kN.m\")\n",
+ "plt.show()"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "The Shear Force and Bending Moment Diagrams are the results\n"
+ ]
+ },
+ {
+ "metadata": {},
+ "output_type": "display_data",
+ "png": "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\n",
+ "text": [
+ "<matplotlib.figure.Figure at 0x5fd1b90>"
+ ]
+ },
+ {
+ "metadata": {},
+ "output_type": "display_data",
+ "png": "iVBORw0KGgoAAAANSUhEUgAAAYUAAAEPCAYAAACtCNj2AAAABHNCSVQICAgIfAhkiAAAAAlwSFlz\nAAALEgAACxIB0t1+/AAAIABJREFUeJzt3XlY1OX+//HnKLjk2mJmjIYKBgOIuLaHKZqWlpooVlqm\npxO2WFZq7paipi1amHayPSUzf2ilRy0x14O55NEpBINvCloeTQU3BD6/P26ZXBgZmBnumeH9uC6u\nYJiZzyvUz829vW+TYRgGQgghBFBFdwAhhBCeQxoFIYQQNtIoCCGEsJFGQQghhI00CkIIIWykURBC\nCGHjkY3CypUrCQkJITg4mOnTp+uOI4QQlYbJ0/YpFBYWcvPNN7NmzRoCAgJo164dCxcuJDQ0VHc0\nIYTweR7XU0hNTSUoKIjAwED8/f3p378/ycnJumMJIUSl4HGNQnZ2No0bN7Z9bTabyc7O1phICCEq\nD49rFEwmk+4IQghRafnpDnCpgIAA9u/fb/t6//79mM3mi55Tp04QeXn7KjqaEEJ4tebNm5ORkXHl\nJxke5ty5c0azZs2MzMxM4+zZs0ZkZKRhtVoveg5gXHutYfzvf5pCOmjChAm6IzhEcrqW5HQtb8jp\n6RknTTKMBx5Q987SeNzwkZ+fH++88w5du3bFYrHQr1+/Elce9ekDM2ZoCCiEEF4kIwNmz1YfjvC4\n4SOAbt260a1btys+Z9w4aNkShg+HRo0qKJgQQngRw4Cnn4aRI6FJE8de43E9BUeZzTBoEEydqjuJ\nfdHR0bojOERyupbkdC1vyOmpGb/6CrKz1S/PjvK4zWuOMJlMGIbBn39CaChs3w433aQ7lRBCeI4T\nJ8BigUWL4I471GPF984r8epGAWDMGDh0CD74QHMoIYTwIM8/D8ePw4IFfz9WKRqFv/6C4GDYtAla\ntNAcTAghPMDOndC1K+zZA9dd9/fjjjQKXjunUOzqq1WLOGGC7iRCCKFfURE89RRMmXJxg+Aor28U\nAJ57DtauhV27dCcRQgi9/vUvMJlg8ODyvd7rh4+KvfkmpKSA1M4TQlRWf/4J4eGwZo1asn+pSjGn\nUOzMGTW3sGQJtG+vKZgQQmg0aJAaMpo1q+TvV6pGAWDePNUorFqlIZQQQmi0bh088ghYrVCnTsnP\nqRQTzRcaPBj27VM/HCGEqCzy89Xk8ttv228QHOVTjYK/v1qFNGaM2t4thBCVwRtvQNOm0KuX8+/l\nU8NHAIWFEBGhxtRKKZ8khBBeLysL2raF1FRo1uzKz610w0cAVavC5Mkwdqz0FoQQvu/ZZ9VerdIa\nBEf5XKMA0Lu3ahC+/lp3EiGEcJ/kZNi7F1580XXv6XPDR8W++079oP77X9V7EEIIX3LypCp49+GH\ncM89jr2mUg4fFevWTZXA+OIL3UmEEML1Jk+GO+90vEFwlJZGYfHixYSFhVG1alW2b99+0fcSEhII\nDg4mJCSEVU5sODCZVO2PiRPh3DknAwshhAfZvVtVP7W3Sc0ZWhqFiIgIli5dyl133XXR41arlaSk\nJKxWKytXriQ+Pp6ioqJyXyc6Wk2+XFg6VgghvFlxwbtJk6BhQ9e/v5ZGISQkhBYl1LlOTk4mLi4O\nf39/AgMDCQoKIjU11alrTZkCr72mymAIIYS3+/hjdT978kn3vL9HzSnk5ORgNpttX5vNZrKzs516\nz/btoXVreO89Z9MJIYReR47AqFHqfuauBTR+7nlbiImJ4dChQ5c9PnXqVHr06OHw+5hMphIfnzhx\nou3z6OjoK56R+uqr0KULDBkCtWs7fGkhhPAoo0ZBv37Qpo1jz09JSSElJaVM13Bbo7B69eoyvyYg\nIID9+/fbvj5w4AABAQElPvfCRqE0LVtCx44weza88kqZYwkhhHabNqml9lar46+59BfmSZMmlfoa\n7cNHF66Z7dmzJ4sWLSI/P5/MzEzS09Np76I62JMmqTMXjh1zydsJIUSFKShQk8uzZkG9eu69lpZG\nYenSpTRu3JgtW7Zw33330e18kSKLxUJsbCwWi4Vu3bqRmJhod/iorFq0gB49YOZMl7ydEEJUmNmz\n4frr1dCRu/nsjuaSZGWpsbhfflE/YCGE8HQHDkCrVmr4qIRFm2VS6Q7ZccTTT0O1aqrUrBBCeLqH\nHoKwMDUE7ixpFEpw8KD6Ae/aBResfhVCCI+zYgU884zawVyjhvPvJ42CHS+/DCdOyN4FIYTnOn0a\nwsMhMRG6dnXNe0qjYMeRI2psbutW19UgF0IIVxo3DtLS4MsvXfee0ihcwcSJ8Ntv8MknrskkhBCu\n8uuvcMcd8PPPYGerVrlIo3AFJ05AUBCkpKia5EII4QkMAzp1gp49Yfhw1753pT5PoTR166pDeCZM\n0J1ECCH+9sUX8NdfaqWkDpW2pwBw6pTqLXz7LURFuSCYEEI44dgxNXKxdCl06OD695fhIwe8845a\n9vXtty55OyGEKLdhw6Cw0H0rI6VRcMDZs3DzzarLdtttLnlLIYQos61b1TyC1aqOEnYHmVNwQPXq\nMH48jBmjJniEEKKiFRaqgnfTp7uvQXBUpW8UAAYOhOxs+P573UmEEJXR3LnqrJdHH9WdRIaPbBYu\nhLfegi1bwEWFWYUQolQHD6ozX9atc//yeBk+KoN+/dS28uXLdScRQlQmI0aoUyE9Zb+U9BQukJys\n5hd27IAq0lwKIdxszRrVIFitcNVV7r+e9BTKqGdPVYnQlbVGhBCiJGfOQHw8zJlTMQ2Co7Q0Ci+9\n9BKhoaFERkbSu3dvjh8/bvteQkICwcHBhISEsGrVqgrNZTLBa6+pXc4FBRV6aSFEJTNjhhoy6tFD\nd5KLaWkUunTpwp49e/j5559p0aIFCQkJAFitVpKSkrBaraxcuZL4+HiKiooqNFvnztCokRTKE0K4\nT0aGOmJz9mzdSS6npVGIiYmhyvlB+w4dOnDgwAEAkpOTiYuLw9/fn8DAQIKCgkhNTa3QbCYTTJkC\nkyerjW1CCOFKhqHqGo0cCU2a6E5zOe1zCgsWLKB79+4A5OTkYL7gODSz2Ux2dnaFZ7r9dtWt+9e/\nKvzSQggf99VXal+Uqyuguoqfu944JiaGQ4cOXfb41KlT6XF+EG3KlClUq1aNAQMG2H0fk51NAxMn\nTrR9Hh0dTXR0tFN5L/Xaa2qs7/HHPWsSSAjhvU6cgOefh0WLwN/f/ddLSUkhJSWlTK8pdUnq8uXL\nGT9+PFlZWRScn301mUycOHGi3EEBPvroI95//32+//57apw/fHTatGkAjBo1CoB7772XSZMm0eGS\ncoHuWpJ6qYceUpUKX3rJ7ZcSQlQCzz8Px4/DggV6ru+SgnjNmzdn6dKlhIeH2+YBnLVy5UpGjBjB\nunXruO6662yPW61WBgwYQGpqKtnZ2XTu3JmMjIzLegsV1ShYrRAdrSaF6tZ1++WEED5s50511vKe\nPXDBba9CuWSfgtlsJiwszGUNAsAzzzxDXl4eMTExREVFER8fD4DFYiE2NhaLxUK3bt1ITEy0O3xU\nESwWuPdeePNNbRGEED6gqEgVvJsyRV+D4KhSewpbtmxh/PjxdOzYkWrVqqkXmUy88MILFRKwJBXV\nUwDYt08NIaWlwbXXVsglhRA+Zv58+Ogj2LBBb7UEl/QUxo0bR+3atTlz5gx5eXnk5eWRm5vrspCe\nrnlz6NNHbTQRQoiy+vNPGDtWHZzjDeVzSu0phIeHs3v37orK45CK7CkAHDigqhju2aM2tgkhhKMG\nDVJDRrNm6U7iop5C9+7d+fe//+2yUN7IbFZ/sFOn6k4ihPAm69bB2rVwwQp6j1dqT6F27dqcOnWK\natWq4X9+Ya0rlqQ6o6J7CqC6gKGhsH073HRThV5aCOGF8vOhVSu156l3b91pFDmj2cXGjIFDh+CD\nDyr80kIILzNtGqxfD9984zkHd0mj4GJ//QUtWsDGjeq/QghRkqwsaNsWUlOhWTPdaf7mtvMUoqKi\nyhXI2119tapX4k3jg0KIivfss2r3sic1CI6SnkIZ5eVBUBCsXg0REVoiuNSGDfDZZ2q5nBDCecnJ\nqgLqzz9D9eq601xMTl5zg9q11R/4uHG6k7hGTg7MmwfbtulOIoT3O3lS9RISEz2vQXCU3Z5C06ZN\n7b/IZOK3335zW6jS6OwpgDpGLzgYliyB9u21xXCJL7+EgQOhY0dYsUJ3GiG828iRqiz2Z5/pTlIy\nR+6ddktnb9269aI3KioqIikpiZkzZ9K6dWvXpfRCNWqoHYpjx0IFnxjqFvfeq4p1bdgAd9yhO40Q\n3mn3blX91MP2+paZ3eGj6667juuuu45rrrmG5cuXEx0dzebNm/nuu+9YsmRJRWb0SIMHq7pI69bp\nTuK8atXUudRjxqhToYQQZVNc8G7SJGjYUHca59htFPLz83nvvfcIDQ1l/fr1JCcn8/nnn2OxWCoy\nn8fy91erkHzlRvroo/DHH2oCXQhRNh9/rIaVn3xSdxLn2Z1TMJvN+Pn58dxzz9GkSRNbCWvDMDCZ\nTPTWuEVP95xCscJCtQJp1izo1k13mvL58kt1POCXX0JSEsycqdZWe8pmGyE83ZEjEBYG334Lbdro\nTnNlTm1ee+yxx2xvUpIPP/zQuXRO8JRGAdQNNSEBfvrJO2+kFzYKRUXQurXqAT34oO5kQniHoUOh\nZk2YPVt3ktK5ZEfzmTNnbMdlFjty5AjXajxcwJMahaIitXNxzBhVYtvbXNgoACxfDq+8oiaeq1bV\nm00IT7dpE/Ttq05prFdPd5rSuWSfQu/evTl37pzt64MHDxITE+NUsHHjxhEZGUmrVq3o1KkT+/fv\nt30vISGB4OBgQkJCWOUFS3uqVFEFr8aNU8NJ3u7++6FWrb8bCSFEyQoK1OTyrFne0SA4qtRGoVev\nXsTGxlJYWEhWVhZdu3Zl2rRpTl305Zdf5ueff2bnzp08+OCDTJo0CVBnNCclJWG1Wlm5ciXx8fEU\nFRU5da2K0K2bKoGxcKHuJM4zmdSRgRMmqL/0QoiSzZ4N118P/frpTuJapTYKQ4cOpVOnTjzwwAP0\n6NGDuXPn0qVLF6cuWqdOHdvneXl5XHf+0NLk5GTi4uLw9/cnMDCQoKAgUlNTnbpWRSi+kU6cCBd0\nqrxWp07qDImPP9adRAjPdOCAOl/l3Xe9cy7xSuxuXpt1/pig4jGo/fv3ExkZyZYtW/jPf/7j9BnN\nY8aM4dNPP6VmzZq2G39OTg633HKL7Tlms5ns7GynrlNRoqOhaVP48EP4xz90p3Hea69BXBw88oj3\nbtcXwl2GD4dhw3yzWrLdRiE3N/eilUe9evXCZDKRl5fn0BvHxMRw6NChyx6fOnUqPXr0YMqUKUyZ\nMoVp06YxfPhwu6uZ7K1+mnhBqdLo6Giio6MdyuVOU6aoyeaBA9WuZ292220QHq4OHH/mGd1phPAc\nK1aohRieWsriQikpKaSkpJTpNdqrpP7+++90796d3bt32+YqRo0aBcC9997LpEmT6NChw0Wv8aTV\nR5d64AFVR2j4cN1JHHPp6qML7dgB3btDRoaafBaisjt9Wv2ylJgIXbvqTlN2HlslNT093fZ5cnKy\n7XyGnj17smjRIvLz88nMzCQ9PZ32XlZx7tVX1YlLDnaoPFpUlKqF9M47upMI4RmmTlUb1LyxQXCU\n3eEjdxo9ejRpaWlUrVqV5s2bM3fuXAAsFguxsbFYLBb8/PxITEy0O3zkqVq2VD2F2bPVen9vN3ky\n3H03/POfvrXsToiy+vVXmDtXnZPgy7QPH5WHJw8fAezdC7ffDunpUL++7jRXdqXho2KDBkFgoCr2\nJURlZBhqVd4DD8Bzz+lOU35Olc4u9ueff/L++++TlZVFwfmF6yaTiQULFrgmpQ9q0QJ69lR1hF57\nTXca502YAO3aqQnn86uHhahUvvhCndE+bJjuJO5XaqPwwAMPcNdddxETE0OVKmoKwtuGdHQYN06N\nPT77rNrg4s2aNYPYWJg+HV5/XXcaISrWsWPw0kuwdCn4aRlwr1ilDh+1atWKnTt3VlQeh3j68FGx\np59WZxW88YbuJPY5MnwE6jSpiAh1gMiNN1ZMNiE8wbBhqoSNL5xj7pLVR/fffz/ffvuty0JVJmPG\nwEcfqd2P3i4gAB5/XO3FEKKy2LoVvv5aVUKuLErtKdSuXZtTp05RrVo1/P391YtMJk6cOFEhAUvi\nLT0FgJdfhtxctWrBEznaUwA4fBhCQmDbNjXxLIQvKyyEDh3UEPDAgbrTuIZLegp5eXkUFRVx5swZ\ncnNzyc3N1dogeJuRI2HxYvjtN91JnNegAcTHq2WqQvi6uXOhdm11KmFlYnfa5JdffiE0NJTt27eX\n+P3WrVu7LZQvufZaNbcwaZJvFJgbMQKCgyEtDW6+WXcaIdzj4EH1b3bdOt8reFcau8NHQ4cO5f33\n3yc6OrrE1UZr1651ezh7vGn4CODECQgKUn/BQkN1p7lYWYaPiiUkqA08ixa5L5cQOg0YADfd5Htz\nCS45ec0TeVujADBjhpq0WrxYd5KLladROHkSmjeHf/8bIiPdl00IHdasgSFD1GlqV12lO41reWzt\no8ro6adh40ZVZM7b1aoFo0apvRhC+JIzZ9S82Zw5vtcgOEoahQpy1VWqFtLYsbqTuMY//6kauC1b\ndCcRwnVmzICwMOjRQ3cSfaRRqEBDh8KePeqwb29Xo4bqKfhKIydERoYqZPn227qT6FVqo9CpUyeH\nHhOlq14dxo9Xm9q8bEqkRI8/DllZoHHNgRAuYRhqiHfkSGjSRHcavew2CqdPn+bIkSMcPnyYo0eP\n2j6ysrK85ohMTzRwoCoZ8f33upM4z99fnUvtK42cqLy++kr9u/SWw7HcyW6jMG/ePNq2bUtaWhpt\n2rSxffTs2ZOnn366IjP6FD8/tf7ZV26kcXFw/Dh8953uJEKUz4kT8PzzarPa+aINlZrdRmH48OFk\nZmby+uuvk5mZafvYtWuXyxqFWbNmUaVKFY4ePWp7LCEhgeDgYEJCQli1apVLruNp+vVTx/otX647\nifOqVlWnzY0dC0VFutMIUXYTJkCXLuqUQeFA6exnn32WTZs2XXSeAsBAJ4uB7N+/n9WrV3PTTTfZ\nHrNarSQlJWG1WsnOzqZz587s3bvXVrLbV1Spom6k48bB/ferr71Zr17qmMIlS6BvX91phHDczp3q\nrIQ9e3Qn8Ryl3o4eeeQRXnzxRTZs2MDWrVttH8564YUXmDFjxkWPJScnExcXh7+/P4GBgQQFBZGa\nmur0tTxRz55qBY+nbWYrD5NJHSY0frwqIiaENygqgqeeUpV/5fCov5XaU9i2bRtWq9WlB+skJydj\nNptp2bLlRY/n5ORwyy232L42m80+O6ldfCN9+mno08f7D+/o2lX9w/r8c9+pKCl827/+pf4dDh6s\nO4lnKfVWFB4ezsGDB7mxjCerxMTEcOjQocsenzJlCgkJCRfNF1xp27Uvn/LWuTM0agSffqqWd3oz\nk0n9xvXYY9C/vzpcSAhP9eefah5szRrvH751tVIbhcOHD2OxWGjfvj3Vq1cH1I162bJlV3zd6tWr\nS3x89+7dZGZmEnm+aM6BAwdo06YN//nPfwgICGD//v225x44cICAgIAS32fixIm2z6Ojo4mOji7t\nf8XjFN9IH35YFeA6/+P1WnfdpSqoLligdjwL4aleekmVxL5ksMLnpKSkkJKSUqbXlFoQr/gNLyyk\nZDKZuPvuu8sV8lJNmzZl27ZtXHPNNVitVgYMGEBqaqptojkjI+Oy3oI3FsS7ku7d4b779BwKXp6C\neFeydauaeE5Ph5o1XfOeQrjSunWqQdizB+rU0Z2mYjly7yy1pxAdHU1WVhYZGRl07tyZU6dOXbQK\nyRUhi1ksFmJjY7FYLPj5+ZGYmOjTw0fFXntN1Vp5/HHvL8LVrp36mDsXXnhBdxohLpafryaX33qr\n8jUIjiq1pzB//nzef/99jh49yr59+9i7dy9PPfUU32vckutrPQWAhx5SR/+99FLFXtfVPQWA//5X\nzZdkZMg/POFZpk2D9evhm28q3+E54KLS2e+++y4bNmygbt26ALRo0YI///zTNQmFzeTJ8Prranel\nt4uIgE6dpLCY8CxZWTBzpiqLXRkbBEeV2ihUr17dNsEMUFBQUCmGdCqaxQL33gtvvqk7iWtMmqS6\n6H/9pTuJEMqzz6pyFs2a6U7i2UptFO6++26mTJnCqVOnWL16NX379qVHZS427kYTJqjfYo4c0Z3E\necHB8OCDqvcjhG7JybB3L7z4ou4knq/UOYXCwkI++OAD276Crl27MmTIEK29BV+cUyj25JNQvz5M\nn14x13PHnEKx33+HqCh1rGHDhq5/fyEccfKk6ol/+CHcc4/uNHrJGc1e6MABtXbaaoUbbnD/9dzZ\nKIDqslepooaShNBh5EhVFvuzz3Qn0c8lE83Lly8nKiqKq6++mjp16lCnTh3bpLNwPbMZBg1SBeZ8\nwSuvwCefwAV7EoWoMLt3q82Us2bpTuI9Su0pNG/enKVLlxIeHu4x1Up9uacAagt+aKg6A9ndp0C5\nu6cAMGoUHD0K8+e77xpCXKqoCO6+W535ER+vO41ncElPwWw2ExYW5jENQmVw/fWqTMTkybqTuMbL\nL8PXX6t9C0JUlI8/hrNn1TydcFypPYUtW7Ywfvx4OnbsSLXzVc5MJhMvaNyu6us9BVBLOVu0gE2b\n1Eoed6mIngKoBi49XRX/E8LdjhyBsDB1ImDr1rrTeA6X9BTGjRtH7dq1OXPmDHl5eeTl5ZGbm+uy\nkKJkV1+tzoudMEF3EtcYPhxWrZLDTETFGDUKYmOlQSiPUmsfHTx40G7FU+Fezz0HQUGqbEREhO40\nzqlbV5XwGD9endAmhLts2qR6CFar7iTeqdSeQvfu3fn3v/9dEVnEJWrXVsvpxo3TncQ14uNhyxbY\ntk13EuGrCgpUwbtZs6BePd1pvFOpjUJiYiLdunWjRo0asiRVg6eeUjdRXziV9Kqr1BLVsWN1JxG+\navZstVCjXz/dSbxXqY1CXl4eRUVFnDlzhtzcXHJzcznhC1XbvESNGuom6is30qFD4ZdfYMMG3UmE\nrzlwQO3vefddKXjnDIfWmSYnJzNixAhefPFFli9f7u5M4hKDB8O+fepwEG9XrZqaPB8zBnx8AZmo\nYMOHq4OqWrTQncS7ldoojBo1itmzZxMWFkZoaCizZ89m9OjRFZFNnOfvDxMn+s6N9NFH4Y8/QNYv\nCFdZsQJ27gS5NTmv1Ebh22+/ZdWqVQwePJgnnniClStX8s033zh10YkTJ2I2m4mKiiIqKooVK1bY\nvpeQkEBwcDAhISG2InxCneF89Cj4wpy/n58qre0rjZzQ6/RpePppNWxUo4buNN6v1EbBZDJx7Ngx\n29fHjh1zukJq8ea3HTt2sGPHDrp16waA1WolKSkJq9XKypUriY+Pp6ioyKlr+YqqVdUGsLFjfeNG\n2rcvnDunShoL4YypU6FNG+jaVXcS31BqozB69Ghat27NoEGDGDRoEG3atOGVV15x+sIl7apLTk4m\nLi4Of39/AgMDCQoKItUXlt24SO/eqp7L0qW6kzivShV49VW13LawUHca4a1+/RXee893DqfyBKU2\nCnFxcWzevJnevXvTp08ftmzZQv/+/Z2+8Jw5c4iMjOSJJ56w9URycnIwm82255jNZrKzs52+lq+o\nUgVee813bqT33w+1akFSku4kwhsZhtr7MnYsBAToTuM77DYK27dvt30cOnQIs9lMQEAAOTk5bN++\nvdQ3jomJISIi4rKPZcuW8dRTT5GZmcnOnTtp1KgRI0aMsPs+cvTnxbp1U4fwLFyoO4nzTCaYMkWt\nRjp3Tnca4W2++ELVCBs2THcS32K3zEXbtm0JDw/n2muvLfH7a9euveIbO1oaY8iQIbbjPQMCAth/\nQeH9AwcOEGDnV4CJEyfaPo+OjiY6Otqh63m74hvpkCFqg46/v+5EzunUCRo3VmcuPPGE7jTCWxw7\npsqmLF2qFi6IkqWkpJCSklKm19itkvrWW2+xePFi6tevT79+/ejVqxd16tRxRU4OHjxIo0aNAHjz\nzTfZunUrX3zxBVarlQEDBpCamkp2djadO3cmIyPjst5CZaiSWpqYGDVZ+49/OPc+FVUl9Uo2b4b+\n/dUZutWr68shvMewYWoI9b33dCfxLi45jnPfvn0kJSXx//7f/+Omm25izJgxtGrVyqlgAwcOZOfO\nnZhMJpo2bcq8efNoeP4Q36lTp7JgwQL8/Px4++236VrCkgJpFFTZiz59VDlqZ5bheUKjAGp+oWtX\neOYZvTmE59u6FXr2VAXvrr5adxrv4rIzmvfs2cPChQv57LPPmD59Ov00FxaRRkF54AHo2FHt5Cwv\nT2kUdu6E7t1VI1erlt4swnMVFkKHDurs74EDdafxPk6dp7Bv3z6mTJlC+/btmTBhApGRkfzyyy/a\nGwTxt1dfhWnTIC9PdxLntWoFd9wB77yjO4nwZHPnqurBjz6qO4nvsttTqFKlChERETz44IO2qqjF\nrYycvOY54uLUWQvl3TriKT0FUIXy7r5b9Rak7LG41MGD0LKlqgFmsehO450cuXfanbcfP368bYI3\nzxd+FfVRkybB7ber9dr16+tO45zQULXk9o031P+XEBcaMUKtupMGwb0cmlPwNNJTuNgTT8CNN6rh\npLLypJ4CwG+/Qbt2kJYG112nO43wFGvWqAbBalXncojycckZzcLzjR8PiYlw+LDuJM5r1kydrTt9\nuu4kwlOcOaN6wu+8Iw1CRZBGwQfcdJOaW5g2TXcS1xg7Fj74AHJydCcRnmDGDAgLU8uWhftJo+Aj\nxoyBjz4CXygVFRAAjz+udm6Lyi0jQx2x+fbbupNUHqXOKcyaNeuicSiTyUS9evVo06aN05vYykvm\nFEr28suQm6uW7TnK0+YUih0+DCEh6nzqwEDdaYQOhqEWHnTqpEpaCOe5ZE5h27ZtvPfee+Tk5JCd\nnc28efNYsWIFQ4cOZboM/HqUkSNh8WI1WevtGjRQ48iyCqny+uor1fN1ZnOmKLtSewp33nknK1as\noHbt2oCAyRB3AAAbiklEQVRantq9e3dWrlxJmzZt+OWXXyok6IWkp2DfxImQmQkff+zY8z21pwCq\n6FlwMGzYADffrDuNqEgnTqilp4sWqU2NwjVc0lM4fPgw1apVs33t7+/PH3/8wVVXXUUNOfvO47zw\ngjqvVkNb7XL166v/nwkTdCcRFW3CBOjSRRoEHUotOvvwww/ToUMHHnzwQQzDYPny5QwYMICTJ09i\nkV0kHqduXXjxRbVMdfFi3Wmc9+yzEBQEP/8MkZG604iKsHOnOithzx7dSSonhzavbd26lY0bN2Iy\nmbj99ttp27ZtRWSzS4aPruzUKXUj/fZbiIq68nM9efio2Ntvw/ffw7JlupMIdysqUjv0n3hCbVYT\nruWyKqmFhYUcOnSIgoICW+mLJk2auCZlOUijULp33lHDSN9+e+XneUOjcOaMmltYvBhuuUV3GuFO\n8+erpdUbNqjjZ4VrOVX7qNicOXOYNGkS119/PVWrVrU9/t///tf5hMJthg6FmTNh0ya47TbdaZxT\no4Y6l3rsWFXuQPimP//8+89YGgR9Su0pNG/enNTUVLvHcuogPQXHLFgAn30GP/xg/zne0FMAdYZz\naCi8/746Q0L4nkGD1FLkmTN1J/FdLll91KRJE1vpbFeaM2cOoaGhhIeHM3LkSNvjCQkJBAcHExIS\nwqpVq1x+3cpk4EC1zvv773UncZ6/v1puO2aM2tQkfMu6dbB2rfozFnqVOnzUtGlTOnbsyH333Wdb\nmurseQpr165l2bJl7Nq1C39/fw6fr+RmtVpJSkrCarXazmjeu3cvVaQvWS5+fmrz15gxcM89cMlR\n114nLg4SEuC77+C++3SnEa6Snw9PPQVvvaUO0BF6OdRT6Ny5M/n5+eTl5ZGbm0tubq5TF507dy6j\nR4/G398fgAYNGgCQnJxMXFwc/v7+BAYGEhQURGpqqlPXquxiY9VqpG++0Z3EeVWrqvLgY8eqVSrC\nN7zxBjRtCr166U4iwIGewkQ39OfS09P58ccfeeWVV6hRowYzZ86kbdu25OTkcMsFy0vMZjPZvlDh\nTaMqVf6+kd53n/dP4PXqBVOnwpIl0Lev7jTCWVlZag4hNdX7e7K+wm6j8Nxzz/H222/To0ePy75n\nMplYVsqi8ZiYGA4dOnTZ41OmTKGgoIC//vqLLVu2sHXrVmJjY/nNTsEek52/KRc2VtHR0URHR18x\nT2XWs6e6kS5eDN5+xLbJBK+9Bs8/D717q96D8F7PPqv+LJs1053EN6WkpJCSklKm19htFB49fzL2\niBEjyhVm9erVdr83d+5cevfuDUC7du2oUqUK//vf/wgICGD//v225x04cICAgIAS38MdPRhfVXwj\nffpp6NNHzTV4s65d1alsn32mVqwI75ScDHv3+sbOe0916S/MkxypMGlo8N577xnjx483DMMw0tLS\njMaNGxuGYRh79uwxIiMjjbNnzxq//fab0axZM6OoqOiy12uK7dWKigzj7rsNY8GCix9PSjKMvn21\nRHLKunWGERhoGGfP6k4iyiMvzzCaNDGM77/XnaRyceTeafd3xoiICLsNiclkYteuXWVory42ePBg\nBg8eTEREBNWqVeOTTz4BwGKxEBsbi8Viwc/Pj8TERLvDR6JsTCZ1aM3DD8OAAVC9uu5EzrnrLmjR\nQu3F+Oc/dacRZTV5Mtx5p1oVJzyL3c1rWVlZACQmJgJqOMkwDD7//HMArWcpyOa18uveXU04Dxum\nvvaWzWsl2bpVTTynp0PNmrrTCEft3q02IO7eDQ0b6k5Tubik9lGrVq3YuXPnRY9FRUWxY8cO5xOW\nkzQK5bd9O/TooW6kV13l3Y0CqEbhzjtViW3h+YqK4O671Z6T+HjdaSofl+xoNgyDDRs22L7euHGj\n3JC9WOvWcOut8O67upO4xquvqoPdndw6IyrIxx/D2bPw5JO6kwh7Su0pbNu2jccff5zjx48DUL9+\nfT788ENat25dIQFLIj0F51itqvueng4rV3p3TwHUPEloqNqLITzXkSMQFqZ2pGu8fVRqLiudDdga\nhXr16jmfzEnSKDhv4EB15kJIiPc3CunpqveTng5XX607jbBn6FA19zN7tu4klZdLGoUzZ86wZMkS\nsrKyKCgosL3x+PHjXZe0jKRRcN5vv0H79mr/wg8/eHejAOpAluuvV5v0hOfZtEntQLdawQN+r6y0\nXDKn8MADD7Bs2TL8/f2pXbs2tWvXplatWi4LKfRo1gweekjVnfEF48fDvHnwxx+6k4hLFRSognez\nZkmD4A1K7SmEh4eze/fuisrjEOkpuMaBA2oIqWdP7+8pgCqZUKWKqrYpPMcbb6hTAFetkvpGurmk\np3Dbbbc5tVFNeC6zWf0G5+1F8oq98gp88glcUClFaHbggBrSe/ddaRC8Rak9hdDQUDIyMmjatCnV\nz2+DdXZHs7Okp+A6p06pYxADA3UncY1Ro+DoUXXWr9DvoYfUiiNHSu4I93PJRHPxzuZLBWq8i0ij\nIOw5elSVv9iyRQ2NCX1WrIBnnlE7l2vU0J1GgIuGjwIDA9m/fz9r164lMDCQWrVqyQ1ZeKxrrlFz\nC1JEV6/Tp1VV3nfflQbB25TaU5g4cSLbtm0jLS2NvXv3kp2dTWxsLBs3bqyojJeRnoK4khMnIDhY\nLbUNC9OdpnIaO1aVxfaFBQy+xCU9haVLl5KcnGxbhhoQEOD0cZxCuFPduvDSS2qZqqh4v/6qlge/\n+abuJKI8Sm0UqlevTpULlqecPHnSrYGEcIVhw9S8wrZtupNULoahCt2NHQt2zscSHq7URqFv3748\n+eSTHDt2jPnz59OpUyeGDBlSEdmEKLeaNWHMGKmHVNG++AL++uvv0uzC+zhU+2jVqlWsWrUKgK5d\nuxITE+P2YFcicwrCEfn5cPPN8OmncMcdutP4vmPHwGKBpUuhQwfdaURJXFoQD+Dw4cNcd911Tp+G\n1r9/f9LS0gA4duwY9evXt53PkJCQwIIFC6hatSqzZ8+mS5cul4eWRkE46MMP4aOPICVFNk+527Bh\nUFgI772nO4mwx6mJ5s2bNxMdHU3v3r3ZsWMH4eHhRERE0LBhQ1asWOFUsEWLFrFjxw527NhBnz59\n6NOnDwBWq5WkpCSsVisrV64kPj6eoqIip64lKrdHH1X1kFav1p3Et23dCl9/DQkJupMIZ9ltFJ5+\n+mleeeUV4uLi6NixI//61784dOgQP/74I6NHj3bJxQ3D4MsvvyQuLg6A5ORk4uLi8Pf3JzAwkKCg\nIFJTU11yLVE5+fmp3bRjxqhJUOF6hYWqXMr06VK63BfYbRQKCwvp0qULffv2pVGjRtxyyy0AhISE\nOD18VGz9+vU0bNiQ5s2bA5CTk4PZbLZ932w2k52d7ZJricqrb184dw6Sk3Un8U1z50Lt2qpXJryf\nn71vXHjjr1GOLYkxMTEcOnTossenTp1Kjx49AFi4cCEDBgy44vvYa4AmXrBlNTo6mujo6DJnFJVD\nlSrq2M5XXlHnU1etqjuR7zh4UPXE1q2TORtPlJKSQkpKSpleY3eiuWrVqlx11VUAnD59mpo1a9q+\nd/r0aduBO+VVUFCA2Wxm+/bt3HjjjQBMmzYNgFGjRgFw7733MmnSJDpcspRBJppFWRmGOp3t2Weh\nlN9DRBkMGAA33SRzCd7CqYnmwsJCcnNzyc3NpaCgwPZ58dfOWrNmDaGhobYGAaBnz54sWrSI/Px8\nMjMzSU9Pp3379k5fSwiTCaZMgQkT1FCScN7q1bB5M4wbpzuJcCW7w0fulpSUZJtgLmaxWIiNjcVi\nseDn50diYqLL5i+E6NQJGjeGjz9Wx3eK8jtzRi1BnTMHzg8oCB9Rpn0KnkKGj0R5bd4M/fpBejqc\nPx5ElMPkybBjh9qoJryHyzeveQppFIQz7r8funZVtf5F2WVkwC23wPbt0KSJ7jSiLKRREKIEO3dC\n9+6qt3C++K9wkGFAt25qKO6ll3SnEWXlktLZQviaVq1ULaR33tGdxPt89RVkZ8Pw4bqTCHeRnoKo\nlH79Fe66S/UW6tXTncY7nDihCt4tWiQFBr2V9BSEsCMkRA0hvfGG7iTeY8IE6NJFGgRfJz0FUWn9\n9hu0awdpaXDddbrTeLadO9Xk/J498rPyZtJTEOIKmjWD2FhVyE3YV1SkCt5NmSINQmUgPQVRqWVn\nQ0QE7N4NF2yuFxeYP1+dSbFhg6ojJbyXLEkVwgEjRqgduu++qzuJ5/nzTwgPhzVroGVL3WmEs6RR\nEMIBhw+riedt2yAwUHcazzJoEDRoADNn6k4iXEEaBSEcNG4cHDigju8Uyrp16owEq1WdlyC8nzQK\nQjjo2DEIDob161WvobLLz1eb/F57DXr31p1GuIqsPhLCQfXrwwsvqLX4Qu3faNoUevXSnURUNOkp\nCHHeyZMQFAQrV0JkpO40+mRlQdu2kJqqlu0K3yE9BSHKoFYtGDVKDo159ll4/nlpECoraRSEuMCT\nT6rdu1u26E6iR3Iy7N0LL76oO4nQRUujkJqaSvv27YmKiqJdu3Zs3brV9r2EhASCg4MJCQlh1apV\nOuKJSqxGDdVTGDtWd5KKd/Kk6iUkJsoBRJWZljmF6OhoRo8eTdeuXVmxYgUzZsxg7dq1WK1WBgwY\nwNatW8nOzqZz587s3buXKpdso5Q5BeFO585BaCi8/z507Kg7TcUZOVLt8P7sM91JhLt47JxCo0aN\nOH78OADHjh0jICAAgOTkZOLi4vD39ycwMJCgoCBSU1N1RBSVmL8/TJwIY8aoQ2Uqg927YcECmDVL\ndxKhm5ZGYdq0aYwYMYImTZrw0ksvkZCQAEBOTg5ms9n2PLPZTHZ2to6IopKLi4Pjx+G773Qncb/i\ngneTJ0PDhrrTCN383PXGMTExHDp06LLHp0yZwuzZs5k9eza9evVi8eLFDB48mNWrV5f4PiaTqcTH\nJ06caPs8Ojqa6OhoV8QWAoCqVeHVV9XcQrduvl0I7uOP4exZ+Mc/dCcRrpaSkkJKSkqZXqNlTqFu\n3bqcOHECAMMwqF+/PsePH2fatGkAjBo1CoB7772XSZMm0aFDh4teL3MKoiIYhjpvYeRI6NtXdxr3\nOHIEwsJUj6h1a91phLt57JxCUFAQ69atA+CHH36gRYsWAPTs2ZNFixaRn59PZmYm6enptG/fXkdE\nITCZVJmH8eOhsFB3GvcYNUqdKSENgijmtuGjK5k/fz7Dhg3j7Nmz1KxZk/nz5wNgsViIjY3FYrHg\n5+dHYmKi3eEjISpC167qYJnPPlMVQ33Jpk2qh2C16k4iPImUuRCiFD/+qBqEtDSoVk13GtcoKIA2\nbWD0aOjfX3caUVE8dvhICG9y113QogV88IHuJK5hGDBjBlx/PfTrpzuN8DTSUxDCAVu3woMPQkYG\n1KypO0355OfDokWqAmp+PixbpgoAispDegpCuEi7dtC+PcydqztJ2R05AlOnqlPlPv0UEhLUZjVp\nEERJpKcghIN274bOnSE9HerU0Z2mdGlp8NZbqnfQqxcMHy7nLFd20lMQwoXCw6FTJ3j7bd1J7DMM\nWLsWevSAO+9U5yv/8osqYSENgnCE9BSEKIOMDLj1VlVe+uqrdaf524XzBWfPqlPkHnnEe+c/hHvI\nGc1CuMHQoeo38KlTdSdR8wXz5sE776idyS+8oPZW+HJZDlF+0igI4Qa//w5RUWrTl64CcjJfIMpD\n5hSEcIMmTeDhh9Uqnook8wWiIkhPQYhyOHQILBb4+Wdo3Ni918rPh6QkNV9w5ozMF4jyk+EjIdxo\n1Cg4ehTOl+5yOZkvEK4mjYIQbnT0qCp/sWWLazeC7d2r5gsWLpT5AuFaMqcghBtdc4066P6C857K\n7cL5gjvuUJVZZb5A6CA9BSGccOIEBAfD99+rzW1lJfMFoiLJ8JEQFWDmTHU2wddfO/4amS8QOnjs\n8NHPP//MrbfeSsuWLenZsye5ubm27yUkJBAcHExISAirVq3SEU+IMhk2DP7zH9i2rfTn7t0L8fFq\nDiIjA1auhNWrff8caOE9tPw1HDJkCDNmzGDXrl306tWL119/HQCr1UpSUhJWq5WVK1cSHx9PUVGR\njoguUdYDs3WRnM6pWRPGjIGxY9XXl+b01PkCT/15XsobcnpDRkdpaRTS09O58847AejcuTNLliwB\nIDk5mbi4OPz9/QkMDCQoKIjU1FQdEV3CW/6iSE7nDRkCv/4KGzb8nTM/X5Wqbt1a9Q569oT/+z+Y\nPBluuEFvXvDsn+eFvCGnN2R0lJZGISwsjOTkZAAWL17M/v37AcjJycFsNtueZzabyc7O1hFRiDKp\nVg0mTFA9hlOn/j6/4JNP1Od79qiaSTKBLDyd2xqFmJgYIiIiLvtYvnw5CxYsIDExkbZt25KXl0e1\nKxx8azKZ3BVRCJd65BH44w9VWlvmC4TXMjRLS0sz2rdvbxiGYSQkJBgJCQm273Xt2tXYsmXLZa9p\n3ry5AciHfMiHfMhHGT6aN29e6j1Zy5LUw4cP06BBA4qKinjssce45557eOyxx7BarQwYMIDU1FSy\ns7Pp3LkzGRkZ0lsQQogKoqVTu3DhQm6++WZCQ0Mxm8089thjAFgsFmJjY7FYLHTr1o3ExERpEIQQ\nogJ55eY1IYQQ7uF1018rV64kJCSE4OBgpk+frjtOiQYPHkzDhg2JiIjQHeWK9u/fT8eOHQkLCyM8\nPJzZs2frjlSiM2fO0KFDB1q1aoXFYmH06NG6I9lVWFhIVFQUPXr00B3FrsDAQFq2bElUVBTt27fX\nHceuY8eO8dBDDxEaGorFYmHLli26I10mLS2NqKgo20e9evU89t9RQkICYWFhREREMGDAAM6ePVvy\nE10zXVwxCgoKjObNmxuZmZlGfn6+ERkZaVitVt2xLvPjjz8a27dvN8LDw3VHuaKDBw8aO3bsMAzD\nMHJzc40WLVp45M/TMAzj5MmThmEYxrlz54wOHToY69ev15yoZLNmzTIGDBhg9OjRQ3cUuwIDA40j\nR47ojlGqgQMHGh988IFhGOrP/dixY5oTXVlhYaFxww03GL///rvuKJfJzMw0mjZtapw5c8YwDMOI\njY01PvrooxKf61U9hdTUVIKCgggMDMTf35/+/fvb9jt4kjvvvJOrPelUdztuuOEGWrVqBUDt2rUJ\nDQ0lJydHc6qSXXXVVQDk5+dTWFjINddcoznR5Q4cOMB3333HkCFDPL42l6fnO378OOvXr2fw4MEA\n+Pn5Ua9ePc2prmzNmjU0b96cxu4+dakc6tati7+/P6dOnaKgoIBTp04REBBQ4nO9qlHIzs6+6Acu\nm9tcJysrix07dtChQwfdUUpUVFREq1ataNiwIR07dsRiseiOdJnnn3+e119/nSoevinBZDLRuXNn\n2rZty/vvv687TokyMzNp0KABjz/+OK1bt2bo0KGcOnVKd6wrWrRoEQMGDNAdo0TXXHMNI0aMoEmT\nJtx4443Ur1+fzp07l/hcz/7bewlZieQeeXl5PPTQQ7z99tvUrl1bd5wSValShZ07d3LgwAF+/PFH\njysr8M0333D99dcTFRXl8b+Fb9y4kR07drBixQreffdd1q9frzvSZQoKCti+fTvx8fFs376dWrVq\nMW3aNN2x7MrPz2f58uX07dtXd5QS7du3j7feeousrCxycnLIy8vj888/L/G5XtUoBAQE2EpigJoo\nvbAshii7c+fO0adPHx555BEefPBB3XFKVa9ePe677z5++ukn3VEusmnTJpYtW0bTpk2Ji4vjhx9+\nYODAgbpjlahRo0YANGjQgF69enlkfTGz2YzZbKZdu3YAPPTQQ2zfvl1zKvtWrFhBmzZtaNCgge4o\nJfrpp5+47bbbuPbaa/Hz86N3795s2rSpxOd6VaPQtm1b0tPTycrKIj8/n6SkJHr27Kk7ltcyDIMn\nnngCi8XC8OHDdcex63//+x/Hjh0D4PTp06xevZqoqCjNqS42depU9u/fT2ZmJosWLeKee+7hk08+\n0R3rMqdOnbKVqj958iSrVq3yyFVyN9xwA40bN2bv3r2AGq8PCwvTnMq+hQsXEhcXpzuGXSEhIWzZ\nsoXTp09jGAZr1qyxPwRbQZPfLvPdd98ZLVq0MJo3b25MnTpVd5wS9e/f32jUqJFRrVo1w2w2GwsW\nLNAdqUTr1683TCaTERkZabRq1cpo1aqVsWLFCt2xLrNr1y4jKirKiIyMNCIiIowZM2bojnRFKSkp\nHrv66LfffjMiIyONyMhIIywszGP/DRmGYezcudNo27at0bJlS6NXr14eu/ooLy/PuPbaa40TJ07o\njnJF06dPNywWixEeHm4MHDjQyM/PL/F5snlNCCGEjVcNHwkhhHAvaRSEEELYSKMghBDCRhoFIYQQ\nNtIoCCGEsJFGQQghhI00CsKnubtsR2BgIEePHr3s8XXr1rF58+YSX7N8+XKPLfsuhJ/uAEK4k7vr\nZZlMphJrHa1du5Y6depw6623Xva9Hj16ePR5C6Jyk56CqHT27dtHt27daNu2LXfddRdpaWkAPPbY\nYzz33HPcfvvtNG/enCVLlgCqQmt8fDyhoaF06dKF++67z/Y9gDlz5tCmTRtatmxJWloaWVlZzJs3\njzfffJOoqCg2bNhw0fU/+ugjnnnmmSte80JZWVmEhITw+OOPc/PNN/Pwww+zatUqbr/9dlq0aMHW\nrVvd9aMSlZA0CqLS+cc//sGcOXP46aefeP3114mPj7d979ChQ2zcuJFvvvmGUaNGAfD111/zf//3\nf/zyyy98+umnbN68+aIeSIMGDdi2bRtPPfUUM2fOJDAwkH/+85+88MIL7NixgzvuuOOi61/aeynp\nmpfat28fL774Ir/++itpaWkkJSWxceNGZs6cydSpU131oxFCho9E5ZKXl8fmzZsvKnGcn58PqJt1\ncaXY0NBQ/vjjDwA2bNhAbGwsgO08hwv17t0bgNatW/P111/bHnekgoy9a16qadOmtoJwYWFhtlr4\n4eHhZGVllXodIRwljYKoVIqKiqhfvz47duwo8fvVqlWzfV58U7903uDSm3316tUBqFq1KgUFBWXO\nVNI1L1V8DVBnSxS/pkqVKuW6phD2yPCRqFTq1q1L06ZN+eqrrwB1E961a9cVX3P77bezZMkSDMPg\njz/+YN26daVep06dOrYS1ZeSGpTCk0mjIHzaqVOnaNy4se3jrbfe4vPPP+eDDz6gVatWhIeHs2zZ\nMtvzLxzvL/68T58+mM1mLBYLjz76KK1bty7xvGCTyWR7TY8ePVi6dClRUVFs3LjR7vPsXbOk97b3\ntZxIKFxJSmcL4YCTJ09Sq1Ytjhw5QocOHdi0aRPXX3+97lhCuJzMKQjhgPvvv59jx46Rn5/P+PHj\npUEQPkt6CkIIIWxkTkEIIYSNNApCCCFspFEQQghhI42CEEIIG2kUhBBC2EijIIQQwub/A4tFvTZr\nGhPHAAAAAElFTkSuQmCC\n",
+ "text": [
+ "<matplotlib.figure.Figure at 0x5f260d0>"
+ ]
+ }
+ ],
+ "prompt_number": 16
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 3.3.12,Page No.116"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "import numpy as np\n",
+ "%matplotlib inline\n",
+ "\n",
+ "#Initilization of Variables\n",
+ "\n",
+ "F_G=10 #KN #Force at Pt G\n",
+ "F_B=F_E=15 #KN #Force at Pt B & E\n",
+ "w=20 #KN/m #U.d.L\n",
+ "L_FG=L_EF=L_DE=L_CD=L_BC=L_AB=1 #m #Lengths of FG,EF,DE,CD,BC,AB respectively\n",
+ "L=6 #m #Length of beam\n",
+ "\n",
+ "#Calculations\n",
+ "\n",
+ "#LEt R_F & R_A be the Reactions at E & A respectively\n",
+ "#R_F+R_A=60\n",
+ "\n",
+ "#Taking Moment At Pt A,M_A\n",
+ "R_F=(F_G*L+F_E*(L_AB+L_BC+L_CD+L_DE)+w*L_CD*(L_AB+L_BC+L_CD*2**-1)+F_B*L_AB)*(L_AB+L_BC+L_CD+L_DE+L_EF)**-1\n",
+ "R_A=60-R_F\n",
+ "\n",
+ "#Shear Force Calculations\n",
+ "\n",
+ "#S.F At G\n",
+ "V_G1=0 #KN \n",
+ "V_G2=F_G #KN\n",
+ "\n",
+ "#S.F At F\n",
+ "V_F1=V_G2 #KN\n",
+ "V_F2=V_F1-R_F\n",
+ "\n",
+ "#S.F At E\n",
+ "V_E1=V_F2 #KN\n",
+ "V_E2=V_F2+F_E\n",
+ "\n",
+ "#S.F At D\n",
+ "V_D=V_E2\n",
+ "\n",
+ "#S.F At C\n",
+ "V_C=V_E2+w*L_CD\n",
+ "\n",
+ "#S.F At B\n",
+ "V_B1=V_C\n",
+ "V_B2=V_B1+F_B\n",
+ "\n",
+ "#S.F At A\n",
+ "V_A1=V_B2\n",
+ "V_A2=V_B2-R_A\n",
+ "\n",
+ "#Bending Moment Calculations\n",
+ "\n",
+ "#B.M At Pt G\n",
+ "M_G=0\n",
+ "\n",
+ "#B.M At F\n",
+ "M_F=F_G*L_FG \n",
+ "\n",
+ "#B.M At E\n",
+ "M_E=F_G*(L_FG+L_EF)-R_F*L_EF\n",
+ "\n",
+ "#B.M At D\n",
+ "M_D=F_G*(L_FG+L_EF+L_DE)-R_F*(L_EF+L_DE)+F_E*L_DE\n",
+ "\n",
+ "#B.M At C\n",
+ "M_C=F_G*(L_FG+L_EF+L_DE+L_CD)-R_F*(L_EF+L_DE+L_CD)+F_E*(L_DE+L_CD)+w*L_CD*L_CD*2**-1\n",
+ "\n",
+ "#B.M At B\n",
+ "M_B=F_G*(L_FG+L_EF+L_DE+L_CD+L_BC)-R_F*(L_EF+L_DE+L_CD+L_BC)+F_E*(L_DE+L_CD+L_BC)+w*L_CD*(L_CD*2**-1+L_BC)\n",
+ "\n",
+ "#B.M At A\n",
+ "M_A=F_G*L-R_F*(L_EF+L_DE+L_CD+L_BC+L_AB)+F_E*(L_DE+L_CD+L_BC+L_AB)+F_B*L_AB+w*L_CD*(L_CD*2**-1+L_BC+L_AB)\n",
+ "\n",
+ "#Result\n",
+ "print \"The Shear Force and Bending Moment Diagrams are the results\"\n",
+ "\n",
+ "#Plotting the Shear Force Diagram\n",
+ "\n",
+ "X1=[0,0,L_FG,L_FG,L_FG+L_EF,L_FG+L_EF,L_FG+L_EF+L_DE,L_FG+L_EF+L_DE+L_CD,L_FG+L_EF+L_DE+L_CD+L_BC,L_FG+L_EF+L_DE+L_CD+L_BC,L_FG+L_EF+L_DE+L_CD+L_BC+L_AB,L_FG+L_EF+L_DE+L_CD+L_BC+L_AB]\n",
+ "Y1=[V_G1,V_G2,V_F1,V_F2,V_E1,V_E2,V_D,V_C,V_B1,V_B2,V_A1,V_A2]\n",
+ "Z1=[0,0,0,0,0,0,0,0,0,0,0,0]\n",
+ "plt.plot(X1,Y1,X1,Z1)\n",
+ "plt.xlabel(\"Length x in m\")\n",
+ "plt.ylabel(\"Shear Force in kN\")\n",
+ "plt.show()\n",
+ "\n",
+ "#Plotting the Bendimg Moment Diagram\n",
+ "\n",
+ "X2=[0,L_FG,L_EF+L_FG,L_EF+L_FG+L_DE,L_EF+L_FG+L_DE+L_CD,L_EF+L_FG+L_DE+L_CD+L_BC,L_EF+L_FG+L_DE+L_CD+L_BC+L_AB]\n",
+ "Y2=[M_G,M_F,M_E,M_D,M_C,M_B,M_A]\n",
+ "Z2=[0,0,0,0,0,0,0]\n",
+ "plt.plot(X2,Y2)\n",
+ "plt.xlabel(\"Lenght in m\")\n",
+ "plt.ylabel(\"Bending Moment in kN.m\")\n",
+ "plt.show()"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "The Shear Force and Bending Moment Diagrams are the results\n"
+ ]
+ },
+ {
+ "metadata": {},
+ "output_type": "display_data",
+ "png": "iVBORw0KGgoAAAANSUhEUgAAAYUAAAEPCAYAAACtCNj2AAAABHNCSVQICAgIfAhkiAAAAAlwSFlz\nAAALEgAACxIB0t1+/AAAHZJJREFUeJzt3XtYVAX+x/HPIOgmYt6hB3ie8eESF03whtZaoIKVK1kq\nhWUsZvbLrd32ktlly3IT3GrLLm5tP1O7PWnLFtiF1DVMKjTDbFf2UUowQGBLIu+LwPn9wXp+KgyD\nOTMHhvfreXicyxnPZ8pnPpzznXOOzTAMQwAASPKxOgAAoPOgFAAAJkoBAGCiFAAAJkoBAGCiFAAA\nJstK4cSJE0pISFBcXJxiYmJ07733SpLq6uqUnJysyMhIpaSkqL6+3qqIANDt2Kw8TuHYsWPq3bu3\nGhsb9dOf/lSPP/648vLyNGjQIC1cuFDLli3T999/r+zsbKsiAkC3Yunuo969e0uSGhoa1NTUpP79\n+ysvL08ZGRmSpIyMDL399ttWRgSAbsXSUmhublZcXJwCAwOVlJSk2NhY1dbWKjAwUJIUGBio2tpa\nKyMCQLfia+XKfXx89MUXX+iHH37QlClT9OGHH57xvM1mk81msygdAHQ/lpbCKRdeeKGmTp2qzz//\nXIGBgaqpqVFQUJCqq6s1ZMiQVsuHh4fr66+/tiApAHRdYWFh+uqrr9pdxrLdR9999535zaLjx49r\n48aNio+PV2pqqtasWSNJWrNmjaZPn97qtV9//bUMw/Dan4ceesjyDLw/3l93fH/e/N4Mw+jQL9OW\nbSlUV1crIyNDzc3Nam5u1pw5czRp0iTFx8crLS1NK1eulN1u17p166yKCADdjmWlMHz4cBUXF7d6\nfMCAAdq0aZMFiQAAHNHcCSUmJlodwa14f12bN78/b35vHWXpwWs/ls1mUxeMDQCW6shnJ1sKAAAT\npQAAMFEKAAATpQAAMFEKAAATpQAAMFEKAAATpQAAMFEKAAATpQAAMFEKAAATpQAAMFEKAAATpQAA\nMFEKAAATpQAAMFEKAAATpQAAMFEKAACTr9UBAKAzaGyUxo6VDh2yOom1bIazqzh3Qh25+DQAnIvj\nx6V+/aTdu61O4h47dkjp6c4/O9lSAID/8vGRwsOtTuEeNTUdW46ZAgDARCkAAEyUAgDARCkAAEyW\nlUJFRYWSkpIUGxurYcOG6emnn5Yk1dXVKTk5WZGRkUpJSVF9fb1VEQGg27GsFPz8/PTkk09q9+7d\nKioq0nPPPad//etfys7OVnJysvbu3atJkyYpOzvbqogA0O1YVgpBQUGKi4uTJPXp00fR0dGqqqpS\nXl6eMjIyJEkZGRl6++23rYoIAN1Op5gplJeXa+fOnUpISFBtba0CAwMlSYGBgaqtrbU4HQB0H5aX\nwpEjRzRjxgwtX75cAQEBZzxns9lks9ksSgYA3Y+lRzSfPHlSM2bM0Jw5czR9+nRJLVsHNTU1CgoK\nUnV1tYYMGdLmaxcvXmzeTkxMVGJiogcSA0DXUVBQoIKCAknSN9907DWWnfvIMAxlZGRo4MCBevLJ\nJ83HFy5cqIEDB+qee+5Rdna26uvrWw2bOfcRAFc7flwaMKDlT29UWChNmOD8s9OyUigsLNTll1+u\nSy65xNxFlJWVpbFjxyotLU3ffPON7Ha71q1bp379+p0ZmlIA4GKUQgvOkgoAohROsXzQDADoPCgF\nAICJUgAAmCgFAICJUgAAmCgFAICJUgAAmCgFAICJUgAAmCgFAICJUgAAmCgFAICJUgAAmCgFAICJ\nUgAAmCgFAICJUgAAmCgFAICJUgAAmCgFAICJUgAAmCgFAICJUgAAmCgFAICJUgAAmCgFAICJUgAA\nmCgFAIDJ19ETSUlJbT5us9kkSZs3b3ZPIgCAZRyWwmOPPWbePlUERUVFWrZsmYYMGeKSlc+dO1fv\nvvuuhgwZon/84x+SpLq6Ol1//fXav3+/7Ha71q1bp379+rlkfQCA9jncfTR69Gjz5/Dhw7rnnnv0\n+uuv64UXXtCOHTtcsvLMzEzl5+ef8Vh2draSk5O1d+9eTZo0SdnZ2S5ZFwDAOYdbCpKUn5+vRx99\nVD179tQDDzzgcJfSjzVhwgSVl5ef8VheXp62bNkiScrIyFBiYiLFAAAe4rAUxowZo2+//Va/+93v\nNH78eElScXGx+fzIkSPdEqi2tlaBgYGSpMDAQNXW1ra53OLFbll9pxAXJ02fbnUKAN2Rw1Lw9/eX\nv7+/cnJylJOT0+r5Dz/80K3BpJZZxql5xtkKChabt+32RNntiW7P4wnffCNt2kQpADh/BQUFKigo\nkNTy2dIRDkvh1F/U3NwsH58zRw8nTpz4UQE7IjAwUDU1NQoKClJ1dbXDofbppeBNCgulRYusTgHA\nGyQmJioxMVFSy2fLqlUPO32N0+MU5s2bd8b9I0eO6Oqrr/5xCTsgNTVVa9askSStWbNG0/mVGQA8\n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\nKQAATP8HttSK1NQ812EAAAAASUVORK5CYII=\n",
+ "text": [
+ "<matplotlib.figure.Figure at 0x5febb90>"
+ ]
+ },
+ {
+ "metadata": {},
+ "output_type": "display_data",
+ "png": "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\nDsV00dHRjsOHD1sdhsfce++9jlmzZjkcDuPv6NGjR8t9nl+NFHJycmjatCnR0dGEh4dz1113kZmZ\naXVYpmnfvj116tSxOgyPadiwIUlJSQBEREQQFxfHvn37LI7KPJdeeikAxcXFlJSUULduXYsjMtcP\nP/zAf//7Xx544AEcATrrHKi/108//cTKlSsZPHgwAGFhYdSqVavc5/pVUsjPz6dRo0bOP0dFRZGf\nn29hRFJdeXl55ObmkpKSYnUopjl9+jRJSUk0aNCADh06EB8fb3VIpnr88cd5/vnnCQnxq7cNl9ls\nNjp16kSbNm2YOXOm1eGYavfu3VxxxRUMGjSIVq1aMWTIEIqKisp9rl/917XZbFaHICYoLCykb9++\nvPTSS0RERFgdjmlCQkJYt24dP/zwAytWrAiokgmLFy+mfv36JCcnB+yn6VWrVpGbm8uSJUt49dVX\nWblypdUhmebUqVOsXbuWoUOHsnbtWi677DImTZpU7nP9KilcffXVzoqqYCxcRkVFWRiRVNXJkye5\n4447uPvuu+nVq5fV4XhErVq16NGjB19//bXVoZjmyy+/ZOHChTRp0oQBAwbw2Wefce+991odlqmu\nvPJKAK644gp69+5NTk6OxRGZJyoqiqioKH7/+98D0LdvX9auXVvuc/0qKbRp04bt27eTl5dHcXEx\nc+fOpWfPnlaHJS5yOBzcf//9xMfHM3z4cKvDMdWhQ4c4evQoAL/88guffPKJ81BmIJgwYQJ79+5l\n9+7d/Otf/+LWW2/lnXfesTos0xQVFTlL6hw/fpylS5cG1C7Ahg0b0qhRI7Zt2wbAp59+SosWLcp9\nrmUF8aojLCyMV155hS5dulBSUsL9999PXFyc1WGZZsCAASxfvpzDhw/TqFEjxo4dy6BBg6wOyzSr\nVq3ivffec277A5g4cSJdu3a1ODL37d+/nz/84Q+cPn2a06dPc88999CxY0erw/KYQJvKPXDgAL17\n9waMqZaBAwfSuXNni6My18svv8zAgQMpLi4mJiaGOXPmlPs8HV4TEREnv5o+EhERz1JSEBERJyUF\nERFxUlIQEREnJQUREXFSUhARESclBQloni6jER0dzZEjR8o8vnz5clavXl3uaxYtWhRwZd8lcPjV\n4TWRqvL0ISubzVZuLaDPP/+cyMhIbrjhhjI/S0tLC8h+BBIYNFKQoLNz5066detGmzZtuPnmm9m6\ndSsA9913H4899hjt2rUjJiaGefPmAUb106FDhxIXF0fnzp3p0aOH82dgnBRt3bo11113HVu3biUv\nL4/p06fzj3/8g+TkZL744otS93/rrbf405/+dMF7nisvL4/Y2FgGDRrE7373OwYOHMjSpUtp164d\nzZs3Z82aNZ76VyVBSElBgs6DDz7Iyy+/zNdff83zzz/P0KFDnT8rKChg1apVLF68mBEjRgAwf/58\n9uzZw+bNm3n33XdZvXp1qRHIFVdcwTfffMMf//hHpkyZQnR0NA8//DBPPPEEubm53HTTTaXuf/7o\npbx7nm/nzp08+eSTbNmyha1btzJ37lxWrVrFlClTmDBhgln/akQ0fSTBpbCwkNWrV9OvXz/nY8XF\nxYDxZn22cmtcXBwHDhwA4IsvvuDOO+8EcPZKOFefPn0AaNWqFfPnz3c+7koFmYrueb4mTZo4C5i1\naNGCTp06AZCQkEBeXl6l9xFxlZKCBJXTp09Tu3ZtcnNzy/15jRo1nN+ffVM/f93g/Df7iy66CIDQ\n0FBOnTpV5ZjKu+f5zt4DjL4NZ18TEhJSrXuKVETTRxJUatasSZMmTfi///s/wHgT/vbbby/4mnbt\n2jFv3jwcDgcHDhxg+fLlld4nMjLSWYr5fKpBKb5MSUECWlFREY0aNXJ+vfjii7z//vvMmjWLpKQk\nEhISWLhwofP55873n/3+jjvuICoqivj4eO655x5atWpVbn9bm83mfE1aWhoLFiwgOTmZVatWVfi8\niu5Z3rUr+nOglbEWa6l0togLjh8/zmWXXcbhw4dJSUnhyy+/pH79+laHJWI6rSmIuOC2227j6NGj\nFBcXM2rUKCUECVgaKYiIiJPWFERExElJQUREnJQURETESUlBRESclBRERMRJSUFERJz+P8O/Vq30\nkcIBAAAAAElFTkSuQmCC\n",
+ "text": [
+ "<matplotlib.figure.Figure at 0x5c11c90>"
+ ]
+ }
+ ],
+ "prompt_number": 29
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 3.3.13,Page No.117"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "import numpy as np\n",
+ "%matplotlib inline\n",
+ "\n",
+ "#Initilization of Variables\n",
+ "L_AB=L_BC=L_CD=L_DE=L_EF=1 #m #LEngth of AB,BC,CD,DE,EF respectively\n",
+ "M_A=50 #KN/m #Moment at A\n",
+ "w=5 #KN/m #u.v.l\n",
+ "F_D=10 #KN\n",
+ "w2=5 #KN/m #u.d.l\n",
+ "\n",
+ "#Calculations\n",
+ "\n",
+ "#Let R_B & R_E be the Reactions at B and E respectively\n",
+ "#R_B+R_E=20\n",
+ "\n",
+ "#Taking Moment At Pt B,M_B\n",
+ "R_E=(w2*L_EF*(L_EF*2**-1+L_DE+L_CD+L_BC)+w*L_BC*2**-1*2*3**-1+50+F_D*(L_BC+L_CD))*3**-1\n",
+ "R_B=17.5-R_E #KN\n",
+ "\n",
+ "#Shear Force Calculations\n",
+ "\n",
+ "#S.F At F\n",
+ "V_F=0\n",
+ "\n",
+ "#S.F aT E\n",
+ "V_E1=-w2*L_EF #KN\n",
+ "V_E2=V_E1+R_E\n",
+ "\n",
+ "#S.F at D\n",
+ "V_D1=R_E-w2*L_EF #KN\n",
+ "V_D2=V_D1-F_D #KN\n",
+ "\n",
+ "#S.F At C\n",
+ "V_C=V_D2\n",
+ "\n",
+ "#S.F aT B\n",
+ "V_B1=-L_BC*w*2**-1-F_D+R_E-w2*L_EF\n",
+ "V_B2=V_B1+R_B\n",
+ "\n",
+ "#Bending Moment Calculations\n",
+ "\n",
+ "#B.M at F\n",
+ "M_F=0 #KN.m\n",
+ "\n",
+ "#B.M At E\n",
+ "M_E=w2*L_EF*L_EF*2**-1 #KN.m\n",
+ "\n",
+ "#B.M at D\n",
+ "M_D=-R_E*L_DE+w2*L_EF*(L_EF*2**-1+L_DE) #KN.m\n",
+ "\n",
+ "#B.M At C\n",
+ "M_C=F_D*L_CD*R_E*(L_CD+L_DE)+w2*L_EF*(L_EF*2**-1+L_DE+L_CD) #KN.m\n",
+ "\n",
+ "#B.M At B\n",
+ "M_B=F_D*(L_CD+L_BC)-R_E*(L_BC+L_CD+L_DE)+w2*L_EF*(L_EF*2**-1+L_BC+L_CD+L_DE)+1*2**-1*L_BC*w*2*3**-1\n",
+ "\n",
+ "#B.M At A\n",
+ "M_A1=w*L_EF*(L_EF*2**-1+L_AB+L_BC+L_CD+L_DE)-R_E*(L_AB+L_BC+L_CD+L_DE)+F_D*(L_AB+L_BC+L_CD)+1*2**-1*L_BC*w*(2*3**-1*L_BC+L_AB)-R_B*L_AB\n",
+ "M_A2=M_A1+M_A\n",
+ "\n",
+ "#Result\n",
+ "print \"The Shear Force and Bending Moment Diagrams are the results\"\n",
+ "\n",
+ "#Plotting the Shear Force Diagram\n",
+ "\n",
+ "X1=[0,L_EF,L_EF,L_DE+L_EF,L_DE+L_EF,L_CD+L_DE+L_EF,L_CD+L_DE+L_EF+L_BC,L_CD+L_DE+L_EF+L_BC]\n",
+ "Y1=[V_F,V_E1,V_E2,V_D1,V_D2,V_C,V_B1,V_B2]\n",
+ "Z1=[0,0,0,0,0,0,0,0]\n",
+ "plt.plot(X1,Y1,X1,Z1)\n",
+ "plt.xlabel(\"Length x in m\")\n",
+ "plt.ylabel(\"Shear Force in kN\")\n",
+ "plt.show()\n",
+ "\n",
+ "#Plotting the Bendimg Moment Diagram\n",
+ "\n",
+ "X2=[0,L_EF,L_DE+L_EF,L_CD+L_DE+L_EF,L_CD+L_DE+L_EF+L_BC,L_CD+L_DE+L_EF+L_BC+L_AB,L_CD+L_DE+L_EF+L_BC+L_AB]\n",
+ "Y2=[M_F,M_E,M_D,M_C,M_B,M_A1,M_A2]\n",
+ "Z2=[0,0,0,0,0,0,0]\n",
+ "plt.plot(X2,Y2,X2,Z2)\n",
+ "plt.xlabel(\"Length in m\")\n",
+ "plt.ylabel(\"Bending Moment in kN.m\")\n",
+ "plt.show()"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "The Shear Force and Bending Moment Diagrams are the results\n"
+ ]
+ },
+ {
+ "metadata": {},
+ "output_type": "display_data",
+ "png": "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\n9fRALU6VlZUpPDxckrRlyxaNHDmyxfVc+YUAAK6xZIRw8803q6ioSIZhKDo6WuvXr1doaKi3ywAA\nnMPyXUYAAN/gE2cq5+fna8SIERo6dKjuv//+Fte57bbbNHToUCUkJKiwsNDLFTZwVmdBQYEuuugi\n+wl399xzj9drnDdvnkJDQx3uhpN8oy+d1ekLfVlaWqq0tDTFxcUpPj5ejz76aIvrWd2fbanTF/rz\n7NmzSk5OVmJiomJjY/Wb3/ymxfWs7s+21OkL/SlJdXV1SkpK0owZM1p8v919aVqstrbWHDx4sFlc\nXGxWV1ebCQkJ5v79+5uss23bNnPq1KmmaZrmnj17zOTkZJ+s8+233zZnzJjh9drOtXPnTvPjjz82\n4+PjW3zfF/rSNJ3X6Qt9WVZWZhYWFpqmaZonTpwwhw0b5pP/NttSpy/0p2ma5qlTp0zTNM2amhoz\nOTnZfPfdd5u87wv9aZrO6/SV/nzooYfMn/70py3W4kpfWj5C2Lt3r4YMGaKoqCj5+/vrhhtu0Nat\nW5usk5eXp+zsbElScnKyqqqqVFFR4XN1StafcJeSkqJ+/fo5fN8X+lJyXqdkfV+GhYUpMTFRkhQY\nGKiYmBgdPXq0yTq+0J9tqVOyvj8lqU+fPpKk6upq1dXVqX///k3e94X+bEudkvX9efjwYb3++uta\nsGBBi7W40peWB8KRI0cUGRlpfx0REaEjR444Xefw4cNeq9FRDefXaRiG3n//fSUkJGjatGnav3+/\nV2tsC1/oy7bwtb4sKSlRYWGhkpOTmyz3tf50VKev9Gd9fb0SExMVGhqqtLQ0xcbGNnnfV/rTWZ2+\n0J+//OUv9cADD8jPr+WvcVf60vJAMNp4ttT5CdjWz7lLW9obPXq0SktL9cknn2jp0qWaOXOmFypr\nP6v7si18qS9PnjypWbNmae3atQoMDGz2vq/0Z2t1+kp/+vn5qaioSIcPH9bOnTtbvBSEL/Snszqt\n7s/XXntNISEhSkpKanWk0t6+tDwQBg0apNLSUvvr0tJSRUREtLrO4cOHNWjQIK/V2FINLdUZFBRk\nH2pOnTpVNTU1qqys9GqdzvhCX7aFr/RlTU2NsrKydOONN7b4R+8r/emsTl/pz0YXXXSRpk+fro8+\n+qjJcl/pz0aO6rS6P99//33l5eUpOjpac+bM0Y4dO3TzzTc3WceVvrQ8EMaOHauDBw+qpKRE1dXV\nevHFF5WZmdlknczMTD377LOSpD179qhv375eP2+hLXVWVFTYE3nv3r0yTbPFfY9W8oW+bAtf6EvT\nNDV//nzFxsZq2bJlLa7jC/3Zljp9oT+/++47+3XLzpw5o+3btyspKanJOr7Qn22p0+r+XL16tUpL\nS1VcXKwXXnhBEydOtPdbI1f60pIzlZsU0LOnHnvsMV111VWqq6vT/PnzFRMTo/Xr10uSFi1apGnT\npun111/XkCFDFBAQoI0bN/pknZs3b9af/vQn9ezZU3369NELL7zg9TrnzJmjd955R999950iIyN1\n9913q6amxl6jL/RlW+r0hb7ctWuXNm3apFGjRtm/EFavXq1//etf9jp9oT/bUqcv9GdZWZmys7NV\nX1+v+vp63XTTTZo0aZLP/a23pU5f6M9zNe4K6mhfcmIaAECSD+wyAgD4BgIBACCJQAAA2BAIAABJ\nBAIAwIZAAABIIhDQCbV0+Qh3euSRR3TmzBm3t/fqq686vLw74As4DwGdTlBQkE6cOOGx7UdHR+uj\njz7SgAEDvNIe4CsYIaBL+PrrrzV16lSNHTtWP/7xj3XgwAFJ0i233KJf/OIXmjBhggYPHqzc3FxJ\nDVezXLJkiWJiYpSRkaHp06crNzdX69at09GjR5WWlqZJkybZt3/nnXcqMTFR48eP17ffftus/WXL\nlmnVqlWSpH/84x+68sorm63z9NNPa+nSpa3Wda6SkhKNGDFCc+fO1fDhw/Wzn/1Mb7zxhiZMmKBh\nw4bpww8/7HjHAedy9cYMgFUCAwObLZs4caJ58OBB0zQbbgYyceJE0zRNMzs727zuuutM0zTN/fv3\nm0OGDDFN0zRffvllc9q0aaZpmmZ5ebnZr18/Mzc31zRN04yKijK///57+7YNwzBfe+010zRN8447\n7jDvueeeZu2fPn3ajIuLM3fs2GEOHz7cPHToULN1nn76afPWW29tta5zFRcXmz179jQ/++wzs76+\n3hwzZow5b9480zRNc+vWrebMmTOd9hXQHpZfywjoqJMnT2r37t2aPXu2fVl1dbWkhmu8NF79MyYm\nxn6DkPfee0/XXXedJNmvee9Ir169NH36dEnSmDFjtH379mbrXHjhhXryySeVkpKitWvXKjo6utWa\nHdV1vujoaMXFxUmS4uLiNHnyZElSfHy8SkpKWm0DaC8CAZ1efX29+vbt6/Cesb169bI/N21TZoZh\nNLlWvNnKVJq/v7/9uZ+fn2pra1tcb9++fRo4cGCzGyc50lJd5+vdu3eTths/01odgKuYQ0CnFxwc\nrOjoaG3evFlSw5frvn37Wv3MhAkTlJubK9M0VVFRoXfeecf+XlBQkI4fP96uGr755hv94Q9/UGFh\nof7+979r7969zdZpLXQAX0AgoNM5ffq0IiMj7Y9HHnlEzz33nDZs2KDExETFx8crLy/Pvv65d4lq\nfJ6VlaWIiAjFxsbqpptu0ujRo3XRRRdJkhYuXKgpU6bYJ5XP//z5d50yTVMLFizQQw89pLCwMG3Y\nsEELFiyw77Zy9FlHz8//jKPXvninO3RuHHaKbuvUqVMKCAjQ999/r+TkZL3//vsKCQmxuizAMswh\noNu6+uqrVVVVperqat11112EAbo9RggAAEnMIQAAbAgEAIAkAgEAYEMgAAAkEQgAABsCAQAgSfp/\np8METwRPdJcAAAAASUVORK5CYII=\n",
+ "text": [
+ "<matplotlib.figure.Figure at 0x5462a10>"
+ ]
+ },
+ {
+ "metadata": {},
+ "output_type": "display_data",
+ "png": "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\nQmCC\n",
+ "text": [
+ "<matplotlib.figure.Figure at 0x5f0c690>"
+ ]
+ }
+ ],
+ "prompt_number": 15
+ }
+ ],
+ "metadata": {}
+ }
+ ]
+}
\ No newline at end of file diff --git a/Strength_Of_Materials_by_S_S_Bhavikatti/chapter_04.ipynb b/Strength_Of_Materials_by_S_S_Bhavikatti/chapter_04.ipynb new file mode 100644 index 00000000..584f8c5e --- /dev/null +++ b/Strength_Of_Materials_by_S_S_Bhavikatti/chapter_04.ipynb @@ -0,0 +1,1661 @@ +{
+ "metadata": {
+ "name": "chapter 04.ipynb"
+ },
+ "nbformat": 3,
+ "nbformat_minor": 0,
+ "worksheets": [
+ {
+ "cells": [
+ {
+ "cell_type": "heading",
+ "level": 1,
+ "metadata": {},
+ "source": [
+ "Chapter 4:Stresses in Beams"
+ ]
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 4.4.1,Page no.130"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "import numpy as np\n",
+ "\n",
+ "#Initilization of Variables\n",
+ "\n",
+ "L=5000 #mm #Length of Beam\n",
+ "a=2000 #mm #Length of start of beam to Pt Load\n",
+ "b=3000 #mm #Length of Pt load to end of beam\n",
+ "A=150*250 #m**2 #Area of beam \n",
+ "b=150 #mm #Width of beam\n",
+ "d=250 #mm #Depth of beam\n",
+ "sigma=10#N/mm**2 #stress\n",
+ "l=2000 #m #Load applied from one end\n",
+ "\n",
+ "#Calculations\n",
+ "\n",
+ "#Moment of Inertia\n",
+ "I=1*12**-1*b*d**3 #m**4\n",
+ "\n",
+ "#Distance from N.A to end\n",
+ "y_max=d*2**-1 #m\n",
+ "\n",
+ "#Section Modulus\n",
+ "Z=1*6**-1*b*d**2 #mm**3\n",
+ "\n",
+ "#Moment Carrying Capacity\n",
+ "M=sigma*Z #N-mm\n",
+ "\n",
+ "#Let w be the Intensity of the Load in N/m,then Max moment\n",
+ "#M_max=w*L**2*8**-1 #N-mm\n",
+ "#After substituting values and further simplifying we get\n",
+ "#M_max=w*25*100*8**-1\n",
+ "\n",
+ "#EQuating it to moment carrying capacity,we get max intensity load\n",
+ "w=M*(25*1000)**-1*8*10**-3\n",
+ "\n",
+ "#Part-2\n",
+ "\n",
+ "#Let P be the concentrated load,then max moment occurs under the load and its value\n",
+ "#M1=P*a*b*L**-1 #N-mm\n",
+ "\n",
+ "#Equting it to moment carrying capacity we get\n",
+ "P=M*1200**-1*10**-3 #N\n",
+ "\n",
+ "#Result\n",
+ "print\"Max Intensity of u.d.l it can carry\",round(w,3),\"KN-m\"\n",
+ "print\"MAx concentrated Load P apllied at 2 m from one end is\",round(P,3),\"KN\""
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Max Intensity of u.d.l it can carry 5.0 N-mm\n",
+ "MAx concentrated Load P apllied at 2 m from one end is 13.021 KN\n"
+ ]
+ }
+ ],
+ "prompt_number": 9
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 4.4.2,Page no.131"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "import numpy as np\n",
+ "\n",
+ "#Initilization of Variables\n",
+ "\n",
+ "D=70 #mm #External Diameter\n",
+ "t=8 #mm #Thickness of pipe\n",
+ "L=2500 #mm #span \n",
+ "sigma=150 #N/mm**2 #stress\n",
+ "\n",
+ "#Calculations\n",
+ "\n",
+ "#Internal Diameter \n",
+ "d=D-2*t #mm\n",
+ "\n",
+ "#M.I Of Pipe\n",
+ "I=pi*64**-1*(D**4-d**4) #mm**4\n",
+ "\n",
+ "y_max=D*2**-1 #mm\n",
+ "Z=I*(y_max)**-1 #mm**3\n",
+ "\n",
+ "#Moment Carrying capacity\n",
+ "M=sigma*Z #N*mm\n",
+ "\n",
+ "#Max moment int the beam occurs at the mid-span and is equal to\n",
+ "#m=P*L*4**-1\n",
+ "\n",
+ "#Equating Max moment to moment carrying capacity we get,\n",
+ "#M=P*2.5*L*4**-1\n",
+ "#After substituting and simplifying we get\n",
+ "P=4*M*(L)**-1*10**-3 #N\n",
+ "\n",
+ "#Result\n",
+ "print\"Max concentrated load that can be applied at the centre of span is\",round(P,3),\"KN\""
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Max concentrated load that can be applied at the centre of span is 5.22 KN\n"
+ ]
+ }
+ ],
+ "prompt_number": 9
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 4.4.3,Page no.132"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "import numpy as np\n",
+ "\n",
+ "#Initilization of Variables\n",
+ "\n",
+ "#Flanges Dimension\n",
+ "b1=180 #mm #Width\n",
+ "d1=10 #mm #Thickness\n",
+ "\n",
+ "D=500 #mm #Overall depth\n",
+ "t=8 #mm #Thickness of web\n",
+ "\n",
+ "#Plate Dimensions\n",
+ "b2=240 #mm #Width\n",
+ "t2=12 #mm #Thickness\n",
+ "\n",
+ "sigma=150 #N/mm**2 #Stress\n",
+ "L=3000 #mm #span\n",
+ "\n",
+ "#Calculations\n",
+ "\n",
+ "#Distance of centroid from bottom fibre\n",
+ "y_bar=(b2*t2*(D+t2*2**-1)+b1*d1*(D-t1*2**-1)+(D-2*t1)*t*D*2**-1+(b1*t1*t1*2**-1))*(b2*t2+b1*d1+b1*d1+(D-2*d1)*t)**-1\n",
+ "\n",
+ "#M.I of section\n",
+ "I=(1*12**-1*b2*t2**3+b2*t2*(D+t2*2**-1-y_bar)**2+1*12**-1*b1*d1**3+b1*d1*(D-t1*2**-1-y_bar)**2+1*12**-1*b1*t1**3+b1*t1*(t1*2**-1-y_bar)**2+1*12**-1*t*(D-2*t1)**3+t*(D-2*t1)*(D*2**-1-y_bar)**2)\n",
+ "\n",
+ "#Section Modulus\n",
+ "Z=I*(y_bar)**-1 #mm**3\n",
+ "\n",
+ "#Moment or Resistance\n",
+ "M=sigma*Z\n",
+ "\n",
+ "#Let Load on Cantilever be w/m Length \n",
+ "#Max M.I produced\n",
+ "#M_max=w*L**2**-1 \n",
+ "\n",
+ "#Now Equating Moment of resistance to Max moment,we get Max load\n",
+ "#4.5*w=M\n",
+ "#After rearranging and further simplifying we get\n",
+ "w=M*4.5**-1*10**3*10**-9\n",
+ "\n",
+ "#Result\n",
+ "print\"Moment of Resistance is\",round(M,2),\"KN-mm\"\n",
+ "print\"Load the section can carry is\",round(w,3),\"KN/m\""
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Moment of Resistance is 198770121.83 KN-mm\n",
+ "Load the section can carry is 44.171 KN/m\n"
+ ]
+ }
+ ],
+ "prompt_number": 26
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 4.4.4,Page no.134"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "import numpy as np\n",
+ "\n",
+ "#Initilization of Variables\n",
+ "\n",
+ "#Flange (Top)\n",
+ "b1=80 #mm #Width \n",
+ "t1=40 #mm #Thickness\n",
+ "\n",
+ "#Flange (Bottom)\n",
+ "b2=160 #mm #width\n",
+ "t2=40 #mm #Thickness\n",
+ "\n",
+ "#web\n",
+ "d=120 #mm #Depth\n",
+ "t3=20 #mm #Thickness\n",
+ "\n",
+ "D=200 #mm #Overall Depth\n",
+ "sigma1=30 #N/mm**2 #Tensile stress\n",
+ "sigma2=90 #N/mm**2 #Compressive stress\n",
+ "L=6000 #mm #Span\n",
+ "\n",
+ "#Calculations\n",
+ "\n",
+ "#Distance of centroid from bottom fibre\n",
+ "y_bar=(b1*t1*(D-t1*2**-1)+d*t3*(d*2**-1+t2)+b2*t2*t2*2**-1)*(b1*t1+d*t3+b2*t2)**-1 #mm\n",
+ "\n",
+ "#Moment of Inertia\n",
+ "I=1*12**-1*b1*t1**3+b1*t1*(D-t1*2**-1-round(y_bar,2))**2+1*12**-1*t3*d**3+t3*d*(d*2**-1+t2-round(y_bar,2))**2+1*12**-1*b2*t2**3+b2*t2*(t2*2**-1-round(y_bar,2))**2\n",
+ "\n",
+ "#Extreme fibre distance of top and bottom fibres are y_t and y_c respectively\n",
+ "\n",
+ "y_t=y_bar #mm\n",
+ "y_c=D-y_bar #mm\n",
+ "\n",
+ "#Moment carrying capacity considering Tensile strength \n",
+ "M1=sigma1*I*y_t**-1*10**-6 #KN-m\n",
+ "\n",
+ "#Moment carrying capacity considering compressive strength \n",
+ "M2=sigma2*I*y_c**-1*10**-6 #KN-m\n",
+ "\n",
+ "#Max Bending moment in simply supported beam 6 m due to u.d.l\n",
+ "#M_max=w*L*10**-3*8**-1\n",
+ "#After simplifying further we get\n",
+ "#M_max=4.5*w\n",
+ "\n",
+ "#Now Equating it to Moment carrying capacity, we get load carrying capacity\n",
+ "w=M1*4.5**-1 #KN/m\n",
+ "\n",
+ "#Result\n",
+ "print\"Max Uniformly Distributed Load is\",round(w,3),\"KN/m\""
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Max Uniformly Distributed Load is 5.096 KN/m\n"
+ ]
+ }
+ ],
+ "prompt_number": 16
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 4.4.5,Page no.136"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "import numpy as np\n",
+ "\n",
+ "#Initilization of Variables\n",
+ "\n",
+ "#Flanges\n",
+ "b=200 #mm #Width\n",
+ "t=25 #mm #Thickness \n",
+ "\n",
+ "D1=500 #mm #Overall Depth\n",
+ "t2=20 #mm #Thickness of web\n",
+ "\n",
+ "d=450 #mm #Depth of web\n",
+ "\n",
+ "#Calculations\n",
+ "\n",
+ "#Consider,Element of Thickness \"y\" at Distance \"dy\" from N.A \n",
+ "#Let Bending stress \"sigma_max\"\n",
+ "\n",
+ "#Stress on the element \n",
+ "#sigma=y*(D*2**-1)*sigma_max ..............(1)\n",
+ "\n",
+ "#Area of Element\n",
+ "#A=b*dy .................................(2)\n",
+ "\n",
+ "#Force on Element \n",
+ "#F=y*250**-1*sigma_max*b*dy\n",
+ "\n",
+ "#Let M be the Moment of resistance\n",
+ "#M=y*250**-1*sigma_max*b*dy*y\n",
+ "\n",
+ "#Moment of Resistance of top flange be M1\n",
+ "def integrand(y, b, D):\n",
+ " return b*y**2*D**-1\n",
+ "b=200 \n",
+ "D=250\n",
+ "\n",
+ "X = quad(integrand, 225, 250, args=(b,D))\n",
+ "\n",
+ "Y=2*X[0]\n",
+ "\n",
+ "#M1=Y*sigma\n",
+ "\n",
+ "#Now Moment of Inertia I section is\n",
+ "X=b*D1**3\n",
+ "Y=(b-t2)*d**3\n",
+ "I=(X-Y)*12**-1*10**-8\n",
+ "\n",
+ "#Moment acting on the entire section\n",
+ "#since sigmais the value at y=250\n",
+ "y_max=250\n",
+ "Z=I*10**8*y_max**-1\n",
+ "#M=sigma*Z \n",
+ "#After Simplifying Further we get\n",
+ "#M2=Z*sigma\n",
+ "\n",
+ "#Percentage Moment resisted by Flanges\n",
+ "P1=2258333.3*(2865833.3)**-1*100\n",
+ "\n",
+ "#Percentage Moment resisted by web\n",
+ "P2=100-P1\n",
+ "\n",
+ "#Result\n",
+ "print\"Percentage Moment resisted by Flanges\",round(P1,2),\"%\"\n",
+ "print\"Percentage Moment resisted by web\",round(P2,2),\"%\""
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Percentage Moment resisted by Flanges 78.8 %\n",
+ "Percentage Moment resisted by web 21.2 %\n"
+ ]
+ }
+ ],
+ "prompt_number": 38
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 4.4.6,Page no.137"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "import numpy as np\n",
+ "\n",
+ "#Initilization of Variables\n",
+ "\n",
+ "#Flanges\n",
+ "b1=200 #mm #Width\n",
+ "t1=10 #mm #Thickness\n",
+ "\n",
+ "#Web\n",
+ "d=380 #mm #Depth \n",
+ "t2=8 #mm #Thickness\n",
+ "\n",
+ "D=400 #mm #Overall Depth\n",
+ "sigma=150 #N/mm**2\n",
+ "\n",
+ "#Calculations\n",
+ "\n",
+ "#Area\n",
+ "A=b1*t1+d*t2+b1*t1 #mm**2\n",
+ "\n",
+ "#Moment of Inertia\n",
+ "I=1*12**-1*(b1*D**3-(b1-t2)*d**3)\n",
+ "\n",
+ "#Bending Moment\n",
+ "M=sigma*I*(D*2**-1)**-1\n",
+ "\n",
+ "#Square Section\n",
+ "\n",
+ "#Let 'a' be the side\n",
+ "a=A**0.5\n",
+ "\n",
+ "#Moment of Resistance of this section\n",
+ "M1=1*6**-1*a*a**2*sigma\n",
+ "\n",
+ "X=M*M1**-1\n",
+ "\n",
+ "#Rectangular section\n",
+ "#Let 'a' be the side and depth be 2*a\n",
+ "\n",
+ "a=(A*2**-1)**0.5\n",
+ "\n",
+ "#Moment of Rectangular secction\n",
+ "M2=1*6**-1*a*(2*a)**2*sigma\n",
+ "\n",
+ "X2=M*M2**-1\n",
+ "\n",
+ "#Circular section\n",
+ "#A=pi*d1**2*4**-1\n",
+ "\n",
+ "d1=(A*4*pi**-1)**0.5\n",
+ "\n",
+ "#Moment of circular section\n",
+ "M3=pi*32**-1*d1**3*sigma\n",
+ "\n",
+ "X3=M*M3**-1\n",
+ "\n",
+ "#Result\n",
+ "print\"Moment of resistance of beam section\",round(M,2),\"mm\"\n",
+ "print\"Moment of resistance of square section\",round(X,2),\"mm\"\n",
+ "print\"Moment of resistance of rectangular section\",round(X2,2),\"mm\"\n",
+ "print\"Moment of resistance of circular section\",round(X3,2),\"mm\""
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Moment of resistance of beam section 141536000.0 mm\n",
+ "Moment of resistance of square section 9.58 mm\n",
+ "Moment of resistance of rectangular section 6.78 mm\n",
+ "Moment of resistance of circular section 11.33 mm\n"
+ ]
+ }
+ ],
+ "prompt_number": 25
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 4.4.7,Page no.139"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "import numpy as np\n",
+ "\n",
+ "#Initilization of Variables\n",
+ "\n",
+ "F=12 #KN #Force at End of beam\n",
+ "L=2 #m #span\n",
+ "\n",
+ "#Square section \n",
+ "b=d=200 #mm #Width and depth of beam\n",
+ "\n",
+ "#Rectangular section\n",
+ "b1=150 #mm #Width\n",
+ "d1=300 #mm #Depth\n",
+ "\n",
+ "#Calculations\n",
+ "\n",
+ "#Max bending Moment\n",
+ "M=F*L*10**6 #N-mm\n",
+ "\n",
+ "#M=sigma*b*d**2\n",
+ "sigma=M*6*(b*d**2)**-1 #N/mm**2\n",
+ "\n",
+ "#Let W be the central concentrated Load in simply supported beam of span L1=3 m\n",
+ "#MAx Moment\n",
+ "#M1=W*L1*4**-1\n",
+ "#After Further simplifying we get\n",
+ "#M1=0.75*10**6 #N-mm\n",
+ "\n",
+ "#The section has a moment of resistance\n",
+ "M1=sigma*1*6**-1*b1*d1**2\n",
+ "\n",
+ "#Equating it to moment of resistance we get max load W\n",
+ "#0.75*10**6*W=M1\n",
+ "#After Further simplifying we get\n",
+ "W=M1*(0.75*10**6)**-1\n",
+ "\n",
+ "#Result\n",
+ "print\"Minimum Concentrated Load required to brek the beam\",round(W,2),\"KN\""
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Minimum Concentrated Load required to brek the beam 54.0 KN\n"
+ ]
+ }
+ ],
+ "prompt_number": 30
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 4.4.8,Page no.140"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "import numpy as np\n",
+ "\n",
+ "#Initilization of Variables\n",
+ "\n",
+ "L=3 #m #span\n",
+ "sigma_t=35 #N/mm**2 #Permissible stress in tension\n",
+ "sigma_c=90 #N/mm**2 #Permissible stress in compression\n",
+ "\n",
+ "#Flanges\n",
+ "t=30 #mm #Thickness\n",
+ "d=250 #mm #Depth\n",
+ "\n",
+ "#Web\n",
+ "t2=25 #mm #Thickness\n",
+ "b=600 #mm #Width\n",
+ "\n",
+ "#Calculations\n",
+ "\n",
+ "#Let y_bar be the Distance of N.A from Extreme Fibres\n",
+ "y_bar=(t*d*d*2**-1*2+(b-2*t)*t2*t2*2**-1)*(t*d*2+(b-2*t)*t2)**-1\n",
+ "\n",
+ "#Moment of Inertia\n",
+ "I=(1*12**-1*t*d**3+t*d*(d*2**-1-y_bar)**2)*2+1*12**-1*(b-2*t)*t2**3+(b-2*t)*t2*(t2*2**-1-y_bar)**2\n",
+ "\n",
+ "#Part-1\n",
+ "\n",
+ "#If web is in Tension\n",
+ "y_t=y_bar #mm\n",
+ "y_c=d-y_bar #mm\n",
+ "\n",
+ "#Moment carrying caryying capacity From consideration of tensile stress\n",
+ "M=sigma_t*I*(y_bar)**-1 #N-mm\n",
+ "\n",
+ "#Moment carrying caryying capacity From consideration of compressive stress\n",
+ "M1=sigma_c*I*(y_c)**-1 #N-mm\n",
+ "\n",
+ "#If w KN/m is u.d.l in beam,Max bending moment\n",
+ "#M=wl**2*8**-1\n",
+ "#After further simplifyng we get\n",
+ "#M=1.125*w*10**6 N-mm\n",
+ "w=M*(1.125*10**6)**-1 #KN\n",
+ "\n",
+ "#Part-2\n",
+ "\n",
+ "#If web is in compression\n",
+ "y_t2=178.299 #mm\n",
+ "y_c2=71.71 #mm \n",
+ "\n",
+ "#Moment carrying caryying capacity From consideration of tensile stress\n",
+ "M2=sigma_t*I*(y_t2)**-1 #N-mm\n",
+ "\n",
+ "#Moment carrying caryying capacity From consideration of compressive stress\n",
+ "M3=sigma_c*I*(y_c2)**-1 #N-mm\n",
+ "\n",
+ "#Moment of resistance is M2\n",
+ "\n",
+ "#Equating it to bending moment we get\n",
+ "#M2=1.125*10**6*w2\n",
+ "#After further simplifyng we get\n",
+ "w2=M2*(1.125*10**6)**-1\n",
+ "\n",
+ "#Result\n",
+ "print\"Uniformly Distributed Load carrying capacity if:web is in Tension\",round(w,2),\"KN\"\n",
+ "print\" :web is in compression\",round(w2,3),\"KN\""
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Uniformly Distributed Load carrying capacity if:web is in Tension 73.21 KN\n",
+ " :web is in compression 29.446 KN\n"
+ ]
+ }
+ ],
+ "prompt_number": 26
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 4.4.9,Page no.141"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "import numpy as np\n",
+ "\n",
+ "#Initilization of Variables\n",
+ "\n",
+ "b1=200 #mm #Width at base\n",
+ "b2=100 #mm #Width at top\n",
+ "\n",
+ "L=8 #m Length\n",
+ "P=500 #N #Load\n",
+ "\n",
+ "#Calculations\n",
+ "\n",
+ "#Consider a section at y metres from top\n",
+ "\n",
+ "#At this section diameter d is\n",
+ "#d=b2+y*L**-1*(b1-b2)\n",
+ "#After Further simplifying we get\n",
+ "#d=b2+12.5*y #mm\n",
+ "\n",
+ "#Moment of Inertia\n",
+ "#I=pi*64**-1*d**4\n",
+ "\n",
+ "#Section Modulus \n",
+ "#Z=pi*32**-1*(b1+12.5*y)**3\n",
+ "\n",
+ "#Moment \n",
+ "#M=5*10**5*y #N-mm\n",
+ "\n",
+ "#Let sigma be the fibre stress at this section then\n",
+ "#M=sigma*Z\n",
+ "#After sub values in above equation and further simplifying we get\n",
+ "#sigma=5*10**5*32*pi**-1*y*((b2+12.5*y)**3)**-1\n",
+ "\n",
+ "#For sigma to be Max,d(sigma)*(dy)**-1=0\n",
+ "#16*10**6*pi**-1*((b2+12.5*y)**-3+y*(-3)*(b2+12.5*y)**-4*12.5)\n",
+ "#After Further simplifying we get\n",
+ "#b2+12.5*y=37.5*y\n",
+ "#After Further simplifying we get\n",
+ "y=b2*25**-1 #m\n",
+ "\n",
+ "#Stress at this section\n",
+ "sigma=5*10**5*32*pi**-1*y*((b2+12.5*y)**3)**-1\n",
+ "\n",
+ "#Result\n",
+ "print\"Stress at Extreme Fibre is max\",round(y,2),\"m\"\n",
+ "print\"Max stress is\",round(sigma,2),\"N/mm**2\""
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Stress at Extreme Fibre is max 4.0 m\n",
+ "Max stress is 6.04 N/mm**2\n"
+ ]
+ }
+ ],
+ "prompt_number": 28
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 4.4.10,Page no.143"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "import numpy as np\n",
+ "\n",
+ "#Initilization of Variables\n",
+ "H=10 #mm #Height\n",
+ "A1=160*160 #mm**2 #area of square section at bottom\n",
+ "L1=160 #mm #Length of square section at bottom\n",
+ "b1=160 #mm #width of square section at bottom\n",
+ "A2=80*80 #mm**2 #area of square section at top\n",
+ "L2=80 #mm #Length of square section at top\n",
+ "b2=80 #mm #Width of square section at top\n",
+ "P=100 #N #Pull\n",
+ "\n",
+ "#Calculations\n",
+ "\n",
+ "#Consider a section at distance y from top.\n",
+ "#Let the side of square bar be 'a'\n",
+ "#a=L2+y*(H)**-1*(b1-b2)\n",
+ "#After further simplifying we get\n",
+ "#a=L2+8*y\n",
+ "\n",
+ "#Moment of Inertia\n",
+ "#I=2*1*12**-1*a*(2)**0.5*(a*((2)**0.5)**-1)**3\n",
+ "#After further simplifying we get\n",
+ "#I=a**4*12**-1\n",
+ "\n",
+ "#Section Modulus \n",
+ "#Z=a**4*(12*a*(2)**0.5)**-1\n",
+ "#After further simplifying we get\n",
+ "#Z=2**0.5*a**3*(12)**-1 #mm**3\n",
+ "\n",
+ "#Bending moment at this section=100*y N-mm\n",
+ "#M=100*10**3*y #N-mm\n",
+ "\n",
+ "#But\n",
+ "#M=sigma*Z\n",
+ "#After sub values in above equation we get\n",
+ "#sigma=M*Z**-1\n",
+ "#After further simplifying we get\n",
+ "#sigma=1200*10**3*(2**0.5)**-1*y*((80+80*y)**3)**-1 .......(1)\n",
+ "\n",
+ "#For Max stress df*(dy)**-1=0\n",
+ "#After taking Derivative of above equation we get\n",
+ "#df*(dy)**-1=1200*10**3*(2**0.5)**-1*((80+8*y)**-3+y(-3)*(80+8*y)**-4*8)\n",
+ "#After further simplifying we get\n",
+ "y=80*16**-1 #m\n",
+ "\n",
+ "#Max stress at this level is\n",
+ "sigma=1200*10**3*(2**0.5)**-1*y*((80+8*y)**3)**-1\n",
+ "\n",
+ "#Result\n",
+ "print\"Max Bending stress is Developed at\",round(y,3),\"m\"\n",
+ "print\"Value of Max Bending stress is\",round(sigma,3),\"N/mm**2\""
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Max Bending stress is Developed at 5.0 m\n",
+ "Value of Max Bending stress is 2.455 N/mm**2\n"
+ ]
+ }
+ ],
+ "prompt_number": 4
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 4.4.12,Page no.147"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "import numpy as np\n",
+ "\n",
+ "#Initilization of Variables\n",
+ "\n",
+ "b=200 #mm #Width of timber \n",
+ "d=400 #mm #Depth of timber\n",
+ "t=6 #mm #Thickness\n",
+ "b2=200 #mm #width of steel plate\n",
+ "t2=20 #mm #Thickness of steel plate\n",
+ "M=40*10**6 #KN-mm #Moment\n",
+ "#Let E_s*E_t**-1=X\n",
+ "X=20 #Ratio of Modulus of steel to timber\n",
+ "\n",
+ "#Calculations\n",
+ "\n",
+ "#let y_bar be the Distance of centroidfrom bottom most fibre\n",
+ "y_bar=(b*d*(b+t)+t2*b2*t*t*2**-1)*(b*d+t2*b2*t)**-1 #mm\n",
+ "\n",
+ "#Moment of Inertia\n",
+ "I=1*12**-1*b*d**3+b*d*(b+t-round(y_bar,3))**2+1*12**-1*t2*b2*t**3+b2*t2*t*(round(y_bar,3)-t*2**-1)**2\n",
+ "\n",
+ "#distance of the top fibre from N-A\n",
+ "y_1=d+t-y_bar #mm\n",
+ "\n",
+ "#Distance of the junction of timber and steel From N-A\n",
+ "y_2=y_bar-t #mm\n",
+ "\n",
+ "#Stress in Timber at the top\n",
+ "Y=M*I**-1*y_1 #N/mm**2\n",
+ "\n",
+ "#Stress in the Timber at the junction point\n",
+ "Z=M*I**-1*y_2\n",
+ "\n",
+ "#Coressponding stress in steel at the junction point\n",
+ "Z2=X*Z #N/mm**2 \n",
+ "\n",
+ "#The stress in Extreme steel fibre \n",
+ "Z3=X*M*I**-1*y_bar\n",
+ "\n",
+ "#Result\n",
+ "print\"Stress in Extreme steel Fibre\",round(Z3,2),\"N/mm**2\""
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Stress in Extreme steel Fibre 69.67 N/mm**2\n"
+ ]
+ }
+ ],
+ "prompt_number": 23
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 4.4.13,Page no.149"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "import numpy as np\n",
+ "\n",
+ "#Initilization of Variables\n",
+ "\n",
+ "#Timber size\n",
+ "b=150 #mm #Width\n",
+ "d=300 #mm #Depth\n",
+ "\n",
+ "t=6 #mm #Thickness of steel plate\n",
+ "l=6 #m #Span\n",
+ "\n",
+ "#E_s*E_t**-1=20 \n",
+ "#m=E_s*E_t**-1\n",
+ "m=20 \n",
+ "sigma_timber=8 #N/mm**2 #Stress in timber\n",
+ "sigma_steel=150 #N/mm**2 #Stress in steel plate\n",
+ "\n",
+ "#Let m*t=Y\n",
+ "Y=m*t #mm\n",
+ "L=(2*t+b)*m #mm #Width of flitched beam\n",
+ "\n",
+ "#Calculations\n",
+ "\n",
+ "#Due to synnetry cenroid,the neutral axis is half the depth\n",
+ "I=(1*12**-1*L*t**3+L*t*(b+t*2**-1)**2)*2+1*12**-1*(Y+b+Y)*d**3 #mm**4\n",
+ "\n",
+ "y_max1=150 #mm #For timber\n",
+ "y_max2=156 #mm #For steel\n",
+ "\n",
+ "#stress in steel\n",
+ "f_t1=1*m**-1*sigma_steel #N/mm**2\n",
+ "\n",
+ "#Moment of resistance\n",
+ "M=f_t1*(I*y_max2**-1)\n",
+ "\n",
+ "#load\n",
+ "w=8*M*(l**2)**-1*10**-6 #KN/m\n",
+ "\n",
+ "#Result\n",
+ "print\"Load beam can carry is\",round(w,2),\"KN/m\""
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Load beam can carry is 19.1 KN/m\n"
+ ]
+ }
+ ],
+ "prompt_number": 17
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 4.4.14,Page no.151"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "import numpy as np\n",
+ "\n",
+ "#Initilization of Variables\n",
+ "\n",
+ "L=6000 #mm #Span of beam\n",
+ "W=20*10**3 #N #Load\n",
+ "sigma=8 #N/mm**2 #Stress\n",
+ "b=200 #mm #Width of section\n",
+ "d=300 #mm #Depth of section\n",
+ "\n",
+ "#Calculations\n",
+ "\n",
+ "#let x be the distance from left side of beam\n",
+ "\n",
+ "#Bending moment\n",
+ "#M=W*2**-1*x #Nmm .......(1)\n",
+ "\n",
+ "#But M=sigma*Z ..........(2)\n",
+ "\n",
+ "#Equating equation 1 and 2 we get\n",
+ "#W*2**-1*x=sigma*Z ............(3)\n",
+ "\n",
+ "#Section Modulus \n",
+ "#Z=1*6*b*d**2 ...............(4)\n",
+ "\n",
+ "#Equating equation 3 and 4 we get\n",
+ "#b*d**2=3*W*x*sigma**-1 .............(5)\n",
+ "\n",
+ "#Beam of uniform strength of constant depth\n",
+ "#b=3*W*x*(sigma*d**2) \n",
+ "\n",
+ "#When x=0\n",
+ "b=0\n",
+ "\n",
+ "#When x=L*2**-1\n",
+ "b2=3*W*L*(2*sigma*d**2)**-1 #mm\n",
+ "\n",
+ "#Beam with constant width of 200 mm\n",
+ "\n",
+ "#We have\n",
+ "#d=(3*W*x*(sigma*d)**-1)**0.5\n",
+ "#thus depth varies as (x)**0.5\n",
+ "\n",
+ "#when x=0\n",
+ "d1=0\n",
+ "\n",
+ "#when x=L*2**-1\n",
+ "d2=(3*W*L*(2*sigma*200)**-1)**0.5 #mm\n",
+ "\n",
+ "#Result\n",
+ "print\"Cross section of rectangular beam is:\",round(b2,2),\"mm\"\n",
+ "print\" :\",round(d2,2),\"mm\""
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Cross section of rectangular beam is: 250.0 mm\n",
+ " : 335.41 mm\n"
+ ]
+ }
+ ],
+ "prompt_number": 4
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 4.4.15,Page no.154"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "import numpy as np\n",
+ "\n",
+ "#Initilization of Variables\n",
+ "\n",
+ "L=800 #mm #Span\n",
+ "n=5 #number of leaves\n",
+ "b=60 #mm #Width\n",
+ "t=10 #mm #thickness\n",
+ "sigma=250 #N/mm**2 #Stress\n",
+ "\n",
+ "#Calculations\n",
+ "\n",
+ "#section Modulus\n",
+ "Z=n*6**-1*b*t**2 #mm**3\n",
+ "\n",
+ "#from the relation\n",
+ "#sigma*Z=M ...................(1)\n",
+ "#M=P*L*4**-1\n",
+ "#sub values of M in equation 1 we get\n",
+ "P=sigma*Z*4*L**-1*10**-3 #KN #Load\n",
+ "\n",
+ "#Length of Leaves\n",
+ "L1=0.2*L #mm\n",
+ "L2=0.4*L #mm\n",
+ "L3=0.6*L #mm\n",
+ "L4=0.8*L #mm\n",
+ "L5=L #mm\n",
+ "\n",
+ "#Result\n",
+ "print\"Max Load it can take is\",round(P,2),\"KN\"\n",
+ "print\"Length of leaves:L1\",round(L1,2),\"mm\"\n",
+ "print\" :L2\",round(L2,2),\"mm\""
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Max Load it can take is 6.25 KN\n",
+ "Length of leaves:L1 160.0 mm\n",
+ " :L2 320.0 mm\n"
+ ]
+ }
+ ],
+ "prompt_number": 6
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 4.4.16,Page no.161"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "import numpy as np\n",
+ "%matplotlib inline\n",
+ "\n",
+ "#Initilization of Variables\n",
+ "\n",
+ "F=20*10**3 #N #Shear Force\n",
+ "\n",
+ "#Tee section\n",
+ "\n",
+ "#Flange\n",
+ "b=100 #mm #Width\n",
+ "t=12 #mm #Thickness\n",
+ "\n",
+ "#Web\n",
+ "d=88 #mm #Depth\n",
+ "t2=12 #mm #Thicknes\n",
+ "\n",
+ "D=100 #mm #Overall Depth\n",
+ "\n",
+ "#Calculations\n",
+ "\n",
+ "#Distance of C.G from Top Fibre\n",
+ "y=(b*t*t*2**-1+t2*d*(d*2**-1+t))*(b*t+d*t2)**-1 #mm \n",
+ "\n",
+ "#Moment Of Inertia\n",
+ "I=1*12**-1*b*t**3+b*t*(y-t*2**-1)**2+1*12**-1*t2*d**3+t2*d*(t+d*2**-1-y)**2 #mm**4\n",
+ "\n",
+ "#shear stress at bottom Flange\n",
+ "\n",
+ "#Area above this level\n",
+ "A=b*t #mm**2\n",
+ "\n",
+ "#C.G of this area from N-A\n",
+ "y2=y-t*2**-1\n",
+ "\n",
+ "#Stress at bottom of flange\n",
+ "sigma=F*A*y2*(b*I)**-1 #N/mm**2 \n",
+ "\n",
+ "#sigma2 at same level but in web where width is 12 mm\n",
+ "sigma2=F*A*y2*(t2*I)**-1 #N/mm**2 \n",
+ "\n",
+ "#To find shear stress at N-A\n",
+ "X=t*b*(y-t*2**-1)+t2*(y-t2)*(y-t2)*2**-1 #mm**3\n",
+ "\n",
+ "sigma3=F*X*(t2*I)**-1 #N/mm**2\n",
+ "\n",
+ "#Shear stress at top and bottom fibre is zero\n",
+ "#sigma4 and sigma5 are top and bottom fibre shear stress\n",
+ "sigma4=sigma5=0\n",
+ "\n",
+ "#Result\n",
+ "print \"The Shear Force and Bending Moment Diagrams are the results\"\n",
+ "\n",
+ "#Plotting the Shear Force Diagram\n",
+ "\n",
+ "X1=[0,t,t,y,D]\n",
+ "Y1=[sigma4,sigma,sigma2,sigma3,sigma5]\n",
+ "Z1=[0,0,0,0,0]\n",
+ "plt.plot(X1,Y1,X1,Z1)\n",
+ "plt.xlabel(\"Length x in m\")\n",
+ "plt.ylabel(\"Shear Force in kN\")\n",
+ "plt.show()\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "The Shear Force and Bending Moment Diagrams are the results\n"
+ ]
+ },
+ {
+ "metadata": {},
+ "output_type": "display_data",
+ "png": "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\nnntYs2YN3bt3p3nz5nzxxRflv3Ail3JWibWIM/j5+V32Wq9evawDBw5YlmVZW7dutXr16mVZlmXd\nd9991tChQy3LsqxvvvnGuvXWWy3Lsqy3337b6tevn2VZlpWZmWndeOON1rJlyyzLsqygoCDr6NGj\nhcd2OBzWqlWrLMuyrCeeeMJ65plnLjv/qVOnrPDwcGvdunVWSEiI9d133132nvnz51sTJky4alwX\nS0lJsapWrWp9/fXXVkFBgdW+fXtr9OjRlmVZ1vLly62BAweWeK1ErlVVuxOSSHnk5OSwZcsWhgwZ\nUvhabm4uYJb6Pb/QV4sWLQrXid+4cSNDhw4FzEqRUVFRxR6/WrVq9O/fH4D27duzdu3ay95z/fXX\nM3fuXHr06MGsWbMIDg6+aszFxXWp4OBgwsPDAQgPD6d3794AtGzZktTU1KueQ6QslBDEoxUUFFCn\nTh127Nhxxd9Xq1at8Ll1brjM4XAU2WPBusowmq+vb+FzHx8f8vLyrvi+Xbt20aBBg1Jv6HSluC5V\nvXr1Iuc+/5mrxSFSHhpDEI9Wu3ZtgoODeeeddwBzc921a9dVP9O9e3eWLVuGZVlkZWWxfv36wt/V\nqlWLEydOXFMM33//PX/729/YsWMHH374Idu2bbvsPVdLOiLuQglBPMqpU6do0qRJ4ePFF1/kzTff\n5NVXX6Vt27a0bNmSFStWFL7/4h2izj9PTEwkMDCQsLAwhg8fTrt27bjhhhsAuP/+++nbt2/hoPKl\nn790xynLshg7diwvvPACAQEBvPrqq4wdO7aw26q4zxb3/NLPFPezt+4IJs6laafilU6ePEnNmjU5\nevQonTt3ZvPmzV61y5bIlWgMQbzSgAEDyM7OJjc3l6eeekrJQAS1EERE5ByNIYiICKCEICIi5ygh\niIgIoIQgIiLnKCGIiAighCAiIuf8f5wqyy9KzUKHAAAAAElFTkSuQmCC\n",
+ "text": [
+ "<matplotlib.figure.Figure at 0x5452a90>"
+ ]
+ }
+ ],
+ "prompt_number": 1
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 4.4.17,Page no.163"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "import numpy as np\n",
+ "%matplotlib inline\n",
+ "\n",
+ "#Initilization of Variables\n",
+ "\n",
+ "F=40*10**3 #N #shear Force\n",
+ "\n",
+ "#I-section\n",
+ "\n",
+ "#Flanges\n",
+ "b=80 #mm #Width of flange\n",
+ "t=20 #mm #Thickness\n",
+ "\n",
+ "#Web\n",
+ "d=200 #mm #Depth\n",
+ "t2=20 #mm #Thickness\n",
+ "\n",
+ "#Flange-2\n",
+ "b2=160 #mm #Width\n",
+ "t3=20 #mm #Thickness\n",
+ "\n",
+ "D=240 #mm #Overall Depth\n",
+ "\n",
+ "#Calculations\n",
+ "\n",
+ "#Distance of N-A from Top Fibre \n",
+ "y=(b*t*t*2**-1+d*t2*(t+d*2**-1)+b2*t3*(t+d+t3*2**-1))*(b*t+d*t2+b2*t3)**-1 #mm\n",
+ "\n",
+ "#Moment of Inertia\n",
+ "I=1*12**-1*b*t**3+b*t*(y-(t*2**-1))**2+1*12**-1*t2*d**3+t2*d*(y-(t+d*2**-1))**2+1*12**-1*b2*t3**3+t3*b2*((d+t+t3*2**-1)-y)**2 #mm**4\n",
+ "\n",
+ "#Shear stress bottom of flange\n",
+ "sigma=F*b*t*(y-t*2**-1)*(b*I)**-1 #N/mm**2\n",
+ "\n",
+ "#At same Level but in web\n",
+ "sigma2=F*b*t*(y-t*2**-1)*(t2*I)**-1 #N/mm**2\n",
+ "\n",
+ "#for shear stress at N.A\n",
+ "X=b*t*(y-t*2**-1)+t2*(y-t)*(y-t)*2**-1 #mm**3\n",
+ "sigma3=F*X*(t2*I)**-1 #N/mm**2\n",
+ "\n",
+ "#Shear stress at bottom of web\n",
+ "\n",
+ "X=b2*t3*((D-y)-t3*2**-1) #mm**3\n",
+ "\n",
+ "#Stress at bottom of web\n",
+ "sigma4=F*X*(t2*I)**-1 #N/mm**2\n",
+ "\n",
+ "#Stress at Lower flange\n",
+ "sigma5=F*X*(b2*I)**-1 #N/mm**2\n",
+ "\n",
+ "#Result\n",
+ "print \"The Shear Force Diagram is the result\"\n",
+ "\n",
+ "#Plotting the Shear Force Diagram\n",
+ "\n",
+ "X1=[0,20,20,140,220,220,240]\n",
+ "Y1=[0,sigma,sigma2,sigma3,sigma4,sigma5,0]\n",
+ "Z1=[0,0,0,0,0,0,0]\n",
+ "plt.plot(X1,Y1,X1,Z1)\n",
+ "plt.xlabel(\"Length in mm\")\n",
+ "plt.ylabel(\"Shear Force in N\")\n",
+ "plt.show()\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "The Shear Force Diagram is the result\n"
+ ]
+ },
+ {
+ "metadata": {},
+ "output_type": "display_data",
+ "png": "iVBORw0KGgoAAAANSUhEUgAAAYMAAAEPCAYAAACgFqixAAAABHNCSVQICAgIfAhkiAAAAAlwSFlz\nAAALEgAACxIB0t1+/AAAIABJREFUeJzt3Xlc1PW+x/HXiGgpmmtg6gkP7qiAmGsmLmiaO+gNl0w0\ne2i2py2acTSVdk29p2s3y8zSkpNaKcelg2VZ6XUrPcfMoOMC3pJLiUsI/O4f3xxXFoGZ3zDzfj4e\n82AYh/l9+D3GefP7rg7LsixERMSnVbC7ABERsZ/CQEREFAYiIqIwEBERFAYiIoLCQEREcGEYxMfH\nExgYSOvWrZ2PTZkyhRYtWhAWFsbQoUP59ddfXXV4ERG5Bi4Lg7Fjx5KcnHzJY71792bfvn3s2bOH\npk2bMnfuXFcdXkREroHLwqBr167UrFnzkseio6OpUMEcskOHDhw5csRVhxcRkWtgW5/BkiVL6Nev\nn12HFxGRi9gSBrNnz6ZSpUqMGDHCjsOLiMhlKrr7gG+99Rbr1q1j8+bNBT6ncePGHDp0yI1ViYiU\nfyEhIfzwww8l+lm3XhkkJyfzwgsvsGbNGq677roCn3fo0CEsy9LNsnjmmWdsr8FTbjoXOhc6F4Xf\nSvNHtMvCIC4ujs6dO3PgwAEaNmzIkiVLuP/++8nOziY6OpqIiAgmTZrkqsOLiMg1cFkz0XvvvXfF\nY/Hx8a46nIiIlIJmIHu4qKgou0vwGDoXF+hcXKBzUTYclmV53OY2DocDDyxLRMSjleazU1cGIiKi\nMBAREYWBiIigMBARERQGIiKCwkBERFAYiIgICgMREUFhICIiKAxERASFgYiIoDAQEREUBiIigsJA\nRERQGIiICAoDERFBYSAiIigMREQEhYGIiKAwEBERFAYiIoLCQEREUBiIiAgKAxFbZWfbXYGIoTAQ\nscF330FcHNSqBS1bwtNPw549YFl2Vya+SmEg4ka7d0NsLPTqBeHh8MsvsGQJnD0LgwdD06bwxBOw\nY4eCQdzLZWEQHx9PYGAgrVu3dj6WmZlJdHQ0TZs2pXfv3mRlZbnq8CIeZft2GDgQ+vWDLl3g0CF4\n/HGoXh06doQXXoAff4QVK6BCBRgxAho1gkcfhS+/hPx8u38D8XYuC4OxY8eSnJx8yWOJiYlER0fz\n/fff07NnTxITE111eBGP8OWX0LcvDB0KvXubEHj4Yaha9crnOhwQGQlz5sCBA/DRRxAQAPfcAw0b\nwgMPwJYtkJfn/t9DvJ/Dslx3MZqWlsaAAQP49ttvAWjevDlbtmwhMDCQjIwMoqKi+Ne//nVlUQ4H\nLixLxOW2bIFZs+CHH+DJJ+Huu6Fy5ZK/3j//CUlJ5paebpqUYmMhKgoqViyrqqW8K81np1v7DI4f\nP05gYCAAgYGBHD9+3J2HF3Epy4JNm6BbNxg3zjT1HDwI995buiAAaNECpk+HXbtg61bThPTUU1Cv\nnjnW+vWQk1M2v4f4Jts6kB0OBw6Hw67Di5QZyzIfxp07w+TJplnnX/+C+Hjw9y/74zVubPobvvnG\ndDS3agXPPgtBQXDXXbB2remQFrkWbr3APN88FBQURHp6OjfeeGOBz01ISHDej4qKIioqyvUFilwD\nyzLt+rNmwZkzZnhobCz4+bmvhptvNn0QDz8MR4/Chx/Cyy+bUOjbF2JizNer9VFI+ZeSkkJKSkqZ\nvJZb+wymTp1K7dq1efzxx0lMTCQrK+uqncjqMxBPlp8Pf/ub+Wvc4TAhMHiwGQXkKY4fh9WrYdUq\ncwURHW2C4Y47zAgm8U6l+ex0WRjExcWxZcsWfvnlFwIDA5k5cyaDBg1i+PDh/Pvf/yY4OJj333+f\nGjVqXFmUwkA8UF4evP8+zJ4NVaqYEOjf3wSCJztxAtasMcGwdavpdI6NhQEDoGZNu6uTsuSRYVAa\nCgPxJLm58O67JgTq1DEh0KeP54fA1WRlmaatpCT49FMz5yE2FgYNMr+blG8KAxEXyMmBZcvMuP+G\nDWHGDOjevXyGwNWcPAmffGKCYcMGuOUW05Q0ZIjpjJbyR2EgUoZ+/90sEZGYaJaHePppuO02u6ty\nrdOnITnZNCWtWwdhYSYYhg6FBg3srk6KS2EgUgbOnIHXX4fnnzcfhtOnQ6dOdlflfmfPwsaNJhg+\n+giaNTNNSTExEBxsd3VSGIWBSCmcOgWvvQYvvQTt25sQaNfO7qo8Q06O6VtISjKjk26++UIwNGli\nd3VyOYWBSAmcPAmLFsErr5hmoOnTzRWBXF1urllmIynJDK0NDLwQDC1b2l2dgMJA5JpkZcGCBfDq\nq2b8/bRpEBpqd1XlS16eWYRv1SoTDtWrm1CIjYU2bbynk728URiIFMOJEzBvHvz1r2by1VNPmfZw\nKZ38fDOx7XwwVKx4IRgiIxUM7qQwECnEzz+b/oDXXzfDJp98EkJC7K7KO1kW7NxpgmHVKjh3zgRD\nTIzZt8GTZml7I4WByFWkp8OLL8Kbb8Kdd5rF3W6+2e6qfIdlwbffmquFVatM89z5YLj1Vveu4eQr\nFAYiFzlyxAwPfecdGD0apk6F+vXtrkrO78mwahVkZJirtJgY7clQlhQGIsBPP5mJYitXmuWjH3tM\nM2k91Q8/XNisJzXVLIcREwM9e0KlSnZXV34pDMSnHTpkloxYvdpsJPPww1C3rt1VSXGlpZmhqklJ\n5uqhf3/T+dy7N1x3nd3VlS8KA/FJBw6YxePWrYP77oMHH4RateyuSkrj/J4Mq1bB7t1mL4bYWLj9\ndu3JUBwKA/Ep+/aZvQQ2bzabxE+eDFdZCV3KuYL2ZOjfH6pVs7s6z6QwEJ+we7cJga1bTVPQpEn6\nUPAVl+/J0L27CYaBA/WHwMUUBuLVtm83W0vu2GE6he+9V00Gvkx7MhRMYSBeads2mDkTvvvODA8d\nPx6uv97uqsSTXG1PhthYM2w1MNDu6txPYSBeZcsWcyXwww9mtvDdd0PlynZXJZ7uansyxMaaPRl8\nZZ6JwkDKPcsyHcKzZpkRJU89ZSaM+fvbXZmUR5fvydC8+YXZz968J4PCQMotyzJ/zc2aBZmZZgXR\nuDjNSJWyc/meDMHBF4LB2/ZkUBhIuWNZ5i+2WbPMDmPTp8OwYVqvRlzL2/dkUBhIuZGfbyYVzZpl\nvn/6adPZp9Usxd2utifD+WAor3syKAzE4+XlwQcfmHkCVaqYEOjfv3z+hxPv4y17MigMxGPl5sK7\n75q1g2rVghkzoE+f8vOfS3xPQXsyDB8OHTrYXV3hFAbicXJyYNkymDsXGjQwVwI9eigEpHy5eE+G\n+fPhq6/MyCRPVZrPTo3ZkDL1++9mM5nERDNSY8kSs9m8SHnkcJj+gzZt4OOP4dQpuytyHYWBlIkz\nZ8y2ks8/b/7jvPcedOpkd1UiUlwKAymVU6fgtdfMHsO33GLGcbdrZ3dVInKtFAZSIidPwqJF8Mor\nphlo/Xoz/V9EyidbRnfPnTuX0NBQWrduzYgRI/j999/tKENKICvLzBH4859h714zs/ODDxQEIuWd\n28MgLS2N119/nZ07d/Ltt9+Sl5fHihUr3F2GXKPMTDMstHFjs4Dc1q1myGhoqN2ViUhZKLCZKCAg\nAMdVxgHm5uaSk5NDXl5eiQ5YvXp1/P39OX36NH5+fpw+fZr6vrKkYDn088/w8suweLGZKfz11xAS\nYndVIlLWCrwyyM7O5uTJk85beno606ZNIygoiIceeqjEB6xVqxaPPvoof/rTn7jpppuoUaMGvXr1\nKvHriWukp8Ojj0KzZvDrr2YSzn//t4JAxFsV2YGclZXFvHnzWLp0KSNGjGDHjh3Url27xAc8dOgQ\n8+bNIy0tjRtuuIFhw4axfPlyRo4cecnzEhISnPejoqKIiooq8TGl+I4cMcND33nHLCG9d6+ZNCYi\nniclJYWUlJQyea0Cw+Dnn3/mpZdeYuXKlcTHx7N7925uuOGGUh9wx44ddO7c2RkoQ4cO5csvvyw0\nDMT1fvrJTBRbuRLi42H/fggKsrsqESnM5X8o/+UvfynxaxUYBsHBwdSpU4f4+HiqVKnCG2+84Zzm\n7HA4eOSRR0p0wObNmzNr1izOnDnDddddx6ZNm2jfvn3JqpdSO3TIrBu0ejVMmAAHDkDdunZXJSLu\nVmAYTJkyxXk/Ozu7zA4YFhbGXXfdRbt27ahQoQJt27ZlwoQJZfb6UjwHDsDs2WZ7wEmT4OBBs5Cc\niPgmLVTnY/btM8tIb94MDzwAkydDjRp2VyXi+SIjzai6yEi7KylYaT47taWIj9i926zN3rMnhIeb\n5qHp0xUEImIoDLzcjh0waBD06wedO5sQePxxqFbN7spExJMoDLzUtm0mAIYMgV69TAg88ghUrWp3\nZSLiiYqcZ3D27FmSkpJIS0sjNzcXMO1SM2bMcHlxcu0++wxmzjRLRjz5pNlvuHJlu6sSEU9XZBgM\nGjSIGjVqEBkZyXXXXeeOmuQaWZZZMG7mTDh6FJ56ykwY8/e3uzIRKS+KDIOjR4/y97//3R21yDWy\nLEhONquIZmbCtGkQF2c28xYRuRZFfmx07tyZvXv30qZNG3fUI8VgWfDRRyYEzpwxo4KGDQM/P7sr\nE5Hyqsgw+Pzzz3nzzTdp1KgRlf9ofHY4HOzdu9flxcml8vNNH8Czz5pAePpp00FcQcMARKSUigyD\n9evXu6MOKURentlA5tln4frrTd9A//5ms24RkbJQYBj89ttvVK9enerVq7uzHrlIbq7ZWH72bLNU\nxIsvQp8+CgERKXsFhkFcXByffPIJbdu2vWKTG4fDwY8//ujy4nxVTg4sWwZz55rloxctgh49FAIi\n4joFhsEnn3wCmG0qxT1+/x3efNMsJd2kCSxZYjabFxFxNQ1C9ABnzphdxJ57Dtq0MU1DnTrZXZWI\n+BKFgY1OnYL/+i/TF3DLLWZPgXbt7K5KRHyRwsAGJ0+afoBXXjHNQOvXQ1iY3VWJiC8r1gj183MN\nwGyHmZqa6tKivFVWlpko9uc/m72FP/3UDBlVEIiI3YoMg4SEBJ5//nnmzp0LQE5ODqNGjXJ5Yd4k\nMxNmzIDGjc0Cclu3wrvvQmio3ZWJiBhFhsGHH37ImjVrqPrH2sf169fn5MmTLi/MG/z8s1k5tEkT\nOHYMvv4ali6FZs3srkxE5FJFhkHlypWpcNF6B6dOnXJpQd4gIwMee8x86Gdlwc6dZrRQSIjdlYmI\nXF2RYTBs2DDuvfdesrKyWLx4MT179mT8+PHuqK3cOXLE7CvcsiWcO2f6Bf76V7j5ZrsrExEpXJGj\niaZMmcKGDRuoVq0a33//PbNmzSI6OtodtZUbP/1kJoqtXAnx8bB/PwQF2V2ViEjxFRkGqampdO3a\nld69ewNw5swZ0tLSCA4OdnVtHu/QIbNkxIcfwoQJcOAA1K1rd1UiIteuyGai2NhY/C5aKL9ChQrE\nxsa6tChPd+AAjBkDHTrATTfBwYMmFBQEIlJeFXllkJeXR6VKlZzfV65cmXPnzrm0KE+1b59ZQXTj\nRnjwQTNMtEYNu6sSESm9Iq8M6tSpw5o1a5zfr1mzhjp16ri0KE+zezfExpqVQ8PC4Mcfze5iCgIR\n8RZFXhm89tprjBw5ksmTJwPQoEEDli1b5vLCPMGOHWbG8PbtZqjo0qXwx3QLERGvUmgY5OXl8dpr\nr/H11187J5pVq1bNLYXZads2EwLffgtTp8KKFWaHMRERb1VoGPj5+bF161Ysy/KJEPjsMxMCBw/C\nE0+YUUJ/bPssIuLVimwmCg8PZ9CgQQwbNowqVaoAZqezoUOHlvigWVlZjB8/nn379uFwOFiyZAkd\nO3Ys8euVhmWZBeNmzjSTxqZNg9Gjwd/flnJERGxRZBicPXuWWrVq8emnn17yeGnC4MEHH6Rfv36s\nWrWK3Nxc25a42LkTJk+GEydMh3BcHFTUot4i4oMclmVZ7jzgr7/+SkRERKF7KDscDtxR1qhR8Kc/\nmaahi6ZSiIhcITISFi82Xz1VaT47ixxaevjwYYYMGULdunWpW7cuMTExHDlypEQHAzOjuW7duowd\nO5a2bdtyzz33cPr06RK/Xmm1bKkgEBEpslFk7NixjBw5kvfffx+A5cuXM3bsWDZu3FiiA+bm5rJz\n504WLlzILbfcwkMPPURiYiIzZ8685HkJCQnO+1FRUURFRZXoeCIi3iolJYWUlJQyea0im4nCwsLY\ns2dPkY8VV0ZGBp06dXLulrZ161YSExP5+OOPLxTlxmai2283X0VECuPzzUS1a9dm2bJl5OXlkZub\nyzvvvFOqGchBQUE0bNiQ77//HoBNmzYRqi2/RERsVWQz0ZIlS7j//vt55JFHAOjcubNzP+SSWrBg\nASNHjiQnJ4eQkJBSv56IiJROgWHw1Vdf0bFjR4KDg/noo4/K9KBhYWFs3769TF9TRERKrsBmookT\nJzrvd+rUyS3FiIiIPYrsMwAz8UxERLxXgc1EeXl5ZGZmYlmW8/7FatWq5fLiRETEPQoMg99++43I\nP8ZQWZblvA9m+FJhM4hFRKR8KTAM0tLS3FiGiIjYqVh9BiIi4t0UBiIiojAQEZEiwiA3N5dmzZq5\nqxYREbFJoWFQsWJFmjdvzk8//eSuekRExAZFrk2UmZlJaGgo7du3p2rVqoAZWrp27VqXFyciIu5R\nZBjMmjXLHXWIiIiNigwDbSojIuL9ihxNtG3bNm655RYCAgLw9/enQoUKVK9e3R21iYiImxQZBpMn\nT+bdd9+lSZMmnD17ljfeeINJkya5ozYREXGTYs0zaNKkCXl5efj5+TF27FiSk5NdXZeIiLhRkX0G\nVatW5ffffycsLIypU6cSFBTklv2JRUTEfYq8Mnj77bfJz89n4cKFVKlShSNHjpCUlOSO2kRExE2K\nvDIIDg7m9OnTZGRkkJCQ4IaSRETE3Yq8Mli7di0RERH06dMHgF27djFw4ECXFyYiIu5TZBgkJCTw\n9ddfU7NmTQAiIiK0sY2IiJcpMgz8/f2pUaPGpT9UQYudioh4kyI/1UNDQ1m+fDm5ubkcPHiQ+++/\nn86dO7ujNhERcZMiw2DBggXs27ePypUrExcXR/Xq1Zk3b547ahMRETcp1jyDOXPmMGfOHHfUIyIi\nNigyDA4cOMCLL75IWloaubm5gFnC+tNPP3V5cSIi4h5FhsGwYcOYOHEi48ePx8/PDzBhICIi3qPI\nMPD392fixInuqEVERGxSYAdyZmYmJ06cYMCAASxatIj09HQyMzOdt9LKy8sjIiKCAQMGlPq1RESk\ndAq8Mmjbtu0lzUEvvvii877D4Sj1xLP58+fTsmVLTp48WarXERGR0iswDNLS0lx20CNHjrBu3Tqm\nTZvGyy+/7LLjiIhI8RTYTLR9+3bS09Od3y9dupSBAwfywAMPlLqZ6OGHH+aFF17QTGYREQ9R4JXB\nhAkT2Lx5MwCfffYZTzzxBAsXLmTXrl1MmDCBVatWleiAH3/8MTfeeCMRERGkpKQU+LyLV0iNiorS\nXswiIpdJSUkp9HP0WjisAnaqCQsLY8+ePQDcd9991K1b1/kBffG/XaunnnqKZcuWUbFiRc6ePctv\nv/1GTEwMb7/99oWiHA63bKAzahTcfrv5KiJSmMhIWLzYfPVUpfnsLLCdJi8vj3PnzgGwadMmunfv\n7vy385PPSmLOnDkcPnyY1NRUVqxYQY8ePS4JAhERcb8Cm4ni4uLo1q0bderUoUqVKnTt2hWAgwcP\nXrGKaWloApuIiP0KDINp06bRo0cPMjIy6N27t7Oz17IsFixYUCYH79atG926dSuT1xIRkZIrdAZy\np06drnisadOmLitGRETsobGdIiKiMBAREYWBiIigMBARERQGIiKCwkBERFAYiIgICgMREUFhICIi\nKAxERASFgYiIoDAQEREUBiIigsJARERQGIiICAoDERFBYSAiIigMREQEhYGIiKAwEBERFAYiIoLC\nQEREUBiIiAgKAxERQWEgIiIoDEREBIWBiIhgQxgcPnyY7t27ExoaSqtWrXj11VfdXYKIiFymorsP\n6O/vzyuvvEJ4eDjZ2dlERkYSHR1NixYt3F2KiIj8we1XBkFBQYSHhwMQEBBAixYtOHbsmLvLEBGR\ni9jaZ5CWlsauXbvo0KGDnWWIiPg828IgOzub2NhY5s+fT0BAgF1liIgINvQZAJw7d46YmBhGjRrF\n4MGDr/qchIQE5/2oqCiioqLcU5yISDmRkpJCSkpKmbyWw7Isq0xeqZgsy2LMmDHUrl2bV1555epF\nORy4o6xRo+D2281XEZHCREbC4sXmq6cqzWen25uJvvjiC9555x3+8Y9/EBERQUREBMnJye4uQ0RE\nLuL2ZqJbb72V/Px8dx9WREQKoRnIIiKiMBAREYWBiIigMBAREXw4DDIy4IsvoF49uysREbGfT4ZB\nZiZER8O4cdCzp93ViIjYz+fC4ORJ6NvXTDabNs3uakREPINPhcGZMzBwIISHw/PPg8Nhd0UiIp7B\nZ8Lg3DkYPhyCguA//1NBICJyMZ8Ig7w8uOsuc//tt8HPz956REQ8jS2rlrqTZcHEiXD8OHzyCfj7\n212RiIjn8eowsCyYMgX27oWNG+H66+2uSETEM3l1GDz7LGzYACkpUK2a3dWISHmXm2t3Ba7jtX0G\n8+eb/oENG6BWLburEZHyrl8/GDkSduywuxLX8MowePNNePll2LTJjB4SESmtWbNg7lwTCi+/DN62\nEr/bdzorjtLs1rNqFTzwAPzjH9CsWRkXJiI+LzUV7rwT6tSBt96CunXtruiCcrXTmSslJ8N998G6\ndQoCEXGNRo1g61Zo1QoiIkyfpDfwmiuDzz+HoUNhzRro3NlFhYmIXOTvf4e774YJE+Dpp6GizUNy\nSnNl4BVh8D//Y9Ybevdd6NXLhYWJiFwmPR1Gj4acHFi+HBo2tK8Wn24m2r8f+veHxYsVBCLifvXq\nmVGLfftCu3awdq3dFZVMub4y+PFH6NbN9PCPGuWGwkRECvHllzBiBAwaZBbDrFzZvcf3ySuDo0fN\nngRPPqkgEBHP0Lkz7NoFhw9Dp07w/fd2V1R85TIMfvnFBME998CkSXZXIyJyQc2akJQE48dDly6w\nbJndFRVPuWsm+vVXsztZ794wZ46bCxMRuQZ79sB//Ad06ACLFkFAgGuP5zPNRKdPw4AB0LEjzJ5t\ndzUiIoULCzOjHf38IDISdu+2u6KClZswyMmBmBgIDoZXX9XmNCJSPlStCkuWwIwZpnl74UKzorKn\nKRfNRLm5EBdnvn7wgf0TO0RESuKHH0yzUcOGJiDKehFNr24mys83s/uysmDFCgWBiJRfjRub4ad/\n/rNZymLrVrsrusCWMEhOTqZ58+Y0adKE5557rsDnWRY88ggcOACrV7t/zK6ISFmrXNmserpoEcTG\nmn1X8vLsrsqGMMjLy2Py5MkkJyezf/9+3nvvPf75z39e9bkJCbBli9musmpV99bpKVK8ZRWsMqBz\ncYHOxQXl9Vz07286lzdtMn0Jx47ZW4/bw+Cbb76hcePGBAcH4+/vz5133smaNWuueN5LL8HKlWYh\nqBo13F2l5yivb3RX0Lm4QOfigvJ8LurXh82bzUoKbdvC+vX21eL2MDh69CgNL1rJqUGDBhw9evSK\n5y1YYPYtvvFGd1YnIuJefn7wzDPmj98JE+Cxx8zoSXdzexg4ijkmdONGe1f/ExFxp27dzFIWBw7A\nrbeaeVVuZbnZtm3brD59+ji/nzNnjpWYmHjJc0JCQixAN9100023a7iFhISU+LPZ7fMMcnNzadas\nGZs3b+amm26iffv2vPfee7Ro0cKdZYiIyEXcPmq/YsWKLFy4kD59+pCXl8e4ceMUBCIiNvPIGcgi\nIuJeHjcDubgT0rxRcHAwbdq0ISIigvbt2wOQmZlJdHQ0TZs2pXfv3mRlZdlcpWvEx8cTGBhI69at\nnY8V9rvPnTuXJk2a0Lx5czZs2GBHyS5ztXORkJBAgwYNiIiIICIigvUXjUH05nNx+PBhunfvTmho\nKK1ateLVV18FfPO9UdC5KLP3Rol7G1wgNzfXCgkJsVJTU62cnBwrLCzM2r9/v91luU1wcLB14sSJ\nSx6bMmWK9dxzz1mWZVmJiYnW448/bkdpLvfZZ59ZO3futFq1auV8rKDffd++fVZYWJiVk5Njpaam\nWiEhIVZeXp4tdbvC1c5FQkKC9dJLL13xXG8/F+np6dauXbssy7KskydPWk2bNrX279/vk++Ngs5F\nWb03POrKoLgT0ryZdVmr3dq1axkzZgwAY8aMYfXq1XaU5XJdu3alZs2alzxW0O++Zs0a4uLi8Pf3\nJzg4mMaNG/PNN9+4vWZXudq5gCvfG+D95yIoKIjw8HAAAgICaNGiBUePHvXJ90ZB5wLK5r3hUWFQ\n3Alp3srhcNCrVy/atWvH66+/DsDx48cJDAwEIDAwkOPHj9tZolsV9LsfO3aMBg0aOJ/nK++TBQsW\nEBYWxrhx45zNIr50LtLS0ti1axcdOnTw+ffG+XPRsWNHoGzeGx4VBsWdkOatvvjiC3bt2sX69etZ\ntGgRn3/++SX/7nA4fPYcFfW7e/t5mThxIqmpqezevZt69erx6KOPFvhcbzwX2dnZxMTEMH/+fKpV\nq3bJv/naeyM7O5vY2Fjmz59PQEBAmb03PCoM6tevz+HDh53fHz58+JJk83b16tUDoG7dugwZMoRv\nvvmGwMBAMjIyAEhPT+dGH1qfo6Df/fL3yZEjR6hfv74tNbrLjTfe6PzQGz9+vPNy3xfOxblz54iJ\niWH06NEMHjwY8N33xvlzMWrUKOe5KKv3hkeFQbt27Th48CBpaWnk5OSwcuVKBg4caHdZbnH69GlO\nnjwJwKlTp9iwYQOtW7dm4MCBLF26FIClS5c63wC+oKDffeDAgaxYsYKcnBxSU1M5ePCgc/SVt0pP\nT3fe//DDD50jjbz9XFiWxbhx42jZsiUPPfSQ83FffG8UdC7K7L3hil7v0li3bp3VtGlTKyQkxJoz\nZ47d5bjNjz/+aIWFhVlhYWFWaGio83c/ceKE1bNnT6tJkyZWdHS09X//9382V+oad955p1WvXj3L\n39/fatBlqDKuAAAD90lEQVSggbVkyZJCf/fZs2dbISEhVrNmzazk5GQbKy97l5+LN954wxo9erTV\nunVrq02bNtagQYOsjIwM5/O9+Vx8/vnnlsPhsMLCwqzw8HArPDzcWr9+vU++N652LtatW1dm7w1N\nOhMREc9qJhIREXsoDERERGEgIiIKAxERQWEgIiIoDEREBIWBlCMBAQEuff158+Zx5syZazreRx99\n5HNLrYt30jwDKTeqVavmnKXtCo0aNWLHjh3Url3bLccT8SS6MpBy7dChQ/Tt25d27dpx2223ceDA\nAQDuvvtuHnzwQbp06UJISAhJSUkA5OfnM2nSJFq0aEHv3r254447SEpKYsGCBRw7dozu3bvTs2dP\n5+tPnz6d8PBwOnXqxP/+7/9ecfy33nqL+++/v9BjXiwtLY3mzZszduxYmjVrxsiRI9mwYQNdunSh\nadOmbN++HTAblowZM4bbbruN4OBg/va3v/HYY4/Rpk0b+vbtS25ubpmfS/Fxrpw+LVKWAgICrnis\nR48e1sGDBy3LsqyvvvrK6tGjh2VZljVmzBhr+PDhlmVZ1v79+63GjRtblmVZH3zwgdWvXz/Lsiwr\nIyPDqlmzppWUlGRZ1pWbCzkcDuvjjz+2LMuypk6daj377LNXHP+tt96yJk+eXOgxL5aammpVrFjR\n+u6776z8/HwrMjLSio+PtyzLstasWWMNHjzYsizLeuaZZ6yuXbtaubm51p49e6zrr7/euZzAkCFD\nrNWrVxf/xIkUQ0W7w0ikpLKzs9m2bRvDhg1zPpaTkwOYpXrPL17WokUL53r3W7duZfjw4YBZ+bJ7\n9+4Fvn6lSpW44447AIiMjGTjxo2F1lPQMS/XqFEjQkNDAQgNDaVXr14AtGrVirS0NOdr9e3bFz8/\nP1q1akV+fj59+vQBoHXr1s7niZQVhYGUW/n5+dSoUYNdu3Zd9d8rVarkvG/90TXmcDgu2RXKKqTL\nzN/f33m/QoUKxWqaudoxL1e5cuVLXvf8z1x+jIsfL0ktItdCfQZSblWvXp1GjRqxatUqwHz47t27\nt9Cf6dKlC0lJSViWxfHjx9myZYvz36pVq8Zvv/12TTUUFial4arXFSmIwkDKjdOnT9OwYUPnbd68\neSxfvpw33niD8PBwWrVqxdq1a53Pv3hXp/P3Y2JiaNCgAS1btmT06NG0bduWG264AYAJEyZw++23\nOzuQL//5q+0SdfnjBd2//GcK+v78/cJet7DXFikpDS0Vn3Pq1CmqVq3KiRMn6NChA19++aVP7SAn\ncjXqMxCf079/f7KyssjJyWHGjBkKAhF0ZSAiIqjPQEREUBiIiAgKAxERQWEgIiIoDEREBIWBiIgA\n/w/qZz1xEBCKMwAAAABJRU5ErkJggg==\n",
+ "text": [
+ "<matplotlib.figure.Figure at 0x5c91e90>"
+ ]
+ }
+ ],
+ "prompt_number": 2
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 4.4.18,Page no.164"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "import numpy as np\n",
+ "\n",
+ "#Initilization of Variables\n",
+ "\n",
+ "F=30*10**3 #N #Shear Force\n",
+ "\n",
+ "#Channel Section\n",
+ "d=400 #mm #Depth of web \n",
+ "t=10 #mm #THickness of web\n",
+ "t2=15 #mm #Thickness of flange\n",
+ "b=100 #mm #Width of flange\n",
+ "\n",
+ "#Rectangular Welded section\n",
+ "b2=80 #mm #Width\n",
+ "d2=60 #mm #Depth\n",
+ "\n",
+ "#Calculations\n",
+ "\n",
+ "#Distance of Centroid From Top Fibre\n",
+ "y=(d*t*t*2**-1+2*t2*(b-t)*((b-t)*2**-1+10)+d2*b2*(d2*2**-1+t))*(d*t+2*t2*(b-t)+d2*b2)**-1 #mm\n",
+ "\n",
+ "#Moment Of Inertia of the section about N-A\n",
+ "I=1*12**-1*d*t**3+d*t*(y-t*2**-1)**2+2*(1*12**-1*t2*(b-t)**3+t2*(b-t)*(((b-t)*2**-1+t)-y)**2)+1*12**-1*d2**3*b2+d2*b2*(d2*2**-1+t-y)**2\n",
+ "\n",
+ "#Shear stress at level of weld\n",
+ "sigma=F*d*t*(y-t*2**-1)*((b2+t2+t2)*I)**-1 #N/mm**2\n",
+ "\n",
+ "#Max Shear Stress occurs at Neutral Axis\n",
+ "X=d*t*(y-t*2**-1)+2*t2*(y-t)*(y-t)*2**-1+b2*(y-t)*(y-t)*2**-1\n",
+ "\n",
+ "sigma_max=F*X*((b+t)*I)**-1\n",
+ "\n",
+ "#Result\n",
+ "print\"Shear stress in the weld is\",round(sigma,2),\"N/mm**2\"\n",
+ "print\"Max shear stress is\",round(sigma_max,2),\"N/mm**2\""
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Shear stress in the weld is 3.62 N/mm**2\n",
+ "Max shear stress is 4.48 N/mm**2\n"
+ ]
+ }
+ ],
+ "prompt_number": 13
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 4.4.19,Page no.165"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "import numpy as np\n",
+ "\n",
+ "#Initilization of Variables\n",
+ "\n",
+ "#Wooden Section\n",
+ "b=300 #mm #Width\n",
+ "d=300 #mm #Depth\n",
+ "\n",
+ "D=100 #mm #Diameter of Bore\n",
+ "F=10*10**3 #N #Shear Force\n",
+ "\n",
+ "#Calculations\n",
+ "\n",
+ "#Moment Of Inertia Of Section\n",
+ "I=1*12**-1*b*d**3-pi*64**-1*D**4\n",
+ "\n",
+ "#Shear stress at crown of circle\n",
+ "sigma=F*b*D*(d*2**-1-D*2**-1)*(b*I)**-1\n",
+ "\n",
+ "#Let a*y_bar=X\n",
+ "X=b*d*2**-1*d*4**-1-pi*8**-1*D**2*4*D*2**-1*(3*pi)**-1 #mm**3\n",
+ "\n",
+ "#Shear Stress at Neutral Axis\n",
+ "sigma2=F*X*((b-D)*I)**-1 #N/mm**2\n",
+ "\n",
+ "#Result\n",
+ "print\"Shearing Stress at Crown of Bore\",round(sigma,3),\"N/mm**2\"\n",
+ "print\"Shear Stress at Neutral Axis\",round(sigma2,3),\"N/mm**2\""
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Shearing Stress at Crown of Bore 0.149 N/mm**2\n",
+ "Shear Stress at Neutral Axis 0.246 N/mm**2\n"
+ ]
+ }
+ ],
+ "prompt_number": 10
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 4.4.20,Page no.166"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "import numpy as np\n",
+ "\n",
+ "#Initilization of Variables\n",
+ "\n",
+ "#flanges\n",
+ "b=200 #mm #width\n",
+ "t1=25 #mm #Thickness\n",
+ "\n",
+ "#web\n",
+ "d=450 #mm #Depth \n",
+ "t2=20 #mm #thickness\n",
+ "\n",
+ "D=500 #mm #Total Depth of section\n",
+ "\n",
+ "#Calculations\n",
+ "\n",
+ "#Moment Of Inertia of the section about N-A\n",
+ "I=1*12**-1*b*D**3-1*12**-1*(b-t2)*d**3 #mm**4\n",
+ "\n",
+ "#Consider an element in the web at distance y from y from N-A\n",
+ "#Depth of web section=225-y\n",
+ "\n",
+ "#C.G From N-A\n",
+ "#y2=y+(((D*2**-1-t)-y)*2**-1)\n",
+ "\n",
+ "#ay_bar for section at y\n",
+ "#Let ay_bar be X\n",
+ "#X=X1 be of Flange + X2 be of web above y\n",
+ "#X=b*t1*(D*2**-1-t1*2**-1)+t2*(d-t1)*(d-t1+y)*2**-1\n",
+ "#After Sub values and Further simplifying we get\n",
+ "#X=1187500+10*(225**2-y**2)\n",
+ "\n",
+ "#Shear stress at y\n",
+ "#sigma_y=F*(X)*(t2*I)**-1\n",
+ "\n",
+ "#Shear Force resisted by the Element\n",
+ "#F1=F*X*t2*dy*(t2*I)**-1\n",
+ "\n",
+ "#Shear stress resisted by web \n",
+ "#sigma=2*F*I**-1*(X)*dy\n",
+ "\n",
+ "#After Integrating above equation and further simplifying we get\n",
+ "#sigma=0.9578*F\n",
+ "\n",
+ "sigma=0.9578*100\n",
+ "\n",
+ "#Result\n",
+ "print\"Shear Resisted by web\",round(sigma,2),\"%\""
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Shear Resisted by web 95.78 %\n"
+ ]
+ }
+ ],
+ "prompt_number": 1
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 4.4.21,Page no.167"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "import numpy as np\n",
+ "\n",
+ "#Initilization of Variables\n",
+ "\n",
+ "#Wooden Beam\n",
+ "\n",
+ "b=150 #mm #width\n",
+ "d=250 #mm #Depth\n",
+ "\n",
+ "L=5000 #mm #span\n",
+ "m=11.2 #N/mm**2 #Max Bending stress\n",
+ "sigma=0.7 #N/mm**2 #Max shear stress\n",
+ "\n",
+ "#Calculations\n",
+ "\n",
+ "#Let 'a' be the distance from left support\n",
+ "#Max shear force\n",
+ "#F=R_A=W*(L-a)*L**-1 \n",
+ "\n",
+ "#Max Moment\n",
+ "#M=W*(L-a)*a*L**-1\n",
+ "\n",
+ "#But M=sigma*Z\n",
+ "#W*(L-a)*a*L**-1=m*1*6**-1*b*d**2 .....................(1)\n",
+ "\n",
+ "#In Rectangular Section MAx stress is 1.5 times Avg shear stress\n",
+ "F=sigma*b*d*1.5**-1\n",
+ "\n",
+ "#W*(L-a)*L**-1=F .....................(2)\n",
+ "\n",
+ "#Dividing Equation 1 nad 2 we get\n",
+ "a=m*6**-1*b*d**2*1.5*(sigma*b*d)**-1\n",
+ "\n",
+ "#Sub above value in equation 2 we get\n",
+ "W=(L-a)**-1*L*F*10**-3 #KN \n",
+ "\n",
+ "#Result\n",
+ "print\"Load is\",round(W,2),\"KN\"\n",
+ "print\"Distance from Left support is\",round(a,2),\"mm\""
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Load is 21.87 KN\n",
+ "Distance from Left support is 1000.0 mm\n"
+ ]
+ }
+ ],
+ "prompt_number": 22
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 4.4.22,Page no.168"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "import numpy as np\n",
+ "\n",
+ "#Initilization of Variables\n",
+ "\n",
+ "L=1000 #mm #span\n",
+ "\n",
+ "#Rectangular Section\n",
+ "\n",
+ "b=200 #mm #width\n",
+ "d=400 #mm #depth\n",
+ "\n",
+ "sigma=1.5 #N/mm**2 #Shear stress\n",
+ "\n",
+ "#Calculations\n",
+ "\n",
+ "#Let AB be the cantilever beam subjected to load W KN at free end\n",
+ "\n",
+ "#MAx shear Force\n",
+ "#F=W*10**3 #KN\n",
+ "\n",
+ "#Since Max shear stress in Rectangular section\n",
+ "#sigma_max=1.5*F*A**-1 \n",
+ "#After sub values and further simplifyng we get\n",
+ "W=1.5*b*d*(1.5*1000)**-1 #KN\n",
+ "\n",
+ "#Moment at fixwed end\n",
+ "M=W*1 #KN-m\n",
+ "y_max=d*2**-1 #mm\n",
+ "\n",
+ "#M.I\n",
+ "I=1*12**-1*b*d**3 #mm**3\n",
+ "\n",
+ "#MAx Stress\n",
+ "sigma_max=M*10**6*I**-1*y_max\n",
+ "\n",
+ "#Result\n",
+ "print\"Concentrated Load is\",round(sigma_max,2),\"N/mm**2\""
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Concentrated Load is 15.0 N/mm**2\n"
+ ]
+ }
+ ],
+ "prompt_number": 14
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 4.4.24,Page no.170"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "import numpy as np\n",
+ "\n",
+ "#Initilization of Variables\n",
+ "\n",
+ "L=4000 #mm #span\n",
+ "\n",
+ "#Rectangular Cross-section\n",
+ "b=100 #mm #Width\n",
+ "d=200 #mm #Thickness\n",
+ "\n",
+ "F_per=10 #N/mm**2 #Max Bending stress\n",
+ "q_max=0.6 #N/mm**2 #Shear stress\n",
+ "\n",
+ "#Calculations\n",
+ "\n",
+ "#If the Load W is in KN/m\n",
+ "\n",
+ "#Max shear Force\n",
+ "#F=w*l*2**-1 #KN\n",
+ "#After substituting values and further simplifying we get\n",
+ "#M=2*w #KN-m\n",
+ "\n",
+ "#Max Load from Consideration of moment\n",
+ "#M=1*6**-1*b*d**2*F_per\n",
+ "#After substituting values and further simplifying we get\n",
+ "w=(1*6**-1*b*d**2*F_per)*(2*10**6)**-1 #KN/m\n",
+ "\n",
+ "#Max Load from Consideration of shear stress\n",
+ "#q_max=1.5*F*(b*d)**-1 #N\n",
+ "#After substituting values and further simplifying we get\n",
+ "F=q_max*(1.5)*b*d #N\n",
+ "\n",
+ "#If w is Max Load in KN/m,then\n",
+ "#2*w*1000=8000\n",
+ "#After Rearranging and Further simplifying we get\n",
+ "w2=8000*(2*1000)**-1 #KN/m\n",
+ "\n",
+ "#Result\n",
+ "print\"Uniformly Distributed Load Beam can carry is\",round(w,2),\"KN/m\""
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Uniformly Distributed Load Beam can carry is 3.33 KN/m\n"
+ ]
+ }
+ ],
+ "prompt_number": 8
+ }
+ ],
+ "metadata": {}
+ }
+ ]
+}
\ No newline at end of file diff --git a/Strength_Of_Materials_by_S_S_Bhavikatti/chapter_05.ipynb b/Strength_Of_Materials_by_S_S_Bhavikatti/chapter_05.ipynb new file mode 100644 index 00000000..63be0774 --- /dev/null +++ b/Strength_Of_Materials_by_S_S_Bhavikatti/chapter_05.ipynb @@ -0,0 +1,1019 @@ +{
+ "metadata": {
+ "name": "chapter 05.ipynb"
+ },
+ "nbformat": 3,
+ "nbformat_minor": 0,
+ "worksheets": [
+ {
+ "cells": [
+ {
+ "cell_type": "heading",
+ "level": 1,
+ "metadata": {},
+ "source": [
+ "Chapter 5:Deflections Of Beams By Double Integration Methods"
+ ]
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 5.5.2,Page No.192"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "import numpy as np\n",
+ "\n",
+ "\n",
+ "#Initilization of Variables\n",
+ "\n",
+ "L=3000 #mm #span of beam\n",
+ "a=2000 #mm\n",
+ "W1=20*10**3 #N #Pt Load Acting on beam\n",
+ "W2=30*10**3 #N #Pt Load Acting on beam\n",
+ "E=2*10**5 #N/mm**2 #Young's Modulus\n",
+ "I=2*10**8 #mm**4 #M.I\n",
+ "\n",
+ "#Calculations\n",
+ "\n",
+ "#Deflection at free End Due to W2\n",
+ "dell1=W2*L**3*(3*E*I)**-1 #mm\n",
+ "\n",
+ "#Deflection at free end Due to W1\n",
+ "dell2=W1*a**3*(3*E*I)**-1+(L-a)*W1*a**2*(2*E*I)**-1 #mm\n",
+ "\n",
+ "#Total Deflection at free end\n",
+ "dell=dell1+dell2 #mm\n",
+ "\n",
+ "#Result\n",
+ "print\"Deflection at Free End is\",round(dell,2),\"mm\""
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Deflection at Free End is 9.08 mm\n"
+ ]
+ }
+ ],
+ "prompt_number": 8
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 5.5.4,Page No.193"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "import numpy as np\n",
+ "\n",
+ "\n",
+ "#Initilization of Variables\n",
+ "\n",
+ "E=2*10**5 #N/mm**2 #Young's Modulus\n",
+ "I=180*10**6 #mm**4 #M.I\n",
+ "W1=20 #N/m #u.d.l\n",
+ "W2=20*10**3 #N #Pt load\n",
+ "L=3000 #m #Span of beam\n",
+ "a=2000 #m #Span of u.d.l\n",
+ "\n",
+ "#Calculations\n",
+ "\n",
+ "#Displacement of free End due to 20 KN Pt load at free end\n",
+ "dell1=W2*L**3*(3*E*I)**-1 #mm\n",
+ "\n",
+ "#Displacement of free end due to u.d.l\n",
+ "dell2=W1*a**4*(8*E*I)**-1+(L-a)*W1*a**3*(6*E*I)**-1\n",
+ "\n",
+ "#Deflection at free end\n",
+ "dell=dell1+dell2 #mm\n",
+ "\n",
+ "#Result\n",
+ "print\"The Displacement of Free End of cantilever beam is\",round(dell,2),\"mm\""
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "The Displacement of Free End of cantilever beam is 6.85 mm\n"
+ ]
+ }
+ ],
+ "prompt_number": 7
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 5.5.10,Page No.201"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "import numpy as np\n",
+ "\n",
+ "\n",
+ "#Initilization of Variables\n",
+ "\n",
+ "E=200*10**6 #KN/m**2 #Young's Modulus\n",
+ "I=15*10**-6 #m**4 #M.I\n",
+ "a=4000 #m \n",
+ "L_AB=6 #m #Span of beam\n",
+ "L_CB=2 #m #Length of CB\n",
+ "F_C=18 #KN #force at C\n",
+ "\n",
+ "#Calculations\n",
+ "\n",
+ "#Let V_A & V_B be the Reactions at A & B Respectively\n",
+ "#V_A+V_B=18\n",
+ "#Now taking moment at B,we get M_B\n",
+ "V_A=(F_C*L_CB)*L_AB**-1\n",
+ "V_B=18-V_A\n",
+ "\n",
+ "#Now Taking Moment at distance x\n",
+ "#M_x=6*x-18*(x-4)\n",
+ "#EI*d**2*y*(d*x**2)**-1=6*x-18*(x-4)\n",
+ "\n",
+ "#Now Integrating above equation,we get\n",
+ "#EI*dy*(dx)**-1=C1+3*x**2-9(x-4)**4\n",
+ "\n",
+ "#Again Integrating above equation we get\n",
+ "#EI*y=C2+C1*x+x**3-3*(x-4)**3\n",
+ "\n",
+ "#The Boundary conditions\n",
+ "x=0\n",
+ "y=0 #.....(a)\n",
+ "\n",
+ "x=6\n",
+ "y=0 #....(b)\n",
+ "\n",
+ "#From Boundary Condition(B.C) a we get\n",
+ "C2=0\n",
+ "\n",
+ "#From Boundary Condition(B.C) b we get\n",
+ "#6*C1+216-3*8\n",
+ "#After Further simplifying we get\n",
+ "C1=-(216-24)*6**-1\n",
+ "\n",
+ "#EI*y=-32*x+x**3-3*(x-4)**3\n",
+ "#EI*dy*(dx)**-1=-32+3*x**2-9(x-4)**4\n",
+ "\n",
+ "#For Max Deflection\n",
+ "#Assume it inthe Porion AC i.e x=4=a\n",
+ "#0=-32+3*x**2\n",
+ "x=(32*3**-1)**0.5\n",
+ "\n",
+ "#Value of Max deflection is\n",
+ "ymax=(-32*x+x**3)*(E*I)**-1 #mm\n",
+ "\n",
+ "#slope at mid-span\n",
+ "\n",
+ "#EI*(dy*(dx)**-1)_centre=-32+3*x**2\n",
+ "#at centre ,\n",
+ "x1=3 #m\n",
+ "\n",
+ "#Let (dy*(dx)**-1)_centre=X\n",
+ "X=-(-32+3*x1**2)*(E*I)**-1 #Radian\n",
+ "\n",
+ "#Deflection at Load Point\n",
+ "x2=4 #m\n",
+ "#EI*y_c=-32*x2+x2**3\n",
+ "\n",
+ "y_c=-(-32*x2+x2**3)*(E*I)**-1\n",
+ "\n",
+ "\n",
+ "#Result\n",
+ "print\"Value of Max Deflection\",round(ymax,4),\"mm\"\n",
+ "print\"SLope at mid-span\",round(X,4),\"radian\"\n",
+ "print\"Deflection at the Load Point is\",round(y_c,4),\"mm\""
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Value of Max Deflection -0.0232 mm\n",
+ "SLope at mid-span 0.0017 radian\n",
+ "Deflection at the Load Point is 0.0213 mm\n"
+ ]
+ }
+ ],
+ "prompt_number": 25
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 5.5.11,Page No.203"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "import numpy as np\n",
+ "\n",
+ "\n",
+ "#Initilization of Variables\n",
+ "\n",
+ "L_CB=2 #m #Length of CB\n",
+ "L_AC=4 #m #Length of AB\n",
+ "M_C=15 #KN.m #Moment At Pt C\n",
+ "F_C=30 #KN\n",
+ "L=6 #m Span of Beam\n",
+ "\n",
+ "#Let X=E*I\n",
+ "X=10000 #KN-m**2\n",
+ "\n",
+ "#Calculations\n",
+ "\n",
+ "#Let V_A and V_B be the reactions at A & B respectively\n",
+ "#V_A+V_B=30\n",
+ "\n",
+ "#Taking Moment a A,we get\n",
+ "V_B=(F_C*L_AC+M_C)*L**-1\n",
+ "V_A=30-V_B\n",
+ "\n",
+ "#Now Taking Moment at distacnce x from A\n",
+ "#M_x=7.5*x-30*(x-4)+15\n",
+ "\n",
+ "#By using Macaulay's Method\n",
+ "#EI*(d**2*x/dx**2)=M_x=7.5*x-30*(x-4)+15\n",
+ "\n",
+ "#Now Integrating above Equation we get\n",
+ "#EI*(dy/dx)=C1+7.5*x**2*2**-1-15*(x-4)**2+15*(x-4) ............(1)\n",
+ "\n",
+ "#Again Integrating above Equation we get\n",
+ "#EIy=C2+C1*x+7.5*6**-1*x**3-5*(x-4)**3+15*(x-4)**2*2**-1..........(2)\n",
+ "\n",
+ "#Boundary Cinditions\n",
+ "x=0\n",
+ "y=0\n",
+ "\n",
+ "#Substituting above equations we get \n",
+ "C2=0\n",
+ "\n",
+ "x=6 #m\n",
+ "y=0\n",
+ "\n",
+ "C1=-(7.5*6**3*6**-1-5*2**3+15*2**2*2**-1)*6**-1\n",
+ "\n",
+ "#EIy_c=C2+C1*x+7.5*6**-1*x**3-5*(x-4)**3+15*(x-4)**2*2**-1\n",
+ "#Sub values in Above equation we get\n",
+ "y_c=(93.3333*(X)**-1)\n",
+ "\n",
+ "#Result\n",
+ "print\"The Deflection at C\",round(y_c,4),\"mm\""
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "The Deflection at C 0.0093 mm\n"
+ ]
+ }
+ ],
+ "prompt_number": 10
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 5.5.12,Page No.204"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "import numpy as np\n",
+ "\n",
+ "\n",
+ "#Initilization of Variables\n",
+ "\n",
+ "L_AC=L_CD=L_DB=2 #m #Length of AC,CD,DB\n",
+ "F_C=40 #KN #Force at C\n",
+ "w=20 #KN/m #u.d.l\n",
+ "L=6 #m #span of beam\n",
+ "\n",
+ "#Let E*I=X\n",
+ "X=15000 #KN-m**2\n",
+ "\n",
+ "\n",
+ "#Calculations\n",
+ "\n",
+ "#Let V_A & V_B be the reactions at A & B respectively\n",
+ "#V_A+V_B=80\n",
+ "\n",
+ "#Taking Moment B,M_B\n",
+ "V_A=(F_C*(L_CD+L_DB)+w*L_DB*L_DB*2**-1)*L**-1 #KN\n",
+ "V_B=80-V_A #KN\n",
+ "\n",
+ "#Taking Moment at distance x from A\n",
+ "#M_x=33.333*x-40*(x-2)-20*(x-4)**2*2**-1\n",
+ "#EI*(d**2/dx**2)=33.333*x-40*(x-2)-10*(x-4)**2\n",
+ "\n",
+ "#Integrating above equation we get\n",
+ "#EI*(dy/dx)=C1+33.333*x**2*2**-1-20*(x-2)**2-10*3**-1*(x-4)**3\n",
+ "\n",
+ "#Again Integrating above equation we get\n",
+ "#EI*y=C2+C1*x+33.333*x**3*6**-1-20*3**-1*(x-2)**3-10*12**-1*(x-4)**4\n",
+ "\n",
+ "#At\n",
+ "x=0\n",
+ "y=0\n",
+ "C2=0\n",
+ "\n",
+ "#At\n",
+ "x=6\n",
+ "y=0\n",
+ "C1=-760*6**-1\n",
+ "\n",
+ "#Assuming Deflection to be max in portion CD and sustituting value of C1 in equation of slope we get\n",
+ "#EI*y=C2+C1*x+33.333*x**3*6**-1-20*3**-1*(x-2)**3-10*12**-1*(x-4)**4\n",
+ "#0=-126.667+33.333*x**2**-1-20*(x-2)**2\n",
+ "\n",
+ "#After rearranging and simplifying further we get\n",
+ "\n",
+ "#x**2-24*x+62=0\n",
+ "#From above equations\n",
+ "a=1\n",
+ "b=-24\n",
+ "c=62\n",
+ "\n",
+ "y=(b**2-4*a*c)**0.5\n",
+ "\n",
+ "x1=(-b+y)*(2*a)**-1\n",
+ "x2=(-b-y)*(2*a)**-1\n",
+ "\n",
+ "#Taking x2 into account\n",
+ "x=2.945 #m\n",
+ "C1=-126.667\n",
+ "C2=0\n",
+ "\n",
+ "y_max=(C2+C1*x+33.333*x**3*6**-1-20*3**-1*(x-2)**3)*X**-1 #mm\n",
+ "\n",
+ "#Max slope occurs at the ends\n",
+ "#At A,\n",
+ "#EI*(dy/dx)_A=-126.667\n",
+ "#At B\n",
+ "#EI*(dy/dx)_B=126.667+33.333*6**2*2**-1-20*4**2-10*2**3\n",
+ "#After simplifying Further we get\n",
+ "#EI*(dy/dx)_B=73.3273\n",
+ "\n",
+ "#Now Max slope is EI(dy/dx)_A=-126.667\n",
+ "#15000*(dy/dx)_=-126.667\n",
+ "\n",
+ "#Let Y=dy/dx\n",
+ "Y=-126.667*X**-1 #Radians\n",
+ "\n",
+ "#Result\n",
+ "print\"Maximum Deflection for Beam is\",round(y_max,4),\"mm\"\n",
+ "print\"Maximum Slope for beam is\",round(Y,4),\"radians\""
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Maximum Deflection for Beam is -0.0158 mm\n",
+ "Maximum Slope for beam is -0.0084 radians\n"
+ ]
+ }
+ ],
+ "prompt_number": 21
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 5.5.13,Page No.206"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "import numpy as np\n",
+ "\n",
+ "#Initilization of Variables\n",
+ "\n",
+ "E=2*10**8 #KN/m**2\n",
+ "I=450*10**-6 #m**4\n",
+ "L_AC=1 #m #Length of AC\n",
+ "L_CD=3 #m #Length of CD\n",
+ "L_DB=2 #m #Length of DB\n",
+ "w=10 #KN/m #u.d.l\n",
+ "\n",
+ "#Calculations\n",
+ "\n",
+ "#Let V_A & V_B be the reactions at A & B respectively\n",
+ "#V_A+V_B=30\n",
+ "\n",
+ "#Taking Moment at distance x from A\n",
+ "#M_x=17.5*x-10*(x-1)**2*2**-1+10*(x-4)**2*2**-1\n",
+ "#EI*(d**2/dx**2)=17.5*x-10*(x-1)**2*2**-1+10*(x-4)**2*2**-1\n",
+ "\n",
+ "#Now Integrating Above equation we get\n",
+ "#EI(dy/dx)=C1+17.5*x**2*2**-1-5*3**-1*(x-1)**2+5*3**-1*(x-4)**3\n",
+ "\n",
+ "#Again Integrating Above equation we get\n",
+ "#EI*y=C2+C1*x+17.5*x**3*6**-1-5*12**-1*(x-1)**4+5*12**-1*(x-4)**4\n",
+ "\n",
+ "#At \n",
+ "x=0\n",
+ "y=0\n",
+ "C2=0\n",
+ "\n",
+ "#At \n",
+ "x=6 \n",
+ "y=0\n",
+ "C1=(-17.5*x**3*6**-1+5*12**-1*(x-1)**4-5*12**-1*(x-4)**4)*x**-1\n",
+ "\n",
+ "# 1)Slope at A .i.e at x=0\n",
+ "#EI*(dy/dx)_A=C1=-62.708 #KN-m**2\n",
+ "#let (dy/dx)=X\n",
+ "X=C1*(E*I)**-1 #radiams\n",
+ "\n",
+ "#Deflection at mid-span\n",
+ "x=3 #m\n",
+ "#EI*y_centre=C1*x+17.5*x**3*6**-1-5*12**-1*(x-1)**2\n",
+ "y_centre=-(C1*x+17.5*x**3*6**-1-5*12**-1*(x-1)**4)*(E*I)**-1\n",
+ "\n",
+ "#Maximum Deflection\n",
+ "\n",
+ "#At point of Max deflection (dy/dx)=0\n",
+ "#Assuming it in portion CD\n",
+ "\n",
+ "#0=C1*x+17.5*x**2*2**-1-5*3**-1*(x-1)**3\n",
+ "\n",
+ "#Now Let\n",
+ "#F(x)=C1+17.5*x**2*2**-1-5*3**-1*(x-1)**3\n",
+ "\n",
+ "#Let F(x)=Y\n",
+ "#At \n",
+ "x=2.5\n",
+ "Y1=-(C1+17.5*x**2*2**-1-5*3**-1*(x-1)**3)\n",
+ "\n",
+ "#AT\n",
+ "x=3\n",
+ "Y2=-(C1+17.5*x**2*2**-1-5*3**-1*(x-1)**3)\n",
+ "\n",
+ "#At\n",
+ "x=2.9 #m\n",
+ "Y3=-(C1+17.5*x**2*2**-1-5*3**-1*(x-1)**3)\n",
+ "\n",
+ "#A curve may be plotted for (F(x) and the value for which F(x)=0 may be found\n",
+ "#For F(x)=0 for x=2.92 m\n",
+ "#Therefore y_max occur at x=2.92\n",
+ "\n",
+ "x=2.92 #m\n",
+ "y_max=(C1*x+17.5*x**3*6**-1-5*12**-1*(x-1)**4)*(E*I)**-1\n",
+ "\n",
+ "#Result\n",
+ "print\"Slope at A\",round(X,6),\"mm\"\n",
+ "print\"Deflection at mid-span\",round(y_centre,6),\"mm\"\n",
+ "print\"Maxmimum Deflection is\",round(y_max,5),\"mm\""
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Slope at A -0.000697 mm\n",
+ "Deflection at mid-span 0.001289 mm\n",
+ "Maxmimum Deflection is -0.00129 mm\n"
+ ]
+ }
+ ],
+ "prompt_number": 1
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 5.5.14,Page No.208"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "import numpy as np\n",
+ "\n",
+ "#Initilization of Variables\n",
+ "\n",
+ "L_AC=LDE=L_EB=1 #m #Length of AC\n",
+ "L_CD=2 #m #Length of CD\n",
+ "E=200 #KN/mm**2\n",
+ "I=60*10**6 #mm**4 #M.I\n",
+ "F_C=20 #KN #Force at C\n",
+ "F_E=30 #KN #Force at E\n",
+ "w=10 #KN/m #u.d.l\n",
+ "\n",
+ "#Calculations\n",
+ "\n",
+ "X=E*I*10**-6 #KN-m**2\n",
+ "\n",
+ "#Let V_A & V_B be the reactions at A & B respectively\n",
+ "#V_A+V_B=70\n",
+ "\n",
+ "#Taking Moment at distance x from A\n",
+ "#M_x=34*x-20*(x-1)-10*(x-1)**2*2**-1+10*(x-3)**2*2**-1-30*(x-4)\n",
+ "#EI*(d**2y/dx**2)=34*x-20*(x-1)-10*(x-1)**2*2**-1+10*(x-3)**2*2**-1-30*(x-4)\n",
+ "\n",
+ "#Now Integrating Above equation,we get\n",
+ "#EI*(dy/dx)=C1+17*x**2-10*(x-1)**2-5*3**-1*(x-1)**3+5*3**-1*(x-3)**3-15*(x-4)**2\n",
+ "\n",
+ "#Again Integrating Above equation,we get\n",
+ "#EI*y=C2+C1*x+17*3**-1*x**3-10*3**-1*(x-1)**3-5*12**-1*(x-1)**4+5*12**-1*(x-3)**4-5*(x-4)**3\n",
+ "\n",
+ "#At\n",
+ "x=0\n",
+ "y=0\n",
+ "C2=0\n",
+ "\n",
+ "#At \n",
+ "x=5 #m\n",
+ "y=0\n",
+ "C1=(-17*3**-1*x**3+10*3**-1*(x-1)**3+5*12**-1*(x-1)**4-5*12**-1*(x-3)**4+5*(x-4)**3)*5**-1\n",
+ "\n",
+ "#EI*y=C2+C1*x+17*3**-1*x**3-10*3**-1*(x-1)**3-5*12**-1*(x-1)**4+5*12**-1*(x-3)**4-5*(x-4)**3\n",
+ "C2=0\n",
+ "C1=-78\n",
+ "x=1\n",
+ "y_c=(-78*x+17*3**-1*x)*(X)**-1\n",
+ "\n",
+ "#EI*y_D=C2+C1*x+17*3**-1*x**3-10*3**-1*(x-1)**3-5*12**-1*(x-1)**4\n",
+ "x=3\n",
+ "C1-78\n",
+ "C2=0\n",
+ "y_D=(C2+C1*x+17*3**-1*x**3-10*3**-1*(x-1)**3-5*12**-1*(x-1)**4)*(X**-1)\n",
+ "\n",
+ "#EI*y_E=C2+C1*x+17*3**-1*x**3-10*3**-1*(x-1)**3-5*12**-1*(x-1)**4+5*12**-1*(x-3)**4\n",
+ "x=4\n",
+ "C1-78\n",
+ "C2=0\n",
+ "y_E=(C2+C1*x+17*3**-1*x**3-10*3**-1*(x-1)**3-5*12**-1*(x-1)**4+5*12**-1*(x-3)**4)*X**-1\n",
+ "\n",
+ "#Result\n",
+ "print\"Deflections at C\",round(y_c,5),\"mm\"\n",
+ "print\"Deflections at D\",round(y_D,5),\"mm\"\n",
+ "print\"Deflections at E\",round(y_E,4),\"mm\""
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Deflections at C -0.00603 mm\n",
+ "Deflections at D -0.00953 mm\n",
+ "Deflections at E -0.0061 mm\n"
+ ]
+ }
+ ],
+ "prompt_number": 45
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 5.5.15,Page No.209"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "import numpy as np\n",
+ "%matplotlib inline\n",
+ "\n",
+ "#Initilization of Variables\n",
+ "\n",
+ "E=200 #KN/mm**2 #Modulus of Elasticity\n",
+ "I=300*10**6 #mm\n",
+ "L_AB=L_BC=L_CD=L_DE=1 #m #Length of AB,BC,CD,DE respectively\n",
+ "F_A=20 #KN #Force at A\n",
+ "F_C=10 #KN #Force at C\n",
+ "w=30 #KN/m #u.d.l\n",
+ "\n",
+ "#Let E*I=X\n",
+ "X=E*I*10**-6 #KN-2**2\n",
+ "\n",
+ "#Calculations\n",
+ "\n",
+ "#Let V_E be the reactions at E\n",
+ "V_E=F_A+F_C+w*(L_BC+L_CD) #KN \n",
+ "\n",
+ "#Taking Moment at distance x\n",
+ "#EI*(d**2x/dy**2)=M=-20*x-30*(x-1)**2*2**-1-10*(x-2)+30*(x-3)**2*2**-1\n",
+ "\n",
+ "#Integrating above equation we get\n",
+ "#EI*(dy/dx)=C1-10*x**2-5*(x-1)**3-5*(x-2)**2+5*(x-3)**3\n",
+ "\n",
+ "#Again Integrating above equation\n",
+ "#EI*y=C2+C1*x-10*x**3*3**-1-5*(x-1)**4*4**-1-5*(x-3)**4*4**-1-5*3*(x-2)**3\n",
+ "\n",
+ "#At\n",
+ "#dy/dx=0\n",
+ "x=4 #m\n",
+ "C1=10*x**2+5*(x-1)**3+5*(x-2)**2-5*(x-3)**3\n",
+ "\n",
+ "#AT\n",
+ "x=4\n",
+ "y=0\n",
+ "C2=-C1*4+10*x**3*3**-1+5*(x-1)**4*4**-1-5*(x-3)**4*4**-1+5*3**-1*(x-2)**3\n",
+ "\n",
+ "#Max Deflection and Max slopes occurs at Free end in case of cantilever\n",
+ "y_max=y_A=C2*X**-1\n",
+ "\n",
+ "#EI*(dy/dx)_max=C1\n",
+ "#Let (dy/dx)=Y\n",
+ "Y=C1*X**-1 #radian\n",
+ "\n",
+ "#Now deflection at x=1 #m\n",
+ "C2=-913.333\n",
+ "C1=310\n",
+ "x=1\n",
+ "y_B=(C2+C1*x-10*x**3*3**-1)*X**-1\n",
+ "\n",
+ "#Now Deflection at x=2 #m\n",
+ "C2=-913.333\n",
+ "C1=310\n",
+ "x=2 #m\n",
+ "y_C=(C2+C1*x-10*x**3*3**-1-5*(x-1)**4*4**-1)*X**-1\n",
+ "\n",
+ "#Now Deflection at x=3 #m\n",
+ "C2=-913.333\n",
+ "C1=310\n",
+ "x=3 #m\n",
+ "y_D=(C2+C1*x-10*x**3*3**-1-5*(x-1)**4*4**-1-5*3**-1*(x-2)**3)*X**-1\n",
+ "\n",
+ "y_E=0\n",
+ "\n",
+ "#Result\n",
+ "print\"Max Deflection for Beam\",round(y_A,4),\"mm\"\n",
+ "print\"Max Slope for beam\",round(Y,5),\"radians\"\n",
+ "\n",
+ "#Plotting the ELastic Curve\n",
+ "\n",
+ "Y2=[y_E,y_D,y_C,y_B,y_A]\n",
+ "X2=[L_AB+L_BC+L_CD+L_DE,L_AB+L_BC+L_CD,L_AB+L_BC,L_AB,0]\n",
+ "Z2=[0,0,0,0,0]\n",
+ "plt.plot(X2,Y2,X2,Z2)\n",
+ "plt.xlabel(\"Length in mm\")\n",
+ "plt.ylabel(\"Deflection in mm\")\n",
+ "plt.show()"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Max Deflection for Beam -0.0152 mm\n",
+ "Max Slope for beam 0.00517 radians\n"
+ ]
+ },
+ {
+ "metadata": {},
+ "output_type": "display_data",
+ "png": "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\nHMidd97JRx99xKhRowgMDGT79u0AxMXFERMTQ3h4OH5+frz//vs8/vjjDB06lKioKCoqKpr9WUr7\npEQjUo8HHniAl19+mR07drBo0SJmzJjh+l1hYSGbN29m3bp1xMbGAvD++++zf/9+srKyePvtt9m6\ndSs2m41Zs2bRr18/0tLS+PjjjwE4evQoI0eO5IsvviA8PJzXXnut2vXPnhW3pmue7fvvv+fxxx/n\nm2++4dtvvyUpKYnNmzfzl7/8hQULFrjK7du3j08++YTk5GTuuusuHA4Hu3fvpmvXrnzwwQfn/OxE\noA3PdSbSHI4cOcLWrVu5/fbbXfvKysoAMwGcms04ODjYtfDTp59+ysSJEwFc647UpnPnzowfPx6A\n4cOHk5qaWmc8tV3zbP3792fQoEEADBo0iBtuuAGAwYMHk5OT4zpXVFQUHTt2ZPDgwVRWVjJ27FgA\nhgwZ4ioncq6UaETqUFlZSc+ePWtdE71z586un081d9pstiprddTVDOrl5eX6uUOHDg16XVXTNc/W\npUuXKuc9dczZ1zhzf1NiEWkIvToTqcOvfvUr+vfvz3vvvQeYX+y7d++u85hRo0axatUqDMOgqKiI\n9PR01+969OjBzz//3KgY3NVfR/2ApKUo0Yic4dixY/j6+ro+L730Eu+++y6vv/46oaGhDB48mOTk\nZFf5M9tPTv1822234ePjQ0hICFOnTuXKK6/kggsuAMz2nhtvvNHVGeDs42tapfDs/bX9fPYxtW2f\n+rmu89Z1bpHGUvdmETc4evQo3bp149ChQ4wYMYItW7bQp08fq8MSsYTaaETc4KabbqKkpISysjL+\n9Kc/KclIu6YajYiIuJXaaERExK2UaERExK2UaERExK2UaERExK2UaERExK2UaERExK3+P5k+A1z9\nL+mlAAAAAElFTkSuQmCC\n",
+ "text": [
+ "<matplotlib.figure.Figure at 0x5554430>"
+ ]
+ }
+ ],
+ "prompt_number": 1
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 5.5.16,Page No.211"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "import numpy as np\n",
+ "\n",
+ "#Initilization of Variables\n",
+ "\n",
+ "L_BD=L_CB=L_AC=2 #m #Length of BD,CB,AC\n",
+ "F_C=40 #KN #Force at C\n",
+ "F_D=10 #KN Force at D\n",
+ "L=6 #m spna of beam\n",
+ "\n",
+ "#EI is constant in this problem\n",
+ "\n",
+ "#Calculations\n",
+ "\n",
+ "#Let V_A & V_B be the reactions at A & B Respectively\n",
+ "#V_A+V_B=50\n",
+ "\n",
+ "#Taking Moment at Pt A\n",
+ "V_B=(F_D*L+F_C*L_AC)*(L_AC+L_CB)**-1\n",
+ "V_A=50-V_B\n",
+ "\n",
+ "#Now Taking Moment at distance x from A,M_x\n",
+ "#M_x=15*x-40*(x-2)+35*(x-4)\n",
+ "#EI*(d**2*y/dx**2)=15*x-40*(x-2)+35*(x-4)\n",
+ "\n",
+ "#Now Integrating above equation we get\n",
+ "#EI*(dy/dx)=C1+7.5*x**2-20*(x-2)**2+17.5(x-4)**2\n",
+ "\n",
+ "#Again Integrating above equation we get\n",
+ "#EI*y=C2+C1*x+2.5*x**2-20*3**-1*(x-2)**3+17.5*(x-4)**3*3**-1\n",
+ "\n",
+ "#At\n",
+ "x=0\n",
+ "y=0\n",
+ "#we get\n",
+ "C2=0\n",
+ "\n",
+ "#At\n",
+ "x=4 \n",
+ "y=0\n",
+ "#we get\n",
+ "C1=(2.5*4**3-20*3**-1*2**3)*4**-1\n",
+ "\n",
+ "#Now Deflection at C\n",
+ "x=2\n",
+ "C1=-26.667\n",
+ "C2=0\n",
+ "y_C=C2+C1*x+2.5*x**3\n",
+ "\n",
+ "#Now Deflection at D\n",
+ "C1=-21.667\n",
+ "C2=0\n",
+ "y_D=-26.667*6+2.5*6**3-20*3**-1*4**3+17.5*2**3*3**-1\n",
+ "\n",
+ "#Result\n",
+ "print\"Deflections Under Loads are:y_D\",round(y_D,4)\n",
+ "print\" :y_C\",round(y_C,2)"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Deflections Under Loads are:y_D -0.002\n",
+ " :y_C -33.33\n"
+ ]
+ }
+ ],
+ "prompt_number": 8
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 5.5.17,Page No.212"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "import numpy as np\n",
+ "\n",
+ "#Initilization of Variables\n",
+ "\n",
+ "L_BC=L_EB=2 #m #Length of BC & EB\n",
+ "E=200*10**6 #KN/m**2 #Modulus of eLasticity\n",
+ "I=45*10**-6 #mm**4 #M.I\n",
+ "L_DE=3 #m #Length of DE\n",
+ "L_AD=1 #m #Length of AD\n",
+ "w=20 #KN/m #u.d.l\n",
+ "L=8 #m #span of beam\n",
+ "F_C=30 #KN #Force at C\n",
+ "\n",
+ "#Calculations\n",
+ "\n",
+ "#Let V_A & V_B be the reactions at A & B respectively\n",
+ "#V_A+V_B=90\n",
+ "\n",
+ "#Taking Moment at A,M_A\n",
+ "V_B=(w*L_DE*(L_DE*2**-1+L_AD)+F_C*L)*(L_AD+L_DE+L_EB)**-1\n",
+ "V_A=90-V_B\n",
+ "\n",
+ "#Taking Moment at distance x\n",
+ "#M_x=25*x-20*(x-1)**2*2**-1+20*(x-4)**2*2**-1+65*(x-6)\n",
+ "\n",
+ "#Integrating above equation we get\n",
+ "#EI*(d**2*y/dx**2)=25*x-10*(x-1)**2+10*(x-4)**2+65*(x-6)\n",
+ "\n",
+ "#again Integrating above equation we get\n",
+ "#EI*(dy/dx)=C1+25*x**2*2**-1-10*3**-1*(x-1)**3+10*3**-1*(x-4)**2+65*2**-1*(x-6)**2\n",
+ "\n",
+ "#again Integrating above equation we get\n",
+ "#EI*y=C2+C1*x+25*6**-1*x**3-10*12**-1*(x-1)**4+10*12**-1*(x-4)**4+65*6**-1*(x-6)**3\n",
+ "\n",
+ "x=0\n",
+ "y=0\n",
+ "#Sub these values in above equation,we get\n",
+ "C2=0\n",
+ "\n",
+ "x=6 #m\n",
+ "y=0\n",
+ "C1=-(25*6**-1*6**3-10*12**-1*5**4+10*12**-1*2**4)*6**-1\n",
+ "\n",
+ "#deflection at C is given by\n",
+ "x=8\n",
+ "y_c=(C2+C1*x+25*6**-1*x**3-10*12**-1*(x-1)**4+10*12**-1*(x-4)**4+65*6**-1*(x-6)**3)*(E*I)**-1\n",
+ "\n",
+ "#Assuming y is max in the portion DE,then\n",
+ "#(dy/dx)=0 for that point\n",
+ "\n",
+ "#0=-65.417+25*2**-1*x**2-10*3**-1*x(-1)**3\n",
+ "\n",
+ "#Let F(x)=-65.417+25*2**-1*x**2-10*3**-1*x(-1)**3\n",
+ "#Let z=F(x)\n",
+ "\n",
+ "#AT \n",
+ "x=3\n",
+ "z=-65.417+25*2**-1*x**2-10*3**-1*(x-1)**3\n",
+ "\n",
+ "x=2.5\n",
+ "z1=-65.417+25*2**-1*x**2-10*3**-1*(x-1)**3\n",
+ "\n",
+ "x=2.4\n",
+ "z2=-65.417+25*2**-1*x**2-10*3**-1*(x-1)**3\n",
+ "\n",
+ "#The assumption is max in portion DE\n",
+ "x=2.46\n",
+ "y_max=(-65.417*x+25*6**-1*x**3-10*12**-1*1.46**4)*(E*I)**-1\n",
+ "\n",
+ "#Result\n",
+ "print\"Deflection at free end C\",round(y_c,4),\"mm\"\n",
+ "print\"Max Deflection between A and B\",round(y_max,4),\"mm\""
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Deflection at free end C -0.0101 mm\n",
+ "Max Deflection between A and B -0.0114 mm\n"
+ ]
+ }
+ ],
+ "prompt_number": 1
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 5.5.18,Page No.213"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "import numpy as np\n",
+ "\n",
+ "#Initilization of Variables\n",
+ "\n",
+ "L_DB=L_AC=L_ED=2 #m #Length of DB & AC\n",
+ "L_CD=4 #m #Length of CD\n",
+ "L_CE=2 #m #Length of CE\n",
+ "F_A=40 #KN #Force at C\n",
+ "F_B=20 #KN #Force at A\n",
+ "E=200*10**6 #KN/mm**2 #Modulus of Elasticity\n",
+ "I=50*10**-6 #m**4 #M.I\n",
+ "\n",
+ "#Calculations\n",
+ "\n",
+ "#LEt V_C & V_D be the reactions at C & D respectively\n",
+ "#V_C+V_D=60\n",
+ "\n",
+ "#Taking Moment At D,M_D\n",
+ "V_C=-(-F_A*(L_AC+L_CE+L_ED)+F_B*L_DB)*L_CD**-1\n",
+ "V_D=60-V_C\n",
+ "\n",
+ "#Now Taking Moment at Distance x from A,\n",
+ "#M_x=-40*x+50*(x-2)+10*(x-6)\n",
+ "\n",
+ "#EI*(d**2*y/dx**2)=-40*x+50*(x-2)+10*(x-6)\n",
+ "\n",
+ "#Now Integrating above Equation we get\n",
+ "#EI*(dy/dx)=C1+20*x**2-25*(x-2)+5*(x-6)**2\n",
+ "\n",
+ "#Again Integrating above Equation we get\n",
+ "#EI*y=C2+C1*x-20*3**-1*x**3+25*3**-1*(x-2)**3+5*3**-1*(x-6)**3\n",
+ "\n",
+ "#At\n",
+ "x=0\n",
+ "y=0\n",
+ "#C2+2*C1=-53.33 ...............(1)\n",
+ "\n",
+ "#At \n",
+ "x=6\n",
+ "y=0\n",
+ "#C2+6*C1=906.667 ...............(2)\n",
+ "\n",
+ "#Subtracting Equation 1 from 2 we get\n",
+ "C1=853.333*4**-1\n",
+ "C2=53.333-2*C1\n",
+ "x=0\n",
+ "y_A=(C2+C1*x-20*3**-1*x**3+25*3**-1*(x-2)**3+5*3**-1*(x-6)**3)*(E*I)**-1\n",
+ "\n",
+ "#Answer For y_A is incorrect in textbook\n",
+ "\n",
+ "#At Mid-span\n",
+ "C1=853.333*4**-1\n",
+ "C2=53.333-2*C1\n",
+ "x=4\n",
+ "y_E=(C2+C1*x-20*3**-1*x**3+25*3**-1*(x-2)**3+5*3**-1*(x-6)**3)*(E*I)**-1\n",
+ "\n",
+ "#Answer For y_E is incorrect in textbook\n",
+ "\n",
+ "#At B\n",
+ "C1=853.333*4**-1\n",
+ "C2=53.333-2*C1\n",
+ "x=8\n",
+ "y_B=(C2+C1*x-20*3**-1*x**3+25*3**-1*(x-2)**3+5*3**-1*(x-6)**3)*(E*I)**-1\n",
+ "\n",
+ "\n",
+ "#Result\n",
+ "print\"Deflection relative to the level of the supports:at End A\",round(y_A,4),\"mm\"\n",
+ "print\" :at End B\",round(y_B,4),\"mm\"\n",
+ "print\" :at Centre of CD\",round(y_E,4),\"mm\""
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Deflection relative to the level of the supports:at End A -0.08 mm\n",
+ " :at End B -0.0267 mm\n",
+ " :at Centre of CD 0.0107 mm\n"
+ ]
+ }
+ ],
+ "prompt_number": 8
+ }
+ ],
+ "metadata": {}
+ }
+ ]
+}
\ No newline at end of file diff --git a/Strength_Of_Materials_by_S_S_Bhavikatti/chapter_06.ipynb b/Strength_Of_Materials_by_S_S_Bhavikatti/chapter_06.ipynb new file mode 100644 index 00000000..61dcdcc2 --- /dev/null +++ b/Strength_Of_Materials_by_S_S_Bhavikatti/chapter_06.ipynb @@ -0,0 +1,1518 @@ +{
+ "metadata": {
+ "name": "chapter 06.ipynb"
+ },
+ "nbformat": 3,
+ "nbformat_minor": 0,
+ "worksheets": [
+ {
+ "cells": [
+ {
+ "cell_type": "heading",
+ "level": 1,
+ "metadata": {},
+ "source": [
+ "Chapter No.6:Torsion"
+ ]
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 6.6.1,Page No.225"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "import numpy as np\n",
+ "\n",
+ "#Initilization of Variables\n",
+ "\n",
+ "L=10000 #mm #Length of solid shaft\n",
+ "d=100 #mm #Diameter of shaft\n",
+ "n=150 #rpm\n",
+ "P=112.5*10**6 #N-mm/sec #Power Transmitted\n",
+ "G=82*10**3 #N/mm**2 #modulus of Rigidity\n",
+ "\n",
+ "#Calculations\n",
+ "\n",
+ "J=pi*d**4*(32)**-1 #mm**3 #Polar Modulus\n",
+ "T=P*60*(2*pi*n)**-1 #N-mm #Torsional moment\n",
+ "\n",
+ "r=50 #mm #Radius\n",
+ "\n",
+ "q_s=T*r*J**-1 #N/mm**2 #Max shear stress intensity\n",
+ "Theta=T*L*(G*J)**-1 #angle of twist\n",
+ "\n",
+ "#Result\n",
+ "print\"Max shear stress intensity\",round(q_s,2),\"N/mm**2\"\n",
+ "print\"Angle of Twist\",round(Theta,3),\"radian\""
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Max shear stress intensity 36.48 N/mm**2\n",
+ "Angle of Twist 0.089 radian\n"
+ ]
+ }
+ ],
+ "prompt_number": 4
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 6.6.2,Page No.226"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "import numpy as np\n",
+ "\n",
+ "#Initilization of Variables\n",
+ "\n",
+ "P=440*10**6 #N-m/sec #Power transmitted\n",
+ "n=280 #rpm\n",
+ "theta=pi*180**-1 #radian #angle of twist\n",
+ "L=1000 #mm #Length of solid shaft\n",
+ "q_s=40 #N/mm**2 #Max torsional shear stress\n",
+ "G=84*10**3 #N/mm**2 #Modulus of rigidity\n",
+ "\n",
+ "#Calculations\n",
+ "\n",
+ "#P=2*pi*n*T*(60)**-1 #Equation of Power transmitted\n",
+ "T=P*60*(2*pi*n)**-1 #N-mm #torsional moment\n",
+ "\n",
+ "#From Consideration of shear stress\n",
+ "d1=(T*16*(pi*40)**-1)**0.333333 \n",
+ "\n",
+ "#From Consideration of angle of twist\n",
+ "d2=(T*L*32*180*(pi*84*10**3*pi)**-1)**0.25\n",
+ "\n",
+ "#result\n",
+ "print\"Diameter of solid shaft is\",round(d1,2),\"mm\""
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Diameter of solid shaft is 124.09 mm\n"
+ ]
+ }
+ ],
+ "prompt_number": 21
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 6.6.3,Page No.227"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "import numpy as np\n",
+ "\n",
+ "#Initilization of Variables\n",
+ "\n",
+ "G=80*10**3 #N/mm**2 #Modulus of rigidity\n",
+ "q_s=80 #N/mm**2 #Max sheare stress\n",
+ "P=736*10**6 #N-mm/sec #Power transmitted\n",
+ "n=200\n",
+ "\n",
+ "#Calculations\n",
+ "\n",
+ "T=P*60*(2*pi*n)**-1 #N-mm #Torsional moment\n",
+ "\n",
+ "#Now From consideration of angle of twist\n",
+ "theta=pi*180**-1\n",
+ "#L=15*d\n",
+ "\n",
+ "d=(T*32*180*15*(pi**2*G)**-1)**0.33333\n",
+ "\n",
+ "#Now corresponding stress at the surface is\n",
+ "q_s2=T*32*d*(pi*2*d**4)**-1\n",
+ "\n",
+ "#Result\n",
+ "print\"Max diameter required is\",round(d,2),\"mm\"\n",
+ "print\"Corresponding shear stress is\",round(q_s2,2),\"N/mm**2\""
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Max diameter required is 156.66 mm\n",
+ "Corresponding shear stress is 46.55 N/mm**2\n"
+ ]
+ }
+ ],
+ "prompt_number": 27
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 6.6.4,Page No.228"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "import numpy as np\n",
+ "\n",
+ "#Initilization of Variables\n",
+ "\n",
+ "d=25 #mm #Diameter of steel bar\n",
+ "p=50*10**3 #N #Pull\n",
+ "dell_1=0.095 #mm #Extension of bar\n",
+ "l=200 #mm #Guage Length\n",
+ "T=200*10**3 #N-mm #Torsional moment\n",
+ "theta=0.9*pi*180**-1 #angle of twist\n",
+ "L=250 #mm Length of steel bar\n",
+ "\n",
+ "#Calculations\n",
+ "\n",
+ "A=pi*4**-1*d**2 #Area of steel bar #mm**2\n",
+ "E=p*l*(dell_1*A)**-1 #N/mm**2 #Modulus of elasticity \n",
+ "\n",
+ "J=pi*32**-1*d**4 #mm**4 #Polar modulus\n",
+ "\n",
+ "G=T*L*(theta*J)**-1 #Modulus of rigidity #N/mm**2\n",
+ "\n",
+ "#Now from the relation of Elastic constants\n",
+ "mu=E*(2*G)**-1-1\n",
+ "\n",
+ "#result\n",
+ "print\"The Poissoin's ratio is\",round(mu,3)"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "The Poissoin's ratio is 0.292\n"
+ ]
+ }
+ ],
+ "prompt_number": 30
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 6.6.5,Page No.229"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "import numpy as np\n",
+ "\n",
+ "#Initilization of Variables\n",
+ "\n",
+ "L=6000 #mm #Length of circular shaft\n",
+ "d1=100 #mm #Outer Diameter\n",
+ "d2=75 #mm #Inner Diameter\n",
+ "R=100*2**-1 #Radius of shaft\n",
+ "T=10*10**6 #N-mm #Torsional moment\n",
+ "G=80*10**3 #N/mm**2 #Modulus of Rigidity\n",
+ "\n",
+ "#Calculations\n",
+ "\n",
+ "J=pi*32**-1*(d1**4-d2**4) #mm**4 #Polar Modulus \n",
+ "\n",
+ "#Max Shear stress produced\n",
+ "q_s=T*R*J**-1 #N/mm**2\n",
+ "\n",
+ "#Angle of twist\n",
+ "theta=T*L*(G*J)**-1 #Radian\n",
+ "\n",
+ "#Result\n",
+ "print\"MAx shear stress produced is\",round(q_s,2),\"N/mm**2\"\n",
+ "print\"Angle of Twist is\",round(theta,2),\"Radian\""
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "MAx shear stress produced is 74.5 N/mm**2\n",
+ "Angle of Twist is 0.11 Radian\n"
+ ]
+ }
+ ],
+ "prompt_number": 1
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 6.6.6,Page No.229"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "import numpy as np\n",
+ "\n",
+ "#Initilization of Variables\n",
+ "\n",
+ "d1=200 #mm #External Diameter of shaft\n",
+ "t=25 #mm #Thickness of shaft\n",
+ "n=200 #rpm\n",
+ "theta=0.5*pi*180**-1 #Radian #angle of twist\n",
+ "L=2000 #mm #Length of shaft\n",
+ "G=84*10**3 #N/mm**2\n",
+ "d2=d1-2*t #mm #Internal Diameter of shaft\n",
+ "\n",
+ "#Calculations\n",
+ "\n",
+ "J=pi*32**-1*(d1**4-d2**4) #mm**4 #Polar Modulus \n",
+ "\n",
+ "#Torsional moment\n",
+ "T=G*J*theta*L**-1 #N/mm**2 \n",
+ "\n",
+ "#Power Transmitted\n",
+ "P=2*pi*n*T*60**-1*10**-6 #N-mm\n",
+ "\n",
+ "#Max shear stress transmitted\n",
+ "q_s=G*theta*(d1*2**-1)*L**-1 #N/mm**2 \n",
+ "\n",
+ "#Result\n",
+ "print\"Power Transmitted is\",round(P,2),\"N-mm\"\n",
+ "print\"Max Shear stress produced is\",round(q_s,2),\"N/mm**2\""
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Power Transmitted is 824.28 N-mm\n",
+ "Max Shear stress produced is 36.65 N/mm**2\n"
+ ]
+ }
+ ],
+ "prompt_number": 14
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 6.6.7,Page No.230"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "import numpy as np\n",
+ "\n",
+ "#Initilization of Variables\n",
+ "\n",
+ "P=3750*10**6 #N-mm/sec\n",
+ "n=240 #Rpm\n",
+ "q_s=160 #N/mm**2 #Max shear stress\n",
+ "\n",
+ "#Calculations\n",
+ "\n",
+ "#d2=0.8*d2 #mm #Internal Diameter of shaft\n",
+ "\n",
+ "#J=pi*32**-1*(d1**4-d2**4) #mm**4 #Polar modulus\n",
+ "#After substituting value in above Equation we get\n",
+ "#J=0.05796*d1**4\n",
+ "\n",
+ "T=P*60*(2*pi*n)**-1 #N-mm #Torsional moment\n",
+ "\n",
+ "#Now from Torsion Formula\n",
+ "#T*J**-1=q_s*R**-1 ......................................(1)\n",
+ "\n",
+ "#But R=d1*2**-1 \n",
+ "\n",
+ "#Now substituting value of R and J in Equation (1) we get\n",
+ "d1=(T*(0.05796*q_s*2)**-1)**0.33333\n",
+ "\n",
+ "d2=d1*0.8\n",
+ "\n",
+ "#Result\n",
+ "print\"The size of the Shaft is:d1\",round(d1,3),\"mm\"\n",
+ "print\" :d2\",round(d2,3),\"mm\""
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "The size of the Shaft is:d1 200.362 mm\n",
+ " :d2 160.289 mm\n"
+ ]
+ }
+ ],
+ "prompt_number": 22
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 6.6.8,Page No.231"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "import numpy as np\n",
+ "\n",
+ "#Initilization of Variables\n",
+ "\n",
+ "P=245*10**6 #N-mm/sec #Power transmitted\n",
+ "n=240 #rpm\n",
+ "q_s=40 #N/mm**2 #Shear stress\n",
+ "theta=pi*180**-1 #radian #Angle of twist\n",
+ "L=1000 #mm #Length of shaft\n",
+ "G=80*10**3 #N/mm**2\n",
+ "\n",
+ "#Tmax=1.5*T\n",
+ "\n",
+ "#Calculations\n",
+ "\n",
+ "T=P*60*(2*pi*n)**-1 #N-mm #Torsional Moment\n",
+ "Tmax=1.5*T\n",
+ "\n",
+ "#Now For Solid shaft\n",
+ "#J=pi*32*d**4\n",
+ "\n",
+ "#Now from the consideration of shear stress we get\n",
+ "#T*J**-1=q_s*(d*2**-1)**-1\n",
+ "#After substituting value in above Equation we get\n",
+ "#T=pi*16**-1*d**3*q_s\n",
+ "\n",
+ "#Designing For max Torque\n",
+ "d=(Tmax*16*(pi*40)**-1)**0.33333 #mm #Diameter of shaft\n",
+ "\n",
+ "#For max Angle of Twist\n",
+ "#Tmax*J**-1=G*theta*L**-1 \n",
+ "#After substituting value in above Equation we get\n",
+ "d2=(Tmax*32*180*L*(pi**2*G)**-1)**0.25\n",
+ "\n",
+ "#For Hollow Shaft\n",
+ "\n",
+ "#d1_2=Outer Diameter\n",
+ "#d2_2=Inner Diameter\n",
+ "\n",
+ "#d2_2=0.5*d1_2\n",
+ "\n",
+ "# Polar modulus\n",
+ "#J=pi*32**-1*(d1_2**4-d2_2**4)\n",
+ "#After substituting values we get\n",
+ "#J=0.092038*d1_2**4\n",
+ "\n",
+ "#Now from the consideration of stress\n",
+ "#Tmax*J**-1=q_s*(d1_2*2**-1)**-1\n",
+ "#After substituting values and further simplifying we get\n",
+ "d1_2=(Tmax*(0.092038*2*q_s)**-1)**0.33333\n",
+ "\n",
+ "#Now from the consideration of angle of twist\n",
+ "#Tmax*J**-1=G*theta*L**-1\n",
+ "#After substituting values and further simplifying we get\n",
+ "d1_3=(Tmax*180*L*(0.092038*G*pi)**-1)**0.25\n",
+ "\n",
+ "d2_2=0.5*d1_2\n",
+ "\n",
+ "#result\n",
+ "print\"Diameter of shaft is:For solid shaft:d\",round(d,2),\"mm\"\n",
+ "print\" :For Hollow shaft:d1_2\",round(d1_2,3),\"mm\"\n",
+ "print\" : :d2_2\",round(d2_2,3),\"mm\" "
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Diameter of shaft is:For solid shaft:d 123.01 mm\n",
+ " :For Hollow shaft:d1_2 125.69 mm\n",
+ " : :d2_2 62.845 mm\n"
+ ]
+ }
+ ],
+ "prompt_number": 7
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 6.6.11,Page No.235"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "import numpy as np\n",
+ "\n",
+ "#Initilization of Variables\n",
+ "\n",
+ "P=250*10**6 #N-mm/sec #Power transmitted\n",
+ "n=100 #rpm\n",
+ "q_s=75 #N/mm**2 #Shear stress\n",
+ "\n",
+ "#Calculations\n",
+ "\n",
+ "#From Equation of Power we have\n",
+ "T=P*60*(2*pi*n)**-1 #N-mm #Torsional moment\n",
+ "\n",
+ "#Now from torsional moment equation we have\n",
+ "#T=j*q_s*(d/2**-1)**-1\n",
+ "#After substituting values in above equation and further simplifying we get\n",
+ "#T=pi*16**-1**d**3*q_s\n",
+ "d=(T*16*(pi*q_s)**-1)**0.3333 #mm #Diameter of solid shaft\n",
+ "\n",
+ "#PArt-2\n",
+ "\n",
+ "#Let d1 and d2 be the outer and inner diameter of hollow shaft\n",
+ "#d2=0.6*d1\n",
+ "\n",
+ "#Again from torsional moment equation we have\n",
+ "#T=pi*32**-1*(d1**4-d2**4)*q_s*(d1/2)**-1\n",
+ "d1=(T*16*(pi*(1-0.6**4)*q_s)**-1)**0.33333\n",
+ "d2=0.6*d1\n",
+ "\n",
+ "#Cross sectional area of solid shaft\n",
+ "A1=pi*4**-1*d**2 #mm**2\n",
+ "\n",
+ "#cross sectional area of hollow shaft\n",
+ "A2=pi*4**-1*(d1**2-d2**2)\n",
+ "\n",
+ "#Now percentage saving in weight\n",
+ "#Let W be the percentage saving in weight\n",
+ "W=(A1-A2)*100*A1**-1\n",
+ "\n",
+ "#Result\n",
+ "print\"Percentage saving in Weight is\",round(W,3),\"%\"\n",
+ "print\"Size of shaft is:solid shaft:d\",round(d,3),\"mm\"\n",
+ "print\" :Hollow shaft:d1\",round(d1,3),\"mm\"\n",
+ "print\" : :d2\",round(d2,3),\"mm\""
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Percentage saving in Weight is 29.735 %\n",
+ "Size of shaft is:solid shaft:d 117.418 mm\n",
+ " :Hollow shaft:d1 123.031 mm\n",
+ " : :d2 73.818 mm\n"
+ ]
+ }
+ ],
+ "prompt_number": 2
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 6.6.12,Page No.237"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "import numpy as np\n",
+ "\n",
+ "#Initilization of Variables\n",
+ "d=100 #mm #Diameter of solid shaft\n",
+ "d1=100 #mm #Outer Diameter of hollow shaft\n",
+ "d2=50 #mm #Inner Diameter of hollow shaft\n",
+ "\n",
+ "#Calculations\n",
+ "\n",
+ "#Torsional moment of solid shaft\n",
+ "#T_s=J*q_s*(d*2**-1)**-1 \n",
+ "#After substituting values in above equation and further simplifying we get\n",
+ "#T_s=pi*16*d**3*q_s ...............(1)\n",
+ "\n",
+ "#torsional moment for hollow shaft is\n",
+ "#T_h=J*q_s*(d1**4-d2**4)**-1*(d1*2**-1)\n",
+ "#After substituting values in above equation and further simplifying we get\n",
+ "#T_h=pi*32**-1*2*d1**-1*(d1**4-d2**4)*q_s ...........(2)\n",
+ "\n",
+ "#Dividing Equation 2 by 1 we get\n",
+ "#Let the ratio of T_h*T_s**-1 Be X\n",
+ "X=1-0.5**4\n",
+ "\n",
+ "#Loss in strength \n",
+ "#Let s be the loss in strength\n",
+ "#s=T_s*T_h*100*T_s**-1\n",
+ "#After substituting values in above equation and further simplifying we get\n",
+ "s=(1-0.9375)*100\n",
+ "\n",
+ "#Weight Ratio \n",
+ "#Let w be the Weight ratio\n",
+ "#w=W_h*W_s**-1\n",
+ "\n",
+ "A_h=pi*32**-1*(d1**2-d2**2) #mm**2 #Area of Hollow shaft\n",
+ "A_s=pi*32**-1*d**2 #mm**2 #Area of solid shaft\n",
+ "\n",
+ "w=A_h*A_s**-1 \n",
+ "\n",
+ "#Result\n",
+ "print\"Loss in strength is\",round(s,2)\n",
+ "print\"Weight ratio is\",round(w,2)"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Loss in strength is 6.25\n",
+ "Weight ratio is 0.75\n"
+ ]
+ }
+ ],
+ "prompt_number": 4
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 6.6.13,Page No.239"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "import numpy as np\n",
+ "\n",
+ "#Initilization of Variables\n",
+ "T=8 #KN-m #Torque \n",
+ "d=100 #mm #Diameter of portion AB\n",
+ "d1=100 #mm #External Diameter of Portion BC\n",
+ "d2=75 #mm #Internal Diameter of Portion BC\n",
+ "G=80 #KN/mm**2 #Modulus of Rigidity\n",
+ "L1=1500 #mm #Radial Distance of Portion AB\n",
+ "L2=2500 #mm #Radial Distance ofPortion BC\n",
+ "\n",
+ "#Calculations\n",
+ "\n",
+ "R=d*2**-1 #mm #Radius of shaft\n",
+ "\n",
+ "#For Portion AB,Polar Modulus\n",
+ "J1=pi*32**-1*d**4 #mm**4 \n",
+ "\n",
+ "#For Portion BC,Polar modulus \n",
+ "J2=pi*32**-1*(d1**4-d2**4) #mm**4\n",
+ "\n",
+ "#Now Max stress occurs in portion BC since max radial Distance is sme in both cases\n",
+ "q_max=T*J2**-1*R*10**6 #N/mm**2 \n",
+ "\n",
+ "#Let theta1 be the rotation in Portion AB and theta2 be the rotation in portion BC\n",
+ "theta1=T*L1*(G*J1)**-1 #Radians\n",
+ "theta2=T*L2*(G*J2)**-1 #Radians\n",
+ "\n",
+ "#Total Rotational at end C\n",
+ "theta=(theta1+theta2)*10**3 #Radians\n",
+ "\n",
+ "#Result\n",
+ "print\"Max stress induced is\",round(q_max,2),\"N/mm**2\"\n",
+ "print\"Angle of Twist is\",round(theta,3),\"radians\""
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Max stress induced is 59.6 N/mm**2\n",
+ "Angle of Twist is 0.053 radians\n"
+ ]
+ }
+ ],
+ "prompt_number": 23
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 6.6.14,Page No.240"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "import numpy as np\n",
+ "\n",
+ "#Initilization of Variables\n",
+ "\n",
+ "q_b=80 #N/mm**2 #Shear stress in Brass\n",
+ "q_s=100 #N/mm**2 #Shear stress in Steel\n",
+ "G_b=40*10**3 #N/mm**2 \n",
+ "G_s=80*10**3 \n",
+ "L_b=1000 #mm #Length of brass shaft\n",
+ "L_s=1200 #mm #Length of steel shaft\n",
+ "d1=80 #mm #Diameter of brass shaft\n",
+ "d2=60 #mm #Diameter of steel shaft\n",
+ "\n",
+ "#Calculations\n",
+ "\n",
+ "#Polar modulus of brass rod\n",
+ "J_b=pi*32**-1*d1**4 #mm**4 \n",
+ "\n",
+ "#Polar modulus of steel rod\n",
+ "J_s=pi*32**-1*d2**4 #mm**4\n",
+ "\n",
+ "#Considering bras Rod:AB\n",
+ "T1=J_b*q_b*(d1*2**-1)**-1 #N-mm \n",
+ "\n",
+ "#Considering Steel Rod:BC\n",
+ "T2=J_s*q_s*(d2*2**-1)**-1 #N-mm\n",
+ "\n",
+ "#Max Torque that can be applied\n",
+ "T2\n",
+ "\n",
+ "#Let theta_b and theta_s be the rotations in Brass and steel respectively\n",
+ "theta_b=T2*L_b*(G_b*J_b)**-1 #Radians\n",
+ "theta_s=T2*L_s*(G_s*J_s)**-1 #Radians\n",
+ "\n",
+ "theta=theta_b+theta_s #Radians #Rotation of free end\n",
+ "\n",
+ "#Result\n",
+ "print\"Total of free end is\",round(theta,3),\"Radians\""
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Total of free end is 0.076 Radians\n"
+ ]
+ }
+ ],
+ "prompt_number": 36
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 6.6.15,Page No.241"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "import numpy as np\n",
+ "\n",
+ "#Initilization of Variables\n",
+ "\n",
+ "G=80*10**3 #N/mm**2 #Modulus of Rigidity\n",
+ "d1=100 #mm #Outer diameter of hollow shft\n",
+ "d2=80 #mm #Inner diameter of hollow shaft\n",
+ "d=80 #mm #diameter of Solid shaft\n",
+ "d3=60 #mm #diameter of Solid shaft having L=0.5m\n",
+ "L1=300 #mm #Length of Hollow shaft\n",
+ "L2=400 #mm #Length of solid shaft\n",
+ "L3=500 #mm #LEngth of solid shaft of diameter 60mm\n",
+ "T1=2*10**6 #N-mm #Torsion in Shaft AB\n",
+ "T2=1*10**6 #N-mm #Torsion in shaft BC\n",
+ "T3=1*10**6 #N-mm #Torsion in shaft CD\n",
+ "\n",
+ "#Calculations\n",
+ "\n",
+ "#Now Polar modulus of section AB\n",
+ "J1=pi*32**-1*(d1**4-d2**4) #mm**4 \n",
+ "\n",
+ "#Polar modulus of section BC\n",
+ "J2=pi*32**-1*d**4 #mm**4\n",
+ "\n",
+ "#Polar modulus of section CD\n",
+ "J3=pi*32**-1*d3**4 #mm**4\n",
+ "\n",
+ "#Now angle of twist of AB\n",
+ "theta1=T1*L1*(G*J1)**-1 #radians\n",
+ "\n",
+ "#Angle of twist of BC\n",
+ "theta2=T2*L2*(G*J2)**-1 #radians\n",
+ "\n",
+ "#Angle of twist of CD\n",
+ "theta3=T3*L3*(G*J3)**-1 #radians\n",
+ "\n",
+ "#Angle of twist\n",
+ "theta=theta1-theta2+theta3 #Radians\n",
+ "\n",
+ "#Shear stress in AB From Torsion Equation\n",
+ "q_s1=T1*(d1*2**-1)*J1**-1 #N/mm**2 \n",
+ "\n",
+ "#Shear stress in BC\n",
+ "q_s2=T2*(d*2**-1)*J2**-1 #N/mm**2 \n",
+ "\n",
+ "#Shear stress in CD\n",
+ "q_s3=T3*(d3*2**-1)*J3**-1 #N-mm**2\n",
+ "\n",
+ "#As max shear stress occurs in portion CD,so consider CD\n",
+ "\n",
+ "#Result\n",
+ "print\"Angle of twist at free end is\",round(theta,5),\"Radian\"\n",
+ "print\"Max Shear stress\",round(q_s3,2),\"N/mm**2\""
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Angle of twist at free end is 0.00496 Radian\n",
+ "Max Shear stress 23.58 N/mm**2\n"
+ ]
+ }
+ ],
+ "prompt_number": 2
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 6.6.16,Page No.242"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "import numpy as np\n",
+ "\n",
+ "#Initilization of Variables\n",
+ "\n",
+ "L=1000 #mm #Length of bar\n",
+ "L1=600 #mm #Length of Bar AB\n",
+ "L2=400 #mm #Length of Bar BC\n",
+ "d1=60 #mm #Outer Diameter of bar BC\n",
+ "d2=30 #mm #Inner Diameter of bar BC\n",
+ "d=60 #mm #Diameter of bar AB\n",
+ "T=2*10**6 #N-mm #Total Torque\n",
+ "\n",
+ "#Calculations\n",
+ "\n",
+ "#Polar Modulus of Portion AB\n",
+ "J1=pi*32**-1*d**4 #mm*4\n",
+ "\n",
+ "#Polar Modulus of Portion BC\n",
+ "J2=pi*32**-1*(d1**4-d2**4) #mm**4\n",
+ "\n",
+ "#Let T1 be the torque resisted by bar AB and T2 be torque resisted by Bar BC\n",
+ "#Let theta1 and theta2 be the rotation of shaft in portion AB & BC\n",
+ "\n",
+ "#theta1=T1*L1*(G*J1)**-1 #radians\n",
+ "#After substituting values and further simplifying we get \n",
+ "#theta1=32*600*T1*(pi*60**4*G)**-1\n",
+ "\n",
+ "#theta2=T2*L*(J2*G)**-1 #Radians\n",
+ "#After substituting values and further simplifying we get \n",
+ "#theta2=32*400*T2*(pi*60**4*(1-0.5**4)*G)**-1 \n",
+ "\n",
+ "#Now For consistency of Deformation,theta1=theta2\n",
+ "#After substituting values and further simplifying we get \n",
+ "#T1=0.7111*T2 ..................................................(1)\n",
+ "\n",
+ "#But T1+T2=T=2*10**6 ...........................................(2)\n",
+ "#Substituting value of T1 in above equation\n",
+ "\n",
+ "T2=T*(0.7111+1)**-1\n",
+ "T1=0.71111*T2\n",
+ "\n",
+ "#Max stress in Portion AB\n",
+ "q_s1=T1*(d*2**-1)*(J1)**-1 #N/mm**2\n",
+ "\n",
+ "#Max stress in Portion BC\n",
+ "q_s2=T2*(d1*2**-1)*J2**-1 #N/mm**2 \n",
+ "\n",
+ "#Result\n",
+ "print\"Stresses Developed in Portion:AB\",round(q_s1,2),\"N/mm**2\"\n",
+ "print\" :BC\",round(q_s2,2),\"N/mm**2\""
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Stresses Developed in Portion:AB 19.6 N/mm**2\n",
+ " :BC 29.4 N/mm**2\n"
+ ]
+ }
+ ],
+ "prompt_number": 1
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 6.6.17,Page No.243"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "import numpy as np\n",
+ "\n",
+ "#Initilization of Variables\n",
+ "\n",
+ "d1=80 #mm #External Diameter of Brass tube\n",
+ "d2=50 #mm #Internal Diameter of Brass tube\n",
+ "d=50 #mm #Diameter of steel Tube\n",
+ "G_b=40*10**3 #N/mm**2 #Modulus of Rigidity of brass tube\n",
+ "G_s=80*10**3 #N/mm**2 #Modulus of rigidity of steel tube\n",
+ "T=6*10**6 #N-mm #Torque\n",
+ "L=2000 #mm #Length of Tube\n",
+ "\n",
+ "#Calculations\n",
+ "\n",
+ "#Polar Modulus of brass tube\n",
+ "J1=pi*32**-1*(d1**4-d2**4) #mm**4 \n",
+ "\n",
+ "#Polar modulus of steel Tube\n",
+ "J2=pi*32**-1*d**4 #mm**4\n",
+ "\n",
+ "#Let T_s & T_b be the torque resisted by steel and brass respectively\n",
+ "#Then, T_b+T_s=T ............................................(1)\n",
+ "\n",
+ "#Since the angle of twist will be the same\n",
+ "#Theta1=Theta2\n",
+ "#After substituting values and further simplifying we get \n",
+ "#Ts=0.360*Tb ...........................................(2)\n",
+ "\n",
+ "#After substituting value of Ts in eqn 1 and further simplifying we get \n",
+ "T_b=T*(0.36+1)**-1 #N-mm\n",
+ "T_s=0.360*T_b\n",
+ "\n",
+ "#Let q_s and q_b be the max stress in steel and brass respectively\n",
+ "q_b=T_b*(d1*2**-1)*J1**-1 #N/mm**2\n",
+ "q_s=T_s*(d2*2**-1)*J2**-1 #N/mm**2\n",
+ "\n",
+ "#Since angle of twist in brass=angle of twist in steel\n",
+ "theta_s=T_s*L*(J2*G_s)**-1\n",
+ "\n",
+ "#Result\n",
+ "print\"Stresses Developed in Materials are:Brass\",round(q_b,2),\"N/mm**2\"\n",
+ "print\" :Steel\",round(q_s,2),\"N/mm**2\"\n",
+ "print\"Angle of Twist in 2m Length\",round(theta_s,3),\"Radians\" "
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Stresses Developed in Materials are:Brass 51.79 N/mm**2\n",
+ " :Steel 64.71 N/mm**2\n",
+ "Angle of Twist in 2m Length 0.065 Radians\n"
+ ]
+ }
+ ],
+ "prompt_number": 12
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 6.6.18,Page No.245"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "import numpy as np\n",
+ "\n",
+ "#Initilization of Variables\n",
+ "\n",
+ "d1=60 #mm #External Diameter of aluminium Tube\n",
+ "d2=40 #mm #Internal Diameter of aluminium Tube\n",
+ "d=40 #mm #Diameter of steel tube\n",
+ "q_a=60 #N/mm**2 #Permissible stress in aluminium\n",
+ "q_s=100 #N/mm**2 #Permissible stress in steel tube\n",
+ "G_a=27*10**3 #N/mm**2 \n",
+ "G_s=80*10**3 #N/mm**2 \n",
+ "\n",
+ "#Calculations\n",
+ "\n",
+ "#Polar modulus of aluminium Tube\n",
+ "J_a=pi*32**-1*(d1**4-d2**4) #mm**4\n",
+ "\n",
+ "#Polar Modulus of steel Tube\n",
+ "J_s=pi*32**-1*d**4 #mm**4\n",
+ "\n",
+ "#Now the angle of twist of steel tube = angle of twist of aluminium tube\n",
+ "#T_s*L_s*(J_s*theta_s)**-1=T_a*L_a*(J_a*theta_a)**-1\n",
+ "#After substituting values in above Equation and Further simplifyin we get\n",
+ "#T_s=0.7293*T_a .....................(1)\n",
+ "\n",
+ "#If steel Governs the resisting capacity\n",
+ "T_s1=q_s*J_s*(d*2**-1)**-1 #N-mm\n",
+ "T_a1=T_s1*0.7293**-1 #N-mm\n",
+ "T1=(T_s1+T_a1)*10**-6 #KN-m #Total Torque in steel Tube\n",
+ "\n",
+ "#If aluminium Governs the resisting capacity \n",
+ "T_a2=q_a*J_a*(d1*2**-1) #N-mm\n",
+ "T_s2=T_a2*0.7293 #N-mm\n",
+ "T2=(T_s2+T_a2)*10**-6 #KN-m #Total Torque in aluminium tube\n",
+ "\n",
+ "#Result\n",
+ "print\"Steel Governs the torque carrying capacity\",round(T1,2),\"KN-m\""
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Steel Governs the torque carrying capacity 2.98 KN-m\n"
+ ]
+ }
+ ],
+ "prompt_number": 19
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 6.6.19,Page No.247"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "import numpy as np\n",
+ "\n",
+ "#Initilization of Variables\n",
+ "\n",
+ "P=225*10**6 #N-mm/sec #Power Trasmitted\n",
+ "q_b=80 #N/mm**2 #Shear stress\n",
+ "n=200 #Rpm\n",
+ "q_k=100 #N/mm**2 #PErmissible stress in Keys\n",
+ "D=300 #mm #Diameter of bolt circle\n",
+ "L=150 #mm #Length of shear key\n",
+ "d=16 #mm #Diameterr of bolt\n",
+ "\n",
+ "#Calculations\n",
+ "T=60*P*(2*pi*n)**-1 #N-mm #Torque\n",
+ "\n",
+ "#Now From Torsion Formula\n",
+ "#T*J**-1=q_s*R**-1\n",
+ "#After substituting values we get\n",
+ "#T=pi*16*d**3*n\n",
+ "#After further simplifying we get\n",
+ "d1=(T*16*(pi*q_s)**-1)**0.33333\n",
+ "\n",
+ "#Let b be the width of shear Key\n",
+ "#T=q_k*L*b*R\n",
+ "#After simplifying further we get\n",
+ "b=T*(q_k*L*(d1*2**-1))**-1 #mm\n",
+ "\n",
+ "#Let n2 be the no. of bolts required at bolt circle of radius\n",
+ "R_b=D*2**-1 #mm \n",
+ "\n",
+ "n2=T*4*(q_b*pi*d**2*R_b)**-1\n",
+ "\n",
+ "#result\n",
+ "print\"Minimum no. of Bolts Required are\",round(n2,2)"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Minimum no. of Bolts Required are 4.45\n"
+ ]
+ }
+ ],
+ "prompt_number": 26
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 6.6.20,Page No.250"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "import numpy as np\n",
+ "\n",
+ "#Initilization of Variables\n",
+ "\n",
+ "T=2*10**6 #N-mm #Torque transmitted\n",
+ "G=80*10**3 #N/mm**2 #Modulus of rigidity\n",
+ "d1=40 #mm \n",
+ "d2=80 #mm\n",
+ "r1=20 #mm\n",
+ "r2=40 #mm\n",
+ "L=2000 #mm #Length of shaft\n",
+ "\n",
+ "#Calculations\n",
+ "\n",
+ "#Angle of twist \n",
+ "theta=2*T*L*(r1**2+r1*r2+r2**2)*(3*pi*G*r2**3*r1**3)**-1 #radians\n",
+ "\n",
+ "#If the shaft is treated as shaft of average Diameter\n",
+ "d_avg=(d1+d2)*2**-1 #mm\n",
+ "\n",
+ "theta1=T*L*(G*pi*32**-1*d_avg**4)**-1 #Radians\n",
+ "\n",
+ "#Percentage Error\n",
+ "#Let Percentage Error be E\n",
+ "X=theta-theta1\n",
+ "E=(X*theta**-1)*100 \n",
+ "\n",
+ "#Result\n",
+ "print\"Percentage Error is\",round(E,2),\"%\""
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Percentage Error is 32.28 %\n"
+ ]
+ }
+ ],
+ "prompt_number": 42
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 6.6.21,Page No.252"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "import numpy as np\n",
+ "\n",
+ "#Initilization of Variables\n",
+ "\n",
+ "G=80*10**3 #N/mm**2 \n",
+ "P=1*10**9 #N-mm/sec #Power\n",
+ "n=300 \n",
+ "d1=150 #mm #Outer Diameter\n",
+ "d2=120 #mm #Inner Diameter\n",
+ "L=2000 #mm #Length of circular shaft\n",
+ "\n",
+ "#Calculations\n",
+ "\n",
+ "T=P*60*(2*pi*n)**-1 #N-mm\n",
+ "\n",
+ "#Polar Modulus \n",
+ "J=pi*32**-1*(d1**4-d2**4) #mm**4\n",
+ "\n",
+ "q_s=T*J**-1*(d1*2**-1) #N/mm**2 \n",
+ "\n",
+ "\n",
+ "#Strain ENergy\n",
+ "U=q_s**2*(4*G)**-1*pi*4**-1*(d1**2-d2**2)*L\n",
+ "\n",
+ "#Result\n",
+ "print\"Max shear stress is\",round(q_s,2),\"N/mm**2\"\n",
+ "print\"Strain Energy stored in the shaft is\",round(U,2),\"N-mm\""
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Max shear stress is 81.36 N/mm**2\n",
+ "Strain Energy stored in the shaft is 263181.37 N-mm\n"
+ ]
+ }
+ ],
+ "prompt_number": 51
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 6.6.22,Page No.254"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "import numpy as np\n",
+ "\n",
+ "#Initilization of Variables\n",
+ "\n",
+ "d=12 #mm #Diameter of helical spring\n",
+ "D=150 #mm #Mean Diameter\n",
+ "R=D*2**-1 #mm #Radius of helical spring\n",
+ "n=10 #no.of turns\n",
+ "G=80*10**3 #N/mm**2 \n",
+ "W=450 #N #Load\n",
+ "\n",
+ "#Calculations\n",
+ "\n",
+ "#Max shear stress \n",
+ "q_s=16*W*R*(pi*d**3)**-1 #N/mm**2\n",
+ "\n",
+ "#Strain Energy stored\n",
+ "U=32*W**2*R**3*n*(G*d**4)**-1 #N-mm\n",
+ "\n",
+ "#Deflection Produced\n",
+ "dell=64*W*R**3*n*(G*d**4)**-1 #mm\n",
+ "\n",
+ "#Stiffness Spring\n",
+ "k=W*dell**-1 #N/mm\n",
+ "\n",
+ "#Result\n",
+ "print\"Max shear stress is\",round(q_s,2),\"N/mm**2\"\n",
+ "print\"Strain Energy stored is\",round(U,2),\"N-mm\"\n",
+ "print\"Deflection Produced is\",round(dell,2),\"mm\"\n",
+ "print\"Stiffness spring is\",round(k,2),\"N/mm\""
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Max shear stress is 99.47 N/mm**2\n",
+ "Strain Energy stored is 16479.49 N-mm\n",
+ "Deflection Produced is 73.24 mm\n",
+ "Stiffness spring is 6.14 N/mm\n"
+ ]
+ }
+ ],
+ "prompt_number": 53
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 6.6.23,Page No.255"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "import numpy as np\n",
+ "\n",
+ "#Initilization of Variables\n",
+ "\n",
+ "K=5 #N/mm #Stiffness\n",
+ "L=100 #mm #Solid Length\n",
+ "q_s=60 #N/mm**2 #Max shear stress\n",
+ "W=200 #N #Max Load\n",
+ "G=80*10**3 #N/mm**2\n",
+ "\n",
+ "#Calculations\n",
+ "\n",
+ "#K=W*dell**-1\n",
+ "#After substituting values and further simplifying we get\n",
+ "#d=0.004*R**3*n ........(1) #mm #Diameter of wire\n",
+ "#n=L*d**-1 ........(2)\n",
+ "\n",
+ "#From Shearing stress\n",
+ "#q_s=16*W*R*(pi*d**3)**-1 \n",
+ "#After substituting values and further simplifying we get\n",
+ "#d**4=0.004*R**3*n .................(4)\n",
+ "\n",
+ "#From Equation 1,2,3\n",
+ "#d**4=0.004*(0.0785*d**3)**3*100*d**-1\n",
+ "#after further simplifying we get\n",
+ "d=5168.101**0.25\n",
+ "n=100*d**-1\n",
+ "R=(d**4*(0.004*n)**-1)**0.3333\n",
+ "\n",
+ "#Result\n",
+ "print\"Diameter of Wire is\",round(d,2),\"mm\"\n",
+ "print\"No.of turns is\",round(n,2)\n",
+ "print\"Mean Radius of spring is\",round(R,2),\"mm\""
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Diameter of Wire is 8.48 mm\n",
+ "No.fo turns is 11.79\n",
+ "Mean Radius of spring is 47.83 mm\n"
+ ]
+ }
+ ],
+ "prompt_number": 54
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 6.6.24,Page No.255"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "import numpy as np\n",
+ "\n",
+ "#Initilization of Variables\n",
+ "\n",
+ "m=5*10**5 #Wagon Weighing\n",
+ "v=18*1000*36000**-1 \n",
+ "d=300 #mm #Diameter of Beffer springs\n",
+ "n=18 #no.of turns\n",
+ "G=80*10**3 #N/mm**2\n",
+ "dell=225\n",
+ "R=100 #mm #Mean Radius\n",
+ "\n",
+ "#Calculations\n",
+ "\n",
+ "#Energy of Wagon\n",
+ "E=m*v**2*(9.81*2)**-1 #N-mm\n",
+ "\n",
+ "#Load applied\n",
+ "W=dell*G*d**4*(64*R**3*n)**-1 #N \n",
+ "\n",
+ "#Energy each spring can absorb is\n",
+ "E2=W*dell*2**-1 #N-mm\n",
+ "\n",
+ "#No.of springs required to absorb energy of Wagon\n",
+ "n2=E*E2**-1 *10**7\n",
+ "\n",
+ "#Result\n",
+ "print\"No.of springs Required for Buffer is\",round(n2,2)"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "No.of springs Required for Buffer is 4.47\n"
+ ]
+ }
+ ],
+ "prompt_number": 66
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 6.6.25,Page No.259"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "import numpy as np\n",
+ "\n",
+ "#Initilization of Variables\n",
+ "\n",
+ "b=180 #mm #width of flange\n",
+ "d=10 #mm #Depth of flange\n",
+ "t=10 #mm #Thickness of flange\n",
+ "D=400 #mm #Overall Depth \n",
+ "\n",
+ "#Calculations\n",
+ "\n",
+ "I_xx=1*12**-1*(b*D**3-(b-t)*(D-2*d)**3)\n",
+ "I_yy=1*12**-1*((D-2*d)*t**3+2*t*b**3)\n",
+ "\n",
+ "#If warping is neglected\n",
+ "J=I_xx+I_yy #mm**4\n",
+ "\n",
+ "#Since b/d>1.6,we get\n",
+ "J2=1*3**-1*d**3*b*(1-0.63*d*b**-1)*2+1*3**-1*t**3*(D-2*d)*(1-0.63*t*b**-1)\n",
+ "\n",
+ "#Over Estimation of torsional Rigidity would have been \n",
+ "T=J*J2**-1\n",
+ "\n",
+ "#Result\n",
+ "print\"Error in assessing torsional Rigidity if the warping is neglected is\",round(T,2)\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Error in assessing torsional Rigidity if the warping is neglected is 808.28\n"
+ ]
+ }
+ ],
+ "prompt_number": 68
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 6.6.26,Page No.261"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "import numpy as np\n",
+ "\n",
+ "#Initilization of Variables\n",
+ "\n",
+ "d1=100 #mm #Outer Diameter\n",
+ "d2=95 #mm #Inner Diameter\n",
+ "T=2*10**6 #N-mm #Torque\n",
+ "\n",
+ "#Calculations\n",
+ "\n",
+ "J=pi*32**-1*(d1**4-d2**4) #mm**4 #Polar Modulus\n",
+ "\n",
+ "#Shear stress\n",
+ "q_max=T*J**-1*d1*2**-1 #N/mm**2 \n",
+ "\n",
+ "#Now theta*L**-1=T*(G*J)**-1\n",
+ "#After substituting values and further simplifying we get\n",
+ "#Let theta*L**-1=X\n",
+ "X=T*J**-1\n",
+ "\n",
+ "#Now Treating it as very thin walled tube\n",
+ "d=(d1+d2)*2**-1 #mm\n",
+ "\n",
+ "r=d*2**-1 \n",
+ "t=(d1-d2)*2**-1\n",
+ "q_max2=T*(2*pi*r**2*t)**-1 #N/mm**2\n",
+ "\n",
+ "X2=T*(2*pi*r**3*t)**-1 \n",
+ "\n",
+ "#Result\n",
+ "print\"When it is treated as hollow shaft:Max shear stress\",round(q_max,2),\"N/mm**2\"\n",
+ "print\" :Angle of Twist per unit Length\",round(X,3)\n",
+ "print\"When it is very thin Walled Tube :Max shear stress\",round(q_max2,2),\"N/mm**2\"\n",
+ "print\" :Angle of twist per Unit Length\",round(X2,3)"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "When it is treated as hollow shaft:Max shear stress 54.91 N/mm**2\n",
+ " :Angle of Twist per unit Length 1.098\n",
+ "When it is very thin Walled Tube :Max shear stress 53.57 N/mm**2\n",
+ " :Angle of twist per Unit Length 1.099\n"
+ ]
+ }
+ ],
+ "prompt_number": 72
+ }
+ ],
+ "metadata": {}
+ }
+ ]
+}
\ No newline at end of file diff --git a/Strength_Of_Materials_by_S_S_Bhavikatti/chapter_07.ipynb b/Strength_Of_Materials_by_S_S_Bhavikatti/chapter_07.ipynb new file mode 100644 index 00000000..3d27c2e5 --- /dev/null +++ b/Strength_Of_Materials_by_S_S_Bhavikatti/chapter_07.ipynb @@ -0,0 +1,1328 @@ +{
+ "metadata": {
+ "name": "chapter 07.ipynb"
+ },
+ "nbformat": 3,
+ "nbformat_minor": 0,
+ "worksheets": [
+ {
+ "cells": [
+ {
+ "cell_type": "heading",
+ "level": 1,
+ "metadata": {},
+ "source": [
+ "Chapter No.7:Compound Stresses And Strains"
+ ]
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 7.1,Page No.269"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "import numpy as np\n",
+ "\n",
+ "#Initilization of Variables\n",
+ "\n",
+ "sigma1=30 #N/mm**2 #Stress in tension\n",
+ "d=20 #mm #Diameter \n",
+ "sigma2=90 #N/mm**2 #Max compressive stress\n",
+ "sigma3=25 #N/mm**2\n",
+ "\n",
+ "#Calculations\n",
+ "\n",
+ "#In TEnsion\n",
+ "\n",
+ "#Corresponding stress in shear\n",
+ "P=sigma1*2**-1 #N/mm**2\n",
+ "\n",
+ "#Tensile force\n",
+ "F=pi*4**-1*d**2*sigma1\n",
+ "\n",
+ "#In Compression\n",
+ "\n",
+ "#Correspong shear stress\n",
+ "P2=sigma2*2**-1 #N/mm**2\n",
+ "\n",
+ "#Correspong compressive(axial) stress\n",
+ "p=2*sigma3 #N/mm**2 \n",
+ "\n",
+ "#Corresponding Compressive force\n",
+ "P3=p*pi*4**-1*d**2 #N\n",
+ "\n",
+ "#Result\n",
+ "print\"Failure Loads are:\",round(F,2),\"N\"\n",
+ "print\" :\",round(P3,2),\"N\""
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Failure Loads are: 9424.78 N\n",
+ " : 15707.96 N\n"
+ ]
+ }
+ ],
+ "prompt_number": 24
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example No.7.2,Page No.270"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "import numpy as np\n",
+ "\n",
+ "#Initilization of Variables\n",
+ "\n",
+ "d=25 #mm #Diameter of circular bar\n",
+ "F=20*10**3 #N #Axial Force\n",
+ "theta=30 #Degree #angle \n",
+ "\n",
+ "#Calculations\n",
+ "\n",
+ "#Axial stresses\n",
+ "p=F*(pi*4**-1*d**2)**-1 #N/mm**2\n",
+ "\n",
+ "#Normal Stress\n",
+ "p_n=p*(cos(30*pi*180**-1))**2\n",
+ "\n",
+ "#Tangential Stress\n",
+ "p_t=p*2**-1*sin(2*theta*pi*180**-1)\n",
+ "\n",
+ "#Max shear stress occurs on plane where theta2=45 \n",
+ "theta2=45\n",
+ "sigma_max=p*2**-1*sin(2*theta2*pi*180**-1)\n",
+ "\n",
+ "#Result\n",
+ "print\"Stresses developed on a plane making 30 degree is:\",round(p_n,2),\"N/mm**2\"\n",
+ "print\" :\",round(p_t,2),\"N/mm**2\"\n",
+ "print\"stress on max shear stress is\",round(sigma_max,2),\"N/mm**2\""
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Stresses developed on a plane making 30 degree is: 30.56 N/mm**2\n",
+ " : 17.64 N/mm**2\n",
+ "stress on max shear stress is 20.37 N/mm**2\n"
+ ]
+ }
+ ],
+ "prompt_number": 38
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example No.7.3,Page No.272"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "import numpy as np\n",
+ "\n",
+ "#Initilization of Variables\n",
+ "\n",
+ "theta=30 #degree\n",
+ "\n",
+ "#Stresses acting on material\n",
+ "p1=120 #N/mm**2\n",
+ "p2=80 #N/mm**2\n",
+ "\n",
+ "#Calculations\n",
+ "\n",
+ "#Normal Stress\n",
+ "P_n=(p1+p2)*2**-1+(p1-p2)*2**-1*cos(2*theta*pi*180**-1) #N/mm**2\n",
+ "\n",
+ "#Tangential stress\n",
+ "P_t=(p1-p2)*2**-1*sin(2*theta*pi*180**-1)\n",
+ "\n",
+ "#Resultant stress\n",
+ "P=(P_n**2+P_t**2)**0.5 #N/mm**2\n",
+ "\n",
+ "#Inclination to the plane\n",
+ "phi=arctan(P_n*P_t**-1)*(180*pi**-1)\n",
+ "\n",
+ "#Angle made by resultant with 120 #N/mm**2 stress\n",
+ "phi2=phi+theta #Degree\n",
+ "\n",
+ "#Result\n",
+ "print\"Normal Stress is\",round(P_n,2),\"N/mm**2\"\n",
+ "print\"Tangential Stress is\",round(P_t,2),\"N/mm**2\"\n",
+ "print\"Angle made by resultant\",round(phi2,2),\"Degree\""
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Normal Stress is 110.0 N/mm**2\n",
+ "Tangential Stress is 17.32 N/mm**2\n",
+ "Angle made by resultant 111.05 Degree\n"
+ ]
+ }
+ ],
+ "prompt_number": 30
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example No.7.4,Page No.272"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "import numpy as np\n",
+ "\n",
+ "#Initilization of Variables\n",
+ "\n",
+ "#Direct Stresses\n",
+ "P1=60 #N/mm**2 \n",
+ "P2=100 #N/mm**2\n",
+ "\n",
+ "Theta=25 #Degree #Angle\n",
+ "\n",
+ "#Calculations\n",
+ "\n",
+ "#Normal Stress\n",
+ "P_n=(P1-P2)*2**-1+(P1+P2)*2**-1*cos(2*Theta*pi*180**-1) #N/mm**2\n",
+ "\n",
+ "#Tangential Stress\n",
+ "P_t=(P1+P2)*2**-1*sin(Theta*2*pi*180**-1) #N/mm**2\n",
+ "\n",
+ "#Resultant stress\n",
+ "P=(P_n**2+P_t**2)**0.5 #N/mm**2\n",
+ "\n",
+ "theta2=arctan(P_n*P_t**-1)*(180*pi**-1)\n",
+ "\n",
+ "#Result\n",
+ "print\"Stresses on the plane AC is:\",round(P_n,2),\"N/mm**2\"\n",
+ "print\" \",round(P_t,2),\"N/mm**2\""
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Stresses on the plane AC is: 31.42 N/mm**2\n",
+ " 61.28 N/mm**2\n"
+ ]
+ }
+ ],
+ "prompt_number": 25
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example No.7.6,Page No.278"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "import numpy as np\n",
+ "\n",
+ "#Initilization of Variables\n",
+ "\n",
+ "#Stresses acting on material\n",
+ "p_x=180 #N/mm**2 \n",
+ "p_y=120 #N/mm**2\n",
+ "\n",
+ "q=80 #N/mm**2\n",
+ "\n",
+ "#Calculations\n",
+ "\n",
+ "theta=arctan(2*q*(p_x-p_y)**-1)*(180*pi**-1) #degrees\n",
+ "theta2=theta*2**-1 #Degrees\n",
+ "theta3=theta+180 #Degrees\n",
+ "theta4=theta3*2**-1 #Degrees\n",
+ "\n",
+ "#Stresses\n",
+ "p_1=(p_x+p_y)*2**-1+(((p_x-p_y)*2**-1)**2+q**2)**0.5 #N/mm**2\n",
+ "p_2=(p_x+p_y)*2**-1-(((p_x-p_y)*2**-1)**2+q**2)**0.5 #N/mm**2\n",
+ "\n",
+ "#Max shear stress\n",
+ "q_max=(((p_x-p_y)*2**-1)**2+q**2)**0.5 #N/mm**2\n",
+ "\n",
+ "#Result\n",
+ "print\"Magnitude of Principal stress is:\",round(p_1,2),\"N/mm**2\"\n",
+ "print\" \",round(p_2,2),\"N/mm**2\"\n",
+ "print\"Magnitude of max shear stress is\",round(q_max,2),\"N/mm**2\""
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Magnitude of Principal stress is: 235.44 N/mm**2\n",
+ " 64.56 N/mm**2\n",
+ "Magnitude of max shear stress is 85.44 N/mm**2\n"
+ ]
+ }
+ ],
+ "prompt_number": 40
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example No.7.7,Page No.279"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "import numpy as np\n",
+ "\n",
+ "#Initilization of Variables\n",
+ "\n",
+ "#stresses\n",
+ "p_x=60 #N/mm**2\n",
+ "p_y=-40 #N/mm**2\n",
+ "\n",
+ "q=10 #N/mm**2 #shear stress\n",
+ "\n",
+ "#Calculations\n",
+ "\n",
+ "#Principal Stresses\n",
+ "p1=(p_x+p_y)*2**-1+(((p_x-p_y)*2**-1)**2+q**2)**0.5 #N/mm**2\n",
+ "p2=(p_x+p_y)*2**-1-(((p_x-p_y)*2**-1)**2+q**2)**0.5 #N/mm**2\n",
+ "\n",
+ "#Max shear stress\n",
+ "q_max=(((p_x-p_y)*2**-1)**2+q**2)**0.5 #N/mm**2\n",
+ "\n",
+ "#Inclination of principal stress to plane\n",
+ "theta=arctan(2*q*(p_x-p_y)**-1)*(180*pi**-1)#Degrees\n",
+ "theta2=(theta)*2**-1 #degrees\n",
+ "\n",
+ "theta3=(theta+180)*2**-1 #degrees\n",
+ "\n",
+ "#Result\n",
+ "print\"Principal Stresses are:\",round(p1,2),\"N/mm**2\"\n",
+ "print\" :\",round(p2,2),\"N/mm**2\"\n",
+ "print\"Max shear stresses\",round(q_max,2),\"N/mm**2\""
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Principal Stresses are: 60.99 N/mm**2\n",
+ " : -40.99 N/mm**2\n",
+ "Max shear stresses 50.99 N/mm**2\n"
+ ]
+ }
+ ],
+ "prompt_number": 16
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example No.7.8,Page No.280"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "import numpy as np\n",
+ "\n",
+ "#Initilization of Variables\n",
+ "\n",
+ "#stresses\n",
+ "p_x=-120 #N/mm**2\n",
+ "p_y=-80 #N/mm**2\n",
+ "\n",
+ "q=-60 #N/mm**2 #shear stress\n",
+ "\n",
+ "#Calculations\n",
+ "\n",
+ "#Principal Stresses\n",
+ "p1=(p_x+p_y)*2**-1+(((p_x-p_y)*2**-1)**2+q**2)**0.5 #N/mm**2\n",
+ "p2=(p_x+p_y)*2**-1-(((p_x-p_y)*2**-1)**2+q**2)**0.5 #N/mm**2\n",
+ "\n",
+ "#Max shear stress\n",
+ "q_max=(((p_x-p_y)*2**-1)**2+q**2)**0.5 #N/mm**2\n",
+ "\n",
+ "#Inclination of principal stress to plane\n",
+ "theta=arctan(2*q*(p_x-p_y)**-1)*(180*pi**-1)#Degrees\n",
+ "theta2=(theta)*2**-1 #degrees\n",
+ "\n",
+ "theta3=(theta+180)*2**-1 #degrees\n",
+ "\n",
+ "#Result\n",
+ "print\"Principal Stresses are:\",round(p1,2),\"N/mm**2\"\n",
+ "print\" :\",round(p2,2),\"N/mm**2\"\n",
+ "print\"Max shear stresses\",round(q_max,2),\"N/mm**2\""
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Principal Stresses are: -36.75 N/mm**2\n",
+ " : -163.25 N/mm**2\n",
+ "Max shear stresses 63.25 N/mm**2\n"
+ ]
+ }
+ ],
+ "prompt_number": 17
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example No.7.9,Page No.282"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "import numpy as np\n",
+ "\n",
+ "#Initilization of Variables\n",
+ "\n",
+ "#stresses\n",
+ "p_x=-40 #N/mm**2\n",
+ "p_y=80 #N/mm**2\n",
+ "\n",
+ "q=48 #N/mm**2 #shear stress\n",
+ "\n",
+ "#Calculations\n",
+ "\n",
+ "#Max shear stress\n",
+ "q_max=((((p_x-p_y)*2**-1)**2)+q**2)**0.5 #N/mm**2\n",
+ "\n",
+ "#Inclination of principal stress to plane\n",
+ "theta=arctan(2*q*(p_x-p_y)**-1)*(180*pi**-1)#Degrees\n",
+ "theta2=(theta)*2**-1 #degrees\n",
+ "\n",
+ "theta3=(theta+180)*2**-1 #degrees\n",
+ "\n",
+ "#Normal Corresponding stress\n",
+ "p_n=(p_x+p_y)*2**-1+(p_x-p_y)*2**-1*cos(2*(theta2+45)*pi*180**-1)+q*sin(2*(theta2+45)*pi*180**-1) #Degrees\n",
+ "\n",
+ "#Resultant stress\n",
+ "p=((p_n**2+q_max**2)**0.5) #N/mm**2\n",
+ "\n",
+ "phi=arctan(p_n*q_max**-1)*(180*pi**-1) #Degrees\n",
+ "\n",
+ "#Inclination to the plane\n",
+ "alpha=round((theta2+45),2)+round(phi ,2)#Degree\n",
+ "\n",
+ "#Answer in book is incorrect of alpha ie41.25\n",
+ "\n",
+ "#Result\n",
+ "print\"Planes of max shear stress:\",round(p_n,2),\"N/mm**2\"\n",
+ "print\" \",round(q_max,2),\"N/mm*2\"\n",
+ "print\"Resultant Stress is\",round(p,2),\"N/mm**2\""
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Planes of max shear stress: 20.0 N/mm**2\n",
+ " 76.84 N/mm*2\n",
+ "Resultant Stress is 79.4 N/mm**2\n"
+ ]
+ }
+ ],
+ "prompt_number": 40
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example No.7.10,Page No.283"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "import numpy as np\n",
+ "\n",
+ "#Initilization of Variables\n",
+ "\n",
+ "#Stresses\n",
+ "p_x=50*cos(35*pi*180**-1)\n",
+ "q=50*sin(35*pi*180**-1)\n",
+ "p_y=0\n",
+ "\n",
+ "theta=40 #Degrees #Plane AB inclined to vertical\n",
+ "\n",
+ "#Calculations\n",
+ "\n",
+ "#Normal Stress on AB\n",
+ "p_n=(p_x+p_y)*2**-1+(p_x-p_y)*2**-1*cos(2*theta*pi*180**-1)+q*sin(2*theta*pi*180**-1)\n",
+ "\n",
+ "#Tangential Stress on AB\n",
+ "p_t=(p_x-p_y)*2**-1*sin(2*theta*pi*180**-1)-q*cos(2*theta*pi*180**-1) #N/mm**2\n",
+ "\n",
+ "#Resultant stress\n",
+ "p=(p_n**2+p_t**2)**0.5 #N/mm**2\n",
+ "\n",
+ "#Angle of resultant\n",
+ "phi=arctan(p_n*p_t**-1)*(180*pi**-1) #degrees\n",
+ "phi2=phi+theta #Degrees\n",
+ "\n",
+ "#Result\n",
+ "print\"Magnitude of resultant stress is\",round(p,2),\"N/mm**2\"\n",
+ "print\"Direction of Resultant stress is\",round(phi2,2),\"Degrees\""
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Magnitude of resultant stress is 54.44 N/mm**2\n",
+ "Direction of Resultant stress is 113.8 Degrees\n"
+ ]
+ }
+ ],
+ "prompt_number": 8
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example No.7.12,Page No.285"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "import numpy as np\n",
+ "\n",
+ "#Initilization of Variables\n",
+ "\n",
+ "#Direct stresses\n",
+ "p_x=120 #N/mm**2 #Tensile stress\n",
+ "p_y=-100 #N/mm**2 #Compressive stress\n",
+ "p1=160 #N/mm**2 #Major principal stress\n",
+ "\n",
+ "#Calculations\n",
+ "\n",
+ "#Let q be the shearing stress\n",
+ "\n",
+ "#p1=(p_x+p_y)*2**-1+((((p_x+p_y)*2**-1)**2)+q**2)**0.5\n",
+ "#After further simplifying we get\n",
+ "q=(p1-((p_x+p_y)*2**-1))**2-((p_x-p_y)*2**-1)**2 #N/mm**2\n",
+ "q2=(q)**0.5 #N/mm**2\n",
+ "\n",
+ "#Minimum Principal stress\n",
+ "p2=(p_x+p_y)*2**-1-(((p_x-p_y)*2**-1)**2+q2**2)**0.5 #N/mm**2\n",
+ "\n",
+ "#Max shearing stress\n",
+ "q_max=(((p_x-p_y)*2**-1)**2+q2**2)**0.5 #N/mm**2\n",
+ "\n",
+ "#Result\n",
+ "print\"Shearing stress of material\",round(q,2),\"N/mm**2\"\n",
+ "print\"Min Principal stress\",round(p2,2),\"N/mm**2\"\n",
+ "print\"Max shearing stress\",round(q_max,2),\"N/mm**2\""
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Shearing stress of material 10400.0 N/mm**2\n",
+ "Min Principal stress -140.0 N/mm**2\n",
+ "Max shearing stress 150.0 N/mm**2\n"
+ ]
+ }
+ ],
+ "prompt_number": 19
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example No.7.14,Page No.291"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "import numpy as np\n",
+ "\n",
+ "#Initilization of Variables\n",
+ "\n",
+ "F=40*10**3 #N #Shear Force\n",
+ "M=20*10**6 #Bending Moment\n",
+ "\n",
+ "#Rectangular section\n",
+ "b=100 #mm #Width\n",
+ "d=200 #mm #Depth\n",
+ "\n",
+ "x=20 #mm #Distance from Top surface upto point\n",
+ "y=80 #mm #Distance from point to Bottom\n",
+ "\n",
+ "#Calculations\n",
+ "\n",
+ "I=1*12**-1*b*d**3 #mm**4 #M.I\n",
+ "\n",
+ "#At 20 mm Below top Fibre\n",
+ "f_x=M*I**-1*y #N/mm**2 #Stress\n",
+ "\n",
+ "#Assuming sagging moment ,f_x is compressive p_x=f_x=-24 #N/mm**2\n",
+ "p_x=f_x=-24 #N/mm**2\n",
+ "\n",
+ "#Shearing stress\n",
+ "q=F*(b*I)**-1*(b*x*(b-x*2**-1)) #N/mm**2\n",
+ "\n",
+ "#Direct stresses\n",
+ "\n",
+ "p_y=0 #N/mm**2\n",
+ "\n",
+ "p1=(p_x+p_y)*2**-1+(((p_x+p_y)*2**-1)**2+q**2)**0.5 #N/mm**2\n",
+ "p2=(p_x+p_y)*2**-1-(((p_x+p_y)*2**-1)**2+q**2)**0.5 #N/mm**2\n",
+ "\n",
+ "#Result\n",
+ "print\"Directions of principal stresses at a point below 20mm is:\",round(p1,2),\"N/mm**2\"\n",
+ "print\" \",round(p2,2),\"N/mm**2\""
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Directions of principal stresses at a point below 20mm is: 0.05 N/mm**2\n",
+ " -24.05 N/mm**2\n"
+ ]
+ }
+ ],
+ "prompt_number": 36
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example No.7.15,Page No.292"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "import numpy as np\n",
+ "\n",
+ "#Initilization of Variables\n",
+ "\n",
+ "L=4000 #mm #Span\n",
+ "W1=W2=W3=2*10**3 #N #Load\n",
+ "\n",
+ "#SEction of beam\n",
+ "b=100 #mm #Width\n",
+ "d=240 #mm #Dept\n",
+ "\n",
+ "#Calculations\n",
+ "\n",
+ "#Let R_A and R_B be the reactions\n",
+ "R_A=R_B=(W1+W2+W3)*2**-1 #KN\n",
+ "\n",
+ "#Now at the section 1.5m from left support A\n",
+ "#Shear Force\n",
+ "F=R_A-W1 #KN\n",
+ "\n",
+ "#B.M\n",
+ "M=R_A*1.5-W1*0.5 #KN-m\n",
+ "\n",
+ "#M.I\n",
+ "I=1*12**-1*b*d**3 #mm**4\n",
+ "\n",
+ "#Bending stress\n",
+ "#f=M*I**-1*y\n",
+ "#After Sub values and further simplifying we get\n",
+ "#f=3.04*10**-2*y\n",
+ "\n",
+ "#As it varies Linearly\n",
+ "\n",
+ "#at distance 0 From NA \n",
+ "f1=0\n",
+ "#at distance 60 mm from NA\n",
+ "f2=1.823 #N/mm**2\n",
+ "#at distance 120 mm from NA\n",
+ "f3=3.646 #N/mm**2\n",
+ "\n",
+ "#Shearing stress\n",
+ "q=F*b*d*2**-1*d*4**-1*(b*I)**-1\n",
+ "\n",
+ "#At 60 mm above NA\n",
+ "q2=F*b*d*4**-1*(d*2**-1-d*8**-1)*(b*I)**-1\n",
+ "\n",
+ "#At 120 mm above NA\n",
+ "q3=0 \n",
+ "\n",
+ "#At NA element is under pure shear\n",
+ "p1=q #N/mm**2\n",
+ "p2=-q #N/mm**2 \n",
+ "\n",
+ "#Inclination of principal plane to vertical\n",
+ "#theta=2*q*0**-1\n",
+ "#Further simplifying we get\n",
+ "#theta=infinity\n",
+ "\n",
+ "#therefore\n",
+ "theta=90*2**-1 #degrees\n",
+ "theta2=270*2**-1 #degrees\n",
+ "\n",
+ "#At 60 mm From NA\n",
+ "p_x=-1.823 #N/mm**2 \n",
+ "p_y=0\n",
+ "q=0.0469 #N/mm**2\n",
+ "\n",
+ "#principal planes\n",
+ "P1=(p_x+p_y)*2**-1+(((p_x+p_y)*2**-1)**2+q**2)**0.5 #N/mm**2\n",
+ "P2=(p_x+p_y)*2**-1-(((p_x+p_y)*2**-1)**2+q**2)**0.5 #N/mm**2\n",
+ "\n",
+ "#Principal planes inclination to hte plane of p_x is given by\n",
+ "theta3=(arctan(2*q*(p_x-p_y)**-1)*(180*pi**-1))\n",
+ "theta4=theta3*2**-1#degrees\n",
+ "\n",
+ "theta5=theta3+180 #Degrees\n",
+ "\n",
+ "#At 120 mm From N-A\n",
+ "p_x2=3.646 #N/mm**2\n",
+ "p_y2=0 #N/mm**2\n",
+ "q2=0 #N/mm**2\n",
+ "\n",
+ "P3=p_x2 #N/mm**2\n",
+ "P4=0 #N/mm**2\n",
+ "\n",
+ "#Answer for P2 at 60 mm from NA is incorrect\n",
+ "\n",
+ "#Result\n",
+ "print\"Principal Planes at 60 mm from NA:\",round(p_x,2),\"N/mm**2\"\n",
+ "print\" \",round(p_y,2),\"N/mm**2\"\n",
+ "print\"Principal Stresses at 60 mm From NA\",round(P1,4),\"N/mm**2\"\n",
+ "print\" \",round(P2,4),\"N/mm**2\"\n",
+ "print\"Principal Planes at 60 mm from NA:\",round(p_x2,4),\"N/mm**2\"\n",
+ "print\" \",round(p_y2,4),\"N/mm**2\"\n",
+ "print\"Principal Stresses at 60 mm From NA\",round(P3,4),\"N/mm**2\"\n",
+ "print\" \",round(P4,4),\"N/mm**2\""
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Principal Planes at 60 mm from NA: -1.82 N/mm**2\n",
+ " 0.0 N/mm**2\n",
+ "Principal Stresses at 60 mm From NA 0.0012 N/mm**2\n",
+ " -1.8242 N/mm**2\n",
+ "Principal Planes at 60 mm from NA: 3.646 N/mm**2\n",
+ " 0.0 N/mm**2\n",
+ "Principal Stresses at 60 mm From NA 3.646 N/mm**2\n",
+ " 0.0 N/mm**2\n"
+ ]
+ }
+ ],
+ "prompt_number": 23
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example No.7.16,Page No.295"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "import numpy as np\n",
+ "\n",
+ "#Initilization of Variables\n",
+ "\n",
+ "L=8000 #mm #Span of beam\n",
+ "w=40*10**6 #N/mm #udl\n",
+ "\n",
+ "#I-section\n",
+ "\n",
+ "#Flanges\n",
+ "b=100 #mm #Width\n",
+ "t=10 #mm #Thickness\n",
+ "\n",
+ "D=400 #mm #Overall Depth\n",
+ "t2=10 #mm #thickness of web\n",
+ "\n",
+ "#Calculations\n",
+ "\n",
+ "#Let R_A and R_B be the Reactions at A & B respectively\n",
+ "R_A=w*2**-1*L*10**-9 #KN\n",
+ "\n",
+ "#Shear force at 2m for left support\n",
+ "F=R_A-2*w*10**-6 #KN\n",
+ "\n",
+ "#Bending Moment\n",
+ "M=R_A*2-2*w*10**-6 #KN-m\n",
+ "\n",
+ "#M.I\n",
+ "I=1*12**-1*b*D**3-1*12**-1*(b-t)*(D-2*t2)**3 #mm**4\n",
+ "\n",
+ "#Bending stress at 100 mm above N_A\n",
+ "f=M*10**6*I**-1*b\n",
+ "\n",
+ "#Shear stress \n",
+ "q=F*10**3*(t*I)**-1*(b*t*(D-t)*2**-1 +t2*(b-t2)*145) #N/mm**2\n",
+ "\n",
+ "p_x=-197.06 #N/mm**2 \n",
+ "p_y=0 #N/mm**2\n",
+ "q=21.38 #N/mm**2\n",
+ "\n",
+ "#Principal Stresses\n",
+ "\n",
+ "P1=(p_x+p_y)*2**-1+(((p_x-p_y)*2**-1)**2+q**2)**0.5 #N/mm**2\n",
+ "P2=(p_x+p_y)*2**-1-(((p_x-p_y)*2**-1)**2+q**2)**0.5 #N/mm**2\n",
+ "\n",
+ "#Max shear stress\n",
+ "q_max=(((p_x-p_y)*2**-1)**2+q**2)**0.5 #N/mm**2\n",
+ "\n",
+ "#Result\n",
+ "print\"Principal Stresses are:\",round(P1,2),\"N/mm**2\"\n",
+ "print\" \",round(P2,2),\"N/mm**2\"\n",
+ "print\"Max shear stress\",round(q_max,2),\"N/mm**2\""
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Principal Stresses are: 2.29 N/mm**2\n",
+ " -199.35 N/mm**2\n",
+ "Max shear stress 100.82 N/mm**2\n"
+ ]
+ }
+ ],
+ "prompt_number": 48
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example No.7.18,Page No.298"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "import numpy as np\n",
+ "\n",
+ "#Initilization of Variables\n",
+ "\n",
+ "d=100 #mm #Diameter of shaft\n",
+ "M=3*10**6 #N-mm #B.M\n",
+ "T=6*10**6 #N-mm #Twisting Moment\n",
+ "mu=0.3\n",
+ "\n",
+ "#Calculations\n",
+ "\n",
+ "#Max principal Stress\n",
+ "\n",
+ "P1=16*(pi*d**3)**-1*(M+(M**2+T**2)**0.5) #N/mm**2 \n",
+ "P2=16*(pi*d**3)**-1*(M-(M**2+T**2)**0.5) #N/mm**2 \n",
+ "\n",
+ "#Direct stress\n",
+ "P=round(P1,2)-mu*round(P2,2) #N/mm**2 \n",
+ "\n",
+ "#Result\n",
+ "print\"Principal stresses are:\",round(P1,2),\"N/mm**2\"\n",
+ "print\" :\",round(P2,2),\"N/mm**2\"\n",
+ "print\"Stress Producing the same strain is\",round(P,2),\"N/mm**2\""
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Principal stresses are: 49.44 N/mm**2\n",
+ " : -18.89 N/mm**2\n",
+ "Stress Producing the same strain is 55.11 N/mm**2\n"
+ ]
+ }
+ ],
+ "prompt_number": 51
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example No.7.19,Page No.299"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "import numpy as np\n",
+ "\n",
+ "#Initilization of Variables\n",
+ "\n",
+ "d=75 #mm #diameter \n",
+ "P=30*10**6 #W #Power transmitted\n",
+ "W=6 #N-mm/sec #Load\n",
+ "L=1000 #mm \n",
+ "N=300 #r.p.m\n",
+ "\n",
+ "#Calculations\n",
+ "\n",
+ "#B.M\n",
+ "M=W*L*4**-1 #N-mm\n",
+ "T=P*60*(2*pi*N)**-1 #Torque transmitted\n",
+ "\n",
+ "#M.I\n",
+ "I=pi*64**-1*d**4 #mm**4\n",
+ "\n",
+ "#Bending stress\n",
+ "f_A=M*I**-1*(d*2**-1) #N/mm**2\n",
+ "\n",
+ "#At A\n",
+ "p_x=f_A\n",
+ "p_y=0\n",
+ "\n",
+ "#Polar Modulus\n",
+ "J=pi*32**-1*d**4 #mm**4\n",
+ "\n",
+ "#Shearing stress\n",
+ "q=T*J**-1*(d*2**-1) #N/mm**2\n",
+ "\n",
+ "#Principal Stresses\n",
+ "P1=(p_x+p_y)*2**-1+(((p_x-p_y)*2**-1)**2+q**2)**0.5 #N/mm**2\n",
+ "P2=(p_x+p_y)*2**-1-(((p_x-p_y)*2**-1)**2+q**2)**0.5 #N/mm**2\n",
+ "\n",
+ "#Max shear stress\n",
+ "q_max=(((p_x-p_y)*2**-1)**2+q**2)**0.5 #N/mm**2\n",
+ "\n",
+ "#Bending stress\n",
+ "p_x2=0\n",
+ "p_y2=0\n",
+ "\n",
+ "#Shearing stress\n",
+ "q2=T*J**-1*d*2**-1 #N/mm**2\n",
+ "\n",
+ "#Principal stresses\n",
+ "P3=(p_x2+p_y2)*2**-1+(((p_x2-p_y2)*2**-1)**2+q2**2)**0.5 #N/mm**2\n",
+ "P4=(p_x2+p_y2)*2**-1-(((p_x2-p_y2)*2**-1)**2+q2**2)**0.5 #N/mm**2\n",
+ "\n",
+ "#Max shear stress\n",
+ "q_max2=(((p_x2-p_y2)*2**-1)**2+q2**2)**0.5 #N/mm**2\n",
+ "\n",
+ "#Answer for Principal Stresses P1,P2 and Max stress i.e q_max is incorrect in Book\n",
+ "\n",
+ "#Result\n",
+ "print\"Principal Stresses at vertical Diameter:P1\",round(P1,2),\"N/mm**2\"\n",
+ "print\" :P2\",round(P2,2),\"N/mm**2\"\n",
+ "print\"Max stress at vertical Diameter : \",round(q_max,2),\"N/mm**2\"\n",
+ "print\"Principal Stresses at Horizontal Diameter:P3\",round(P3,2),\"N/mm**2\"\n",
+ "print\" :P4\",round(P4,2),\"N/mm**2\"\n",
+ "print\"Max stress at Horizontal Diameter : \",round(q_max2,2),\"N/mm**2\""
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Principal Stresses at vertical Diameter:P1 11.55 N/mm**2\n",
+ " :P2 -11.51 N/mm**2\n",
+ "Max stress at vertical Diameter : 11.53 N/mm**2\n",
+ "Principal Stresses at Horizontal Diameter:P3 11.53 N/mm**2\n",
+ " :P4 -11.53 N/mm**2\n",
+ "Max stress at Horizontal Diameter : 11.53 N/mm**2\n"
+ ]
+ }
+ ],
+ "prompt_number": 20
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example No.7.20,Page No.302"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "import numpy as np\n",
+ "\n",
+ "#Initilization of Variables\n",
+ "\n",
+ "d1=100 #mm #External Diameter\n",
+ "d2=50 #mm #Internal Diameter\n",
+ "N=500 #mm #r.p.m\n",
+ "P=60*10**6 #N-mm/sec #Power\n",
+ "p=100 #N/mm**2 #principal stress\n",
+ "\n",
+ "#Calculations\n",
+ "\n",
+ "#M.I\n",
+ "I=pi*(d1**4-d2**4)*64**-1 #mm**4\n",
+ "\n",
+ "#Bending Stress\n",
+ "#f=M*I*d1*2**-1 #N/mm**2\n",
+ "\n",
+ "#Principal Planes\n",
+ "#p_x=32*M*(pi*(d1**4-d2**4))*d1\n",
+ "#p_y=0\n",
+ "\n",
+ "#Shear stress\n",
+ "#q=T*J**-1*(d1*2**-1)\n",
+ "#After sub values and further simplifying we get\n",
+ "#q=16*T*d1*(pi*(d1**4-d2**4))*d1\n",
+ "\n",
+ "#Principal stresses\n",
+ "#P1=(p_x+p_y)*2**-1+(((p_x-p_y)*2**-1)**2+q**2)**0.5 #N/mm**2\n",
+ "#After sub values and further simplifying we get\n",
+ "#P1=16*(pi*(d1**4-d2**4))*d1*(M+(M**2+t**2)**0.5) ...............(1)\n",
+ "\n",
+ "#P=2*pi*N*T*60**-1\n",
+ "#After sub values and further simplifying we get\n",
+ "T=P*60*(2*pi*N)**-1*10**-6 #N-mm\n",
+ "\n",
+ "#Again Sub values and further simplifying Equation 1 we get\n",
+ "M=(337.533)*(36.84)**-1 #KN-m\n",
+ "\n",
+ "#Min Principal stress\n",
+ "#P2=(p_x+p_y)*2**-1-(((p_x-p_y)*2**-1)**2+q**2)**0.5 #N/mm**2\n",
+ "#Sub values and further simplifying we get\n",
+ "P2=16*(pi*(d1**4-d2**4))*d1*(M-(M**2+T**2)**0.5)*10**-11\n",
+ "\n",
+ "#Result\n",
+ "print\"Bending Moment safely applied to shaft is\",round(M,2),\"KN-m\"\n",
+ "print\"Min Principal Stress is\",round(P2,3),\"N/mm**2\""
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Bending Moment safely applied to shaft is 9.16 KN-m\n",
+ "Min Principal Stress is -0.336 N/mm**2\n"
+ ]
+ }
+ ],
+ "prompt_number": 32
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example No.7.21,Page No.303"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "import numpy as np\n",
+ "\n",
+ "#Initilization of Variables\n",
+ "\n",
+ "d=150 #mm #Diameter\n",
+ "T=20*10**6 #N #Torque\n",
+ "M=12*10**6 #N-mm #B.M\n",
+ "F=200*10**3 #N #Axial Thrust\n",
+ "\n",
+ "#Calculations\n",
+ "\n",
+ "#M.I\n",
+ "I=(pi*64**-1*d**4)\n",
+ "\n",
+ "#Bending stress \n",
+ "f_A=M*I**-1*(d*2**-1) #N/mm**2\n",
+ "f_B=-f_A #N/mm**2\n",
+ "\n",
+ "#Axial thrust due to thrust\n",
+ "sigma=F*(pi*4**-1*d**2)**-1\n",
+ "\n",
+ "#At A\n",
+ "p_x=f_A-sigma #N/mm**2\n",
+ "\n",
+ "#At B\n",
+ "p_x2=f_B-sigma #N/mm**2\n",
+ "\n",
+ "p_y=0 #At A and B\n",
+ "\n",
+ "#Polar Modulus\n",
+ "J=pi*32**-1*d**4 #mm**4\n",
+ "\n",
+ "#Shearing stress at A and B\n",
+ "q=T*J**-1*(d*2**-1) #N/mm**2\n",
+ "\n",
+ "\n",
+ "#Principal Stresses\n",
+ "#At A\n",
+ "P1=(p_x+p_y)*2**-1+(((p_x-p_y)*2**-1)**2+q**2)**0.5 #N/mm**2\n",
+ "P2=(p_x+p_y)*2**-1-(((p_x-p_y)*2**-1)**2+q**2)**0.5 #N/mm**2\n",
+ "\n",
+ "#Max shear stress\n",
+ "q_max1=(((p_x-p_y)*2**-1)**2+q**2)**0.5 #N/mm**2\n",
+ "\n",
+ "#At B\n",
+ "P1_2=(p_x2+p_y)*2**-1+(((p_x2-p_y)*2**-1)**2+q**2)**0.5 #N/mm**2\n",
+ "P2_2=(p_x2+p_y)*2**-1-(((p_x2-p_y)*2**-1)**2+q**2)**0.5 #N/mm**2\n",
+ "\n",
+ "#Max shear stress\n",
+ "q_max2=(((p_x2-p_y)*2**-1)**2+q**2)**0.5 #N/mm**2\n",
+ "\n",
+ "\n",
+ "#Result\n",
+ "print\"MAx Principal Stresses:P1\",round(P1,2),\"N/mm**2\"\n",
+ "print\" :P2\",round(P2,2),\"N/mm**2\"\n",
+ "print\"Min Principal Stresses:P1_2\",round(P1_2,2),\"N/mm**2\"\n",
+ "print\" :P2_2\",round(P2_2,2),\"N/mm**2\""
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "MAx Principal Stresses:P1 45.1 N/mm**2\n",
+ " :P2 -20.2 N/mm**2\n",
+ "Min Principal Stresses:P1_2 14.65 N/mm**2\n",
+ " :P2_2 -62.18 N/mm**2\n"
+ ]
+ }
+ ],
+ "prompt_number": 19
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example No.7.22,Page No.311"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "import numpy as np\n",
+ "\n",
+ "#Initilization of Variables\n",
+ "\n",
+ "#strains\n",
+ "e_A=500 #microns\n",
+ "e_B=250 #microns\n",
+ "e_C=-150 #microns\n",
+ "E=2*10**5 #N/mm**2 #Modulus of Elasticity\n",
+ "mu=0.3 #Poissoin's ratio\n",
+ "theta=45 #Degrees\n",
+ "\n",
+ "#Calculations\n",
+ "\n",
+ "e_x=e_A=500\n",
+ "e_45=e_B=250\n",
+ "e_y=e_C=-150 \n",
+ "\n",
+ "#e_45=(e_x+e_y)*2**-1+(e_x-e_y)*2**-1*cos(2*theta)+rho_x_y*2**-1*sin(2*theta)\n",
+ "#After sub values and further simplifying we get\n",
+ "rho_x_y=(e_45-(e_x+e_y)*2**-1-(e_x-e_y)*2**-1*cos(2*theta*pi*180**-1))*(sin(2*theta*pi*180**-1))**-1*2\n",
+ "\n",
+ "#Principal strains are given by\n",
+ "e1=(e_x+e_y)*2**-1+(((e_x-e_y)*2**-1)**2+(rho_x_y*2**-1)**2)**0.5 #microns\n",
+ "e2=(e_x+e_y)*2**-1-(((e_x-e_y)*2**-1)**2+(rho_x_y*2**-1)**2)**0.5 #microns\n",
+ "\n",
+ "#Principal Stresses\n",
+ "sigma1=E*(e1+mu*e2)*(1-mu**2)**-1*10**-6 #N/mm**2\n",
+ "sigma2=E*(e2+mu*e1)*(1-mu**2)**-1*10**-6 #N/mm**2\n",
+ "\n",
+ "#Result\n",
+ "print\"Principal Strains are:e1\",round(e1,2),\"N/mm**2\"\n",
+ "print\" :e2\",round(e2,2),\"N/mm**2\"\n",
+ "print\"Principal Stresses are:sigma1\",round(sigma1,2),\"N/mm**2\"\n",
+ "print\" :sigma2\",round(sigma2,2),\"N/mm**2\""
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Principal Strains are:e1 508.54 N/mm**2\n",
+ " :e2 -158.54 N/mm**2\n",
+ "Principal Stresses are:sigma1 101.31 N/mm**2\n",
+ " :sigma2 -1.31 N/mm**2\n"
+ ]
+ }
+ ],
+ "prompt_number": 10
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example No.7.23,Page No.313"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "import numpy as np\n",
+ "\n",
+ "#Initilization of Variables\n",
+ "\n",
+ "#Strains\n",
+ "e_A=600 #microns\n",
+ "e_B=-450 #microns\n",
+ "e_C=100 #micron\n",
+ "E=2*10**5 #N/mm**2 #Modulus of Elasticity\n",
+ "mu=0.3 #Poissoin's ratio\n",
+ "theta=240\n",
+ "\n",
+ "#Calculations\n",
+ "\n",
+ "e_x=e_A=600\n",
+ "\n",
+ "#e_A=(e_x+e_y)*2**-1+(e_x-e_y)*2**-1*cos(theta)+rho_x_y*2**-1*sin(theta)\n",
+ "#After sub values and further simplifying we get\n",
+ "#-450=(e_x+e_y)*2**-1-(e_x-e_y)*2**-1*(0.5)-0.866*2**-1*rho_x_y .....................(1)\n",
+ "\n",
+ "#e_C=(e_x+e_y)*2**-1+(e_x-e_y)*2**-1*cos(2*theta)+rho_x_y*2**-1*sin(2*theta)\n",
+ "#After sub values and further simplifying we get\n",
+ "#100=(e_x+e_y)*2**-1-0.5*(e_x-e_y)*2**-1*(0.5)-0.866*2**-1*rho_x_y .....................(2)\n",
+ "\n",
+ "#Adding Equation 1 and 2 we get equations as\n",
+ "#-350=e_x+e_y-(e_x-e_y)*2**-1 ...............(3)\n",
+ "#Further simplifying we get\n",
+ "\n",
+ "e_y=(-700-e_x)*3**-1 #micron \n",
+ "\n",
+ "rho_x_y=(e_C-(e_x+e_y)*2**-1-(e_x-e_y)*2**-1*cos(2*theta*pi*180**-1))*(sin(2*theta*pi*180**-1))**-1*2 #micron\n",
+ "\n",
+ "#Principal strains\n",
+ "e1=(e_x+e_y)*2**-1-(((e_x-e_y)*2**-1)**2+(rho_x_y*2**-1)**2)**0.5 #microns\n",
+ "e2=(e_x+e_y)*2**-1+(((e_x-e_y)*2**-1)**2+(rho_x_y*2**-1)**2)**0.5 #microns\n",
+ "\n",
+ "#Principal Stresses\n",
+ "sigma1=E*(e1+mu*e2)*(1-mu**2)**-1*10**-6 #N/mm**2\n",
+ "sigma2=E*(e2+mu*e1)*(1-mu**2)**-1*10**-6 #N/mm**2\n",
+ "\n",
+ "\n",
+ "#Result\n",
+ "print\"Principal Stresses are:sigma1\",round(sigma1,2),\"N/mm**2\"\n",
+ "print\" :sigma2\",round(sigma2,2),\"N/mm**2\""
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Principal Stresses are:sigma1 -69.49 N/mm**2\n",
+ " :sigma2 117.11 N/mm**2\n"
+ ]
+ }
+ ],
+ "prompt_number": 18
+ }
+ ],
+ "metadata": {}
+ }
+ ]
+}
\ No newline at end of file diff --git a/Strength_Of_Materials_by_S_S_Bhavikatti/chapter_08.ipynb b/Strength_Of_Materials_by_S_S_Bhavikatti/chapter_08.ipynb new file mode 100644 index 00000000..420944a4 --- /dev/null +++ b/Strength_Of_Materials_by_S_S_Bhavikatti/chapter_08.ipynb @@ -0,0 +1,1531 @@ +{
+ "metadata": {
+ "name": "chapter 08.ipynb"
+ },
+ "nbformat": 3,
+ "nbformat_minor": 0,
+ "worksheets": [
+ {
+ "cells": [
+ {
+ "cell_type": "heading",
+ "level": 1,
+ "metadata": {},
+ "source": [
+ "Chapter No.8:Thin And Thick Cyclinders And Spheres"
+ ]
+ },
+ {
+ "cell_type": "heading",
+ "level": 1,
+ "metadata": {},
+ "source": [
+ "Example 8.8.1,Page No.322"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "import numpy as np\n",
+ "\n",
+ "#Initilization of Variables\n",
+ "\n",
+ "L=3000 #mm #Length\n",
+ "d1=1000 #mm #Internal diameter\n",
+ "t=15 #mm #Thickness\n",
+ "P=1.5 #N/mm**2 #Fluid Pressure\n",
+ "E=2*10**5 #n/mm**2 #Modulus of elasticity\n",
+ "mu=0.3 #Poissoin's ratio\n",
+ "\n",
+ "#Calculations\n",
+ "\n",
+ "#Hoop stress\n",
+ "f1=P*d1*(2*t)**-1 #N/mm**2\n",
+ "\n",
+ "#Longitudinal Stress\n",
+ "f2=P*d1*(4*t)**-1 #N/mm**2\n",
+ "\n",
+ "#Max shear stress\n",
+ "q_max=(f1-f2)*2**-1 #N/mm**2\n",
+ "\n",
+ "#Diametrical Strain\n",
+ "#Let e1=dell_d*d**-1 .....................(1)\n",
+ "e1=(f1-mu*f2)*E**-1 \n",
+ "\n",
+ "#Sub values in equation 1 and further simplifying we get\n",
+ "dell_d=e1*d1 #mm\n",
+ "\n",
+ "#Longitudinal strain\n",
+ "#e2=dell_L*L**-1 ......................(2)\n",
+ "e2=(f2-mu*f1)*E**-1 \n",
+ "\n",
+ "#Sub values in equation 2 and further simplifying we get\n",
+ "dell_L=e2*L #mm\n",
+ "\n",
+ "#Change in Volume \n",
+ "#Let Z=dell_V*V**-1 ................(3)\n",
+ "Z=2*e1+e2\n",
+ "\n",
+ "#Sub values in equation 3 and further simplifying we get\n",
+ "dell_V=Z*pi*4**-1*d1**2*L\n",
+ "\n",
+ "#Result\n",
+ "print\"Max Intensity of shear stress\",round(q_max,2),\"N/mm**2\"\n",
+ "print\"Change in the Dimensions of the shell is:dell_d\",round(dell_d,2),\"mm\"\n",
+ "print\" :dell_L\",round(dell_L,2),\"mm\"\n",
+ "print\" :dell_V\",round(dell_V,2),\"mm**3\""
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Max Intensity of shear stress 12.5 N/mm**2\n",
+ "Change in the Dimensions of the shell is:dell_d 0.21 mm\n",
+ " :dell_L 0.15 mm\n",
+ " :dell_V 1119192.38 mm**3\n"
+ ]
+ }
+ ],
+ "prompt_number": 1
+ },
+ {
+ "cell_type": "heading",
+ "level": 1,
+ "metadata": {},
+ "source": [
+ "Example 8.8.2,Page No.323"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "import numpy as np\n",
+ "\n",
+ "#Initilization of Variables\n",
+ "\n",
+ "L=2000 #mm #Length\n",
+ "d=200 #mm # diameter\n",
+ "t=10 #mm #Thickness\n",
+ "dell_V=25000 #mm**3 #Additional volume\n",
+ "E=2*10**5 #n/mm**2 #Modulus of elasticity\n",
+ "mu=0.3 #Poissoin's ratio\n",
+ "\n",
+ "#Calculations\n",
+ "\n",
+ "#Let p be the pressure developed\n",
+ "\n",
+ "#Circumferential Stress\n",
+ "\n",
+ "#f1=p*d*(2*t)**-1 #N/mm**2\n",
+ "#After sub values and further simplifying\n",
+ "#f1=10*p\n",
+ "\n",
+ "#f1=p*d*(4*t)**-1 #N/mm**2\n",
+ "#After sub values and further simplifying\n",
+ "#f1=5*p\n",
+ "\n",
+ "#Diameterical strain = Circumferential stress\n",
+ "#Let X=dell_d*d**-1 ................................(1)\n",
+ "#X=e1=(f1-mu*f2)*E**-1 \n",
+ "#After sub values and further simplifying\n",
+ "#e1=8.5*p*E**-1\n",
+ "\n",
+ "#Longitudinal strain\n",
+ "#Let Y=dell_L*L**-1 ......................................(2)\n",
+ "#Y=e2=(f2-mu*f1)*E**-1 \n",
+ "#After sub values and further simplifying\n",
+ "#e2=2*p*E**-1\n",
+ "\n",
+ "#Volumetric strain\n",
+ "#Let X=dell_V*V**-1 \n",
+ "#X=2*e1+e2\n",
+ "#After sub values and further simplifying\n",
+ "#X=19*p*E**-1\n",
+ "#After further simplifying we get\n",
+ "p=dell_V*(pi*4**-1*d**2*L)**-1*E*19**-1 #N/mm**2\n",
+ "\n",
+ "#Hoop Stress\n",
+ "f1=p*d*(2*t)**-1\n",
+ "\n",
+ "X=e1=8.5*p*E**-1\n",
+ "#Sub value of X in equation 1 we get\n",
+ "dell_d=8.5*p*E**-1*d\n",
+ "\n",
+ "Y=e2=2*p*E**-1\n",
+ "#Sub value of Y in equation 2 we get\n",
+ "dell_L=2*p*E**-1*L\n",
+ "\n",
+ "#Result\n",
+ "print\"Pressure Developed is\",round(p,2),\"N/mm**2\"\n",
+ "print\"Hoop stress Developed is\",round(f1,2),\"N/mm**2\"\n",
+ "print\"Change in diameter is\",round(dell_d,2),\"mm\"\n",
+ "print\"Change in Length is\",round(dell_L,2),\"mm\""
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Pressure Developed is 4.19 N/mm**2\n",
+ "Hoop stress Developed is 41.88 N/mm**2\n",
+ "Change in diameter is 0.04 mm\n",
+ "Change in Length is 0.08 mm\n"
+ ]
+ }
+ ],
+ "prompt_number": 22
+ },
+ {
+ "cell_type": "heading",
+ "level": 1,
+ "metadata": {},
+ "source": [
+ "Example 8.8.3,Page No.324"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "import numpy as np\n",
+ "\n",
+ "#Initilization of Variables\n",
+ "\n",
+ "d=750 #mm #Diameter of water supply pipes\n",
+ "h=50*10**3 #mm #Water head\n",
+ "sigma=20 #N/mm**2 #Permissible stress\n",
+ "rho=9810*10**-9 #N/mm**3\n",
+ "\n",
+ "#Calculations\n",
+ "\n",
+ "#Pressure of water\n",
+ "P=rho*h #N/mm**2\n",
+ "\n",
+ "#Stress\n",
+ "#sigma=p*d*(2*t)**-1\n",
+ "#After further simplifying\n",
+ "t=P*d*(2*sigma)**-1 #mm \n",
+ "\n",
+ "#Result\n",
+ "print\"Thickness of seamless pipe is\",round(t,3),\"mm\""
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Thickness of seamless pipe is 9.197 mm\n"
+ ]
+ }
+ ],
+ "prompt_number": 37
+ },
+ {
+ "cell_type": "heading",
+ "level": 1,
+ "metadata": {},
+ "source": [
+ "Example 8.8.4,Page No.326"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "import numpy as np\n",
+ "\n",
+ "#Initilization of Variables\n",
+ "\n",
+ "d=2500 #mm #Diameter of riveted boiler\n",
+ "P=1 #N/mm**2 #Pressure\n",
+ "rho1=0.7 #Percent efficiency\n",
+ "rho2=0.4 #Circumferential joints\n",
+ "sigma=150 #N/mm**2 #Permissible stress\n",
+ "\n",
+ "#Calculations\n",
+ "\n",
+ "#Equating Bursting force to longitudinal joint strength ,we get\n",
+ "#p*d*L=rho1*2*t*L*sigma\n",
+ "#After rearranging and further simplifying we get\n",
+ "t=P*d*(2*sigma*rho1)**-1 #mm\n",
+ "\n",
+ "#Considering Longitudinal force\n",
+ "#pi*d**2*4**-1*P=rho2*pi*d*t*sigma\n",
+ "#After rearranging and further simplifying we get\n",
+ "t2=P*d*(4*sigma*rho2)**-1\n",
+ "\n",
+ "#Result\n",
+ "print\"Thickness of plate required is\",round(t,2),\"mm\""
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Thickness of plate required is 11.9 mm\n"
+ ]
+ }
+ ],
+ "prompt_number": 45
+ },
+ {
+ "cell_type": "heading",
+ "level": 1,
+ "metadata": {},
+ "source": [
+ "Example 8.8.5,Page No.326"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "import numpy as np\n",
+ "\n",
+ "#Initilization of Variables\n",
+ "\n",
+ "#Boiler Dimensions\n",
+ "t=16 #mm #Thickness\n",
+ "p=2 #N/mm**2 #internal pressure\n",
+ "f=150 #N/mm**2 #Permissible stress\n",
+ "rho1=0.75 #Longitudinal joints\n",
+ "rho2=0.45 #circumferential joints\n",
+ "\n",
+ "#Calculations\n",
+ "\n",
+ "#Equating Bursting force to longitudinal joint strength ,we get\n",
+ "d1=rho1*2*t*f*p**-1 #mm\n",
+ "\n",
+ "#Considering circumferential strength \n",
+ "d2=4*rho2*t*f*p**-1 #mm\n",
+ "\n",
+ "#Result\n",
+ "print\"Largest diameter of Boiler is\",round(d1,2),\"mm\""
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Largest diameter of Boiler is 1800.0 mm\n"
+ ]
+ }
+ ],
+ "prompt_number": 52
+ },
+ {
+ "cell_type": "heading",
+ "level": 1,
+ "metadata": {},
+ "source": [
+ "Example 8.8.6,Page No.329"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "import numpy as np\n",
+ "\n",
+ "#Initilization of Variables\n",
+ "\n",
+ "d=250 #mm #Diameter iron pipe\n",
+ "t=10 #mm #Thickness\n",
+ "d2=6 #mm #Diameter of steel\n",
+ "p=80 #N/mm**2 #stress\n",
+ "P=3 #N/mm**2 #Pressure\n",
+ "E_c=1*10**5 #N/mm**2\n",
+ "mu=0.3 #poissoin's ratio\n",
+ "E_s=2*10**5 #N/mm**2\n",
+ "n=1 #No.of wires\n",
+ "\n",
+ "#Calculations\n",
+ "\n",
+ "L=6 #mm #Length of cyclinder\n",
+ "\n",
+ "#Force Exerted by steel wire at diameterical section\n",
+ "F=p*2*pi*d2**2*1*4**-1 #N\n",
+ "\n",
+ "#Initial stress in cyclinder\n",
+ "f_c=F*(2*t*d2)**-1 #N/mm**2\n",
+ "\n",
+ "#LEt due to fluid pressure alone stresses developed in steel wire be F_w and in cyclinder f1 and f2\n",
+ "f2=P*d*(4*t)**-1 #N/mm**2\n",
+ "\n",
+ "#Considering the equilibrium of half the cyclinder, 6mm long we get\n",
+ "#F_w*2*pi*4**-1*d2**2*n+f1*2*t*d2=P*d*d2\n",
+ "#After further simplifying we get\n",
+ "#F_w+2.122*f1=79.58 . ......................................(1)\n",
+ "\n",
+ "#Equating strain in wire to circumferential strain in cyclinder \n",
+ "#F_w=(f1-mu*f2)*E_s*E_c**-1 #N/mm**2\n",
+ "#After further simplifying we get\n",
+ "#F_w=2*f1-11.25 ....................................(2)\n",
+ "\n",
+ "#Sub in equation in1 we get\n",
+ "f1=(79.58+11.25)*(4.122)**-1 #N/mm**2\n",
+ "F_w=2*f1-11.25 #N/mm**2\n",
+ "\n",
+ "#Final stresses\n",
+ "#1) In steel Wire\n",
+ "sigma=F_w+p #N/mm**2\n",
+ "\n",
+ "#2) In Cyclinder\n",
+ "sigma2=f1-f_c\n",
+ "\n",
+ "#Result\n",
+ "print\"Final Stresses developed in:cyclinder is\",round(sigma,2),\"N/mm**2\"\n",
+ "print\" :Steel is\",round(sigma2,2),\"N/mm**2\" "
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Final Stresses developed in:cyclinder is 112.82 N/mm**2\n",
+ " :Steel is -15.66 N/mm**2\n"
+ ]
+ }
+ ],
+ "prompt_number": 8
+ },
+ {
+ "cell_type": "heading",
+ "level": 1,
+ "metadata": {},
+ "source": [
+ "Example 8.8.7,Page No.332"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "import numpy as np\n",
+ "\n",
+ "#Initilization of Variables\n",
+ "\n",
+ "d=750 #mm #Diameter of shell\n",
+ "t=8 #mm #THickness\n",
+ "p=2.5 #N/mm**2\n",
+ "E=2*10**5 #N/mm**2\n",
+ "mu=0.25 #Poissoin's ratio\n",
+ "\n",
+ "#Calculations\n",
+ "\n",
+ "#Hoop stress\n",
+ "f1=f2=p*d*(4*t)**-1 #N/mm**2\n",
+ "\n",
+ "#Change in Diameter\n",
+ "dell_d=d*p*d*(1-mu)*(4*t*E)**-1 #mm\n",
+ "\n",
+ "#Change in Volume\n",
+ "dell_V=3*p*d*(1-mu)*(4*t*E)**-1*pi*6**-1*d**3\n",
+ "\n",
+ "#Answer for Change in diameter is incorrect in book\n",
+ "\n",
+ "#Result\n",
+ "print\"Stress introduced is\",round(f1,2),\"N/mm**2\"\n",
+ "print\"Change in Diameter is\",round(dell_d,2),\"N/mm**2\"\n",
+ "print\"Change in Volume is\",round(dell_V,2),\"mm**3\""
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Stress introduced is 58.59 N/mm**2\n",
+ "Change in Diameter is 0.16 N/mm**2\n",
+ "Change in Volume is 145608.33 mm**3\n"
+ ]
+ }
+ ],
+ "prompt_number": 56
+ },
+ {
+ "cell_type": "heading",
+ "level": 1,
+ "metadata": {},
+ "source": [
+ "Example 8.8.8,Page No.333"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "import numpy as np\n",
+ "\n",
+ "#Initilization of Variables\n",
+ "\n",
+ "d=600 #mm #Diameter of sherical shell\n",
+ "t=10 #mm #Thickness\n",
+ "f=80 #N/mm**2 #Permissible stress\n",
+ "rho=0.75 #Efficiency joint\n",
+ "\n",
+ "#Calculations\n",
+ "\n",
+ "#Max Pressure\n",
+ "p=f*4*t*rho*d**-1 #N/mm**2\n",
+ "\n",
+ "#Result\n",
+ "print\"Max Pressure is\",round(p,2),\"N/mm**2\""
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Max Pressure is 4.0 N/mm**2\n"
+ ]
+ }
+ ],
+ "prompt_number": 60
+ },
+ {
+ "cell_type": "heading",
+ "level": 1,
+ "metadata": {},
+ "source": [
+ "Example 8.8.9,Page No.333"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "import numpy as np\n",
+ "\n",
+ "#Initilization of Variables\n",
+ "\n",
+ "L=1000 #mm #Length of shell\n",
+ "d=200 #mm #Diameter\n",
+ "t=6 #mm #Thickness\n",
+ "p=1.5 #N/mm**2 #Internal Pressure\n",
+ "E=2*10**5 #N/mm**2\n",
+ "mu=0.25 #Poissoin's Ratio\n",
+ "\n",
+ "#Calculations\n",
+ "\n",
+ "#Change in Volume of sphere\n",
+ "dell_V_s=3*p*d*(1-mu)*(4*t*E)**-1*pi*6**-1*d**3\n",
+ "\n",
+ "#Hoop stress\n",
+ "f1=p*d*(2*t)**-1 #N/mm**2\n",
+ "\n",
+ "#Longitudinal stress\n",
+ "f2=p*d*(4*t)**-1 #N/mm**2\n",
+ "\n",
+ "#Principal strain\n",
+ "e1=(f1-mu*f2)*E**-1\n",
+ "e2=(f2-mu*f1)*E**-1\n",
+ "\n",
+ "V_c=1000 #mm**3\n",
+ "\n",
+ "#Change in Volume of cyclinder\n",
+ "dell_V_c=(2*e1+e2)*pi*4**-1*d**2*L\n",
+ "\n",
+ "#Total Change in Diameter\n",
+ "dell_V=dell_V_s+dell_V_c #mm**3\n",
+ "\n",
+ "#Result\n",
+ "print\"Change in Volume is\",round(dell_V,2),\"mm**3\""
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Change in Volume is 8443.03 mm**3\n"
+ ]
+ }
+ ],
+ "prompt_number": 66
+ },
+ {
+ "cell_type": "heading",
+ "level": 1,
+ "metadata": {},
+ "source": [
+ "Example 8.8.10,Page No.337"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "import numpy as np\n",
+ "%matplotlib inline\n",
+ "\n",
+ "#Initilization of Variables\n",
+ "\n",
+ "d1=400 #mm #Internal Diameter\n",
+ "t=100 #mm #Thickness\n",
+ "p=80 #N/mm**2 #Fluid pressure\n",
+ "\n",
+ "\n",
+ "#Calculations\n",
+ "\n",
+ "#Internal Radius\n",
+ "r1=d1*2**-1 #mm\n",
+ "\n",
+ "#Outer Radius\n",
+ "r_o=r1+t #mm\n",
+ "\n",
+ "p1=80 #N/mm**2\n",
+ "p2=0\n",
+ "\n",
+ "#Now From Lame's Euation\n",
+ "#p_x=b*(x**2)**-1-a\n",
+ "#at x=200 #mm \n",
+ "p_x=80 #N/mm**2\n",
+ "#80=b*(200**2)**-1-a ..........................(1)\n",
+ "\n",
+ "#at x=300 #mm\n",
+ "#p_x2=0\n",
+ "#0=b*(300**2)**-1-a ...........................(2)\n",
+ "\n",
+ "#Sub equation 2 from 1\n",
+ "#80=b*(200**2)**-1-b*(300**2)**-1\n",
+ "#After Further simplifying we get\n",
+ "b=(50000)**-1*(200**2*300**2*80)\n",
+ "\n",
+ "#From equation 2 we get\n",
+ "a=b*(300**2)**-1\n",
+ "\n",
+ "#Variation of radial pressure p_x;\n",
+ "#p_x=b*(x**2)**-1-a\n",
+ "#After sub values and further simplifying we get\n",
+ "\n",
+ "#Radial pressure Variation\n",
+ "#At \n",
+ "x=200 #mm\n",
+ "p_x=b*(x**2)**-1-a #N/mm**2\n",
+ "\n",
+ "#At\n",
+ "x2=250 #mm\n",
+ "p_x2=b*(x2**2)**-1-a #N/mm**2\n",
+ "\n",
+ "#At \n",
+ "x3=300 #mm\n",
+ "p_x3=b*(x3**2)**-1-a #N/mm**2\n",
+ "\n",
+ "\n",
+ "#Hoop stress Distribution\n",
+ "#Variation of F_x\n",
+ "\n",
+ "#At \n",
+ "x=200 #mm\n",
+ "F_x=b*(x**2)**-1+a #N/mm**2\n",
+ "\n",
+ "#At\n",
+ "x2=250 #mm\n",
+ "F_x2=b*(x2**2)**-1+a #N/mm**2\n",
+ "\n",
+ "#At\n",
+ "x3=300 #mm\n",
+ "F_x3=b*(x3**2)**-1+a #N/mm**2\n",
+ "\n",
+ "#Result\n",
+ "print\"Max Hoop stress is\",round(F_x,2),\"N/mm**2\"\n",
+ "print\"Min Hoop stress is\",round(F_x3,2),\"N/mm**2\"\n",
+ "print\"Plot of Hoop stress\"\n",
+ "\n",
+ "#Plotting Variation of hoop stress\n",
+ "\n",
+ "X1=[x,x2,x3]\n",
+ "Y1=[p_x,p_x2,p_x3]\n",
+ "Y2=[-F_x,-F_x2,-F_x3]\n",
+ "Z1=[0,0,0]\n",
+ "plt.plot(X1,Y1,X1,Y2,X1,Z1)\n",
+ "plt.xlabel(\"Length x in mm\")\n",
+ "plt.ylabel(\"Radial Stress Distribution & Hoop Stress Distribution in N/mm**2\")\n",
+ "plt.show()\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Max Hoop stress is 208.0 N/mm**2\n",
+ "Min Hoop stress is 128.0 N/mm**2\n",
+ "Plot of Hoop stress\n"
+ ]
+ },
+ {
+ "metadata": {},
+ "output_type": "display_data",
+ "png": "iVBORw0KGgoAAAANSUhEUgAAAZIAAAFRCAYAAABe/ivgAAAABHNCSVQICAgIfAhkiAAAAAlwSFlz\nAAALEgAACxIB0t1+/AAAIABJREFUeJzt3XlU1PX+P/DnsAkICKKyDBoIKqBsMwouecXUcslyKUsz\nzLJb9i1L/aktt7TN7WY39F6qW3nt3pOV5pq55YJpLhhgmJjKlqyKogIC4sD798fER0YYBmb4DAM8\nH+fMYeY9y/s1n9udl+9dIYQQICIiMpJVSwdAREStGxMJERGZhImEiIhMwkRCREQmYSIhIiKTMJEQ\nEZFJmEiIiMgkehOJRqPBJ598gr/97W/4+eefdZ577733ZA+MiIhaB72J5LnnnsNPP/0Ed3d3zJkz\nB/PmzZOe27Rpk1mCIyIiy6c3kSQkJGD9+vWYO3cujh8/jpKSEkyaNAkVFRXmjI+IiCyc3kRy+/Zt\n6b6trS0+++wzhIWFYcSIESgtLTVLcEREZPn0JhK1Wo1du3bplC1evBgzZ85EVlaW3HEREVEroeCm\njUREZIoGp/++8cYbAIA333zTLMEQEVHr02AiiYyMxP/93/+hf//+5oqHiIhaGRt9T7z99tsoKirC\n119/DRsbG5w6dQqLFy82Z2xERNQK6G2R1CSNo0ePQqFQMIkQEVG9GhxsP3XqFMLDw/Hrr78iLCzM\nnHEREVErobdFIoTAxo0bAQDfffed2QIiIqLWRW8iUSgUHGwnIiKDONhOREQm4WA7ERGZhIPtRERk\nEoNbpGg0Gvzwww/IysqCRqPRvkmh0NlWnoiI2i+9YyQ1xo8fDwcHB4SEhMDKigcqEhGRLoOJJDc3\nFykpKeaIhYiIWiGDTYz7778fe/bsMUcsRETUChlskQwePBgTJ05EdXU1bG1tAWjHSIqLi2UPjoiI\nLJ/BwXZfX19s374d/fr14xgJERHVYTAz9OjRA3379mUSISKiehns2vLz88Pw4cMxZswY2NnZAeD0\nXyIiuqNRicTPzw+VlZWorKyEEAIKhcIcsRERUSvAM9uJiMgkBlskJ0+exNKlS+usbOfaEiIiAhrR\nIunduzc++OCDOrO2fH195Y6NiIhaAYMtkq5du+Khhx4yRyxERNQKGWyR7N27F99++y1GjhypM2tr\n0qRJZgmQiIgsm8EWyZdffolz585Bo9HodG0xkRAREdCIFkmfPn3w+++/c8ovERHVy+By9cGDByM1\nNdUcsRARUStksEUSGBiI9PR0+Pn5oUOHDto3cfovERH9yWAiycrKqrec03+JiAhoYLBdrVbj3nvv\nxZgxYxAdHQ17e3tzxkVERK2E3hbJ7du3ceTIEezevRvx8fHo3LkzRo8ejTFjxqB3797mjpOIiCxU\no/fays3Nxe7du7Fnzx6kpaVh4MCBiIuLkzs+IiKycEZt2lhVVYXjx49jyJAhcsREREStiN4xkpkz\nZ9ZbXrOeZO3atfJERERErYreRDJu3DgoFAqd80eys7Px4YcfoqqqymwBEhGRZWtU11Z6ejqWLVuG\nn376CXPnzsUzzzwj7btFRETtW4Mr28+ePYvp06dj/PjxGDJkCFJTUzF79mwmESIikuhtkTzyyCNI\nSkrC/Pnz8eijj8La2lpnv63OnTubLUgiIrJcehNJzcr1+jZrVCgUyMjIMLnyp59+Gj/88AO6deuG\n06dPAwCKiorw2GOP4Y8//oCvry82bNgAV1dXAMCyZcuwdu1aWFtbY/Xq1bj//vtNjoGIiEzTome2\nHz58GE5OToiJiZESycKFC9GlSxcsXLgQK1aswLVr17B8+XKkpqZi2rRpOHnyJHJzczFy5EicP39e\nZ2t7IiIyvxb9FR46dCjc3Nx0yrZv344ZM2YAAGbMmIGtW7cCALZt24apU6fC1tYWvr6+CAgIQEJC\ngtljJiIiXRb3z/lLly7Bw8MDAODh4YFLly4BAPLy8uDj4yO9zsfHB7m5uS0SIxER3WFxiaQ2hULR\n4IFaPGyLiKjlGTxqF9BuiXLp0iVoNBqprEePHrIE5OHhgYKCAnh6eiI/Px/dunUDACiVSmRnZ0uv\ny8nJgVKprPP+gIAApKenyxIbEVFb5e/vj7S0NKPea7BFsmbNGnh4eGDkyJEYN26cdJPLQw89hC+/\n/BKA9rz4CRMmSOXffPMNKisrkZmZiQsXLiAyMrLO+9PT0yGE4E0ILF68uMVjsJQbrwWvBa9FwzdT\n/gFusEXy0Ucf4dy5c3B3dze6En2mTp2KQ4cO4cqVK+jevTveeecdvPrqq5gyZQq++OILafovAAQH\nB2PKlCkIDg6GjY0N4uLi2LVFRGQBDCaSHj16wMXFRZbKv/7663rL9+3bV2/566+/jtdff12WWIiI\nyDgGE4mfnx+GDx+OcePGSVujKBQKzJs3T/bgyDTR0dEtHYLF4LW4g9fiDl6L5mFwQeKSJUu0L/yz\nG0kI7W7Aixcvlj04Y9TsWExERI1nym9ni65slwMTCRFR05ny26m3a+vll19GbGwsxo8fX2+F27dv\nN6pCIiJqW/QmkpiYGADA/Pnz6zzH2VJERFSDXVtERGTSb6dFb5FCRESWj4mEiIhM0iYTyaJFwIYN\nQFoawF4uIiJ5GVyQeO7cOXzwwQfIysqSNm1UKBQ4cOCA7MEZy8kJ+Ppr4P/9P6C4GIiIANRq7U2l\nAnr1AngeFhFR8zA42B4aGorZs2dDpVLB2tpa+yaFAmq12iwBNtXdA0aFhUBSkvaWmKi9Xb0KhIff\nSSxqNdCnD/Dn1yMiandkXZCoVquRmJho1Ie3hMZcjKIi3eSSlATk5wNhYXcSi1oNBAUBNo3aaJ+I\nqHWTNZEsWbIEXbt2xaRJk9ChQwepvHPnzkZVKDdjL8b160Bysm5yyc4GQkLuJBeVCujbF/hzyzEi\nojZD1kTi6+tbZwGiQqFARkaGURXKrTnXkZSUAKdO3UksiYlAZqY2mdROLiEhQK0cS0TU6nCvrVrk\nXpB48ybw66+6ySUtTTvGUnvMJTQUcHCQLQwiomYlayKprKzExx9/jJ9++gkKhQLDhg3D888/D1tb\nW6MqlFtLrGwvLwdSUnS7xX7/HQgI0E0uYWFAx45mDY2IqFFkTSTPPPMMNBoNZsyYASEE/ve//8HG\nxgaff/65URXKzVK2SLl1Czh9Wje5nDkD+PnpDuiHhwPOzi0dLRG1d7ImktDQUKSkpBgssxSWkkjq\nU1kJpKbemYaclKRNNt276465qFRAp04tHS0RtSeybCMvvcDGBmlpaQgICAAApKenw4ZzYo1iZ6dt\ngYSHA888oy3TaICzZ+8kls2btWMwnp663WIqFWChE+WIqJ0z2CLZv38/Zs6cCT8/PwBAVlYW/vOf\n/+C+++4zS4BNZcktksaqqgLOndNdRHnqFODuXje5dO3a0tESUVsg+6ytiooKnDt3DgqFAn369NFZ\nT2Jp2kIiqU91NXDhgu6YS1IS4OJSN7l4erZ0tETU2siSSPbv348RI0Zg06ZNOhXUrCmZNGmSkeHK\nq60mkvpUV2vXtdQec0lM1E47rp1Y1GrA2xvgeWREpI8sYyQ//fQTRowYge+//77eExEtNZG0J1ZW\ngL+/9jZlirZMCOCPP+4klrg47X1r67rJpXt3JhciMp3Brq2MjAz07NnTYFlz8/X1hYuLC6ytrWFr\na4uEhAQUFRXhsccewx9//AFfX19s2LABrq6uOu9rTy2SxhICyMnRbbUkJmrHYmpmidVMR/b1ZXIh\nao9kHSNRqVRISkrSKTPHRo5+fn5ITEzU2dNr4cKF6NKlCxYuXIgVK1bg2rVrWL58uc77mEgaLy9P\nd8wlMREoK9NNLiqVtsXDbfeJ2jZZurbOnj2L1NRUXL9+HZs3b4YQAgqFAsXFxaioqDA62Ka4+0tt\n374dhw4dAgDMmDED0dHRdRIJNZ63t/b24IN3yi5dupNUvv0WWLgQuHFDe6ZL7eTSuzeTCxFp6W2R\nbNu2DVu2bMH333+Phx56SCp3dnbG448/jsGDB8saWM+ePdGpUydYW1vjueeew7PPPgs3Nzdcu3YN\ngDbJdO7cWXpcgy2S5nflSt0zXQoL657pEhjIM12IWitZu7aOHTuGQYMGGfXhpsjPz4eXlxcKCwsx\natQorFmzBg899JBO4ujcuTOKiop03sdEYh7XrtU90yUvT7tZZe3kEhQEWOi2bERUi6wr2//973/j\n3//+t05lALB27VqjKmwsLy8vAEDXrl0xceJEJCQkwMPDAwUFBfD09ER+fj66detW73uXLFki3Y+O\njkZ0dLSssbZHbm7AiBHaW40bN+5su79vH7ByJXDxItCvn263WL9+PNOFqKXFx8cjPj6+WT7LYIvk\nu+++k5JHeXk5tmzZAm9vb6xZs6ZZAqhPWVkZqqqq4OzsjJs3b+L+++/H4sWLsW/fPri7u2PRokVY\nvnw5rl+/zsF2C1dSUnfb/YwMIDi47pku9vYtHS1R+2XW80iqq6sxZMgQHDt2zKgKGyMzMxMTJ04E\nAGg0GjzxxBN47bXXUFRUhClTpuDixYuc/tuKlZXVTS4XLmgH8GumIatU2m33eaYLkXmYNZH8/vvv\nePDBB5GWlmZUhXJjImmdKirqnuly9qx26nHtMZfwcJ7pQiQHWROJk5OT1LWlUCjg4eGB5cuXY/Lk\nyUZVKDcmkrbj1i3gt9/qnulyzz11k4uLS0tHS9S68ajdWphI2rbbt++c6VKTYFJSAB+fume63NXr\nSUQNkDWRCCGwefNmHDlyBFZWVrj33nul8QtLxETS/mg02qONayeXX38FPDzqJhd395aOlsgyyZpI\nZs+ejfT0dEydOhVCCHz77bfw9/dHXFycURXKjYmEAO0+YufP6y6iTE7WHg5Wu1tMreaZLkSAzIkk\nMDAQqampsPpzP4zq6moEBwfj999/N6pCuTGRkD7V1UBaWt0zXZyc6p7p8ucyJqJ2Q9YFiQEBAdJ0\nWwC4ePGidOwuUWtiZaWdYty7N/D449oyIe6c6ZKUBMTGau936KDbalGpAKWSOyMT1Udvi2T8+PEA\ngOLiYiQkJCAyMhIKhQIJCQkYMGCAtHmipWGLhEwlhHZF/t3b7isUdc906dGDyYXaBlm6thpaOq9Q\nKDBs2DCjKpQbEwnJQQggN1c3uSQlAZWVdZOLnx+TC7U+nP5bCxMJmVN+ft0zXUpL657pEhDAbffJ\nssmSSIYMGYKff/5ZZ0Fi7QqLi4uNqlBuTCTU0i5frptcrl0D+vbVHm+sVGrXvdT+6+3NjSypZbFF\nUgsTCVmiq1e1Cylzc7XHHt/9t6BAu6NyfUmm9l9n55b+JtRWyZZINBoN+vXrZ7FTfevDREKtUVWV\ntiVTX6KpuZ+Toz047O4Ec3ey6dKF3WjUdLJN/7WxsUGfPn3wxx9/4J577jGqAiIyzNpau3bFywvo\n37/+1wihPfPl7mRz6hSwY8edxyUl2q6yhlo3Xl7sSqPmY7Bra+jQoUhOTkZkZCQ6/rntqkKhwPbt\n280SYFOxRULtXXm59rTK2q2Zu/9euqRd5W+oK83JqaW/DZmLrGMkhw4dqvPhnP5L1LpVVWmTSX1d\naLX/2tg0riuN051bP1kTycKFC7Fy5UqdskWLFmHFihVGVSg3JhKi5iEEcP26/lZNTfIpLdXflVZz\n38sLsLVt6W9EDZE1kURERCA5OVmnLCQkBKdPnzaqQrkxkRCZV01Xmr5kk5OjnUjg7t5wV5pSya60\nliTLYPvHH3+MuLg4pKenIyQkRCovKSnBkCFDjKqMiNoeBwftSZb+/vpfo9Hc6UqrnWTOnNF9bGen\nvwut5q+7O7vSLI3eFsmNGzdw7do1vPrqq1ixYoWUqVxcXNC5c2ezBtkUbJEQtU5CaBduNjQFOjcX\nuHlTf6Kp3ZVmY3BLWqpN1q6ttLQ0+Pj4wN7eHgcPHsTp06cRExMDVws9fo6JhKhtKysz3JVWWKid\nBGCoK+3PiagEmRNJeHg4fvnlF2RlZWHs2LF4+OGHcebMGezcudOoCuXGREJENV1pDSWb3FzA3t5w\nV1rnzu2jK80sg+0rV66Eg4MDXnrppXoH4C0FEwkRNYYQQFGR4SnQ5eWGu9I8PVt/V5qsB1vZ2dlh\n/fr1+O9//4vvv/8eAHD79m2jKiMishQKhXbg3t0dCA3V/7qysroJ5sIF4ODBO8mnsFB7ZLOhrjRH\nR/N9P3My2CI5c+YMPvnkEwwePBhTp05FRkYGNmzYgFdffdVcMerYvXs3XnnlFVRVVWHWrFlYtGiR\nzvNskRCRuWk02o03G+pKy8vTznAztJuAm1vLdKW1m91/q6qq0KdPH+zbtw9KpRIDBgzA119/jaCg\nIOk1TCREZImE0O4Cbagr7datul1pdycbT0/t/mzNSZaurUcffRQbN27UWUNSu8KUlBSjKjRFQkIC\nAgICpPPjH3/8cWzbtk0nkRARWSKFQjuTrEsXICxM/+tu3qybYM6fBw4cuJN8rlwBunUz3JXm4GCe\n76Y3kcTGxgKANC5iCXJzc9G9e3fpsY+PD06cONGCERERNa+OHYHevbU3fW7frr8rLTlZtyutY0fD\nXWmurqZ3pelNJN7e3gAAV1dXXLhwAQDQu3dvdOrUybQaTXD3SY1ERO2Rra32tM1a/66uo6Yr7e5k\nc/So7uPKSm1CMYXeRHLr1i0899xz2Lp1K/z8/CCEQFZWFiZOnIhPP/0Udi1wmIFSqUR2drb0ODs7\nGz71XIEltRJO9J83IqL2RAGgy5+38Hqej//zBgC4ALxtSl36BtvffPNNZGRk4JNPPoHzn+d7lpSU\n4IUXXoCvry/effddE6o1jkajQZ8+fbB//354e3sjMjKSg+1ERM1Alllbffv2RUJCgnSYVY3S0lJE\nRUXhzJkzRlVoql27dknTf5955hm89tprOs8zkRARNZ0ss7asra3rJBEAcHJyglULHgg9ZswYjBkz\npsXqJyIiXQ2ubC8qKqpTJoTgoDcREUn0JpLi4mKo1WpzxkJERK1Qq1rZ3hgcIyEiajpTfjtbbrCD\niIjaBCYSIiIyCRMJERGZxGAiSUtLQ0VFBQDg4MGDWL16Na5fvy57YERE1DoYTCSTJ0+GjY0N0tLS\n8NxzzyE7OxvTpk0zR2xERNQKGEwkVlZWsLGxwebNm/HSSy/h73//O/Lz880RGxERtQIGE0nto3Yf\nfPBBCCF41C4REUkMJpK1a9fi+PHjeOONN+Dn54esrCw8+eST5oiNiIhagSYtSCwqKkJOTg5CQ0Pl\njMkkXJBIRNR0si5IHDZsGIqLi1FUVAS1Wo1Zs2Zh7ty5RlVGRERtj8FEcuPGDbi4uGDz5s2IiYlB\nQkIC9u3bZ47YiIioFTCYSKqqqpCfn48NGzZg3LhxAHjkLRER3WEwkbz11lt44IEH4O/vj8jISKSn\np6NXr17miI2IiFoB7v5LRETyDrafO3cOI0aMQN++fQEAKSkpeO+994yqjIiI2h6DieTZZ5/F0qVL\nYWdnBwAICQnB119/LXtgRETUOhhMJGVlZYiKipIeKxQK2NrayhoUERG1HgYTSdeuXZGWliY9/u67\n7+Dl5SVrUERE1HoYHGxPT0/HX//6Vxw7dgyurq7w8/PDV199BV9fXzOF2DQcbCciajpTfjttGnqy\nqqoKH3/8Mfbv34/S0lJUV1fDxcXFqIqIiKhtarBry9raGkeOHIEQAk5OTmZJIkuWLIGPjw8iIiIQ\nERGBXbt2Sc8tW7YMvXr1QmBgIPbu3St7LEREZFiDLRIACA8Px8MPP4xHH30Ujo6OALRNoEmTJskS\nkEKhwLx58zBv3jyd8tTUVHz77bdITU1Fbm4uRo4cifPnz8PKiqcFExG1JIOJpKKiAu7u7jhw4IBO\nuVyJBEC9/XTbtm3D1KlTYWtrC19fXwQEBCAhIQEDBw6ULQ4iIjLMYCKZNWsW7r33Xp2yI0eOyBYQ\nAKxZswb//e9/0b9/f6xatQqurq7Iy8vTSRo+Pj7Izc2VNQ4iIjLMYL/QnDlzGlXWFKNGjUJISEid\n2/bt2zF79mxkZmbi1KlT8PLywvz58/V+DjePJCJqeXpbJMeOHcPRo0dx+fJlfPjhh1J3U0lJCaqq\nqkyq9Mcff2zU62bNmoXx48cDAJRKJbKzs6XncnJyoFQq633fkiVLpPvR0dGIjo42OlYiorYoPj4e\n8fHxzfJZeteRHDp0CAcPHsSnn36K559/Xip3dnbG+PHjZdsBOD8/X1rw+I9//AMnT57E+vXrkZqa\nimnTpiEhIUEabE9LS6vTKuE6EiKipjPlt9PggsSsrCxp8WFRURFcXV1lnSkVExODU6dOQaFQwM/P\nD59++ik8PDwAAEuXLsXatWthY2OD2NhYPPDAA3Xez0RCRNR0siSSt99+G1OmTEFQUBBu3bqF0aNH\n49dff4WNjQ2++uorjBo1yqSg5cJEQkTUdLJsI//tt98iMDAQAPDll19CCIHCwkIcOnQIr7/+unGR\nEhFRm6M3kXTo0EEaf9i9ezcef/xxWFtbIygoCBqNxmwBEhGRZWswkZw+fRqFhYWIj4/H/fffLz1X\nVlZmluCIiMjy6Z3++9FHH+GRRx5BYWEh5s6di549ewIAfvjhB6hUKrMFSERElo1nthMRkbxnthMR\nETWEiYSIiEzCREJERCYxuPtveXk54uLicOTIESgUCgwdOhSzZ8+Gvb29OeIjIiILZ3Cw/dFHH4WL\niwumT58OIQTWr1+PGzduYOPGjeaKsUk42E5E1HSy7rUVHByM1NRUg2WWgomEiKjpZJ21pVKpcOzY\nMenx8ePHoVarjaqMiIjaHoMtksDAQJw/fx7du3eHQqHAxYsX0adPH9jY2EChUCAlJcVcsTYKWyRE\nRE0n+zbyNZUAdc9Tr9li3lIwkRARNZ2siQQATp06hcOHD0uztsLCwoyqzByYSIiImk7WMZLY2FhM\nnz4dhYWFuHTpEqZPn47Vq1cbVRkREbU9BlskISEhOH78ODp27AgAuHnzJgYOHIjTp0+bJcCmYouE\niKjpZN9rq/bRunIes0tERK2PwZXtM2fORFRUFCZNmgQhBLZu3Yqnn37aHLEREVEr0KjB9sTERPz8\n888AgKFDhyIiIkL2wIzFri0ioqYz5bfTYIsEAKytraXpv+zaIiKi2po0a+vy5cuctUVERDoMJpLP\nP/8cJ06cwDvvvIN3330Xx48fx2effWZSpRs3bkTfvn1hbW2NpKQkneeWLVuGXr16ITAwEHv37pXK\nExMTERISgl69euHll182qX4iImo+LTJrKyQkBFu2bMFf/vIXnfLU1FR8++23SE1Nxe7du/HCCy9I\nfXazZ8/GF198gQsXLuDChQvYvXu3yXEQEZHpWmTWVmBgYL3l27Ztw9SpU2FrawtfX18EBATgxIkT\nuOeee1BSUoLIyEgAQExMDLZu3YrRo0ebFAcREZnOYCKZN28ehg0bJh1stW7dOtlmbeXl5WHgwIHS\nYx8fH+Tm5sLW1hY+Pj5SuVKpRG5uriwxEBFR0+hNJEVFRdJ9Pz8/aXNGhUKBoqIidO7cucEPHjVq\nFAoKCuqUL126FOPHjzcyXCIisjR6E4lKpZKm/Obl5cHb21t6TqFQICMjo8EP/vHHH5scjFKpRHZ2\ntvQ4JycHPj4+UCqVyMnJ0SlXKpV6P2fJkiXS/ejoaERHRzc5FiKitiw+Ph7x8fHN82GiEcLDwxvz\nsiaLjo4Wv/zyi/T4zJkzIiwsTNy6dUtkZGSInj17iurqaiGEEJGRkeL48eOiurpajBkzRuzatave\nz2zkVyIiolpM+e1skdWFW7ZsQffu3XH8+HGMGzcOY8aMAaA9wnfKlCkIDg7GmDFjEBcXJ7WK4uLi\nMGvWLPTq1QsBAQEcaCcishCN2iIlIiICycnJ5ojHZNwihYio6WTZImXVqlXSBxcWFuLDDz+UKlEo\nFJg3b55x0RIRUZuiN5GUlJRI3UqzZs1CSUmJ2YIiIqLWo1FdW60Ju7aIiJpO9oOtiIiI9GEiISIi\nkzCREBGRSRqdSBYsWIDExEQIIfDKK6/IGRMREbUijU4kkZGRWLlyJUJDQ3Hjxg05YyIiolZEbyL5\n+OOPcfHiRenxgw8+iNLSUri4uKB3795mCY6IiCyf3kTyr3/9Cz169AAAXLt2DSNHjkRQUBAOHz6M\nzZs3my1AIiKybHoTiUajQWlpKbKysjB06FBERUXhgw8+gJWVFSoqKswZIxERWTC9K9vnz58Pf39/\naDQa+Pv7w9nZGVlZWdiwYQO7toiISNLgynaNRiP9fe2117B3715ERETgo48+QpcuXcwWZFNwZTsR\nUdOZ8tvJLVKIiNqpalGNwpuFyC3Jhdpb3fy7/xIRUetVWVWJ/JJ85BTnILckV/u3OBc5JX/+Lc5B\nfmk+XDq4QOms/8TZxmCLhIiolSm5VaKbHGoniz//Xiu/Bk8nTyhdlPBx8YHS+a6/Lkp4O3vD3sYe\nALu2dDCREFFrVS2qcaXsSr3JoXaZplqjNznUPO7WsRusrawbXbesiaSiogKbNm1CVlaWNPiuUCjw\n1ltvGVWh3JhIiMgS3a66jbySvDpJofbf/JJ8ONk53UkKztq/dyeKTh06SedFNRdZTkis8fDDD8PV\n1RVqtRr29vZGVUJE1JaVVpbWTQ53jUcUlRfBw8mjTitC5aWSHns7e8PB1qGlv06TGWyR9OvXD7/9\n9pu54jEZWyRE1FyEENqupgbGI3KLc1FZVVmna+nuLiePjh5N6moyN1lbJIMHD0ZKSgpCQ0ONqoCI\nyBLdrrqN/NJ8neRwdysiryQPHe061kkOg7sP1ilztXdt9q6m1sRgiyQoKAhpaWnw8/NDhw4dtG9S\nKJCSkmKWAJuKLRIiull5s95B6tp/r5ZdRbeO3RpsRSidla2yq8kYsg62Z2VlSZUAkCry9fU1qkK5\nMZEQtV1CCFwtv2pwPOJW1S2Ds5o8nDxgY8WldDVkn/576tQpHD58GAqFAkOHDkVYWJhRldXYuHEj\nlixZgt9//x0nT56ESqUCoE1aQUFBCAwMBAAMGjQIcXFxAIDExEQ89dRTqKiowNixYxEbG1v/F2Ii\nIWqVNNUdY9fjAAAd4UlEQVQa5Jfk1zseUVOWV5IHBxuHOrOa7k4WbvZu7bqryRiyjpHExsbis88+\nw6RJkyCEwPTp0/Hss89izpw5RlUIACEhIdiyZQuee+65Os8FBAQgOTm5Tvns2bPxxRdfIDIyEmPH\njsXu3bsxevRoo2MgIvO5WXmzTjfT3a2IK2VX0LVjVykp1CSGMM+wO2UuSjjaOrb016G7GEwkn3/+\nOU6cOIGOHTsCAF599VUMHDjQpERS0+JorPz8fJSUlCAyMhIAEBMTg61btzKRELUwIQSKyosMrrKu\n0FRIiaAmKfRy74Vo32ipFeHp5MmuplaqUf+rWVlZ1XtfDpmZmYiIiECnTp3w3nvv4d5770Vubi58\nfHyk1yiVSuTm5soaB1F7p6nWoKC0QG9yyC3WdjnZ29jXGY+IUkZhUtAk6XFnh87samrDDCaSmTNn\nIioqSura2rp1K55++mmDHzxq1CgUFBTUKV+6dCnGjx9f73u8vb2RnZ0NNzc3JCUlYcKECThz5kwj\nvgYRNUXZ7TIpEegbjyi8WYgujl10ZjD5uPggpFuITllHu44t/XWohRlMJPPmzcOwYcNw5MgRKBQK\nrFu3DhEREQY/+Mcff2xyMHZ2drCzswMAqFQq+Pv748KFC1AqlcjJyZFel5OTA6VS/26VS5Yske5H\nR0cjOjq6ybEQtUZCCFyruKbTYqhvVlPZ7TLdrTeclQjoHIBhvsOkx55OnrC1tm3pr0QyiY+PR3x8\nfLN8lt5ZW8XFxXBxcUFRURGAO9N+a5qnnTt3Nrny4cOH44MPPoBarQYAXLlyBW5ubrC2tkZGRgb+\n8pe/4LfffoOrqyuioqKwevVqREZGYty4cZgzZ069YySctUVtVVV1lbarycAqaztrO4Ozmtwd3NnV\nRDpkmf47btw4/PDDD/D19a33P7jMzEyjKgSALVu2YM6cObhy5Qo6deqEiIgI7Nq1C5s2bcLixYth\na2sLKysrvPPOOxg3bhyAO9N/y8vLMXbsWKxevbr+L8REQq1Q+e3yBhfP5Rbn4vLNy3B3dK8zHlE7\nUShdlHCyc2rpr0OtELeRr4WJhCyNEAI5xTlILUxFTnFOvYniZuVNeDt7N7jK2svJi11NJBtZE8mI\nESOwf/9+g2WWgomEWpIQAlnXs5CUn4TE/EQk5SchKT8JVgorhHiEoLtL93pXWXdx7MKuJmpRsixI\nLC8vR1lZGQoLC6VxEkA7dsKpt0TapJF+LV2bNPISkVSgTRr2NvZQe6mh8lLh/wb8H9Teang5eTFR\nUJulN5F8+umniI2NRV5enjQYDgDOzs548cUXzRIckaWoFtW4cPWC1NJIzE9Ecn4yXDq4QO2thtpL\njbkD50LlpYKnk2dLh0tkVga7ttasWYOXXnrJXPGYjF1bZKqq6iqcu3pO28r4M3GcKjiFLo5doPJS\nSa0NlZcKXTt2belwiZqFrGMkX375Zb1N8piYGKMqlBsTCTWFplqDs4Vnta2MP7unfi34FV7OXlLS\nUHupEeEVgc4Opk95J7JUsm7aePLkSSmRlJeX48CBA1CpVBabSIj0qayqxJnLZ3QGwk9fPo3uLt2h\n9lZD5anC5ODJCPcMh6u9a0uHS9RqNHn67/Xr1/HYY49hz549csVkErZICABuaW7h9OXTOgPhZy6f\ngZ+bn9Q1pfZSI9wzHM4dnFs6XKIWJ2uL5G6Ojo4mLUYkam7lt8uRcilFamUk5ifi3JVz6OXeS0oY\nM8JnIMwjjPtCEcnAYCKpvcFidXU1UlNTMWXKFFmDItLnZuVN/HrpV6mVkZiXiLSiNAR2CZSSxrOq\nZxHqEdpujkglamkGu7ZqNvVSKBSwsbFBjx490L17d3PEZhR2bbUdJbdKkFyQrDOmkXktE3279dXp\nnurXrR862HRo6XCJWjXZt0jJz89HQkICrKysMGDAAHh6Wu48eSaS1ulGxQ1pFXhN0sguzkZIt5A7\nScNbjeCuwbCztmvpcInaHFkTyeeff4533nkHw4cPB6Btobz11lt45plnjKpQbkwklq+ovEhnEDwx\nLxEFpQUI8wyTptuqvFQI6hrEE/OIzETWRNK7d28cO3YM7u7uAICrV69i0KBBOH/+vFEVyo2JxLIU\n3izUaWUk5ifiatlVRHhFQOWpbWWovFTo494H1lbWLR0uUbsl66ytLl26wMnpzrbUTk5O6NKli1GV\nUdtWUFogtTRqEkfxrWJpFfjkoMl4/7730cu9F6wU8h7ZTETmozeRrFq1CgAQEBCAqKgoTJgwAQCw\nbds2hIaGmic6skhCCOSV5Om0MpLyk1ChqZAGwKeFTMOq+1fBz82PSYOojdObSEpKSqBQKODv74+e\nPXtKq9sffvhh7mLajgghkF2crbPvVFJ+EqpElTSe8VTYU1gzZg3u6XQP/9sgaod4sBVJhBDIvJ5Z\nZ1t0a4W1tMNtzUC4j4sPkwZRGyLLYPvLL7+M2NhYnQWJtSvcvn27URXKjYmkcapFNdKL0uscwORo\n6yjtO1UzEO7t7N3S4RKRzGRJJImJiVCr1Th06FCdD1coFBg2bJhRFcqNiaSuquoqXCi6oNM9lVyQ\nDFd7V52FfSovFTycPFo6XCJqAbJN/9VoNIiJicH69euNDs7c2nsi0VRrcO7KOZ2B8FMFp9CtY7c6\nZ2l0ceTsOyLSkm36r42NDS5evIhbt26hQwduQWFpblfdxtkrZ3Wm26ZcSoG3s7eUNMb3Hg+Vlwpu\nDm4tHS4RtVEG15H4+fnh3nvvxUMPPQRHR0cA2sw1b9482YOjOyqrKvHb5d90BsJ/u/wbenTqIbUy\nHg1+FOGe4ehk36mlwyWidsRgIvH394e/vz+qq6tRWlpqjpjavQpNBU5fOq1zPvjZwrPo6dZTGgh/\nIvQJhHuGw8nOyfAHEhHJyGAiCQ4OrrNt/IYNG0yqdMGCBdixYwfs7Ozg7++P//znP+jUSfuv6GXL\nlmHt2rWwtrbG6tWrcf/99wPQDv4/9dRTqKiowNixYxEbG2tSDJai7HaZ9iyNWgPh56+eRy/3XtJ0\n25nhMxHmGQZHW8eWDpeIqA6D60giIiKQnJxssKwpfvzxR4wYMQJWVlZ49dVXAQDLly9Hamoqpk2b\nhpMnTyI3NxcjR47EhQsXoFAoEBkZiX/+85+IjIzE2LFjMWfOHIwePbruF7LgwfbSylL8WvCrzkB4\nelE6groG6Uy3DfUIhb2NfUuHS0TtiCyD7bt27cLOnTuRm5uLOXPmSBWUlJTA1tbWuEj/NGrUKOl+\nVFQUNm3aBEC7/crUqVNha2sLX19fBAQE4MSJE7jnnntQUlKCyMhIAEBMTAy2bt1abyKxFMW3ipGc\nr3uWxh83/kDfrn2h8lJhSPchmBM1B3279uVZGkTUqulNJN7e3lCr1di2bRvUarWUSFxcXPCPf/yj\n2QJYu3Ytpk6dCgDIy8vDwIEDped8fHyQm5sLW1tb+Pj4SOVKpRK5ubnNFoOprldcr3OWRk5xDkI9\nQqH2UuM+v/uwYPACBHcNhq21aUmYiMjS6E0kYWFhCAsLwxNPPCG1QIqKipCTkwM3N8NTSUeNGoWC\ngoI65UuXLpVWy7///vuws7PDtGnTjI3f7K6WXa2zLfrlm5cR5qE9S2O0/2i8MfQNBHYJ5FkaRNQu\nGPylGzVqFLZv3w6NRgO1Wo2uXbtiyJAhBlslP/74Y4PPr1u3Djt37sT+/fulMqVSiezsbOlxTk4O\nfHx8oFQqkZOTo1OuVCr1fvaSJUuk+9HR0YiOjm4wFn0u37xc5wCmaxXXEOEZAZWXCg/3eRhvR7+N\n3u69eZYGEbUq8fHx0lHqpjI42B4eHo5Tp07h888/R3Z2Nt5++22EhITg9OnTRle6e/duzJ8/H4cO\nHdI526RmsD0hIUEabE9LS4NCoUBUVBRWr16NyMhIjBs3rtkH2/NL8nWm2yblJ6G0slS7CrzWQHhA\n5wBui05EbY6sB1tVVVUhPz8fGzZswHvvvSdVaIqXXnoJlZWV0qD7oEGDEBcXJ001Dg4Oho2NDeLi\n4qS64uLi8NRTT6G8vBxjx441eqBdCIHcktw626LfqrolTbedHjId/3jgH/Bz9eMOt0REBhhskWzc\nuBHvvvsuhgwZgo8//hjp6elYuHChNNPK0tTOqkIIXLxxUdvKqNU9BUDaFr1mK5EenXowaRBRuyXr\nme2tjUKhwKIfF0mzqOys7XQ2K1R7q6F0VjJpEBHVIkvX1ooVK7Bo0SK89NJLdSpQKBRYvXq1URWa\ng6OtI16OehkqLxW8nL1aOhwiojZNbyIJDg4GAKjV6jrPWfq/5t8a9lZLh0BE1G60ya6tNvaViIhk\nZ8pvZ4PzWNetWweVSgVHR0c4Ojqif//++PLLL42qiIiI2ia9XVtffvklYmNj8eGHHyIiIgJCCCQn\nJ2PBggVQKBSIiYkxZ5xERGSh9HZtRUVF4ZtvvoGfn59OeVZWFh577DGcOHHCLAE2Fbu2iIiaTpau\nrZKSkjpJBAB8fX1RUlJiVGVERNT26E0k9vb6z8No6DkiImpf9HZtOTg4ICAgoN43paeno6ysTNbA\njMWuLSKippNlQeLZs2eNDoiIiNoPriMhIiL51pEQEREZwkRCREQmaVIiKSoqQkpKilyxEBFRK2Qw\nkQwbNgzFxcUoKiqCWq3GrFmzMHfuXHPERkRErYDBRHLjxg24uLhg8+bNiImJQUJCAvbt22eO2IiI\nqBUwmEhqH7U7btw4AJa/jTwREZmPwUTy1ltv4YEHHoC/vz8iIyORnp6OXr16mSM2IiJqBbiOhIiI\n5F1HsnDhQhQXF+P27dsYMWIEunTpgv/9739GVUZERG2PwUSyZ88euLi4YMeOHfD19UV6ejr+/ve/\nmyM2IiJqBQwmEo1GAwDYsWMHHnnkEXTq1ImD7UREJDGYSMaPH4/AwEAkJiZixIgRuHz5ssnbyC9Y\nsABBQUEICwvDpEmTcOPGDQDaQ7McHBwQERGBiIgIvPDCC9J7EhMTERISgl69euHll182qX4iImpG\nohGuXr0qNBqNEEKI0tJSkZ+f35i36bV3715RVVUlhBBi0aJFYtGiRUIIITIzM0W/fv3qfc+AAQPE\niRMnhBBCjBkzRuzatave1zXyK7ULBw8ebOkQLAavxR28FnfwWtxhym+nwRbJzZs38a9//QvPP/88\nACAvLw+//PKLSclr1KhRsLLSVh0VFYWcnJwGX5+fn4+SkhJERkYCAGJiYrB161aTYmgP4uPjWzoE\ni8FrcQevxR28Fs3DYCKZOXMm7OzscPToUQCAt7c33njjjWYLYO3atRg7dqz0ODMzExEREYiOjsaR\nI0cAALm5ufDx8ZFeo1QqkZub22wxEBGR8fQebFUjPT0dGzZswDfffAMA6NixY6M+eNSoUSgoKKhT\nvnTpUowfPx4A8P7778POzg7Tpk0DoE1S2dnZcHNzQ1JSEiZMmIAzZ840+ssQEVELMNT3NWjQIFFW\nVibCw8OFEEKkpaWJAQMGGN2XVuM///mPGDx4sCgvL9f7mujoaJGYmCjy8vJEYGCgVL5+/Xrx3HPP\n1fsef39/AYA33njjjbcm3Pz9/Y3+PTfYIlmyZAlGjx6NnJwcTJs2DT///DPWrVtn6G0N2r17N/7+\n97/j0KFDOjPArly5Ajc3N1hbWyMjIwMXLlxAz5494erqChcXF5w4cQKRkZH43//+hzlz5tT72Wlp\naSbFRkRETdPgFinV1dXYuHEjRowYgePHjwPQDo537drVpEp79eqFyspKdO7cGQAwaNAgxMXFYdOm\nTVi8eDFsbW1hZWWFd955R9ooMjExEU899RTKy8sxduxYrF692qQYiIioeRjca0utViMxMdFc8RAR\nUStjcNbWqFGj8MEHHyA7OxtFRUXSrSVkZ2dj+PDh6Nu3L/r16ye1SoqKijBq1Cj07t0b999/P65f\nvy69Z9myZejVqxcCAwOxd+/eFolbDvquhb7FnkD7uxY1Vq1aBSsrK53/btvjtVizZg2CgoLQr18/\nLFq0SCpvb9ciISEBkZGRiIiIwIABA3Dy5EnpPW31WlRUVCAqKgrh4eEIDg7Ga6+9BqAZfzsNDaLc\nc889wtfXt86tJeTn54vk5GQhhBAlJSWid+/eIjU1VSxYsECsWLFCCCHE8uXLpQWOZ86cEWFhYaKy\nslJkZmYKf39/aSFka6fvWuhb7Nker4UQQly8eFE88MADwtfXV1y9elUI0T6vxYEDB8TIkSNFZWWl\nEEKIy5cvCyHa57UYNmyY2L17txBCiJ07d4ro6GghRNu+FkIIcfPmTSGEELdv3xZRUVHi8OHDzfbb\nabBF8vvvvyMzM1PndvbsWdPSo5E8PT0RHh4OAHByckJQUBByc3Oxfft2zJgxAwAwY8YMabHitm3b\nMHXqVNja2sLX1xcBAQFISEhokdibW33XIi8vT+9iz/Z4LQBg3rx5WLlypc7r29u1yM3NxSeffILX\nXnsNtra2ACCNc7bHa+Hl5SW11K9fvw6lUgmgbV8LAHB0dAQAVFZWoqqqCm5ubs3222kwkQwePLhR\nZeaWlZWF5ORkREVF4dKlS/Dw8AAAeHh44NKlSwC0q/BrL2T08fFpkwsZa1+L2mov9myP12Lbtm3w\n8fFBaGiozmva47U4f/48fvrpJwwcOBDR0dHS7hTt7VoMHDgQy5cvx/z589GjRw8sWLAAy5YtA9D2\nr0V1dTXCw8Ph4eEhdfk112+n3um/+fn5yMvLQ1lZGZKSkiCEgEKhQHFxMcrKyprruxmltLQUkydP\nRmxsLJydnXWeUygUDe5O3NZ2Li4tLcUjjzyC2NhYODk5SeV3L/asT1u+FlZWVli6dCl+/PFH6XnR\nwLyStnwtnJ2dodFocO3aNRw/fhwnT57ElClTkJGRUe972/K1cHJywoQJE7B69WpMnDgRGzduxNNP\nP63z30ltbelaWFlZ4dSpU7hx4wYeeOABHDx4UOd5U3479SaSPXv2YN26dcjNzcX8+fOlcmdnZyxd\nurQp8Ter27dvY/LkyXjyyScxYcIEANpMWlBQAE9PT+Tn56Nbt24AtFupZGdnS+/NycmRmrFtQc21\nmD59unQtAGDdunXYuXMn9u/fL5W1t2tx+vRpZGVlISwsDID2+6rVapw4caLdXQtA+y/KSZMmAQAG\nDBgAKysrXLlypV1ei4SEBOzbtw8A8Mgjj2DWrFkA2v7/R2p06tQJ48aNQ2JiYvP9dhoaoNm4caPp\nozzNpLq6Wjz55JPilVde0SlfsGCBWL58uRBCiGXLltUZMLp165bIyMgQPXv2FNXV1WaPWw76rsWu\nXbtEcHCwKCws1Clvj9eitvoG29vTtfjkk0/EW2+9JYQQ4ty5c6J79+5CiPZ5LSIiIkR8fLwQQoh9\n+/aJ/v37CyHa9rUoLCwU165dE0IIUVZWJoYOHSr27dvXbL+dehPJtm3bRGZmpvR4yZIlIiQkRIwf\nP15kZGQ0x3drssOHDwuFQiHCwsJEeHi4CA8PF7t27RJXr14VI0aMEL169RKjRo2SLpgQQrz//vvC\n399f9OnTR5qp0RbUdy127twpAgICRI8ePaSy2bNnS+9pb9eiNj8/PymRCNG+rsWuXbtEZWWlmD59\nuujXr59QqVQ626e3p2uxc+dOcfLkSREZGSnCwsLEwIEDRVJSkvSetnotUlJSREREhAgLCxMhISFi\n5cqVQgjRbL+dehckhoSE4MSJE3B0dMSOHTswd+5cfPPNN0hOTsbGjRuxZ8+e5m1vERFRq6R31paV\nlZU0XWzz5s145plnoFarMWvWLFy+fNlsARIRkWXTm0iEECgpKUF1dTX279+PESNGSM9VVFSYJTgi\nIrJ8emdtvfLKK4iIiICzszOCgoIwYMAAAEBSUhK8vb3NFiAREVm2BjdtzMnJweXLlxEeHi6tls7P\nz8ft27fRo0cPswVJRESWy+Duv0RERA0xuEUKERFRQ5hIqE2qvV2MHD766COUl5c3e33ff/89VqxY\n0SyfRWQueru2DJ05UnO6IZElcnZ2RklJiWyf7+fnh19++QXu7u5mqY/IkumdtaVSqRrcpCszM1OW\ngIjkkp6ejhdffBGFhYVwdHTEZ599hj59+uCpp55Cp06d8Msvv6CgoAArV67E5MmTUV1djRdffBEH\nDx5E9+7dYWtri6effhp5eXnIy8vD8OHD0bVrV2lPs7/97W/YsWMHHBwcsG3bNmnfohqvvPIK3N3d\n8eabb2LPnj1YunQpDh06pPOadevWITExEWvWrNEbV21ZWVkYPXo0Bg0ahKNHj6J///6YMWMG3n77\nbRQWFuKrr77CgAEDsGTJEukYiIsXL+LDDz/E0aNHsXfvXiiVSnz//fewsdH7c0DUMDmW4xO1NCcn\npzpl9913n7hw4YIQQojjx4+L++67TwghxIwZM8SUKVOEEEKkpqaKgIAAIYR2n7mxY8cKIYQoKCgQ\nbm5uYtOmTUII3b27hBBCoVCIHTt2CCGEWLhwoXjvvffq1F9WVib69u0rDhw4IPr06VPvVkPr1q0T\nL774YoNx1ZaZmSlsbGzEb7/9Jqqrq4VarRZPP/20EEK7zdGECROEEEIsXrxYDB06VGg0GvHrr78K\nBwcHaduLiRMniq1btzZwNYka1qh/gly7dg0XLlzQWYj4l7/8RbbkRtTcSktLcezYMTz66KNSWWVl\nJQDt9tg1O8MGBQVJZzIcOXIEU6ZMAQDpDAd97OzsMG7cOACAWq2ud1tyBwcHfPbZZxg6dChiY2Ph\n5+fXYMz64rqbn58f+vbtCwDo27cvRo4cCQDo168fsrKypM8aM2YMrK2t0a9fP1RXV+OBBx4AoN0O\nqeZ1RMYwmEg+++wzrF69GtnZ2YiIiMDx48cxaNAgHDhwwBzxETWL6upquLq6Ijk5ud7n7ezspPvi\nz2FDhUKhc4aJaGCmfM3Jg4B2eyGNRlPv61JSUtC1a9dGH5hUX1x369Chg07dNe+5O47a5Y2Nl6gx\nDM7aio2NRUJCAnx9fXHw4EEkJyejU6dO5oiNqNm4uLjAz88P3333HQDtj3JKSkqD7xkyZAg2bdoE\nIQQuXbqkM57h7OyM4uLiJsXwxx9/4MMPP0RycjJ27dpV79GlDSUrU8j1uURAIxKJvb09HBwcAGj3\n2AoMDMS5c+dkD4zIFGVlZejevbt0++ijj/DVV1/hiy++QHh4OPr164ft27dLr689saTm/uTJk+Hj\n44Pg4GA8+eSTUKlU0j+i/vrXv2L06NHSHnR3v//uiSpCCMyaNQurVq2Cp6cnvvjiC8yaNUvqXtP3\nXn33736Pvsc19xv63IY+m6gxDK5snzhxItauXYvY2Fjs378fbm5u0Gg02Llzp7liJGoxN2/eRMeO\nHXH16lVERUXh6NGjdWZjEbV3TdoiJT4+HsXFxRg9erRO3y1RWzV8+HBcv34dlZWVWLRoEWJiYlo6\nJCKLozeRFBcXw8XFRe/CRC5IJCIioIFEMm7cOPzwww/w9fWtt/+UCxKJiAjg7r9ERGQivetIkpKS\nGnyjSqVq9mCIiKj10dsiiY6OhkKhQHl5ORITExEaGgpAu6Cqf//+OHbsmFkDJSIiy6R3HUl8fDwO\nHjwIb29vJCUlITExEYmJiUhOTuZRu0REJDE4RhIcHIzU1FSDZURE1D4Z3GsrNDQUs2bNwvTp0yGE\nwPr16xEWFmaO2IiIqBUw2CIpLy/Hxx9/jMOHDwPQ7vo7e/Zs2NvbmyVAIiKybJz+S0REJjHYtXX+\n/Hm8/vrrSE1Nlc6oVigUyMjIkD04IiKyfAZ3/505cyaef/552NjY4ODBg5gxYwaeeOIJc8RGRESt\ngMGuLZVKhaSkJISEhOD06dM6ZURERAa7tuzt7VFVVYWAgAD885//hLe3N27evGmO2IiIqBUw2CJJ\nSEhAUFAQrl+/jjfffBPFxcVYuHAhBg4caK4YiYjIgjV51pYQAhs2bMBjjz0mV0xERNSK6B1sLy0t\nxapVq/DCCy8gLi4O1dXV2LJlC/r27YuvvvrKnDESEZEF09simTRpElxcXDBo0CDs3bsX2dnZsLe3\nx+rVqxEeHm7uOImIyELpTSShoaFISUkBAFRVVcHLywt//PEHHBwczBogERFZNr1dW9bW1jr3lUol\nkwgREdWht0VibW0NR0dH6XF5ebmUSBQKBYqLi80TIRERWTTutUVERCYxuEUKERFRQ5hIiIjIJEwk\nRERkEiYSIiIyCRMJERGZhImEiIhM8v8BOmQpuVllnG0AAAAASUVORK5CYII=\n",
+ "text": [
+ "<matplotlib.figure.Figure at 0x5544430>"
+ ]
+ }
+ ],
+ "prompt_number": 1
+ },
+ {
+ "cell_type": "heading",
+ "level": 1,
+ "metadata": {},
+ "source": [
+ "Example 8.8.11,Page No.338"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "import numpy as np\n",
+ "%matplotlib inline\n",
+ "\n",
+ "#Initilization of Variables\n",
+ "\n",
+ "d_o=300 #mm #Outside diameter \n",
+ "d2=200 #mm #Internal Diameter\n",
+ "p=14 #N/mm**2 #internal Fluid pressure\n",
+ "t=50 #mm #Thickness\n",
+ "r_o=150 #mm #Outside Diameter\n",
+ "r2=100 #mm #Internal Diameter\n",
+ "\n",
+ "#Calculations\n",
+ "\n",
+ "#From Lame's Equation\n",
+ "#p_x=b*(x**2)**-1-a #N/mm**2 ...................(1)\n",
+ "#F_x=b*(x**2)**-1+a #N/mm**2 ...................(2)\n",
+ "\n",
+ "#At \n",
+ "x=r2=100 #mm\n",
+ "p_x=14 #N/mm**2\n",
+ "\n",
+ "#Sub value of p_x in equation 1 we get\n",
+ "#14=(100)**-1*b-a ............................(3)\n",
+ "\n",
+ "#At\n",
+ "x2=r_o=150 #mm\n",
+ "p_x2=0 #N/mm**2\n",
+ "\n",
+ "#Sub value in equation 1 we get\n",
+ "#0=b*(150**2)**-1-a ......................(4)\n",
+ "\n",
+ "#From Equations 3 and 4 we get\n",
+ "#14=b*(100**2)**-1-b*(100**2)**-1\n",
+ "#After sub values and further simplifying we get\n",
+ "b=14*100**2*150**2*(150**2-100**2)**-1\n",
+ "\n",
+ "#From equation 4 we get\n",
+ "a=b*(150**2)**-1\n",
+ "\n",
+ "#Hoop Stress\n",
+ "#F_x=b*(x**2)**-1+a #N/mm**2\n",
+ "\n",
+ "#At \n",
+ "x=100 #mm\n",
+ "F_x=b*(x**2)**-1+a #N/mm**2\n",
+ "\n",
+ "#At\n",
+ "x2=125 #mm\n",
+ "F_x2=b*(x2**2)**-1+a #N/mm**2\n",
+ "\n",
+ "#At\n",
+ "x3=150 #mm\n",
+ "F_x3=b*(x3**2)**-1+a #N/mm**2\n",
+ "\n",
+ "#If thin Cyclindrical shell theory is used,hoop stress is uniform and is given by\n",
+ "F=p*d2*(2*t)**-1 #N/mm**2\n",
+ "\n",
+ "#Percentage error in estimating max hoop tension\n",
+ "E=(F_x-F)*F_x**-1*100 #%\n",
+ "\n",
+ "#Result\n",
+ "print\"Max Hoop Stress Developed in the cross-section is\",round(F,2),\"N/mm**2\"\n",
+ "print\"Plot of Variation of hoop stress\"\n",
+ "\n",
+ "#Plotting Variation of hoop stress\n",
+ "\n",
+ "X1=[x,x2,x3]\n",
+ "Y1=[F_x,F_x2,F_x3]\n",
+ "Z1=[0,0,0]\n",
+ "plt.plot(X1,Y1,X1,Z1)\n",
+ "plt.xlabel(\"Length x in mm\")\n",
+ "plt.ylabel(\"Radial Stress Distribution & Hoop Stress Distribution in N/mm**2\")\n",
+ "plt.show()\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Max Hoop Stress Developed in the cross-section is 28.0 N/mm**2\n",
+ "Plot of Variation of hoop stress\n"
+ ]
+ },
+ {
+ "metadata": {},
+ "output_type": "display_data",
+ "png": "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\nSUVORK5CYII=\n",
+ "text": [
+ "<matplotlib.figure.Figure at 0x5d6d6b0>"
+ ]
+ }
+ ],
+ "prompt_number": 2
+ },
+ {
+ "cell_type": "heading",
+ "level": 1,
+ "metadata": {},
+ "source": [
+ "Example 8.8.12,Page No.339"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "import numpy as np\n",
+ "\n",
+ "#Initilization of Variables\n",
+ "\n",
+ "d_o=300 #mm #Outside diameter \n",
+ "d2=200 #mm #Internal Diameter\n",
+ "p=12 #N/mm**2 #internal Fluid pressure\n",
+ "F_max=16 #N/mm**2 #Tensile stress\n",
+ "r_o=150 #mm #Outside Diameter\n",
+ "r2=100 #mm #Internal Diameter\n",
+ "\n",
+ "#Calculations\n",
+ "\n",
+ "#Let p_o be the External Pressure applied.\n",
+ "#From LLame's theorem\n",
+ "#p_x=b*(x**2)**-1-a ..............(1)\n",
+ "#F_x=b*(x**2)**-1+a ...........................(2)\n",
+ "\n",
+ "#Now At\n",
+ "x=100 #mm\n",
+ "p_x=12 #N/mm**2\n",
+ "#sub in equation 1 we get\n",
+ "#12=b*(100**2)**-1-a . ..................(3)\n",
+ "\n",
+ "#The Max Hoop stress occurs at least value of x where\n",
+ "x=r1=100 #mm\n",
+ "#16=b*(100**2)**-1+a .......................(4)\n",
+ "\n",
+ "#From Equations 1 and 2 we get\n",
+ "#28=b*(100**2)**-1+b*(100**2)**-1\n",
+ "#After furhter Simplifying we get\n",
+ "b=28*100**2*2**-1\n",
+ "\n",
+ "#sub in equation 1 we get\n",
+ "a=-(12-(b*(100**2)**-1))\n",
+ "\n",
+ "#Thus At\n",
+ "x2=150 #mm\n",
+ "p_o=b*(x2**2)**-1-a\n",
+ "\n",
+ "#Result\n",
+ "print\"Minimum External applied is\",round(p_o,2),\"N/mm**2\""
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Minimum External applied is 4.22 N/mm**2\n"
+ ]
+ }
+ ],
+ "prompt_number": 18
+ },
+ {
+ "cell_type": "heading",
+ "level": 1,
+ "metadata": {},
+ "source": [
+ "Example 8.8.13,Page No.340"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "import numpy as np\n",
+ "\n",
+ "#Initilization of Variables\n",
+ "\n",
+ "d1=160 #mm #Internal Diameter \n",
+ "r1=80 #mm #External Diameter\n",
+ "p1=40 #N/mm**2 #Internal Diameter\n",
+ "P_max=120 #N/mm**2 #Allowable stress\n",
+ "\n",
+ "#Calculations\n",
+ "\n",
+ "#From Lame's Equation we have\n",
+ "#p_x=b*(x**2)**-1-a ..........................(1)\n",
+ "#F_x=b*(x**2)**-1+a ...........................(2)\n",
+ "\n",
+ "#At \n",
+ "x=r1=80 #N/mm**2 \n",
+ "#Sub in equation 1 we get\n",
+ "#120=b*(80**2)**-1+a ........................(3)\n",
+ "\n",
+ "#The hoop tension at inner edge is max stress\n",
+ "#Hence\n",
+ "#120=b*(80**2)**-1+a .............................(4)\n",
+ "\n",
+ "#From Equation 3 and 4 we get\n",
+ "b=160*80**2*2**-1 \n",
+ "\n",
+ "#Sub in equation 3 we get\n",
+ "a=-(40-(b*(80**2)**-1))\n",
+ "\n",
+ "#Let External radius be r_o.Since at External Surface is Zero,we get\n",
+ "#0=b*(r_o)**-1-a\n",
+ "#After Further simplifying we get\n",
+ "r_o=(b*a**-1)**0.5\n",
+ "\n",
+ "#Thickness of Cyclinder \n",
+ "t=r_o-r1 #mm\n",
+ "\n",
+ "#Result\n",
+ "print\"Thickness Required is\",round(t,2),\"mm\""
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Thickness Required is 33.14 mm\n"
+ ]
+ }
+ ],
+ "prompt_number": 31
+ },
+ {
+ "cell_type": "heading",
+ "level": 1,
+ "metadata": {},
+ "source": [
+ "Example 8.8.14,Page No.341"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "import numpy as np\n",
+ "\n",
+ "#Initilization of Variables\n",
+ "\n",
+ "d_o=300 #mm #Outside diameter \n",
+ "d1=180 #mm #Internal Diameter\n",
+ "p=12 #N/mm**2 #internal Fluid pressure\n",
+ "p_o=6 #N/mm**2 #External Pressure\n",
+ "r_o=150 #mm #Outside Diameter\n",
+ "r=90 #mm #Internal Diameter\n",
+ "\n",
+ "\n",
+ "#Calculations\n",
+ "\n",
+ "#From Lame's Equation we have\n",
+ "#p_x=b*(x**2)**-1-a ..........................(1)\n",
+ "#F_x=b*(x**2)**-1+a ...........................(2)\n",
+ "\n",
+ "#At \n",
+ "x=r1=90 #N/mm**2 \n",
+ "p=42 #N/mm**2\n",
+ "#Sub in equation 1 we get\n",
+ "#42=b*(90**2)**-1-a ..............................(3)\n",
+ "\n",
+ "#At \n",
+ "x=r_o=150 #mm\n",
+ "p2=6 #N/mm**2\n",
+ "#sub in equation 1 we get\n",
+ "#6=b*(150**2)**-1-a ..............................(4)\n",
+ "\n",
+ "#From equations 3 and 4 weget\n",
+ "#36=b*(90**2)**-1-b2(150**2)**-1\n",
+ "#After further simplifying we get\n",
+ "b=36*90**2*150**2*(150**2-90**2)**-1\n",
+ "\n",
+ "#Sub value of b in equation 4 we get\n",
+ "a=b*(150**2)**-1-p_o\n",
+ "\n",
+ "#At \n",
+ "x=r1=90 #mm\n",
+ "F_x=b*(x**2)**-1+a #N/mm**2\n",
+ "\n",
+ "#At \n",
+ "x2=r_o=150 #mm \n",
+ "F_x2=b*(x2**2)**-1+a #N/mm**2\n",
+ "\n",
+ "#Now if External pressure is doubled i.e p_o2=12 #N/mm**2 We have\n",
+ "p_o2=12 #N/mm**2\n",
+ "#sub in equation 4 we get\n",
+ "#12=b2*(150**2)**-1-a2 ..........................(5)\n",
+ "\n",
+ "#Max Hoop stress is to be 70.5 #N/mm**2,which occurs at x=r1=90 #mm\n",
+ "#Sub in equation 4 we get\n",
+ "#70.5=b*(90**2)**-1+a2 ................................(6)\n",
+ "\n",
+ "#Adding equation 5 and 6\n",
+ "#82.5=b2*(150**2)**-1+b*(90**2)**-1\n",
+ "#After furhter simplifying we get\n",
+ "b2=82.5*150**2*90**2*(150**2+90**2)**-1\n",
+ "\n",
+ "#Sub in equation 5 we get\n",
+ "a2=b2*(150**2)**-1-12 \n",
+ "\n",
+ "#If p_i is the internal pressure required then from Lame's theorem\n",
+ "p_i=b2*(r1**2)**-1-a2\n",
+ "\n",
+ "#Result\n",
+ "print\"Stresses int the material are:F_x\",round(F_x,2),\"N/mm**2\"\n",
+ "print\" :F_x2\",round(F_x2,2),\"N/mm**2\"\n",
+ "print\"Internal Pressure that can be maintained is\",round(p_i,2),\"N/mm**2\""
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Stresses int the material are:F_x 70.5 N/mm**2\n",
+ " :F_x2 34.5 N/mm**2\n",
+ "Internal Pressure that can be maintained is 50.82 N/mm**2\n"
+ ]
+ }
+ ],
+ "prompt_number": 17
+ },
+ {
+ "cell_type": "heading",
+ "level": 1,
+ "metadata": {},
+ "source": [
+ "Example 8.8.15,Page No.344"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "import numpy as np\n",
+ "%matplotlib inline\n",
+ "\n",
+ "#Initilization of Variables\n",
+ "\n",
+ "r1=200 #mm #Inner Radius\n",
+ "r2=250 #mm #Radius at common surface\n",
+ "r3=300 #mm #Outer radius\n",
+ "p=6 #N/mm**2 #Inital pressure\n",
+ "p2=80 #N/mm**2 #Pressure\n",
+ "\n",
+ "#Calculations\n",
+ "\n",
+ "#Inner Cyclinder:\n",
+ "\n",
+ "#From Lame's Equation we have\n",
+ "#p_x=b*(x**2)**-1-a ..........................(1)\n",
+ "#F_x=b*(x**2)**-1+a ...........................(2)\n",
+ "\n",
+ "#At \n",
+ "x=r1=200 #mm\n",
+ "p_x=0\n",
+ "#0=b1*(250**2)**-1-a1 .................(3)\n",
+ "\n",
+ "#At x=r2=250 #mm\n",
+ "p_x2=6 #N/mm**2\n",
+ "#6=b1*(250**2)-a1 ...................(4)\n",
+ "\n",
+ "#From Equation 3 and 4 we get\n",
+ "b1=6*200**2*250**2*(200**2-250**2)**-1\n",
+ "\n",
+ "#From equation 3 we get\n",
+ "a1=b1*(200**2)**-1\n",
+ "\n",
+ "F_200=b1*(200**2)**-1+a1\n",
+ "F_250=b1*(250**2)**-1+a1\n",
+ "\n",
+ "#For outer cyclinder \n",
+ "#From Lame's Equation we have\n",
+ "#p_x2=b2*(x**2)**-1-a2 ..........................(5)\n",
+ "#F_x2=b2*(x**2)**-1+a2 ...........................(6)\n",
+ "\n",
+ "\n",
+ "#At \n",
+ "x2=r2=250 #mm\n",
+ "p_x2=6 #N/mm**2\n",
+ "#6=b2*(250**2)**-1-a2 ...........................(7) \n",
+ "\n",
+ "#At\n",
+ "x3=300 #mm\n",
+ "#p_x2=0\n",
+ "#0=b2**2*(300**2)**-1-a2 .................................(8)\n",
+ "\n",
+ "#from equation 7 and 8 we get\n",
+ "b2=6*250**2*300**2*(300**2-250**2)**-1\n",
+ "\n",
+ "#sub in equation 8 we get\n",
+ "a2=b2*(300**2)**-1\n",
+ "\n",
+ "F_250_2=b2*(250**2)**-1+a2\n",
+ "F_300_2=b2*(300**2)**-1+a2\n",
+ "\n",
+ "#When Fluid is admitted\n",
+ "#Let Lame's equation be\n",
+ "#p_x3=b3*(x**2)**-1-a3 ..........................(5)\n",
+ "#F_x3=b3*(x**2)**-1+a3 ...........................(6)\n",
+ "\n",
+ "\n",
+ "#At x=200\n",
+ "p_x3=80 #N/mm**2\n",
+ "#80=b3*(200**2)**-1-a3 ................................(7)\n",
+ "\n",
+ "#At x=300 #mm\n",
+ "#p_x=0\n",
+ "#0=b3*(300**2)**-1-a3 ..............................(8)\n",
+ "\n",
+ "#from Equation 7 and 8 we get\n",
+ "b3=80*200**2*300**2*(300**2-200**2)**-1\n",
+ "\n",
+ "#From Equation 8 we get\n",
+ "a3=b3*(300**2)**-1\n",
+ "\n",
+ "#Hoop stresses \n",
+ "F_200_3=b3*(200**2)**-1+a3 #N/mm**2\n",
+ "F_250_3=b3*(250**2)**-1+a3 #N/mm**2\n",
+ "F_300_3=b3*(300**2)**-1+a3 #N/mm**2\n",
+ "\n",
+ "#Pressure at common surface\n",
+ "p_250=b3*(250**2)**-1-a3 #N/mm**2\n",
+ "\n",
+ "#final stress\n",
+ "f_200=F_200+F_200_3 #N/mm**2\n",
+ "f_250=F_250+F_250_3 #N/mm**2\n",
+ "f_300=F_250_2+F_250_3 #N/mm**2\n",
+ "f_300_2=F_300_2+F_300_3 #N/mm**2\n",
+ "\n",
+ "#Result\n",
+ "print\"final Hoop stress are:f_200\",round(f_200,2),\"N/mm**2\"\n",
+ "print\" :f_250\",round(f_250,2),\"N/mm**2\"\n",
+ "print\" :f_300\",round(f_300,2),\"N/mm**2\"\n",
+ "print\" :f_300_2\",round(f_300_2,2),\"N/mm**2\"\n",
+ "print\"Variation of Hoop stress and Radial stress\"\n",
+ "\n",
+ "#Final stresses\n",
+ "#Variation of hoop stress \n",
+ " \n",
+ "X1=[x,x2,x3,x3]\n",
+ "Y1=[f_200,f_250,f_300,f_300_2]\n",
+ "Z1=[0,0,0,0]\n",
+ "plt.plot(X1,Y1,X1,Z1)\n",
+ "plt.xlabel(\"Length x in mm\")\n",
+ "plt.ylabel(\"Hoop Stress Distribution in N/mm**2\")\n",
+ "plt.show()\n",
+ "\n",
+ "#Due to Fluid\n",
+ "#Variation of hoop stress \n",
+ " \n",
+ "X1=[x,x2,x3]\n",
+ "Y1=[F_200_3,F_250_3,F_300_3]\n",
+ "Z1=[0,0,0]\n",
+ "plt.plot(X1,Y1,X1,Z1)\n",
+ "plt.xlabel(\"Length x in mm\")\n",
+ "plt.ylabel(\"Hoop Stress Distribution in N/mm**2\")\n",
+ "plt.show()\n",
+ "\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "final Hoop stress are:f_200 174.67 N/mm**2\n",
+ " :f_250 128.83 N/mm**2\n",
+ " :f_300 189.43 N/mm**2\n",
+ " :f_300_2 155.27 N/mm**2\n",
+ "Variation of Hoop stress and Radial stress\n"
+ ]
+ },
+ {
+ "metadata": {},
+ "output_type": "display_data",
+ "png": "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\n",
+ "text": [
+ "<matplotlib.figure.Figure at 0x55443f0>"
+ ]
+ },
+ {
+ "metadata": {},
+ "output_type": "display_data",
+ "png": "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\n",
+ "text": [
+ "<matplotlib.figure.Figure at 0x5d51e10>"
+ ]
+ }
+ ],
+ "prompt_number": 3
+ },
+ {
+ "cell_type": "heading",
+ "level": 1,
+ "metadata": {},
+ "source": [
+ "Example 8.8.16,Page No.348"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "import numpy as np\n",
+ "\n",
+ "#Initilization of Variables\n",
+ "\n",
+ "do=200 #mm #Inner Diameter\n",
+ "r_o=100 #mm #Inner radius\n",
+ "d1=300 #mm #outer diameter\n",
+ "r1=150 #mm #Outer radius\n",
+ "d2=250 #mm #Junction Diameter\n",
+ "r2=125 #mm #Junction radius\n",
+ "E=2*10**5 #N/mm**2 #Modulus of Elasticity\n",
+ "p=30 #N/mm**2 #radial pressure\n",
+ "\n",
+ "#Calculations\n",
+ "\n",
+ "#from Lame's Equation we get\n",
+ "#p_x=b*(x**2)**-1-a ..........................(1)\n",
+ "#F_x=b*(x**2)**-1+a ...........................(2)\n",
+ "\n",
+ "#Then from Boundary condition \n",
+ "#p_x=0 at x=100 #mm\n",
+ "#0=b1*(100**2)**-1-a1 .....................(3)\n",
+ "\n",
+ "#p_x2=30 #N/mm**2 at x2=125 #mm\n",
+ "#30=b1*(125**2)**-1-a1 ................................(4)\n",
+ "\n",
+ "#From equation 3 and 4 we get\n",
+ "b1=30*125**2*100**2*(100**2-125**2)**-1\n",
+ "\n",
+ "#From Equation 3 we get\n",
+ "a1=b1*(100**2)**-1\n",
+ "\n",
+ "#therefore Hoop stress in inner cyclinder at junction\n",
+ "F_2_1=b1*(125**2)**-1+a1 #N/mm**2\n",
+ "\n",
+ "#Outer Cyclinder\n",
+ "#p_x=b*(x**2)**-1-a ..........................(5)\n",
+ "#F_x=b*(x**2)**-1+a ...........................(6)\n",
+ "\n",
+ "#Now at x=125 #mm\n",
+ "#p_x3=30 #N/mm**2\n",
+ "#30=b2*(125**2)**-1-a2 ..................................(7)\n",
+ "\n",
+ "#At x=150 #mm\n",
+ "#p_x4=0\n",
+ "#0=b2*(150**2)**-1-a2 ...................................(8)\n",
+ "\n",
+ "#From equations 7 and 8\n",
+ "b2=30*150**2*125**2*(150**2-125**2)**-1\n",
+ "\n",
+ "#From eqauation 8 we get\n",
+ "a2=b2*(150**2)**-1\n",
+ "\n",
+ "#Hoop stress at junction \n",
+ "F_2_0=b2*(125**2)**-1+a2 #N/mm**2\n",
+ "\n",
+ "rho_r=(F_2_0-F_2_1)*E**-1*r2\n",
+ "\n",
+ "#Result\n",
+ "print\"Shrinkage Allowance is\",round(rho_r,3),\"mm\""
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Shrinkage Allowance is 0.189 mm\n"
+ ]
+ }
+ ],
+ "prompt_number": 40
+ },
+ {
+ "cell_type": "heading",
+ "level": 1,
+ "metadata": {},
+ "source": [
+ "Example 8.8.17,Page No.350"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "import numpy as np\n",
+ "\n",
+ "#Initilization of Variables\n",
+ "\n",
+ "d_o=500 #mm #Outer Diameter\n",
+ "r_o=250 #mm #Outer Radius\n",
+ "d1=300 #mm #Inner Diameter\n",
+ "r1=150 #mm #Inner Radius\n",
+ "d2=400 #mm #Junction Diameter\n",
+ "E=2*10**5 #N/mm**2 #Modulus ofElasticity\n",
+ "alpha=12*10**-6 #Per degree celsius\n",
+ "dell_d=0.2 #mm\n",
+ "dell_r=0.1 #mm\n",
+ "\n",
+ "#Calculations\n",
+ "\n",
+ "#Let p be the radial pressure developed at junction\n",
+ "#Let Lame's Equation for internal cyclinder be\n",
+ "#p_x=b*(x**2)**-1-a ................................(1)\n",
+ "#F_x=b*(x**2)**-1+a ...............................(2)\n",
+ "\n",
+ "#At \n",
+ "x=150 #mm \n",
+ "p_x=0\n",
+ "#Sub in equation 1 we get\n",
+ "#0=b*(150**2)**-1-a .........................(3)\n",
+ "\n",
+ "#At \n",
+ "x2=200 #mm\n",
+ "#p_x2=p\n",
+ "#p=b*(200**2)**-1-a ......................(4)\n",
+ " \n",
+ "#From Equation 3 and 4\n",
+ "#p=b*(200**2)**-1-b(150**2)**-1\n",
+ "#after further simplifying we get\n",
+ "#b=-51428.571*p\n",
+ "\n",
+ "#sub in equation 3 we get\n",
+ "#a1=-2.2857*p\n",
+ "\n",
+ "#therefore hoop stress at junction is\n",
+ "#F_2_1=-21428.571*p*(200**2)**-1-2.2857*p\n",
+ "#after Further simplifying we geet\n",
+ "#F_2_1=3.5714*p\n",
+ "\n",
+ "#Let Lame's Equation for cyclinder be \n",
+ "#p_x=b*(x**2)**-1-a .........................5\n",
+ "#F_x=b*(x**2)**-1+a .............................6\n",
+ "\n",
+ "#At \n",
+ "x=200 #mm\n",
+ "#p_x=p2\n",
+ "#p2=b2*(20**2)**-1-a2 ...................7\n",
+ "\n",
+ "#At\n",
+ "x2=200 #mm\n",
+ "p_x2=0\n",
+ "#0=b2*(250**2)**-1-a2 ....................8\n",
+ "\n",
+ "#from equation 7 and 8 we get\n",
+ "#p2=b2*(200**2)**-1-b2*(250**2)**-1\n",
+ "#After further simplifying we get\n",
+ "#p2=b2*(250**2-200**2)*(200**2*250**2)**-1\n",
+ "#b2=111111.11*p\n",
+ "\n",
+ "#from equation 7\n",
+ "#a2=b2*(250**2)**-1\n",
+ "#further simplifying we get\n",
+ "#a2=1.778*p\n",
+ "\n",
+ "#At the junctionhoop stress in outer cyclinder \n",
+ "#F_2_0=b2*(200**2)**-1+a2\n",
+ "#After further simplifying we get\n",
+ "#F_2_0=4.5556*p\n",
+ "\n",
+ "#Considering circumferential strain,the compatibility condition\n",
+ "#rho_r*r2**-1=1*E**-1*(F_2_1+F_2_0)\n",
+ "#where F_2_1 is compressive and F_2_0 is tensile\n",
+ "#furter simplifying we get\n",
+ "p=0.1*200**-1*2*10**5*(3.5714+4.5556)**-1\n",
+ "\n",
+ "#Let T be the rise in temperature required\n",
+ "#dell_d=d*alpha*T\n",
+ "#After sub values and further simplifying we get\n",
+ "d=250 #mm\n",
+ "T=dell_d*(d*alpha)**-1 #Per degree celsius\n",
+ "\n",
+ "#Result\n",
+ "print\"Radial Pressure Developed at junction\",round(p,2),\"N/mm**2\"\n",
+ "print\"Min Temperatureto outer cyclinder\",round(T,2),\"Per degree Celsius\""
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Radial Pressure Developed at junction 12.3 N/mm**2\n",
+ "Min Temperatureto outer cyclinder 66.67 Per degree Celsius\n"
+ ]
+ }
+ ],
+ "prompt_number": 13
+ },
+ {
+ "cell_type": "heading",
+ "level": 1,
+ "metadata": {},
+ "source": [
+ "Example 8.8.18,Page No.355"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "import numpy as np\n",
+ "%matplotlib inline\n",
+ "\n",
+ "#Initilization of Variables\n",
+ "\n",
+ "d_o=400 #mm #Outer Diameter\n",
+ "r_o=200 #mm #Outer radius\n",
+ "t=50 #mm #Thickness\n",
+ "r1=150 #mm #Internal Radius\n",
+ "p=50 #N/mm**2 #Internal Pressure\n",
+ "\n",
+ "#Calculations\n",
+ "\n",
+ "#The Radial Pressure and hoop stress at any radial distance x are given by\n",
+ "#p_x=b*(x**2)**-1-a ..........................(1)\n",
+ "#F_x=b*(x**2)**-1+a ...........................(2)\n",
+ "\n",
+ "#Now at\n",
+ "x=150 #N/mm**2\n",
+ "p_x1=50 #N/mm**2\n",
+ "#Sub in equation 1 we get\n",
+ "#50=2*b*(150**3)**-1-a ...........................(3)\n",
+ "\n",
+ "#At x=200 #mm\n",
+ "p_x2=0\n",
+ "#0=2*b*(200**2)**-1-a ....................(4)\n",
+ "\n",
+ "#From equation 3 and 4 we get\n",
+ "#50=2*b*(150**3)**-1-2*b*(200**3)**-1\n",
+ "#After further simplifying we get\n",
+ "b=50*150**3*200**3*(200**3-150**3)**-1*2**-1\n",
+ "\n",
+ "#Sub in equation 3 we get\n",
+ "a=b*(200**3)**-1\n",
+ "\n",
+ "#Now At\n",
+ "x=150 #mm\n",
+ "F_x=b*(x**3)**-1+a\n",
+ "\n",
+ "#Now At\n",
+ "x2=160 #mm\n",
+ "F_x2=b*(x2**3)**-1+a\n",
+ "\n",
+ "#Now At\n",
+ "x3=170 #mm\n",
+ "F_x3=b*(x3**3)**-1+a\n",
+ "\n",
+ "#Now At\n",
+ "x4=180 #mm\n",
+ "F_x4=b*(x4**3)**-1+a\n",
+ "\n",
+ "#Now At\n",
+ "x5=190 #mm\n",
+ "F_x5=b*(x5**3)**-1+a\n",
+ "\n",
+ "#Now At\n",
+ "x6=200 #mm\n",
+ "F_x6=b*(x6**3)**-1+a\n",
+ "\n",
+ "#Result\n",
+ "print\"Plot of Variation of hoop stress\"\n",
+ "\n",
+ "#Plotting Variation of hoop stress\n",
+ "\n",
+ "X1=[x,x2,x3,x4,x5,x6]\n",
+ "Y1=[F_x,F_x2,F_x3,F_x4,F_x5,F_x6]\n",
+ "Z1=[0,0,0,0,0,0]\n",
+ "plt.plot(X1,Y1,X1,Z1)\n",
+ "plt.xlabel(\"Length x in mm\")\n",
+ "plt.ylabel(\"Hoop Stress Distribution in N/mm**2\")\n",
+ "plt.show()\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Plot of Variation of hoop stress\n"
+ ]
+ },
+ {
+ "metadata": {},
+ "output_type": "display_data",
+ "png": "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\nBgIREQEA/h+bezx5xlsz+QAAAABJRU5ErkJggg==\n",
+ "text": [
+ "<matplotlib.figure.Figure at 0x5d55f30>"
+ ]
+ }
+ ],
+ "prompt_number": 4
+ }
+ ],
+ "metadata": {}
+ }
+ ]
+}
\ No newline at end of file diff --git a/Strength_Of_Materials_by_S_S_Bhavikatti/chapter_09.ipynb b/Strength_Of_Materials_by_S_S_Bhavikatti/chapter_09.ipynb new file mode 100644 index 00000000..eae6bfbc --- /dev/null +++ b/Strength_Of_Materials_by_S_S_Bhavikatti/chapter_09.ipynb @@ -0,0 +1,779 @@ +{
+ "metadata": {
+ "name": "chapter 09.ipynb"
+ },
+ "nbformat": 3,
+ "nbformat_minor": 0,
+ "worksheets": [
+ {
+ "cells": [
+ {
+ "cell_type": "heading",
+ "level": 1,
+ "metadata": {},
+ "source": [
+ "Chapter 9:Columns And Struts"
+ ]
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 9.9.1,Page No.377"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "import numpy as np\n",
+ "\n",
+ "#Initilization of Variables\n",
+ "L=5000 #mm #Length of strut\n",
+ "dell=10 #mm #Deflection\n",
+ "W=10 #N #Load\n",
+ "\n",
+ "#Calculations\n",
+ "\n",
+ "#Central Deflection of a simply supported beam with central concentrated load is\n",
+ "#dell=W*L**3*(48*E*I)**-1 \n",
+ "\n",
+ "#Let E*I=X\n",
+ "X=W*L**3*(48*dell)**-1 #mm\n",
+ "\n",
+ "#Euler's Load\n",
+ "#Let Euler's Load be P\n",
+ "P=pi**2*X*(L**2)**-1\n",
+ "\n",
+ "#Result\n",
+ "print\"Critical Load of Bar is\",round(P,2),\"N\""
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Critical Load of Bar is 1028.08 N\n"
+ ]
+ }
+ ],
+ "prompt_number": 2
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 9.9.2,Page No.377"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "import numpy as np\n",
+ "\n",
+ "#Initilization of Variables\n",
+ "\n",
+ "L=2000 #mm #Length of square column\n",
+ "E=12*10**3 #N/mm**2 #Modulus of Elasticity\n",
+ "sigma=12 #N/mm*2 #stress\n",
+ "W1=95*10**3 #N #Load1\n",
+ "W2=200*10**3 #N #Load2\n",
+ "FOS=3\n",
+ "\n",
+ "#Calculations\n",
+ "\n",
+ "#From Euler's Formula\n",
+ "#P=pi**2*E*I*(L**2)**-1 .........(1)\n",
+ "\n",
+ "#Working Load\n",
+ "#W=P*(FOS)**-1\n",
+ "\n",
+ "#Part-1\n",
+ "\n",
+ "#At W1=95*10**3 #N\n",
+ "#W1=P*(3*L**2)**-1\n",
+ "\n",
+ "#Let 'a' be the side of the square\n",
+ "#I=1*12**-1*a**4\n",
+ "\n",
+ "#sub value of I in Equation 1 and further rearranging we get\n",
+ "a=(W1*3*12*L**2*(pi**2*E)**-1)**0.25 #mm\n",
+ "\n",
+ "#From Consideration of direct crushing\n",
+ "#sigma*a**2=W1\n",
+ "#After Reaaranging the above equation we get\n",
+ "a2=(W1*(sigma)**-1)**0.5 #mm\n",
+ "\n",
+ "#required size is 103.67*103.67 i.e a*a\n",
+ "\n",
+ "#Part-2\n",
+ "\n",
+ "#At W2=200*10**3 #N\n",
+ "#W2=P*(3*L**2)**-1\n",
+ "#After substituting values and further Rearranging the above equation we get\n",
+ "a3=(W2*3*12*L**2*(pi**2*E)**-1)**0.25 #mm\n",
+ "\n",
+ "#From consideration of direct compression,size required is\n",
+ "a4=(W2*sigma**-1)**0.5\n",
+ "\n",
+ "#required size is 129.10*129.10 i.e a4*a4\n",
+ "\n",
+ "#Result\n",
+ "print\"For W1 Load Required size is\",round(a*a,2),\"mm**2\"\n",
+ "print\"For W2 Load Required size is\",round(a4*a4,2),\"mm**2\""
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "For W1 Load Required size is 10747.38 mm**2\n",
+ "For W1 Load Required size is 16666.67 mm**2\n"
+ ]
+ }
+ ],
+ "prompt_number": 16
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 9.9.3,Page No.378"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "import numpy as np\n",
+ "\n",
+ "#Initilization of Variables\n",
+ "\n",
+ "#Flange \n",
+ "b=100 #mm #Width\n",
+ "\n",
+ "D=80 #mm #Overall Depth\n",
+ "t=10 #mm #Thickness of web and flanges\n",
+ "L=3000 #mm #Length of strut\n",
+ "E=200*10**3 #N/mm**2 #Modulus of Elasticity\n",
+ "\n",
+ "#Calculations\n",
+ "\n",
+ "#Let centroid be at depth y_bar from top fibre\n",
+ "y_bar=(b*t*t*2**-1+(D-t)*t*((D-t)*2**-1+t))*(b*t+(D-t)*t)**-1 #mm \n",
+ "\n",
+ "#M.I at x-x axis\n",
+ "I_x=1*12**-1*b*t**3+b*t*(y_bar-t*2**-1)**2+1*12**-1*t*((D-t))**3+t*((D-t))*((((D-t)*2**-1)+t)-y_bar)**2\n",
+ "\n",
+ "#M.I at y-y axis\n",
+ "I_y=1*12**-1*t*b**3+1*12**-1*(D-t)*t**3 #mm**3\n",
+ "\n",
+ "#Least M.I\n",
+ "I=I_y\n",
+ "\n",
+ "#Since both ends are hinged\n",
+ "#Feective Length=Actual Length\n",
+ "L=l=3000 #mm\n",
+ "\n",
+ "#Buckling Load \n",
+ "P=pi**2*E*I*(l**2)**-1*10**-3 #KN\n",
+ "\n",
+ "#Result\n",
+ "print\"The Buckling Load for strut of tee section\",round(P,2),\"KN\""
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "The Buckling Load for strut of tee section 184.05 KN\n"
+ ]
+ }
+ ],
+ "prompt_number": 10
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 9.9.4,Page No.379"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "import numpy as np\n",
+ "\n",
+ "#Initilization of Variables\n",
+ "\n",
+ "D=400 #mm #Overall Depth\n",
+ "\n",
+ "#Flanges\n",
+ "b=300 #mm #Width\n",
+ "t=50 #mm #Thickness\n",
+ "\n",
+ "t2=30 #mm #Web Thickness\n",
+ "\n",
+ "dell=10 #mm #Deflection\n",
+ "w=40 #N/mm #Load\n",
+ "FOS=1.75 #Factor of safety\n",
+ "E=2*10**5 #N/mm**2\n",
+ "\n",
+ "#Calculations\n",
+ "\n",
+ "#M.I at x-x axis\n",
+ "I_x=1*12**-1*(b*D**3-(b-t2)*b**3) #mm**4\n",
+ "\n",
+ "#Central Deflection\n",
+ "#dell=5*w*L**4*(384*E*I)**-1\n",
+ "#After sub values in above equation and further simplifying we get\n",
+ "L=(dell*384*E*I_x*(5*w)**-1)**0.25\n",
+ "\n",
+ "#M.I aty-y axis\n",
+ "I=I_y=1*12**-1*t*b**3+1*12**-1*b*t2**3+1*12**-1*t*b**3 #mm**4\n",
+ "\n",
+ "#Both the Ends of column are hinged\n",
+ "\n",
+ "#Crippling Load\n",
+ "P=pi**2*E*I*(L**2)**-1 #N\n",
+ "\n",
+ "#Safe Load\n",
+ "S=P*(FOS)**-1*10**-3 #N\n",
+ "\n",
+ "#Result\n",
+ "print\"Safe Load if I-section is used as column with both Ends hhinged\",round(S,2),\"KN\""
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Safe Load if I-section is used as column with both Ends hhinged 4123.29 KN\n"
+ ]
+ }
+ ],
+ "prompt_number": 19
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 9.9.5,Page No.381"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "import numpy as np\n",
+ "\n",
+ "#Initilization of Variables\n",
+ "\n",
+ "D=200 #mm #External Diameter\n",
+ "t=20 #mm #hickness\n",
+ "d=200-2*t #mm #Internal Diameter\n",
+ "E=1*10**5 #N/mm**2\n",
+ "a=1*(1600)**-1 #Rankine's Constant\n",
+ "L=4.5 #m #Length\n",
+ "sigma=550 #N/mm**2 #Stress\n",
+ "FOS=2.5\n",
+ "\n",
+ "#Calculations\n",
+ "\n",
+ "#Moment of Inertia\n",
+ "I=pi*D**4*64**-1-pi*d**4*64**-1\n",
+ "\n",
+ "#Both Ends are fixed\n",
+ "\n",
+ "#Effective Length\n",
+ "l=1*2**-1*L*10**3 #mm\n",
+ "\n",
+ "#Euler's Critical Load\n",
+ "P_E=pi**2*E*I*(l**2)**-1\n",
+ "\n",
+ "A=pi*4**-1*(D**2-d**2) #mm*2\n",
+ "\n",
+ "k=(I*A**-1)**0.5\n",
+ "\n",
+ "#Rankine's Critical Load\n",
+ "P_R=sigma*A*(1+a*(l*k**-1)**2)**-1\n",
+ "\n",
+ "X=P_E*P_R**-1 \n",
+ "\n",
+ "#Safe Load using Rankine's Formula\n",
+ "S=P_R*(FOS)**-1*10**-3 #KN\n",
+ "\n",
+ "#Result\n",
+ "print\"Safe Load by Rankine's Formula is\",round(S,2),\"KN\""
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Safe Load by Rankine's Formula is 1404.36 KN\n"
+ ]
+ }
+ ],
+ "prompt_number": 39
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 9.9.6,Page No.382"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "import numpy as np\n",
+ "\n",
+ "#Initilization of Variables\n",
+ "\n",
+ "L=3000 #mm #Length of column\n",
+ "W=800*10**3 #N #Load\n",
+ "a=1*1600**-1 #Rankine's constant\n",
+ "FOS=4 #Factor of safety\n",
+ "sigma=550 #N/mm**2 #stress\n",
+ "\n",
+ "#Calculations\n",
+ "\n",
+ "#Effective Length\n",
+ "l=L*2**-1 #mm \n",
+ "\n",
+ "#Let d1=outer diameter & d2=inner diameter\n",
+ "#d1=5*8**-1*d2\n",
+ "\n",
+ "#M.I\n",
+ "#I=pi*64**-1*(d1**4-d2**4) #mm**4\n",
+ "\n",
+ "#Area of section\n",
+ "#A=pi4**-1*(d1**2-d2**2) #mm**2\n",
+ "\n",
+ "#k=(I*A**-1) \n",
+ "#substituting values in above equation \n",
+ "#k=1*16**-1*(d1**2-d2**2)\n",
+ "#after simplifying further we get\n",
+ "#k=0.2948119.d1\n",
+ "\n",
+ "#X=l*k**-1\n",
+ "#substituting values in above equation and after simplifying further we get\n",
+ "#X=5087.9898*d1**-1\n",
+ "\n",
+ "#Crtitcal Load\n",
+ "P=W*FOS #N\n",
+ "\n",
+ "#From Rankine's Load\n",
+ "#P2=sigma*A*(1+a*(X)**2)**-1\n",
+ "#substituting values in above equation and after simplifying further we get\n",
+ "#d1**4-12156618*d1**4-1.96691*10**8=0\n",
+ "#Solving Quadratic Equation we get\n",
+ "#d1**2-12156618*d1-196691000=0\n",
+ "a=1\n",
+ "b=-12156.618\n",
+ "c=-196691000\n",
+ "\n",
+ "Y=b**2-4*a*c\n",
+ "\n",
+ "d1_1=((-b+Y**0.5)*(2*a)**-1)**0.5 #mm\n",
+ "d1_2=((-b-Y**0.5)*(2*a)**-1) #mm\n",
+ "\n",
+ "d2=5*8**-1*d1_1\n",
+ "\n",
+ "#Result\n",
+ "print\"Section of cast iron hollow cylindrical column is:d1_1\",round(d1_1,2),\"mm\"\n",
+ "print\" :d2 \",round(d2,2),\"mm\""
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Section of cast iron hollow cylindrical column is:d1_1 146.16 mm\n",
+ " :d2 91.35 mm\n"
+ ]
+ }
+ ],
+ "prompt_number": 25
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 9.9.7,Page No.383"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "import numpy as np\n",
+ "\n",
+ "#Initilization of Variables\n",
+ "\n",
+ "#Let X=(P*A**-1) #Average Stress at Failure \n",
+ "Lamda_1=70 #Slenderness Ratio\n",
+ "Lamda_2=170 #Slenderness Ratio\n",
+ "X1=200 #N/mm**2 \n",
+ "X2=69 #N/mm**2 \n",
+ "\n",
+ "#Rectangular section\n",
+ "b=60 #mm #width\n",
+ "t=20 #mm #Thickness\n",
+ "\n",
+ "L=1250 #mm #Length of strut\n",
+ "FOS=4 #Factor of safety\n",
+ "\n",
+ "#Calculations\n",
+ "\n",
+ "#Slenderness ratio\n",
+ "#Lamda=L*k**-1\n",
+ "\n",
+ "#The Rankine's Formula for strut\n",
+ "#P=sigma*A*(1+a*(L*k**-1)**-1\n",
+ "\n",
+ "#From test result 1,\n",
+ "#After sub values in above equation we get and further simplifying we get\n",
+ "#sigma_1=200+980000*a ...................(1)\n",
+ "\n",
+ "#From test result 2,\n",
+ "#After sub values in above equation we get and further simplifying we get\n",
+ "#sigma_2=69+1994100*a ...................(2)\n",
+ "\n",
+ "#Substituting it in equation (1) we get\n",
+ "a=131*1014100**-1 \n",
+ "\n",
+ "#Substituting a in equation 1\n",
+ "sigma_1=200+980000*a #N/mm**2\n",
+ "\n",
+ "#Effective Length \n",
+ "l=1*2**-1*L #mm\n",
+ "\n",
+ "#Least of M.I\n",
+ "I=1*12**-1*b*t**3 #mm**4\n",
+ "\n",
+ "#Area \n",
+ "A=b*t #mm**2 \n",
+ "\n",
+ "k=(I*A**-1)**0.5\n",
+ "\n",
+ "#Slenderness ratio\n",
+ "Lamda=l*k**-1\n",
+ "\n",
+ "#From Rankine's Ratio\n",
+ "P=sigma_1*A*(1+a*(Lamda)**2)**-1\n",
+ "\n",
+ "#Safe Load\n",
+ "S=P*(FOS)**-1*10**-3 #N\n",
+ "\n",
+ "#Result\n",
+ "print\"Constant in the Formula is:a \",round(a,6)\n",
+ "print\" :sigma_1\",round(sigma_1,2)\n",
+ "print\"Safe Load is\",round(S,2),\"KN\""
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Constant in the Formula is:a 0.000129\n",
+ " :sigma_1 326.6\n",
+ "Safe Load is 38.98 KN\n"
+ ]
+ }
+ ],
+ "prompt_number": 38
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 9.9.8,Page No.385"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "import numpy as np\n",
+ "\n",
+ "#Initilization of Variables\n",
+ "\n",
+ "D=200 #mm #Depth\n",
+ "b=140 #mm #width\n",
+ "\n",
+ "#Plate\n",
+ "b2=160 #mm #Width\n",
+ "t2=10 #mm #Thickness\n",
+ "\n",
+ "L=l=4000 #mm #Length\n",
+ "FOS=4 #Factor of safety\n",
+ "sigma=315 #N/mm**2 #stress\n",
+ "a2=1*7500**-1 \n",
+ "I_xx=26.245*10**6 #mm**4 #M.I at x-x\n",
+ "I_yy=3.288*10**6 #mm**4 #M.I at y-y\n",
+ "a=3671 #mm**2 #Area\n",
+ "k_x=84.6#mm\n",
+ "k_y=29.9 #mm\n",
+ "\n",
+ "#Calculations\n",
+ "\n",
+ "#Total Area\n",
+ "A=a+2*t2*b2 #mm**2\n",
+ "\n",
+ "#M.I\n",
+ "I=I_yy+2*12**-1*t2*b2**3 #mm**4\n",
+ "\n",
+ "k=(I*A**-1)**0.5 #mm\n",
+ "\n",
+ "#Let X=L*k**-1\n",
+ "X=L*k**-1\n",
+ "\n",
+ "#Appliying Rankine's Formula\n",
+ "P=sigma*A*(1+a2*(X)**2)**-1 #N\n",
+ "\n",
+ "#Safe Load\n",
+ "S=P*(FOS)**-1*10**-3 #KN\n",
+ "\n",
+ "#Result\n",
+ "print\"Safe axial Load is\",round(S,2),\"KN\""
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Safe axial Load is 220.93 KN\n"
+ ]
+ }
+ ],
+ "prompt_number": 48
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 9.9.9,Page No.389"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "import numpy as np\n",
+ "\n",
+ "#Initilization of Variables\n",
+ "\n",
+ "E=200*10**3 #N/mm**2 #Modulus of elasticity\n",
+ "sigma=330 #N/mm**2 #Stress\n",
+ "a=1*7500**-1 #Rankine's constant\n",
+ "A=5205 #mm**2 #area of column\n",
+ "I_xx=59.431*10**6 #mm**4 #M.I at x-x axis\n",
+ "I_yy=8.575*10**6 #mm**24#M.I at y-y axis\n",
+ "\n",
+ "#Calculations\n",
+ "\n",
+ "#Total M.I\n",
+ "I=I_xx+I_yy #mm**4\n",
+ "\n",
+ "#Area of compound Section \n",
+ "A2=2*A #mm**2\n",
+ "\n",
+ "k=(I*A2**-1)**0.5 #mm\n",
+ "\n",
+ "#Equating Euler's Load to Rankine's Load we get\n",
+ "#pi**2*E*I*(L**2)**-1=sigma*A*(1+a*(L*k)**2)**-1\n",
+ "#After Substitt=uting values and further simplifying we get\n",
+ "L=(39076198*(1-0.7975432)**-1)**0.5*10**-3 #m\n",
+ "\n",
+ "#Result\n",
+ "print\"Length of column for which Rankine's formula and Euler's Formula give the same result is\",round(L,2),\"m\""
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Length of column for which Rankine's formula and Euler's Formula give the same result is 13.89 m\n"
+ ]
+ }
+ ],
+ "prompt_number": 47
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 9.9.10,Page No.387"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "import numpy as np\n",
+ "\n",
+ "#Initilization of Variables\n",
+ "\n",
+ "sigma=326 #N/mm**2 #stress\n",
+ "E=2*10**5 #N/mm**2 #Modulus of Elasticity\n",
+ "FOS=2 #Factor of safety\n",
+ "a=1*7500**-1 #Rankine's constant\n",
+ "D=350 #mm #Overall Depth \n",
+ "\n",
+ "#Cover plates\n",
+ "b1=500 #mm #width\n",
+ "t1=10 #mm #Thickness\n",
+ "\n",
+ "d=220 #mm #Distance between two channels\n",
+ "\n",
+ "L=6000 #mm #Length of column\n",
+ "\n",
+ "A=5366 #mm**2 #Area of Column section \n",
+ "I_xx=100.08*10**6 #mm**4 #M.I of x-x axis\n",
+ "I_yy=4.306*10**6 #mm**4 #M.I of y-y axis\n",
+ "C_yy=23.6 #mm #Centroid at y-y axis\n",
+ "\n",
+ "#Calculations\n",
+ "\n",
+ "#Symmetric axes are the centroidal axes is\n",
+ "\n",
+ "#M.I of Channel at x-x axis\n",
+ "I_xx_1=2*I_xx+2*(1*12**-1*b1*t1**3+b1*t1*(D*2**-1+t1*2**-1)**2)\n",
+ "\n",
+ "#M.I of Channel at y-y axis\n",
+ "I_yy_1=2*(I_yy+A*(d*2**-1+C_yy)**2)+2*12**-1*t1*b1**3\n",
+ "\n",
+ "#As I_yy<I_xx\n",
+ "#So\n",
+ "I=I_yy_1 #mm**4 \n",
+ "\n",
+ "A2=2*A+2*t1*b1 #Area of channel\n",
+ "\n",
+ "k=(I*A2**-1)**0.5 #mm\n",
+ "\n",
+ "#Critical Load\n",
+ "P=sigma*A2*(1+a*(L*k**-1)**2)**-1 \n",
+ "\n",
+ "#Safe Load\n",
+ "S=P*2**-1*10**-3 #KN\n",
+ "\n",
+ "#Result\n",
+ "print\"Safe Load carrying Capacity is\",round(S,2),\"KN\""
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Safe Load carrying Capacity is 2717.35 KN\n"
+ ]
+ }
+ ],
+ "prompt_number": 67
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 9.9.11,Page No.390"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "import numpy as np\n",
+ "\n",
+ "#Initilization of Variables\n",
+ "\n",
+ "I=4.085*10**8 #mm**4 #M.I\n",
+ "A=20732.0 #mm**2 #area of column\n",
+ "f_y=250 #N/mm**2 \n",
+ "L=6000 #mm #Length of column\n",
+ "\n",
+ "#Calculations\n",
+ "\n",
+ "k=(I*A**-1)**0.5 #mm\n",
+ "lamda=L*k**-1 #Slenderness ratro\n",
+ "\n",
+ "#From Indian standard table\n",
+ "lamda_1=40 \n",
+ "sigma_a_c_1=139 #N/mm**2\n",
+ "lamda_2=50 \n",
+ "sigma_a_c_2=132 #N/mm**2 \n",
+ "\n",
+ "#Linearly interpolating between these values for lambda=42.744\n",
+ "\n",
+ "sigma_a_c_3=sigma_a_c_1-2.744*10**-1*(sigma_a_c_1-sigma_a_c_2)\n",
+ "\n",
+ "#Safe Load carrying capacity of column\n",
+ "P=sigma_a_c_3*A*10**-3\n",
+ "\n",
+ "#Result\n",
+ "print\"Safe Load carrying capacity is\",round(P,2),\"KN\""
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Safe Load carrying capacity is 2841.93 KN\n"
+ ]
+ }
+ ],
+ "prompt_number": 6
+ }
+ ],
+ "metadata": {}
+ }
+ ]
+}
\ No newline at end of file diff --git a/Strength_Of_Materials_by_S_S_Bhavikatti/chapter_10.ipynb b/Strength_Of_Materials_by_S_S_Bhavikatti/chapter_10.ipynb new file mode 100644 index 00000000..8b69b917 --- /dev/null +++ b/Strength_Of_Materials_by_S_S_Bhavikatti/chapter_10.ipynb @@ -0,0 +1,280 @@ +{
+ "metadata": {
+ "name": "chapter 10.ipynb"
+ },
+ "nbformat": 3,
+ "nbformat_minor": 0,
+ "worksheets": [
+ {
+ "cells": [
+ {
+ "cell_type": "heading",
+ "level": 1,
+ "metadata": {},
+ "source": [
+ "Chapter 10:Theory of Failures"
+ ]
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example No.10.10.1,Page No.401"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "import numpy as np\n",
+ "\n",
+ "#Initilization of Variables\n",
+ "\n",
+ "P_e=300 #N/mm**2 #Elastic Limit in tension\n",
+ "FOS=3 #Factor of safety\n",
+ "mu=0.3 #Poissoin's ratio\n",
+ "P=12*10**3 #N Pull \n",
+ "Q=6*10**3 #N #Shear force\n",
+ "\n",
+ "#Calculations\n",
+ "\n",
+ "#Let d be the diameter of the shaft\n",
+ "\n",
+ "#Direct stress\n",
+ "#P_x=P*(pi*4**-1*d**3)**-1\n",
+ "#After substituting values and further simplifying we get\n",
+ "#P_x=48*10**3\n",
+ "\n",
+ "#Now shear stress at the centre of bolt\n",
+ "#q=4*3**-1*q_av\n",
+ "#After substituting values and further simplifying we get\n",
+ "#q=32*10**3*(pi*d**2)**-1\n",
+ "\n",
+ "#Principal stresses are\n",
+ "#P1=P_x*2**-1+((P_x*2**-1)**2+q**2)**0.5\n",
+ "#After substituting values and further simplifying we get\n",
+ "#p1=20371.833*(d**2)**-1\n",
+ "\n",
+ "#P2=P_x*2**-1-((P_x*2**-1)**2+q**2)**0.5\n",
+ "#After substituting values and further simplifying we get\n",
+ "#P2=-5092.984*(d**2)**-1\n",
+ "\n",
+ "#q_max=((P_x*2**-1)**2+q**2)**0.5\n",
+ "\n",
+ "#From Max Principal stress theory\n",
+ "#Permissible stress in Tension\n",
+ "P1=100 #N/mm**2 \n",
+ "d=(20371.833*P1**-1)**0.5\n",
+ "\n",
+ "#Max strain theory\n",
+ "#e_max=P1*E**-1-mu*P2*E**-1\n",
+ "#After substituting values and further simplifying we get\n",
+ "#e_max=21899.728*(d**2*E)**-1\n",
+ "\n",
+ "#According to this theory,the design condition is\n",
+ "#e_max=P_e*(E*FOS)**-1\n",
+ "#After substituting values and further simplifying we get\n",
+ "d2=(21899.728*3*300**-1)**0.5 #mm\n",
+ "\n",
+ "#Max shear stress theory\n",
+ "#e_max=shear stress at elastic*(FOS)**-1\n",
+ "#After substituting values and further simplifying we get\n",
+ "d3=(12732.421*6*300**-1)**0.5 #mm\n",
+ "\n",
+ "#Result\n",
+ "print\"Diameter of Bolt by:Max Principal stress theory\",round(d,2),\"mm\"\n",
+ "print\" :Max strain theory\",round(d2,2),\"mm\"\n",
+ "print\" :Max shear stress theory\",round(d3,2),\"mm\""
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Diameter of Bolt by:Max Principal stress theory 14.27 mm\n",
+ " :Max strain theory 14.8 mm\n",
+ " :Max shear stress theory 15.96 mm\n"
+ ]
+ }
+ ],
+ "prompt_number": 9
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example No.10.10.2.Page No.402"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "import numpy as np\n",
+ "\n",
+ "#Initilization of Variables\n",
+ "\n",
+ "M=40*10**6 #N-mm #Bending moment\n",
+ "T=10*10**6 #N-mm #TOrque\n",
+ "mu=0.25 #Poissoin's ratio\n",
+ "P_e=200 #N/mm**2 #Stress at Elastic Limit\n",
+ "FOS=2\n",
+ "\n",
+ "#Calculations\n",
+ "\n",
+ "#Let d be the diameter of the shaft\n",
+ "\n",
+ "#Principal stresses are given by\n",
+ "\n",
+ "#P1=16*(pi*d**3)**-1*(M+(M**2+T**2)**0.5)\n",
+ "#After substituting values and further simplifying we get\n",
+ "#P1=4.13706*10**8*(d**3)**-1 ............................(1)\n",
+ "\n",
+ "#P2=16*(pi*d**3)**-1*(M-(M**2+T**2)**0.5)\n",
+ "#After substituting values and further simplifying we get\n",
+ "#P2=-6269718*(pi*d**3)**-1 ..............................(2)\n",
+ "\n",
+ "#q_max=(P1-P2)*2**-1\n",
+ "#After substituting values and further simplifying we get\n",
+ "#q_max=2.09988*10**8*(d**3)**-1\n",
+ "\n",
+ "#Max Principal stress theory\n",
+ "#P1=P_e*(FOS)**-1\n",
+ "#After substituting values and further simplifying we get\n",
+ "d=(4.13706*10**8*2*200**-1)**0.33333 #mm \n",
+ "\n",
+ "#Max shear stress theory\n",
+ "#q_max=shear stress at elastic limit*(FOS)**-1\n",
+ "#After substituting values and further simplifying we get\n",
+ "d2=(2.09988*10**8*4*200**-1)**0.33333\n",
+ "\n",
+ "#Max strain energy theory\n",
+ "#P_3=0\n",
+ "#P1**2+P2**2-2*mu*P1*P2=P_e**2*(FOS)**-1\n",
+ "#After substituting values and further simplifying we get\n",
+ "d3=(8.62444*10**12)**0.166666\n",
+ "\n",
+ "#Result\n",
+ "print\"Diameter of shaft according to:MAx Principal stress theory\",round(d,2),\"mm\"\n",
+ "print\" :Max shear stress theory\",round(d2,2),\"mm\"\n",
+ "print\" :Max strain energy theory\",round(d3,2),\"mm\""
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Diameter of shaft according to:MAx Principal stress theory 160.52 mm\n",
+ " :Max shear stress theory 161.33 mm\n",
+ " :Max strain energy theory 143.2 mm\n"
+ ]
+ }
+ ],
+ "prompt_number": 6
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example No.10.10.3,Page No.403"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "import numpy as np\n",
+ "\n",
+ "#Initilization of Variables\n",
+ "\n",
+ "f_x=40 #N/mm**2 #Internal Fliud Pressure\n",
+ "d1=200 #mm #Internal Diameter\n",
+ "r1=d1*2**-1 #mm #Radius\n",
+ "q=300 #N/mm**2 #Tensile stress\n",
+ "\n",
+ "#Calculations\n",
+ "\n",
+ "#From Lame's Equation we have,\n",
+ "\n",
+ "#Hoop Stress\n",
+ "#f_x=b*(x**2)**-1+a ..........................(1)\n",
+ "\n",
+ "#Radial Pressure\n",
+ "#p_x=b*(x**2)**-1-a .........................(2)\n",
+ "\n",
+ "#the boundary conditions are\n",
+ "x=d1*2**-1 #mm \n",
+ "#After sub values in equation 1 and further simplifying we get\n",
+ "#40=b*100**-1-a ..........................(3)\n",
+ "\n",
+ "#Max Principal stress theory\n",
+ "#q*(FOS)**-1=b*100**2+a ..................(4)\n",
+ "#After sub values in above equation and further simplifying we get\n",
+ "\n",
+ "#From Equation 3 and 4 we get\n",
+ "a=80*2**-1\n",
+ "#Sub value of a in equation 3 we get\n",
+ "b=(f_x+a)*100**2\n",
+ "\n",
+ "#At outer edge where x=r_0 pressure is zero\n",
+ "r_0=(b*a**-1)**0.5 #mm\n",
+ "\n",
+ "#thickness\n",
+ "t=r_0-r1 #mm\n",
+ "\n",
+ "#Max shear stress theory\n",
+ "P1=b*(100**2)**-1+a #Max hoop stress\n",
+ "P2=-40 #pressure at int radius (since P2 is compressive)\n",
+ "\n",
+ "#Max shear stress\n",
+ "q_max=(P1-P2)*2**-1\n",
+ "\n",
+ "#According max shear theory the design condition is\n",
+ "#q_max=P_e*2**-1*(FOS)**-1\n",
+ "#After sub values in equation we get and further simplifying we get\n",
+ "#80=b*(100**2)**-1+a\n",
+ "#After sub values in equation 1 and 3 and further simplifying we get\n",
+ "b2=120*100**2*2**-1\n",
+ "\n",
+ "#from equation(3)\n",
+ "a2=120*2**-1-a\n",
+ "\n",
+ "#At outer radius r_0,radial pressure=0\n",
+ "r_02=(b2*a2**-1)**0.5\n",
+ "\n",
+ "#thickness\n",
+ "t2=r_02-r1\n",
+ "\n",
+ "#Result\n",
+ "print\"Thickness of metal by:Max Principal stress theory\",round(t,2),\"mm\"\n",
+ "print\" :Max shear stress thoery\",round(t2,2),\"mm\""
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Thickness of metal by:Max Principal stress theory 41.42 mm\n",
+ " :Max shear stress thoery 73.21 mm\n"
+ ]
+ }
+ ],
+ "prompt_number": 2
+ }
+ ],
+ "metadata": {}
+ }
+ ]
+}
\ No newline at end of file diff --git a/Strength_Of_Materials_by_S_S_Bhavikatti/screenshots/BMD_QksEdap.PNG b/Strength_Of_Materials_by_S_S_Bhavikatti/screenshots/BMD_QksEdap.PNG Binary files differnew file mode 100644 index 00000000..51132abf --- /dev/null +++ b/Strength_Of_Materials_by_S_S_Bhavikatti/screenshots/BMD_QksEdap.PNG diff --git a/Strength_Of_Materials_by_S_S_Bhavikatti/screenshots/SFD_1_mX9fTGM.png b/Strength_Of_Materials_by_S_S_Bhavikatti/screenshots/SFD_1_mX9fTGM.png Binary files differnew file mode 100644 index 00000000..bcdc98e8 --- /dev/null +++ b/Strength_Of_Materials_by_S_S_Bhavikatti/screenshots/SFD_1_mX9fTGM.png diff --git a/Strength_Of_Materials_by_S_S_Bhavikatti/screenshots/SFD_2_dBvOQ58.png b/Strength_Of_Materials_by_S_S_Bhavikatti/screenshots/SFD_2_dBvOQ58.png Binary files differnew file mode 100644 index 00000000..fda62cbd --- /dev/null +++ b/Strength_Of_Materials_by_S_S_Bhavikatti/screenshots/SFD_2_dBvOQ58.png |