summaryrefslogtreecommitdiff
path: root/The_Theory_of_Machines_by_T._Bevan
diff options
context:
space:
mode:
authorTrupti Kini2016-01-26 23:30:11 +0600
committerTrupti Kini2016-01-26 23:30:11 +0600
commit0c755162b4449d3eac5cbfcc12d320b4be545b6b (patch)
treec8bcb43e4d340be2c5f73dd50cbadcaec503a3e4 /The_Theory_of_Machines_by_T._Bevan
parente72db949abd5bf2bc47e860845dd94f3ed8137ae (diff)
downloadPython-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')
-rw-r--r--The_Theory_of_Machines_by_T._Bevan/ch10.ipynb303
-rw-r--r--The_Theory_of_Machines_by_T._Bevan/ch11.ipynb363
-rw-r--r--The_Theory_of_Machines_by_T._Bevan/ch12.ipynb535
-rw-r--r--The_Theory_of_Machines_by_T._Bevan/ch13.ipynb462
-rw-r--r--The_Theory_of_Machines_by_T._Bevan/ch14.ipynb263
-rw-r--r--The_Theory_of_Machines_by_T._Bevan/ch15.ipynb544
-rw-r--r--The_Theory_of_Machines_by_T._Bevan/ch2.ipynb743
-rw-r--r--The_Theory_of_Machines_by_T._Bevan/ch3.ipynb390
-rw-r--r--The_Theory_of_Machines_by_T._Bevan/ch4.ipynb77
-rw-r--r--The_Theory_of_Machines_by_T._Bevan/ch5.ipynb77
-rw-r--r--The_Theory_of_Machines_by_T._Bevan/ch6.ipynb325
-rw-r--r--The_Theory_of_Machines_by_T._Bevan/ch7.ipynb134
-rw-r--r--The_Theory_of_Machines_by_T._Bevan/ch8.ipynb356
-rw-r--r--The_Theory_of_Machines_by_T._Bevan/ch9.ipynb150
-rw-r--r--The_Theory_of_Machines_by_T._Bevan/screenshots/amp_forced_vibr.pngbin0 -> 61806 bytes
-rw-r--r--The_Theory_of_Machines_by_T._Bevan/screenshots/couple_sup_shaft_2.pngbin0 -> 38762 bytes
-rw-r--r--The_Theory_of_Machines_by_T._Bevan/screenshots/vel,disp,acc.pngbin0 -> 19599 bytes
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": "iVBORw0KGgoAAAANSUhEUgAAAZAAAAEPCAYAAABsj5JaAAAABHNCSVQICAgIfAhkiAAAAAlwSFlz\nAAALEgAACxIB0t1+/AAAIABJREFUeJzs3XlYVdX6wPEvCIrmiAMyKQooKqMiqImIhFM55GzeUkqv\nP83M6qYNt9S6pQ23ey2r2+SQlVpqiqXcSkFUFBBwCBBRQQZBUUEcGQ7798e5HgWRcxTPhO/nefYT\nZ5/D2i8rWS97rb3WslAURUEIIYS4S5bGDkAIIYR5kgQihBDinkgCEUIIcU8kgQghhLgnkkCEEELc\nE0kgQggh7okkECGEMHGRkZF4eHjg7u7Oe++9d9v70dHRtGjRAj8/P/z8/PjHP/5hkLisDHIVIYQQ\n90SlUjFnzhz++OMPHB0d6d27NyNHjqRbt25VPhccHExERIRBY5M7ECGEMGHx8fG4ubnh4uKCtbU1\nkyZNYsuWLbd9zhhzwiWBCCGECcvLy8PZ2Vnz2snJiby8vCqfsbCwIDY2Fh8fH4YPH05qaqpBYpMu\nLCGEMGEWFhZaP9OzZ09ycnJo0qQJ27dvZ/To0Rw7dkzvsWlNICdPnqRz585az1Xn5ubGiRMn6had\nEEI8YFxdXTl+/LjmtaOjIzk5OZrXOTk5ODk5VfmeZs2aab4eNmwYs2fP5sKFC9ja2uo1Vgttiyn6\n+fmRnJxc5VyvXr1ITEysvWALC6P0yZmiRYsWsWjRImOHYRKkLm56kOvictll8i/lc/rSaQouF7Dq\n36vwm+zHmctnOHPlDGevnKXwaiFnr5xFVami7UNtadOkDa0bt6Z1k9a0adwG28a22Da2paVNS1o1\nbkUrm1a0tGlJC5sWtGjUgmaNmmFlaX6dLNXbzoqKCrp27cqOHTtwcHAgICCAtWvXVhlEP3PmDO3a\ntcPCwoL4+HgmTJhAVlaW3mO9Y+2mpaWRmprKxYsX2bRpE4qiYGFhQUlJCdevX9d7YEII86MoCueu\nniOnJIfcktzbjtOXTpN/OZ9yVTkOzRywb2ZP+6btOX/tPE2sm9DXuS/tHmqnOdo2aUvThk116sap\nr6ysrFi+fDlDhgxBpVLxzDPP0K1bN7744gsAZs6cyYYNG/j888+xsrKiSZMmrFu3zjCx3emNY8eO\nsXXrVi5evMjWrVs155s1a8ZXX31lkOCEEKalUqmk4HIBWcVZZBZlklWcRVZxFqcuniL7YjbZF7Ox\nsbLBuYUzzs2dcWruhFNzJ0I7heLY3BGHZg44NHOgRaMWVZLCopRF/H3A3434k5m2YcOGMWzYsCrn\nZs6cqfn62Wef5dlnnzV0WHdOIKNGjWLUqFHExsbSr18/Q8ZU7wwcONDYIZgMqYubTLUuSitKOVl0\nkuMXjnOi6AQni05q/ptVnEXzRs3p1LITLi1d6NSyE/4O/oztPpYOLTrg3NyZZo2aab9INaZaF6J2\nWsdAzp49y1dffUVWVhYVFRXqb7KwYMWKFbUXLGMgQpgsVaWK7IvZpJ9PJ/1cOsfOHyPjQgYZFzI4\nfek0HVp0wM3WDddWrri2cqVzq8642rrSqWUnHmr4kLHDr9fMqe3UOsI0atQoBgwYQFhYGJaW6mkj\nD3J/pBDm5HrFddLPpZN2Lo20wjTSzqVx9NxRjl84Tusmrenauqv6aNOVx7o8hntrdzq26Ih1A2tj\nhy7MgNY7EF9fXw4ePHj3BZtRFhXC3JWpyjh2/hh/nv2TP8/+SUphCilnU8i+mE3nVp3p1rYb3dp0\no3vb7ni08aBL6y40bdjU2GGLGphT26k1gfz973+nb9++PProo3dXsBlVghDmQlEUTl86zaEzhzhy\n5giHzx7myJkjZFzIoGOLjni286RH2x7q/7brgbutu9xNmJma2s7IyEjmzZuHSqVi+vTpLFiwoMbv\nTUhIoG/fvvz444+MGTNG/7FqSyBNmzbl6tWrNGzYEGtr9T/EG4/z1lqwJBAh6qSisoL0c+kkFyRz\nsOAgBwsOcujMIQB82/vi3c4bbztvvOy86NamG42tGxs5YnE/VG87VSoVXbt2rbKYYvV5IDc+FxYW\nRpMmTQgPD2fs2LF6j1XrGMjly5f1HoQQD7pyVTkphSkcOH2A5PxkkgqSOHLmCA7NHPBt74tfez9e\n6vsSPu19sG9qL+OQD5BbF1MENIspVk8gn3zyCePGjSMhIcFgsWlNIJWVlXz//fdkZmby5ptvkp2d\nTUFBAQEBAYaIT4h6R1WpIu1cGgl5CRw4fYAD+Qf48+yfuLR0oZd9L3ra92Si50R82/vSvFFzY4cr\njKymxRTj4uJu+8yWLVvYuXMnCQkJBvsDQ2sCmT17NpaWluzcuZM333yTpk2bMnv2bA4cOGCI+IQw\ne7kluezP3U98XjzxefEk5idi39Qefwd/ejv0ZpLnJPzs/WRQW9RIl2Qwb948li5dqun+MtTwgdYE\nEhcXR3JyMn5+fgDY2tpSXl6uU+G3rvMzcOBAmSwk6r1r5ddIzE9kf+5+zVGmKiPQKZBAx0BeC3oN\nfwd/bBvrd5E7YT6io6OJjo6+4/u6LKaYmJjIpEmTADh37hzbt2/H2tqakSNH6iXmG7QOogcGBhIb\nG4u/vz/JyckUFhYyePDg2xZYvK1gGUQXD4DTl04TmxNLbE4se3P28ufZP+netjt9nfrSx6kPfZz6\n0KllJxmzEDq7l8UUbxUeHs6IESMM8hSW1juQ5557jscff5yzZ8/y2muvsWHDBoPttyuEKVEUhaPn\njrI7ezd7svewJ3sPF0sv0s+5H/2c+vH+I+/T27E3TaybGDtUUY/ospiisWi9AwH1yrw7duwAIDQ0\n9I6Zr0rBcgcizFxFZQWHCg4RcyqGmOwYdp/aTfNGzenfoT/9O/QnqEMQXdt0xdJCNvYU9485tZ06\nJZCioiKys7OpqKjQ3Ir37Nmz9oLNqBKEAHXCSDydSHRWNLtO7WJvzl6cmjsxoMMABnQcQFDHIJya\nO2kvSIg6MKe2U2sCeeONN1i1ahWdO3fWrIUFEBUVVXvBZlQJ4sGkqlSRXJBMVGYUUVlR7M3ZS8cW\nHRnoMpCBLgMJ6hBE24faGjtM8YAxp7ZTawLp0qULf/75Jw0bNry7gs2oEsSDQVEU0s6lsePkDnZm\n7WRX1i7sm9kT4hJCiEsIwS7BtGnSxthhigecObWdWgfRe/ToQVFREXZ2doaIR4j7Kq8kjx2ZO/jj\n5B/8cfIPGjZoSGinUMZ3H8/nj35O+6btjR2iEGZL6x1IQkICo0aNwtPTk0aNGqm/ycKCiIiI2gs2\noywq6o8rZVeIORXDf0/8l99P/k7+pXwGdRpEWOcwHun8CJ1bdZZHaoVJu5fFFLds2cKbb76JpaUl\nlpaWfPDBBwwaNEj/sWpLIN26dWPWrFl4enpW2Q8kODi49oIlgQgDUBSFI2ePEHk8kt9O/EZcXhw9\n7XsyuPNgBrsOpqd9TxpYNjB2mELo7F4WU7xy5QoPPaTe6OvIkSM8/vjjHD9+XO+xau3Catq0KXPn\nztV7IELoquhaEX+c/IPI45FEnojExsqGoa5DmRs4lxCXkHvaUlUIU6XLYoo3kgeoF8Bt08YwY3la\nE0hQUBCvvvoqI0eO1HRhgfbHeIW4X27cZfx67Fe2Hd/GoYJDBHUMYqjrUF4NehU3WzdjhyiE3uiy\nmCLA5s2befXVV8nPz+e3334zSGxaE0hSUhIWFhbs37+/ynltj/EKURdXyq6wI3MHvxz7hW0Z22hk\n1YhH3R/l9aDXCe4YLHtfiAeGrmN2o0ePZvTo0ezevZsnn3yS9PR0PUemQwKpbZEvbWQxRXE3si9m\n8+uxX9l6bCt7svfQ27E3j7k/xt/6/Q13W3cZ/Bb10v1YTPFWQUFBVFRUcP78eVq3bn0/Q72N1kH0\ngoICXn/9dfLy8oiMjCQ1NZV9+/bxzDPP1F6wDKILLRRFISk/iYj0CCKORZBzMYfh7sN5rMtjDHEd\nQgubFsYOUQiDu5fFFE+cOEHnzuonDJOSkhg/fjwnTpzQe6xa70CmTZtGeHg477zzDgDu7u5MmDBB\nawIRoialFaVEZUWx5egWth7bShPrJozqOopPhn1CX6e+8sSUENXospjixo0b+fbbb7G2tqZp06as\nW7fOILFpvQPx9/fnwIED+Pn5aZZw9/X15eDBg7UXLHcg4n9KSkvYnrGdn4/+TOTxSHq068GorqMY\n1XUUXdt0NXZ4QpgUc2o7dXqM9/z585rX+/fvp0UL6VoQtSu8UsiW9C1sStvEnuw9BHUMYnTX0fx7\n6L9l9rcQ9YTWO5DExESee+45UlJS6NGjB4WFhWzYsAEfH5/aCzajLCruj9ySXDalbWJT2iYOFhxk\niNsQxniMYZj7MNnbWwgdmVPbqdNy7uXl5aSnp6MoCh4eHlhbW2sv2IwqQdy7rOIsNqZuZEPaBo6d\nP8aILiMY220sYa5h2FjZGDs8IcyOObWdWhPI8uXLmTJlCq1atQLUe4OsXbuW2bNn116wGVWCuDuZ\nRZn8lPoTP6X+RFZxFo97PM647uMIcQnBuoH2Py6EEHdmTm2n1gTi4+PDoUOHqpyTQfQHT1ZxFj+l\n/MSPqT9yqvgUY7qNYXz38QS7BGNlqXUoTQihI3NqO7XuxVlZWUllZaXmtUqlory8XK9BCdOQV5LH\nv/b9i8CvA+n9VW+OXzjOktAlnH7pNP957D+Edg6V5CGEAURGRuLh4YG7uzvvvffebe9///33+Pj4\n4O3tzcMPP8zhw4cNEpfW3/4hQ4YwadIkZs6ciaIofPHFFwwdOtQQsQkjOHvlLBtSN7Duz3X8efZP\nRnuM5q2BbzGo0yDpnhLCCFQqFXPmzKmyGu/IkSOrTCTs3LkzMTExtGjRgsjISP7617/etvyUPmjt\nwlKpVHz55Zfs2LEDgLCwMKZPn06DBrVP+DKn27AHXUlpCZuPbuaHIz+wP3c/w92HM9lzMoNdB9PI\nqpH2AoQQ9031tnPfvn0sXryYyMhIAJYuXQrAK6+8UuP3FxUV4eXlRW5urt5j1XoH0qBBA2bNmsWs\nWbP0HowwnNKKUrZlbOOHP3/gtxO/MdBlIOG+4WycsJGHGj6kvQAhhEHouhrvDd988w3Dhw83RGja\nE8ixY8d47bXXSE1N5dq1a4A6Q548eVJr4bKYommpVCqJORXD94e/Z9PRTXjbeTPFawpfPvYlrRq3\nMnZ4QjyQtC2meDeLiEZFRbFixQr27t17HyLTTmsCCQ8PZ/Hixbz44otERUWxatUqVCqVToXfmkCE\n8aScTWHN4TX8cOQHWjVuxRSvKRyceRDnFs7av1kIoVfV/7hevHhxlfd1XY338OHDzJgxg8jISM20\nC33TOgbSs2dPkpKS8PLy4siRI1XO1VqwjIEYVcHlAtYeWcuaw2s4e+UsU7ym8Bfvv+Bl52Xs0IQQ\ntbiX1Xizs7MZNGgQ3333HX369DFYrFrvQGxsbFCpVLi5ubF8+XIcHBy4cuWKIWITd+la+TUi0iNY\nfWg1+3L3MarrKD4I+4CBLgNllVshzJQuq/G+9dZbFBUVacaqra2tiY+P13tsWu9A4uPj6datG8XF\nxbzxxhuUlJQwf/58rVlO7kAMQ1EUYnNiWX1oNRtSN+Dv4M9Un6mM9hgtg+FCmCFzajt1Wgvrngo2\no0owRzkXc/j20LesOrQKK0srpvpM5S/ef8Gp+Z13KhNCmD5zajvvmEBGjBhx52+ysCAiIqL2gs2o\nEszFtfJr/Hz0Z1YdXEVifiITuk9gmu80AhwDZLtXIeoJc2o775hAtD1WFhwcXHvBZlQJpkxRFBLz\nE1mRvIL1Kevxd/An3DecUV1H0di6sbHDE0LcZ+bUdurUhVVaWsrRo0extLSka9euNGzYUHvBZlQJ\npujc1XN8f/h7vkn+hstllwn3DWeq71Q6tOhg7NCEEHpkTm2n1sUUf/31V9zc3Jg7dy5z5szB1dWV\nbdu2GSK2B06lUsnvJ35n4oaJuH3sRsLpBJYNXcbxucd5I/gNSR5CPKC0LaZ49OhR+vbti42NDf/8\n5z8NFpfWO5CuXbtqkgjAiRMnGD58OOnp6bUXbEZZ1Njij+by47FVbMz8hhaNWjCj5wye8HpCZocL\n8QCq3naqVCq6du1aZTHF6vNACgsLOXXqFJs3b6ZVq1a89NJLBolV6zyQ5s2ba5IHqFd9bN5ctiet\nq7Iy2LoVvvkGoq9tot+oPDZM2EBP+54yIC6E0IiPj8fNzQ0XFxcAJk2axJYtW6okkLZt29K2bVt+\n/fVXg8amNYH06tWL4cOHM2HCBAB++ukn/P392bRpEwBjxozRb4T1iKJAYiJ8+y2sXQs9esDTT8OG\ncXNp0sTY0QkhTNHdLqZoSFoTyPXr17Gzs2PXrl2AOtNdv36drVu3ArUnEFlMUS0zU50wvvsOSkvh\nySchLg46dzZ2ZEIIY7ufiykamtYEsmrVqnsu/EFeTPH0adiwQZ04jh+H8ePhq6+gXz8w4X8PQggD\nu1+LKRqD1qew5s+fT0lJCeXl5YSGhtKmTRvWrFljiNjMTm4ufPwxDBgAnp7q7qo33lAnk88+g4cf\nluQhhLg7/v7+ZGRkkJWVRVlZGevXr2fkyJE1ftbQDy5pfQrLx8eHQ4cO8fPPP/PLL7/w0UcfERQU\npHXP3QfhKSxFgdRU2LIFNm+Gkyfhscdg7FgYPBgayWZ+Qoi7VFPbuX37dubNm6dZTPHVV1+tsphi\nQUEBvXv3pqSkBEtLS5o1a0ZqaipNmzbVb6zaEkiPHj1ISUnhmWeeYdy4cQwbNkyTVGotuJ4mkOvX\nYdcu+PVX+OUXUKlg5EgYNQqCg8Fatg0XQtSBObWdWsdARowYgYeHBzY2Nnz++eecPXsWGxsbQ8Rm\nEhQFjh6F336D//4X9uwBb28YPhx+/ln9tXRLCSEeRDotZXL+/HlatmxJgwYNuHLlCpcuXaJ9+/a1\nF2xGWfRWigJZWRAdDVFRsGOH+q4iLEzdLRUaCra2xo5SCFFfmVPbeccEsmPHDkJDQ9m4caPmMbIb\nH7WwsNA6/8NcKkGlgpQU2LtXfXexezeUl6u7o0JC1AnD1VXuMoQQhmEubSfU0oUVExNDaGgov/zy\nS43vm+MEQkWBvDw4cADi49VHQgLY2amfkBo0CBYuBHd3SRhCCKHNHRNI8+bN+ec//4mnp6ch47lv\nysshPR2OHIFDh+DgQUhOVicRf3/o3RteeAECA6FNG/3GEh0d/cBOoqxO6uImqYubpC5qFxkZqXkK\na/r06SxYsOC2z8ydO5ft27fTpEkTVq1ahZ+fn97jumMCuXTpEhYWFqSnp5OQkKB57njr1q0EBATo\nPTBdKApcuKCeqJeRoU4YaWnq4+RJ6NABvLzUA93PPgt+fuDoaPi7C/nluEnq4iapi5ukLu5MpVIx\nZ86cKospjhw5sspaWNu2beP48eNkZGQQFxfHrFmz2L9/v95ju2MCuTGLPCgoiKSkJJo1a6Y5P3z4\ncL0HBnDlChQUQH6+uuspNxdycuDUKfVAd2am+nPu7uDmBl26qOdgdOsGHh7wAD0sJoSop3RZTDEi\nIoKpU6cCEBgYSHFxMWfOnMHOzk6vsWl9jPfs2bNY3zK5wdramrNnz+pU+I4dUFkJFRXqLqXSUvVx\n9ar6uHwZLl2CixfVx4UL6uPcOTh7Vv29dnbquwYHB/V/O3SA/v2hUyf1IU9ECSHqM10WU6zpM7m5\nucZPIE899RQBAQGMGTMGRVHYvHmzJtPVxtXVlUceqXtf0alT6sPcVV/f5kEmdXGT1MVNUhdqrq6u\nVV7ruphi9Se3DLEIo9YE8vrrrzN06FB2796NhYWFzoMzx48fvy8BCiHEg0yXxRSrfyY3NxdHR0e9\nx6Y1gYB6T5BevXrpOxYhhBDV3LqYooODA+vXr2ft2rVVPjNy5EiWL1/OpEmT2L9/Py1bttR79xXo\nmECEEEIYh5WVFcuXL2fIkCGaxRS7detWZTHF4cOHs23bNtzc3HjooYdYuXKlQWLTaSkTIYQQojqt\n+4FoExkZiYeHB+7u7rz33ns1fmbu3Lm4u7vj4+NDcnJyXS9psrTVxffff4+Pjw/e3t48/PDDWpfE\nN2e6/LsASEhIwMrKSrNFcn2kS11ER0fj5+eHp6dnvZ4Poa0uzp07x9ChQ/H19cXT07NOG9qZsqef\nfho7Ozu8vLzu+BmzaDeVOqioqFBcXV2VzMxMpaysTPHx8VFSU1OrfObXX39Vhg0bpiiKouzfv18J\nDAysyyVNli51ERsbqxQXFyuKoijbt29/oOvixudCQkKURx99VNmwYYMRItU/XeqiqKhI6d69u5KT\nk6MoiqIUFhYaI1S906UuFi5cqLzyyiuKoqjrwdbWVikvLzdGuHoVExOjJCUlKZ6enjW+by7tZp3u\nQG6d4GJtba2Z4HKrO01wqW90qYu+ffvSokULQF0Xubm5xghV73SpC4BPPvmEcePG0bZtWyNEaRi6\n1MUPP/zA2LFjNU/WtNH32jpGoktd2NvbU1JSAkBJSQmtW7fGyqr+DdUGBQXRqlWrO75vLu1mnRJI\nTZNX8vLytH6mPjacutTFrb755huDzeg3NF3/XWzZsoVZs2YBhnlm3Rh0qYuMjAwuXLhASEgI/v7+\n9XbLaF3qYsaMGaSkpODg4ICPjw/Lli0zdJgmwVzazTqldlOe4GJod/MzRUVFsWLFCvbu3avHiIxH\nl7qYN28eS5cu1SxdXf3fSH2hS12Ul5eTlJTEjh07uHr1Kn379qVPnz64u7sbIELD0aUu3n33XXx9\nfYmOjubEiROEhYVx6NAhzVJKD5IbvxNPP/00MTExTJw4UTO/7uWXX+aXX36hYcOGuLq6snLlSk3v\nhiHV6Q7ElCe4GJoudQFw+PBhZsyYQURERK23sOZMl7pITExk0qRJdOrUiY0bNzJ79mwiIiIMHare\n6VIXzs7ODB48mMaNG9O6dWsGDBigdctoc6RLXcTGxjJ+/HhAPSO7U6dOpKenGzROU3BrXYWHh+Pg\n4FBlSanBgweTkpLCoUOH6NKlC0uWLDFOoHUZQCkvL1c6d+6sZGZmKqWlpVoH0fft22eyg0F1pUtd\nnDp1SnF1dVX27dtnpCgNQ5e6uNW0adOUjRs3GjBCw9GlLtLS0pTQ0FCloqJCuXLliuLp6amkpKQY\nKWL90aUuXnjhBWXRokWKoihKQUGB4ujoqJw/f94Y4epdZmamToPo+/btU3x9fe/42U2bNilTpkzR\nW5y1qVMXlilPcDE0XerirbfeoqioSNPvb21tTXx8vDHD1gtd6uJBoUtdeHh4MHToULy9vbG0tGTG\njBl0797dyJHff7rUxWuvvUZ4eDg+Pj5UVlby/vvvY1sPV0ydPHkyu3bt4ty5czg7O7N48WLKy8uB\nmtvNd955h1dffbXGslasWMHkyZMNGf5N+spMrq6uCiCHHHLIIcddHK6urre1p3e6W/nHP/6hjBkz\nRl/NuFZ1nkh4JydOnNAMjj7ox8KFC40eg6kcUhdSF1IXtR8nTpzQqY1dtWoV27Zt4/vvv9dXM65V\n/XvAWggh6rnIyEg++OADdu3ahY0Rd87T2x2IEEKIups8eTL9+vUjPT0dZ2dnVqxYwXPPPcfly5cJ\nCwvDz8+P2bNnGyU2uQMxgPq8ttHdkrq4SeriJqmLO6u+dDuo54aYAr2txntjgpgQQgjdmVPbKV1Y\nQggh7okkEBNQcvU6V6+ax18cQgjDqmnp9wsXLhAWFkaXLl0YPHgwxcXFRolNEoiRZWVBt78uoe2H\nrQn9NpS//fY3vj/8PamFqagqVcYOTwhhZOHh4URGRlY5t3TpUsLCwjh27BihoaEsXbrUKLHJGIgR\nbd4MM2fCggXwxIwzHDyTTHJ+MkkFSSTnJ1NwuQAvOy96tu9JT3v10aNdDxo2aGjs0IUQelJT25mV\nlcWIESM4cuQIAB4eHuzatQs7OzsKCgoYOHAgR48eNXyskkAMr6wM5s+HLVtg3ToIDKz5cxevX+Rg\nwUGS8pNILkgmMT+RzKJMurXtRi/7XvS070kv+1542XlhY2W8Z8GFEPePLgmkVatWFBUVAaAoCra2\ntprXhqTXx3gXLVqk+XrgwIHyqB6QmQkTJ4KDAyQlQW0L8rawaUGwSzDBLsGac1fLr3Ko4BBJ+UnE\n58Xz+YHPyTifQZfWXehl34teDr3wd/DH285bkooQZiA6Opro6Oh7/n4LCwujbZEhdyAG9PPP6i6r\nV1+FefPgfv0/v15xncNnDpN4OpHE/EQOnD7AsfPH6NqmK73s1QnF38Efr3ZeNLJqdH8uKoTQC127\nsKKjo2nfvj35+fmEhIQYpQtLJhIaQGmpussqIgK2br1zl9W9srGyIcAxgADHAM25G0nlwOkDxOfF\n81nCZxy/cJzubbtrEkpvh950b9sd6wbWtZQuhDA1I0eOZPXq1SxYsIDVq1czevRoo8QhdyB6dvKk\nusvK0RFWrqy9y0rfrpZf5WDBQQ6cPsCB0wdIOJ1AzsUcvO286e3QW51UHHvTpXUXLC3kAT0hjKF6\n23nr0u92dna89dZbjBo1igkTJpCdnY2Liws//vgjLVu2NHyskkD050aX1WuvwfPP378uq/uppLSE\npPwkTUJJyEvg/LXzmjuUAMcAejv0xqm5U73cilgIU2NObafWBPLiiy/yzDPP0KNHj7sr2Iwq4X67\n9Smr9eshIED795iSc1fPabq+Ek4nEJ8Xj6WFpbqbzEHdVebv4E+rxvVzS14hjMmc2k6tCeSrr75i\n1apVlJeX8/TTTzN58mSdNm83p0q4n7Ky1F1W9vbG77K6XxRFIackh/i8eOLz4onLiyMpPwn7pvYE\nOgUS6BhIgGMAPnY+MkgvRB2ZU9upcxfW0aNHWbVqFT/88AP9+/dnxowZhISE3LlgM6qE+yUiAmbM\nUE8MfOEF0+yyul8qKitIK0wjLi9Ok1gyLmTg1c6LQMdATWLp3KqzdH0JcRdqajuXLFnCd999h6Wl\nJV5eXqxcuZJGjYz/x5pOCUSlUrF161ZWrlxJbm4uEyZMYM+ePTRp0oT169fXXPADlEDKy+GVV2DD\nBvXEwL7xw2uQAAAgAElEQVR9jR2RcVwpu0JifiJxuXHE5amP6xXXCXAMoI9jH/o49aG3Y29a2hh+\nsE8Ic1G97czKymLQoEGkpaXRqFEjJk6cyPDhw5k6daoRo1TT+hjvCy+8wNatWxk0aBCvv/46Af/r\n0F+wYAFdu3bVe4CmLjtb3WXVujUkJ4OtrbEjMp6HGj7EgI4DGNBxgObc6Uun2Z+7n7jcOP6x+x8k\n5Sfh3NyZPk59NEePtj1oYNnAiJELYbqaN2+OtbU1V69epUGDBly9ehVHR0djhwXocAeycuVKJkyY\nwEMPPXTbe8XFxXd8dOxBuAP59Vd4+ml46SX429/AUp581aqisoI/z/7Jvpx9xOXFsT93P6cvncbf\nwV+TUPo69aXtQ22NHaoQRlFT2/nll1/y0ksv0bhxY4YMGcKaNWuMFF1VWhPIoEGD2LlzZ5VzoaGh\n7Nixo/aCLSxYuHCh5nV9WsqkvBz+/ndYu1Z9PPywsSMybxeuXSA+L559OfvYl7uP+Lx42jRpQ1/n\nvvRx7EM/53542XlhZSnzXkX9U30pk8WLF1dJICdOnGDEiBHs3r2bFi1aMH78eMaNG8eUKVOMEG1V\nd0wg165d4+rVq4SEhFT54UpKShg6dKjWafP19Q4kLw8mTYKmTWHNGmjTxtgR1T+VSiVphWnsy92n\nSSo5JTn4O/jT16kv/Zz70cepD22aSOWL+qd627l+/Xp+//13vv76awDWrFnD/v37+fTTT40VosYd\n/6T74osvWLZsGadPn6ZXr16a882aNWPOnDkGCc7U/PYbTJ0Kc+eqn7SSLiv9sLSwpEe7HvRo14Pp\nPacDUHStiLi8OGJzYvn3/n8TnxePfTN7+jn30ySV7m27ywx6Ue94eHjw9ttvc+3aNWxsbPjjjz80\nY9HGprUL65NPPuG55567+4Lr0R2ISgWLF8M338APP0BwsPbvEfqlqlSRUphCbE6s5jh39Rx9nNRd\nXv2c+xHoGEizRs2MHaoQd6WmtvP9999n9erVWFpa0rNnT77++musrY2/ht0dE8jOnTsZNGgQGzdu\nrPE5/jFjxtRecD1JIAUF8MQT6jkd338P7dsbOyJxJ2evnGVfzj51QsmNJSk/iS6tu/Cw88P0c+7H\nw84P06FFB5mXIkyaObWdd0wgCxcuZPHixUybNq3GX7iVK1fWXrAZVcKdREXBX/4C06fDm29CA3nS\n1KyUVpSSXJDM3uy9xObGsjd7L1aWVppk8nCHh/Gx85HViIVJMae2UxZTrEFlJSxZAsuXw7ffQliY\nsSMS94OiKJwsOsnenL3szd7L3py9nLp4it4OvXnY+WH6d+hPH6c+tLDRvlSPEPpiTm2n1gTy2muv\nMX/+fM18j6KiIv75z3/yj3/8o/aCzagSbnXuHDz5JFy+rJ5VbiLzdYSeFF0rYl/uPk1COXD6AG62\nbpqE0r9Df5xbOBs7TPEAqantLC4uZvr06aSkpGBhYcGKFSvo06ePkSK8SWsC8fX15eDBg1XO+fn5\nkZycXHvBZphAYmNh8mT1Y7rvvANWMu3ggVOmKiM5P5k92XvYm7OXPdl7aGzdWJ1MnNUJpUe7HvK0\nl9CbmtrOqVOnEhwczNNPP01FRQVXrlzRaVFbfdOaQLy9vYmPj8fGRr2/9rVr1/D39yclJaX2gs0o\ngSgK/Otf8N578PXXMGKEsSMSpkJRFDIuZLA3ey+7s3ezJ3sPhVcL6efcj6AOQfTv0B9/B3/Zf17c\nN9XbzosXL+Ln58fJkyeNGFXNtP6NPWXKFEJDQ3n66adRFIWVK1fy1FNPGSI2gyguVi9HkpsLcXHg\n4mLsiIQpsbCwoEvrLnRp3YVwv3AAzlw+o7k7eeG/L5BWmIafvZ8mofRz7icLRor7JjMzk7Zt2xIe\nHs6hQ4fo1asXy5Yto0mTJsYOTbdB9O3bt2uWLgkLC2PIkCHaCzaDpUySkmD8eBg+HD78EExgdWRh\nhi6VXiIuL47dp3azO3s3CacTcG3lSv8O/QnqEERQxyAcmjkYO0xhorQtZXLgwAH69u1LbGwsvXv3\nZt68eTRv3py33nrLCNFWpVMCKSgoICEhAYDAwEDatWunvWAT7sJSFPjiC3jjDfj0U5gwwdgRifqk\nTFVGUn4Se7L3aLq9Wtq0ZEDHAeqE0iEIN1s3mY8ialS97SwoKKBv375kZmYCsGfPHpYuXcovv/xi\nrBA1tCaQH3/8kZdffpng/02/jomJ4YMPPmD8+PG1F2yiCeTyZfU+5X/+CT/9BF26GDsiUd/dWNtr\nd/ZuYk7FEHMqBpWiIqhDkGb5e892njIwL4Ca284BAwbw9ddf06VLFxYtWsS1a9d47733jBThTToN\nov/xxx+au47CwkJCQ0M5fPhw7QWbYAJJSYFx46BfP/Ucj8aNjR2ReBApikJWcRYxp2I0SaXwaiH9\nO/RnQAd1Qulp31MmOD6gamo7Dx06xPTp0ykrK8PV1ZWVK1eax1NYXl5eHD58WHO7XVlZiY+PD0eO\nHKm9YBNLIGvWwIsvwgcfwLRpxo5GiKoKLhew+9RuTVI5UXSCPk59NAkl0ClQnvR6QJha21kbrQnk\n5Zdf5tChQzzxxBMoisL69evx9vbm/fffr71gE6mE69fVq+fu2qXectbLy9gRCaHdhWsX2Ju9l5hT\nMew6tYvUwlR62vdkQMcBBHcMpq9zX5o2bGrsMIUemErbqQutCURRFDZt2sSePXuwsLAgKCiIxx9/\nXHvBJlAJJ06ou6y6dIGvvoLmzY0ajhD37HLZZfbl7GPXqV3EnIohKT8Jz3aemoTSv0N/WYKlnjCF\ntlNX9XYtrJ9/Vg+Wv/EGzJmjXk1XiPriWvk14vPi2XVqF7tO7SI+Lx53W3eCOwYT7BJMUIcgWjdp\nbewwxT24U9upUqnw9/fHycmJrVu3GiGy290xgTRt2vSOjxlaWFhQUlJSe8FGSiDl5fDKK7BxI/z4\nI5jIvitC6FWZqowDpw+wK0udUGJzYunYsiPBHYMZ6DKQAR0H0O4h7Y/fC+O7U9v50UcfkZiYyKVL\nl4iIiDBCZLerV3cgubkwcSK0aqVeRdfW1qCXF8JkVFRWkJSfpEkoe7L34NDMQXOHEtwxGPtm9sYO\nU9SgprYzNzeXadOm8frrr/PRRx+Z/h3IrXbv3s3x48cJDw+nsLCQy5cv06lTp9oLNnAC+f13eOop\neP55mD9ftpsV4laqShUHCw6y69QuorOi2Z29m3YPtWNgx4EEu6jvUmS2vGmoqe0cP348r732GiUl\nJXz44Ycmk0C0roW1aNEiDhw4wLFjxwgPD6esrIwpU6YQGxurtfBFixZpvtbXUiYqFbz9tnqQfO1a\nMLHVUoQwCQ0sG9DLoRe9HHrxYt8XUVWqOHL2CNFZ0fyU+hPPbX+O1o1bM9BlIANdBhLcMRjH5rKX\ngSFUX8qkul9++YV27drh5+dX6+eMQesdiI+PD8nJyfTq1UuzhLu3t7dJTCQsLIQpU6CsTJ087OWO\nXIh7UqlU8ufZP4nOiiY6K5qYUzG0atyKgR3/l1BcgnFq7mTsMB8I1dvO1157jTVr1mBlZcX169cp\nKSlh7NixfPvtt0aMUk1rAgkICCA+Pl6zB8iVK1fo27ev0RNIbKx6vOMvf1HfgcjeHULcPzcSyq6s\nXUSfimZX1i5a2rTU3KGEuITIHYqe1NZ27tq1y7y6sMaPH8/MmTMpLi7myy+/ZMWKFUyfPt0QsdXo\n1r07vvkGHnvMaKEIUW9ZWljibeeNt503zwU+R6VSScrZFKKyovj56M/Mi5xX5Q4lpFOIjKEYiCkt\nwqn1DuSf//wnbdu25ciRIyiKwpAhQwjTYZNwfdyBXLwI4eGQk6NeCFH27hDCOG4klOisaKKyoog5\nFYNtY1tCXEI0dynylNe9MfYcuruhNYEsWrSIn376iVatWjFx4kQmTJiAnZ2d9oLvcyUcPKjeu2Pw\nYPjoI9m7QwhTcqPLKyozStPl1e6hdprurmCXYNo3bW/sMM1CvUogNxw6dIgff/yRDRs24OTkpNlg\n6o4F36dKUBRYsUI9OfDjj9V7lgshTJuqUsXhM4c1dyi7s3dj39Rek1AGugyk7UNtjR2mSaqXCSQ/\nP58NGzawdu1aLl++bJBB9KtX4dlnIT5evRBit251Kk4IYSQ35qFEZUURnRXNnuw9OLdw1iST4I7B\nsvTK/1RvO3Nycnjqqac4e/YsFhYW/PWvf2Xu3LlGjPAmrQnks88+48cff+Ts2bOMHz+eiRMn0r17\nd+0F1zGBHDumXgjR2xv+8x9oKguPClFv3Jgpf6PLa2/2Xjq36kyISwghnUIY0HHAA7uvfE07EhYU\nFODr68vly5fp1asXmzdvppsJ/EWtNYG8+uqrTJw4EV9f37sruA4JZMMGmD0b3npLvSCiCT10IITQ\ng3JVOQdOHyAqK4qorCj25+6na+uumoQS1CGIZo2aGTtMg9DWdo4ePZrnnnuO0NBQA0ZVM5NaC6us\nDBYsgC1b1E9Z9eqlj8iEEKautKKU+Lx4TUJJyEvAs50nIS4hDOo0iIc7PEwT6ybGDlMvams7s7Ky\nCA4OJiUlhaYm0C2j1wSycOFCzWttS5nk5MCECdCmjXohxFat9BGVEMIcXa+4zr6cfURlRbEzcycH\nCw7iZ++nSSh9nPqY7Y6N1ZcyWbx4cY0J5PLlywwcOJC///3vjB492oAR3plJ3IH8978wdSq88AK8\n/LIshCiEqN2VsivszdlLVGYUO7N2knI2hQDHAE1C6e3Ym4YNGho7zHtSU9tZXl7OY489xrBhw5g3\nb56RIrudURPIrQsh/vADBAfrIxIhRH1XUlrC7lO7NV1eGecz6OfcT5NQ/Oz9sLI0j/WOqrediqIw\ndepUWrduzb/+9S8jRnY7oyWQwkL1OlalpbIQohDi/rpw7QIxp2LYmbmTnZk7yS3JZUDHAQzqNIgQ\nlxC87LywtDDNro7qbeeePXsYMGAA3t7emmVMlixZwtChQ40VooZREsi+feqFEKdMkYUQhRD6d+by\nGc2kxp2ZOym6XkRwx2BNQvFo42Eya0zVy4mEd11wDZWgKLBsGbz7rnohxBEj9HFlIYSoXW5JLlGZ\nUZqEUqoq1XR3hbiE0LlVZ6MlFEkg3F4JJSXwzDNw8qR6noeWDQ2FEMJgMosy2Zm5U5NQrBtYaxLK\noE6DDLoXijklEIN0Ah45Av7+0Lo17N374CUPU9tFzJikLm6SurjJ2HXRqVUnnun5DN+N+Y68F/P4\n71/+S6BjIFuPbcXvCz/cP3Fn5taZrP9zPWcunzF4fJGRkXh4eODu7s57771n8Ovfid4TyOrVMGgQ\nvPmmekkSG/N8VLtOjP3LYUqkLm6SurjJlOrCwsICjzYezOo9i5/G/8SZv51h44SNdGvbjR/+/AGP\nTz3w/MyTudvnsvnoZoquFek1HpVKxZw5c4iMjCQ1NZW1a9eSlpam12vqSq/D1zNmwO7dEB0NPXro\n80pCCKEft26uNa/PPCoqK0jOTyYqK4r/HPgPT/38FF1ad9F0efXv0P++LrsSHx+Pm5sbLv/bAGnS\npEls2bLFJNbC0msCuXQJEhKg2YOxhI0Q4gFgZWlFb8fe9HbszfyH51OmKiMuN46orCjej32f8T+N\nx9vOm0GdBvFyv5dpYdOiTtfLy8vD2dlZ89rJyYm4uLi6/hj3h6Inrq6uCiCHHHLIIcddHK6urlXa\n0g0bNijTp0/XvF6zZo0yZ84cfTXdd0VvdyDHjx/XV9FCCPHAcHR0JCcnR/M6JycHJyfDPRVWG9Oc\niimEEAIAf39/MjIyyMrKoqysjPXr1zNy5EhjhwXoeQxECCFE3VhZWbF8+XKGDBmCSqXimWeeMYkB\ndNDjREIhhBD1W527sHSZ4DJ37lzc3d3x8fEhOTm5rpc0Wdrq4vvvv8fHxwdvb28efvhhrfvKmzNd\nJz4lJCRgZWXFpk2bDBidYelSF9HR0fj5+eHp6VnrvjnmTltdnDt3jqFDh+Lr64unpyerVq0yfJAG\n8PTTT2NnZ4eXl9cdP2MW7WZdRuArKioUV1dXJTMzUykrK1N8fHyU1NTUKp/59ddflWHDhimKoij7\n9+9XAgMD63JJk6VLXcTGxirFxcWKoijK9u3bH+i6uPG5kJAQ5dFHH1U2bNhghEj1T5e6KCoqUrp3\n767k5OQoiqIohYWFxghV73Spi4ULFyqvvPKKoijqerC1tVXKy8uNEa5excTEKElJSYqnp2eN75tL\nu1mnO5BbJ7hYW1trJrjcKiIigqlTpwIQGBhIcXExZ84YfikAfdOlLvr27UuLFupnwgMDA8nNzTVG\nqHqnS10AfPLJJ4wbN462bdsaIUrD0KUufvjhB8aOHat5sqZNmzbGCFXvdKkLe3t7SkpKACgpKaF1\n69ZY1cPluoOCgmhVy7ar5tJu1imB1DTBJS8vT+tn6mPDqUtd3Oqbb75h+PDhhgjN4HT9d7FlyxZm\nzZoFYDJLad9vutRFRkYGFy5cICQkBH9/f9asWWPoMA1Cl7qYMWMGKSkpODg44OPjw7Jlywwdpkkw\nl3azTglE1196pdo4fX1sLO7mZ4qKimLFihUmtSja/aRLXcybN4+lS5dqVh6t/m+kvtClLsrLy0lK\nSmLbtm3897//5e233yYjI8MA0RmWLnXx7rvv4uvry+nTpzl48CDPPvssly5dMkB0pufW34mKigrm\nz59Pt27d6N69O3FxcVy4cIGwsDC6dOnC4MGDKS4u1nx+yZIluLu74+HhwW+//aY5n5iYiJeXF+7u\n7jz//PN1jrFOCUSXCS7VP5Obm4ujo2NdLmuSdJ3sc/jwYWbMmEFEREStt7DmTJe6SExMZNKkSXTq\n1ImNGzcye/ZsIiIiDB2q3ulSF87OzgwePJjGjRvTunVrBgwYwKFDhwwdqt7pUhexsbGMHz8eAFdX\nVzp16kR6erpB4zQF1esqOTmZxx57jLS0NA4fPoyHhwdLly4lLCyMY8eOERoaytKlSwFITU1l/fr1\npKamEhkZyezZszXJaNasWXzzzTdkZGSQkZFBZGRk3QKtywBKeXm50rlzZyUzM1MpLS3VOoi+b98+\nkx0Mqitd6uLUqVOKq6ursm/fPiNFaRi61MWtpk2bpmzcuNGAERqOLnWRlpamhIaGKhUVFcqVK1cU\nT09PJSUlxUgR648udfHCCy8oixYtUhRFUQoKChRHR0fl/PnzxghX7zIzM3UaRP/999+VRo0a3faZ\nrl27KgUFBYqiKEp+fr7StWtXRVEU5d1331WWLl2q+dyQIUOUffv2KadPn1Y8PDw059euXavMnDmz\nTj9DnUan7jTB5YsvvgBg5syZDB8+nG3btuHm5sZDDz3EypUr65bxTJQudfHWW29RVFSk6fe3trYm\nPj7emGHrhS518aDQpS48PDwYOnQo3t7eWFpaMmPGDLp3727kyO8/XeritddeIzw8HB8fHyorK3n/\n/fextbU1cuT33+TJk9m1axfnzp3D2dmZxYsXU15eDtzeblpaWuLm5kZ4eDiHDh2iV69e/Pvf/+bM\nmTPY2dkBYGdnpxlkP336NH369NFc68ZYk7W1dZU7PkdHx1rHaXVSp/RTC1tbWUxRDjnkkONuj+qL\nKSYkJChWVlZKfHy8oiiK8vzzzyt///vflZYtW1b5XKtWrRRFUZQ5c+Yo3333neb8M888o2zYsEE5\ncOCA8sgjj2jOx8TEKI899lid2nm9PR934cIJ/vY3BYBbx0cV5fajsrLmr1Wqm69vfF1Zqf76xusb\nX1dU3Pz61tfl5TfPlZerz1dU3P51eTmUlanLtLa+eTRsePO/dzoaNbr53xvHjdc2NhAbu4hhwxZp\nXtd0uLpCPRwaus2iRYtYtGiRscMwCVIXN0ld3FT9YQMnJyecnJzo3bs3AOPGjWPJkiW0b9+egoIC\n2rdvT35+Pu3atQNqHnd2cnLC0dGxypNc92M8Wq8PWH/wgT5L14/KypsJ5cZRWlr167Kyql+Xlam/\nvvUoK4Pr19VfV1TAmTM337t27eZ7N76eMQOeesrYP70QwtS0b98eZ2dnjh07RpcuXfjjjz/o0aMH\nPXr0YPXq1SxYsIDVq1czevRoAEaOHMkTTzzBiy++SF5eHhkZGQQEBGBhYUHz5s2Ji4sjICCANWvW\nMHfu3DrFVv9m6NSRpeXNu4j7RaUC+eNKCHGvPvnkE6ZMmUJZWRmurq6sXLkSlUrFhAkT+Oabb3Bx\nceHHH38EoHv37kyYMIHu3btjZWXFZ599prmr+eyzz5g2bRrXrl1j+PDhDB06tE5xyXLuBlCf1za6\nW1IXN0ld3CR1UbtRo0ZRWlqKpaUlubm5mhUt7jS3xsLCQvNeTZ+59f260Loab3p6Oh9++CFZWVlU\nVFRoLr5z587aC/7fBDEhhBC6q6nt7NSpE4mJiVWeSJs/fz5t2rRh/vz5vPfeexQVFbF06VJSU1N5\n4oknSEhIIC8vj0ceeYSMjAwsLCwICAhg+fLlBAQEMHz4cObOnVunuxCtXVjjx49n1qxZTJ8+nQYN\nGmh+QCGEEIZTPalERESwa9cuAKZOncrAgQNZunQpW7ZsYfLkyVhbW+Pi4oKbmxtxcXF07NiRS5cu\nERAQAMBTTz3F5s2b9ZtArK2tNfMWhBBCGJ6FhQWPPPIIDRo0YObMmcyYMcMk5oFoTSAjRozg008/\nZcyYMTS6ZWRZl8k9tz6WN3DgQOnnFEKIaqKjo4mOjq71M3v37sXe3p7CwkLCwsLw8PCo8v79GtO4\nW1oTyKpVq7CwsODDDz/UnLOwsODkyZNaC5fnuoUQonbV/7hevHjxbZ+xt7cHoG3btjz++OPEx8dj\nZ2dn9HkgWp/CysrKIjMzs8qhS/IQQghRd1evXtWsSHzlyhV+++03vLy8GDlyJKtXrwa4bR7IunXr\nKCsrIzMzUzMPpH379pp5IIqisGbNGs333CutdyBlZWV8/vnnxMTEYGFhQXBwMP/3f/+HtbV1nS4s\nhBBCuzNnzvD4448D6mXdp0yZwuDBg/H39zf6PBCtCWTWrFlUVFTw7LPParLWrFmz+Prrr+t0YSGE\nENp16tSJgwcPolKp8Pf3JzY2VvOeseeBaO3CSkhIYPXq1QwaNIjQ0FBWrVpVL1eQFUIIU7Zs2TK6\nd++uafhNYT8QrQnEysqK48ePa16fOHGiXu5RLIQQpio3N5dt27Yxffp0TTK4dd/0qVOnsnnzZoA7\nzgPJz8+vcR5IXWjNBB988AGDBg2iU6dOgHpQvb7u6SGEEKbohRde4IMPPqCkpERzzizmgYSGhnLs\n2DHS09OxsLCga9euVeaDCCGE0J9ffvmFdu3a4efnd8f5IiY3D2THjh2EhoaycePGKmuz3OjOGjNm\njNbCZSKhEELUTttEwtjYWCIiIti2bRvXr1+npKSEJ5980iTmgdxxMcWFCxeyePFipk2bVmNm09aN\nJYspCiHE3aut7dy1axcffvghW7duZf78+bRu3ZoFCxawdOlSiouLqyymGB8fr1lM8fjx41hYWBAY\nGMjHH39MQEAAjz76qP4WU7wxG/LNN9+kc+fOVd6TiYRCCGEcN/6gf+WVV4w+D0TrU1jjxo277dz4\n8ePrdFEhhBC6uX79OoGBgfj6+jJr1ix69Oihec/Y80DueAeSlpZGamoqxcXFbNq0CUVRsLCwoKSk\nhOvXr9f5wkIIIbSzsbEhKiqKJk2aUFFRQf/+/dmzZw8RERGEhYVp9gNZunSppgvrxjyQ6vuB3JgH\ncmM/kMjISP10YR07doytW7dy8eJFtm7dqjnfrFkzvvrqq3u+oBBCiLvTpEkTQL20lEqlolWrVqa9\nH8ioUaMYNWoUsbGx9OvX754vIIQQom4qKyvp2bMnJ06c0HRjmcU8ED8/P5YvX05qairXrl3T9Jut\nWLGiThcWQgihG0tLSw4ePMjFixcZMmQIUVFRVd43uXkgNzz55JN069aNyMhIFi5cyHfffUe3bt10\nKlzmgQghRO102VDqhhYtWvDoo4+SmJhoEvNAULTw8fFRFEVRvLy8FEVRlLKyMiUgIEDbtyk6FC2E\nEKKa6m1nYWGhUlRUpCiKoly9elUJCgpS/vjjD+Xll19Wli5dqiiKoixZskRZsGCBoiiKkpKSovj4\n+CilpaXKyZMnlc6dOyuVlZWKoihKQECAsn//fqWyslIZNmyYsn379jrFqvUOpGHDhprMd+TIEdq3\nb09hYWHdspYQQgid5OfnM3XqVCorK6msrOTJJ58kNDQUPz8/o88DueNM9Bu+/vprxowZw5EjR5g2\nbRqXL1/m7bff5v/+7/9qL1hmogshxF0zp7az1omElZWVNGvWDFtbW4KDg8nMzKSwsFBr8hBCCHF/\n5OTkEBISQo8ePfD09OTjjz8G4MKFC4SFhdGlSxcGDx5McXGx5nuWLFmCu7s7Hh4e/Pbbb5rziYmJ\neHl54e7uzvPPP1/n2GpNIJaWlrz//vt1vogQQoh7Y21tzb/+9S9SUlLYv38/n376KWlpaeaxoVRY\nWBgffvghOTk5XLhwQXMIIYTQv/bt2+Pr6wtA06ZN6datG3l5eeaxodS6deuwsLDg008/rXI+MzOz\nThcWQghxd7KyskhOTiYwMNA8JhJmZWXdc+EyD0QIIWqn6zyQy5cvM3bsWJYtW0azZs2qvGeyEwmv\nXLnCRx99RHZ2Nl999RUZGRmkp6fz2GOPaS381gQihBDidtX/uL6xlcatysvLGTt2LE8++SSjR48G\nMImJhFrHQMLDw2nYsCGxsbEAODg48Prrr9fpokIIIXSjKArPPPMM3bt3Z968eZrzI0eOZPXq1QCs\nXr1ak1hGjhzJunXrKCsrIzMzk4yMDAICAmjfvj3NmzcnLi4ORVFYs2aN5nvuldZ5IL169SIxMRE/\nPz+Sk5MB8PHx4dChQ7UXbEbPMgshhKmo3nbu2bOHAQMG4O3tremmWrJkCQEBAUyYMIHs7GzNRMKW\nLTjrECwAABDjSURBVFsC8O6777JixQqsrKxYtmwZQ4YMAdSP8d46kfDGI8H3SmsXVqNGjbh27Zrm\n9YkTJ2jUqFGdLiqEEEI3K1asoG3btqhUKo4cOQKo54BMnDixxuSxZMkSVq5ciZWVFR9//DGDBw8G\nbiaP69ev8+ijj7Js2bI6x6a1C2vRokUMHTqU3NxcnnjiCQYNGsR7771X5wsLIYTQLjw8/Lb5GqYw\nBwR06MICOHfuHPv37wegT58+tGnTRnvB0oUlhBB3raa2MysrixEjRmjuQDw8PNi1a5dmIH3gwIEc\nPXqUJUuWYGlpyYIFCwAYOnQoixYtomPHjgwaNIi0tDRAPT0jOjqa//znP3WK9Y5dWImJiVUeC7O3\ntwcgOzub7OxsevbsWacLCyGEuDemMAcEakkgL730Uq3PFVff0KQmMg9ECCFqdzf7gdTEWHNAoJYE\nUpcf6AaZByKEELXTZR5IdaYwBwR0GES/cuUKb7/9NjNmzAAgIyODX375pc4XFkIIcW9MYQ4IyERC\nIYQwaZMnT6Zfv36kp6fj7OzMypUreeWVV/j999/p0qULO3fu5JVXXgGqbiY1bNiw2zaTmj59Ou7u\n7ri5udV5MymQiYRCCGFSamo7IyMjmTdvHiqViunTp2uesjI2rXcgMpFQCCGMR6VSMWfOHCIjI0lN\nTWXt2rWax3GNTSYSCiGECYuPj8fNzQ0XFxesra2ZNGkSW7ZsMXZYgA5LmQwePJiePXtqJhJ+/PHH\nOk0kFEIIUXd5eXk4OztrXjs5OREXF2fEiG7SmkA2bdrEoEGDNMu3FxcXs3nzZp1G8GUeiBBC1E7b\nPBBjzfHQhdZB9JoGzH19fTl48GDtBcsguhBC3LXqbef+/ftZtGiRZu2q6suVGJPWMZCakoBKpdJL\nMEIIIary9/cnIyODrKwsysrKWL9+PSNHjjR2WIAOCaRXr168+OKLnDhxguPHj/PCCy/Qq1cvQ8Qm\nhBAPPCsrK5YvX86QIUPo3r07EydOpFu3bsYOC9AhgXzyySdYW1szceJEJk2ahI2NDZ9++qkhYhNC\nCAEMGzaM9PR0jh8/zquvvqo5/9NPP9GjRw8aNGhAUlJSle9ZsmQJ7u7ueHh48Ntvv2nOJyYm4uXl\nhbu7O88//7zmfGlpKRMnTsTd3Z0+ffpw6tQp7YEpeqLHooUQot66m7YzLS1NSU9PVwYOHKgkJiZq\nzqekpCg+Pj5KWVmZkpmZqbi6uiqVlZWKoihK7969lbi4OEVRFGXYsGHK9u3bFUVRlE8//VSZNWuW\noiiKsm7dOmXixIlar6/1DuSRRx6huLhY8/rChQua7RGFEEIYj4eHB126dLnt/JYtW5g8eTLW1ta4\nuLjg5uZGXFwc+fn5XLp0iYCAAACeeuopNm/eDEBERARTp04FYOzYsezYsUPr9bUmkHPnzmm2SgSw\ntbXVrD0vhBDC9Jw+fbrK/h839gWpfv7WfUFunW9iZWVFixYtuHDhQq3X0ToPpEGDBpw6dYqOHTsC\n6p2xLC215h0hhBD3QVhYGAUFBbedf/fddxkxYoQRIrpJawJ55513CAoKIjg4GEVRiImJ4csvv9Sp\ncJlIKIQQtdM2kfD333+/6zLvZl+QG3ckjo6OZGdn4+DgQEVFBRcvXsTW1rbW6+i0J/rZs2f58ssv\n8fX15fr167Rr144BAwbUXrBMJBRCiLt2L21nSEgIH374oWaKRWpqKk888QTx8fHk5eXxyCOPcPz4\ncSwsLAgMDOTjjz8mICCARx99lLlz5zJ06FA+++wzjhw5wueff866devYvHkz69atq/3C2kbZv/zy\nS8XT01Np0aKFMnDgQMXGxkYJCQnROjqvQ9Hify6VXlIuXL2gXC27qqgqVcYORwhhRHfTdm7atElx\ncnJSbGxsFDs7O2Xo0KGa99555x3F1dVV6dq1qxIZGak5f+DAAcXT01NxdXVVnnvuOc3569evK+PH\nj1fc3NyUwMBAJTMzU+v1tXZhLVu2jISEBPr27UtUVBRHjx6t8hyyqLt/7fsXH+3/iGvl1yhVldKo\nQSNsrGzu6ajpextZNary/o3X1b++8dlGDRqZ9Po7Qgi12NhYmjZtiq2tLa6urqxcuVLz3q17pdf0\n+1zTXuq3vtalDdDaheXv78+BAwfw9fVl//792NjY0L17d1JTU2svWLqwNKKjo3Ue/6lUKilTlXGt\n/BrXK65XOa5VXKO0orTGc6Wq0v9v7/5Dmur+OIC/792uj9JPs56okH6oUDKdlsyNKBKRzCCKCioI\n7IdEX8J+QF+igiworCBSRKi+jX5QFI8lBaUUkvVQmmaWZFHmY5FBlKnPoNTd3Z3vH+teN3/tbmub\n088rxj0752w7+7Tdj3f3nnv79e+x9aBb6nZ5jNyvb53zc1glKwRecEkozkvn5POH5g+EacJ623/V\nh2nCBuzzT/0/0KfqlT5yP7l9qDqBF6DhNf79zwogTz4XIx3Fopcn68779+8jPT0dPM8rVyXMz89X\nfsKqra1VfsJqamoCx3EwGAwoKiqCwWBAVlaWy09Yr169QnFxMa5fv47S0lK3P2G53QKJjo5GR0cH\nVq5ciYyMDERGRmLWrFmq3hxx8OTLwXO8srUQLIwxWCVrv+TiydIqWdEj9aBL7EJnd6fjvq0HTyue\nonVSK3okRx/5Jj9WlESlzblO7sdxnJJQhroJvNC/TiO4tAm84FInaASXpfyYgdoGW2p57ZBlDadR\n/rKjlWYvioV3MjIylHJqaipu3LgBYPB5IDNnzhxwHkhmZiZu376Nw4cPA3DMA9mxY4fb13ebQEpL\nSwE4jqhasmQJLBbLb7mWLhm+OI5zbDlof/+VJ/Pq8pC3Os+rxzLGIDEJPbYeiHbRJQFZJatLolHq\nfvVzbhusrrunG6JdVOpFu6jcV7u02W39yja7TbkvMQkaTgNBI0D6W0Lh8UJoea2SYOSyJzcNp+kt\n8xpoOafyr3bnstwm13uy5Dm+X5nneKWPXHZuk29yvUvdrz7/dv+LVksreI4HB65fP47jlDbnstzW\ntzwaf4I1m81Yv349AMc8EKPRqLTJ80AEQfB4HshQR2K5TSDO6C8EEkwcxzlWjmEefWyHFTuzQ7JL\nsNltONJ1BHtz97okGNEuKu3yTU2dxCSIkgiJOer6tkl2SVna7DaINlGpk/v37Scx17I8dueyndmV\nPnLZuU2+yX0YWG/dr+dijKGjvgN//e8vpc25n1LHmNLmXJbb5LJMTiTOy75JhkPvPgLnxNO3rDyn\nyjpZ438aMWXMFJ8+M2rmgRw9ehRhYWHYsGGDT6/lKb99E2NiYkblXwGDkTcNCcXCWf7R/GAPYdiw\n3LP81udjv/4F05///dPjx8TExLjcdzcP5MKFC7h7967LqUcCNQ/Ebwnk/fv3/npqQgghAMrLy3Hy\n5Ek8fPgQ4eG9+01XrFiBDRs2YM+ePfj8+TOamppgMBjAcRzGjx+Pp0+fwmAw4PLly8jNzVUec/Hi\nRRiNRpSUlCA9Pd3t66uaSEgIIWT4iYuLg9VqVbYUTCYTiouLATh+4jKbzdBqtSgoKFBOgltXV4fs\n7Gx0dXUhKysLhYWFABync9+4cSPq6+sRFRWFa9euuT1gihIIIYQQr/h8VsTy8nLMnTsXcXFxOH78\n+IB9cnNzERcXB71ej/r6el9fcthyF4srV65Ar9cjMTERCxcuRENDQxBGGRhqPhcAUFtbC61Wi5s3\nbwZwdIGlJhaVlZVITk6GTqcb0QeruItFW1sbMjMzkZSUBJ1OhwsXLgR+kAGwefNmTJ06FQkJCYP2\nCYn1puo58wOw2WwsJiaGtbS0MKvVyvR6PXv9+rVLnzt37rBly5Yxxhirrq5mqampvrzksKUmFk+e\nPGGdnZ2MMcbKyspGdSzkfmlpaWz58uWspKQkCCP1PzWx6OjoYPHx8ezTp0+MMca+ffsWjKH6nZpY\nHDp0iO3bt48x5ojDpEmTmCiKwRiuXz169Ig9f/6c6XS6AdtDZb3p0xZITU0NYmNjMWvWLAiCgHXr\n1uHWrVsufZwvUpKamorOzs4ReT0RNbEwmUyYMGECAEcsnI+GGEnUxAJwXC55zZo1mDLFt8MchzM1\nsbh69SpWr16tHA0zefLkYAzV79TEYtq0abBYHEdjWSwWREVFQasN3cO2B7No0SJERkYO2h4q602f\nEojzxBOgd7KKuz4jccWpJhbOzp8/j6ysrEAMLeDUfi5u3bqF7du3A1B33p1QpCYWTU1NaG9vR1pa\nGlJSUnD58uVADzMg1MQiJycHjY2NmD59OvR6PQoKCgI9zGEhVNabPqV2tV961mc//UhcWXjynh48\neACz2YzHjx/7cUTBoyYWu3btQn5+vnLen76fkZFCTSxEUcTz589RUVGBnz9/wmQywWg0Ii4uLgAj\nDBw1sTh27BiSkpJQWVmJ5uZmZGRk4OXLlxg3blwARji8hMJ606cE0neyyqdPn1ymyQ/Up7W1FTNm\nzPDlZYclNbEAgIaGBuTk5KC8vHzITdhQpiYWdXV1WLduHQDHjtOysjIIgoAVK1YEdKz+piYW0dHR\nmDx5MiIiIhAREYHFixfj5cuXIy6BqInFkydPcODAAQCOCXWzZ8/G27dvkZKSEtCxBlvIrDd92YEi\niiKbM2cOa2lpYT09PW53oldVVQ3bnUG+UhOLjx8/spiYGFZVVRWkUQaGmlg4y87OZjdu3AjgCANH\nTSzevHnD0tPTmc1mYz9+/GA6nY41NjYGacT+oyYWu3fvZnl5eYwxxr58+cJmzJjBvn//Hozh+l1L\nS4uqnejDeb3p0xaIVqtFUVERli5dCkmSsGXLFsybNw9nzpwBAGzbtg1ZWVm4e/cuYmNjMWbMGJfz\n1Y8kamJx5MgRdHR0KL/7C4KAmpqaYA7bL9TEYrRQE4u5c+ciMzMTiYmJ4HkeOTk5iI+PD/LIfz81\nsdi/fz82bdoEvV4Pu92OEydOuD2dRihav349Hj58iLa2NkRHR+Pw4cMQRRFAaK03aSIhIYQQr/g8\nkZAQQsjoRAmEEEKIVyiBEEII8QolEEIIIV6hBEIIIcQrlEAIIYR4hRIIIQA+fPgw5Km1CSH9UQIh\nhBDiFUogJOStWrUKKSkp0Ol0OHfuHABg7NixOHjwIJKSkmAymfD161cAQHNzM4xGIxITE3Hw4MEB\nT9InSRL27t0Lg8EAvV6Ps2fPBvT9EBIqKIGQkGc2m/Hs2TPU1taisLAQ7e3tylltX7x4gcWLFyuJ\nZefOndi9ezcaGhpcTpft7Pz585g4cSJqampQU1ODc+fO4cOHDwF8R4SEBkogJOQVFBQoWxqtra1o\nampCWFgYli9fDgBYsGCBkgCqq6uxdu1aAI7zEQ3k3r17uHTpEpKTk2E0GtHe3o73798H5L0QEkpG\n3qW+yKhSWVmJiooKVFdXIzw8HGlpaeju7oYgCEofnudhs9k8et6ioiJkZGT87uESMqLQFggJaRaL\nBZGRkQgPD8ebN29QXV09ZH+j0YiSkhIAwLVr1wbss3TpUhQXFytJ5927d/j58+fvHTghIwAlEBLS\nMjMzYbPZEB8fj/3798NkMgFwvXobx3HK/dOnT+PUqVNISkpCc3Ozco1658ds3boV8fHxmD9/PhIS\nErB9+3aPt2AIGQ3odO5kVOnq6kJERAQAxxbI9evXUVpaGuRRERKaaB8IGVXq6uqwY8cOMMYQGRkJ\ns9kc7CERErJoC4QQQohXaB8IIYQQr1ACIYQQ4hVKIIQQQrxCCYQQQohXKIEQQgjxCiUQQgghXvk/\n/gqowuH+6dAAAAAASUVORK5CYII=\n",
+ "text": [
+ "<matplotlib.figure.Figure at 0x7f486db25850>"
+ ]
+ }
+ ],
+ "prompt_number": 4
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 7, Page 309"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "\n",
+ "#Variable declaration\n",
+ "N=600#rpm\n",
+ "BC=3#in\n",
+ "rmin=1.125#in\n",
+ "rf=39/8#in\n",
+ "OP=rf-rmin\n",
+ "OM1=0.79#in;given\n",
+ "NZ1=2.66#in\n",
+ "\n",
+ "#Calculations\n",
+ "w=N*math.pi/30\n",
+ "vb=w*OM1\n",
+ "Vang=vb/BC\n",
+ "at=w**2*NZ1\n",
+ "fBC=at/BC\n",
+ "OM2=.52#in\n",
+ "NZ2=3.24#in\n",
+ "af=w*OM2/BC\n",
+ "angf=w**2*NZ2/BC\n",
+ "\n",
+ "#Results\n",
+ "print \"When theta = 25 degrees\\nangular velocity = %.1f rad/s\\nangular acceleration = %.f rad/s^2\"\\\n",
+ " \"\\nWhen theta = 45 degrees\\nangular velocity = %.1f rad/s\\nangular acceleration = %.f rad/s^2\"%(Vang,fBC,af,angf)"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "When theta = 25 degrees\n",
+ "angular velocity = 16.5 rad/s\n",
+ "angular acceleration = 3500 rad/s^2\n",
+ "When theta = 45 degrees\n",
+ "angular velocity = 10.9 rad/s\n",
+ "angular acceleration = 4264 rad/s^2\n"
+ ]
+ }
+ ],
+ "prompt_number": 3
+ }
+ ],
+ "metadata": {}
+ }
+ ]
+} \ No newline at end of file
diff --git a/The_Theory_of_Machines_by_T._Bevan/screenshots/amp_forced_vibr.png b/The_Theory_of_Machines_by_T._Bevan/screenshots/amp_forced_vibr.png
new file mode 100644
index 00000000..bbc4c329
--- /dev/null
+++ b/The_Theory_of_Machines_by_T._Bevan/screenshots/amp_forced_vibr.png
Binary files differ
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
new file mode 100644
index 00000000..6d32af0c
--- /dev/null
+++ b/The_Theory_of_Machines_by_T._Bevan/screenshots/couple_sup_shaft_2.png
Binary files differ
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
new file mode 100644
index 00000000..0dd4df7f
--- /dev/null
+++ b/The_Theory_of_Machines_by_T._Bevan/screenshots/vel,disp,acc.png
Binary files differ