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 /The_Theory_of_Machines_by_T._Bevan | |
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
Diffstat (limited to 'The_Theory_of_Machines_by_T._Bevan')
17 files changed, 4722 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": "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\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 |