diff options
author | Trupti Kini | 2016-01-26 23:30:11 +0600 |
---|---|---|
committer | Trupti Kini | 2016-01-26 23:30:11 +0600 |
commit | 0c755162b4449d3eac5cbfcc12d320b4be545b6b (patch) | |
tree | c8bcb43e4d340be2c5f73dd50cbadcaec503a3e4 | |
parent | e72db949abd5bf2bc47e860845dd94f3ed8137ae (diff) | |
download | Python-Textbook-Companions-0c755162b4449d3eac5cbfcc12d320b4be545b6b.tar.gz Python-Textbook-Companions-0c755162b4449d3eac5cbfcc12d320b4be545b6b.tar.bz2 Python-Textbook-Companions-0c755162b4449d3eac5cbfcc12d320b4be545b6b.zip |
Added(A)/Deleted(D) following books
A The_Theory_of_Machines_by_T._Bevan/ch10.ipynb
A The_Theory_of_Machines_by_T._Bevan/ch11.ipynb
A The_Theory_of_Machines_by_T._Bevan/ch12.ipynb
A The_Theory_of_Machines_by_T._Bevan/ch13.ipynb
A The_Theory_of_Machines_by_T._Bevan/ch14.ipynb
A The_Theory_of_Machines_by_T._Bevan/ch15.ipynb
A The_Theory_of_Machines_by_T._Bevan/ch2.ipynb
A The_Theory_of_Machines_by_T._Bevan/ch3.ipynb
A The_Theory_of_Machines_by_T._Bevan/ch4.ipynb
A The_Theory_of_Machines_by_T._Bevan/ch5.ipynb
A The_Theory_of_Machines_by_T._Bevan/ch6.ipynb
A The_Theory_of_Machines_by_T._Bevan/ch7.ipynb
A The_Theory_of_Machines_by_T._Bevan/ch8.ipynb
A The_Theory_of_Machines_by_T._Bevan/ch9.ipynb
A The_Theory_of_Machines_by_T._Bevan/screenshots/amp_forced_vibr.png
A The_Theory_of_Machines_by_T._Bevan/screenshots/couple_sup_shaft_2.png
A The_Theory_of_Machines_by_T._Bevan/screenshots/vel,disp,acc.png
A sample_notebooks/PrashantSahu/Chapter-2-Molecular_Diffusion_-_Principles_of_Mass_Transfer_and_Separation_Process_by_Binay_K_Dutta_2.ipynb
18 files changed, 5511 insertions, 0 deletions
diff --git a/The_Theory_of_Machines_by_T._Bevan/ch10.ipynb b/The_Theory_of_Machines_by_T._Bevan/ch10.ipynb new file mode 100644 index 00000000..f6694202 --- /dev/null +++ b/The_Theory_of_Machines_by_T._Bevan/ch10.ipynb @@ -0,0 +1,303 @@ +{ + "metadata": { + "name": "" + }, + "nbformat": 3, + "nbformat_minor": 0, + "worksheets": [ + { + "cells": [ + { + "cell_type": "heading", + "level": 1, + "metadata": {}, + "source": [ + "Chapter 10: Toothed Gearing" + ] + }, + { + "cell_type": "heading", + "level": 2, + "metadata": {}, + "source": [ + "Example 1, Page 320" + ] + }, + { + "cell_type": "code", + "collapsed": false, + "input": [ + "import math\n", + "\n", + "#Variable declaration\n", + "Teeth=48\n", + "pitch=.75 #in\n", + "\n", + "#Calculations\n", + "D=Teeth*pitch/math.pi\n", + "\n", + "#Result\n", + "print \"The pitch diameter is %.3f in\"%D" + ], + "language": "python", + "metadata": {}, + "outputs": [ + { + "output_type": "stream", + "stream": "stdout", + "text": [ + "The pitch diameter is 11.459 in\n" + ] + } + ], + "prompt_number": 1 + }, + { + "cell_type": "heading", + "level": 2, + "metadata": {}, + "source": [ + "Example 2, Page 320" + ] + }, + { + "cell_type": "code", + "collapsed": false, + "input": [ + "import math\n", + "\n", + "#Variable declaration\n", + "T=48#teeth\n", + "pd=4#diametral pitch\n", + "\n", + "#Calculations\n", + "D=T/pd#pitch diameter\n", + "p=math.pi/pd#the circular pitch\n", + "\n", + "#Results\n", + "print \"The pitch diameter = %.f in\\nThe circular pitch = %.4f in\"%(D,p)" + ], + "language": "python", + "metadata": {}, + "outputs": [ + { + "output_type": "stream", + "stream": "stdout", + "text": [ + "The pitch diameter = 12 in\n", + "The circular pitch = 0.7854 in\n" + ] + } + ], + "prompt_number": 2 + }, + { + "cell_type": "heading", + "level": 2, + "metadata": {}, + "source": [ + "Example 3, Page 321" + ] + }, + { + "cell_type": "code", + "collapsed": false, + "input": [ + "import math\n", + "\n", + "#Variable declaration\n", + "T=48\n", + "m=6#mm ; module\n", + "\n", + "#Calculations\n", + "D=m*T\n", + "p=math.pi*m\n", + "dia=D/10#cm\n", + "P=p*0.0393700787#inches\n", + "\n", + "#Results\n", + "print \"Pitch diameter = %.1f cm\\nCircular pitch = %.4f in\"%(dia,P)" + ], + "language": "python", + "metadata": {}, + "outputs": [ + { + "output_type": "stream", + "stream": "stdout", + "text": [ + "Pitch diameter = 28.0 cm\n", + "Circular pitch = 0.7421 in\n" + ] + } + ], + "prompt_number": 3 + }, + { + "cell_type": "heading", + "level": 2, + "metadata": {}, + "source": [ + "Example 4, Page 334" + ] + }, + { + "cell_type": "code", + "collapsed": false, + "input": [ + "import math\n", + "\n", + "#Variable declaration\n", + "phi=20*math.pi/180\n", + "\n", + "#Calculations\n", + "#Solution a)\n", + "ar=1\n", + "t1=2*ar/math.sin(phi)**2#from equation 10.7\n", + "T1=math.ceil(t1)\n", + "#Solution b)\n", + "aw=1.\n", + "t2=2*aw/((1+3*math.sin(phi)**2)**(1./2)-1)#from euation 10.6\n", + "T2=math.ceil(t2)\n", + "#solution c)\n", + "t=1.\n", + "T=3.\n", + "A=(t/T)*(t/T+2)\n", + "t3=2*aw*(t/T)/((1+A*math.sin(phi)**2)**(1./2)-1)#from 10.5\n", + "T3=math.ceil(t3)\n", + "\n", + "#Results\n", + "print \"Smallest number of teeth theoretically required in order to avoid interference on a pinion which is to gear with\"\\\n", + " \"\\na) A rack , t= %.f\\nb) An equal pinion , t= %.f\\nc) A wheel to give a ratio of 3 to 1 , t= %.f\"%(T1,T2,T3)" + ], + "language": "python", + "metadata": {}, + "outputs": [ + { + "output_type": "stream", + "stream": "stdout", + "text": [ + "Smallest number of teeth theoretically required in order to avoid interference on a pinion which is to gear with\n", + "a) A rack , t= 18\n", + "b) An equal pinion , t= 13\n", + "c) A wheel to give a ratio of 3 to 1 , t= 15\n" + ] + } + ], + "prompt_number": 5 + }, + { + "cell_type": "heading", + "level": 2, + "metadata": {}, + "source": [ + "Example 5, Page 338" + ] + }, + { + "cell_type": "code", + "collapsed": false, + "input": [ + "import math\n", + "\n", + "#Variable declaration\n", + "t=25\n", + "phi=20*math.pi/180\n", + "\n", + "#Calculations\n", + "#let pitch be 1 \n", + "R=t/(2*math.pi)#R=t*p/(2*math.pi)\n", + "Larc=1.6#1.6*p\n", + "#AB=Larc*math.cos(phi)\n", + "AB=Larc*math.cos(phi)\n", + "Ra=(4.47+13.97)**(1./2)#by simplifying AB+2{(Ra^2-R^2*cos(phi)^2)-R*sin(phi)} and using p =1\n", + "Addendum=Ra-R\n", + "#writing p in place of p=1\n", + "\n", + "#Result\n", + "print \"Addendum required = %.2fp\"%Addendum" + ], + "language": "python", + "metadata": {}, + "outputs": [ + { + "output_type": "stream", + "stream": "stdout", + "text": [ + "Addendum required = 0.32p\n" + ] + } + ], + "prompt_number": 6 + }, + { + "cell_type": "heading", + "level": 2, + "metadata": {}, + "source": [ + "Example 6, Page 338" + ] + }, + { + "cell_type": "code", + "collapsed": false, + "input": [ + "import math\n", + "\n", + "#Variable declaration\n", + "#let module be 1\n", + "m=1\n", + "t1=28\n", + "t2=45\n", + "\n", + "#Calculations\n", + "r=t1*m/2\n", + "R=t2*m/2\n", + "ra=r+m\n", + "Ra=R+m\n", + "phi1=14.5*math.pi/180\n", + "#10.8 => AB =(ra^2-r^2*cos(phi)^2)^(1/2)+(Ra^2-R^2*cos(phi)^2)^(1/2)-(r+R)*sin(phi)\n", + "#AB=A+B-C\n", + "A=m*(ra**2-r**2*math.cos(phi1)**2)**(1./2)\n", + "B=m*(Ra**2-R**2*math.cos(phi1)**2)**(1./2)\n", + "C=m*(r+R)*math.sin(phi1)\n", + "AB=A+B-C\n", + "p=math.pi*m\n", + "ABp=AB/math.pi\n", + "arc1=ABp/math.cos(phi1)#length of arc of contact\n", + "phi2=20*math.pi/180\n", + "#10.8 => AB =(ra^2-r^2*cos(phi)^2)^(1/2)+(Ra^2-R^2*cos(phi)^2)^(1/2)-(r+R)*sin(phi)\n", + "a=m*(ra**2-r**2*math.cos(phi2)**2)**(1./2)\n", + "b=m*(Ra**2-R**2*math.cos(phi2)**2)**(1./2)\n", + "c=m*(r+R)*math.sin(phi2)\n", + "ab=a+b-c\n", + "abp=ab/math.pi\n", + "arc2=abp/math.cos(phi2)#length of arc of contact\n", + "\n", + "#Results\n", + "print \"Length of path of contact\\nWhen phi = 14.5 degrees = %.3fm\\nWhen phi = 20 degrees = %.2fm\"\\\n", + " \"\\n\\nLength of arc of contact\\nWhen phi = 14.5 degrees = %.2fp\\nWhen phi = 20 degrees = %.3fp\"%(AB,ab,arc1,arc2)" + ], + "language": "python", + "metadata": {}, + "outputs": [ + { + "output_type": "stream", + "stream": "stdout", + "text": [ + "Length of path of contact\n", + "When phi = 14.5 degrees = 6.092m\n", + "When phi = 20 degrees = 4.97m\n", + "\n", + "Length of arc of contact\n", + "When phi = 14.5 degrees = 2.00p\n", + "When phi = 20 degrees = 1.685p\n" + ] + } + ], + "prompt_number": 7 + } + ], + "metadata": {} + } + ] +}
\ No newline at end of file diff --git a/The_Theory_of_Machines_by_T._Bevan/ch11.ipynb b/The_Theory_of_Machines_by_T._Bevan/ch11.ipynb new file mode 100644 index 00000000..4dbc86f6 --- /dev/null +++ b/The_Theory_of_Machines_by_T._Bevan/ch11.ipynb @@ -0,0 +1,363 @@ +{ + "metadata": { + "name": "" + }, + "nbformat": 3, + "nbformat_minor": 0, + "worksheets": [ + { + "cells": [ + { + "cell_type": "heading", + "level": 1, + "metadata": {}, + "source": [ + "Chapter 11: Gear Trains" + ] + }, + { + "cell_type": "heading", + "level": 2, + "metadata": {}, + "source": [ + "Example 1, Page 369" + ] + }, + { + "cell_type": "code", + "collapsed": false, + "input": [ + "#Variable declaration\n", + "Ns=26#rpm of spindle\n", + "N1=4#rpm of lead screw\n", + "#the only wheel in the set of which 13 is a factor is that with 65 teeth\n", + "T1=65\n", + "T2=25#to satisfy the Ns/n1 ratio and to select from given set\n", + "T3=75#to satisfy the Ns/n1 ratio and to select from given set\n", + "\n", + "#Calculations\n", + "T4=T1*T3*N1/(Ns*T2)\n", + "#solution b\n", + "Ns1=35\n", + "N1=4\n", + "Tb1=105#to satisfy the Ns/n1 ratio and to select from given set\n", + "Tb2=30#to satisfy the Ns/n1 ratio and to select from given set\n", + "Tb3=100#to satisfy the Ns/n1 ratio and to select from given set\n", + "Tb4=Tb1*Tb3*N1/(Ns1*Tb2)\n", + "\n", + "#Results\n", + "print \"a)The change wheel used will have %.f, %.f, %.f and %.f teeths\\nb) The change wheel used will have %.f, %.f, %.f \"\\\n", + " \"and %.f teeths\"%(T1,T2,T3,T4,Tb1,Tb2,Tb3,Tb4)" + ], + "language": "python", + "metadata": {}, + "outputs": [ + { + "output_type": "stream", + "stream": "stdout", + "text": [ + "a)The change wheel used will have 65, 25, 75 and 30 teeths\n", + "b) The change wheel used will have 105, 30, 100 and 40 teeths\n" + ] + } + ], + "prompt_number": 2 + }, + { + "cell_type": "heading", + "level": 2, + "metadata": {}, + "source": [ + "Example 2, Page 371" + ] + }, + { + "cell_type": "code", + "collapsed": false, + "input": [ + "import math\n", + "\n", + "#Variable declaration\n", + "v=15#ft/min\n", + "d=2#ft\n", + "N=450#rpm\n", + "\n", + "#Calculations\n", + "N1=d*v/(2*math.pi)#rpm of barrel\n", + "s=N/N1#total reduction speed required\n", + "#With a minimum number of teeth = 20\n", + "T=20\n", + "T1=T*(s)**(1./3)\n", + "R=(T1/T)**3\n", + "\n", + "#Results\n", + "print \"If the minimum number of teeth is fixed at 20, the might be as follow ( %.f / 20 )^3 = %.1f\"\\\n", + " \"\\nThis is sufficiently close to the required ratio\"%(T1,R)" + ], + "language": "python", + "metadata": {}, + "outputs": [ + { + "output_type": "stream", + "stream": "stdout", + "text": [ + "If the minimum number of teeth is fixed at 20, the might be as follow ( 91 / 20 )^3 = 94.2\n", + "This is sufficiently close to the required ratio\n" + ] + } + ], + "prompt_number": 3 + }, + { + "cell_type": "heading", + "level": 2, + "metadata": {}, + "source": [ + "Example 3, Page 374" + ] + }, + { + "cell_type": "code", + "collapsed": false, + "input": [ + "import math\n", + "\n", + "#Variable declaration\n", + "d=7.#in; central distance\n", + "k1=2.*7*7#T1+t1/(2*7)=7\n", + "k2=2.*7*5#T2+t2/(2*5)=7\n", + "G=9./1\n", + "\n", + "#Calculations\n", + "t1=(-(k1+k2)+((k1+k2)**2+4*(G-1)*(k1*k2))**(1/2))/(2*(G-1))\n", + "a=math.ceil(t1)\n", + "b=math.floor(t1)\n", + "T1=k1-a\n", + "T2=k2-a\n", + "T3=k2-b\n", + "G1=T1*T2/(a*a)\n", + "G2=T1*T3/(a*b)\n", + "dp=a/d\n", + "#case b)\n", + "tb1=23#let t1 = 23\n", + "Tb1=k1-tb1\n", + "Gb1=Tb1/tb1\n", + "Gb2=G/Gb1\n", + "tb2=k2/(Gb2+1)\n", + "p=math.ceil(tb2)\n", + "Tb2=k2-p\n", + "l=Tb1-1\n", + "m=tb1+1\n", + "n=Tb2+1\n", + "o=p-1\n", + "Gb2=l*n/(m*o)\n", + "\n", + "#Results\n", + "print \"a) No of teeth = %.f, %.f, %.f, %.f\\nG = %.2f\\n\\nb) No of teeth = %.f, %.f, %.f, %.f\\nG = %.2f\\n\\n\"%(T1,T2,a,b,G2,l,m,n,o,Gb2)" + ], + "language": "python", + "metadata": {}, + "outputs": [ + { + "output_type": "stream", + "stream": "stdout", + "text": [ + "a) No of teeth = 108, 80, -10, -11\n", + "G = 79.53\n", + "\n", + "b) No of teeth = 74, 24, 52, 18\n", + "G = 8.91\n", + "\n", + "\n" + ] + } + ], + "prompt_number": 6 + }, + { + "cell_type": "heading", + "level": 2, + "metadata": {}, + "source": [ + "Example 5, Page 388" + ] + }, + { + "cell_type": "code", + "collapsed": false, + "input": [ + "#Variable declaration\n", + "Tb=27.\n", + "Tc=30\n", + "Td=24\n", + "Te=21\n", + "\n", + "#Calculations\n", + "k=Te*Tb/(Tc*Td)#k=Nd/Ne\n", + "#by applying componendo and dividendo, using Ne=0 and reducing we get\n", + "a=(1-k)#where a = Nd/Na\n", + "b=1./a\n", + "\n", + "#Results\n", + "print \"The ratio of the speed of driving shaft to the speed of driven shaft, Na/Nd = %.2f\"%b" + ], + "language": "python", + "metadata": {}, + "outputs": [ + { + "output_type": "stream", + "stream": "stdout", + "text": [ + "The ratio of the speed of driving shaft to the speed of driven shaft, Na/Nd = 4.71\n" + ] + } + ], + "prompt_number": 9 + }, + { + "cell_type": "heading", + "level": 2, + "metadata": {}, + "source": [ + "Example 6, Page 391" + ] + }, + { + "cell_type": "code", + "collapsed": false, + "input": [ + "#Variable declaration\n", + "Tb=75.\n", + "Tc=18\n", + "Td=17\n", + "Te=71\n", + "N1=500#rpm\n", + "\n", + "#Calculations\n", + "k=Tb*Td/(Tc*Te)#k=Ne/Nb\n", + "#case a)\n", + "#using componendo and dividendo , Nb=0 and reducing we get\n", + "a=1-k#a=Ne/Na\n", + "Na=N1\n", + "Ne=Na*a\n", + "#case b)\n", + "Na1=500#given\n", + "Nb1=100#given\n", + "Ne1=k*(Nb1-Na1)+Na1\n", + "\n", + "#Results\n", + "print \"case a) Ne= %.3f rpm\\ncase b) Ne= %.1f rpm\"%(Ne,Ne1)" + ], + "language": "python", + "metadata": {}, + "outputs": [ + { + "output_type": "stream", + "stream": "stdout", + "text": [ + "case a) Ne= 1.174 rpm\n", + "case b) Ne= 100.9 rpm\n" + ] + } + ], + "prompt_number": 10 + }, + { + "cell_type": "heading", + "level": 2, + "metadata": {}, + "source": [ + "Example 8, Page 398" + ] + }, + { + "cell_type": "code", + "collapsed": false, + "input": [ + "import math\n", + "\n", + "#Variable declaration\n", + "Td=23.\n", + "Ta=19\n", + "Tb=20\n", + "Tc=22\n", + "\n", + "#Calculations\n", + "k=Td*Ta/(Tb*Tc)\n", + "#using componendo and dividendo, Nc=0 and reducing we get\n", + "a=1./k-1#a=Nd/Ne\n", + "b=1./a#- denotes opposite direction\n", + "d=5280*12/(math.pi*5*b)\n", + "p=math.ceil(d)\n", + "\n", + "#Results\n", + "print \"The diameter must be = %.1f in\\nThe numbers of teeths are therefore suitable for a cyclometer for bicycle with %.f \"\\\n", + " \"inches wheels\"%(d,p)\n" + ], + "language": "python", + "metadata": {}, + "outputs": [ + { + "output_type": "stream", + "stream": "stdout", + "text": [ + "The diameter must be = 27.7 in\n", + "The numbers of teeths are therefore suitable for a cyclometer for bicycle with 28 inches wheels\n" + ] + } + ], + "prompt_number": 12 + }, + { + "cell_type": "heading", + "level": 2, + "metadata": {}, + "source": [ + "Example 10, Page 403" + ] + }, + { + "cell_type": "code", + "collapsed": false, + "input": [ + "#Variable declaration\n", + "s1=26\n", + "s2=24\n", + "s3=23\n", + "sr=31\n", + "i1=70\n", + "i2=72\n", + "i3=61\n", + "ir=71\n", + "t=1500#lb in \n", + "\n", + "#Calculations\n", + "k1=-i3/s3#Ns3-Ni2/(Ni3-Ni2)=k\n", + "#S3 is fixed thus \n", + "k2=1-(1./k1)#k2=Ni3/Ni2\n", + "k3=-i2/s2#k3=Ns2-Ni3/(Ni2-Ni3)\n", + "k4=(1./k2-1)*k3+1#k4=Ns2/Ni3 ; reducing using k2 and k3\n", + "k5=-i1/s1#Ns1-Nf/(Ni1-Nf)\n", + "k6=(1-k5)/(1-k5/k4)#k6=Ns1/Nf\n", + "\n", + "#Result\n", + "print \"Ns1/Nf = %.2f\"%k6" + ], + "language": "python", + "metadata": {}, + "outputs": [ + { + "output_type": "stream", + "stream": "stdout", + "text": [ + "Ns1/Nf = 1.47\n" + ] + } + ], + "prompt_number": 13 + } + ], + "metadata": {} + } + ] +}
\ No newline at end of file diff --git a/The_Theory_of_Machines_by_T._Bevan/ch12.ipynb b/The_Theory_of_Machines_by_T._Bevan/ch12.ipynb new file mode 100644 index 00000000..f82a7a0b --- /dev/null +++ b/The_Theory_of_Machines_by_T._Bevan/ch12.ipynb @@ -0,0 +1,535 @@ +{ + "metadata": { + "name": "" + }, + "nbformat": 3, + "nbformat_minor": 0, + "worksheets": [ + { + "cells": [ + { + "cell_type": "heading", + "level": 1, + "metadata": {}, + "source": [ + "Chapter 12: Dynamics of Machines. Turning Moment. The Flywheel" + ] + }, + { + "cell_type": "heading", + "level": 2, + "metadata": {}, + "source": [ + "Example 2, Page 414" + ] + }, + { + "cell_type": "code", + "collapsed": false, + "input": [ + "#Variable declaration\n", + "ne=31\n", + "na=25\n", + "nb=90\n", + "nc=83\n", + "Ta=10 #lbft\n", + "\n", + "#Calculations\n", + "#Ne-Nf/(Nc-Nf)=-83/31\n", + "k=114./83#k=Nc/Nf As Ne = 0, on simplification we get Nc/Nf= 114/83\n", + "j=-90./25#j=Na/Nb\n", + "#Nc=Nb, Thus Na/Nc=-90/25\n", + "#Na/Nf=(Na/Nc)*(Nc/Nf) ie Na/Nf=k*j\n", + "#Tf*Nf=Ta*Na\n", + "Tf=Ta*k*j\n", + "\n", + "#Result\n", + "print \"Torque exerted on driven shaft = %.1f lb.ft\"%Tf" + ], + "language": "python", + "metadata": {}, + "outputs": [ + { + "output_type": "stream", + "stream": "stdout", + "text": [ + "Torque exerted on driven shaft = -49.4 lb.ft\n" + ] + } + ], + "prompt_number": 2 + }, + { + "cell_type": "heading", + "level": 2, + "metadata": {}, + "source": [ + "Example 3, Page 415" + ] + }, + { + "cell_type": "code", + "collapsed": false, + "input": [ + "import math\n", + "\n", + "#Variable declaration\n", + "D=9.#in\n", + "stroke=24.#in\n", + "d=2#in\n", + "l=60.#in\n", + "CP=l\n", + "N=120\n", + "theta=40#degrees\n", + "x=theta*math.pi/180\n", + "P1=160#lb/in^2\n", + "P2=32#lb/in^2\n", + "\n", + "#Calculations\n", + "OC=stroke/2\n", + "F=math.pi*(D/2)**2*P1-math.pi*(D/2)**2*P2+math.pi*(d/2)**2*P2\n", + "#Ft*Vc=F*Vp; Where Vc and Vp are velocities of crank and pin respectively\n", + "#Vp/Vc=IP/IC=OM/OC - From similar triangles ; fig 274\n", + "n=CP/OC\n", + "OM=OC*(math.sin(x) + (math.sin(2*x)/(2*n)))#from 3.11\n", + "T=F*OM/12#torque exerted on crankshaft\n", + "Torque=math.floor(T)\n", + "\n", + "#Result\n", + "print \"The torque exerted on crankshaft= F*OM = %.f lb ft\"%Torque" + ], + "language": "python", + "metadata": {}, + "outputs": [ + { + "output_type": "stream", + "stream": "stdout", + "text": [ + "The torque exerted on crankshaft= F*OM = 6110 lb ft\n" + ] + } + ], + "prompt_number": 4 + }, + { + "cell_type": "heading", + "level": 2, + "metadata": {}, + "source": [ + "Example 4, Page 420" + ] + }, + { + "cell_type": "code", + "collapsed": false, + "input": [ + "#Variable declaration\n", + "AB=12.5#in\n", + "IB=10.15#in\n", + "IA=10.75#in\n", + "IX=2.92#in\n", + "IY=5.5#in\n", + "w=3#lb\n", + "Fi=5#lb\n", + "Fa1=9#lb\n", + "\n", + "#Calculations\n", + "Fb1=(Fa1*IA-w*IY-Fi*IX)/IB\n", + "#From the polygon of forces\n", + "Fa2=7.66#lb\n", + "Fb2=3.0#lb\n", + "Fa=(Fa1**2+Fa2**2)**(1./2)\n", + "Fb=(Fb1**2+Fb2**2)**(1./2)\n", + "\n", + "#Results\n", + "print \"The total force applied to the link AB at the pin A = Fa = %.2f lb\\nThe total force applied to the link AB\" \\\n", + " \"at the pin B = Fb = %.2f lb\"%(Fa,Fb)" + ], + "language": "python", + "metadata": {}, + "outputs": [ + { + "output_type": "stream", + "stream": "stdout", + "text": [ + "The total force applied to the link AB at the pin A = Fa = 11.82 lb\n", + "The total force applied to the link ABat the pin B = Fb = 7.13 lb\n" + ] + } + ], + "prompt_number": 5 + }, + { + "cell_type": "heading", + "level": 2, + "metadata": {}, + "source": [ + "Example 5, Page 424" + ] + }, + { + "cell_type": "code", + "collapsed": false, + "input": [ + "import math\n", + "\n", + "#Variable declaration\n", + "CP=60.#in\n", + "l=CP/12\n", + "a=41.\n", + "cg=19.\n", + "g=32.2#ft/s^2\n", + "m1=580.#lb\n", + "Mr=500.#lb\n", + "n=5.#from example 12.3\n", + "x=40*math.pi/180\n", + "N=120.\n", + "r=1.#ft\n", + "k=25.\n", + "\n", + "#Calculations\n", + "w=N*math.pi/30\n", + "Rm=m1+(cg/CP)*Mr\n", + "fp=w**2*r*(math.cos(x)+math.cos(2*x)/n)\n", + "Fp=-Rm*fp/g\n", + "OM=0.7413#ft -from example 12.3\n", + "Tp=Fp*OM#from 12.6\n", + "L=a+k**2/a#length for simple equivalent pendulum\n", + "L1=L/12\n", + "Tc=-Mr*(a/12)*(l-L1)*w**2*math.sin(2*x*math.pi/180)/(g*2*n**2)#from 12.10\n", + "Tw=-Mr*a*math.cos(x*math.pi/180)/(n*12)\n", + "T=Tp+Tc+Tw\n", + "\n", + "#Results\n", + "print \"Tp= %.f lbft\\nTc = %.1f lbft\\nTw = %.1f lbft\\nTotal torque exerted on the crankshaft due to the inertia of \"\\\n", + " \"the moving parts = Tp+Tc+tw = %.1f lbft\"%(Tp,Tc,Tw,T)" + ], + "language": "python", + "metadata": {}, + "outputs": [ + { + "output_type": "stream", + "stream": "stdout", + "text": [ + "Tp= -2149 lbft\n", + "Tc = -1.3 lbft\n", + "Tw = -341.6 lbft\n", + "Total torque exerted on the crankshaft due to the inertia of the moving parts = Tp+Tc+tw = -2492.3 lbft\n" + ] + } + ], + "prompt_number": 9 + }, + { + "cell_type": "heading", + "level": 2, + "metadata": {}, + "source": [ + "Example 6, Page 428" + ] + }, + { + "cell_type": "code", + "collapsed": false, + "input": [ + "import math\n", + "\n", + "#Variable declaration\n", + "AB=2.5#in\n", + "BC=7.#in\n", + "CD=4.5#in\n", + "AD=8.#in\n", + "ED=2.3#from figure\n", + "N=180\n", + "w=N*math.pi/30\n", + "m=3.#lb\n", + "k=3.5#radius of gyration\n", + "g=32.2#ft/s**2\n", + "QT=1.35#inches from figure\n", + "\n", + "#Calculations\n", + "alpha=w**2*(QT/CD)\n", + "Torque=m*(k/12)**2*alpha/g\n", + "Torque1=Torque*12\n", + "Tadd=m*ED#additional torque\n", + "Tc=Tadd+Torque1#total torque\n", + "Fc1=Tc/CD\n", + "#link BC\n", + "M=5#lb\n", + "gA=1.8#in\n", + "fg=w**2*(gA/12)\n", + "F=M*fg/g\n", + "OaG=5.6#in\n", + "Kg=2.9#in\n", + "GZ=Kg**2/OaG\n", + "#scaled from figure\n", + "IB=9#in\n", + "IC=5.8#in\n", + "IX=2.49#in\n", + "IY=1.93#in\n", + "Fb1=(Fc1*IC+F*IX+M*IY)/IB\n", + "Tor=Fb1*AB\n", + "#from force polygon\n", + "Fc2=1#lb\n", + "Fb2=15.2#lb\n", + "Fb=(Fb1**2+Fb2**2)**(1./2)\n", + "Fc=(Fc1**2+Fc2**2)**(1./2)\n", + "\n", + "#Results\n", + "print \"The torque which must be exerted on AB in order to overcome the inertia of the links = Fb1*AB = %.1f lb.in\"\\\n", + " \"\\nThe total force applied to the link BC \\nAt pin C = %.2f lb\\nAt pin B = %.1f lb\"%(Tor,Fc,Fb)" + ], + "language": "python", + "metadata": {}, + "outputs": [ + { + "output_type": "stream", + "stream": "stdout", + "text": [ + "The torque which must be exerted on AB in order to overcome the inertia of the links = Fb1*AB = 14.5 lb.in\n", + "The total force applied to the link BC \n", + "At pin C = 3.92 lb\n", + "At pin B = 16.3 lb\n" + ] + } + ], + "prompt_number": 11 + }, + { + "cell_type": "heading", + "level": 2, + "metadata": {}, + "source": [ + "Example 7, Page 441" + ] + }, + { + "cell_type": "code", + "collapsed": false, + "input": [ + "import math\n", + "\n", + "#Variable declaration\n", + "N=210#rpm\n", + "w=N*math.pi/30\n", + "F=50\n", + "\n", + "#Calculations\n", + "p1=F*120/(N*2)#N*p=F*120\n", + "p2=math.floor(p1)#no of poles must be a whole number ; P2=P/2\n", + "p=2*p2\n", + "N1=F*120/p\n", + "n=3#no of impulse per second\n", + "Ks=n/(6*p)#equation 12.13\n", + "\n", + "#Results\n", + "print \"Ks = %.4f\\n\\nActual speed = %.1f rpm\\nNumber of poles = %.f\"%(Ks,N1,p)" + ], + "language": "python", + "metadata": {}, + "outputs": [ + { + "output_type": "stream", + "stream": "stdout", + "text": [ + "Ks = 0.0179\n", + "\n", + "Actual speed = 214.3 rpm\n", + "Number of poles = 28\n" + ] + } + ], + "prompt_number": 12 + }, + { + "cell_type": "heading", + "level": 2, + "metadata": {}, + "source": [ + "Example 8, Page 443" + ] + }, + { + "cell_type": "code", + "collapsed": false, + "input": [ + "import math\n", + "\n", + "#Variable declaration\n", + "N=120#rpm\n", + "k=3.5#ft\n", + "Ef=2500#ft lb\n", + "Ks=.01\n", + "g=32.2#ft/s^2\n", + "\n", + "#Calculations\n", + "w=math.pi*N/30#angular velocity\n", + "W=g*Ef/(w**2*k**2*Ks*2240)#Weight of flying wheel\n", + "\n", + "#Result\n", + "print \"Weight of flying wheel, W = %.2f tons\"%W" + ], + "language": "python", + "metadata": {}, + "outputs": [ + { + "output_type": "stream", + "stream": "stdout", + "text": [ + "Weight of flying wheel, W = 1.86 tons\n" + ] + } + ], + "prompt_number": 13 + }, + { + "cell_type": "heading", + "level": 2, + "metadata": {}, + "source": [ + "Example 9, Page 443" + ] + }, + { + "cell_type": "code", + "collapsed": false, + "input": [ + "import math\n", + "\n", + "#Variable declaration\n", + "N=270#rpm\n", + "ihp=35.8\n", + "k=2.25#ft\n", + "g=32.2#ft/s^2\n", + "ke=1.93#from table on p 440\n", + "\n", + "#Calculations\n", + "E=ihp*33000/N\n", + "Ef=ke*E\n", + "w=math.pi*N/30\n", + "W=1000#lb\n", + "MOI=2*W*k**2#moment of inertia of both wheel\n", + "ks=Ef*g/(MOI*w**2)#formula for ks\n", + "p=ks/2\n", + "\n", + "#Results\n", + "print \"The fluctuation speed is therefore %.1f%% or %.1f%% on either side of the mean speed\"%(ks*100,p*100)" + ], + "language": "python", + "metadata": {}, + "outputs": [ + { + "output_type": "stream", + "stream": "stdout", + "text": [ + "The fluctuation speed is therefore 3.4% or 1.7% on either side of the mean speed\n" + ] + } + ], + "prompt_number": 16 + }, + { + "cell_type": "heading", + "level": 2, + "metadata": {}, + "source": [ + "Example 10, Page 444" + ] + }, + { + "cell_type": "code", + "collapsed": false, + "input": [ + "import math\n", + "\n", + "#Variable declaration\n", + "ihp=25.\n", + "N=300.#rpm\n", + "Ks=2./100#given\n", + "u=2.3#work done by gases during expansion is u(2.3) times that during compression\n", + "\n", + "#Calculations\n", + "E=ihp*33000/N#indicated work done per revolution\n", + "E1=E*2#indicated work done per cycle\n", + "We=E1/(1-1./u)#work done by gases during expansion\n", + "AB=We*2./math.pi#the maximum torque from fig 290\n", + "AC=E/(2*math.pi)#mean turning moment\n", + "CB=AB-AC#maximum excess turning moment\n", + "Ef=(CB/AB)**2*We#fluctuation of energy\n", + "Ke=Ef/E\n", + "w=math.pi*N/30#angular speed\n", + "g=32.2#ft/s^2\n", + "moi=g*Ef/(w**2*Ks)#moment of inertia\n", + "\n", + "#Result\n", + "print \"Moment of inertia of the flywheel = %.f lb ft^2\"%moi\n", + "\n", + "#answer is not EXACT due to the approximations in calculations done by the author of the book" + ], + "language": "python", + "metadata": {}, + "outputs": [ + { + "output_type": "stream", + "stream": "stdout", + "text": [ + "Moment of inertia of the flywheel = 13710 lb ft^2\n" + ] + } + ], + "prompt_number": 17 + }, + { + "cell_type": "heading", + "level": 2, + "metadata": {}, + "source": [ + "Example 11, Page 445" + ] + }, + { + "cell_type": "code", + "collapsed": false, + "input": [ + "import math\n", + "\n", + "#Variable declaration\n", + "N=100#rpm\n", + "ke=1.93#As per given figure\n", + "l=15#1 inch of fig = 15 ton ft \n", + "x=40#degrees; 1 inch = 40 degree\n", + "I=150#ton ft^2\n", + "g = 32.2\n", + "\n", + "\n", + "#Calculations\n", + "w=math.pi*N/30#angular speed\n", + "E=l*x*math.pi/180#energy\n", + "Ef=E*ke#fluctuation energy\n", + "Ks=Ef*g/(w**2*I)#from equation 12.14\n", + "p=Ks*100/2#dummy variables\n", + "q=p*2#dummy variables\n", + "\n", + "#Results\n", + "print \"The total fluctuation of speed is %.2f percent and the variation in speed is %.2f percent on either side of \"\\\n", + " \"\\n the mean speed\"%(q,p)\n" + ], + "language": "python", + "metadata": {}, + "outputs": [ + { + "output_type": "stream", + "stream": "stdout", + "text": [ + "The total fluctuation of speed is 3.96 percent and the variation in speed is 1.98 percent on either side of \n", + " the mean speed\n" + ] + } + ], + "prompt_number": 18 + } + ], + "metadata": {} + } + ] +}
\ No newline at end of file diff --git a/The_Theory_of_Machines_by_T._Bevan/ch13.ipynb b/The_Theory_of_Machines_by_T._Bevan/ch13.ipynb new file mode 100644 index 00000000..97b5e8bd --- /dev/null +++ b/The_Theory_of_Machines_by_T._Bevan/ch13.ipynb @@ -0,0 +1,462 @@ +{ + "metadata": { + "name": "" + }, + "nbformat": 3, + "nbformat_minor": 0, + "worksheets": [ + { + "cells": [ + { + "cell_type": "heading", + "level": 1, + "metadata": {}, + "source": [ + "Chapter 13: Governors" + ] + }, + { + "cell_type": "heading", + "level": 2, + "metadata": {}, + "source": [ + "Example 1, Page 459" + ] + }, + { + "cell_type": "code", + "collapsed": false, + "input": [ + "#Variable declaration\n", + "#all lengths are in inches\n", + "W=120.#lb\n", + "w=15#lb\n", + "AB=12\n", + "BF=8\n", + "BC=12\n", + "BE=6.5\n", + "g=35230#inches rpm\n", + "\n", + "#Calculations\n", + "#at Minimum radius \n", + "AF=(AB**2-BF**2)**(1./2)\n", + "CE=(BC**2-BE**2)**(1./2)\n", + "k2=(BE*AF)/(CE*BF)\n", + "N2=(((W/2)*(1+k2)+w)*g/(w*AF))**(1./2)\n", + "#At MAximum radius \n", + "BF1=10\n", + "BE1=8.5\n", + "AF1=(AB**2-BF1**2)**(1./2)\n", + "CE1=(BC**2-BE1**2)**(1./2)\n", + "k1=(BE1*AF1)/(CE1*BF1)\n", + "N1=(((W/2)*(1+k1)+w)*g/(w*AF1))**(1./2)\n", + "\n", + "#Results\n", + "print \"N1 (corresponding maximum radius) = %.1f rpm\\nN2 (corresponding minimum radius) = %.1f rpm\"%(N1,N2)" + ], + "language": "python", + "metadata": {}, + "outputs": [ + { + "output_type": "stream", + "stream": "stdout", + "text": [ + "N1 (corresponding maximum radius) = 201.7 rpm\n", + "N2 (corresponding minimum radius) = 176.2 rpm\n" + ] + } + ], + "prompt_number": 2 + }, + { + "cell_type": "heading", + "level": 2, + "metadata": {}, + "source": [ + "Example 2, Page 462" + ] + }, + { + "cell_type": "code", + "collapsed": false, + "input": [ + "import math\n", + "\n", + "#Variable declaration\n", + "BG=4#in\n", + "\n", + "#Calculations&Results\n", + "#solution a\n", + "w=15#lb\n", + "W=120.#lb\n", + "k=.720\n", + "BD=10.08#in\n", + "CE=BD\n", + "DG=BD+BG\n", + "#by equating quations 13.2 and 13.10 and reducing, we get\n", + "w1=(W/2*(1+k))/(((W/2*(1+k)+w)*DG/(BD*w))-1)\n", + "print \"Weight of ball = %.3f lb\"%w1\n", + "#solution b\n", + "CD=6.5#in\n", + "BC=12#in\n", + "BF=10.#in\n", + "AB=12#in\n", + "CG=(DG**2+CD**2)**(1./2)\n", + "gama=math.atan(CD/DG)\n", + "bita=math.asin(CD/BC)\n", + "alpha1=math.asin(BF/AB)\n", + "bita1=math.asin(8.5/BC)\n", + "gama1=gama+bita1-bita\n", + "F=((w1+W/2)*8.471*(math.tan(alpha1)+math.tan(bita1)))/(CG*math.cos(gama1))-(w1*math.tan(gama1))\n", + "print\"F1= %.1f lb\"%F\n", + "r1=CG*math.sin(gama1)+1.5#radius of rotation\n", + "N1=(30/math.pi)*(F*32.2*12/(w1*r1))**(1./2)\n", + "print \"r1= %.2f in\\nN1= %.1f rpm\"%(r1,N1)" + ], + "language": "python", + "metadata": {}, + "outputs": [ + { + "output_type": "stream", + "stream": "stdout", + "text": [ + "Weight of ball = 10.313 lb\n", + "F1= 113.1 lb\n", + "r1= 10.85 in\n", + "N1= 188.7 rpm\n" + ] + } + ], + "prompt_number": 4 + }, + { + "cell_type": "heading", + "level": 2, + "metadata": {}, + "source": [ + "Example 3, Page 466" + ] + }, + { + "cell_type": "code", + "collapsed": false, + "input": [ + "import math\n", + "\n", + "#Variable declaration\n", + "w=3#lb\n", + "g=32.2\n", + "N2=300\n", + "\n", + "#Calculations\n", + "w2=(N2*math.pi/30)\n", + "r2=3./12#ft\n", + "N1=1.06*N2\n", + "r1=4.5/12#ft\n", + "a=4#in\n", + "b=2#in\n", + "ro=3.5/12#ft\n", + "F2=w*w2**2*r2/g\n", + "F1=F2*N1**2*r1/(N2**2*r2)\n", + "p=2*a**2*(F1-F2)/(b**2*(r1-r2))\n", + "Fc=F2+(F1-F2)*(.5/1.5)\n", + "N=(Fc*g/(ro*w))**(1./2)*30/math.pi\n", + "Ns=math.ceil(N)\n", + "\n", + "#Result\n", + "print \"N = %.1f rpm\"%Ns" + ], + "language": "python", + "metadata": {}, + "outputs": [ + { + "output_type": "stream", + "stream": "stdout", + "text": [ + "N = 308.0 rpm\n" + ] + } + ], + "prompt_number": 6 + }, + { + "cell_type": "heading", + "level": 2, + "metadata": {}, + "source": [ + "Example 4, Page 468" + ] + }, + { + "cell_type": "code", + "collapsed": false, + "input": [ + "import math\n", + "\n", + "#Variable declaration\n", + "w=5#lb\n", + "g=32.2\n", + "N2=240#rpm\n", + "\n", + "#Calculations\n", + "w2=(N2*math.pi/30)\n", + "r2=5./12#ft\n", + "N1=1.05*N2\n", + "r1=7./12#ft\n", + "a=6.#in\n", + "b=4#in\n", + "pb=3./2\n", + "F2=w*w2**2*r2/g\n", + "F1=F2*N1**2*r1/(N2**2*r2)\n", + "p=2*(a/b)**2*((F1-F2)/(r1*12-r2*12)-4*pb)\n", + "\n", + "#Result\n", + "print \"Equivalent stiffness; p = %.f lb/in\"%p" + ], + "language": "python", + "metadata": {}, + "outputs": [ + { + "output_type": "stream", + "stream": "stdout", + "text": [ + "Equivalent stiffness; p = 23 lb/in\n" + ] + } + ], + "prompt_number": 8 + }, + { + "cell_type": "heading", + "level": 2, + "metadata": {}, + "source": [ + "Example 5, Page 470" + ] + }, + { + "cell_type": "code", + "collapsed": false, + "input": [ + "import math\n", + "\n", + "#Variable declaration\n", + "w=3.#lb\n", + "W=15.#lb\n", + "g=32.2\n", + "r2=2.5/12#ft\n", + "N2=240.#rpm\n", + "\n", + "#Calculations\n", + "w2=N2*math.pi/30\n", + "F2=w*w2**2*r2/g\n", + "a=4.5#in\n", + "b=2#in\n", + "sleevelift=0.5\n", + "r1=r2*12+a*sleevelift/b#the increase of radius for a scleeve lift is 0.5 in\n", + "N1=1.05*N2\n", + "F1=(N1/N2)**2*(r1/(r2*12))*F2\n", + "#a) at minimum radius\n", + "S2=(F2*a/b-w)*2-W\n", + "#b) At maximum radius\n", + "DB=r1-r2*12\n", + "BI=1.936#in\n", + "AD=a\n", + "BI=b\n", + "S1=2*(F1*AD/BI-w*(DB+BI)/BI)-W\n", + "k=(S1-S2)/sleevelift\n", + "\n", + "#Result\n", + "print \"Stiffness of the spring is %.1f lb/in\"%k" + ], + "language": "python", + "metadata": {}, + "outputs": [ + { + "output_type": "stream", + "stream": "stdout", + "text": [ + "Stiffness of the spring is 59.3 lb/in\n" + ] + } + ], + "prompt_number": 9 + }, + { + "cell_type": "heading", + "level": 2, + "metadata": {}, + "source": [ + "Example 6, Page 475" + ] + }, + { + "cell_type": "code", + "collapsed": false, + "input": [ + "#Variable declaration\n", + "c=0.01\n", + "W=120#lb\n", + "w=15#lb\n", + "k=.720\n", + "h=8.944#in\n", + "\n", + "#Calculations\n", + "Q=c*(W+2*w/(1+k))\n", + "x=(2*c/(1+2*c))*(1+k)*h\n", + "P=Q*x\n", + "\n", + "#Result\n", + "print \"Governor power = Q*x = %.3f in lb\"%P\n" + ], + "language": "python", + "metadata": {}, + "outputs": [ + { + "output_type": "stream", + "stream": "stdout", + "text": [ + "Governor power = Q*x = 0.415 in lb\n" + ] + } + ], + "prompt_number": 10 + }, + { + "cell_type": "heading", + "level": 2, + "metadata": {}, + "source": [ + "Example 7, Page 475" + ] + }, + { + "cell_type": "code", + "collapsed": false, + "input": [ + "#Variable declaration\n", + "r=6#in\n", + "a=6#in\n", + "b=4#in\n", + "#from example 4(using conditions and calculating constants A and B) we get F=11.1r-14.6\n", + "#when r=6 , F= 52\n", + "F=52#lb\n", + "\n", + "#Calculations\n", + "inc=2*.01*52#increase neglecting very small values\n", + "F1=F+inc\n", + "F2=2*a*inc/b#Force required to prevent the sleeve from rising \n", + "F3=F2/2#Force is uniformly distributed\n", + "r2=-14.6/(F1/r-11.1)#from equation 1\n", + "x=r2-r#increase in radius of rotation\n", + "lift=b*x/a#sleeve lift\n", + "P=F3*lift#governor power\n", + "\n", + "#Result\n", + "print \"Governor power = %.3f in lb\"%P" + ], + "language": "python", + "metadata": {}, + "outputs": [ + { + "output_type": "stream", + "stream": "stdout", + "text": [ + "Governor power = 0.479 in lb\n" + ] + } + ], + "prompt_number": 12 + }, + { + "cell_type": "heading", + "level": 2, + "metadata": {}, + "source": [ + "Example 10, Page 483" + ] + }, + { + "cell_type": "code", + "collapsed": false, + "input": [ + "#Variable declaration\n", + "fs=3.#lb\n", + "W=90#lb\n", + "w=15#lb\n", + "\n", + "#Calculations\n", + "#fb=(fs/2)*(1+k)*(r/h) From equation 13.31\n", + "k=1#All the arms are of equal length\n", + "#fb=fs*(r/h)\n", + "#comparing the above result with the one obtained from example 8 , F=(W+w)*(r/h), we get coefficient of insensitiveness = k = (N1-N2)/N = fs/(W+w)\n", + "k=fs/(W+w)\n", + "K=k*100\n", + "\n", + "#Result\n", + "print \"Coefficient of insensitiveness = %.3f\"%k" + ], + "language": "python", + "metadata": {}, + "outputs": [ + { + "output_type": "stream", + "stream": "stdout", + "text": [ + "Coefficient of insensitiveness = 0.029\n" + ] + } + ], + "prompt_number": 13 + }, + { + "cell_type": "heading", + "level": 2, + "metadata": {}, + "source": [ + "Example 11, Page 484" + ] + }, + { + "cell_type": "code", + "collapsed": false, + "input": [ + "#Variable declaration\n", + "a=4.5#in\n", + "b=2#in\n", + "r1=2.5#in\n", + "r2=4.5#in\n", + "F2=12.25#lb\n", + "F1=25.4#lb\n", + "fs=1.5#lb\n", + "\n", + "#Calculations\n", + "fb=(fs/2)*(b/a)\n", + "#At minimum radii\n", + "k1=fb/F2\n", + "#At maximum radii\n", + "k2=fb/F1\n", + "\n", + "#Results\n", + "print \"Coefficient of insensitiveness\\nAt minimum radii = %.4f\\nAt maximum radii = %.4f\"%(k1,k2)" + ], + "language": "python", + "metadata": {}, + "outputs": [ + { + "output_type": "stream", + "stream": "stdout", + "text": [ + "Coefficient of insensitiveness\n", + "At minimum radii = 0.0272\n", + "At maximum radii = 0.0131\n" + ] + } + ], + "prompt_number": 14 + } + ], + "metadata": {} + } + ] +}
\ No newline at end of file diff --git a/The_Theory_of_Machines_by_T._Bevan/ch14.ipynb b/The_Theory_of_Machines_by_T._Bevan/ch14.ipynb new file mode 100644 index 00000000..7b422dce --- /dev/null +++ b/The_Theory_of_Machines_by_T._Bevan/ch14.ipynb @@ -0,0 +1,263 @@ +{ + "metadata": { + "name": "" + }, + "nbformat": 3, + "nbformat_minor": 0, + "worksheets": [ + { + "cells": [ + { + "cell_type": "heading", + "level": 1, + "metadata": {}, + "source": [ + "Chapter 14: Balancing" + ] + }, + { + "cell_type": "heading", + "level": 2, + "metadata": {}, + "source": [ + "Example 1, Page 491" + ] + }, + { + "cell_type": "code", + "collapsed": false, + "input": [ + "#Variable declaration\n", + "W=200#lb\n", + "r=9#in\n", + "b1=15#in\n", + "bm=b1\n", + "l=10#in\n", + "d=50#in\n", + "\n", + "#Calculations\n", + "#case a\n", + "ma=d+l\n", + "Bm1=W*r*l/(d*bm)#From 14.2\n", + "B11=W*r*ma/(d*b1)#from 14.3\n", + "#case b\n", + "mb=d-l\n", + "Bm2=W*r*l/(d*bm)#from 14.2\n", + "B12=W*r*mb/(d*b1)#from 14.3\n", + "\n", + "#Results\n", + "print \"a) Bm= %.f lb ; B1= %.f lb\\nb) Bm= %.f lb ; B1= %.f lb\"%(Bm1,B11,Bm2,B12)" + ], + "language": "python", + "metadata": {}, + "outputs": [ + { + "output_type": "stream", + "stream": "stdout", + "text": [ + "a) Bm= 24 lb ; B1= 144 lb\n", + "b) Bm= 24 lb ; B1= 96 lb\n" + ] + } + ], + "prompt_number": 9 + }, + { + "cell_type": "heading", + "level": 2, + "metadata": {}, + "source": [ + "Example 2, Page 491" + ] + }, + { + "cell_type": "code", + "collapsed": false, + "input": [ + "import math\n", + "\n", + "#Variable declaration\n", + "Wa=200#lb\n", + "Wb=300#lb\n", + "Wc=240#lb\n", + "W1=260#lb\n", + "ra=9#in\n", + "rb=7#in\n", + "rc=10#in\n", + "r1=12#in\n", + "R=24#in\n", + "\n", + "#Calculations\n", + "alpha=45*math.pi/180\n", + "bita=75*math.pi/180\n", + "gama=135*math.pi/180\n", + "Hb=Wa*ra+Wb*rb*math.cos(alpha)-Wc*rc*math.cos(gama-bita)-W1*r1*math.cos(bita)#horizontal component after resolving\n", + "Vb=Wb*rb*math.sin(alpha)+Wc*rc*math.sin(gama-bita)-W1*r1*math.sin(bita)#vertical component after resolving\n", + "Bb=(Hb**2+Vb**2)**(1./2)\n", + "B=Bb/R\n", + "theta=math.degrees(math.atan(Vb/Hb))\n", + "\n", + "#Results\n", + "print \"Balance weight required = %.1f lb\\ntheta = %.2f degrees\"%(B,theta)" + ], + "language": "python", + "metadata": {}, + "outputs": [ + { + "output_type": "stream", + "stream": "stdout", + "text": [ + "Balance weight required = 57.9 lb\n", + "theta = 23.28 degrees\n" + ] + } + ], + "prompt_number": 2 + }, + { + "cell_type": "heading", + "level": 2, + "metadata": {}, + "source": [ + "Example 5, Page 500" + ] + }, + { + "cell_type": "code", + "collapsed": false, + "input": [ + "import math\n", + "\n", + "#Variable declaration\n", + "W=180.#lb\n", + "R=150.#lb\n", + "c=.5\n", + "N=300.#rpm\n", + "r=7.5/12#ft\n", + "g = 32.2\n", + "\n", + "#Calculations\n", + "Bb=(W+c*R)*r*12\n", + "b=6#in\n", + "B=Bb/b\n", + "w=(math.pi*N)/30\n", + "Uf=(1./2)*(R/g)*w**2*r\n", + "a=math.floor(Uf)\n", + "\n", + "#Results\n", + "print \"Balance weight required = %.1f lb\\n The resultant unbalanced force = %.f lb\\n\"%(B,a)" + ], + "language": "python", + "metadata": {}, + "outputs": [ + { + "output_type": "stream", + "stream": "stdout", + "text": [ + "Balance weight required = 318.8 lb\n", + " The resultant unbalanced force = 1436 lb\n", + "\n" + ] + } + ], + "prompt_number": 8 + }, + { + "cell_type": "heading", + "level": 2, + "metadata": {}, + "source": [ + "Example 12, Page 517" + ] + }, + { + "cell_type": "code", + "collapsed": false, + "input": [ + "import math\n", + "\n", + "#Variable declaration\n", + "N=1500 #rpm\n", + "R=4#lb\n", + "g=32.2#ft/s^2\n", + "w=math.pi*N/30\n", + "stroke=5.#in\n", + "r=stroke/2\n", + "l=9#in\n", + "b=3.5#in\n", + "\n", + "#Calculations\n", + "B=(3./2)*R*r/b#primary force\n", + "n=l/r\n", + "F=(3./2)*R*w**2*r/(g*12*n)#secondary force\n", + "\n", + "#Results\n", + "print \"Resultant primary force = %.2f lb\\nResultant secondary force = %.f lb\"%(B,F)" + ], + "language": "python", + "metadata": {}, + "outputs": [ + { + "output_type": "stream", + "stream": "stdout", + "text": [ + "Resultant primary force = 4.29 lb\n", + "Resultant secondary force = 266 lb\n" + ] + } + ], + "prompt_number": 12 + }, + { + "cell_type": "heading", + "level": 2, + "metadata": {}, + "source": [ + "Example 13, Page 519" + ] + }, + { + "cell_type": "code", + "collapsed": false, + "input": [ + "import math\n", + "\n", + "#Variable declaration\n", + "g=32.2#ft/s^2\n", + "n=2000#rpm\n", + "R=6#lb\n", + "r=3.#in\n", + "L=11.#in\n", + "\n", + "#Calculations\n", + "w=math.pi*n/30\n", + "n=L/r\n", + "#minimum secondary force\n", + "F1=2*R*w**2*r/(g*n*12)\n", + "a=math.floor(F1)\n", + "#maximum secondary force\n", + "F2=6*R*w**2*r/(g*n*12)\n", + "b=math.floor(F2)\n", + "\n", + "#Results\n", + "print \"Minimum secondary force = %.f lb\\nMaximum secondary force = %.f lb\"%(a,b)" + ], + "language": "python", + "metadata": {}, + "outputs": [ + { + "output_type": "stream", + "stream": "stdout", + "text": [ + "Minimum secondary force = 1114 lb\n", + "Maximum secondary force = 3343 lb\n" + ] + } + ], + "prompt_number": 14 + } + ], + "metadata": {} + } + ] +}
\ No newline at end of file diff --git a/The_Theory_of_Machines_by_T._Bevan/ch15.ipynb b/The_Theory_of_Machines_by_T._Bevan/ch15.ipynb new file mode 100644 index 00000000..09b9272a --- /dev/null +++ b/The_Theory_of_Machines_by_T._Bevan/ch15.ipynb @@ -0,0 +1,544 @@ +{ + "metadata": { + "name": "" + }, + "nbformat": 3, + "nbformat_minor": 0, + "worksheets": [ + { + "cells": [ + { + "cell_type": "heading", + "level": 1, + "metadata": {}, + "source": [ + "Chapter 15: Vibrations" + ] + }, + { + "cell_type": "heading", + "level": 2, + "metadata": {}, + "source": [ + "Example 1, Page 535" + ] + }, + { + "cell_type": "code", + "collapsed": false, + "input": [ + "import math\n", + "\n", + "#Variable declaration\n", + "W=.3*2240#lb\n", + "l=36#in\n", + "D=3.#in\n", + "k=15#in\n", + "A=math.pi*(D/2)**2\n", + "E=30*10**6#youngs modulus\n", + "C=12*10**6\n", + "g=32.2#ft/s^2\n", + "\n", + "#Calculations\n", + "d=W*l/(A*E)\n", + "Fl=187.8/(d)**(1./2)\n", + "I=math.pi*(d/2)**4\n", + "d1=W*(l**3)*64/(3*E*math.pi*(3**4))\n", + "Ft=187.8/(d1)**(1./2)\n", + "j=math.pi*3**4./32\n", + "q=C*j/l\n", + "Ftor=(1/(2*math.pi))*(q*g*12/(W*k**2))**(1./2)\n", + "F1=Ftor*60\n", + "\n", + "#Results\n", + "print \"a) Frequency of Longitudinal vibrations = %.f per min\\nb) Frequency of the transverse vibrations = %.f per min\"\\\n", + " \"\\nc) Frequency of the torsional vibration = %.f per min\"%(Fl,Ft,F1)" + ], + "language": "python", + "metadata": {}, + "outputs": [ + { + "output_type": "stream", + "stream": "stdout", + "text": [ + "a) Frequency of Longitudinal vibrations = 17583 per min\n", + "b) Frequency of the transverse vibrations = 634 per min\n", + "c) Frequency of the torsional vibration = 786 per min\n" + ] + } + ], + "prompt_number": 1 + }, + { + "cell_type": "heading", + "level": 2, + "metadata": {}, + "source": [ + "Example 2, Page 536" + ] + }, + { + "cell_type": "code", + "collapsed": false, + "input": [ + "import math\n", + "\n", + "#Variable declaration\n", + "l1=3#ft\n", + "l2=2.#ft\n", + "l=l1+l2#ft\n", + "W=.5*2240#lb\n", + "k=20#in\n", + "d=2.#in\n", + "\n", + "#Calculations\n", + "Wa=2*W/5\n", + "E=30*10**6\n", + "d1=(Wa*l1*12)/(math.pi*E)\n", + "N1=187.8/math.sqrt(d1)\n", + "\n", + "I=math.pi*(d)**4./64\n", + "d2=W*(l1*12)**3*(l2*12)**3/(3*E*(l*12)**3*I)\n", + "N2=187.8/(d2)**(1./2)\n", + "C=12*10**6#given\n", + "g=32.2#given\n", + "J=math.pi*d**4/32\n", + "q=C*J*((1./(l1*12))+(1./(l2*12)))\n", + "n=(1./(2*math.pi))*(q*g*12/(W*k**2))**(1./2)\n", + "N3=n*60\n", + "\n", + "#Results\n", + "print \"a)Longitudinal vibration = %.f per min\\nb)Transverse Vibration = %.f per min\\nc)Torsional Vibration = %.f per min\"%(N1,N2,N3)" + ], + "language": "python", + "metadata": {}, + "outputs": [ + { + "output_type": "stream", + "stream": "stdout", + "text": [ + "a)Longitudinal vibration = 14356 per min\n", + "b)Transverse Vibration = 863 per min\n", + "c)Torsional Vibration = 321 per min\n" + ] + } + ], + "prompt_number": 18 + }, + { + "cell_type": "heading", + "level": 2, + "metadata": {}, + "source": [ + "Example 3, Page 547" + ] + }, + { + "cell_type": "code", + "collapsed": false, + "input": [ + "#Variable declaration\n", + "l=10#ft\n", + "d=4#in\n", + "E=30*10**6#youngs modulus\n", + "d1=0.0882#inches; maximum deflection as shown in the figure\n", + "\n", + "#Calculations\n", + "N=207./(d1)**(1./2)#From 15.20\n", + "\n", + "#Result\n", + "print \"Frequency of natural transverse vibration = %.f per min\"%N\n" + ], + "language": "python", + "metadata": {}, + "outputs": [ + { + "output_type": "stream", + "stream": "stdout", + "text": [ + "Frequency of natural transverse vibration = 697 per min\n" + ] + } + ], + "prompt_number": 19 + }, + { + "cell_type": "heading", + "level": 2, + "metadata": {}, + "source": [ + "Example 4, Page 552" + ] + }, + { + "cell_type": "code", + "collapsed": false, + "input": [ + "import math\n", + "\n", + "#Variable declaration\n", + "m=50.#lb\n", + "k=100#lb/in\n", + "g=32.2#ft/s\n", + "\n", + "#Calculations\n", + "d=m/k#static deflection\n", + "n=(1/(2*math.pi))*(g*12/d)**(1./2)\n", + "#part 2\n", + "b=g*12./d\n", + "a=(b/20.79)**(1./2)\n", + "nd=(1./(2*math.pi))*((b-(a/2)**2))**(1./2)\n", + "A=nd/n\n", + "\n", + "#Results\n", + "print \"Frequency of free vibrations = %.3f per sec\\nFrequency of damped vibrations = %.3f per sec\"\\\n", + " \"\\nThe ratio of the frequencies of damped and free vibrationsis %.3f\"%(n,nd,A)" + ], + "language": "python", + "metadata": {}, + "outputs": [ + { + "output_type": "stream", + "stream": "stdout", + "text": [ + "Frequency of free vibrations = 4.424 per sec\n", + "Frequency of damped vibrations = 4.398 per sec\n", + "The ratio of the frequencies of damped and free vibrationsis 0.994\n" + ] + } + ], + "prompt_number": 21 + }, + { + "cell_type": "heading", + "level": 2, + "metadata": {}, + "source": [ + "Example 5, Page 553" + ] + }, + { + "cell_type": "code", + "collapsed": false, + "input": [ + "import math\n", + "\n", + "#Variable declaration\n", + "#damping torque is directly proposrtional to the angular velocity\n", + "C=12*10**6#Modulus of rigidity\n", + "l=3#ft\n", + "d=1#in\n", + "g=32.2#ft/s**2\n", + "I=500#lb ft^2 ; moment of inertia\n", + "\n", + "#Calculations\n", + "J=math.pi*d**4/32\n", + "q=C*J/(l*12)\n", + "n=(1./(2*math.pi))*(q*g*12/(I*12**2))**(1./2)\n", + "#part 2 \n", + "b1=(q*g*12/(I*12**2))\n", + "a1=(b1/10.15)**(1./2)#by reducing equation 15.28\n", + "nd=(1./(2*math.pi))*(b1-(a1/2)**2)**(1./2)\n", + "A=nd/n\n", + "\n", + "#Results\n", + "print \"The frequency of natural vibration = %.2f per sec\\nThe frequency of damped vibration = %.2f per sec\"\\\n", + " \"\\nThe ratio nd/n = %.3f\"%(n,nd,A)" + ], + "language": "python", + "metadata": {}, + "outputs": [ + { + "output_type": "stream", + "stream": "stdout", + "text": [ + "The frequency of natural vibration = 2.11 per sec\n", + "The frequency of damped vibration = 2.08 per sec\n", + "The ratio nd/n = 0.988\n" + ] + } + ], + "prompt_number": 22 + }, + { + "cell_type": "heading", + "level": 2, + "metadata": {}, + "source": [ + "Example 6, Page 560" + ] + }, + { + "cell_type": "code", + "collapsed": false, + "input": [ + "#Variable declaration\n", + "m=20.#lb\n", + "k=50#lb/in\n", + "F=30.#lb\n", + "w=50#sec^-1 \n", + "g=32.2#ft/s^2\n", + "\n", + "#Calculations\n", + "d=m/k\n", + "x=F/k#extension of the spring\n", + "b=g*12./d\n", + "a=(b/30.02)**(1./2)#from equation 15.28\n", + "D=1/((1-w**2/b)**2+a**2*w**2/b**2)**(1./2)\n", + "Af=D*x#amplitude of forced vibration \n", + "D=(b/a**2)**(1./2)#At resonance\n", + "A=D*x#amplitude at resonance\n", + "\n", + "#Results\n", + "print \"Amplitude of forced vibrations = %.3f in\\nAmplitude of the forced vibrations at resonance = %.2f in\"%(Af,A)\n" + ], + "language": "python", + "metadata": {}, + "outputs": [ + { + "output_type": "stream", + "stream": "stdout", + "text": [ + "Amplitude of forced vibrations = 0.372 in\n", + "Amplitude of the forced vibrations at resonance = 3.29 in\n" + ] + } + ], + "prompt_number": 23 + }, + { + "cell_type": "heading", + "level": 2, + "metadata": {}, + "source": [ + "Example 7, Page 563" + ] + }, + { + "cell_type": "code", + "collapsed": false, + "input": [ + "import math\n", + "\n", + "#Variable declaration\n", + "e=1./30\n", + "n=1200.#rpm\n", + "w=math.pi*n/30\n", + "m=3.#lb\n", + "g=32.2#ft/s^2\n", + "stroke=3.5#in\n", + "\n", + "#Calculations\n", + "r=stroke/2\n", + "k=(1+1./e)**(1./2)#nf/n=k\n", + "d=(k/187.7)**2\n", + "W=200.#lb ; given\n", + "s=W/d#combined stiffness\n", + "p=1./14.1#As a^2/b=1/198\n", + "T=((1+p**2*k**2/((1-k**2)**2+p**2*k**2)))**(1./2)#actual value of transmissibility\n", + "F=(m/g)*w**2*r/12#maximum unbalanced force transmitted on the machine\n", + "Fmax=F*T#maximum force transmitted to the foundation\n", + "#case b\n", + "E=((1+p**2)/(p**2))**(1./2)\n", + "Nreso=215.5#rpm\n", + "Fub=F*(Nreso/n)**2\n", + "Ftmax=E*Fub\n", + "D=E#dynamic magnifier\n", + "deln=Fub/152#static deflection\n", + "A=deln*D\n", + "\n", + "#Results\n", + "print \"a) Maximum force transmitted at 1200 rpm = %.1f lb\\nb) The amplitude of the forced vibrations of the machine at\"\\\n", + " \"resonance = %.3f in\\n Force transmitted = %.f lb\"%(Fmax,A,Fub)" + ], + "language": "python", + "metadata": {}, + "outputs": [ + { + "output_type": "stream", + "stream": "stdout", + "text": [ + "a) Maximum force transmitted at 1200 rpm = 214.6 lb\n", + "b) The amplitude of the forced vibrations of the machine atresonance = 0.643 in\n", + " Force transmitted = 7 lb\n" + ] + } + ], + "prompt_number": 26 + }, + { + "cell_type": "heading", + "level": 2, + "metadata": {}, + "source": [ + "Example 8, Page 570" + ] + }, + { + "cell_type": "code", + "collapsed": false, + "input": [ + "import math\n", + "\n", + "#Variable declaration\n", + "l1=11#in\n", + "l2=10#in\n", + "l3=15#in\n", + "l4=4#in\n", + "l5=10#in\n", + "d1=3#in\n", + "d2=5#in\n", + "d3=3.5#in\n", + "d4=7#in\n", + "d5=5#in\n", + "I1=1500#lb ft^2\n", + "I2=1000#lb ft^2\n", + "leq=3#in from 15.49\n", + "g=32.2#ft/s^2\n", + "C=12*10**6\n", + "\n", + "#Calculations\n", + "J=math.pi*leq**4./32\n", + "l=l1+l2*(leq/d2)**4+l3*(leq/d3)**4+l4*(leq/d4)**4+l5*(leq/d5)**4\n", + "la=I2*l/(I1+I2)\n", + "qa=C*J/la\n", + "n=(1./(2*math.pi))*(qa*g*12/(I1*12**2))**(1./2)\n", + "\n", + "#Results\n", + "print \"The frequency of the natural torsional oscillation of the system = %.1f per sec\"%n" + ], + "language": "python", + "metadata": {}, + "outputs": [ + { + "output_type": "stream", + "stream": "stdout", + "text": [ + "The frequency of the natural torsional oscillation of the system = 23.8 per sec\n" + ] + } + ], + "prompt_number": 27 + }, + { + "cell_type": "heading", + "level": 2, + "metadata": {}, + "source": [ + "Example 9, Page 572" + ] + }, + { + "cell_type": "code", + "collapsed": false, + "input": [ + "import math\n", + "\n", + "#Variable declaration\n", + "Ia=2.5#ton ft^2\n", + "Ib=7.5#ton ft^2\n", + "Ic=3.#ton ft^2\n", + "g=32.2#ft/s^2\n", + "AB=9.5#ft\n", + "BC=25#ft\n", + "d=8.5#in\n", + "C=11.8*10**6#lb/in^2\n", + "\n", + "#Calculations\n", + "k=Ic/Ia#la/lc=k\n", + "lc1=(25.6+(25.6**2-4*114.1)**(1./2))/2#from 1 and 2 , reducing using quadratic formula\n", + "lc2=(25.6-(25.6**2-4*114.1)**(1./2))/2#from 1 and 2 , reducing using quadratic formula\n", + "la1=lc1*k\n", + "la2=lc2*k\n", + "J=math.pi*d**4/32\n", + "q=C*J/(lc1*12)#torsional stiffness\n", + "IC=Ic*2240*12**2/(g*12)#moment of inertia\n", + "nc=(1./(2*math.pi))*(q/IC)**(1./2)#fundamental frequency of vibration\n", + "a1=nc*60\n", + "a=math.floor(a1)\n", + "n=16*(lc1/lc2)**(1./2)\n", + "b=n*60\n", + "\n", + "#Results\n", + "print \"Fundamental frequency of vibration = %.f per min\\nTwo node frequency = %.f per min\"%(a,b)" + ], + "language": "python", + "metadata": {}, + "outputs": [ + { + "output_type": "stream", + "stream": "stdout", + "text": [ + "Fundamental frequency of vibration = 961 per min\n", + "Two node frequency = 1784 per min\n" + ] + } + ], + "prompt_number": 28 + }, + { + "cell_type": "heading", + "level": 2, + "metadata": {}, + "source": [ + "Example 11, Page 587" + ] + }, + { + "cell_type": "code", + "collapsed": false, + "input": [ + "import math\n", + "\n", + "#Variable declaration\n", + "g=32.3#ft/s^2\n", + "l2=25.5#in\n", + "d1=2.75#in\n", + "d2=3.5#in\n", + "C=12*10**6#modulus of rigidity\n", + "G=1/0.6#given speed ratio\n", + "Ib=54.#lb in^2\n", + "Ic=850.#lb in^2\n", + "Id=50000.#lb in^2\n", + "\n", + "#Calculations\n", + "Id1=Id/G**2#15.62\n", + "Ia=1500#lb in^2\n", + "la=Id1/(Id1+Ia)*66.5\n", + "J=math.pi*d1**4/32\n", + "q=C*J/la#torsional stiffness\n", + "n=(1/(2*math.pi))*(q*g*12/Ia)**(1./2)\n", + "nf=n*60#for minutes\n", + "#case b)\n", + "Ib1=Ib+Ic/(G**2)\n", + "a=63.15#in; distance of the node from rotor A (given)\n", + "b=3.661#in; distance of the node from rotor A (given)\n", + "N1=n*(la/a)**(1./2)\n", + "N2=n*(la/b)**(1./2)\n", + "N1f=N1*60#for minutes\n", + "N2f=N2*60#for minutes\n", + "\n", + "#Results\n", + "print \"a) The frequency of torsional vibrations n = %.1f per sec or %.f per min\\nb) The fundamental frquency = %.1f per sec\"\\\n", + " \"or %.f per min\\n and the two node frequency = %.f per sec or %.f per min\"%(n,nf,N1,N1f,N2,N2f)" + ], + "language": "python", + "metadata": {}, + "outputs": [ + { + "output_type": "stream", + "stream": "stdout", + "text": [ + "a) The frequency of torsional vibrations n = 84.8 per sec or 5086 per min\n", + "b) The fundamental frquency = 83.6 per secor 5014 per min\n", + " and the two node frequency = 347 per sec or 20824 per min\n" + ] + } + ], + "prompt_number": 29 + } + ], + "metadata": {} + } + ] +}
\ No newline at end of file diff --git a/The_Theory_of_Machines_by_T._Bevan/ch2.ipynb b/The_Theory_of_Machines_by_T._Bevan/ch2.ipynb new file mode 100644 index 00000000..825609fe --- /dev/null +++ b/The_Theory_of_Machines_by_T._Bevan/ch2.ipynb @@ -0,0 +1,743 @@ +{ + "metadata": { + "name": "" + }, + "nbformat": 3, + "nbformat_minor": 0, + "worksheets": [ + { + "cells": [ + { + "cell_type": "heading", + "level": 1, + "metadata": {}, + "source": [ + "Chapter 2: Motion Inertia" + ] + }, + { + "cell_type": "heading", + "level": 1, + "metadata": {}, + "source": [ + "Example 1, Page 28" + ] + }, + { + "cell_type": "code", + "collapsed": false, + "input": [ + "#Variable declaration\n", + "#a) INELASTIC\n", + "#for sphere 1 ,mass=m1 and initial velocity=u1 \n", + "#for sphere 2 ,mass=m2 and initial velocity=u2\n", + "m1=100.#lb\n", + "u1=10.#ft/s\n", + "m2=50.#lb\n", + "u2=5.#ft/s\n", + "\n", + "#Calculations\n", + "v=(m1*u1+m2*u2)/(m1+m2)\n", + "#change in kinetic energy\n", + "#initial kinetic energy = ke1\n", + "ke1=(m1*(u1**2)+m2*(u2**2))/(2*32.2)\n", + "#Kinetic Energy after inelastic colision = ke2\n", + "ke2=((m1+m2)*8.333**2)/(2*32.2)\n", + "#Change in Kinetic Energy =l\n", + "l=ke1-ke2\n", + "#b) Elastic\n", + "# for a very short time bodies will have a common velocity given by v=8.333 ft/s\n", + "# for a very short time bodies will have a common velocity given by v=8.333 ft/s\n", + "#immidiately after impact ends the velocities for both the bodies are given by v1 and v2\n", + "v1=2*v-u1\n", + "v2=2*v-u2\n", + "#c) Coeeficient of Restitution=0.6\n", + "e=0.6\n", + "ve1=(1+e)*v-e*u1\n", + "ve2=(1+e)*v-e*u2\n", + "ke3=(m1*(ve1**2)+m2*(ve2**2))/(2*32.2)\n", + "loss=ke1-ke3\n", + "\n", + "#Results\n", + "print \"kinetic energy before collisio0n is %.1f ft lb\"%ke1\n", + "print \"\\na) INELASTIC\"\n", + "print \"velocity after collision is %.3f ft/s\"%v\n", + "print \"the Kinetic Energy after collision is %.1f ft lb\"%ke2\n", + "print \"the change in Kinetic Energy after collision is %.1f ft lb\"%l\n", + "print \"\\nb) ELASTIC\"\n", + "print \"velocity of 1 after collision is %.3f ft/s\"%v1\n", + "print \"velocity of 2 after collision is %.3f ft/s\"%v2\n", + "print \"there is no loss of kinetic energy in case of elastic collision\"\n", + "print \"\\nc) e=0.6\"\n", + "print \"velocity of 1 after collision is %.3f ft/s\"%ve1\n", + "print \"velocity of 2 after collision is %.3f ft/s\"%ve2\n", + "print \"the Kinetic Energy after collision is %.1f ft lb\"%ke3\n", + "print \"the change in Kinetic Energy after collision is %.2f ft lb\"%loss" + ], + "language": "python", + "metadata": {}, + "outputs": [ + { + "output_type": "stream", + "stream": "stdout", + "text": [ + "kinetic energy before collisio0n is 174.7 ft lb\n", + "\n", + "a) INELASTIC\n", + "velocity after collision is 8.333 ft/s\n", + "the Kinetic Energy after collision is 161.7 ft lb\n", + "the change in Kinetic Energy after collision is 13.0 ft lb\n", + "\n", + "b) ELASTIC\n", + "velocity of 1 after collision is 6.667 ft/s\n", + "velocity of 2 after collision is 11.667 ft/s\n", + "there is no loss of kinetic energy in case of elastic collision\n", + "\n", + "c) e=0.6\n", + "velocity of 1 after collision is 7.333 ft/s\n", + "velocity of 2 after collision is 10.333 ft/s\n", + "the Kinetic Energy after collision is 166.4 ft lb\n", + "the change in Kinetic Energy after collision is 8.28 ft lb\n" + ] + } + ], + "prompt_number": 25 + }, + { + "cell_type": "heading", + "level": 2, + "metadata": {}, + "source": [ + "Example 2, Page 29" + ] + }, + { + "cell_type": "code", + "collapsed": false, + "input": [ + "#Variable declaration\n", + "m1=15.#tons\n", + "u1=12.#m/h\n", + "m2=5.#tons\n", + "u2=8.#m/h\n", + "k=2.#ton/in\n", + "e1=0.5#coefficient of restitution\n", + "\n", + "#Calculations&Results\n", + "#conservation of linear momentum\n", + "v=(m1*u1+m2*u2)/(m1+m2)\n", + "print \"velocity at the instant of collision is %.2f mph\"%v\n", + "e=(m1*m2*(88./60)**2*(u1-u2)**2)/(2*32.2*(u1+u2))\n", + "print \"The difference between the kinetic energy before and during the impact is %.2f ft tons\"%e\n", + "#energy stored in spring equals energy dissipated\n", + "#s=(1/2)*k*x**2\n", + "#s=e\n", + "#since there are 4 buffer springs ,4x**2=24 inches (2 ft=24 inches)\n", + "x=((e*12)/4)**.5\n", + "print \"Maximum deflection of the spring is %.2f in\"%x\n", + "# maximum force acting between pair of buffer = stiffness of spring*deflection\n", + "f=k*x\n", + "print \"Maximum force acting between each buffer is %.2f tons\"%f\n", + "#assuming perfectly elastic collision\n", + "#for loaded truck \n", + "v1=2*11-12\n", + "#for unloaded truck \n", + "v2=2*11-8\n", + "print \"Speed of loaded truck after impact %.2f mph\"%v1\n", + "print \"speed of unloaded truck after impact %.2f mph\"%v2\n", + "#if coefficient of restitution =o.5\n", + "#for loaded truck \n", + "ve1=(1+.5)*11-.5*12\n", + "#for unloaded truck \n", + "ve2=(1+.5)*11-.5*8\n", + "print \"Speed of loaded truck after impact when e=0.5 %.2f mph\"%ve1\n", + "print \"Speed of unloaded truck after impact when e=0.5 %.2f mph\"%ve2\n", + "#net loss of kinetic energy=(1-e**2)*energy stored in spring\n", + "l=(1-(e1**2))*2#ft tons\n", + "print \"Net loss of kinetic energy is %.2f ft tons\"%l" + ], + "language": "python", + "metadata": {}, + "outputs": [ + { + "output_type": "stream", + "stream": "stdout", + "text": [ + "velocity at the instant of collision is 11.00 mph\n", + "The difference between the kinetic energy before and during the impact is 2.00 ft tons\n", + "Maximum deflection of the spring is 2.45 in\n", + "Maximum force acting between each buffer is 4.90 tons\n", + "Speed of loaded truck after impact 10.00 mph\n", + "speed of unloaded truck after impact 14.00 mph\n", + "Speed of loaded truck after impact when e=0.5 10.50 mph\n", + "Speed of unloaded truck after impact when e=0.5 12.50 mph\n", + "Net loss of kinetic energy is 1.50 ft tons\n" + ] + } + ], + "prompt_number": 3 + }, + { + "cell_type": "heading", + "level": 2, + "metadata": {}, + "source": [ + "Example 3, Page 31" + ] + }, + { + "cell_type": "code", + "collapsed": false, + "input": [ + "import math\n", + "\n", + "#Variable declaration\n", + "m1=500.#lb ft^2\n", + "m2=1500.#lb ft^2\n", + "k=150#lb ft^2\n", + "w1=150#rpm\n", + "\n", + "#Calculations&Results\n", + "N=(w1*m1)/(m1+m2)\n", + "print \"Angular velocity at the instant when speeds of the flywheels are equalised is given by %.f r.p.m\"%N\n", + "#kinetic energy at this instance \n", + "ke1=(1./2)*((m1+m2)/32.2)*((math.pi*N)/30)**2\n", + "print \"The kinetic energy of the system at this instance is %.2f ft lb\"%ke1\n", + "\n", + "#initial kinetic energy\n", + "ke0=(1./2)*((m1)/32.2)*((math.pi*w1)/30)**2\n", + "print \"The initial kinetic energy of the system is %.2f ft lb\"%ke0\n", + "\n", + "#strain energy = s\n", + "s=ke0-ke1\n", + "print \"strain energy stored in the spring is %.2f ft lb which is approximately 1435 ft lb\"%s\n", + "\n", + "x=((1435*2)/150)**.5\n", + "print \"Maximum angular displacement is %.2f in radians which is equal to 250 degrees\"%x\n", + "#na1 and na are initial and final speeds of the flywheel 1 and same nb1 and nb for flywheel 2 \n", + "na=2*N-w1#w1=na1\n", + "nb=2*N-0#nb1=0\n", + "print \"Speed of flywheel a and b when spring regains its unstrained position are %.2f rpm and %.2f rpm respectively\"%(na,nb)" + ], + "language": "python", + "metadata": {}, + "outputs": [ + { + "output_type": "stream", + "stream": "stdout", + "text": [ + "Angular velocity at the instant when speeds of the flywheels are equalised is given by 38 r.p.m\n", + "The kinetic energy of the system at this instance is 478.92 ft lb\n", + "The initial kinetic energy of the system is 1915.68 ft lb\n", + "strain energy stored in the spring is 1436.76 ft lb which is approximately 1435 ft lb\n", + "Maximum angular displacement is 4.36 in radians which is equal to 250 degrees\n", + "Speed of flywheel a and b when spring regains its unstrained position are -75.00 rpm and 75.00 rpm respectively\n" + ] + } + ], + "prompt_number": 4 + }, + { + "cell_type": "heading", + "level": 2, + "metadata": {}, + "source": [ + "Example 4, Page 36" + ] + }, + { + "cell_type": "code", + "collapsed": false, + "input": [ + "import math\n", + "\n", + "#Variable declaration\n", + "m1=150 #lb\n", + "l=3#ft\n", + "#number of oscillation per second is given by n\n", + "\n", + "#Calculations&Results\n", + "n=(50/92.5)\n", + "print \"number of oscillation per second = %.3f\"%n\n", + "#length of simple pendulum is given by L=g/(2*math.pi*n)**2\n", + "L=32.2/(2*math.pi*n)**2\n", + "print \"length of simple pendulum = %.2f ft\"%L\n", + "# distance of cg from point of suspension is given by a\n", + "a=25./12\n", + "k=(a*(L-a))**.5#radius of gyration\n", + "moi=m1*k**2\n", + "print \"The moment of inertia of rod is %.f lb ft**2\"%moi" + ], + "language": "python", + "metadata": {}, + "outputs": [ + { + "output_type": "stream", + "stream": "stdout", + "text": [ + "number of oscillation per second = 0.541\n", + "length of simple pendulum = 2.79 ft\n", + "The moment of inertia of rod is 221 lb ft**2\n" + ] + } + ], + "prompt_number": 6 + }, + { + "cell_type": "heading", + "level": 2, + "metadata": {}, + "source": [ + "Example 5, Page 37" + ] + }, + { + "cell_type": "code", + "collapsed": false, + "input": [ + "import math\n", + "\n", + "#Variable declaration\n", + "n1=50/84.4\n", + "n2=50/80.3\n", + "\n", + "#Calculations\n", + "L1=(32.2*12)*(84.4/(100*math.pi))**2\n", + "L2=(32.2*12)*(80.3/(100*math.pi))**2\n", + "#a1(L1-a1)=k**2=a2(L2-a2) and a1+a2=30 inches\n", + "#substituting and solving for a we get \n", + "a1=141/6.8\n", + "a2=30-a1\n", + "k=(a1*(L1-a1))**.5\n", + "moi=90*(149./144)#moi=m*k**2\n", + "\n", + "#Results\n", + "print \"length of equivalent simple pendulum when axis coincides with small end and big end respectively-\"\n", + "print \"L1=%.1f in\"%L1\n", + "print \"L2=%.1f in\"%L2\n", + "print \"distances of cg from small end and big end centers respectively are-\"\n", + "print \"a1=%.1f in\"%a1\n", + "print \"a2=%.1f in\"%a2\n", + "print \"Moment of inertia of rod =%.2f lb ft^2\"%moi" + ], + "language": "python", + "metadata": {}, + "outputs": [ + { + "output_type": "stream", + "stream": "stdout", + "text": [ + "length of equivalent simple pendulum when axis coincides with small end and big end respectively-\n", + "L1=27.9 in\n", + "L2=25.2 in\n", + "distances of cg from small end and big end centers respectively are-\n", + "a1=20.7 in\n", + "a2=9.3 in\n", + "Moment of inertia of rod =93.13 lb ft^2\n" + ] + } + ], + "prompt_number": 7 + }, + { + "cell_type": "heading", + "level": 2, + "metadata": {}, + "source": [ + "Example 6, Page 39" + ] + }, + { + "cell_type": "code", + "collapsed": false, + "input": [ + "import math\n", + "\n", + "#Variable declaration\n", + "m1=150\n", + "l=8.5\n", + "g=32.2\n", + "a=83.2\n", + "n=25\n", + "\n", + "#Calculations&Results\n", + "#k=(a/2*%pi*n)*(g/l)**0.5\n", + "k=(14*a*((g)**0.5))/(2*math.pi*n*(l**0.5))\n", + "k1=14.5/12\n", + "print \"radius of gyration is %.2f inches which is equal to %.2f ft\"%(k,k1)\n", + "moi=m1*(k1**2)\n", + "print \"moment of inertia=%.f lb ft^2\"%moi" + ], + "language": "python", + "metadata": {}, + "outputs": [ + { + "output_type": "stream", + "stream": "stdout", + "text": [ + "radius of gyration is 14.43 inches which is equal to 1.21 ft\n", + "moment of inertia=219 lb ft^2\n" + ] + } + ], + "prompt_number": 8 + }, + { + "cell_type": "heading", + "level": 2, + "metadata": {}, + "source": [ + "Example 7, Page 41" + ] + }, + { + "cell_type": "code", + "collapsed": false, + "input": [ + "#Variable declaration\n", + "m=2.5#lb\n", + "a=6#in\n", + "k=3.8#in\n", + "l=9#in\n", + "c=3#in\n", + "w=22500\n", + "\n", + "#Calculations&Results\n", + "#k^2=ab\n", + "#case a) to find equivalent dynamic system\n", + "b=(k**2)/a\n", + "ma=(2.5*6)/8.42#m*a/a+b\n", + "mb=m-ma\n", + "print \"Mass ma =%.2f lb will be situated at 6 inches from cg \\nand mb =%.2f lb will be situated at %.2f inches \" \\\n", + " \"\\nfrom cg in the equivalent dynamical system\"%(ma,mb,b)\n", + "\n", + "#if two masses are situated at the bearing centres \n", + "ma1=(2.5*6)/9\n", + "mb1=m-ma1\n", + "k1=(a*c)**.5\n", + "#t=m*((k1^2)-(k^2))*w\n", + "t=((2.5*(18-3.8**2))*22500)/(32.2*12*12)\n", + "print \"\\ncorrection couple which must be applied in order that the two mass system is dynamically equivalent to\"\\\n", + " \"the rod is given by %.1f lb ft\"%t\n" + ], + "language": "python", + "metadata": {}, + "outputs": [ + { + "output_type": "stream", + "stream": "stdout", + "text": [ + "Mass ma =1.78 lb will be situated at 6 inches from cg \n", + "and mb =0.72 lb will be situated at 2.41 inches \n", + "from cg in the equivalent dynamical system\n", + "\n", + "correction couple which must be applied in order that the two mass system is dynamically equivalent tothe rod is given by 43.2 lb ft\n" + ] + } + ], + "prompt_number": 16 + }, + { + "cell_type": "heading", + "level": 2, + "metadata": {}, + "source": [ + "Example 8, Page 44" + ] + }, + { + "cell_type": "code", + "collapsed": false, + "input": [ + "#Variable declaration\n", + "m=20.#lb\n", + "g=32.2\n", + "a=200#ft/s^2\n", + "w=120#rad/s^2\n", + "k=7.#in\n", + "\n", + "#Calculations\n", + "f=(m/g)*a#effective force appllied to the link\n", + "#this force acts parallel to the acceleration fg\n", + "t=(m/g)*(k/12)**2*w#couple required in order to provide the angular acceleration\n", + "#the line of action of F is therefore at a distance from G given by\n", + "x=t/f\n", + "\n", + "#Results\n", + "print \"Effective force applied to the link is %.3f lb and the line of action of F is therefore at a distance\"\\\n", + " \"from G given by %.3f ft\"%(f,x)\n", + "print \"F is the resultant of Fa and Fb, using x as shown in figure.25 , the force F may then be resolved along\" \\\n", + " \"the appropriate lines of action to give the magnitudes of Fa and Fb\"\n", + "print \"From the scaled diagram shown in figure we get,Fa=65 lb and Fb=91 lb\"" + ], + "language": "python", + "metadata": {}, + "outputs": [ + { + "output_type": "stream", + "stream": "stdout", + "text": [ + "Effective force applied to the link is 124.224 lb and the line of action of F is therefore at a distancefrom G given by 0.204 ft\n", + "F is the resultant of Fa and Fb, using x as shown in figure.25 , the force F may then be resolved alongthe appropriate lines of action to give the magnitudes of Fa and Fb\n", + "From the scaled diagram shown in figure we get,Fa=65 lb and Fb=91 lb\n" + ] + } + ], + "prompt_number": 19 + }, + { + "cell_type": "heading", + "level": 2, + "metadata": {}, + "source": [ + "Example 9, Page 46" + ] + }, + { + "cell_type": "code", + "collapsed": false, + "input": [ + "#Variable declaration\n", + "m=10#ton\n", + "m2=1000#lb\n", + "a=3#ft/s^2\n", + "\n", + "#Calculations\n", + "#the addition to actual mass in order to allow for the rotational inertia of the wheels and axles\n", + "m1=2*(1000./2240)*(15./21)**2#m1=m2*k**2/r**2 and 1 ton=2240 lbs\n", + "M=m+m1\n", + "F=3*(10.46/32.2)#F=M.a\n", + "f=F*2240#lb\n", + "Fa=(2*1000./2240)*(3/32.2)*(15./21)**2#total tangential force required in order to provide the angular acceleration of the wheels and axles\n", + "#Limiting friction force =uW \n", + "#u*10>0.042\n", + "u=0.042/10\n", + "\n", + "#Results\n", + "print \"The total tangential force required in order to provide the angular acceleration of the wheels and axles is %.3f ton\"%Fa\n", + "print \"If there is to be pure rolling ,u>%.4f\"%u\n" + ], + "language": "python", + "metadata": {}, + "outputs": [ + { + "output_type": "stream", + "stream": "stdout", + "text": [ + "The total tangential force required in order to provide the angular acceleration of the wheels and axles is 0.042 ton\n", + "If there is to be pure rolling ,u>0.0042\n" + ] + } + ], + "prompt_number": 20 + }, + { + "cell_type": "heading", + "level": 2, + "metadata": {}, + "source": [ + "Example 10, Page 48" + ] + }, + { + "cell_type": "code", + "collapsed": false, + "input": [ + "#Variable declaration\n", + "Ia=200#lb ft2\n", + "Ib=15#lb ft2\n", + "G=5#wb==5*wa\n", + "m=150.#lb\n", + "r=8#in\n", + "\n", + "#Calculations\n", + "#the equivalent mass of the geared system referred to the circumference of the drum is given by\n", + "#Me=(1./r)**2*(Ia+(G**2*Ib))\n", + "Me=(12./r)**2*(Ia+(G**2*Ib))\n", + "M=m+Me\n", + "a=(m/M)*32.2#acceleration\n", + "#if efficiency of gearing is 90% then Me=(1/r**2)*(Ia+(G**2*Ib)/n)\n", + "n=.9\n", + "Me1=(12./r)**2*(Ia+(G**2*Ib)/n)\n", + "M1=Me1+m\n", + "a1=(m/M1)*32.2\n", + "\n", + "#Results\n", + "print \"acceleration = %.2f ft/s2\"%a\n", + "print \"acceleration when gear efficiency is 0.9= %.2f ft/s2\"%a1" + ], + "language": "python", + "metadata": {}, + "outputs": [ + { + "output_type": "stream", + "stream": "stdout", + "text": [ + "acceleration = 3.35 ft/s2\n", + "acceleration when gear efficiency is 0.9= 3.14 ft/s2\n" + ] + } + ], + "prompt_number": 21 + }, + { + "cell_type": "heading", + "level": 2, + "metadata": {}, + "source": [ + "Example 11, Page 49" + ] + }, + { + "cell_type": "code", + "collapsed": false, + "input": [ + "#Variable declaration\n", + "#let\n", + "#S=displacement of car from rest with uniform acceleration a, the engine torque T assumed to remain ocnstant\n", + "#v=final speed ofcar\n", + "#G=gear ratio\n", + "#r=effective radius\n", + "#n=efficiency of transmission\n", + "#M=mass of the car\n", + "#Ia and Ib=moments of inertia of road whels and engine \n", + "#formulas => F=29.5nG ; Me= 1648+$.54nG^2 ; a=32.2 F/Me\n", + "#given\n", + "G1=22.5\n", + "G2=12.5\n", + "G3=7.3\n", + "G4=5.4\n", + "n=.82#for 1st ,2nd and 3rd gear\n", + "n4=.9#for 4th gear\n", + "\n", + "#Calculations\n", + "F1=29.5*n*G1\n", + "F2=29.5*n*G2\n", + "F3=29.5*n*G3\n", + "F4=29.5*n4*G4\n", + "#on reduction and putting values we get\n", + "Me1=1648+4.54*n*G1**2\n", + "Me2=1648+4.54*n*G2**2\n", + "Me3=1648+4.54*n*G3**2\n", + "Me4=1648+4.54*n4*G4**2\n", + "a1=32.2*F1/Me1\n", + "a2=32.2*F2/Me2\n", + "a3=32.2*F3/Me3\n", + "a4=32.2*F4/Me4\n", + "\n", + "#Results\n", + "print \"Maximum acceleration of car on top gear is %.2f ft/s^2\"%a4\n", + "print \"Maximum acceleration of car on third gear is %.2f ft/s^2\"%a3\n", + "print \"Maximum acceleration of car on second gear is %.2f ft/s^2\"%a2\n", + "print \"Maximum acceleration of car on first gear is %.2f ft/s^2\"%a1" + ], + "language": "python", + "metadata": {}, + "outputs": [ + { + "output_type": "stream", + "stream": "stdout", + "text": [ + "Maximum acceleration of car on top gear is 2.61 ft/s^2\n", + "Maximum acceleration of car on third gear is 3.08 ft/s^2\n", + "Maximum acceleration of car on second gear is 4.37 ft/s^2\n", + "Maximum acceleration of car on first gear is 4.96 ft/s^2\n" + ] + } + ], + "prompt_number": 22 + }, + { + "cell_type": "heading", + "level": 2, + "metadata": {}, + "source": [ + "Example 12, Page 57" + ] + }, + { + "cell_type": "code", + "collapsed": false, + "input": [ + "import math\n", + "\n", + "#Variable declaration\n", + "I=40#lb ft2\n", + "n=500#rpm\n", + "\n", + "#Calculations\n", + "w=math.pi*n/30#angular velocity\n", + "wp=2*math.pi/5#angular velocity of precession\n", + "I1=I/32.2\n", + "T=I1*w*wp#gyroscopic couple\n", + "\n", + "#Result\n", + "print \"The couple supplied to the shaft= %.2f lb ft\"%T" + ], + "language": "python", + "metadata": {}, + "outputs": [ + { + "output_type": "stream", + "stream": "stdout", + "text": [ + "The couple supplied to the shaft= 81.74 lb ft\n" + ] + } + ], + "prompt_number": 1 + }, + { + "cell_type": "heading", + "level": 2, + "metadata": {}, + "source": [ + "Example 13, Page 57" + ] + }, + { + "cell_type": "code", + "collapsed": false, + "input": [ + "import math\n", + "\n", + "#Variable declaration\n", + "I=250#lb ft2\n", + "n=1600#rpm\n", + "v=150#mph\n", + "r=500#ft\n", + "\n", + "#Calculations&Results\n", + "w=math.pi*160/3#angular velocity of rotation\n", + "wp=(150.*88)/(60*500)#angular velocity of precession\n", + "#a) with three bladed screw\n", + "#T=I*w*wp\n", + "T=(250/32.2)*math.pi*(160./3)*wp\n", + "#b)with two bladed air screw\n", + "#T1=2*I*w*wp*sin(o)\n", + "print \"The magnitude of gyroscopic couple is given by %.0f lb ft\"%T\n", + "#Tix=T(1-cos(2o)) lb ft\n", + "#T1y=Tsin(2o)) lb ft\n", + "print \"The component gyroscopic couple in the vertical plane =%.0f(1-cos(2x)) lb ft\"%T\n", + "print \"The component gyroscopic couple in the horizontal plane =%.0f(sin(2x)) lb ft\"%T" + ], + "language": "python", + "metadata": {}, + "outputs": [ + { + "output_type": "stream", + "stream": "stdout", + "text": [ + "The magnitude of gyroscopic couple is given by 572 lb ft\n", + "The component gyroscopic couple in the vertical plane =572(1-cos(2x)) lb ft\n", + "The component gyroscopic couple in the horizontal plane =572(sin(2x)) lb ft\n" + ] + } + ], + "prompt_number": 24 + } + ], + "metadata": {} + } + ] +}
\ No newline at end of file diff --git a/The_Theory_of_Machines_by_T._Bevan/ch3.ipynb b/The_Theory_of_Machines_by_T._Bevan/ch3.ipynb new file mode 100644 index 00000000..1392af5b --- /dev/null +++ b/The_Theory_of_Machines_by_T._Bevan/ch3.ipynb @@ -0,0 +1,390 @@ +{ + "metadata": { + "name": "" + }, + "nbformat": 3, + "nbformat_minor": 0, + "worksheets": [ + { + "cells": [ + { + "cell_type": "heading", + "level": 1, + "metadata": {}, + "source": [ + "Chapter 3: Velocity and Acceleration" + ] + }, + { + "cell_type": "heading", + "level": 2, + "metadata": {}, + "source": [ + "Example 3, Page 90" + ] + }, + { + "cell_type": "code", + "collapsed": false, + "input": [ + "import math\n", + "\n", + "#Variable declaration\n", + "OC=6.#in\n", + "CP=24#in\n", + "N=240#rpm\n", + "X=45#degrees\n", + "XP=19#in\n", + "XC=6#in\n", + "YP=32#in\n", + "YC=9#in\n", + "#Scalling off lenghts from fig , we have\n", + "CI=2.77#in\n", + "PI=2.33#in\n", + "XI=2.33#in\n", + "YI=3.48#in\n", + "\n", + "#Calculations\n", + "Vc=((math.pi*N)/30)*(OC/12)#changing OP into feets\n", + "print \"\\nw=%.2f ft/s\"%Vc\n", + "#w=Vc/CI=Vp/PI=Vx/XI=Vy/YI\n", + "w=Vc/CI\n", + "Vp=w*PI\n", + "Vx=w*XI\n", + "Vy=w*YI\n", + "\n", + "#Results\n", + "print \"velocity of points P, X and Y are %.2f ft/s, %.2f ft/s and %.1f ft/s respectively\"%(Vp,Vx,Vy)" + ], + "language": "python", + "metadata": {}, + "outputs": [ + { + "output_type": "stream", + "stream": "stdout", + "text": [ + "\n", + "w=12.57 ft/s\n", + "velocity of points P, X and Y are 10.57 ft/s, 10.57 ft/s and 15.8 ft/s respectively\n" + ] + } + ], + "prompt_number": 4 + }, + { + "cell_type": "heading", + "level": 2, + "metadata": {}, + "source": [ + "Example 4, Page 93" + ] + }, + { + "cell_type": "code", + "collapsed": false, + "input": [ + "import math\n", + "\n", + "#Variable declaration\n", + "OC=9.#inches\n", + "CP=36.#inches\n", + "XC=12#inches\n", + "X=40#degrees\n", + "CM=6.98#from the scaled figure\n", + "N1=240#rpm\n", + "N2=240#rpm (instantaneous) with angular aceleration (ao) 100 rad/s^2\n", + "ao=100 #rad/s^2\n", + "\n", + "#Calculations&Results\n", + "w=(math.pi*N1/30)\n", + "a=w**2*(OC/12)\n", + "print \"Centripetal acceleration = %.f ft/s^2\"%a\n", + "Wr=w*CM/CP#rad/s^2\n", + "f1=Wr**2*(CP/12)#centripetal component of acceleration of p realtive to C\n", + "#Solution a)\n", + "#given from fig 58(a)\n", + "tp=296 \n", + "cp=306\n", + "ox=422\n", + "f2=tp #Tangential component of acceleration of p realtive to C\n", + "f3=cp#acceleration of p realtive to C\n", + "fx=ox#acce;eration of x\n", + "ar=f2/(CP/12)#angular acceleration of rod\n", + "print \"\\nCase a) \\nap= %.f ft/s^2,\\nax= %.f ft/s^2 and\\nar= %.1f rad/s^2\"%(f3,fx,ar)\n", + "\n", + "#Solution b)\n", + "#given from fig 58(b)\n", + "oc1=474\n", + "oc=480\n", + "pt=238.\n", + "pc=246\n", + "xo=452\n", + "f4=pt#Tangential component of acceleration of p realtive to C\n", + "f5=pc#acceleration of p realtive to C\n", + "Ar=f4/(CP/12)#angular acceleration of rod\n", + "f6=ao*(OC/12)#tangential component of acceleration realtive to C\n", + "Fx=xo#acce;eration of x\n", + "print \"\\nCase b) \\nap= %.f ft/s^2,\\nax= %.f ft/s^2 and\\nar= %.1f rad/s^2\"%(f4,Fx,Ar)" + ], + "language": "python", + "metadata": {}, + "outputs": [ + { + "output_type": "stream", + "stream": "stdout", + "text": [ + "Centripetal acceleration = 474 ft/s^2\n", + "\n", + "Case a) \n", + "ap= 306 ft/s^2,\n", + "ax= 422 ft/s^2 and\n", + "ar= 98.7 rad/s^2\n", + "\n", + "Case b) \n", + "ap= 238 ft/s^2,\n", + "ax= 452 ft/s^2 and\n", + "ar= 79.3 rad/s^2\n" + ] + } + ], + "prompt_number": 5 + }, + { + "cell_type": "heading", + "level": 2, + "metadata": {}, + "source": [ + "Example 5, Page 98" + ] + }, + { + "cell_type": "code", + "collapsed": false, + "input": [ + "import math\n", + "\n", + "#Variable declaration\n", + "AB=2.5#inches\n", + "BC=7.#inches\n", + "CD=4.5#inches\n", + "DA=8#inches\n", + "N=100#rpm\n", + "X=60#degrees\n", + "\n", + "#Calculations\n", + "w=(math.pi*N)/30\n", + "#From triangle ABM we have \n", + "AM=0.14#feet\n", + "BM=0.12#feet\n", + "Vb=w*AB/12#ft/s\n", + "Vc=w*AM#ft/s\n", + "Vcb=w*BM#ft/s\n", + "fb=w**2*(AB/12)#ft/s^2\n", + "bt=Vcb**2/(BC/12)#ft/s^2\n", + "os=Vc**2/(CD/12)#ft/s^2\n", + "#By measurement from acceleration diagram\n", + "sc=19.1#ft/s^2\n", + "tq=14.4#ft/s^2\n", + "Acd=sc/(CD/12)\n", + "Abc=tq/(BC/12)\n", + "\n", + "#Results\n", + "print \"Vb=%.2f ft/s \\nVc=%.2f ft/s\\nVcb=%.2f ft/s\\nfb=%.2f ft/s^2\\nbt=%.2f ft/s^2\\nos=%.2f ft/s^2\"%(Vb,Vc,Vcb,fb,bt,os)\n", + "print \"Angular acceleration of CD(counter-clockwise)= %.1f rad/s^2\"%Acd\n", + "print \"Angular acceleration of BC(counter-clockwise)= %.1f rad/s^2\"%Abc" + ], + "language": "python", + "metadata": {}, + "outputs": [ + { + "output_type": "stream", + "stream": "stdout", + "text": [ + "Vb=2.18 ft/s \n", + "Vc=1.47 ft/s\n", + "Vcb=1.26 ft/s\n", + "fb=22.85 ft/s^2\n", + "bt=2.71 ft/s^2\n", + "os=5.73 ft/s^2\n", + "Angular acceleration of CD(counter-clockwise)= 50.9 rad/s^2\n", + "Angular acceleration of BC(counter-clockwise)= 24.7 rad/s^2\n" + ] + } + ], + "prompt_number": 6 + }, + { + "cell_type": "heading", + "level": 2, + "metadata": {}, + "source": [ + "Example 6, Page 106" + ] + }, + { + "cell_type": "code", + "collapsed": false, + "input": [ + "#Variable declaration\n", + "OP=2#ft\n", + "f=4#ft/s^2\n", + "w=2 #rad/s (anticlockwise)\n", + "a=5 #rad/s^2 (anticlockwise)\n", + "Vpq=3 #ft/s\n", + "\n", + "#Calculations\n", + "r=OP\n", + "os=w**2*r#component 1\n", + "sq=a*r#component 2\n", + "qt=f#component 3\n", + "tp=2*w*Vpq#component 4\n", + "Aqo=(os**2+sq**2)**1./2#vector addition of component(a,b)\n", + "Apq=(qt**2+tp**2)**1./2#vector addition of component(c,d)\n", + "#Apo=Apq+Aqo (vector addition)\n", + "Apo=((os-qt)**2+(sq+tp)**2)**(1./2)\n", + "\n", + "#Result\n", + "print \"Acceleration of P realative to fixed point O is %.1f ft/s^2\"%Apo" + ], + "language": "python", + "metadata": {}, + "outputs": [ + { + "output_type": "stream", + "stream": "stdout", + "text": [ + "Acceleration of P realative to fixed point O is 22.4 ft/s^2\n" + ] + } + ], + "prompt_number": 7 + }, + { + "cell_type": "heading", + "level": 2, + "metadata": {}, + "source": [ + "Example 7, Page 110" + ] + }, + { + "cell_type": "code", + "collapsed": false, + "input": [ + "import math\n", + "\n", + "#Variable declaration\n", + "OC=8#inches\n", + "CP=4#inches\n", + "N=60#inches\n", + "ON=15#inches\n", + "RN=6.#inches\n", + "X=120#degrees\n", + "OP=10.6\n", + "OQ=OP\n", + "\n", + "#Calculations\n", + "#from fig 65(a)\n", + "Vq=1.56#ft/s\n", + "Vrn=0.74#ft/s\n", + "#from fig 65(b)\n", + "ftq=3.74#ft/s^2\n", + "ftrn=2.03#ft/s^2\n", + "w1=(math.pi*N)/30\n", + "w=Vq/(OQ/12)\n", + "wrn=Vrn/(RN/12)\n", + "a=ftq/(OP/12)#Angular acceleration of ON\n", + "a1=ftrn/(RN/12)#angular acceleration of RN\n", + "\n", + "#Results\n", + "print \"W=%.2f rad/s\\nWrn=%.2f rad/s\"%(w,wrn)\n", + "print \"Angular acceleration of ON= %.2f rad/s^2\\nAngular acceleration of RN=%.2f rad/s^2\"%(a,a1)\n" + ], + "language": "python", + "metadata": {}, + "outputs": [ + { + "output_type": "stream", + "stream": "stdout", + "text": [ + "W=1.77 rad/s\n", + "Wrn=1.48 rad/s\n", + "Angular acceleration of ON= 4.23 rad/s^2\n", + "Angular acceleration of RN=4.06 rad/s^2\n" + ] + } + ], + "prompt_number": 8 + }, + { + "cell_type": "heading", + "level": 2, + "metadata": {}, + "source": [ + "Example 8, Page 112" + ] + }, + { + "cell_type": "code", + "collapsed": false, + "input": [ + "import math\n", + "\n", + "#Variable declaration\n", + "OC=3#inches\n", + "CP=9.#inches\n", + "N=1200 #rpm (clockwise)\n", + "X=55 #degrees\n", + "#from the figure 66\n", + "OP=10.35#inches\n", + "PM=10.74#inches\n", + "OM=2.95#inches\n", + "PC=12.84#inches\n", + "PR=PC\n", + "RV=2.49#inches\n", + "UV=1.29#inches\n", + "OU=5.90#inches\n", + "PV=13.05#inches\n", + "OV=6.06#inches\n", + "OQ=OP\n", + "\n", + "#Calculations\n", + "w=(math.pi*N)/30#the angular velocity of the cylinder line OP\n", + "Vq=w*(OP/12)#the velocity of Q\n", + "Vp=w*(PM/12)#The velocity of P\n", + "w1=Vp/(CP/12)#The angular velocity of CP\n", + "Vpq=w*(OM/12)#the velocity of sliding of the piston along the cylinder\n", + "fq=w**2*(OQ/12)#the centripetal acceleration of Q\n", + "Acp=w1**2*(PC/12)#The centripetal component of acceleration of P\n", + "Atp=w**2*(RV/12)#The tangential component of acceleration of P\n", + "acp=Atp/(CP/12)# The angular acceleration of the connecting rod CP\n", + "f=w**2*(UV/12)#component c\n", + "d=2*w*Vpq#component d\n", + "Ap=w**2*PV#the resultant acceleration of P\n", + "Apq=w**2*OV#the acceleration of P realative to Q\n", + "\n", + "#Results\n", + "print \"The velocity and acceleration of the piston along the cylinder are %.1f ft/s and %.f ft/s^2 respectively\"\\\n", + " \"\\nThe angular velocity and angular acceleration of the connecting rod cp are %.1f rad/s and %.f rad/s^2 respectively\"\\\n", + " \"\\nAnd the coriolis component of the acceleration of P is %.f ft/s^2\"%(Vpq,f,w1,acp,d)" + ], + "language": "python", + "metadata": {}, + "outputs": [ + { + "output_type": "stream", + "stream": "stdout", + "text": [ + "The velocity and acceleration of the piston along the cylinder are 30.9 ft/s and 1698 ft/s^2 respectively\n", + "The angular velocity and angular acceleration of the connecting rod cp are 150.0 rad/s and 4369 rad/s^2 respectively\n", + "And the coriolis component of the acceleration of P is 7764 ft/s^2\n" + ] + } + ], + "prompt_number": 9 + } + ], + "metadata": {} + } + ] +}
\ No newline at end of file diff --git a/The_Theory_of_Machines_by_T._Bevan/ch4.ipynb b/The_Theory_of_Machines_by_T._Bevan/ch4.ipynb new file mode 100644 index 00000000..bda39547 --- /dev/null +++ b/The_Theory_of_Machines_by_T._Bevan/ch4.ipynb @@ -0,0 +1,77 @@ +{ + "metadata": { + "name": "" + }, + "nbformat": 3, + "nbformat_minor": 0, + "worksheets": [ + { + "cells": [ + { + "cell_type": "heading", + "level": 1, + "metadata": {}, + "source": [ + "Chapter 4: Mechanisms with Lower Pairs" + ] + }, + { + "cell_type": "heading", + "level": 2, + "metadata": {}, + "source": [ + "Example 1, Page 138" + ] + }, + { + "cell_type": "code", + "collapsed": false, + "input": [ + "import math\n", + "\n", + "#Variable declaration\n", + "rpm=1000\n", + "angle=20#degree\n", + "\n", + "#Calculations&Results\n", + "ang=(angle*math.pi)/180\n", + "w=2*math.pi*rpm/60\n", + "print \"The angular velocity of the driving shaft is %.1f rad/s\"%w\n", + "#maximum value of w1=w/cos(angle) and minimum value w2=w*cos(angle)\n", + "w1=w/math.cos(ang)\n", + "w2=w*math.cos(ang)\n", + "print \"\\nExtreme angular velocities :-\"\n", + "print \"maximum value of angular velocity w1=%.1f rad/s \\nminimum value of angular velocity w2=%.1f rad/s\"%(w1,w2)\n", + "#using equation 4.11, cos(2x)=(2*sin(angle)**2)/(2-sin(angle)**2)\n", + "x=math.acos((2*math.sin(ang)**2)/(2-math.sin(ang)**2))*180/(math.pi)\n", + "y=360-x#for cosine inverse, angle and 360-angle are same and must be considered\n", + "x1=x/2\n", + "y1=y/2\n", + "print \"The acceleration of driven shaft is a maximum when theta =%.2f or %.2f degrees\"%(x1,y1)\n", + "amax=(w**2*math.cos(ang)*(math.sin(ang)**2)*math.sin(x*math.pi/180))/((1-((math.cos(x1*math.pi/180)**2)*(math.sin(ang)**2)))**2)#maximum angular acceleration, numerically\n", + "print \"Maximum angular acceleration is %.f rad/s^2\"%amax\n" + ], + "language": "python", + "metadata": {}, + "outputs": [ + { + "output_type": "stream", + "stream": "stdout", + "text": [ + "The angular velocity of the driving shaft is 104.7 rad/s\n", + "\n", + "Extreme angular velocities :-\n", + "maximum value of angular velocity w1=111.4 rad/s \n", + "minimum value of angular velocity w2=98.4 rad/s\n", + "The acceleration of driven shaft is a maximum when theta =41.43 or 138.57 degrees\n", + "Maximum angular acceleration is 1370 rad/s^2\n" + ] + } + ], + "prompt_number": 1 + } + ], + "metadata": {} + } + ] +}
\ No newline at end of file diff --git a/The_Theory_of_Machines_by_T._Bevan/ch5.ipynb b/The_Theory_of_Machines_by_T._Bevan/ch5.ipynb new file mode 100644 index 00000000..29c355fc --- /dev/null +++ b/The_Theory_of_Machines_by_T._Bevan/ch5.ipynb @@ -0,0 +1,77 @@ +{ + "metadata": { + "name": "" + }, + "nbformat": 3, + "nbformat_minor": 0, + "worksheets": [ + { + "cells": [ + { + "cell_type": "heading", + "level": 1, + "metadata": {}, + "source": [ + "Chapter 5: Valve Diagrams and Valve Gears" + ] + }, + { + "cell_type": "heading", + "level": 2, + "metadata": {}, + "source": [ + "Example 1, Page 147" + ] + }, + { + "cell_type": "code", + "collapsed": false, + "input": [ + "import math\n", + "\n", + "#Variable declaration\n", + "s=1.125#inch\n", + "e=0.25#inch\n", + "t=2.25#inch\n", + "alpha=35#degrees\n", + "\n", + "#Calculations\n", + "#from 5.2, we know theta+alpha=sininverse(s/t)\n", + "x=math.degrees(math.asin(s/t))\n", + "y=180-x#sin(x)=sin(180-x)=sin(y)\n", + "#at admission\n", + "p=x-alpha\n", + "#at cutoff\n", + "q=y-alpha\n", + "#from 5.3, theta+alpha=sininnverse(-e/t)\n", + "ang=math.degrees(math.asin(-e/t))\n", + "angle=abs(ang)\n", + "a=180+angle#lies in the negative region of sine curve\n", + "b=360-angle#lies in hte negative region of sine curve\n", + "#at release\n", + "r=a-alpha\n", + "#at compression\n", + "s=b-alpha\n", + "\n", + "#Results\n", + "print \"Angle theta at admission, cut-off,release and compression are %.2f, %.2f, %.2f and %.2f degrees respectively\"%(p,q,r,s)\n", + "\n" + ], + "language": "python", + "metadata": {}, + "outputs": [ + { + "output_type": "stream", + "stream": "stdout", + "text": [ + "Angle theta at admission, cut-off,release and compression are -5.00, 115.00, 151.38 and 318.62 degrees respectively\n" + ] + } + ], + "prompt_number": 9 + } + ], + "metadata": {} + } + ] +}
\ No newline at end of file diff --git a/The_Theory_of_Machines_by_T._Bevan/ch6.ipynb b/The_Theory_of_Machines_by_T._Bevan/ch6.ipynb new file mode 100644 index 00000000..3639fce9 --- /dev/null +++ b/The_Theory_of_Machines_by_T._Bevan/ch6.ipynb @@ -0,0 +1,325 @@ +{ + "metadata": { + "name": "" + }, + "nbformat": 3, + "nbformat_minor": 0, + "worksheets": [ + { + "cells": [ + { + "cell_type": "heading", + "level": 1, + "metadata": {}, + "source": [ + "Chapter 6: Friction" + ] + }, + { + "cell_type": "heading", + "level": 2, + "metadata": {}, + "source": [ + "Example 1, Page 185" + ] + }, + { + "cell_type": "code", + "collapsed": false, + "input": [ + "import math\n", + "\n", + "#Variable declaration\n", + "theta=60.#degrees\n", + "u1=0.15#between surfaces A annd B\n", + "u2=0.10#for the guides\n", + "\n", + "#Calculations\n", + "phi=math.degrees(math.atan(u1))\n", + "phi1=math.degrees(math.atan(u2))\n", + "alpha=(theta+phi+phi1)/2#from 6.22, maximum efficiency is obtained at alpha\n", + "#from 6.23, maximum efficiency is given by nmax=(cos(theta+phi+phi1)+1)/(cos(theta-phi-phi1)+1)\n", + "nmax=(math.cos((theta+phi+phi1)*math.pi/180)+1)/(math.cos((theta-phi-phi1)*math.pi/180)+1)\n", + "\n", + "#Results\n", + "print \"Maximum efficiency = %.2f %% and it is obtained when alpha = %.2f degrees\"%((nmax*100),alpha)\n" + ], + "language": "python", + "metadata": {}, + "outputs": [ + { + "output_type": "stream", + "stream": "stdout", + "text": [ + "Maximum efficiency = 74.90 % and it is obtained when alpha = 37.12 degrees\n" + ] + } + ], + "prompt_number": 23 + }, + { + "cell_type": "heading", + "level": 2, + "metadata": {}, + "source": [ + "Example 3, Page 193" + ] + }, + { + "cell_type": "code", + "collapsed": false, + "input": [ + "import math\n", + "\n", + "#Variable declaration\n", + "#from equation 6.36 we know, M=(2/3)*u*W*(ri^3-r2^3)/(r1^2-r2^2)\n", + "u=0.04\n", + "W=16#tons\n", + "w=W*2240#lbs\n", + "r1=8#in\n", + "r2=6#in\n", + "N=120\n", + "P=50#lb/in^2\n", + "\n", + "#Calculations\n", + "M=(2./3)*u*w*(r1**3-r2**3)/(r1**2-r2**2)\n", + "hp=M*2*math.pi*N/(12*33000)#horse power absorbed\n", + "#from fig 137,effective bearing surface per pad is calsulate from the dimensions to be 58.5 in^2\n", + "A=58.5#in^2\n", + "n=w/(A*P)\n", + "x=math.floor(n)\n", + "\n", + "#Results\n", + "print \"Horsepower absorbed = %.2f\\nNumber of collars required = %.f\"%(hp,x)" + ], + "language": "python", + "metadata": {}, + "outputs": [ + { + "output_type": "stream", + "stream": "stdout", + "text": [ + "Horsepower absorbed = 19.24\n", + "Number of collars required = 12\n" + ] + } + ], + "prompt_number": 14 + }, + { + "cell_type": "heading", + "level": 2, + "metadata": {}, + "source": [ + "Example 4, Page 195" + ] + }, + { + "cell_type": "code", + "collapsed": false, + "input": [ + "import math\n", + "\n", + "#Variable declaration\n", + "ratio=1.25\n", + "u=.675\n", + "P=12#hp\n", + "\n", + "#Calculations\n", + "#W=P*%pi*(r1^2-r2^2); Total axal thrust.\n", + "#M=u*W*(r1+r2); Total friction moemnt \n", + "#reducing the two equations and using ratio=1.25(r1=1.25*r2) we get, M=u*21.2*r2^3\n", + "ReqM=65#lb ft \n", + "RM=ReqM*12#lb in\n", + "r2=(RM/(u*P*math.pi*(1.25**2-1)))**(1./3)\n", + "r1=1.25*r2\n", + "d1=r1*2\n", + "d2=r2*2\n", + "\n", + "#Results\n", + "print \"The dimensions of the friction surfaces are:\\nOuter Diameter= %.1f in\\nInner Diameter= %.1f in\"%(d1,d2)" + ], + "language": "python", + "metadata": {}, + "outputs": [ + { + "output_type": "stream", + "stream": "stdout", + "text": [ + "The dimensions of the friction surfaces are:\n", + "Outer Diameter= 9.5 in\n", + "Inner Diameter= 7.6 in\n" + ] + } + ], + "prompt_number": 15 + }, + { + "cell_type": "heading", + "level": 2, + "metadata": {}, + "source": [ + "Example 5, Page 196" + ] + }, + { + "cell_type": "code", + "collapsed": false, + "input": [ + "import math\n", + "\n", + "#Variable declaration\n", + "P=20#lb/in^2\n", + "u=0.07#friction coefficient\n", + "N=3600#rpm\n", + "H=100#hp\n", + "r1=5#in\n", + "\n", + "#Calculations\n", + "r2=0.8*r1#given\n", + "A=math.pi*(r1**2-r2**2)#the area of each friction surface\n", + "W=A*P#total axial thrust on plates\n", + "M=(1./2)*u*W*(r1+r2)#friction moment for each pair of contacts\n", + "T=H*33000*12/(2*math.pi*N)#total torque to be transmitted\n", + "x=(T/M)#effective friction surfaces required\n", + "\n", + "#Results\n", + "print \"\\nNumber of effective friction surfaces required= %.f\"%x\n" + ], + "language": "python", + "metadata": {}, + "outputs": [ + { + "output_type": "stream", + "stream": "stdout", + "text": [ + "\n", + "Number of effective friction surfaces required= 10\n" + ] + } + ], + "prompt_number": 16 + }, + { + "cell_type": "heading", + "level": 2, + "metadata": {}, + "source": [ + "Example 7, Page 198" + ] + }, + { + "cell_type": "code", + "collapsed": false, + "input": [ + "import math\n", + "\n", + "#Variable declaration\n", + "P=6 #tons\n", + "u=0.05\n", + "theta=60#degrees\n", + "CP=80\n", + "Stroke=16#in\n", + "OC=Stroke/2\n", + "r1=7#in\n", + "r2=15#in\n", + "r3=4.4#in\n", + "\n", + "#Calculations\n", + "#Radius of friction circle\n", + "ro=u*r1\n", + "rc=u*r2\n", + "rp=u*r3\n", + "phi=math.degrees(math.asin(OC*math.sin(theta*math.pi/180)/CP))\n", + "alpha=math.degrees(math.asin((rc+rp)/CP))\n", + "#a) without friction\n", + "Qa=P/math.cos((phi)*math.pi/180)\n", + "Xa=OC*math.cos((30-phi)*math.pi/180)#tensile force transmitted along the eccentric rod when friction is NOT taken into account\n", + "Ma=Qa*Xa/12\n", + "#b) with friction\n", + "Qb=P/math.cos((phi-alpha)*math.pi/180)#tensile force transmitted along the eccentric rod when friction is taken into account\n", + "Xb=OC*math.cos((30-(phi-alpha))*math.pi/180)-(rc+ro)\n", + "Mb=Qb*Xb/12\n", + "n=Mb/Ma\n", + "\n", + "#Results\n", + "print \"Turning moment applied to OC:\\na)Without friction= %.2f ton.ft\\nb)With friction(u=0.05)= %.2f ton.ft\"%(Ma,Mb)\n", + "print \"\\nThe efficiency of the mechanism is %.2f %%\"%(n*100)" + ], + "language": "python", + "metadata": {}, + "outputs": [ + { + "output_type": "stream", + "stream": "stdout", + "text": [ + "Turning moment applied to OC:\n", + "a)Without friction= 3.64 ton.ft\n", + "b)With friction(u=0.05)= 3.06 ton.ft\n", + "\n", + "The efficiency of the mechanism is 84.17 %\n" + ] + } + ], + "prompt_number": 21 + }, + { + "cell_type": "heading", + "level": 2, + "metadata": {}, + "source": [ + "Example 8, Page 201" + ] + }, + { + "cell_type": "code", + "collapsed": false, + "input": [ + "import math\n", + "import numpy as np\n", + "\n", + "#Variable declaration\n", + "stroke=4#in\n", + "d=11.5#in\n", + "ds=4#in\n", + "dp=14#in\n", + "theta=math.pi\n", + "u1=.25\n", + "T1=350#lb\n", + "u2=0.1\n", + "\n", + "#Calculations\n", + "k=math.e**(u1*theta)\n", + "T2=T1/k\n", + "Tor=(T1-T2)*(dp/2)#total resisting torque\n", + "#total resisting torque is also given by P*(r+2*(cos%pi/6))+u2*R*(ds/2)\n", + "#equating and putting values we get the following quadratic equation\n", + "p = [1,-1163,334200]\n", + "a=np.roots(p)\n", + "\n", + "#Results\n", + "print \"P=\",a\n", + "print \"The larger of two values is inadmissible. \\n It corresponds to a negative sign in front of the second\" \\\n", + " \"term on the \\n right hand side of equation (1)\"" + ], + "language": "python", + "metadata": {}, + "outputs": [ + { + "output_type": "stream", + "stream": "stdout", + "text": [ + "P= [ 644.28733949 518.71266051]\n", + "The larger of two values is inadmissible. \n", + " It corresponds to a negative sign in front of the secondterm on the \n", + " right hand side of equation (1)\n" + ] + } + ], + "prompt_number": 22 + } + ], + "metadata": {} + } + ] +}
\ No newline at end of file diff --git a/The_Theory_of_Machines_by_T._Bevan/ch7.ipynb b/The_Theory_of_Machines_by_T._Bevan/ch7.ipynb new file mode 100644 index 00000000..cdee4ed4 --- /dev/null +++ b/The_Theory_of_Machines_by_T._Bevan/ch7.ipynb @@ -0,0 +1,134 @@ +{ + "metadata": { + "name": "" + }, + "nbformat": 3, + "nbformat_minor": 0, + "worksheets": [ + { + "cells": [ + { + "cell_type": "heading", + "level": 1, + "metadata": {}, + "source": [ + "Chapter 7: Belt, Rope and Chain Drive" + ] + }, + { + "cell_type": "heading", + "level": 2, + "metadata": {}, + "source": [ + "Example 1, Page 228" + ] + }, + { + "cell_type": "code", + "collapsed": false, + "input": [ + "import math\n", + "\n", + "#Variable declaration\n", + "#given-belt is perfectly elastic and massless \n", + "u=0.3\n", + "v=3600#ft/min\n", + "V=v/60#ft/sec\n", + "theta=165#degrees\n", + "\n", + "#Calculations\n", + "x=theta*math.pi/180\n", + "k=math.e**(u*x)#k=T1/T2=e^(u*x)\n", + "To=500#lb\n", + "T1=2*k*To/(k+1)\n", + "T2=T1/k\n", + "T=T1-T2#effective tension\n", + "H=T*V/550#horsepower transmitted\n", + "\n", + "#Result\n", + "print \"The horse-power transmitted = %.2f\"%H" + ], + "language": "python", + "metadata": {}, + "outputs": [ + { + "output_type": "stream", + "stream": "stdout", + "text": [ + "The horse-power transmitted = 44.40\n" + ] + } + ], + "prompt_number": 1 + }, + { + "cell_type": "heading", + "level": 2, + "metadata": {}, + "source": [ + "Example 2, Page 234" + ] + }, + { + "cell_type": "code", + "collapsed": false, + "input": [ + "import math\n", + "\n", + "#Variable declaration\n", + "w=1.2#lb/ft^2\n", + "u=0.3\n", + "v=3600#ft/min\n", + "V=v/60#ft/sec\n", + "theta=165#degrees\n", + "g=32.2#ft/s^2\n", + "\n", + "#Calculations\n", + "x=theta*math.pi/180\n", + "k=math.e**(u*x)#k=T1/T2=e^(u*x)\n", + "To=500#lb\n", + "#Solution a)Vertical drive\n", + "Tc=w*V**2/g#equation 7.5\n", + "#solution a)\n", + "H=2*(k-1)*(To-Tc)*V/((k+1)*550)\n", + "Vmax=(To*g/(3*w))**(1./2)\n", + "Hmax=2*(k-1)*(To-Tc)*Vmax/((k+1)*550)\n", + "#Solution b)\n", + "To1=To+Tc\n", + "#from equation 7.15 2/To1^2=1/Tt^2+1/Ts^2\n", + "#T1/T2=k\n", + "T2=367 #lb - from trail and error\n", + "T1=k*T2\n", + "Tt=T1+Tc\n", + "Ts=T2+Tc\n", + "HP=(T1-T2)*V/550\n", + "\n", + "#Results\n", + "print \"Solution a)\\nHorsepower transmitted= %.1f\\nMaximum Horsepower transmitted= %.1f (at velocit = %.1f ft/s^2)\"\\\n", + " \"\\n\\nSolution b)\\nTt=%.f lb\\nTs=%.f lb\\nHorsepower transmitted= %.1f\"%(H,Hmax,Vmax,Tt,Ts,HP)\n" + ], + "language": "python", + "metadata": {}, + "outputs": [ + { + "output_type": "stream", + "stream": "stdout", + "text": [ + "Solution a)\n", + "Horsepower transmitted= 32.5\n", + "Maximum Horsepower transmitted= 36.2 (at velocit = 66.9 ft/s^2)\n", + "\n", + "Solution b)\n", + "Tt=1005 lb\n", + "Ts=501 lb\n", + "Horsepower transmitted= 54.9\n" + ] + } + ], + "prompt_number": 3 + } + ], + "metadata": {} + } + ] +}
\ No newline at end of file diff --git a/The_Theory_of_Machines_by_T._Bevan/ch8.ipynb b/The_Theory_of_Machines_by_T._Bevan/ch8.ipynb new file mode 100644 index 00000000..223bd8dd --- /dev/null +++ b/The_Theory_of_Machines_by_T._Bevan/ch8.ipynb @@ -0,0 +1,356 @@ +{ + "metadata": { + "name": "" + }, + "nbformat": 3, + "nbformat_minor": 0, + "worksheets": [ + { + "cells": [ + { + "cell_type": "heading", + "level": 1, + "metadata": {}, + "source": [ + "Chapter 8: Brakes and Dynamometers" + ] + }, + { + "cell_type": "heading", + "level": 2, + "metadata": {}, + "source": [ + "Example 1, Page 252" + ] + }, + { + "cell_type": "code", + "collapsed": false, + "input": [ + "import math\n", + "\n", + "#Variable declaration\n", + "dia=12#in\n", + "r=dia/2\n", + "CQ=7#in\n", + "OC=6#in\n", + "OH=15#in\n", + "u=0.3\n", + "P=100#lb\n", + "\n", + "#Calculations\n", + "phi=math.atan(u)\n", + "x=r*math.sin(phi)#in inches;radius of friction circle\n", + "a=5.82#from figure\n", + "Tb=P*OH*x/a#braking torque\n", + "\n", + "#Result\n", + "print \"The braking torque of the drum Tb= %.f lb\"%Tb" + ], + "language": "python", + "metadata": {}, + "outputs": [ + { + "output_type": "stream", + "stream": "stdout", + "text": [ + "The braking torque of the drum Tb= 444 lb\n" + ] + } + ], + "prompt_number": 1 + }, + { + "cell_type": "heading", + "level": 2, + "metadata": {}, + "source": [ + "Example 2, Page 252" + ] + }, + { + "cell_type": "code", + "collapsed": false, + "input": [ + "import math\n", + "\n", + "#Variable declaration\n", + "OH=15#in\n", + "l=OH\n", + "u=0.3\n", + "P=100#lb\n", + "dia=12#in\n", + "r=dia/2\n", + "\n", + "#Calculations\n", + "phi=math.atan(u)\n", + "#according to fig 170(b)\n", + "#for clockwise rotation\n", + "a=6#from figure\n", + "x=r*math.sin(phi)#in inches;radius of friction circle\n", + "Tb=P*l*x/a#braking torque on the drum\n", + "#for counter clockwise rotation\n", + "a1=5.5#in\n", + "Tb1=P*l*x/a1#braking torque on the drum\n", + "#according to figure 172(a)\n", + "#for clockwise rotation\n", + "a2=6.48#from figure\n", + "x=r*math.sin(phi)#in inches;radius of friction circle\n", + "Tb2=P*l*x/a2#braking torque on the drum\n", + "#for counter clockwise rotation\n", + "a3=6.38#in\n", + "Tb3=P*l*x/a3#braking torque on the drum\n", + "T1=math.ceil(Tb1)\n", + "T2=math.ceil(Tb2)\n", + "T3=math.ceil(Tb3)\n", + "\n", + "#Result\n", + "print \"Braking torque on drum:\\nWhen dimensions are measured from fig 170(b)\\nFor clockwise rotation= %.f lb in\"\\\n", + "\"\\nFor counter clockwise rotation= %.f lb in\"%(Tb,T1)\n", + "print \"\\nWhen dimensions are measured from fig 171(a)\\nFor clockwise rotation= %.f lb in\"\\\n", + "\"\\nFor counter clockwise rotation= %.f lb\"%(T2,T3)\n" + ], + "language": "python", + "metadata": {}, + "outputs": [ + { + "output_type": "stream", + "stream": "stdout", + "text": [ + "Braking torque on drum:\n", + "When dimensions are measured from fig 170(b)\n", + "For clockwise rotation= 431 lb in\n", + "For counter clockwise rotation= 471 lb in\n", + "\n", + "When dimensions are measured from fig 171(a)\n", + "For clockwise rotation= 400 lb in\n", + "For counter clockwise rotation= 406 lb\n" + ] + } + ], + "prompt_number": 5 + }, + { + "cell_type": "heading", + "level": 2, + "metadata": {}, + "source": [ + "Example 3, Page 253" + ] + }, + { + "cell_type": "code", + "collapsed": false, + "input": [ + "import math\n", + "\n", + "#Variable declaration\n", + "u=.35\n", + "Tb=500#lb.ft\n", + "rd=10#in\n", + "\n", + "#Calculations\n", + "phi=math.atan(u)\n", + "x=rd*math.sin(phi)\n", + "#F*OD=R*a=R1*a\n", + "#R=R1\n", + "#2*R*x=Tb\n", + "OD=24#in\n", + "a=11.5#inches; From figure\n", + "F=Tb*a*12/(OD*2*x)\n", + "#from figure\n", + "HG=4#in\n", + "GK=12#in\n", + "HL=12.22#in\n", + "P=F*HG/GK\n", + "Fhd=HL*P/HG\n", + "\n", + "#Results\n", + "print \"a) Magnitude of P = %.f lb\"%P\n", + "print \"b) Magnitude of Fhd = %.f lb\"%Fhd" + ], + "language": "python", + "metadata": {}, + "outputs": [ + { + "output_type": "stream", + "stream": "stdout", + "text": [ + "a) Magnitude of P = 145 lb\n", + "b) Magnitude of Fhd = 443 lb\n" + ] + } + ], + "prompt_number": 6 + }, + { + "cell_type": "heading", + "level": 2, + "metadata": {}, + "source": [ + "Example 4, Page 259" + ] + }, + { + "cell_type": "code", + "collapsed": false, + "input": [ + "import math\n", + "\n", + "#Variable declaration\n", + "u=.3\n", + "theta=270*math.pi/180\n", + "l=18#in\n", + "a=4#in\n", + "Di=15#in\n", + "Do=21#in\n", + "w=.5#tons\n", + "\n", + "#Calculations\n", + "W=w*2204#lb\n", + "Q=W*Di/Do#required tangential braking force on the drum\n", + "k=math.e**(u*theta)#k=T1/T2\n", + "p=Q*a/(l*(k-1))\n", + "\n", + "#Result\n", + "print \"Least force required, P = %.f lb\"%p" + ], + "language": "python", + "metadata": {}, + "outputs": [ + { + "output_type": "stream", + "stream": "stdout", + "text": [ + "Least force required, P = 56 lb\n" + ] + } + ], + "prompt_number": 7 + }, + { + "cell_type": "heading", + "level": 2, + "metadata": {}, + "source": [ + "Example 5, Page 260" + ] + }, + { + "cell_type": "code", + "collapsed": false, + "input": [ + "import math\n", + "\n", + "#Variable declaration\n", + "n=12\n", + "u=.28\n", + "a=4.5#in\n", + "b=1#in\n", + "l=21#in\n", + "r=15#in\n", + "Tb=4000#lb\n", + "\n", + "#Calculations\n", + "theta=10*math.pi/180\n", + "#k=Tn/To\n", + "k=((1+u*math.tan(theta))/(1-u*math.tan(theta)))**n\n", + "Q=Tb*(12./r)\n", + "P=Q*(a-b*k)/(l*(k-1))#from combining 8.6 with k=e^u*theta\n", + "\n", + "#Result\n", + "print \"The least effort required = P = %.1f lb\"%P" + ], + "language": "python", + "metadata": {}, + "outputs": [ + { + "output_type": "stream", + "stream": "stdout", + "text": [ + "The least effort required = P = 82.2 lb\n" + ] + } + ], + "prompt_number": 8 + }, + { + "cell_type": "heading", + "level": 2, + "metadata": {}, + "source": [ + "Example 6, Page 264" + ] + }, + { + "cell_type": "code", + "collapsed": false, + "input": [ + "#Variable declaration\n", + "w=9.5 #ft\n", + "h= 2. #ft\n", + "x=4. #ft\n", + "v=30.#mph\n", + "\n", + "#Calculations\n", + "V=1.46667*v#ft/s\n", + "u1=.1\n", + "u2=.6\n", + "g=32.2#ft/s**2\n", + "#a) rear wheels braked\n", + "fa1=(u1*(w-x)*g)/(w+u1*h)\n", + "fa2=(u2*(w-x)*g)/(w+u2*h)\n", + "sa1=V**2/(2*fa1)\n", + "sa2=V**2/(2*fa2)\n", + "#b) front wheels braked\n", + "fb1=u1*x*g/(w-u1*h)\n", + "fb2=u2*x*g/(w-u2*h)\n", + "sb1=V**2/(2*fb1)\n", + "sb2=V**2/(2*fb2)\n", + "#c) All wheels braked\n", + "fc1=u1*g\n", + "fc2=u2*g\n", + "sc1=V**2/(2*fc1)\n", + "sc2=V**2/(2*fc2)\n", + "k1=(x+u1*h)/(w-x-u1*h)#Na/Nb\n", + "k2=(x+u2*h)/(w-x-u2*h)#Na/Nb\n", + "\n", + "#Results\n", + "print \"Coefficient of friction = 0.1\\na) Minimum distance in which car may be stopped when the rear brakes are\"\\\n", + "\"applied = %.f ft\\nb) Minimum distance in which car may be stopped when the front brakes are applied = %.f ft\"\\\n", + "\"\\nc) Minimum distance in which car may be stopped when all brakes are applied = %.f ft\"%(sa1,sb1,sc1)\n", + "print \"\\nCoefficient of friction = 0.6\\na) Minimum distance in which car may be stopped when the rear brakes are \"\\\n", + "\"applied = %.1f ft\\nb) Minimum distance in which car may be stopped when the front brakes are applied = %.f ft\"\\\n", + "\"\\nc) Minimum distance in which car may be stopped when all brakes are applied = %.1f ft\"%(sa2,sb2,sc2)\n", + "print \"\\nRequired ration of Na/Nb\\nFor u1 = 0.1 -> %.3f\\nFor u2 = 0.6 -> %.2f\"%(k1,k2)" + ], + "language": "python", + "metadata": {}, + "outputs": [ + { + "output_type": "stream", + "stream": "stdout", + "text": [ + "Coefficient of friction = 0.1\n", + "a) Minimum distance in which car may be stopped when the rear brakes areapplied = 530 ft\n", + "b) Minimum distance in which car may be stopped when the front brakes are applied = 699 ft\n", + "c) Minimum distance in which car may be stopped when all brakes are applied = 301 ft\n", + "\n", + "Coefficient of friction = 0.6\n", + "a) Minimum distance in which car may be stopped when the rear brakes are applied = 97.5 ft\n", + "b) Minimum distance in which car may be stopped when the front brakes are applied = 104 ft\n", + "c) Minimum distance in which car may be stopped when all brakes are applied = 50.1 ft\n", + "\n", + "Required ration of Na/Nb\n", + "For u1 = 0.1 -> 0.792\n", + "For u2 = 0.6 -> 1.21\n" + ] + } + ], + "prompt_number": 9 + } + ], + "metadata": {} + } + ] +}
\ No newline at end of file diff --git a/The_Theory_of_Machines_by_T._Bevan/ch9.ipynb b/The_Theory_of_Machines_by_T._Bevan/ch9.ipynb new file mode 100644 index 00000000..74617092 --- /dev/null +++ b/The_Theory_of_Machines_by_T._Bevan/ch9.ipynb @@ -0,0 +1,150 @@ +{ + "metadata": { + "name": "" + }, + "nbformat": 3, + "nbformat_minor": 0, + "worksheets": [ + { + "cells": [ + { + "cell_type": "heading", + "level": 1, + "metadata": {}, + "source": [ + "Chapter 9: Cams" + ] + }, + { + "cell_type": "heading", + "level": 2, + "metadata": {}, + "source": [ + "Example 5, Page 300" + ] + }, + { + "cell_type": "code", + "collapsed": false, + "input": [ + "%matplotlib inline\n", + "import math\n", + "import numpy as np\n", + "import matplotlib.pyplot as plt\n", + "\n", + "#Variable declaration\n", + "alpha=55*math.pi/180\n", + "N=1200#rpm\n", + "lift=.5#in\n", + "rn=.125#in ; noseradius\n", + "rmin=1.125#in ; minimum radius\n", + "\n", + "#Calculations&Results\n", + "OQ=rmin+lift-rn\n", + "OP=(OQ**2-1)/(2*(1-OQ*math.cos(alpha)))#from triangle opq fig 201(a)\n", + "PQ=OP+rmin-rn\n", + "phi=math.asin(OQ*math.sin(alpha)/PQ)\n", + "x1=np.linspace(0,phi)\n", + "x2=np.linspace(phi,alpha)\n", + "y1=4.477*(1-np.cos(x1))#from 9.6\n", + "y2=1.5*np.cos(alpha-x2)-1#from 9.9\n", + "v1=math.pi*N*4.477*np.sin(x1)/(30*12)#from 9.7\n", + "v2=15.71*np.sin(alpha-x2)#from 9.10\n", + "f1=(math.pi*N/30)**2*(4.477/12)*np.cos(x1)#from 9.8\n", + "f2=-1974*np.cos(alpha-x2)#from 9.11\n", + "a=np.linspace(0,phi)\n", + "b=np.linspace(phi,alpha)\n", + "p=np.linspace(0,phi)\n", + "q=np.linspace(phi,alpha)\n", + "plt.subplot(3,1,3)\n", + "plt.subplot(3,1,1)\n", + "plt.plot(x1,y1,x2,y2)\n", + "plt.tick_params(axis='y', which='both', labelleft='off', labelright='on')\n", + "plt.xlabel(\"angle\")\n", + "plt.ylabel(\"displacement\")\n", + "plt.subplot(3,1,2)\n", + "plt.plot(a,v1,b,v2)\n", + "plt.tick_params(axis='y', which='both', labelleft='off', labelright='on')\n", + "plt.ylabel(\"velocity\")\n", + "plt.subplot(3,1,3)\n", + "plt.plot(p,f1,q,f2)\n", + "plt.tick_params(axis='y', which='both', labelleft='off', labelright='on')\n", + "plt.xlabel(\"angle\")\n", + "plt.ylabel(\"acceleration\")\n", + "plt.show()" + ], + "language": "python", + "metadata": {}, + "outputs": [ + { + "metadata": {}, + "output_type": "display_data", + "png": "iVBORw0KGgoAAAANSUhEUgAAAZAAAAEPCAYAAABsj5JaAAAABHNCSVQICAgIfAhkiAAAAAlwSFlz\nAAALEgAACxIB0t1+/AAAIABJREFUeJzs3XlYVdX6wPEvCIrmiAMyKQooKqMiqImIhFM55GzeUkqv\nP83M6qYNt9S6pQ23ey2r2+SQlVpqiqXcSkFUFBBwCBBRQQZBUUEcGQ7798e5HgWRcxTPhO/nefYT\nZ5/D2i8rWS97rb3WslAURUEIIYS4S5bGDkAIIYR5kgQihBDinkgCEUIIcU8kgQghhLgnkkCEEELc\nE0kgQggh7okkECGEMHGRkZF4eHjg7u7Oe++9d9v70dHRtGjRAj8/P/z8/PjHP/5hkLisDHIVIYQQ\n90SlUjFnzhz++OMPHB0d6d27NyNHjqRbt25VPhccHExERIRBY5M7ECGEMGHx8fG4ubnh4uKCtbU1\nkyZNYsuWLbd9zhhzwiWBCCGECcvLy8PZ2Vnz2snJiby8vCqfsbCwIDY2Fh8fH4YPH05qaqpBYpMu\nLCGEMGEWFhZaP9OzZ09ycnJo0qQJ27dvZ/To0Rw7dkzvsWlNICdPnqRz585az1Xn5ubGiRMn6had\nEEI8YFxdXTl+/LjmtaOjIzk5OZrXOTk5ODk5VfmeZs2aab4eNmwYs2fP5sKFC9ja2uo1Vgttiyn6\n+fmRnJxc5VyvXr1ITEysvWALC6P0yZmiRYsWsWjRImOHYRKkLm56kOvictll8i/lc/rSaQouF7Dq\n36vwm+zHmctnOHPlDGevnKXwaiFnr5xFVami7UNtadOkDa0bt6Z1k9a0adwG28a22Da2paVNS1o1\nbkUrm1a0tGlJC5sWtGjUgmaNmmFlaX6dLNXbzoqKCrp27cqOHTtwcHAgICCAtWvXVhlEP3PmDO3a\ntcPCwoL4+HgmTJhAVlaW3mO9Y+2mpaWRmprKxYsX2bRpE4qiYGFhQUlJCdevX9d7YEII86MoCueu\nniOnJIfcktzbjtOXTpN/OZ9yVTkOzRywb2ZP+6btOX/tPE2sm9DXuS/tHmqnOdo2aUvThk116sap\nr6ysrFi+fDlDhgxBpVLxzDPP0K1bN7744gsAZs6cyYYNG/j888+xsrKiSZMmrFu3zjCx3emNY8eO\nsXXrVi5evMjWrVs155s1a8ZXX31lkOCEEKalUqmk4HIBWcVZZBZlklWcRVZxFqcuniL7YjbZF7Ox\nsbLBuYUzzs2dcWruhFNzJ0I7heLY3BGHZg44NHOgRaMWVZLCopRF/H3A3434k5m2YcOGMWzYsCrn\nZs6cqfn62Wef5dlnnzV0WHdOIKNGjWLUqFHExsbSr18/Q8ZU7wwcONDYIZgMqYubTLUuSitKOVl0\nkuMXjnOi6AQni05q/ptVnEXzRs3p1LITLi1d6NSyE/4O/oztPpYOLTrg3NyZZo2aab9INaZaF6J2\nWsdAzp49y1dffUVWVhYVFRXqb7KwYMWKFbUXLGMgQpgsVaWK7IvZpJ9PJ/1cOsfOHyPjQgYZFzI4\nfek0HVp0wM3WDddWrri2cqVzq8642rrSqWUnHmr4kLHDr9fMqe3UOsI0atQoBgwYQFhYGJaW6mkj\nD3J/pBDm5HrFddLPpZN2Lo20wjTSzqVx9NxRjl84Tusmrenauqv6aNOVx7o8hntrdzq26Ih1A2tj\nhy7MgNY7EF9fXw4ePHj3BZtRFhXC3JWpyjh2/hh/nv2TP8/+SUphCilnU8i+mE3nVp3p1rYb3dp0\no3vb7ni08aBL6y40bdjU2GGLGphT26k1gfz973+nb9++PProo3dXsBlVghDmQlEUTl86zaEzhzhy\n5giHzx7myJkjZFzIoGOLjni286RH2x7q/7brgbutu9xNmJma2s7IyEjmzZuHSqVi+vTpLFiwoMbv\nTUhIoG/fvvz444+MGTNG/7FqSyBNmzbl6tWrNGzYEGtr9T/EG4/z1lqwJBAh6qSisoL0c+kkFyRz\nsOAgBwsOcujMIQB82/vi3c4bbztvvOy86NamG42tGxs5YnE/VG87VSoVXbt2rbKYYvV5IDc+FxYW\nRpMmTQgPD2fs2LF6j1XrGMjly5f1HoQQD7pyVTkphSkcOH2A5PxkkgqSOHLmCA7NHPBt74tfez9e\n6vsSPu19sG9qL+OQD5BbF1MENIspVk8gn3zyCePGjSMhIcFgsWlNIJWVlXz//fdkZmby5ptvkp2d\nTUFBAQEBAYaIT4h6R1WpIu1cGgl5CRw4fYAD+Qf48+yfuLR0oZd9L3ra92Si50R82/vSvFFzY4cr\njKymxRTj4uJu+8yWLVvYuXMnCQkJBvsDQ2sCmT17NpaWluzcuZM333yTpk2bMnv2bA4cOGCI+IQw\ne7kluezP3U98XjzxefEk5idi39Qefwd/ejv0ZpLnJPzs/WRQW9RIl2Qwb948li5dqun+MtTwgdYE\nEhcXR3JyMn5+fgDY2tpSXl6uU+G3rvMzcOBAmSwk6r1r5ddIzE9kf+5+zVGmKiPQKZBAx0BeC3oN\nfwd/bBvrd5E7YT6io6OJjo6+4/u6LKaYmJjIpEmTADh37hzbt2/H2tqakSNH6iXmG7QOogcGBhIb\nG4u/vz/JyckUFhYyePDg2xZYvK1gGUQXD4DTl04TmxNLbE4se3P28ufZP+netjt9nfrSx6kPfZz6\n0KllJxmzEDq7l8UUbxUeHs6IESMM8hSW1juQ5557jscff5yzZ8/y2muvsWHDBoPttyuEKVEUhaPn\njrI7ezd7svewJ3sPF0sv0s+5H/2c+vH+I+/T27E3TaybGDtUUY/ospiisWi9AwH1yrw7duwAIDQ0\n9I6Zr0rBcgcizFxFZQWHCg4RcyqGmOwYdp/aTfNGzenfoT/9O/QnqEMQXdt0xdJCNvYU9485tZ06\nJZCioiKys7OpqKjQ3Ir37Nmz9oLNqBKEAHXCSDydSHRWNLtO7WJvzl6cmjsxoMMABnQcQFDHIJya\nO2kvSIg6MKe2U2sCeeONN1i1ahWdO3fWrIUFEBUVVXvBZlQJ4sGkqlSRXJBMVGYUUVlR7M3ZS8cW\nHRnoMpCBLgMJ6hBE24faGjtM8YAxp7ZTawLp0qULf/75Jw0bNry7gs2oEsSDQVEU0s6lsePkDnZm\n7WRX1i7sm9kT4hJCiEsIwS7BtGnSxthhigecObWdWgfRe/ToQVFREXZ2doaIR4j7Kq8kjx2ZO/jj\n5B/8cfIPGjZoSGinUMZ3H8/nj35O+6btjR2iEGZL6x1IQkICo0aNwtPTk0aNGqm/ycKCiIiI2gs2\noywq6o8rZVeIORXDf0/8l99P/k7+pXwGdRpEWOcwHun8CJ1bdZZHaoVJu5fFFLds2cKbb76JpaUl\nlpaWfPDBBwwaNEj/sWpLIN26dWPWrFl4enpW2Q8kODi49oIlgQgDUBSFI2ePEHk8kt9O/EZcXhw9\n7XsyuPNgBrsOpqd9TxpYNjB2mELo7F4WU7xy5QoPPaTe6OvIkSM8/vjjHD9+XO+xau3Catq0KXPn\nztV7IELoquhaEX+c/IPI45FEnojExsqGoa5DmRs4lxCXkHvaUlUIU6XLYoo3kgeoF8Bt08YwY3la\nE0hQUBCvvvoqI0eO1HRhgfbHeIW4X27cZfx67Fe2Hd/GoYJDBHUMYqjrUF4NehU3WzdjhyiE3uiy\nmCLA5s2befXVV8nPz+e3334zSGxaE0hSUhIWFhbs37+/ynltj/EKURdXyq6wI3MHvxz7hW0Z22hk\n1YhH3R/l9aDXCe4YLHtfiAeGrmN2o0ePZvTo0ezevZsnn3yS9PR0PUemQwKpbZEvbWQxRXE3si9m\n8+uxX9l6bCt7svfQ27E3j7k/xt/6/Q13W3cZ/Bb10v1YTPFWQUFBVFRUcP78eVq3bn0/Q72N1kH0\ngoICXn/9dfLy8oiMjCQ1NZV9+/bxzDPP1F6wDKILLRRFISk/iYj0CCKORZBzMYfh7sN5rMtjDHEd\nQgubFsYOUQiDu5fFFE+cOEHnzuonDJOSkhg/fjwnTpzQe6xa70CmTZtGeHg477zzDgDu7u5MmDBB\nawIRoialFaVEZUWx5egWth7bShPrJozqOopPhn1CX6e+8sSUENXospjixo0b+fbbb7G2tqZp06as\nW7fOILFpvQPx9/fnwIED+Pn5aZZw9/X15eDBg7UXLHcg4n9KSkvYnrGdn4/+TOTxSHq068GorqMY\n1XUUXdt0NXZ4QpgUc2o7dXqM9/z585rX+/fvp0UL6VoQtSu8UsiW9C1sStvEnuw9BHUMYnTX0fx7\n6L9l9rcQ9YTWO5DExESee+45UlJS6NGjB4WFhWzYsAEfH5/aCzajLCruj9ySXDalbWJT2iYOFhxk\niNsQxniMYZj7MNnbWwgdmVPbqdNy7uXl5aSnp6MoCh4eHlhbW2sv2IwqQdy7rOIsNqZuZEPaBo6d\nP8aILiMY220sYa5h2FjZGDs8IcyOObWdWhPI8uXLmTJlCq1atQLUe4OsXbuW2bNn116wGVWCuDuZ\nRZn8lPoTP6X+RFZxFo97PM647uMIcQnBuoH2Py6EEHdmTm2n1gTi4+PDoUOHqpyTQfQHT1ZxFj+l\n/MSPqT9yqvgUY7qNYXz38QS7BGNlqXUoTQihI3NqO7XuxVlZWUllZaXmtUqlory8XK9BCdOQV5LH\nv/b9i8CvA+n9VW+OXzjOktAlnH7pNP957D+Edg6V5CGEAURGRuLh4YG7uzvvvffebe9///33+Pj4\n4O3tzcMPP8zhw4cNEpfW3/4hQ4YwadIkZs6ciaIofPHFFwwdOtQQsQkjOHvlLBtSN7Duz3X8efZP\nRnuM5q2BbzGo0yDpnhLCCFQqFXPmzKmyGu/IkSOrTCTs3LkzMTExtGjRgsjISP7617/etvyUPmjt\nwlKpVHz55Zfs2LEDgLCwMKZPn06DBrVP+DKn27AHXUlpCZuPbuaHIz+wP3c/w92HM9lzMoNdB9PI\nqpH2AoQQ9031tnPfvn0sXryYyMhIAJYuXQrAK6+8UuP3FxUV4eXlRW5urt5j1XoH0qBBA2bNmsWs\nWbP0HowwnNKKUrZlbOOHP3/gtxO/MdBlIOG+4WycsJGHGj6kvQAhhEHouhrvDd988w3Dhw83RGja\nE8ixY8d47bXXSE1N5dq1a4A6Q548eVJr4bKYommpVCqJORXD94e/Z9PRTXjbeTPFawpfPvYlrRq3\nMnZ4QjyQtC2meDeLiEZFRbFixQr27t17HyLTTmsCCQ8PZ/Hixbz44otERUWxatUqVCqVToXfmkCE\n8aScTWHN4TX8cOQHWjVuxRSvKRyceRDnFs7av1kIoVfV/7hevHhxlfd1XY338OHDzJgxg8jISM20\nC33TOgbSs2dPkpKS8PLy4siRI1XO1VqwjIEYVcHlAtYeWcuaw2s4e+UsU7ym8Bfvv+Bl52Xs0IQQ\ntbiX1Xizs7MZNGgQ3333HX369DFYrFrvQGxsbFCpVLi5ubF8+XIcHBy4cuWKIWITd+la+TUi0iNY\nfWg1+3L3MarrKD4I+4CBLgNllVshzJQuq/G+9dZbFBUVacaqra2tiY+P13tsWu9A4uPj6datG8XF\nxbzxxhuUlJQwf/58rVlO7kAMQ1EUYnNiWX1oNRtSN+Dv4M9Un6mM9hgtg+FCmCFzajt1Wgvrngo2\no0owRzkXc/j20LesOrQKK0srpvpM5S/ef8Gp+Z13KhNCmD5zajvvmEBGjBhx52+ysCAiIqL2gs2o\nEszFtfJr/Hz0Z1YdXEVifiITuk9gmu80AhwDZLtXIeoJc2o775hAtD1WFhwcXHvBZlQJpkxRFBLz\nE1mRvIL1Kevxd/An3DecUV1H0di6sbHDE0LcZ+bUdurUhVVaWsrRo0extLSka9euNGzYUHvBZlQJ\npujc1XN8f/h7vkn+hstllwn3DWeq71Q6tOhg7NCEEHpkTm2n1sUUf/31V9zc3Jg7dy5z5szB1dWV\nbdu2GSK2B06lUsnvJ35n4oaJuH3sRsLpBJYNXcbxucd5I/gNSR5CPKC0LaZ49OhR+vbti42NDf/8\n5z8NFpfWO5CuXbtqkgjAiRMnGD58OOnp6bUXbEZZ1Njij+by47FVbMz8hhaNWjCj5wye8HpCZocL\n8QCq3naqVCq6du1aZTHF6vNACgsLOXXqFJs3b6ZVq1a89NJLBolV6zyQ5s2ba5IHqFd9bN5ctiet\nq7Iy2LoVvvkGoq9tot+oPDZM2EBP+54yIC6E0IiPj8fNzQ0XFxcAJk2axJYtW6okkLZt29K2bVt+\n/fVXg8amNYH06tWL4cOHM2HCBAB++ukn/P392bRpEwBjxozRb4T1iKJAYiJ8+y2sXQs9esDTT8OG\ncXNp0sTY0QkhTNHdLqZoSFoTyPXr17Gzs2PXrl2AOtNdv36drVu3ArUnEFlMUS0zU50wvvsOSkvh\nySchLg46dzZ2ZEIIY7ufiykamtYEsmrVqnsu/EFeTPH0adiwQZ04jh+H8ePhq6+gXz8w4X8PQggD\nu1+LKRqD1qew5s+fT0lJCeXl5YSGhtKmTRvWrFljiNjMTm4ufPwxDBgAnp7q7qo33lAnk88+g4cf\nluQhhLg7/v7+ZGRkkJWVRVlZGevXr2fkyJE1ftbQDy5pfQrLx8eHQ4cO8fPPP/PLL7/w0UcfERQU\npHXP3QfhKSxFgdRU2LIFNm+Gkyfhscdg7FgYPBgayWZ+Qoi7VFPbuX37dubNm6dZTPHVV1+tsphi\nQUEBvXv3pqSkBEtLS5o1a0ZqaipNmzbVb6zaEkiPHj1ISUnhmWeeYdy4cQwbNkyTVGotuJ4mkOvX\nYdcu+PVX+OUXUKlg5EgYNQqCg8Fatg0XQtSBObWdWsdARowYgYeHBzY2Nnz++eecPXsWGxsbQ8Rm\nEhQFjh6F336D//4X9uwBb28YPhx+/ln9tXRLCSEeRDotZXL+/HlatmxJgwYNuHLlCpcuXaJ9+/a1\nF2xGWfRWigJZWRAdDVFRsGOH+q4iLEzdLRUaCra2xo5SCFFfmVPbeccEsmPHDkJDQ9m4caPmMbIb\nH7WwsNA6/8NcKkGlgpQU2LtXfXexezeUl6u7o0JC1AnD1VXuMoQQhmEubSfU0oUVExNDaGgov/zy\nS43vm+MEQkWBvDw4cADi49VHQgLY2amfkBo0CBYuBHd3SRhCCKHNHRNI8+bN+ec//4mnp6ch47lv\nysshPR2OHIFDh+DgQUhOVicRf3/o3RteeAECA6FNG/3GEh0d/cBOoqxO6uImqYubpC5qFxkZqXkK\na/r06SxYsOC2z8ydO5ft27fTpEkTVq1ahZ+fn97jumMCuXTpEhYWFqSnp5OQkKB57njr1q0EBATo\nPTBdKApcuKCeqJeRoU4YaWnq4+RJ6NABvLzUA93PPgt+fuDoaPi7C/nluEnq4iapi5ukLu5MpVIx\nZ86cKospjhw5sspaWNu2beP48eNkZGQQFxfHrFmz2L9/v95ju2MCuTGLPCgoiKSkJJo1a6Y5P3z4\ncL0HBnDlChQUQH6+uuspNxdycuDUKfVAd2am+nPu7uDmBl26qOdgdOsGHh7wAD0sJoSop3RZTDEi\nIoKpU6cCEBgYSHFxMWfOnMHOzk6vsWl9jPfs2bNY3zK5wdramrNnz+pU+I4dUFkJFRXqLqXSUvVx\n9ar6uHwZLl2CixfVx4UL6uPcOTh7Vv29dnbquwYHB/V/O3SA/v2hUyf1IU9ECSHqM10WU6zpM7m5\nucZPIE899RQBAQGMGTMGRVHYvHmzJtPVxtXVlUceqXtf0alT6sPcVV/f5kEmdXGT1MVNUhdqrq6u\nVV7ruphi9Se3DLEIo9YE8vrrrzN06FB2796NhYWFzoMzx48fvy8BCiHEg0yXxRSrfyY3NxdHR0e9\nx6Y1gYB6T5BevXrpOxYhhBDV3LqYooODA+vXr2ft2rVVPjNy5EiWL1/OpEmT2L9/Py1bttR79xXo\nmECEEEIYh5WVFcuXL2fIkCGaxRS7detWZTHF4cOHs23bNtzc3HjooYdYuXKlQWLTaSkTIYQQojqt\n+4FoExkZiYeHB+7u7rz33ns1fmbu3Lm4u7vj4+NDcnJyXS9psrTVxffff4+Pjw/e3t48/PDDWpfE\nN2e6/LsASEhIwMrKSrNFcn2kS11ER0fj5+eHp6dnvZ4Poa0uzp07x9ChQ/H19cXT07NOG9qZsqef\nfho7Ozu8vLzu+BmzaDeVOqioqFBcXV2VzMxMpaysTPHx8VFSU1OrfObXX39Vhg0bpiiKouzfv18J\nDAysyyVNli51ERsbqxQXFyuKoijbt29/oOvixudCQkKURx99VNmwYYMRItU/XeqiqKhI6d69u5KT\nk6MoiqIUFhYaI1S906UuFi5cqLzyyiuKoqjrwdbWVikvLzdGuHoVExOjJCUlKZ6enjW+by7tZp3u\nQG6d4GJtba2Z4HKrO01wqW90qYu+ffvSokULQF0Xubm5xghV73SpC4BPPvmEcePG0bZtWyNEaRi6\n1MUPP/zA2LFjNU/WtNH32jpGoktd2NvbU1JSAkBJSQmtW7fGyqr+DdUGBQXRqlWrO75vLu1mnRJI\nTZNX8vLytH6mPjacutTFrb755huDzeg3NF3/XWzZsoVZs2YBhnlm3Rh0qYuMjAwuXLhASEgI/v7+\n9XbLaF3qYsaMGaSkpODg4ICPjw/Lli0zdJgmwVzazTqldlOe4GJod/MzRUVFsWLFCvbu3avHiIxH\nl7qYN28eS5cu1SxdXf3fSH2hS12Ul5eTlJTEjh07uHr1Kn379qVPnz64u7sbIELD0aUu3n33XXx9\nfYmOjubEiROEhYVx6NAhzVJKD5IbvxNPP/00MTExTJw4UTO/7uWXX+aXX36hYcOGuLq6snLlSk3v\nhiHV6Q7ElCe4GJoudQFw+PBhZsyYQURERK23sOZMl7pITExk0qRJdOrUiY0bNzJ79mwiIiIMHare\n6VIXzs7ODB48mMaNG9O6dWsGDBigdctoc6RLXcTGxjJ+/HhAPSO7U6dOpKenGzROU3BrXYWHh+Pg\n4FBlSanBgweTkpLCoUOH6NKlC0uWLDFOoHUZQCkvL1c6d+6sZGZmKqWlpVoH0fft22eyg0F1pUtd\nnDp1SnF1dVX27dtnpCgNQ5e6uNW0adOUjRs3GjBCw9GlLtLS0pTQ0FCloqJCuXLliuLp6amkpKQY\nKWL90aUuXnjhBWXRokWKoihKQUGB4ujoqJw/f94Y4epdZmamToPo+/btU3x9fe/42U2bNilTpkzR\nW5y1qVMXlilPcDE0XerirbfeoqioSNPvb21tTXx8vDHD1gtd6uJBoUtdeHh4MHToULy9vbG0tGTG\njBl0797dyJHff7rUxWuvvUZ4eDg+Pj5UVlby/vvvY1sPV0ydPHkyu3bt4ty5czg7O7N48WLKy8uB\nmtvNd955h1dffbXGslasWMHkyZMNGf5N+spMrq6uCiCHHHLIIcddHK6urre1p3e6W/nHP/6hjBkz\nRl/NuFZ1nkh4JydOnNAMjj7ox8KFC40eg6kcUhdSF1IXtR8nTpzQqY1dtWoV27Zt4/vvv9dXM65V\n/XvAWggh6rnIyEg++OADdu3ahY0Rd87T2x2IEEKIups8eTL9+vUjPT0dZ2dnVqxYwXPPPcfly5cJ\nCwvDz8+P2bNnGyU2uQMxgPq8ttHdkrq4SeriJqmLO6u+dDuo54aYAr2txntjgpgQQgjdmVPbKV1Y\nQggh7okkEBNQcvU6V6+ax18cQgjDqmnp9wsXLhAWFkaXLl0YPHgwxcXFRolNEoiRZWVBt78uoe2H\nrQn9NpS//fY3vj/8PamFqagqVcYOTwhhZOHh4URGRlY5t3TpUsLCwjh27BihoaEsXbrUKLHJGIgR\nbd4MM2fCggXwxIwzHDyTTHJ+MkkFSSTnJ1NwuQAvOy96tu9JT3v10aNdDxo2aGjs0IUQelJT25mV\nlcWIESM4cuQIAB4eHuzatQs7OzsKCgoYOHAgR48eNXyskkAMr6wM5s+HLVtg3ToIDKz5cxevX+Rg\nwUGS8pNILkgmMT+RzKJMurXtRi/7XvS070kv+1542XlhY2W8Z8GFEPePLgmkVatWFBUVAaAoCra2\ntprXhqTXx3gXLVqk+XrgwIHyqB6QmQkTJ4KDAyQlQW0L8rawaUGwSzDBLsGac1fLr3Ko4BBJ+UnE\n58Xz+YHPyTifQZfWXehl34teDr3wd/DH285bkooQZiA6Opro6Oh7/n4LCwujbZEhdyAG9PPP6i6r\nV1+FefPgfv0/v15xncNnDpN4OpHE/EQOnD7AsfPH6NqmK73s1QnF38Efr3ZeNLJqdH8uKoTQC127\nsKKjo2nfvj35+fmEhIQYpQtLJhIaQGmpussqIgK2br1zl9W9srGyIcAxgADHAM25G0nlwOkDxOfF\n81nCZxy/cJzubbtrEkpvh950b9sd6wbWtZQuhDA1I0eOZPXq1SxYsIDVq1czevRoo8QhdyB6dvKk\nusvK0RFWrqy9y0rfrpZf5WDBQQ6cPsCB0wdIOJ1AzsUcvO286e3QW51UHHvTpXUXLC3kAT0hjKF6\n23nr0u92dna89dZbjBo1igkTJpCdnY2Liws//vgjLVu2NHyskkD050aX1WuvwfPP378uq/uppLSE\npPwkTUJJyEvg/LXzmjuUAMcAejv0xqm5U73cilgIU2NObafWBPLiiy/yzDPP0KNHj7sr2Iwq4X67\n9Smr9eshIED795iSc1fPabq+Ek4nEJ8Xj6WFpbqbzEHdVebv4E+rxvVzS14hjMmc2k6tCeSrr75i\n1apVlJeX8/TTTzN58mSdNm83p0q4n7Ky1F1W9vbG77K6XxRFIackh/i8eOLz4onLiyMpPwn7pvYE\nOgUS6BhIgGMAPnY+MkgvRB2ZU9upcxfW0aNHWbVqFT/88AP9+/dnxowZhISE3LlgM6qE+yUiAmbM\nUE8MfOEF0+yyul8qKitIK0wjLi9Ok1gyLmTg1c6LQMdATWLp3KqzdH0JcRdqajuXLFnCd999h6Wl\nJV5eXqxcuZJGjYz/x5pOCUSlUrF161ZWrlxJbm4uEyZMYM+ePTRp0oT169fXXPADlEDKy+GVV2DD\nBvXEwL7xw2uQAAAgAElEQVR9jR2RcVwpu0JifiJxuXHE5amP6xXXCXAMoI9jH/o49aG3Y29a2hh+\nsE8Ic1G97czKymLQoEGkpaXRqFEjJk6cyPDhw5k6daoRo1TT+hjvCy+8wNatWxk0aBCvv/46Af/r\n0F+wYAFdu3bVe4CmLjtb3WXVujUkJ4OtrbEjMp6HGj7EgI4DGNBxgObc6Uun2Z+7n7jcOP6x+x8k\n5Sfh3NyZPk59NEePtj1oYNnAiJELYbqaN2+OtbU1V69epUGDBly9ehVHR0djhwXocAeycuVKJkyY\nwEMPPXTbe8XFxXd8dOxBuAP59Vd4+ml46SX429/AUp581aqisoI/z/7Jvpx9xOXFsT93P6cvncbf\nwV+TUPo69aXtQ22NHaoQRlFT2/nll1/y0ksv0bhxY4YMGcKaNWuMFF1VWhPIoEGD2LlzZ5VzoaGh\n7Nixo/aCLSxYuHCh5nV9WsqkvBz+/ndYu1Z9PPywsSMybxeuXSA+L559OfvYl7uP+Lx42jRpQ1/n\nvvRx7EM/53542XlhZSnzXkX9U30pk8WLF1dJICdOnGDEiBHs3r2bFi1aMH78eMaNG8eUKVOMEG1V\nd0wg165d4+rVq4SEhFT54UpKShg6dKjWafP19Q4kLw8mTYKmTWHNGmjTxtgR1T+VSiVphWnsy92n\nSSo5JTn4O/jT16kv/Zz70cepD22aSOWL+qd627l+/Xp+//13vv76awDWrFnD/v37+fTTT40VosYd\n/6T74osvWLZsGadPn6ZXr16a882aNWPOnDkGCc7U/PYbTJ0Kc+eqn7SSLiv9sLSwpEe7HvRo14Pp\nPacDUHStiLi8OGJzYvn3/n8TnxePfTN7+jn30ySV7m27ywx6Ue94eHjw9ttvc+3aNWxsbPjjjz80\nY9HGprUL65NPPuG55567+4Lr0R2ISgWLF8M338APP0BwsPbvEfqlqlSRUphCbE6s5jh39Rx9nNRd\nXv2c+xHoGEizRs2MHaoQd6WmtvP9999n9erVWFpa0rNnT77++musrY2/ht0dE8jOnTsZNGgQGzdu\nrPE5/jFjxtRecD1JIAUF8MQT6jkd338P7dsbOyJxJ2evnGVfzj51QsmNJSk/iS6tu/Cw88P0c+7H\nw84P06FFB5mXIkyaObWdd0wgCxcuZPHixUybNq3GX7iVK1fWXrAZVcKdREXBX/4C06fDm29CA3nS\n1KyUVpSSXJDM3uy9xObGsjd7L1aWVppk8nCHh/Gx85HViIVJMae2UxZTrEFlJSxZAsuXw7ffQliY\nsSMS94OiKJwsOsnenL3szd7L3py9nLp4it4OvXnY+WH6d+hPH6c+tLDRvlSPEPpiTm2n1gTy2muv\nMX/+fM18j6KiIv75z3/yj3/8o/aCzagSbnXuHDz5JFy+rJ5VbiLzdYSeFF0rYl/uPk1COXD6AG62\nbpqE0r9Df5xbOBs7TPEAqantLC4uZvr06aSkpGBhYcGKFSvo06ePkSK8SWsC8fX15eDBg1XO+fn5\nkZycXHvBZphAYmNh8mT1Y7rvvANWMu3ggVOmKiM5P5k92XvYm7OXPdl7aGzdWJ1MnNUJpUe7HvK0\nl9CbmtrOqVOnEhwczNNPP01FRQVXrlzRaVFbfdOaQLy9vYmPj8fGRr2/9rVr1/D39yclJaX2gs0o\ngSgK/Otf8N578PXXMGKEsSMSpkJRFDIuZLA3ey+7s3ezJ3sPhVcL6efcj6AOQfTv0B9/B3/Zf17c\nN9XbzosXL+Ln58fJkyeNGFXNtP6NPWXKFEJDQ3n66adRFIWVK1fy1FNPGSI2gyguVi9HkpsLcXHg\n4mLsiIQpsbCwoEvrLnRp3YVwv3AAzlw+o7k7eeG/L5BWmIafvZ8mofRz7icLRor7JjMzk7Zt2xIe\nHs6hQ4fo1asXy5Yto0mTJsYOTbdB9O3bt2uWLgkLC2PIkCHaCzaDpUySkmD8eBg+HD78EExgdWRh\nhi6VXiIuL47dp3azO3s3CacTcG3lSv8O/QnqEERQxyAcmjkYO0xhorQtZXLgwAH69u1LbGwsvXv3\nZt68eTRv3py33nrLCNFWpVMCKSgoICEhAYDAwEDatWunvWAT7sJSFPjiC3jjDfj0U5gwwdgRifqk\nTFVGUn4Se7L3aLq9Wtq0ZEDHAeqE0iEIN1s3mY8ialS97SwoKKBv375kZmYCsGfPHpYuXcovv/xi\nrBA1tCaQH3/8kZdffpng/02/jomJ4YMPPmD8+PG1F2yiCeTyZfU+5X/+CT/9BF26GDsiUd/dWNtr\nd/ZuYk7FEHMqBpWiIqhDkGb5e892njIwL4Ca284BAwbw9ddf06VLFxYtWsS1a9d47733jBThTToN\nov/xxx+au47CwkJCQ0M5fPhw7QWbYAJJSYFx46BfP/Ucj8aNjR2ReBApikJWcRYxp2I0SaXwaiH9\nO/RnQAd1Qulp31MmOD6gamo7Dx06xPTp0ykrK8PV1ZWVK1eax1NYXl5eHD58WHO7XVlZiY+PD0eO\nHKm9YBNLIGvWwIsvwgcfwLRpxo5GiKoKLhew+9RuTVI5UXSCPk59NAkl0ClQnvR6QJha21kbrQnk\n5Zdf5tChQzzxxBMoisL69evx9vbm/fffr71gE6mE69fVq+fu2qXectbLy9gRCaHdhWsX2Ju9l5hT\nMew6tYvUwlR62vdkQMcBBHcMpq9zX5o2bGrsMIUemErbqQutCURRFDZt2sSePXuwsLAgKCiIxx9/\nXHvBJlAJJ06ou6y6dIGvvoLmzY0ajhD37HLZZfbl7GPXqV3EnIohKT8Jz3aemoTSv0N/WYKlnjCF\ntlNX9XYtrJ9/Vg+Wv/EGzJmjXk1XiPriWvk14vPi2XVqF7tO7SI+Lx53W3eCOwYT7BJMUIcgWjdp\nbewwxT24U9upUqnw9/fHycmJrVu3GiGy290xgTRt2vSOjxlaWFhQUlJSe8FGSiDl5fDKK7BxI/z4\nI5jIvitC6FWZqowDpw+wK0udUGJzYunYsiPBHYMZ6DKQAR0H0O4h7Y/fC+O7U9v50UcfkZiYyKVL\nl4iIiDBCZLerV3cgubkwcSK0aqVeRdfW1qCXF8JkVFRWkJSfpEkoe7L34NDMQXOHEtwxGPtm9sYO\nU9SgprYzNzeXadOm8frrr/PRRx+Z/h3IrXbv3s3x48cJDw+nsLCQy5cv06lTp9oLNnAC+f13eOop\neP55mD9ftpsV4laqShUHCw6y69QuorOi2Z29m3YPtWNgx4EEu6jvUmS2vGmoqe0cP348r732GiUl\nJXz44Ycmk0C0roW1aNEiDhw4wLFjxwgPD6esrIwpU6YQGxurtfBFixZpvtbXUiYqFbz9tnqQfO1a\nMLHVUoQwCQ0sG9DLoRe9HHrxYt8XUVWqOHL2CNFZ0fyU+hPPbX+O1o1bM9BlIANdBhLcMRjH5rKX\ngSFUX8qkul9++YV27drh5+dX6+eMQesdiI+PD8nJyfTq1UuzhLu3t7dJTCQsLIQpU6CsTJ087OWO\nXIh7UqlU8ufZP4nOiiY6K5qYUzG0atyKgR3/l1BcgnFq7mTsMB8I1dvO1157jTVr1mBlZcX169cp\nKSlh7NixfPvtt0aMUk1rAgkICCA+Pl6zB8iVK1fo27ev0RNIbKx6vOMvf1HfgcjeHULcPzcSyq6s\nXUSfimZX1i5a2rTU3KGEuITIHYqe1NZ27tq1y7y6sMaPH8/MmTMpLi7myy+/ZMWKFUyfPt0QsdXo\n1r07vvkGHnvMaKEIUW9ZWljibeeNt503zwU+R6VSScrZFKKyovj56M/Mi5xX5Q4lpFOIjKEYiCkt\nwqn1DuSf//wnbdu25ciRIyiKwpAhQwjTYZNwfdyBXLwI4eGQk6NeCFH27hDCOG4klOisaKKyoog5\nFYNtY1tCXEI0dynylNe9MfYcuruhNYEsWrSIn376iVatWjFx4kQmTJiAnZ2d9oLvcyUcPKjeu2Pw\nYPjoI9m7QwhTcqPLKyozStPl1e6hdprurmCXYNo3bW/sMM1CvUogNxw6dIgff/yRDRs24OTkpNlg\n6o4F36dKUBRYsUI9OfDjj9V7lgshTJuqUsXhM4c1dyi7s3dj39Rek1AGugyk7UNtjR2mSaqXCSQ/\nP58NGzawdu1aLl++bJBB9KtX4dlnIT5evRBit251Kk4IYSQ35qFEZUURnRXNnuw9OLdw1iST4I7B\nsvTK/1RvO3Nycnjqqac4e/YsFhYW/PWvf2Xu3LlGjPAmrQnks88+48cff+Ts2bOMHz+eiRMn0r17\nd+0F1zGBHDumXgjR2xv+8x9oKguPClFv3Jgpf6PLa2/2Xjq36kyISwghnUIY0HHAA7uvfE07EhYU\nFODr68vly5fp1asXmzdvppsJ/EWtNYG8+uqrTJw4EV9f37sruA4JZMMGmD0b3npLvSCiCT10IITQ\ng3JVOQdOHyAqK4qorCj25+6na+uumoQS1CGIZo2aGTtMg9DWdo4ePZrnnnuO0NBQA0ZVM5NaC6us\nDBYsgC1b1E9Z9eqlj8iEEKautKKU+Lx4TUJJyEvAs50nIS4hDOo0iIc7PEwT6ybGDlMvams7s7Ky\nCA4OJiUlhaYm0C2j1wSycOFCzWttS5nk5MCECdCmjXohxFat9BGVEMIcXa+4zr6cfURlRbEzcycH\nCw7iZ++nSSh9nPqY7Y6N1ZcyWbx4cY0J5PLlywwcOJC///3vjB492oAR3plJ3IH8978wdSq88AK8\n/LIshCiEqN2VsivszdlLVGYUO7N2knI2hQDHAE1C6e3Ym4YNGho7zHtSU9tZXl7OY489xrBhw5g3\nb56RIrudURPIrQsh/vADBAfrIxIhRH1XUlrC7lO7NV1eGecz6OfcT5NQ/Oz9sLI0j/WOqrediqIw\ndepUWrduzb/+9S8jRnY7oyWQwkL1OlalpbIQohDi/rpw7QIxp2LYmbmTnZk7yS3JZUDHAQzqNIgQ\nlxC87LywtDDNro7qbeeePXsYMGAA3t7emmVMlixZwtChQ40VooZREsi+feqFEKdMkYUQhRD6d+by\nGc2kxp2ZOym6XkRwx2BNQvFo42Eya0zVy4mEd11wDZWgKLBsGbz7rnohxBEj9HFlIYSoXW5JLlGZ\nUZqEUqoq1XR3hbiE0LlVZ6MlFEkg3F4JJSXwzDNw8qR6noeWDQ2FEMJgMosy2Zm5U5NQrBtYaxLK\noE6DDLoXijklEIN0Ah45Av7+0Lo17N374CUPU9tFzJikLm6SurjJ2HXRqVUnnun5DN+N+Y68F/P4\n71/+S6BjIFuPbcXvCz/cP3Fn5taZrP9zPWcunzF4fJGRkXh4eODu7s57771n8Ovfid4TyOrVMGgQ\nvPmmekkSG/N8VLtOjP3LYUqkLm6SurjJlOrCwsICjzYezOo9i5/G/8SZv51h44SNdGvbjR/+/AGP\nTz3w/MyTudvnsvnoZoquFek1HpVKxZw5c4iMjCQ1NZW1a9eSlpam12vqSq/D1zNmwO7dEB0NPXro\n80pCCKEft26uNa/PPCoqK0jOTyYqK4r/HPgPT/38FF1ad9F0efXv0P++LrsSHx+Pm5sbLv/bAGnS\npEls2bLFJNbC0msCuXQJEhKg2YOxhI0Q4gFgZWlFb8fe9HbszfyH51OmKiMuN46orCjej32f8T+N\nx9vOm0GdBvFyv5dpYdOiTtfLy8vD2dlZ89rJyYm4uLi6/hj3h6Inrq6uCiCHHHLIIcddHK6urlXa\n0g0bNijTp0/XvF6zZo0yZ84cfTXdd0VvdyDHjx/XV9FCCPHAcHR0JCcnR/M6JycHJyfDPRVWG9Oc\niimEEAIAf39/MjIyyMrKoqysjPXr1zNy5EhjhwXoeQxECCFE3VhZWbF8+XKGDBmCSqXimWeeMYkB\ndNDjREIhhBD1W527sHSZ4DJ37lzc3d3x8fEhOTm5rpc0Wdrq4vvvv8fHxwdvb28efvhhrfvKmzNd\nJz4lJCRgZWXFpk2bDBidYelSF9HR0fj5+eHp6VnrvjnmTltdnDt3jqFDh+Lr64unpyerVq0yfJAG\n8PTTT2NnZ4eXl9cdP2MW7WZdRuArKioUV1dXJTMzUykrK1N8fHyU1NTUKp/59ddflWHDhimKoij7\n9+9XAgMD63JJk6VLXcTGxirFxcWKoijK9u3bH+i6uPG5kJAQ5dFHH1U2bNhghEj1T5e6KCoqUrp3\n767k5OQoiqIohYWFxghV73Spi4ULFyqvvPKKoijqerC1tVXKy8uNEa5excTEKElJSYqnp2eN75tL\nu1mnO5BbJ7hYW1trJrjcKiIigqlTpwIQGBhIcXExZ84YfikAfdOlLvr27UuLFupnwgMDA8nNzTVG\nqHqnS10AfPLJJ4wbN462bdsaIUrD0KUufvjhB8aOHat5sqZNmzbGCFXvdKkLe3t7SkpKACgpKaF1\n69ZY1cPluoOCgmhVy7ar5tJu1imB1DTBJS8vT+tn6mPDqUtd3Oqbb75h+PDhhgjN4HT9d7FlyxZm\nzZoFYDJLad9vutRFRkYGFy5cICQkBH9/f9asWWPoMA1Cl7qYMWMGKSkpODg44OPjw7Jlywwdpkkw\nl3azTglE1196pdo4fX1sLO7mZ4qKimLFihUmtSja/aRLXcybN4+lS5dqVh6t/m+kvtClLsrLy0lK\nSmLbtm3897//5e233yYjI8MA0RmWLnXx7rvv4uvry+nTpzl48CDPPvssly5dMkB0pufW34mKigrm\nz59Pt27d6N69O3FxcVy4cIGwsDC6dOnC4MGDKS4u1nx+yZIluLu74+HhwW+//aY5n5iYiJeXF+7u\n7jz//PN1jrFOCUSXCS7VP5Obm4ujo2NdLmuSdJ3sc/jwYWbMmEFEREStt7DmTJe6SExMZNKkSXTq\n1ImNGzcye/ZsIiIiDB2q3ulSF87OzgwePJjGjRvTunVrBgwYwKFDhwwdqt7pUhexsbGMHz8eAFdX\nVzp16kR6erpB4zQF1esqOTmZxx57jLS0NA4fPoyHhwdLly4lLCyMY8eOERoaytKlSwFITU1l/fr1\npKamEhkZyezZszXJaNasWXzzzTdkZGSQkZFBZGRk3QKtywBKeXm50rlzZyUzM1MpLS3VOoi+b98+\nkx0Mqitd6uLUqVOKq6ursm/fPiNFaRi61MWtpk2bpmzcuNGAERqOLnWRlpamhIaGKhUVFcqVK1cU\nT09PJSUlxUgR648udfHCCy8oixYtUhRFUQoKChRHR0fl/PnzxghX7zIzM3UaRP/999+VRo0a3faZ\nrl27KgUFBYqiKEp+fr7StWtXRVEU5d1331WWLl2q+dyQIUOUffv2KadPn1Y8PDw059euXavMnDmz\nTj9DnUan7jTB5YsvvgBg5syZDB8+nG3btuHm5sZDDz3EypUr65bxTJQudfHWW29RVFSk6fe3trYm\nPj7emGHrhS518aDQpS48PDwYOnQo3t7eWFpaMmPGDLp3727kyO8/XeritddeIzw8HB8fHyorK3n/\n/fextbU1cuT33+TJk9m1axfnzp3D2dmZxYsXU15eDtzeblpaWuLm5kZ4eDiHDh2iV69e/Pvf/+bM\nmTPY2dkBYGdnpxlkP336NH369NFc68ZYk7W1dZU7PkdHx1rHaXVSp/RTC1tbWUxRDjnkkONuj+qL\nKSYkJChWVlZKfHy8oiiK8vzzzyt///vflZYtW1b5XKtWrRRFUZQ5c+Yo3333neb8M888o2zYsEE5\ncOCA8sgjj2jOx8TEKI899lid2nm9PR934cIJ/vY3BYBbx0cV5fajsrLmr1Wqm69vfF1Zqf76xusb\nX1dU3Pz61tfl5TfPlZerz1dU3P51eTmUlanLtLa+eTRsePO/dzoaNbr53xvHjdc2NhAbu4hhwxZp\nXtd0uLpCPRwaus2iRYtYtGiRscMwCVIXN0ld3FT9YQMnJyecnJzo3bs3AOPGjWPJkiW0b9+egoIC\n2rdvT35+Pu3atQNqHnd2cnLC0dGxypNc92M8Wq8PWH/wgT5L14/KypsJ5cZRWlr167Kyql+Xlam/\nvvUoK4Pr19VfV1TAmTM337t27eZ7N76eMQOeesrYP70QwtS0b98eZ2dnjh07RpcuXfjjjz/o0aMH\nPXr0YPXq1SxYsIDVq1czevRoAEaOHMkTTzzBiy++SF5eHhkZGQQEBGBhYUHz5s2Ji4sjICCANWvW\nMHfu3DrFVv9m6NSRpeXNu4j7RaUC+eNKCHGvPvnkE6ZMmUJZWRmurq6sXLkSlUrFhAkT+Oabb3Bx\nceHHH38EoHv37kyYMIHu3btjZWXFZ599prmr+eyzz5g2bRrXrl1j+PDhDB06tE5xyXLuBlCf1za6\nW1IXN0ld3CR1UbtRo0ZRWlqKpaUlubm5mhUt7jS3xsLCQvNeTZ+59f260Loab3p6Oh9++CFZWVlU\nVFRoLr5z587aC/7fBDEhhBC6q6nt7NSpE4mJiVWeSJs/fz5t2rRh/vz5vPfeexQVFbF06VJSU1N5\n4oknSEhIIC8vj0ceeYSMjAwsLCwICAhg+fLlBAQEMHz4cObOnVunuxCtXVjjx49n1qxZTJ8+nQYN\nGmh+QCGEEIZTPalERESwa9cuAKZOncrAgQNZunQpW7ZsYfLkyVhbW+Pi4oKbmxtxcXF07NiRS5cu\nERAQAMBTTz3F5s2b9ZtArK2tNfMWhBBCGJ6FhQWPPPIIDRo0YObMmcyYMcMk5oFoTSAjRozg008/\nZcyYMTS6ZWRZl8k9tz6WN3DgQOnnFEKIaqKjo4mOjq71M3v37sXe3p7CwkLCwsLw8PCo8v79GtO4\nW1oTyKpVq7CwsODDDz/UnLOwsODkyZNaC5fnuoUQonbV/7hevHjxbZ+xt7cHoG3btjz++OPEx8dj\nZ2dn9HkgWp/CysrKIjMzs8qhS/IQQghRd1evXtWsSHzlyhV+++03vLy8GDlyJKtXrwa4bR7IunXr\nKCsrIzMzUzMPpH379pp5IIqisGbNGs333CutdyBlZWV8/vnnxMTEYGFhQXBwMP/3f/+HtbV1nS4s\nhBBCuzNnzvD4448D6mXdp0yZwuDBg/H39zf6PBCtCWTWrFlUVFTw7LPParLWrFmz+Prrr+t0YSGE\nENp16tSJgwcPolKp8Pf3JzY2VvOeseeBaO3CSkhIYPXq1QwaNIjQ0FBWrVpVL1eQFUIIU7Zs2TK6\nd++uafhNYT8QrQnEysqK48ePa16fOHGiXu5RLIQQpio3N5dt27Yxffp0TTK4dd/0qVOnsnnzZoA7\nzgPJz8+vcR5IXWjNBB988AGDBg2iU6dOgHpQvb7u6SGEEKbohRde4IMPPqCkpERzzizmgYSGhnLs\n2DHS09OxsLCga9euVeaDCCGE0J9ffvmFdu3a4efnd8f5IiY3D2THjh2EhoaycePGKmuz3OjOGjNm\njNbCZSKhEELUTttEwtjYWCIiIti2bRvXr1+npKSEJ5980iTmgdxxMcWFCxeyePFipk2bVmNm09aN\nJYspCiHE3aut7dy1axcffvghW7duZf78+bRu3ZoFCxawdOlSiouLqyymGB8fr1lM8fjx41hYWBAY\nGMjHH39MQEAAjz76qP4WU7wxG/LNN9+kc+fOVd6TiYRCCGEcN/6gf+WVV4w+D0TrU1jjxo277dz4\n8ePrdFEhhBC6uX79OoGBgfj6+jJr1ix69Oihec/Y80DueAeSlpZGamoqxcXFbNq0CUVRsLCwoKSk\nhOvXr9f5wkIIIbSzsbEhKiqKJk2aUFFRQf/+/dmzZw8RERGEhYVp9gNZunSppgvrxjyQ6vuB3JgH\ncmM/kMjISP10YR07doytW7dy8eJFtm7dqjnfrFkzvvrqq3u+oBBCiLvTpEkTQL20lEqlolWrVqa9\nH8ioUaMYNWoUsbGx9OvX754vIIQQom4qKyvp2bMnJ06c0HRjmcU8ED8/P5YvX05qairXrl3T9Jut\nWLGiThcWQgihG0tLSw4ePMjFixcZMmQIUVFRVd43uXkgNzz55JN069aNyMhIFi5cyHfffUe3bt10\nKlzmgQghRO102VDqhhYtWvDoo4+SmJhoEvNAULTw8fFRFEVRvLy8FEVRlLKyMiUgIEDbtyk6FC2E\nEKKa6m1nYWGhUlRUpCiKoly9elUJCgpS/vjjD+Xll19Wli5dqiiKoixZskRZsGCBoiiKkpKSovj4\n+CilpaXKyZMnlc6dOyuVlZWKoihKQECAsn//fqWyslIZNmyYsn379jrFqvUOpGHDhprMd+TIEdq3\nb09hYWHdspYQQgid5OfnM3XqVCorK6msrOTJJ58kNDQUPz8/o88DueNM9Bu+/vprxowZw5EjR5g2\nbRqXL1/m7bff5v/+7/9qL1hmogshxF0zp7az1omElZWVNGvWDFtbW4KDg8nMzKSwsFBr8hBCCHF/\n5OTkEBISQo8ePfD09OTjjz8G4MKFC4SFhdGlSxcGDx5McXGx5nuWLFmCu7s7Hh4e/Pbbb5rziYmJ\neHl54e7uzvPPP1/n2GpNIJaWlrz//vt1vogQQoh7Y21tzb/+9S9SUlLYv38/n376KWlpaeaxoVRY\nWBgffvghOTk5XLhwQXMIIYTQv/bt2+Pr6wtA06ZN6datG3l5eeaxodS6deuwsLDg008/rXI+MzOz\nThcWQghxd7KyskhOTiYwMNA8JhJmZWXdc+EyD0QIIWqn6zyQy5cvM3bsWJYtW0azZs2qvGeyEwmv\nXLnCRx99RHZ2Nl999RUZGRmkp6fz2GOPaS381gQihBDidtX/uL6xlcatysvLGTt2LE8++SSjR48G\nMImJhFrHQMLDw2nYsCGxsbEAODg48Prrr9fpokIIIXSjKArPPPMM3bt3Z968eZrzI0eOZPXq1QCs\nXr1ak1hGjhzJunXrKCsrIzMzk4yMDAICAmjfvj3NmzcnLi4ORVFYs2aN5nvuldZ5IL169SIxMRE/\nPz+Sk5MB8PHx4dChQ7UXbEbPMgshhKmo3nbu2bOHAQMG4O3tremmWrJkCQEBAUyYMIHs7GzNRMKW\nLTjrECwAABDjSURBVFsC8O6777JixQqsrKxYtmwZQ4YMAdSP8d46kfDGI8H3SmsXVqNGjbh27Zrm\n9YkTJ2jUqFGdLiqEEEI3K1asoG3btqhUKo4cOQKo54BMnDixxuSxZMkSVq5ciZWVFR9//DGDBw8G\nbiaP69ev8+ijj7Js2bI6x6a1C2vRokUMHTqU3NxcnnjiCQYNGsR7771X5wsLIYTQLjw8/Lb5GqYw\nBwR06MICOHfuHPv37wegT58+tGnTRnvB0oUlhBB3raa2MysrixEjRmjuQDw8PNi1a5dmIH3gwIEc\nPXqUJUuWYGlpyYIFCwAYOnQoixYtomPHjgwaNIi0tDRAPT0jOjqa//znP3WK9Y5dWImJiVUeC7O3\ntwcgOzub7OxsevbsWacLCyGEuDemMAcEakkgL730Uq3PFVff0KQmMg9ECCFqdzf7gdTEWHNAoJYE\nUpcf6AaZByKEELXTZR5IdaYwBwR0GES/cuUKb7/9NjNmzAAgIyODX375pc4XFkIIcW9MYQ4IyERC\nIYQwaZMnT6Zfv36kp6fj7OzMypUreeWVV/j999/p0qULO3fu5JVXXgGqbiY1bNiw2zaTmj59Ou7u\n7ri5udV5MymQiYRCCGFSamo7IyMjmTdvHiqViunTp2uesjI2rXcgMpFQCCGMR6VSMWfOHCIjI0lN\nTWXt2rWax3GNTSYSCiGECYuPj8fNzQ0XFxesra2ZNGkSW7ZsMXZYgA5LmQwePJiePXtqJhJ+/PHH\nOk0kFEIIUXd5eXk4OztrXjs5OREXF2fEiG7SmkA2bdrEoEGDNMu3FxcXs3nzZp1G8GUeiBBC1E7b\nPBBjzfHQhdZB9JoGzH19fTl48GDtBcsguhBC3LXqbef+/ftZtGiRZu2q6suVGJPWMZCakoBKpdJL\nMEIIIary9/cnIyODrKwsysrKWL9+PSNHjjR2WIAOCaRXr168+OKLnDhxguPHj/PCCy/Qq1cvQ8Qm\nhBAPPCsrK5YvX86QIUPo3r07EydOpFu3bsYOC9AhgXzyySdYW1szceJEJk2ahI2NDZ9++qkhYhNC\nCAEMGzaM9PR0jh8/zquvvqo5/9NPP9GjRw8aNGhAUlJSle9ZsmQJ7u7ueHh48Ntvv2nOJyYm4uXl\nhbu7O88//7zmfGlpKRMnTsTd3Z0+ffpw6tQp7YEpeqLHooUQot66m7YzLS1NSU9PVwYOHKgkJiZq\nzqekpCg+Pj5KWVmZkpmZqbi6uiqVlZWKoihK7969lbi4OEVRFGXYsGHK9u3bFUVRlE8//VSZNWuW\noiiKsm7dOmXixIlar6/1DuSRRx6huLhY8/rChQua7RGFEEIYj4eHB126dLnt/JYtW5g8eTLW1ta4\nuLjg5uZGXFwc+fn5XLp0iYCAAACeeuopNm/eDEBERARTp04FYOzYsezYsUPr9bUmkHPnzmm2SgSw\ntbXVrD0vhBDC9Jw+fbrK/h839gWpfv7WfUFunW9iZWVFixYtuHDhQq3X0ToPpEGDBpw6dYqOHTsC\n6p2xLC215h0hhBD3QVhYGAUFBbedf/fddxkxYoQRIrpJawJ55513CAoKIjg4GEVRiImJ4csvv9Sp\ncJlIKIQQtdM2kfD333+/6zLvZl+QG3ckjo6OZGdn4+DgQEVFBRcvXsTW1rbW6+i0J/rZs2f58ssv\n8fX15fr167Rr144BAwbUXrBMJBRCiLt2L21nSEgIH374oWaKRWpqKk888QTx8fHk5eXxyCOPcPz4\ncSwsLAgMDOTjjz8mICCARx99lLlz5zJ06FA+++wzjhw5wueff866devYvHkz69atq/3C2kbZv/zy\nS8XT01Np0aKFMnDgQMXGxkYJCQnROjqvQ9Hify6VXlIuXL2gXC27qqgqVcYORwhhRHfTdm7atElx\ncnJSbGxsFDs7O2Xo0KGa99555x3F1dVV6dq1qxIZGak5f+DAAcXT01NxdXVVnnvuOc3569evK+PH\nj1fc3NyUwMBAJTMzU+v1tXZhLVu2jISEBPr27UtUVBRHjx6t8hyyqLt/7fsXH+3/iGvl1yhVldKo\nQSNsrGzu6ajpextZNary/o3X1b++8dlGDRqZ9Po7Qgi12NhYmjZtiq2tLa6urqxcuVLz3q17pdf0\n+1zTXuq3vtalDdDaheXv78+BAwfw9fVl//792NjY0L17d1JTU2svWLqwNKKjo3Ue/6lUKilTlXGt\n/BrXK65XOa5VXKO0orTGc6Wq0v9v7/5Dmur+OIC/792uj9JPs56okH6oUDKdlsyNKBKRzCCKCioI\n7IdEX8J+QF+igiworCBSRKi+jX5QFI8lBaUUkvVQmmaWZFHmY5FBlKnPoNTd3Z3vH+teN3/tbmub\n088rxj0752w7+7Tdj3f3nnv79e+x9aBb6nZ5jNyvb53zc1glKwRecEkozkvn5POH5g+EacJ623/V\nh2nCBuzzT/0/0KfqlT5yP7l9qDqBF6DhNf79zwogTz4XIx3Fopcn68779+8jPT0dPM8rVyXMz89X\nfsKqra1VfsJqamoCx3EwGAwoKiqCwWBAVlaWy09Yr169QnFxMa5fv47S0lK3P2G53QKJjo5GR0cH\nVq5ciYyMDERGRmLWrFmq3hxx8OTLwXO8srUQLIwxWCVrv+TiydIqWdEj9aBL7EJnd6fjvq0HTyue\nonVSK3okRx/5Jj9WlESlzblO7sdxnJJQhroJvNC/TiO4tAm84FInaASXpfyYgdoGW2p57ZBlDadR\n/rKjlWYvioV3MjIylHJqaipu3LgBYPB5IDNnzhxwHkhmZiZu376Nw4cPA3DMA9mxY4fb13ebQEpL\nSwE4jqhasmQJLBbLb7mWLhm+OI5zbDlof/+VJ/Pq8pC3Os+rxzLGIDEJPbYeiHbRJQFZJatLolHq\nfvVzbhusrrunG6JdVOpFu6jcV7u02W39yja7TbkvMQkaTgNBI0D6W0Lh8UJoea2SYOSyJzcNp+kt\n8xpoOafyr3bnstwm13uy5Dm+X5nneKWPXHZuk29yvUvdrz7/dv+LVksreI4HB65fP47jlDbnstzW\ntzwaf4I1m81Yv349AMc8EKPRqLTJ80AEQfB4HshQR2K5TSDO6C8EEkwcxzlWjmEefWyHFTuzQ7JL\nsNltONJ1BHtz97okGNEuKu3yTU2dxCSIkgiJOer6tkl2SVna7DaINlGpk/v37Scx17I8dueyndmV\nPnLZuU2+yX0YWG/dr+dijKGjvgN//e8vpc25n1LHmNLmXJbb5LJMTiTOy75JhkPvPgLnxNO3rDyn\nyjpZ438aMWXMFJ8+M2rmgRw9ehRhYWHYsGGDT6/lKb99E2NiYkblXwGDkTcNCcXCWf7R/GAPYdiw\n3LP81udjv/4F05///dPjx8TExLjcdzcP5MKFC7h7967LqUcCNQ/Ebwnk/fv3/npqQgghAMrLy3Hy\n5Ek8fPgQ4eG9+01XrFiBDRs2YM+ePfj8+TOamppgMBjAcRzGjx+Pp0+fwmAw4PLly8jNzVUec/Hi\nRRiNRpSUlCA9Pd3t66uaSEgIIWT4iYuLg9VqVbYUTCYTiouLATh+4jKbzdBqtSgoKFBOgltXV4fs\n7Gx0dXUhKysLhYWFABync9+4cSPq6+sRFRWFa9euuT1gihIIIYQQr/h8VsTy8nLMnTsXcXFxOH78\n+IB9cnNzERcXB71ej/r6el9fcthyF4srV65Ar9cjMTERCxcuRENDQxBGGRhqPhcAUFtbC61Wi5s3\nbwZwdIGlJhaVlZVITk6GTqcb0QeruItFW1sbMjMzkZSUBJ1OhwsXLgR+kAGwefNmTJ06FQkJCYP2\nCYn1puo58wOw2WwsJiaGtbS0MKvVyvR6PXv9+rVLnzt37rBly5Yxxhirrq5mqampvrzksKUmFk+e\nPGGdnZ2MMcbKyspGdSzkfmlpaWz58uWspKQkCCP1PzWx6OjoYPHx8ezTp0+MMca+ffsWjKH6nZpY\nHDp0iO3bt48x5ojDpEmTmCiKwRiuXz169Ig9f/6c6XS6AdtDZb3p0xZITU0NYmNjMWvWLAiCgHXr\n1uHWrVsufZwvUpKamorOzs4ReT0RNbEwmUyYMGECAEcsnI+GGEnUxAJwXC55zZo1mDLFt8MchzM1\nsbh69SpWr16tHA0zefLkYAzV79TEYtq0abBYHEdjWSwWREVFQasN3cO2B7No0SJERkYO2h4q602f\nEojzxBOgd7KKuz4jccWpJhbOzp8/j6ysrEAMLeDUfi5u3bqF7du3A1B33p1QpCYWTU1NaG9vR1pa\nGlJSUnD58uVADzMg1MQiJycHjY2NmD59OvR6PQoKCgI9zGEhVNabPqV2tV961mc//UhcWXjynh48\neACz2YzHjx/7cUTBoyYWu3btQn5+vnLen76fkZFCTSxEUcTz589RUVGBnz9/wmQywWg0Ii4uLgAj\nDBw1sTh27BiSkpJQWVmJ5uZmZGRk4OXLlxg3blwARji8hMJ606cE0neyyqdPn1ymyQ/Up7W1FTNm\nzPDlZYclNbEAgIaGBuTk5KC8vHzITdhQpiYWdXV1WLduHQDHjtOysjIIgoAVK1YEdKz+piYW0dHR\nmDx5MiIiIhAREYHFixfj5cuXIy6BqInFkydPcODAAQCOCXWzZ8/G27dvkZKSEtCxBlvIrDd92YEi\niiKbM2cOa2lpYT09PW53oldVVQ3bnUG+UhOLjx8/spiYGFZVVRWkUQaGmlg4y87OZjdu3AjgCANH\nTSzevHnD0tPTmc1mYz9+/GA6nY41NjYGacT+oyYWu3fvZnl5eYwxxr58+cJmzJjBvn//Hozh+l1L\nS4uqnejDeb3p0xaIVqtFUVERli5dCkmSsGXLFsybNw9nzpwBAGzbtg1ZWVm4e/cuYmNjMWbMGJfz\n1Y8kamJx5MgRdHR0KL/7C4KAmpqaYA7bL9TEYrRQE4u5c+ciMzMTiYmJ4HkeOTk5iI+PD/LIfz81\nsdi/fz82bdoEvV4Pu92OEydOuD2dRihav349Hj58iLa2NkRHR+Pw4cMQRRFAaK03aSIhIYQQr/g8\nkZAQQsjoRAmEEEKIVyiBEEII8QolEEIIIV6hBEIIIcQrlEAIIYR4hRIIIQA+fPgw5Km1CSH9UQIh\nhBDiFUogJOStWrUKKSkp0Ol0OHfuHABg7NixOHjwIJKSkmAymfD161cAQHNzM4xGIxITE3Hw4MEB\nT9InSRL27t0Lg8EAvV6Ps2fPBvT9EBIqKIGQkGc2m/Hs2TPU1taisLAQ7e3tylltX7x4gcWLFyuJ\nZefOndi9ezcaGhpcTpft7Pz585g4cSJqampQU1ODc+fO4cOHDwF8R4SEBkogJOQVFBQoWxqtra1o\nampCWFgYli9fDgBYsGCBkgCqq6uxdu1aAI7zEQ3k3r17uHTpEpKTk2E0GtHe3o73798H5L0QEkpG\n3qW+yKhSWVmJiooKVFdXIzw8HGlpaeju7oYgCEofnudhs9k8et6ioiJkZGT87uESMqLQFggJaRaL\nBZGRkQgPD8ebN29QXV09ZH+j0YiSkhIAwLVr1wbss3TpUhQXFytJ5927d/j58+fvHTghIwAlEBLS\nMjMzYbPZEB8fj/3798NkMgFwvXobx3HK/dOnT+PUqVNISkpCc3Ozco1658ds3boV8fHxmD9/PhIS\nErB9+3aPt2AIGQ3odO5kVOnq6kJERAQAxxbI9evXUVpaGuRRERKaaB8IGVXq6uqwY8cOMMYQGRkJ\ns9kc7CERErJoC4QQQohXaB8IIYQQr1ACIYQQ4hVKIIQQQrxCCYQQQohXKIEQQgjxCiUQQgghXvk/\n/gqowuH+6dAAAAAASUVORK5CYII=\n", + "text": [ + "<matplotlib.figure.Figure at 0x7f486db25850>" + ] + } + ], + "prompt_number": 4 + }, + { + "cell_type": "heading", + "level": 2, + "metadata": {}, + "source": [ + "Example 7, Page 309" + ] + }, + { + "cell_type": "code", + "collapsed": false, + "input": [ + "import math\n", + "\n", + "#Variable declaration\n", + "N=600#rpm\n", + "BC=3#in\n", + "rmin=1.125#in\n", + "rf=39/8#in\n", + "OP=rf-rmin\n", + "OM1=0.79#in;given\n", + "NZ1=2.66#in\n", + "\n", + "#Calculations\n", + "w=N*math.pi/30\n", + "vb=w*OM1\n", + "Vang=vb/BC\n", + "at=w**2*NZ1\n", + "fBC=at/BC\n", + "OM2=.52#in\n", + "NZ2=3.24#in\n", + "af=w*OM2/BC\n", + "angf=w**2*NZ2/BC\n", + "\n", + "#Results\n", + "print \"When theta = 25 degrees\\nangular velocity = %.1f rad/s\\nangular acceleration = %.f rad/s^2\"\\\n", + " \"\\nWhen theta = 45 degrees\\nangular velocity = %.1f rad/s\\nangular acceleration = %.f rad/s^2\"%(Vang,fBC,af,angf)" + ], + "language": "python", + "metadata": {}, + "outputs": [ + { + "output_type": "stream", + "stream": "stdout", + "text": [ + "When theta = 25 degrees\n", + "angular velocity = 16.5 rad/s\n", + "angular acceleration = 3500 rad/s^2\n", + "When theta = 45 degrees\n", + "angular velocity = 10.9 rad/s\n", + "angular acceleration = 4264 rad/s^2\n" + ] + } + ], + "prompt_number": 3 + } + ], + "metadata": {} + } + ] +}
\ No newline at end of file diff --git a/The_Theory_of_Machines_by_T._Bevan/screenshots/amp_forced_vibr.png b/The_Theory_of_Machines_by_T._Bevan/screenshots/amp_forced_vibr.png Binary files differnew file mode 100644 index 00000000..bbc4c329 --- /dev/null +++ b/The_Theory_of_Machines_by_T._Bevan/screenshots/amp_forced_vibr.png diff --git a/The_Theory_of_Machines_by_T._Bevan/screenshots/couple_sup_shaft_2.png b/The_Theory_of_Machines_by_T._Bevan/screenshots/couple_sup_shaft_2.png Binary files differnew file mode 100644 index 00000000..6d32af0c --- /dev/null +++ b/The_Theory_of_Machines_by_T._Bevan/screenshots/couple_sup_shaft_2.png diff --git a/The_Theory_of_Machines_by_T._Bevan/screenshots/vel,disp,acc.png b/The_Theory_of_Machines_by_T._Bevan/screenshots/vel,disp,acc.png Binary files differnew file mode 100644 index 00000000..0dd4df7f --- /dev/null +++ b/The_Theory_of_Machines_by_T._Bevan/screenshots/vel,disp,acc.png diff --git a/sample_notebooks/PrashantSahu/Chapter-2-Molecular_Diffusion_-_Principles_of_Mass_Transfer_and_Separation_Process_by_Binay_K_Dutta_2.ipynb b/sample_notebooks/PrashantSahu/Chapter-2-Molecular_Diffusion_-_Principles_of_Mass_Transfer_and_Separation_Process_by_Binay_K_Dutta_2.ipynb new file mode 100644 index 00000000..b67d0cbd --- /dev/null +++ b/sample_notebooks/PrashantSahu/Chapter-2-Molecular_Diffusion_-_Principles_of_Mass_Transfer_and_Separation_Process_by_Binay_K_Dutta_2.ipynb @@ -0,0 +1,789 @@ +{ + "cells": [ + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "# Chapter 2 Molecular Diffusion" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "## Example 2.1 pgno:10" + ] + }, + { + "cell_type": "code", + "execution_count": 1, + "metadata": { + "collapsed": false + }, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "Molar average velocity of gas mixture is: 0.0303 m/s\n", + "Mass average velocity of gas mixture is: 0.029 m/s\n" + ] + } + ], + "source": [ + "#Calculation of average velocities\n", + "\n", + "N2 = 0.05 #mole fraction of Nitrogen denoted as 1\n", + "H2 = 0.15 #mole fraction of Hydrogen denoted as 2\n", + "NH3 = 0.76 #mole fraction of Ammonia denoted as 3\n", + "Ar = 0.04 #mole fraction of Argon denoted as 4\n", + "u1 = 0.03\n", + "u2 = 0.035\n", + "u3 = 0.03\n", + "u4 = 0.02\n", + "#Calculating molar average velocity\n", + "U = N2*u1 + H2*u2 + NH3*u3 + Ar*u4\n", + "print 'Molar average velocity of gas mixture is: %.4f m/s'%U\n", + "#Calculating of mass average velocity\n", + "M1 = 28\n", + "M2 = 2\n", + "M3 = 17\n", + "M4 = 40\n", + "M = N2*M1 + H2*M2 + NH3*M3 + Ar*M4\n", + "u = (1/M)*(N2*M1*u1 + H2*M2*u2 + NH3*M3*u3 + Ar*M4*u4)\n", + "print 'Mass average velocity of gas mixture is: %.3f m/s'%u" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "## Example 2.2 pgno:16" + ] + }, + { + "cell_type": "code", + "execution_count": 2, + "metadata": { + "collapsed": false, + "scrolled": false + }, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "(a) Time for complete evaporation is: 15.93 hours\n", + "(b) Time for disappearance of water is: 8.87 hours\n" + ] + } + ], + "source": [ + "#Diffusion of A through non-diffusing B\n", + "\n", + "from math import log\n", + "from math import exp\n", + "import numpy as np\n", + "\n", + "#Calcualtion for (a) part\n", + "#calculating vapor pressure of water at 301K\n", + "pv = exp(13.8573 - (5160.2/301)) #in bar\n", + "#wet-bulb temperature is 22.5 degree centigrade\n", + "#calculating mean air-film temperature\n", + "Tm = ((28+22.5)/2)+273 #in kelvin\n", + "#calculating diffusion coefficient\n", + "Dab = ((0.853*(30.48**2))*((298.2/273)**1.75))/(3600*10000) #in m^2/s\n", + "l = 2.5e-3 #in m\n", + "P = 1.013 #in bar\n", + "R = 0.08317 #Gas constant\n", + "pAo = exp(13.8573 - (5160.2/295.2)) #vapor pressure of water at the wet-bulb temperature, 22.2C\n", + "pAl = 0.6*round(pv,4)\n", + "Na = (((round(Dab,7)*P)/(R*298.2*l))*log((P-pAl)/(P-round(pAo,3))))*18 #in kg/m^2s\n", + "#amount of water per m^2 of floor area is\n", + "thickness = 2e-3\n", + "Amount = thickness*1 #in m^3 \n", + "#density of water is 1000kg/m^3\n", + "#therefore in kg it is\n", + "amount = Amount*1000\n", + "Time_for_completion = amount/Na #in seconds\n", + "Time_for_completion_hours = Time_for_completion/3600\n", + "print '(a) Time for complete evaporation is: %.2f'%Time_for_completion_hours,'hours'\n", + "\n", + "#Calculation for (b) part\n", + "water_loss = 0.1 #in kg/m^2.h\n", + "water_loss_by_evaporation = Na*3600\n", + "total_water_loss = water_loss + water_loss_by_evaporation\n", + "time_for_disappearance = amount/total_water_loss\n", + "print '(b) Time for disappearance of water is: %0.2f'%time_for_disappearance,'hours'\n", + "#Answers may vary due to round off error" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "## Example 2.3 pgno:17" + ] + }, + { + "cell_type": "code", + "execution_count": 3, + "metadata": { + "collapsed": false + }, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "(a) The molar flux of Ammonia is:1.922E-05 gmol/cm^2.s\n", + "(b) and (c)\n", + "Velocity of A is 0.522 cm/s\n", + "Velocity of B is 0.000 cm/s\n", + "Mass average velocity of A is 0.439 cm/s\n", + "Molar average velocity of A is 0.47 cm/s\n", + "(d) Molar flux of NH3 is 3.062E-06 gmol/cm^2.s\n" + ] + }, + { + "data": { + "text/plain": [ + "<matplotlib.text.Text at 0x9bda2b0>" + ] + }, + "execution_count": 3, + "metadata": {}, + "output_type": "execute_result" + }, + { + "data": { + "image/png": "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\n", + "text/plain": [ + "<matplotlib.figure.Figure at 0x3bd4e48>" + ] + }, + "metadata": {}, + "output_type": "display_data" + } + ], + "source": [ + "#Calculation of flux and velocity\n", + "\n", + "%matplotlib inline\n", + "from math import log\n", + "from math import exp\n", + "import numpy as np\n", + "from matplotlib import pyplot as plt\n", + "#calculation for (a) part\n", + "l = 1 #thickness of air in cm\n", + "pAo = 0.9 #in atm\n", + "pAl = 0.1 #in atm\n", + "Dab = 0.214 #in cm^2/s\n", + "T = 298 #in K\n", + "P = 1 #in atm\n", + "R = 82.1 #in (cm^3)(atm)/(K)(gmol)\n", + "#calculating molar flux of ammonia\n", + "Na = ((Dab*P)/(R*T*l))*log((P-pAl)/(P-pAo))\n", + "print '(a) The molar flux of Ammonia is:%0.3E'%Na,'gmol/cm^2.s'\n", + "\n", + "#calculation for (b) and (c) part\n", + "Nb = 0 #air is non-diffusing\n", + "U = (Na/(P/(R*T))) #molar average velocity\n", + "yA = pAo/P\n", + "yB = pAl/P\n", + "uA = U/yA #\n", + "uB = 0 #since Nb=0\n", + "Ma = 17\n", + "Mb = 29\n", + "M = Ma*yA + Mb*yB\n", + "u = uA*yA*Ma/M #since u =(uA*phoA + uB*phoB)/pho\n", + "print '(b) and (c)'\n", + "print 'Velocity of A is %0.3f'%uA,'cm/s'\n", + "print 'Velocity of B is %0.3f'%uB,'cm/s'\n", + "print 'Mass average velocity of A is %0.3f'%u,'cm/s'\n", + "print 'Molar average velocity of A is %0.2f'%U,'cm/s'\n", + "\n", + "#calculation for (d) part\n", + "Ca = pAo/(R*T)\n", + "Ia = Ca*(uA - u) #molar flux of NH3 relative to an observer moving\n", + " #with the mass average velocity \n", + "print '(d) Molar flux of NH3 is %0.3E'%Ia,'gmol/cm^2.s'\n", + "\n", + "z = []\n", + "pa =[]\n", + "for i in np.arange(0,1,0.01):\n", + " z.append(i)\n", + " \n", + "for i in range(0,len(z)):\n", + " pa.append(1-(0.1*exp(2.197*z[i])))\n", + " \n", + "from matplotlib.pyplot import*\n", + "plot(z,pa);\n", + "plt.xlabel('z(cm)');\n", + "plt.ylabel('pA(atm)');\n", + "#Answers may vary due to round off error" + ] + }, + { + "cell_type": "markdown", + "metadata": { + "collapsed": true + }, + "source": [ + "## Example 2.4 pgno:19" + ] + }, + { + "cell_type": "code", + "execution_count": 4, + "metadata": { + "collapsed": false + }, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "(a) Rate of diffusion of oxygen 7.151E-10 kmol/s\n", + "(b) The partial pressure gradient of oxygen at midway in diffusion path is: -4.25 bar/m\n", + "(c)\n", + "Molar average velocity and diffusion velocities at \"midway\"\n", + "Molar average velocity in z-direction is 9.9E-05 m/s\n", + "The diffusion velocity of oxygen 7.9E-04 m/s\n", + "The diffusion velocity of Nitrogen -9.9E-05 m/s\n", + "Molar average velocity and diffusion velocities at \"top of tube\"\n", + "Molar average velocity in z-direction is 9.9E-05 m/s\n", + "The diffusion velocity of oxygen 3.72E-04 m/s\n", + "The diffusion velocity of Nitrogen -9.9E-05 m/s\n", + "Molar average velocity and diffusion velocities at \"bottom of tube\"\n", + "Molar average velocity in z-direction is 9.9E-05 m/s\n", + "The diffusion velocity of oxygen is not infinity\n", + "The diffusion velocity of Nitrogen -9.9E-05 m/s\n", + "(d)\n", + "New molar flux of (A) 4.95E-06 kmol/m^2.s\n", + "New molar flux of (B) 7.19E-06 kmol/m^2.s\n" + ] + }, + { + "data": { + "image/png": "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\nAABJRU5ErkJggg==\n", + "text/plain": [ + "<matplotlib.figure.Figure at 0x3bc1e10>" + ] + }, + "metadata": {}, + "output_type": "display_data" + } + ], + "source": [ + "#Flux, velocity and pressure gradient\n", + "\n", + "#calculation of (a) part\n", + "#given data\n", + "from math import log\n", + "from math import pi\n", + "from math import exp\n", + "import numpy as np\n", + "from matplotlib import pyplot as plt\n", + "T = 298 #in kelvin\n", + "P = 1.013 #in bar\n", + "pAl = 0 #partial pressure of oxygen(A) at liquid surface\n", + "pAo = 0.21*1.013 #partial pressure of oxygen at open mouth\n", + "l = 0.05 #length of diffusion path in m\n", + "Dab = 2.1e-5 #diffusivity in m^2/s\n", + "R = 0.08317 #in m^3.bar.kmol.K\n", + "Na = Dab*P*log((P-pAl)/(P-pAo))/(R*T*l) #in kmol/m^2.s\n", + "area = (pi/4)*(0.015)**2\n", + "rate = area*Na\n", + "print '(a) Rate of diffusion of oxygen %0.3E'%rate,'kmol/s'\n", + "z = []\n", + "pa =[]\n", + "for i in np.arange(0,1,0.01):\n", + " z.append(i)\n", + " \n", + "for i in range(0,len(z)):\n", + " pa.append(P-(P-pAo)*exp((R*T*Na*z[i])/(Dab*P)))\n", + " \n", + "from matplotlib.pyplot import*\n", + "plot(z,pa);\n", + "plt.xlabel('z(cm)');\n", + "plt.ylabel('pA(atm)');\n", + "\n", + "#calculation of (b) part\n", + "z = 0.025 #diffusion path\n", + "pA = 0.113 #in bar\n", + "#we have to find partial pressure gradient of oxygen at mid way of diffusion path\n", + "#let dpA/dz = ppd\n", + "ppd = -(R*T*round(Na,8)*(P-pA))/(Dab*P)\n", + "print '(b) The partial pressure gradient of oxygen at midway in diffusion path is: %0.2f'%ppd,'bar/m'\n", + "\n", + "#calculation of (c) part\n", + "uA = Na*(R*T/pA) #velocity of oxygen\n", + "uB = 0 #since nitrogen is non-diffusing hence Nb = 0\n", + "U = pA*uA/P #since U=1/C*(uA*Ca + uB*Cb)\n", + "vAd = uA - U #diffusion velocity of oxygen\n", + "vBd = uB - U #diffusion velocity of nitrogen\n", + "print '(c)'\n", + "print 'Molar average velocity and diffusion velocities at \"midway\"'\n", + "print 'Molar average velocity in z-direction is %0.1E'%U,'m/s'\n", + "print 'The diffusion velocity of oxygen %0.1E'%vAd,'m/s'\n", + "print 'The diffusion velocity of Nitrogen %0.1E'%vBd,'m/s'\n", + "#at z=0(at top of tube)\n", + "uA = Na*(R*T/pAo)\n", + "uB = 0\n", + "U = pAo*uA/P\n", + "vAd = uA - U\n", + "vBd = uB - U\n", + "print 'Molar average velocity and diffusion velocities at \"top of tube\"'\n", + "print 'Molar average velocity in z-direction is %0.1E'%U,'m/s'\n", + "print 'The diffusion velocity of oxygen %0.2E'%vAd,'m/s'\n", + "print 'The diffusion velocity of Nitrogen %0.1E'%vBd,'m/s'\n", + "#at z=0.05(at bottom of tube)\n", + "#uA = inf\n", + "uB = 0\n", + "U = pAo*uA/P\n", + "vAd = uA - U\n", + "vBd = uB - U\n", + "print 'Molar average velocity and diffusion velocities at \"bottom of tube\"'\n", + "print 'Molar average velocity in z-direction is %0.1E'%U,'m/s'\n", + "print 'The diffusion velocity of oxygen is not infinity'\n", + "print 'The diffusion velocity of Nitrogen %0.1E'%vBd,'m/s'\n", + "\n", + "#calculation of (d) part\n", + "V = -2*U\n", + "pA = 0.113\n", + "Nad = round(Na,8) - V*(pA/(R*T))\n", + "Nbd = 0 - (P - pA)*V/(R*T)\n", + "print '(d)'\n", + "print 'New molar flux of (A) %0.2E'%Nad,'kmol/m^2.s'\n", + "print 'New molar flux of (B) %0.2E'%Nbd,'kmol/m^2.s'\n", + "#Answers may vary due to round off errors" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "## Example 2.5 pgno:21" + ] + }, + { + "cell_type": "code", + "execution_count": 5, + "metadata": { + "collapsed": false + }, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "(a) The air-film thickness is :0.00193 m\n" + ] + } + ], + "source": [ + "#Diffusion with changing bulk concentration\n", + "\n", + "from math import log\n", + "#given data\n", + "area = 3*4 #in m^2\n", + "mperarea = 3.0/12 #in kg/m^2\n", + "#part (a)\n", + "P = 1.013 #in bar\n", + "Dab = 9.95e-6 #in m^2/s\n", + "R = 0.08317 #in m^3.bar./K.kmol\n", + "T = 273+27 #in K\n", + "#let d=1\n", + "d = 1 #in m\n", + "pAo = 0.065 #partial pressure of alcohol on liquid surface\n", + "pAd = 0 #partial pressure over d length of stagnant film of air\n", + "Na = (Dab*P*log((P-pAd)/(P-pAo)))/(R*T*d) #in kmol/m^2.s\n", + "Na = Na*60 #in kg/m^2.s\n", + "flux = mperarea/(5*60) #since the liquid evaporates completely in 5 minutes\n", + "#now we have to find the value of d\n", + "d = Na/flux\n", + "print '(a) The air-film thickness is :%0.5f'%d,'m'" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "## Example 2.6 pgno:24" + ] + }, + { + "cell_type": "code", + "execution_count": 6, + "metadata": { + "collapsed": false + }, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "(a)\n", + "The steady-state flux is: 3.35E-06 kmol/m^2.s\n", + "The rate of transport of N2 from vessel 1 to 2: 6.6E-09 kmol/s\n", + "(b)\n", + "The flux and the rate of transport of oxygen is: -3.35E-06 kmol/m^2.s\n", + "(c)\n", + "Partial pressure at a point 0.05m from vessel 1 is: 1.2 atm\n", + "(d)\n", + "Net or total mass flux: -1.340E-05 kmol/m^2.s\n" + ] + } + ], + "source": [ + "#Equimolar counterdiffusion\n", + "\n", + "from math import pi\n", + "#given data\n", + "#part (a)\n", + "Dab = 0.23e-4*0.5*(293.0/316)**1.75 #in m^2/s\n", + "pA1 = 2*0.8 #in atm\n", + "pA2 = 2*0.2 #in atm\n", + "l = 0.15 #in m\n", + "R = 0.0821 #in m^3.atm./K.kmol\n", + "T = 293 #in K\n", + "Ma = 28\n", + "Mb = 32\n", + "Na = Dab*(pA1-pA2)/(R*T*l) #in kmol/m^2.s\n", + "area = pi/4*(0.05)**2 #in m^2\n", + "rate = area*Na\n", + "print '(a)'\n", + "print 'The steady-state flux is: %0.2E'%Na,'kmol/m^2.s'\n", + "print 'The rate of transport of N2 from vessel 1 to 2: %0.1E'%rate,'kmol/s'\n", + "\n", + "#part (b)\n", + "Nb = -Na\n", + "print '(b)'\n", + "print 'The flux and the rate of transport of oxygen is: %0.2E'%Nb,'kmol/m^2.s'\n", + "\n", + "#part (c)\n", + "#let dpA/dz = ppg\n", + "dz = 0.05 #in m\n", + "ppg = (pA2 - pA1)/l #in atm/m\n", + "pA = pA1 + (ppg)*dz #in atm\n", + "print '(c)'\n", + "print 'Partial pressure at a point 0.05m from vessel 1 is: %0.1f'%pA,'atm'\n", + "\n", + "#part (d)\n", + "nt = Ma*Na + Mb*Nb\n", + "print '(d)'\n", + "print 'Net or total mass flux: %0.3E'%nt,'kmol/m^2.s'\n", + "#Answers may vary due to round off errors" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "## Example 2.7 pgno:25" + ] + }, + { + "cell_type": "code", + "execution_count": 7, + "metadata": { + "collapsed": false + }, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "Methanol flux: 4.64e-05 kmol/m^2.s\n", + "Water flux: -4.06e-05 kmol/m^2.s\n" + ] + } + ], + "source": [ + "#Non-equimolar counterdiffusion in distillation of a binary mixture\n", + "\n", + "from math import log\n", + "#given data\n", + "Ha = 274.6*32 #molar latent heat of methanol(a)\n", + "Hb = 557.7*18 #molar latent heat of water(b)\n", + "yAl = 0.76 #mole fraction of methanol in the vapour\n", + "yAo = 0.825 #mole fraction of methanol in the vapour at the liquid-vapour interface\n", + "P = 1 #in atm\n", + "l = 1e-3 #in m\n", + "T =344.2 #in K\n", + "R = 0.0821 #m^3.atm./K.kmol\n", + "Dab = 1.816e-5 #in m^2/s\n", + "Na = Dab*P*log((1-0.1247*yAl)/(1-0.1247*yAo))/(0.1247*R*T*l)\n", + "print 'Methanol flux: %0.2e'%Na,'kmol/m^2.s'\n", + "Nb = -(Ha/Hb)*Na\n", + "print 'Water flux: %0.2e'%Nb,'kmol/m^2.s'\n", + "#Answers may vary due to round off errors" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "## Example 2.8 pgno:27" + ] + }, + { + "cell_type": "code", + "execution_count": 8, + "metadata": { + "collapsed": false + }, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "Value of pA1 is 0.937 atm\n" + ] + } + ], + "source": [ + "#Equimolar counterdiffusion in an interconnected system\n", + "\n", + "#given values\n", + "from math import exp\n", + "V1 = 3000 #in cm^3\n", + "V2 = 4000 #in cm^3\n", + "Dab = 0.23 #in cm^2/s\n", + "Dba = 0.23 #in cm^2/s\n", + "l1 = 4 #in cm\n", + "d1 = 0.5 #in cm\n", + "l2 = 2 #in cm\n", + "d2 = 0.3 #in cm\n", + "pA3 = 1 #in atm\n", + "#unknowns\n", + "# pA1 and pA2\n", + "# dpA1bydt = (Dab/V1*l1)*((pA1)-(pA2))*((math.pi*(d1**2))/4)\n", + "#on integrating using Laplace trandformation\n", + "# initial conditions\n", + "t=18000 #in seconds\n", + "pA1 = 1-0.57*(exp((-1.005)*(10**(-6))*t)-exp((-7.615)*(10**(-6))*t))\n", + "print 'Value of pA1 is %0.3f'%pA1,'atm'" + ] + }, + { + "cell_type": "markdown", + "metadata": { + "collapsed": true + }, + "source": [ + "## Example 2.10 pgno:34" + ] + }, + { + "cell_type": "code", + "execution_count": 9, + "metadata": { + "collapsed": false + }, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "Value of flux of water vapour: 2.96E-05 kmol/m^2.s\n" + ] + } + ], + "source": [ + "#Diffusion of only one component in a three-component mixture\n", + "\n", + "#given values\n", + "from math import log\n", + "y1l = 0 #mol fraction of dry air\n", + "y10 = (17.53/760) #mol fraction of water\n", + "l = 1.5 #in mm\n", + "C = 0.0409 #in kmol/m^3 : calculated by P/RT\n", + "D12 = 0.923 #Diffusivity of hydrogen over water\n", + "D13 = 0.267 #Diffusivity of oxygen over water\n", + "y2 = 0.6 #mole fraction of hydrogen\n", + "y3 = 0.4 #mole fraction of oxygen\n", + "D1m = 1/((y2/D12)+(y3/D13)) #calculating mean diffusivity\n", + "Ni = (D1m*C*1000/(l*10000))*log((1-y1l)/(1-y10))\n", + "print 'Value of flux of water vapour: %0.2E'%Ni,'kmol/m^2.s'" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "## Example 2.11 pgno:35" + ] + }, + { + "cell_type": "code", + "execution_count": 10, + "metadata": { + "collapsed": false + }, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "Flux of ethane 4.804E-05 gmol/cm^2.s\n" + ] + } + ], + "source": [ + "#Multicomponent diffusion\n", + "\n", + "from math import log\n", + "#given data\n", + "y1 = 0.4 #mole fraction of ethane(1)\n", + "y2 = 0.3 #mole fraction of ethylene(2)\n", + "y3 = 0.3 #mole fraction of hydrogen(3)\n", + "#calculating D13\n", + "#The Lennard-Jones parameters are\n", + "sigma1 = 4.443 #in angstrom\n", + "sigma2 = 4.163 #in angstrom\n", + "sigma3 = 2.827 #in angstrom\n", + "e1byk = 215.7\n", + "e2byk = 224.7\n", + "e3byk = 59.7\n", + "sigma13 = (sigma1 + sigma3)/2 #in angstrom\n", + "e13byk = (e1byk*e3byk)**0.5\n", + "kTbye13 = 993/113.5\n", + "ohmD13 = 0.76 #from collision integral table\n", + "D13 = ((0.001858)*(993**1.5)*((1.0/30)+(1.0/2))**0.5)/((2)*(sigma13**2)*(ohmD13))\n", + "#calculating D23\n", + "sigma23 = (sigma2+sigma3)/2\n", + "kTbye23 = ((993/224.7)*(993/59.7))*0.5\n", + "ohmD23 = 0.762\n", + "D23 = (0.001858*(993**1.5)*((1.0/28)+(1.0/2))**0.5)/(2*(sigma23**2)*ohmD23)\n", + "D = (D13+D23)/2 #in cm^2/s\n", + "l = 0.15 #in cm\n", + "#at z=0 (bulk gas)\n", + "y10 = 0.6\n", + "y20 = 0.2\n", + "y30 = 0.2\n", + "#at z=l (catalyst surface)\n", + "y1l = 0.4\n", + "y2l = 0.3\n", + "y3l = 0.3\n", + "C = 2.0/(82.1*993) #calculated by P/RT\n", + "N1 = (D*C/l)*log((y10+y20)/(y1l+y2l))\n", + "print 'Flux of ethane %0.3E'%N1,'gmol/cm^2.s'" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "## Example 2.12 pgno:43" + ] + }, + { + "cell_type": "code", + "execution_count": 11, + "metadata": { + "collapsed": false + }, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "The liquid-film thickness is: 0.0004 m\n" + ] + } + ], + "source": [ + "#Liquid-phase diffusion\n", + "\n", + "#given data\n", + "from math import pi\n", + "rc = 5e-4 #in m\n", + "D = 7e-10 #in m^2/s\n", + "Cab = 1 #in kmol/m^3\n", + "Na = 3.15e-6 #in kmol/m^2.s\n", + "W = 4*pi*(rc**2)*Na #the rate of reaction\n", + "#let (rc+delta)/delta = 1\n", + "w1 = 4*pi*D*Cab*rc*1 #flux of the reactant to the surface of the catalyst\n", + "rcplusdelta = W/w1\n", + "delta = rc/(rcplusdelta-1) #stagnant liquid-film thickness \n", + "print 'The liquid-film thickness is: ',delta,'m'" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "## Example 2.13 pgno:46" + ] + }, + { + "cell_type": "code", + "execution_count": 12, + "metadata": { + "collapsed": false + }, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "Tortuosity factor is: 2.5\n" + ] + } + ], + "source": [ + "#Diffusivity determination--diaphragm cell\n", + "\n", + "#given data\n", + "from math import log\n", + "from math import pi\n", + "V1 = 60.2 #in cm^3; volume of compartment 1\n", + "V2 = 59.3 #volume of compartment 2 in cm^3\n", + "Ca1i = 0.3 #initial concentration of KCl in compartment 1\n", + "Ca2i = 0 #initial concentration of KCl in compartment 2\n", + "Ca1f = 0.215 #final concentration of KCl in compartment 1\n", + "Ca2f = 0.0863 #final concentration of KCl in compartment 2\n", + "D = 1.51e-5 #diffusivity of KCl in cm^2/s\n", + "tf = 55.2*3600 #time of the experiment in s\n", + "#calcutaling cell constant\n", + "beta = (1/(D*tf))*log((Ca1i - Ca2i)/(Ca1f - Ca2f))\n", + "#diffusion of propionic acid\n", + "Cpa1i = 0.4 #initial concentration of propionic acid in compartment 1\n", + "Cpa2i = 0 #initial concentration of propionic acid in compartment 2\n", + "Cpa1f = 0.32 #final concentration of propionic acid in compartment 1\n", + "Cpa2f = 0.0812 #final concentration of propionic acid in compartment 2 by mass balance\n", + "tfp = 56.4*3600 #time for the experiment\n", + "Dp = (1/(beta*tfp))*log((Cpa1i-Cpa2i)/(Cpa1f-Cpa2f)) #diffusivity of the propionic acid\n", + "#calculating tortusity factor\n", + "A= (pi/4)*(3.5**2) #area of the diaphragm\n", + "epsilon = 0.39 #average porosity of the diaphragm\n", + "l = 0.18 #thickness of hte diaphragm\n", + "tou = (A*epsilon/(beta*l))*(1/V1 + 1/V2)\n", + "print 'Tortuosity factor is: ',round(tou,1)" + ] + } + ], + "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.10" + } + }, + "nbformat": 4, + "nbformat_minor": 0 +} |