diff options
28 files changed, 23384 insertions, 0 deletions
diff --git a/MECHANICS_OF_SOLIDS_by_S.S._Bhavikatti/Chapter1.ipynb b/MECHANICS_OF_SOLIDS_by_S.S._Bhavikatti/Chapter1.ipynb new file mode 100644 index 00000000..080cbafb --- /dev/null +++ b/MECHANICS_OF_SOLIDS_by_S.S._Bhavikatti/Chapter1.ipynb @@ -0,0 +1,373 @@ +{ + "cells": [ + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "# Chapter 1-INTRODUCTION TO MECHANICS OF SOLIDS " + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "# example1.1 Page number 10\n" + ] + }, + { + "cell_type": "code", + "execution_count": 1, + "metadata": { + "collapsed": false + }, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + " The resultant velocity : 21.54 km/hour\n", + "68.2 °\n" + ] + } + ], + "source": [ + "#downstream direction as x\n", + "#direction across river as y\n", + "\n", + "from math import sqrt,atan,pi\n", + "\n", + "#variable declaration\n", + "\n", + "Vx= 8 #velocity of stream, km/hour\n", + "Vy=float(20) #velocity of boat,km/hour\n", + "\n", + "V=sqrt(pow(Vx,2)+pow(Vy,2)) #resultant velocity, km/hour\n", + "theta=Vy/Vx\n", + "\n", + "alpha= atan(theta)*180/pi #angle, degrees \n", + "\n", + "print \" The resultant velocity :\",round(V,2),\"km/hour\"\n", + "print round(alpha,2),\"°\"\n", + "\n" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "# example 1.2 Page number 10" + ] + }, + { + "cell_type": "code", + "execution_count": 2, + "metadata": { + "collapsed": false + }, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "10.0 KN (to the left)\n", + "17.32 KN (downward)\n" + ] + } + ], + "source": [ + "\n", + "\n", + "\n", + "#components of force in horizontal and vertical components. \n", + "from math import cos,sin,pi\n", + "#variable declaration\n", + "\n", + "F= 20 #force in wire, KN\n", + "\n", + "#calculations\n", + "Fx= F*cos(60*pi/180) \n", + "Fy= F*sin(60*pi/180)\n", + "\n", + "print round(Fx,2),\"KN\" ,\"(to the left)\"\n", + "print round(Fy,2), \"KN\" ,\"(downward)\"\n", + "\n", + "\n" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "# example 1.3 Page number 11" + ] + }, + { + "cell_type": "code", + "execution_count": 3, + "metadata": { + "collapsed": false + }, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "Component normal to the plane : 9.4 KN\n", + "Component parallel to the plane : 3.42 KN\n" + ] + } + ], + "source": [ + "\n", + "\n", + " #The plane makes an angle of 20° to the horizontal. Hence the normal to the plane makes an angles of 70° to the horizontal i.e., 20° to the vertical\n", + "from math import cos,sin,pi\n", + "#variable declaration\n", + "W= 10 # black weighing, KN\n", + "\n", + "#calculations\n", + "\n", + "Nor= W*cos(20*pi/180) #Component normal to the plane\n", + "para= W*sin(20*pi/180) #Component parallel to the plane\n", + "\n", + "print \"Component normal to the plane :\",round(Nor,2),\"KN\"\n", + "print \"Component parallel to the plane :\",round(para,2) , \"KN\"\n", + "\n", + "\n", + "\n" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "# example 1.4 Page number 11" + ] + }, + { + "cell_type": "code", + "execution_count": 4, + "metadata": { + "collapsed": false + }, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "F1= 100.0 N\n", + "F2= 200.0 N\n", + "theta= 63.9 °\n" + ] + } + ], + "source": [ + "\n", + "\n", + "#Let the magnitude of the smaller force be F. Hence the magnitude of the larger force is 2F\n", + "\n", + "from math import pi,sqrt, acos\n", + "#variable declaration\n", + "R1=260 #resultant of two forces,N\n", + "R2=float(180) #resultant of two forces if larger force is reversed,N\n", + "\n", + "\n", + "\n", + "#calculations\n", + "\n", + "F=sqrt((pow(R1,2)+pow(R2,2))/10)\n", + "F1=F\n", + "F2=2*F\n", + "theta=acos((pow(R1,2)-pow(F1,2)-pow(F2,2))/(2*F1*F2))*180/pi\n", + "\n", + "print \"F1=\",F1,\"N\"\n", + "print \"F2=\",F2,\"N\"\n", + "print \"theta=\",round(theta,1),\"°\"\n", + "\n", + "\n" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "# example 1.5 Page number 12" + ] + }, + { + "cell_type": "code", + "execution_count": 5, + "metadata": { + "collapsed": false + }, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "F1= 326.35 N\n", + "F2= 223.24 N\n" + ] + } + ], + "source": [ + "\n", + "\n", + "#Let ?ABC be the triangle of forces drawn to some scale\n", + "#Two forces F1 and F2 are acting at point A\n", + "#angle in degrees '°'\n", + "\n", + "from math import sin,pi\n", + " \n", + "#variabble declaration\n", + "cnv=pi/180\n", + "\n", + "BAC = 20*cnv #Resultant R makes angle with F1 \n", + " \n", + "ABC = 130*cnv \n", + "\n", + "ACB = 30*cnv \n", + "\n", + "R = 500 #resultant force,N\n", + "\n", + "#calculations\n", + "#sinerule\n", + "\n", + "F1=R*sin(ACB)/sin(ABC)\n", + "F2=R*sin(BAC)/sin(ABC)\n", + "\n", + "print \"F1=\",round(F1,2),\"N\"\n", + "print \"F2=\",round(F2,2),\"N\"\n", + "\n", + "\n" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "# example 1.6 Page number 12" + ] + }, + { + "cell_type": "code", + "execution_count": 6, + "metadata": { + "collapsed": false + }, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "theta= 78.13 °\n", + "alpha= 29.29 °\n" + ] + } + ], + "source": [ + "\n", + "\n", + "#Let ABC be the triangle of forces,'theta' be the angle between F1 and F2, and 'alpha' be the angle between resultant and F1 \n", + "\n", + "from math import sin,acos,asin,pi\n", + "\n", + "#variable declaration\n", + "cnv= 180/pi\n", + "F1=float(400) #all forces are in newtons,'N'\n", + "F2=float(260)\n", + "R=float(520)\n", + "\n", + "#calculations\n", + "\n", + "theta=acos((pow(R,2)-pow(F1,2)-pow(F2,2))/(2*F1*F2))*cnv\n", + "\n", + "alpha=asin(F2*sin(theta*pi/180)/R)*cnv\n", + "\n", + "print\"theta=\",round(theta,2),\"°\"\n", + "print \"alpha=\",round(alpha,2),\"°\"\n", + "\n" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "# example 1.7 Page number 13" + ] + }, + { + "cell_type": "code", + "execution_count": 7, + "metadata": { + "collapsed": false + }, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "horizontal component= 2814.2 N\n", + "Vertical component = 1039.2 N\n", + "Component along crank = 507.1 N\n", + "Component normal to crank= 2956.8 N\n" + ] + } + ], + "source": [ + "\n", + "\n", + "#The force of 3000 N acts along line AB. Let AB make angle alpha with horizontal.\n", + "\n", + "from math import cos,sin,pi,asin,acos\n", + "\n", + "#variable declaration\n", + "F=3000 #force in newtons,'N'\n", + "BC=80 #length of crank BC, 'mm'\n", + "AB=200 #length of connecting rod AB ,'mm'\n", + "theta=60*pi/180 #angle b/w BC & AC\n", + "\n", + "#calculations\n", + "\n", + "alpha=asin(BC*sin(theta)/200)*180/pi\n", + "\n", + "HC=F*cos(alpha*pi/180) #Horizontal component \n", + "VC= F*sin(alpha*pi/180) #Vertical component \n", + "\n", + "#Components along and normal to crank\n", + "#The force makes angle alpha + 60 with crank.\n", + "alpha2=alpha+60\n", + "CAC=F*cos(alpha2*pi/180) # Component along crank \n", + "CNC= F*sin(alpha2*pi/180) #Component normal to crank \n", + "\n", + "\n", + "print \"horizontal component=\",round(HC,1),\"N\"\n", + "print \"Vertical component = \",round(VC,1),\"N\"\n", + "print \"Component along crank =\",round(CAC,1),\"N\"\n", + "print \"Component normal to crank=\",round(CNC,1),\"N\"" + ] + } + ], + "metadata": { + "anaconda-cloud": {}, + "kernelspec": { + "display_name": "Python [Root]", + "language": "python", + "name": "Python [Root]" + }, + "language_info": { + "codemirror_mode": { + "name": "ipython", + "version": 2 + }, + "file_extension": ".py", + "mimetype": "text/x-python", + "name": "python", + "nbconvert_exporter": "python", + "pygments_lexer": "ipython2", + "version": "2.7.12" + } + }, + "nbformat": 4, + "nbformat_minor": 0 +} diff --git a/MECHANICS_OF_SOLIDS_by_S.S._Bhavikatti/Chapter10.ipynb b/MECHANICS_OF_SOLIDS_by_S.S._Bhavikatti/Chapter10.ipynb new file mode 100644 index 00000000..e89d127d --- /dev/null +++ b/MECHANICS_OF_SOLIDS_by_S.S._Bhavikatti/Chapter10.ipynb @@ -0,0 +1,571 @@ +{ + "cells": [ + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "# Chapter10-STRESSES IN BEAMS" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "# example 10.1 page number 319\n" + ] + }, + { + "cell_type": "code", + "execution_count": 1, + "metadata": { + "collapsed": false + }, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "(i) w= 5.76 KN/m\n", + "(ii) P= 9.72 KN\n" + ] + } + ], + "source": [ + "#variable declaration\n", + "\n", + "#A simply supported beam of span 3.0 m has a cross-section 120 mm × 180 mm. If the permissible stress in the material of the beam is 10 N/mm^2\n", + "\n", + "b=float(120) \n", + "d=float(180) \n", + "\n", + "#I=(b*d^3)/12,Ymax=d/2\n", + "\n", + "Z=(b*pow(d,2))/6 \n", + "fper=float(10)\n", + "\n", + "L=3\n", + "Mmax=fper*Z\n", + "\n", + "#Let maximum udl beam can carry be w/metre length \n", + "#In this case, we know that maximum moment occurs at mid span and is equal to Mmax = (wL^2)/8\n", + "\n", + "w=(Mmax*8)/(pow(L,2)*1000000)\n", + "\n", + "print \"(i) w=\",round(w,2),\"KN/m\"\n", + "\n", + "# Concentrated load at distance 1 m from the support be P kN.\n", + "\n", + "a=float(1) #distance of point at which load is applied from left,m\n", + "b=float(2) #distance of point at which load is applied from right,m\n", + "\n", + "P=(L*Mmax)/(a*b*1000000)\n", + "\n", + "print \"(ii) P=\",round(P,2),\"KN\"\n" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "# example 10.2 page number 320" + ] + }, + { + "cell_type": "code", + "execution_count": 2, + "metadata": { + "collapsed": false + }, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + " P= 4.52 KN\n" + ] + } + ], + "source": [ + "from math import pi\n", + "\n", + "#variable declaration\n", + "\n", + "#A circular steel pipe of external diameter 60 mm and thickness 8 mm is used as a simply supported beam over an effective span of 2 m. If permissible stress in steel is 150 N/mm^2, \n", + "\n", + "D=float(60) #external diameter,mm\n", + "d=float(44) #Thickness,mm\n", + "\n", + "I=(pi*(pow(D,4)-pow(d,4)))/64 #Area moment of inertia,mm^4\n", + "Ymax=float(30) #extreme fibre distance,mm\n", + "\n", + "Z=I/Ymax \n", + "fper=float(150)\n", + "\n", + "Mmax=fper*Z\n", + "\n", + "#Let maximum load it can carry be P kN.\n", + "L=float(2)\n", + "P=(4*Mmax)/(L*1000000)\n", + "\n", + "print \" P=\",round(P,2),\"KN\"\n" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "# example10.3 page number 321" + ] + }, + { + "cell_type": "code", + "execution_count": 3, + "metadata": { + "collapsed": false + }, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "w= 68.49 KN/m\n" + ] + } + ], + "source": [ + "\n", + "#the cross-section of a cantilever beam of 2.5 m span. Material used is steel for which maximum permissible stress is 150 N/mm^2\n", + " \n", + "#variable declaration\n", + "\n", + "A=float(180) #width of I-beam,mm\n", + "H=float(400) #height of I-beam,mm\n", + "a=float(170) #width of inter rectancle if I-beam consider as Rectangle with width 10,mm\n", + "h=float(380) #Height of inter rectancle if I-beam consider as Rectangle with width 10,mm\n", + "\n", + "I=((A*pow(H,3))/12)-((a*pow(h,3))/12)\n", + "ymax=float(200) #extreme fibre,mm\n", + "\n", + "Z=I/ymax\n", + "fper=float(150) \n", + "\n", + "Mmax=fper*Z\n", + "\n", + "#If udl is w kN/m, maximum moment in cantilever\n", + "\n", + "L=2 #m\n", + "\n", + "w=Mmax/(L*1000000)\n", + "print \"w=\",round(w,2),\"KN/m\"\n" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "# example10.4 page number 323" + ] + }, + { + "cell_type": "code", + "execution_count": 4, + "metadata": { + "collapsed": false + }, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "(i) Moment carryingcapacity of Isection/ Moment carryingcapacityof equivalent squaresection= 8.608\n", + "(ii) Moment carryingcapacity of I-section/ Moment carryingcapacityof equivalent squaresection= 6.087\n", + "(i) Moment carryingcapacity of Isection/ Moment carryingcapacityof equivalent squaresection= 10.171\n" + ] + } + ], + "source": [ + "#Compare the moment carrying capacity of the section given in example 10.3 with equivalent section of the same area but (i) square section (ii) rectangular section with depth twice the width and (iii) a circular section.\n", + "\n", + "from math import sqrt,pi\n", + "#variable declaration\n", + "\n", + "A=180.0*10.0+380.0*10.0+180.0*10.0\n", + "\n", + "#If ‘a’ is the size of the equivalent square section, \n", + "\n", + "a=float(sqrt(A)) #mm\n", + "\n", + "I=(a*pow(a,3))/12 #Moment of inertia of this section, mm^4\n", + "\n", + "ymax=a/2\n", + "\n", + "Z=I/ymax\n", + "\n", + "f=150.0 \n", + "\n", + "Mcc=f*Z #Moment carrying capacity\n", + "\n", + "MccI=136985000.0\n", + "\n", + "Ratio=MccI/Mcc\n", + "print \"(i) Moment carryingcapacity of Isection/ Moment carryingcapacityof equivalent squaresection=\",round(Ratio,3)\n", + "\n", + "\n", + "#Equivalent rectangular section of depth twice the width. Let b be the width,Depth d = 2b. Equating its area to area of I-section,we get\n", + "b=sqrt(7400/2)\n", + "\n", + "ymax=b\n", + "\n", + "I=b*(pow((2*b),3))/12\n", + " \n", + "M=f*I/ymax\n", + "\n", + "\n", + "MccI=136985000\n", + "\n", + "Ratio=MccI/M\n", + "print \"(ii) Moment carryingcapacity of I-section/ Moment carryingcapacityof equivalent squaresection=\",round(Ratio,3)\n", + "\n", + "#Equivalent circular section. Let diameter be d.\n", + "\n", + "d=sqrt(7400*4/pi)\n", + "\n", + "I=(pi*pow(d,4))/64\n", + "ymax=d/2\n", + "Z=I/ymax\n", + "fper=float(150)\n", + "M=fper*Z\n", + "\n", + "MccI=136985000\n", + "\n", + "Ratio=MccI/M\n", + "print \"(i) Moment carryingcapacity of Isection/ Moment carryingcapacityof equivalent squaresection=\",round(Ratio,3)\n" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "# example10.5 page number 324" + ] + }, + { + "cell_type": "code", + "execution_count": 5, + "metadata": { + "collapsed": false + }, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "P= 127.632 KN\n" + ] + } + ], + "source": [ + "#variable declaration\n", + "\n", + "#A symmetric I-section of size 180 mm × 40 mm, 8 mm thick is strengthened with 240 mm × 10 mm rectangular plate on top flange. If permissible stress in the material is 150 N/mm^2, determine how much concentrated load the beam of this section can carry at centre of 4 m span. \n", + "\n", + "b1=float(240)\n", + "b=float(180)\n", + "t=float(10)\n", + "h=float(400)\n", + "w=float(8)\n", + " \n", + "A=float(240*10+180*8+384*8+180*8) #Area of section,A\n", + "\n", + "Y=(240*10*405+180*8*(400-4)+384*8*200+180*8*4)/A\n", + "\n", + "I=(b1*pow(t,3)/12)+(b1*t*(pow(((h+5)-Y),2)))+(b*pow(w,3)/12)+(b*w*(pow(((h-4)-Y),2)))+(w*pow((h-16),3)/12)+((h-16)*w*(pow(((h/2)-Y),2)))+(b*pow(w,3)/12)+(b*w*(pow((4-Y),2)))\n", + "\n", + "ytop=(h+t/2)-Y\n", + "ybottom=Y\n", + "ymax=Y\n", + "\n", + "Z=I/ymax\n", + "fper=150\n", + "M=fper*Z/1000000 #Momnent carrying capacity of the section\n", + "\n", + "#Let P kN be the central concentrated load the simply supported beam can carry. Then max bending movement in the beam\n", + "\n", + "P=M*4/(w/2)\n", + "\n", + "print \"P=\",round(P,3),\"KN\"" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "# example10.6 page number 327" + ] + }, + { + "cell_type": "code", + "execution_count": 6, + "metadata": { + "collapsed": false + }, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "w= 2.734 KN/m\n", + "calculation mistake in book\n" + ] + } + ], + "source": [ + "#The cross-section of a cast iron beam. The top flange is in compression and bottom flange is in tension. Permissible stress in tension is 30 N/mm^2 and its value in compression is 90 N/mm^2\n", + "#variable declaration\n", + "from math import sqrt\n", + "b1=float(75)\n", + "h1=50\n", + "h2=50\n", + "b2=float(150)\n", + "t=float(25)\n", + "h=float(200)\n", + "\n", + " \n", + "A=float(75*50+25*100+150*50) #Area of section,A\n", + "\n", + "Y=(75*50*175+25*100*100+150*50*25)/A\n", + "\n", + "I=(b1*pow(h1,3)/12)+(b1*h1*(pow(((h-(h1/2))-Y),2)))+(t*pow((h-h1-h2),3)/12)+(t*(h-h1-h2)*(pow(((h/2)-Y),2)))+(b2*pow(h2,3)/12)+(b2*h2*(pow(((h2/2)-Y),2)))\n", + "\n", + "\n", + "\n", + "ytop=(h-Y)\n", + "ybottom=Y\n", + "\n", + "\n", + "Z1=I/ytop\n", + "fperc=90\n", + "#Top fibres are in compression. Hence from consideration of compression strength, moment carrying capacity of the beam is given by\n", + "\n", + "M1=fperc*Z1/1000000 #Momnent carrying capacity of the section,KN-m.\n", + "\n", + "#Bottom fibres are in tension. Hence from consideration of tension, moment carrying capacity of the section is given by\n", + "\n", + "Z2=I/ybottom\n", + "\n", + "fpert=30 \n", + "\n", + "M2=fpert*Z2/1000000 #Momnent carrying capacity of the section,KN-m.\n", + "\n", + "\n", + "#Actual moment carrying capacity is the lower value of the above two values. Hence moment carrying capacity of the section is \n", + "Mmax=min(M1,M2)\n", + "\n", + "L=float(5)\n", + "w=sqrt(Mmax*8/pow(L,2))\n", + "\n", + "print\"w=\",round(w,3),\"KN/m\"\n", + "print\"calculation mistake in book\"" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "# example10.7 page number 327" + ] + }, + { + "cell_type": "code", + "execution_count": 7, + "metadata": { + "collapsed": false + }, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "y= 5.0 m\n", + "f= 5.24 N/mm^2\n" + ] + } + ], + "source": [ + "#The diameter of a concrete flag post varies from 240 mm at base to 120 mm at top. The height of the post is 10 m. If the post is subjected to a horizontal force of 600 N at top\n", + "#Consider a section y metres from top. Diameter at this section is d.\n", + "#d=120+12*y\n", + "#I=pi*pow(d,4)/64\n", + "#Z=I*2/d=pi*pow(d,3)/32\n", + "#variable declaration \n", + "#M=600*1000*y #moment,N-mm\n", + "#f*Z=M,f is extreme fibre stress.\n", + "y=float(5) \n", + "print \"y=\",round(y,2),\"m\"\n", + "\n", + "#Stress at this section f is given by\n", + "P=600\n", + "M=P*y*1000\n", + "d=120+12*y\n", + "I=pi*pow(d,4)/64\n", + "Z=I*2/d\n", + "\n", + "f=M/Z\n", + "\n", + "print \"f=\",round(f,3),\"N/mm^2\"" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "# example 10.9 page number 329" + ] + }, + { + "cell_type": "code", + "execution_count": 8, + "metadata": { + "collapsed": false + }, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "b= 150.0 mm\n", + "d= 300.0 mm\n" + ] + } + ], + "source": [ + "#Design a timber beam is to carry a load of 5 kN/m over a simply supported span of 6 m. Permissible stress in timber is 10 N/mm2. Keep depth twice the width.\n", + "\n", + "#variable declaration\n", + "w=float(5) #KN/m\n", + "L=float(6) #m \n", + "\n", + "M=w*1000000*pow(L,2)/8 #Maximum bending moment,N-mm\n", + "\n", + "#Let b be the width and d the depth. Then in this problem d = 2b.\n", + "#Z=b*pow(d,2)/6=2*(b**3)/3\n", + "f=10 #N/mm^2\n", + "#f*Z=M\n", + "b=float(((M*3)/(2*f))**(0.3333))\n", + "print \"b=\",round(b),\"mm\"\n", + "\n", + "d=2*b\n", + "print \"d=\",round(d),\"mm\"\n", + "\n" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "# example 10.10 page number 329\n", + "\n" + ] + }, + { + "cell_type": "code", + "execution_count": 9, + "metadata": { + "collapsed": false + }, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "d= 164.3 mm\n" + ] + } + ], + "source": [ + "from math import sqrt\n", + "#A cantilever of 3 m span, carrying uniformly distributed load of 3 kN/m is to be designed using cast iron rectangular section. Permissible stresses in cast iron are f = 30 N/mm^2 in tension and fc = 90 N/mm^2 in compression\n", + "\n", + "L=float(3) #Span of cantilever,m\n", + "w=float(3) #uniformly distributed load,KN/m\n", + "\n", + "M=w*1000000*pow(L,2)/2 #Maximum moment,N-mm\n", + "#let b be the width and d the depth\n", + "#Z=b*pow(d,2)/6\n", + "\n", + "#Since it is rectangular section, N-A lies at mid-depth, and stresses at top and bottom are same. Hence, permissible tensile stress value is reached earlier and it governs the design.\n", + "fper=30 #N/mm^2\n", + "b=100 #mm\n", + "f=30 \n", + "\n", + "#f*Z=M\n", + "\n", + "d=sqrt((M*6)/(b*f))\n", + "\n", + "print \"d=\",round(d,1),\"mm\"" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "# example 10.11 page number 330" + ] + }, + { + "cell_type": "code", + "execution_count": 10, + "metadata": { + "collapsed": false + }, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "d= 23.11 mm\n", + "select 25mm bar \n" + ] + } + ], + "source": [ + "from math import pi\n", + "\n", + "#variable declaration\n", + "\n", + "# Let the diameter of the bar be ‘d’. Now, W = 800 N L = 1 m = 1000 mm\n", + "L=1000\n", + "W=800\n", + "M=W*L/4 #Maximum moment,N-mm\n", + "f=150 #permissible stress,N/mm^2\n", + "\n", + "d=float((((M*32)/(pi*f)))**(0.33))\n", + "\n", + "print \"d=\",round(d,2),\"mm\"\n", + "print \"select 25mm bar \"\n" + ] + } + ], + "metadata": { + "anaconda-cloud": {}, + "kernelspec": { + "display_name": "Python [Root]", + "language": "python", + "name": "Python [Root]" + }, + "language_info": { + "codemirror_mode": { + "name": "ipython", + "version": 2 + }, + "file_extension": ".py", + "mimetype": "text/x-python", + "name": "python", + "nbconvert_exporter": "python", + "pygments_lexer": "ipython2", + "version": "2.7.12" + } + }, + "nbformat": 4, + "nbformat_minor": 0 +} diff --git a/MECHANICS_OF_SOLIDS_by_S.S._Bhavikatti/Chapter11.ipynb b/MECHANICS_OF_SOLIDS_by_S.S._Bhavikatti/Chapter11.ipynb new file mode 100644 index 00000000..06fa6f21 --- /dev/null +++ b/MECHANICS_OF_SOLIDS_by_S.S._Bhavikatti/Chapter11.ipynb @@ -0,0 +1,654 @@ +{ + "cells": [ + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "# Chapter11-PRINCIPAL STRESSES AND STRAINS" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "# example 11.2 page number 352" + ] + }, + { + "cell_type": "code", + "execution_count": 1, + "metadata": { + "collapsed": false + }, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "(a) P= 14726.22 N\n", + "(b) P= -44178.65 N compressive\n", + "Material fails because of maximum shear and not by axial compression.\n", + "P= 24544.0 N\n", + "The plane of qmax is at 45° to the plane of px. \n" + ] + } + ], + "source": [ + "from math import sqrt,pi\n", + "\n", + "#A material has strength in tension, compression and shear as 30N/mm2, 90 N/mm2 and 25 N/mm2, respectively. If a specimen of diameter 25 mm is tested in tension and compression identity the failure surfaces and loads. \n", + "\n", + "#variable declaration\n", + "\n", + "#In tension: Let axial direction be x direction. Since it is uniaxial loading, py = 0, q = 0 and only px exists.when the material is subjected to full tensile stress, px = 30 N/mm^2.\n", + "\n", + "pt=float(30)\n", + "pc=float(90)\n", + "ps=float(25)\n", + "\n", + "d=float(25)\n", + "px=float(30) #N/mm^2\n", + "py=0\n", + "q=0\n", + "p1=(px+py)/2+sqrt(pow(((px-py)/2),2)+pow(q,2))\n", + "\n", + "p2=(px+py)/2-sqrt(pow(((px-py)/2),2)+pow(q,2))\n", + "\n", + "qmax=(px-py)/2\n", + "\n", + "#Hence failure criteria is normal stress p1\n", + "\n", + "A=pi*pow(d,2)/4\n", + "\n", + "#Corresponding load P is obtained by\n", + "p=p1\n", + "P=p1*A\n", + "\n", + "print \"(a) P=\",round(P,2),\"N\"\n", + "\n", + "#In case of compression test,\n", + "\n", + "px=-pc\n", + "py=q=0\n", + "\n", + "P=-px*A\n", + "\n", + "print \"(b) P=\",round((-P),2),\"N compressive\"\n", + "\n", + "#at this stage\n", + "\n", + "qmax=sqrt((pow((px-py)/2,2))+pow(q,2))\n", + "\n", + "print \"Material fails because of maximum shear and not by axial compression.\"\n", + "qmax=25\n", + "px=2*qmax\n", + "\n", + "P=px*A\n", + "print\"P=\",round(P),\"N\"\n", + "print \"The plane of qmax is at 45° to the plane of px. \"\n" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "# example 11.3 page number 354" + ] + }, + { + "cell_type": "code", + "execution_count": 2, + "metadata": { + "collapsed": false + }, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "pn= 30.0 N/mm^2\n", + "pt= 86.6 N/mm^2\n", + "p= 91.65 N/mm^2\n", + "alpha= 19.1 °\n" + ] + } + ], + "source": [ + "#The direct stresses at a point in the strained material are 120 N/mm2 compressive and 80 N/mm2 tensile. There is no shear stress.\n", + "\n", + "from math import sqrt,cos,sin,atan,pi\n", + "#variable declaration\n", + "\n", + "#The plane AC makes 30° (anticlockwise) to the plane of px (y-axis). Hence theta= 30°. px = 80 N/mm^2 py = – 120 N/mm^2 ,q = 0\n", + "\n", + "px=float(80)\n", + "py=float(-120)\n", + "q=float(0)\n", + "theta=30\n", + "pn=((px+py)/2)+((px-py)/2)*cos(2*theta*pi/180)+q*sin(2*theta*pi/180)\n", + "\n", + "print\"pn=\",round(pn),\"N/mm^2\"\n", + "\n", + "pt=((px-py)/2)*sin(2*theta*pi/180)-q*cos(2*theta*pi/180)\n", + "\n", + "print\"pt=\",round(pt,1),\"N/mm^2\"\n", + "p=sqrt(pow(pn,2)+pow(pt,2))\n", + "\n", + "print\"p=\",round(p,2),\"N/mm^2\"\n", + "\n", + "alpha=atan(pn/pt)*180/pi\n", + "\n", + "print \"alpha=\", round(alpha,1),\"°\"\n" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "# example 11.4 page number 355" + ] + }, + { + "cell_type": "code", + "execution_count": 3, + "metadata": { + "collapsed": false + }, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "theta= 37.98 ° and 127.98 °\n", + "p1= 278.08 N/mm^2\n", + "p2= 71.92 N/mm^2\n", + "qmax= 103.08 N/mm^2\n" + ] + } + ], + "source": [ + "from math import sqrt,cos,sin,atan,pi\n", + "#variable declaration\n", + "#Let the principal plane make anticlockwise angle theta with the plane of px with y-axis. Then\n", + "\n", + "px=float(200) #N/mm^2\n", + "py=float(150) #N/mm^2\n", + "q=float(100) #N/mm^2\n", + "\n", + "theta1=(atan((2*q)/(px-py))*180)/(pi*2) \n", + "theta2=90+theta1\n", + "print\"theta=\",round(theta1,2),\"°\" \" and \",round(theta2,2),\"°\"\n", + "\n", + "p1=(px+py)/2+sqrt(pow(((px-py)/2),2)+pow(q,2))\n", + "\n", + "print \"p1=\",round(p1,2),\"N/mm^2\"\n", + "\n", + "p2=(px+py)/2-sqrt(pow(((px-py)/2),2)+pow(q,2))\n", + "\n", + "print \"p2=\",round(p2,2),\"N/mm^2\"\n", + "\n", + "qmax=sqrt((pow((px-py)/2,2))+pow(q,2))\n", + "\n", + "print\"qmax=\",round(qmax,2),\"N/mm^2\"\n" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "# example 11.5 page number 356" + ] + }, + { + "cell_type": "code", + "execution_count": 4, + "metadata": { + "collapsed": false + }, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "p1= 82.8 N/mm^2\n", + "p2= -62.8 N/mm^2\n", + "qmax= 72.8 N/mm^2\n", + "theta= 7.97 ° and 97.97 °\n", + "theta'= 37.03 ° and= 52.97 °\n", + "answer in book is wrong\n" + ] + } + ], + "source": [ + "\n", + "from math import sqrt,cos,sin,atan,pi\n", + "#variable declaration\n", + "#Let the principal plane make anticlockwise angle theta with the plane of px with y-axis. Then\n", + "\n", + "px=float(80) #N/mm^2\n", + "py=float(-60) #N/mm^2\n", + "q=float(20) #N/mm^2\n", + "\n", + "\n", + "p1=(px+py)/2+sqrt(pow(((px-py)/2),2)+pow(q,2))\n", + "\n", + "print \"p1=\",round(p1,2),\"N/mm^2\"\n", + "\n", + "p2=(px+py)/2-sqrt(pow(((px-py)/2),2)+pow(q,2))\n", + "\n", + "print \"p2=\",round(p2,2),\"N/mm^2\"\n", + "\n", + "qmax=sqrt((pow((px-py)/2,2))+pow(q,2))\n", + "\n", + "print\"qmax=\",round(qmax,2),\"N/mm^2\"\n", + "\n", + "#let theta be the inclination of principal stress to the plane of px.\n", + "\n", + "\n", + "theta1=(atan((2*q)/(px-py))*180)/(pi*2) \n", + "theta2=90+theta1\n", + "print\"theta=\",round(theta1,2),\"°\" \" and \",round(theta2,2),\"°\"\n", + "\n", + "#Planes of maximum shear make 45° to the above planes.\n", + "theta11=45-theta1\n", + "theta22=theta2-45\n", + "print\"theta'=\",round(theta11,2),\"°\",\"and=\",round(theta22,2),\"°\"\n", + "\n", + "print\"answer in book is wrong\"" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "# example 11.6 page number 357" + ] + }, + { + "cell_type": "code", + "execution_count": 5, + "metadata": { + "collapsed": false + }, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "p1= -35.96 N/mm^2\n", + "p2= -139.04 N/mm^2\n", + "qmax= 51.54 N/mm^2\n", + "theta= 37.98 ° and 127.98 °\n" + ] + } + ], + "source": [ + "from math import sqrt,cos,sin,atan,pi\n", + "#variable declaration\n", + "#Let the principal plane make anticlockwise angle theta with the plane of px with y-axis. Then\n", + "\n", + "px=float(-100) #N/mm^2\n", + "py=float(-75) #N/mm^2\n", + "q=float(-50) #N/mm^2\n", + "\n", + "\n", + "p1=(px+py)/2+sqrt(pow(((px-py)/2),2)+pow(q,2))\n", + "\n", + "print \"p1=\",round(p1,2),\"N/mm^2\"\n", + "\n", + "p2=(px+py)/2-sqrt(pow(((px-py)/2),2)+pow(q,2))\n", + "\n", + "print \"p2=\",round(p2,2),\"N/mm^2\"\n", + "\n", + "qmax=sqrt((pow((px-py)/2,2))+pow(q,2))\n", + "\n", + "print\"qmax=\",round(qmax,2),\"N/mm^2\"\n", + "\n", + "#let theta be the inclination of principal stress to the plane of px.\n", + "\n", + "\n", + "theta1=(atan((2*q)/(px-py))*180)/(pi*2) \n", + "theta2=90+theta1\n", + "print\"theta=\",round(theta1,2),\"°\" \" and \",round(theta2,2),\"°\"\n" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "# example 11.7 page number 358" + ] + }, + { + "cell_type": "code", + "execution_count": 6, + "metadata": { + "collapsed": false + }, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "(i) p1= 131.07 N/mm^2\n", + "p2= -81.07 N/mm^2\n", + "(ii) qmax= 106.07 N/mm^2\n", + "theta= -22.5 ° clockwise\n", + "theta2= 22.5 °\n", + "p= 108.97 N/mm^2\n", + "phi= 13.3 °\n", + "mitake in book answer is wrong\n" + ] + } + ], + "source": [ + "from math import sqrt,cos,sin,atan,pi\n", + "#variable declaration\n", + "#Let the principal plane make anticlockwise angle theta with the plane of px with y-axis. Then\n", + "\n", + "px=float(-50) #N/mm^2\n", + "py=float(100) #N/mm^2\n", + "q=float(75) #N/mm^2\n", + "\n", + "\n", + "p1=(px+py)/2+sqrt(pow(((px-py)/2),2)+pow(q,2))\n", + "\n", + "print \"(i) p1=\",round(p1,2),\"N/mm^2\"\n", + "\n", + "p2=(px+py)/2-sqrt(pow(((px-py)/2),2)+pow(q,2))\n", + "\n", + "print \"p2=\",round(p2,2),\"N/mm^2\"\n", + "\n", + "qmax=sqrt((pow((px-py)/2,2))+pow(q,2))\n", + "\n", + "print\"(ii) qmax=\",round(qmax,2),\"N/mm^2\"\n", + "\n", + "#let theta be the inclination of principal stress to the plane of px.\n", + "\n", + "\n", + "theta1=(atan((2*q)/(px-py))*180)/(pi*2) \n", + "\n", + "print\"theta=\",round(theta1,2),\"°\" \" clockwise\"\n", + "\n", + "#Plane of maximum shear makes 45° to it \n", + "\n", + "theta2=theta1+45\n", + "print\"theta2=\",round(theta2,2),\"°\" \n", + "\n", + "#Normal stress on this plane is given by\n", + "\n", + "pn=((px+py)/2)+((px-py)/2)*cos(2*theta2*pi/180)+q*sin(2*theta2*pi/180)\n", + "\n", + "pt=qmax\n", + "\n", + "#Resultant stress\n", + "p=sqrt(pow(pn,2)+pow(pt,2))\n", + "\n", + "print \"p=\",round(p,2),\"N/mm^2\"\n", + "\n", + "#Let ‘p’ make angle phi to tangential stress (maximum shear stress plane). \n", + "\n", + "phi=atan(pn/pt)*180/pi\n", + "\n", + "print \"phi=\",round(phi,1),\"°\"\n", + "\n", + "#there is mistake in book\n", + "print\"mitake in book answer is wrong\"" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "# example 11.9 page number 361" + ] + }, + { + "cell_type": "code", + "execution_count": 7, + "metadata": { + "collapsed": false + }, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + " p1= 0.17 N/mm^2\n", + " p2= -84.17 N/mm^2\n" + ] + } + ], + "source": [ + "from math import sqrt\n", + "\n", + "#variable declaration\n", + "\n", + "w=float(100) #wide of rectangular beam,mm\n", + "h=float(200) #height or rectangular beam dude,mm\n", + "\n", + "I=w*pow(h,3)/12\n", + "\n", + "#At point A, which is at 30 mm below top fibre \n", + "y=100-30\n", + "M=float(80*1000000) #sagging moment,KN-m\n", + "\n", + "fx=M*y/I\n", + "\n", + "px=-fx\n", + "F=float(100*1000 ) #shear force,N\n", + "b=float(100)\n", + "A=b*30\n", + "y1=100-15\n", + "\n", + "q=(F*(A*y1))/(b*I) #shearing stress,N/mm^2\n", + "\n", + "py=0\n", + "p1=(px+py)/2+sqrt(pow(((px-py)/2),2)+pow(q,2))\n", + "p2=(px+py)/2-sqrt(pow(((px-py)/2),2)+pow(q,2))\n", + "print \" p1=\",round(p1,2),\"N/mm^2\"\n", + "print \" p2=\",round(p2,2),\"N/mm^2\"" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "# example 11.10 page number 362\n", + " " + ] + }, + { + "cell_type": "code", + "execution_count": 8, + "metadata": { + "collapsed": false + }, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "(i) p1= 0.8333 N/mm^2\n", + " p2= -0.8333 N/mm^2\n", + "theta= 45.0 ° and 135.0 °\n", + "(ii) p1= 0.0122 N/mm^2\n", + " p2= -32.4196 N/mm^2\n", + "theta= -1.0 ° and 89.0 °\n", + "mistake in book\n", + "(iii) p1= 0.0 N/mm^2\n", + " p2= -64.8148 N/mm^2\n", + "theta= -0.0 ° and 90.0 °\n" + ] + } + ], + "source": [ + "from math import sqrt,atan\n", + "\n", + "P1=float(20) #vertical loading from A at distance of 1m,KN.\n", + "P2=float(20) #vertical loading from A at distance of 2m,KN.\n", + "P3=float(20) #vertical loading from A at distance of 3m,KN.\n", + "Ra=(P1+P2+P3)/2 #Due to symmetry\n", + "\n", + "Rb=Ra \n", + "#At section 1.5 m from A\n", + "F=(Ra-P1)*1000\n", + "M=float((Ra*1.5-P1*0.5)*1000000)\n", + "b=float(100)\n", + "h=float(180)\n", + "\n", + "I=float((b*pow(h,3))/12)\n", + "\n", + "# Bending stress \n", + "#f=M*y/I\n", + "y11=0\n", + "f1=(-1)*M*y11/I\n", + "y22=45\n", + "f2=(-1)*M*y22/I\n", + "y33=90\n", + "f3=(-1)*M*y33/I\n", + "#Shearing stress at a fibre ‘y’ above N–A is\n", + "#q=(F/(b*I))*(A*y1)\n", + "#at y=0,\n", + "y1=45\n", + "A1=b*90\n", + "q1=(F/(b*I))*(A1*y1)\n", + "#at y=45\n", + "y2=float(90-45/2)\n", + "A2=b*45\n", + "q2=(F/(b*I))*(A2*y2)\n", + "#at y=90\n", + "q3=0\n", + "\n", + "#(a) At neutral axis (y = 0) : The element is under pure shear \n", + "\n", + "py=0\n", + "\n", + "p1=(f1+py)/2+sqrt(pow(((f1-py)/2),2)+pow(q1,2))\n", + "\n", + "p2=(f1+py)/2-sqrt(pow(((f1-py)/2),2)+pow(q1,2))\n", + "print \"(i) p1=\",round(p1,4),\"N/mm^2\"\n", + "print \" p2=\",round(p2,4),\"N/mm^2\"\n", + "\n", + "theta1=45\n", + "theta2=theta1+90\n", + "print\"theta=\",round(theta1),\"°\",\" and \",round(theta2),\"°\"\n", + "\n", + "#(b) At (y = 45)\n", + "py=0 \n", + "\n", + "p1=(f2+py)/2+sqrt(pow(((f2-py)/2),2)+pow(q2,2))\n", + "\n", + "p2=(f2+py)/2-sqrt(pow(((f2-py)/2),2)+pow(q2,2))\n", + "print \"(ii) p1=\",round(p1,4),\"N/mm^2\"\n", + "print \" p2=\",round(p2,4),\"N/mm^2\"\n", + "\n", + "thetab1=(atan((2*q2)/(f2-py))*180)/(pi*2)\n", + "thetab2=thetab1+90\n", + "print\"theta=\",round(thetab1),\"°\",\" and \",round(thetab2),\"°\"\n", + "#mistake in book\n", + "print\"mistake in book\"\n", + "\n", + "#(c) At Y=90\n", + "\n", + "py=0\n", + "\n", + "p1=(f3+py)/2+sqrt(pow(((f3-py)/2),2)+pow(q3,2))\n", + "\n", + "p2=(f3+py)/2-sqrt(pow(((f3-py)/2),2)+pow(q3,2))\n", + "print \"(iii) p1=\",round(p1,4),\"N/mm^2\"\n", + "print \" p2=\",round(p2,4),\"N/mm^2\"\n", + "\n", + "thetac1=(atan((2*q3)/(f3-py))*180)/(pi*2)\n", + "thetac2=thetac1+90\n", + "print\"theta=\",round(thetac1),\"°\",\" and \",round(thetac2),\"°\"" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "# example 11.11 page number 364\n" + ] + }, + { + "cell_type": "code", + "execution_count": 9, + "metadata": { + "collapsed": false + }, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + " p1= 5.21 N/mm^2\n", + " p2= -107.56 N/mm^2\n", + "qmax= 56.38 N/mm^2\n" + ] + } + ], + "source": [ + "from math import sqrt\n", + "\n", + "#variable declaration\n", + "L=float(6) #m\n", + "w=float(60) #uniformly distributed load,KN/m\n", + "Rs=L*w/2 #Reaction at support,KN\n", + "\n", + "#Moment at 1.5 m from support\n", + "M =float( Rs*1.5-(w*pow(1.5,2)/2))\n", + "#Shear force at 1.5 m from support \n", + "F=Rs-1.5*w\n", + "\n", + "B=float(200) #width of I-beam,mm\n", + "H=float(400) #height or I-beam,mm\n", + "b=float(190)\n", + "h=float(380)\n", + "I= (B*pow(H,3)/12)-(b*pow(h,3)/12)\n", + "\n", + "#Bending stress at 100 mm above N–A\n", + "y=100\n", + "\n", + "f=M*1000000*y/I\n", + "\n", + "#Thus the state of stress on an element at y = 100 mm, as px = f,py=0\n", + "px=-f\n", + "py=0\n", + "A=200*10*195+10*90*145\n", + "q=(F*1000*(A))/(10*I) #shearing stress,N/mm^2\n", + "\n", + "p1=(px+py)/2+sqrt(pow(((px-py)/2),2)+pow(q,2))\n", + "p2=(px+py)/2-sqrt(pow(((px-py)/2),2)+pow(q,2))\n", + "print \" p1=\",round(p1,2),\"N/mm^2\"\n", + "print \" p2=\",round(p2,2),\"N/mm^2\"\n", + "\n", + "\n", + "qmax=sqrt((pow((px-py)/2,2))+pow(q,2))\n", + "\n", + "print\"qmax=\",round(qmax,2),\"N/mm^2\"\n" + ] + } + ], + "metadata": { + "kernelspec": { + "display_name": "Python [Root]", + "language": "python", + "name": "Python [Root]" + }, + "language_info": { + "codemirror_mode": { + "name": "ipython", + "version": 2 + }, + "file_extension": ".py", + "mimetype": "text/x-python", + "name": "python", + "nbconvert_exporter": "python", + "pygments_lexer": "ipython2", + "version": "2.7.12" + } + }, + "nbformat": 4, + "nbformat_minor": 0 +} diff --git a/MECHANICS_OF_SOLIDS_by_S.S._Bhavikatti/Chapter2.ipynb b/MECHANICS_OF_SOLIDS_by_S.S._Bhavikatti/Chapter2.ipynb new file mode 100644 index 00000000..a94760d2 --- /dev/null +++ b/MECHANICS_OF_SOLIDS_by_S.S._Bhavikatti/Chapter2.ipynb @@ -0,0 +1,1857 @@ +{ + "cells": [ + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "# Chapter2-FUNDAMENTALS OF STATICS" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "# Example 2.1 Page number 21" + ] + }, + { + "cell_type": "code", + "execution_count": 43, + "metadata": { + "collapsed": false + }, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "\n", + " \n", + " Moment is = -9607.41 Nmm clockwise\n" + ] + } + ], + "source": [ + "import math\n", + "#F force \n", + "#hd horizontal distance \n", + "#vd vertical distance\n", + "#O angle\n", + "#M moment of force\n", + "#Taking clockwise moment as positive\n", + "#calculations\n", + "F=100.0\n", + "hd=400.0\n", + "vd=500.0\n", + "o=60.0\n", + "M=F*(math.cos(o/180.0*3.14)*vd-math.sin(o/180.0*3.14)*hd)\n", + "print '%s %.2f %s' %(\"\\n \\n Moment is =\", M ,\" Nmm clockwise\");\n", + "\n", + "\n" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "# Example 2.2 Page number 21" + ] + }, + { + "cell_type": "code", + "execution_count": 44, + "metadata": { + "collapsed": false + }, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "\n", + " \n", + " Distance = 2.00 m\n" + ] + } + ], + "source": [ + "import math\n", + "#F force \n", + "#hd horizontal distance \n", + "#vd vertical distance\n", + "#O angle\n", + "#M moment of force\n", + "#Taking clockwise moment as positive\n", + "#calculations\n", + "F=5000.0\n", + "o=37\n", + "M=8000.0\n", + "hd=M/(F*math.cos(o*3.14/180))\n", + "print '%s %.2f %s' %(\"\\n \\n Distance =\", hd ,\"m\");\n", + "\n", + "\n" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "# Example 2.3 Page number 25" + ] + }, + { + "cell_type": "code", + "execution_count": 45, + "metadata": { + "collapsed": false + }, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "\n", + " \n", + " Distance = 2.00 m\n" + ] + } + ], + "source": [ + "import math\n", + "#F force \n", + "#hd horizontal distance \n", + "#vd vertical distance\n", + "#O angle\n", + "#M moment of force\n", + "#Taking clockwise moment as positive\n", + "#calculations\n", + "F=5000.0\n", + "o=37\n", + "M=8000.0\n", + "hd=M/(F*math.cos(o*3.14/180))\n", + "print '%s %.2f %s' %(\"\\n \\n Distance =\", hd ,\"m\");\n", + "\n", + "\n" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "# Example 2.4 Page number 25" + ] + }, + { + "cell_type": "code", + "execution_count": 46, + "metadata": { + "collapsed": false + }, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "\n", + " \n", + " Resultant Force = 161.52 N\n", + "\n", + " \n", + " Resultant angle = 0.33 radians\n" + ] + } + ], + "source": [ + "import math\n", + "#R resultant force\n", + "#Rx resultant horizontal component\n", + "#Ry resultant vertical component\n", + "#f1 force\n", + "#f2 force\n", + "#f3 force\n", + "#o1 angle with the line \n", + "#o2 angle with the line \n", + "#o3 angle with the line \n", + "#O angle of resultant force with line\n", + "f1=70.0\n", + "f2=80.0\n", + "f3=50.0 \n", + "o1=50.0\n", + "o2=25.0\n", + "o3=-45.0\n", + "Rx=(f1*math.cos(o1/180*3.14)+f2*math.cos(o2/180*3.14)+f3*math.cos(o3/180*3.14));\n", + "Ry=(f1*math.sin(o1/180*3.14)+f2*math.sin(o2/180*3.14)+f3*math.sin(o3/180*3.14));\n", + "R=math.sqrt(Rx**2+Ry**2)\n", + "O=math.atan(Ry/Rx)\n", + "print '%s %.2f %s' %(\"\\n \\n Resultant Force =\", R ,\"N\");\n", + "print '%s %.2f %s' %(\"\\n \\n Resultant angle =\", O ,\"radians\");\n", + "\n", + "\n", + "\n", + "\n", + "\n" + ] + }, + { + "cell_type": "markdown", + "metadata": { + "collapsed": true + }, + "source": [ + "# Example 2.5 Page number 26" + ] + }, + { + "cell_type": "code", + "execution_count": 47, + "metadata": { + "collapsed": false + }, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "\n", + " \n", + " Resultant Force along the incline plane = 234.24 N\n", + "\n", + " \n", + " Resultant Force vertical to the incline plane = -0.46 N\n" + ] + } + ], + "source": [ + "import math\n", + "#O angle of inclined plane\n", + "#N normal reaction\n", + "#W weight\n", + "#F,T forces\n", + "#Rx resultant horizontal component\n", + "#Ry resultant vertical component\n", + "o = 60.0 \n", + "W = 1000.0\n", + "N = 500.0\n", + "F = 100.0\n", + "T = 1200.0\n", + "Rx = T-F-(W*math.sin(o/180*3.14))\n", + "Ry = N-(W*math.cos(o/180*3.14))\n", + "print '%s %.2f %s' %(\"\\n \\n Resultant Force along the incline plane =\", Rx ,\"N\");\n", + "print '%s %.2f %s' %(\"\\n \\n Resultant Force vertical to the incline plane =\", Ry ,\"N\");\n", + "\n", + "\n" + ] + }, + { + "cell_type": "markdown", + "metadata": { + "collapsed": true + }, + "source": [ + "# Example 2.6 Page number 26" + ] + }, + { + "cell_type": "code", + "execution_count": 48, + "metadata": { + "collapsed": false + }, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "Force 467.201871561 N\n", + "At an angle 61.0805191269\n" + ] + } + ], + "source": [ + "import math\n", + "R=1000.0 #Resultant force\n", + "F1=500.0 #Force \n", + "F2=1000.0 #force\n", + "o=45.0*3.14/180.0 #angle resultant makes with x axis \n", + "o1=30.0*3.14/180.0 #angle F1 makes with x axis \n", + "o2=60.0*3.14/180.0 #angle F2 makes with x axis \n", + "#F3coso3=Rcoso-F1coso1-F2sino2\n", + "#F3sino=Rsino-F1sino1-F2coso2\n", + "F3=((R*math.cos(o)-F1*math.cos(o1)-F2*math.cos(o2))**2+(R*math.sin(o)-F1*math.sin(o1)-F2*math.sin(o2))**2)**0.5\n", + "print \"Force\",F3,\"N\"\n", + "o3=180/3.14*math.atan((R*math.sin(o)-F1*math.sin(o1)-F2*math.sin(o2))/(R*math.cos(o)-F1*math.cos(o1)-F2*math.cos(o2)))\n", + "print \"At an angle\",o3" + ] + }, + { + "cell_type": "markdown", + "metadata": { + "collapsed": true + }, + "source": [ + "# Example 2.7 Page number 27" + ] + }, + { + "cell_type": "code", + "execution_count": 49, + "metadata": { + "collapsed": false + }, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "theta= 6.32 °\n" + ] + } + ], + "source": [ + "from math import cos,sin,atan,pi,asin\n", + "\n", + "#variable declaration\n", + "\n", + "P1=300.0\n", + "P2=500.0\n", + "thetaI=30.0*pi/180.0\n", + "thetaP2=30.0*pi/180\n", + "thetaP1=40.0*pi/180\n", + "# Let the x and y axes be If the resultant is directed along the x axis, its component in y direction is zero.\n", + "#Taking horizontal direction towards left as x axis and the vertical downward direction as y axis. \n", + "##sum of vertical Fy & sum of horizontal forces Fx is zero\n", + "#Assume direction of Fx is right\n", + "#Assume direction of Fy is up\n", + "\n", + "F=(P2*sin(thetaP2))/(P1)\n", + "theta=(asin((F/(cos(20*pi/180)*2)))*180/pi)-20\n", + "\n", + "print\"theta=\",round(theta,2),\"°\"\n" + ] + }, + { + "cell_type": "markdown", + "metadata": { + "collapsed": true + }, + "source": [ + "# example2.8 page number 30\n" + ] + }, + { + "cell_type": "code", + "execution_count": 50, + "metadata": { + "collapsed": false + }, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "R= 68.0592 KN\n", + "alpha= 81.55 °\n", + "x= 3.326 m\n" + ] + } + ], + "source": [ + "from math import cos,sin,atan,sqrt,pi\n", + "\n", + "#variable declaration\n", + "\n", + "P1=20.0\n", + "P2=30.0\n", + "P3=20.0\n", + "theta3=60.0*pi/180.0\n", + "\n", + "#Taking horizontal direction towards left as x axis and the vertical downward direction as y axis. \n", + "##sum of vertical Fy & sum of horizontal forces Fx is zero\n", + "#Assume direction of Fx is right\n", + "#Assume direction of Fy is up\n", + "\n", + "Fx=20.0*cos(theta3)\n", + "Fy=P1+P2+P3*sin(theta3)\n", + "\n", + "\n", + "R=sqrt(pow(Fx,2)+pow(Fy,2))\n", + "print \"R=\",round(R,4),\"KN\"\n", + "\n", + "alpha=atan(Fy/Fx)*180/pi\n", + "print\"alpha=\",round(alpha,2),\"°\"\n", + "\n", + "#moment at A\n", + "\n", + "MA=P1*1.5+P2*3.0+P3*sin(theta3)*6.0\n", + "\n", + "#The distance of the resultant from point O is given by:\n", + "\n", + "d=MA/R\n", + "x=d/sin(alpha*pi/180)\n", + "print\"x=\",round(x,3),\"m\"" + ] + }, + { + "cell_type": "markdown", + "metadata": { + "collapsed": true + }, + "source": [ + "# example2.9 page number 31\n" + ] + }, + { + "cell_type": "code", + "execution_count": 51, + "metadata": { + "collapsed": false + }, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "R= 91.19 KN\n", + "alpha= 35.84 °\n", + "x= 317.023 mm\n" + ] + } + ], + "source": [ + "from math import cos,sin,atan,sqrt\n", + "\n", + "#variable declaration\n", + "\n", + "PA=100.0 #inclined up loading at 60° at A, N\n", + "PB1=80.0 #Vertical down loading at B,N\n", + "PB2=80.0 #Horizontal right loading at at B,N \n", + "PC=120.0 #inclined down loading at 30° at C,N\n", + "\n", + "thetaA=60.0*pi/180.0\n", + "thetaB=30.0*pi/180.0\n", + "\n", + "\n", + "\n", + "#Taking horizontal direction towards left as x axis and the vertical downward direction as y axis. \n", + "##sum of vertical Fy & sum of horizontal forces Fx is zero\n", + "#Assume direction of Fx is right\n", + "#Assume direction of Fy is up\n", + "\n", + "Fx=PB2-PA*cos(thetaA)-PC*cos(thetaB)\n", + "Rx=-Fx\n", + "\n", + "Fy=PB1+PC*sin(thetaB)-PA*sin(thetaA)\n", + "Ry=Fy\n", + "\n", + "\n", + "R=sqrt(pow(Rx,2)+pow(Ry,2))\n", + "print \"R=\",round(R,2),\"KN\"\n", + "\n", + "alpha=atan(Fy/Fx)*180/pi\n", + "print\"alpha=\",round((-alpha),2),\"°\"\n", + "\n", + "#Let x be the distance from A at which the resultant cuts AC. Then taking A as moment centre,\n", + "\n", + "x=(PB1*100*sin(thetaA)+PB2*50+PC*sin(thetaB)*100)/Ry\n", + "print\"x=\",round(x,3),\"mm\"\n" + ] + }, + { + "cell_type": "markdown", + "metadata": { + "collapsed": true + }, + "source": [ + "# example 2.10 page number 32" + ] + }, + { + "cell_type": "code", + "execution_count": 52, + "metadata": { + "collapsed": false + }, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "R= 565.69 N\n", + "theta= 45.0 °\n", + "x= 2.5 m\n" + ] + } + ], + "source": [ + "from math import sqrt,pi,atan\n", + "\n", + "#variable declaration\n", + "\n", + "PA=800.0 #Vertical down loading at A,N\n", + "PC=400.0 #vertical up loading at B,N\n", + "HD=600.0 #Horizontal left loading at A,N\n", + "HB=200.0 #Horizontal right loading at B,N\n", + "a=1.0 #length of side,m\n", + " \n", + "#sum of vertical Fy & sum of horizontal forces Fx is zero\n", + "#Assume direction of Fx is right\n", + "#Assume direction of Fy is up\n", + "Fx=HB-HD\n", + "Fy=PC-PA\n", + "\n", + "\n", + "R=sqrt(pow(Fx,2)+pow(Fy,2))\n", + "print \"R=\",round(R,2),\"N\"\n", + "\n", + "theta=atan(Fy/Fx)*180/pi\n", + "print\"theta=\",round(theta),\"°\"\n", + "\n", + "#moment at A\n", + "\n", + "MA=PC*a+HD*a\n", + "\n", + "#Let x be the distance from A along x axis, where resultant cuts AB.\n", + "\n", + "x=MA/Fy\n", + "\n", + "print\"x=\",round((-x),1),\"m\"\n", + "\n" + ] + }, + { + "cell_type": "markdown", + "metadata": { + "collapsed": true + }, + "source": [ + "# example 2.11 page number 32\n" + ] + }, + { + "cell_type": "code", + "execution_count": 53, + "metadata": { + "collapsed": false + }, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "R= 10.0 KN\n", + "theta= 0.0 ° i.e. , the resultant is in the direction x.\n" + ] + } + ], + "source": [ + "from math import sqrt,pi,atan,cos,sin\n", + "\n", + "#variable declaration\n", + "\n", + "PB=2.0 #loading at B,KN\n", + "PC=sqrt(3.0) #loading at C,KN\n", + "PD=5.0 #loading at D,KN\n", + "PE=PC #loading at E,KN\n", + "PF=PB #loading at F,KN\n", + "\n", + "#Let O be the centre of the encircling circle A, B, C, D, E and F. In regular hexagon each side is equal to the radius AO. Hence OAB is equilateral triangle.\n", + "\n", + "angleoab=60.0*pi/180\n", + "anglecab=angleoab/2.0\n", + "theta1=anglecab\n", + "theta2=(angleoab-theta1)\n", + "theta3=theta1\n", + "theta4=theta1\n", + "\n", + "#sum of vertical Fy & sum of horizontal forces Fx is zero\n", + "#Assume direction of Fx is right\n", + "#Assume direction of Fy is up\n", + "Fx=PB*cos(theta1+theta2)+PC*cos(theta2)+PD+PE*cos(theta3)+PF*cos(theta3+theta4)\n", + "\n", + "Fy=-PB*sin(theta1+theta2)-PC*sin(theta2)+0+PE*sin(theta3)+PF*sin(theta3+theta4)\n", + "\n", + "R=sqrt(pow(Fx,2)+pow(Fy,2))\n", + "print \"R=\",round(R,2),\"KN\"\n", + "\n", + "theta=atan(Fy/Fx)*180/pi\n", + "print\"theta=\",round(theta),\"°\",\"i.e.\",\",\",\"the resultant is in the direction x.\"\n", + "\n", + "\n" + ] + }, + { + "cell_type": "markdown", + "metadata": { + "collapsed": true + }, + "source": [ + "# example 2.12 page number 33" + ] + }, + { + "cell_type": "code", + "execution_count": 54, + "metadata": { + "collapsed": false + }, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "R= 4.66 N\n", + "alpha= 28.99 °\n", + "d= 42.73 mm\n" + ] + } + ], + "source": [ + "from math import sqrt,pi,atan\n", + "\n", + "#variable declaration\n", + "\n", + "P1=2.0 #loading at 1,KN\n", + "P2=1.5 #loading at 2,KN\n", + "P3=5.0 #loading at 3,KN\n", + "a=10.0 #side length,mm\n", + "\n", + "# If theta1, theta2 and theta3 are the slopes of the forces 2 kN, 5 kN and 1.5 kN forces with respect to x axis, then \n", + "\n", + "\n", + "theta1=atan(a/a)\n", + "theta2=atan((3*a)/(4*a))\n", + "theta3=atan((a)/(2*a))\n", + "\n", + "\n", + "#sum of vertical Fy & sum of horizontal forces Fx is zero\n", + "#Assume direction of Fx is right\n", + "#Assume direction of Fy is up\n", + "Fx=P1*cos(theta1)+P3*cos(theta2)-P2*cos(theta3)\n", + "\n", + "Fy=P1*sin(theta1)-P3*sin(theta2)-P2*sin(theta3)\n", + "\n", + "R=sqrt(pow(Fx,2)+pow(Fy,2))\n", + "print \"R=\",round(R,2),\"N\"\n", + "\n", + "alpha=atan(Fy/Fx)*180/pi\n", + "print\"alpha=\",round((-alpha),2),\"°\"\n", + "\n", + "#Distance d of the resultant from O is given by\n", + "#Rd=sum of moment at A\n", + "\n", + "d=((a*3)*P1*cos(theta1)+(5*a)*P3*sin(theta2)+P2*(a)*sin(theta3))/(4.66)\n", + "print\"d=\",round(d,2),\"mm\"\n", + "\n", + "#Note: To find moment of forces about O, 2 kN force is resolved at it’s intersection with y axis and 5 kN and 1.5 kN forces are resolved at their intersection with x axis, and then Varignon theorem is used\n" + ] + }, + { + "cell_type": "markdown", + "metadata": { + "collapsed": true + }, + "source": [ + "# example 2.13 page number 34" + ] + }, + { + "cell_type": "code", + "execution_count": 55, + "metadata": { + "collapsed": false + }, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "R= 150.0 KN\n", + "MA= 270.0 KN-m\n", + "x= 1.8 m\n" + ] + } + ], + "source": [ + "from math import sqrt,pi,atan,cos,sin\n", + "\n", + "#variable declaration\n", + "\n", + "PB=20.0 #loading at B,KN\n", + "PC=30.0 #loading at C,KN\n", + "PD=40.0 #loading at D,KN\n", + "PA=60.0 #loading at E,KN\n", + "AB=1.0\n", + "BC=2.0\n", + "CD=1.0\n", + "#length are in m\n", + "\n", + "# Let x and y axes be selected\n", + "#sum of vertical Fy & sum of horizontal forces Fx is zero\n", + "#Assume direction of Fx is right\n", + "#Assume direction of Fy is up\n", + "Rx=0\n", + "Ry=PA+PB+PC+PD\n", + "\n", + "R=sqrt(pow(Rx,2)+pow(Ry,2))\n", + "print \"R=\",round(R,2),\"KN\"\n", + "\n", + "\n", + "#Taking clockwise moment as positive, \n", + "#sum of moment at A\n", + "\n", + "MA=(0)*PA+(AB)*PB+PC*(AB+BC)+PD*(AB+BC+CD)\n", + "print\"MA=\",round(MA,2),\"KN-m\"\n", + "\n", + "# The distance of resultant from A is,\n", + "\n", + "x=MA/R\n", + "print \"x=\",round(x,1),\"m\"\n" + ] + }, + { + "cell_type": "markdown", + "metadata": { + "collapsed": true + }, + "source": [ + "# example 2.14 page number 35" + ] + }, + { + "cell_type": "code", + "execution_count": 56, + "metadata": { + "collapsed": false + }, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "R= 100.0 KN in y-direction\n", + "MA= 300.0 KN-m\n", + "x= 3.0 m\n" + ] + } + ], + "source": [ + "from math import sqrt,pi,atan,cos,sin\n", + "\n", + "#variable declaration\n", + "\n", + "PB=30.0 #up loading at B,KN\n", + "PC=40.0 #down loading at C,KN\n", + "PD=50.0 #up loading at D,KN\n", + "PA=80.0 #down loading at A,KN\n", + "PE=60.0 #down loading at E,KN\n", + "AB=2.0\n", + "BC=2.0\n", + "CD=4.0\n", + "DE=2.0\n", + "#length are in m\n", + "\n", + "# Let x and y axes be selected\n", + "#sum of vertical Fy & sum of horizontal forces Fx is zero\n", + "#Assume direction of Fx is right\n", + "#Assume direction of Fy is up\n", + "Rx=0\n", + "Ry=PA-PB+PC-PD+PE\n", + "\n", + "R=sqrt(pow(Rx,2)+pow(Ry,2))\n", + "print \"R=\",round(R,2),\"KN\",\"in y-direction\"\n", + "\n", + "\n", + "#Taking clockwise moment as positive, \n", + "#sum of moment at A\n", + "\n", + "MA=(0)*PA-(AB)*PB+PC*(AB+BC)-PD*(AB+BC+CD)+PE*(AB+BC+CD+DE)\n", + "\n", + "print\"MA=\",round(MA,2),\"KN-m\"\n", + "\n", + "# The distance of resultant from A is,\n", + "\n", + "x=MA/R\n", + "print \"x=\",round(x),\"m\"\n" + ] + }, + { + "cell_type": "markdown", + "metadata": { + "collapsed": true + }, + "source": [ + "# example 2.15 page number 35" + ] + }, + { + "cell_type": "code", + "execution_count": 57, + "metadata": { + "collapsed": false + }, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "R= 2671.19 KN in y-direction\n", + "alpha 80.3 °\n", + "x= 141.195 mm\n" + ] + } + ], + "source": [ + "from math import pi,atan,sin ,cos,sqrt\n", + "\n", + "#variable declaration\n", + "P1=500.0 #Loading at inclined to 60.0°,N\n", + "P2=1000.0 #vertical loading at 150 distance from O,N\n", + "P3=1200.0 #vertical loading at 150 distance from O,N\n", + "H=700.0 #Horizontal loading at 300 ditance from O,N\n", + "a=150.0\n", + "theta=60.0*pi/180\n", + "#assume Resulat R at distance x from O,\n", + "#sum of vertical Fy & sum of horizontal forces Fx is zero\n", + "#Assume direction of Fx is right\n", + "#Assume direction of Fy is up\n", + "Rx=P1*cos(theta)-H\n", + "Ry=-P3-P2-P1*sin(theta)\n", + "\n", + "R=sqrt(pow(Rx,2)+pow(Ry,2))\n", + "print \"R=\",round(R,2),\"KN\",\"in y-direction\"\n", + "\n", + "alpha=atan(Ry/Rx)*180/pi\n", + "print\"alpha\",round(alpha,2),\"°\"\n", + " \n", + "#Let the point of application of the resultant be at a distance x from the point O along the horizontal arm. Then, \n", + "\n", + "x=(P1*sin(theta)*(2*a)+P2*a-P3*a*cos(theta)+H*a*2*sin(theta))/(-Ry)\n", + "print\"x=\",round(x,3),\"mm\"\n" + ] + }, + { + "cell_type": "markdown", + "metadata": { + "collapsed": true + }, + "source": [ + "# example 2.16 page number 36" + ] + }, + { + "cell_type": "code", + "execution_count": 58, + "metadata": { + "collapsed": false + }, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "Ry= 1420.0 KN downward\n", + "x= 4.127 m\n", + "The resultant passes through the middle third of the base i.e., between 7/3m, and 2*7/3 m.Hence, the dam is safe.\n" + ] + } + ], + "source": [ + "from math import pi,atan,sin ,cos,sqrt\n", + "\n", + "#variable declaration\n", + "P1=1120.0 #vertical down Loading at 2m distance from O,KN\n", + "P2=120.0 #vertical up loading at 4m distance from O,KN\n", + "P3=420.0 #vertical downloading at 5m distance from O,KN\n", + "H=500.0 #Horizontal loading at 4m ditance from O,KN\n", + "ah=4.0\n", + "a1=2.0\n", + "a2=4.0\n", + "a3=5.0\n", + "a=7.0\n", + "#assume Resulat R at distance x from O,\n", + "#sum of vertical Fy & sum of horizontal forces Fx is zero\n", + "#Assume direction of Fx is right\n", + "#Assume direction of Fy is up\n", + "Rx=H\n", + "Ry=P1-P2+P3\n", + "\n", + "print \"Ry=\",round(Ry,2),\"KN\",\"downward\"\n", + " \n", + "#Let x be the distance from O where the resultant cuts the base.\n", + "#moment at O\n", + "x=(H*ah+P1*a1-P2*a2+P3*a3)/(Ry)\n", + "\n", + "print\"x=\",round(x,3),\"m\"\n", + "\n", + "print \"The resultant passes through the middle third of the base i.e., between 7/3m, and 2*7/3 m.Hence, the dam is safe.\"\n", + "\n" + ] + }, + { + "cell_type": "markdown", + "metadata": { + "collapsed": true + }, + "source": [ + "# example 2.17 page number 37" + ] + }, + { + "cell_type": "code", + "execution_count": 59, + "metadata": { + "collapsed": false + }, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "R= 42.426 KN\n", + "d= 1.5 m Resultant is a horizontal force of magnitude 42.426 at 1.5 m below A.\n" + ] + } + ], + "source": [ + "from math import pi,atan,sin ,cos,sqrt\n", + "\n", + "#variable declaration\n", + "P1=5.0 #Inclined at 45° down Loading at 3m distance from A,KN\n", + "P2=10.0 #Inclined at 45° down Loading at 2m distance from A,KN\n", + "P3=10.0 #Inclined at 45° down Loading at 1m distance from A,KN\n", + "P4=5.0 #Inclined at 45° down Loading A,KN\n", + "P8=5.0 #Inclined at 45° UP Loading at 3m distance from A,KN\n", + "P7=10.0 #Inclined at 45° UP Loading at 2m distance from A,KN\n", + "P6=10.0 #Inclined at 45° UP Loading at 1m distance from A,KN\n", + "P5=5.0 #Inclined at 45° UP Loading A,KN\n", + "a=1.0\n", + "\n", + "theta=45.0*pi/180.0\n", + "#The roof is inclined at 45° to horizontal and loads are at 90° to the roof. Hence, the loads are also inclined at 45° to vertical/horizontal. \n", + "\n", + "#assume Resulat R at distance d from A,\n", + "#sum of vertical Fy & sum of horizontal forces Fx is zero\n", + "#Assume direction of Fx is right\n", + "#Assume direction of Fy is up\n", + "Rx=(P1+P2+P3+P4+P5+P6+P7+P8)*cos(theta)\n", + "Ry=-(P1+P2+P3+P4)*sin(theta)+(P5+P6+P7+P8)*sin(theta)\n", + "\n", + "print \"R=\",round(Rx,3),\"KN\"\n", + "#and its direction is horizontal \n", + "#Let R be at a distance d from the ridge A\n", + "#moment at A\n", + "d=((P1*3*cos(theta)*a+P2*cos(theta)*2*a+P3*cos(theta)*a)*2)/(Rx)\n", + "\n", + "print\"d=\",round(d,1),\"m\",\" Resultant is a horizontal force of magnitude\",round(Rx,3),\" at\",round(d,1),\" m below A.\"\n", + "\n", + "\n" + ] + }, + { + "cell_type": "markdown", + "metadata": { + "collapsed": true + }, + "source": [ + "# example 2.18 page number 37" + ] + }, + { + "cell_type": "code", + "execution_count": 60, + "metadata": { + "collapsed": false + }, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "R= 116.52 KN\n", + "alpha= 76.82 °\n", + "x= 1.48 m\n", + "The equilibriant is equal and opposite to the resultant in which E = 116.515 kN, alpha= 76.82° and x= 1.48 m\n" + ] + } + ], + "source": [ + "from math import sqrt,pi,atan\n", + "\n", + "#variable declaration\n", + "#The two 40 kN forces acting on the smooth pulley may be replaced by a pair of 40 kN forces acting at centre of pulley C and parallel to the given forces, since the sum of moments of the two given forces about C is zero\n", + "\n", + "PA=20.0 #inclined at 45° loading at A,KN\n", + "PB=30.0 #inclined at 60° loading at B,KN\n", + "\n", + "PC1=40.0 #inclined at 30° loading at C,KN\n", + "PC2=40.0 #inclined at 20° loading at C,KN\n", + "PD=50.0 #inclined at 30.0 at distance 2m form A,KN\n", + "PE=20.0 #inclined at alpha at distance xm form A,KN\n", + "P=20.0 #vertical loading at distance 4m,KN\n", + "\n", + "\n", + "\n", + "thetaA=45.0*pi/180.0\n", + "thetaB=60.0*pi/180.0\n", + "thetaC1=30.0*pi/180.0\n", + "thetaC2=20.0*pi/180.0\n", + "thetaD=30.0*pi/180.0\n", + "AD=2.0\n", + "AC=3.0\n", + "AB=6.0\n", + "\n", + "#sum of vertical Fy & sum of horizontal forces Fx is zero\n", + "#Assume direction of Fx is right\n", + "#Assume direction of Fy is up\n", + "Fx=PA*cos(thetaA)-PB*cos(thetaB)-PD*cos(thetaD)-PC1*sin(thetaC1)+PC2*cos(thetaC2)\n", + "\n", + "Fy=-PA*sin(thetaA)-P+P-PB*sin(thetaB)-PD*sin(thetaD)-PC2*sin(thetaC2)-PC1*cos(thetaC1)\n", + "\n", + "\n", + "R=sqrt(pow(Fx,2)+pow(Fy,2))\n", + "print \"R=\",round(R,2),\"KN\"\n", + "\n", + "alpha=atan(Fy/Fx)*180/pi\n", + "print\"alpha=\",round(alpha,2),\"°\"\n", + "\n", + "#Let the resultant intersect AB at a distance x from A. Then, \n", + "\n", + "\n", + "X=(-P*4+P*4+PB*sin(thetaB)*AB+PD*sin(thetaD)*AD-PD*cos(thetaD)*AD+PC2*AC*cos(thetaC2)-PC1*AC*sin(thetaC1))/R\n", + "\n", + "print\"x=\",round(X,2),\"m\"\n", + "\n", + "print\"The equilibriant is equal and opposite to the resultant in which E = 116.515 kN, alpha= 76.82° and \",\"x=\",round(X,2),\"m\"\n" + ] + }, + { + "cell_type": "markdown", + "metadata": { + "collapsed": true + }, + "source": [ + "# example 2.19 page number 42\n" + ] + }, + { + "cell_type": "code", + "execution_count": 61, + "metadata": { + "collapsed": false + }, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "T= 103.53 N\n", + "R= 26.79 N\n" + ] + } + ], + "source": [ + "from math import sin,cos,pi\n", + "\n", + "#Free body diagram of the sphere shows all the forces moving away from the centre of the ball. Applying Lami’s theorem to the system of forces.\n", + "\n", + "#variable declaration\n", + "W=100.0 #weight of sphere,N\n", + "theta=15.0*pi/180 #angle of inclination of string with wall\n", + "\n", + "T=(W*sin((pi/2)))/sin((pi/2)+theta)\n", + "R=(W*sin((pi-theta)))/sin((pi/2)+theta)\n", + "print\"T=\",round(T,2),\"N\"\n", + "print\"R=\",round(R,2),\"N\"\n", + "\n", + "#The above problem may be solved using equations of equilibrium also. Taking horizontal direction as x axis and vertical direction as y axis,\n", + "\n", + "#Notes: \n", + "#1. The string can have only tension in it (it can pull a body), but cannot have compression in it (cannot push a body). \n", + "#2. The wall reaction is a push, but cannot be a pull on the body. \n", + "#3. If the magnitude of reaction comes out to be negative, then assumed direction of reaction is wrong. It is acting exactly in the opposite to the assumed direction. However, the magnitude will be the same. Hence no further analysis is required. This advantage is not there in using Lami's equation. Hence, it is advisable for beginners to use equations of equilibrium, instead of Lami's theorem even if the body is in equilibrium under the action of only three forces. \n", + "\n" + ] + }, + { + "cell_type": "markdown", + "metadata": { + "collapsed": true + }, + "source": [ + "# example 2.20 page number 43" + ] + }, + { + "cell_type": "code", + "execution_count": 62, + "metadata": { + "collapsed": false + }, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "R= 1732.05 N\n", + "P= 866.03 N\n" + ] + } + ], + "source": [ + "from math import sin,cos,pi\n", + "\n", + "#The body is in equilibrium under the action of applied force P, self-weight 1500 N and normal reaction R from the plane. Since R, which is normal to the plane, makes 30° with the vertical (or 60° with the horizontal), \n", + "\n", + "#variable declaration\n", + "W=1500.0 #weight of block,N\n", + "theta=30.0*pi/180 #angle of inclination \n", + "\n", + "#sum of vertical Fy & sum of horizontal forces Fx is zero\n", + "#Assume direction of Fx is right\n", + "#Assume direction of Fy is up\n", + "\n", + "R=W/cos(theta)\n", + "print\"R=\",round(R,2),\"N\"\n", + "\n", + "P=R*sin(theta)\n", + "print\"P=\",round(P,2),\"N\"\n", + "\n", + "#Note: Since the body is in equilibrium under the action of only three forces the above problem can be solved using Lami’s theorem \n" + ] + }, + { + "cell_type": "markdown", + "metadata": { + "collapsed": true + }, + "source": [ + "# example 2.21 page number 42" + ] + }, + { + "cell_type": "code", + "execution_count": 63, + "metadata": { + "collapsed": false + }, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "S= -0.058 N\n", + "Since the value of S is negative the force exerted by the bar is not a push, but it is pull (tensile force in bar) of magnitude 0.058 kN.\n", + "R= 14.979 kN\n" + ] + } + ], + "source": [ + "from math import sin,cos,pi\n", + "\n", + "#A bar can develop a tensile force or a compressive force. Let the force developed be a compressive force S (push on the cylinder). \n", + "\n", + "#variable declaration\n", + "W=10.0 #weight of Roller,KN\n", + "IL=7.0 #inclined loading at angle of 45°,KN\n", + "H=5.0 #Horizontal loading ,KN\n", + "\n", + "theta=45.0*pi/180 #angle of loading of IL\n", + "thetaS=30.0*pi/180.0 \n", + "\n", + "#Since there are more than three forces in the system, Lami’s equations cannot be applied. Consider the components in horizontal and vertical directions. \n", + "#sum of vertical Fy & sum of horizontal forces Fx is zero\n", + "#Assume direction of Fx is right\n", + "#Assume direction of Fy is up\n", + "\n", + "S=(-H+IL*cos(theta))/cos(thetaS)\n", + "print\"S=\",round(S,3),\"N\"\n", + "\n", + "print\"Since the value of S is negative the force exerted by the bar is not a push, but it is pull (tensile force in bar) of magnitude\",round(-S,3) ,\"kN.\"\n", + " \n", + "R=W+IL*sin(theta)-S*sin(thetaS)\n", + "print\"R=\",round(R,3),\"kN\"" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "# example2.22 page number 44" + ] + }, + { + "cell_type": "code", + "execution_count": 64, + "metadata": { + "collapsed": false + }, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "x= 1.125 m\n", + "T= 125.0 N\n" + ] + } + ], + "source": [ + "from math import cos,sin,pi,asin\n", + "\n", + "#The pulley C is in equilibrium under the action of tensile forces in CA and CB and vertical downward load 200 N. The tensile forces in segment CA and CB are the same since the pulley is frictionless. Now consider the equilibrium of pulley C \n", + "#sum of vertical Fy & sum of horizontal forces Fx is zero\n", + "#Assume direction of Fx is right\n", + "#Assume direction of Fy is up\n", + "\n", + "#variable declaration\n", + "L=200.0 #suspended load at C,N\n", + "AB=3.0\n", + "BI=1.0\n", + "ACB=5.0 #Length of cord,m\n", + "DE=3.0\n", + "BE=4.0\n", + "theta=asin(4.0/5.0)\n", + "#assume T is tension in string making angle theta1 & theta2,solving horizontal we find theta1=theta2,lets called them theta ,as triangleCFD=triangle=CFA.so, CD=AC\n", + "\n", + "HI=BI*DE/BE\n", + "AH=DE-HI\n", + "x=AH/2\n", + "print\"x=\",round(x,3),\"m\"\n", + "\n", + "T=L/(2*sin(theta))\n", + "print\"T=\",round(T),\"N\"\n", + "\n" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "# example2.23 page number 45" + ] + }, + { + "cell_type": "code", + "execution_count": 65, + "metadata": { + "collapsed": false + }, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "P= 1154.7 N\n", + "P= 1732.05 N\n" + ] + } + ], + "source": [ + "from math import sin ,acos, pi\n", + "\n", + "#When the roller is about to turn over the curb, the contact with the floor is lost and hence there is no reaction from the floor. The reaction R from the curb must pass through the intersection of P and the line of action of self weight, since the body is in equilibrium under the action of only three forces (all the three forces must be concurrent). \n", + "\n", + "#variable declaration\n", + "W=2000.0 #weight of roller,N\n", + "r=300.0 #radius of roller,mm\n", + "h=150.0 # height of curb,mm\n", + "OC=r-h\n", + "AO=r\n", + "\n", + "alpha=acos(OC/AO)\n", + "\n", + "#angleOAB=angleOBA,Since OA=OB,\n", + "angleOBA=(alpha)/2\n", + "\n", + "#the reaction makes 30° with the vertical\n", + "#sum of vertical Fy & sum of horizontal forces Fx is zero\n", + "#Assume direction of Fx is right\n", + "#Assume direction of Fy is up\n", + "\n", + "R=W/cos(angleOBA)\n", + "P=R*sin(angleOBA)\n", + "\n", + "print\"P=\",round(P,2),\"N\"\n", + "\n", + "#Least force through the centre of wheel: Now the reaction from the curb must pass through the centre of the wheel since the other two forces pass through that point. Its inclination to vertical is theta = 60°. If the triangle of forces ABC representing selfweight by AB, reaction R by BC and pull P by AC, it may be observed that AC to be least, it should be perpendicular to BC. In other words, P makes 90° with the line of action of R.\n", + "#From triangle of forces ABC, we get \n", + "P=W*sin(alpha)\n", + "print \"P=\",round(P,2),\"N\"" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "# example 2.24 page number 47 " + ] + }, + { + "cell_type": "code", + "execution_count": 66, + "metadata": { + "collapsed": false + }, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "T1= 224.14 N\n", + "T2= 183.01 N\n", + "T3= 336.6 N\n", + "T4= 326.79 N\n" + ] + } + ], + "source": [ + "from math import sin,cos,pi\n", + "\n", + "#variable declaration\n", + "PB=200.0 #Vertical loading at B,N\n", + "PD=250.0 #Vertical loading at D,N\n", + "thetabc=30.0*pi/180.0\n", + "thetabd=60.0*pi/180.0\n", + "thetaed=45.0*pi/180.0\n", + "#Free body diagrams of points B and D . Let the forces in the members be as shown in the figure. Applying Lami’s theorem to the system of forces at point D,\n", + "\n", + "T1=PD*sin(pi-thetabd)/sin(thetaed+(pi/2)-thetabd)\n", + "T2=PD*sin(pi-thetaed)/sin(thetaed+(pi/2)-thetabd)\n", + "\n", + "print \"T1=\",round(T1,2),\"N\"\n", + "print \"T2=\",round(T2,2),\"N\"\n", + "\n", + "#sum of vertical Fy & sum of horizontal forces Fx is zero\n", + "#Assume direction of Fx is right\n", + "#Assume direction of Fy is up\n", + "\n", + "T3=(PB+T2*cos(thetabd))/cos(thetabc)\n", + "print \"T3=\",round(T3,2),\"N\"\n", + "\n", + "T4=(T2*sin(thetabd))+T3*sin(thetabc)\n", + "print \"T4=\",round(T4,2),\"N\"" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "# example 2.25 page number 47\n" + ] + }, + { + "cell_type": "code", + "execution_count": 67, + "metadata": { + "collapsed": false + }, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "W= 2863.64 N\n" + ] + } + ], + "source": [ + "from math import sin,cos,pi,acos,acos\n", + "\n", + "#variable declaration\n", + "\n", + "PC=1500.0 #Vertical loading at C,N\n", + "CD=2.0 \n", + "AC=1.5\n", + "BD=1.0\n", + "AB=4.0\n", + "\n", + "x=((pow(AC,2)-pow(BD,2))/4)+1\n", + "y=sqrt(pow(AC,2)-pow(x,2))\n", + "\n", + "alpha=acos(x/AC)\n", + "beta=acos((CD-x)/BD)\n", + "\n", + "#Applying Lami’s theorem to the system of forces acting at point C \n", + "\n", + "T1=PC*sin(pi/2)/sin(pi-alpha)\n", + "T2=PC*sin((pi/2)+alpha)/sin(pi-alpha)\n", + "T3=T2*sin(pi/2)/sin((pi/2)+beta)\n", + "W=T2*sin(pi-beta)/sin((pi/2)+beta)\n", + "\n", + "\n", + "print \"W=\",round(W,2),\"N\"" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "# example 2.26 page number 49" + ] + }, + { + "cell_type": "code", + "execution_count": 68, + "metadata": { + "collapsed": false + }, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "T1= 44.8 KN\n", + "T2= 29.24 KN\n", + "theta= 63.42 °\n", + "T3= 25.04 KN\n" + ] + } + ], + "source": [ + "from math import sin,cos,pi,atan\n", + "\n", + "#variable declaration\n", + "\n", + "PB=20.0 #vertical loadng at point B,KN \n", + "PC=30.0 #vertical loadng at point C,KN \n", + " \n", + "thetaab=30.0 *pi/180.0\n", + "thetabc=50.0*pi/180.0\n", + "\n", + "#applying lami's thereom\n", + "\n", + "T1=PB*sin(thetabc)/sin(pi-thetabc+thetaab)\n", + "T2=PB*sin(pi-thetaab)/sin(pi-thetabc+thetaab)\n", + "theta=atan((T2*sin(thetabc))/(PC-T2*cos(thetabc)))*180/pi\n", + "\n", + "\n", + "print \"T1=\",round(T1,2),\"KN\"\n", + "\n", + "print \"T2=\",round(T2,2),\"KN\"\n", + "\n", + "#Writing equations of equilibrium for the system of forces at C \n", + "\n", + "print \"theta=\",round(theta,2),\"°\"\n", + "\n", + "T3=(PC-T2*cos(thetabc))/cos(theta*pi/180)\n", + "print \"T3=\",round(T3,2),\"KN\"\n", + "#mistake in book" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "# example 2.27 page number 49" + ] + }, + { + "cell_type": "code", + "execution_count": 69, + "metadata": { + "collapsed": false + }, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "T3= 22.5 KN\n", + "T1= 38.97 KN\n", + "theta= 54.79 °\n", + "T2= 23.85 KN\n" + ] + } + ], + "source": [ + "from math import sin,cos,pi,atan\n", + "\n", + "#variable declaration\n", + "\n", + "PB=20.0 #vertical loadng at point B,KN \n", + " \n", + "PC=25.0 #vertical loadng at point C,KN \n", + "\n", + "thetaab=30.0*pi/180.0\n", + "thetadc=60.0*pi/180.0\n", + "\n", + "#Writing equations of equilibrium for the system of forces at joints B and C \n", + "#T1*sin(thetaab)=T3*sin(thetadc)\n", + "\n", + "T3=(PB+PC)/((sin(thetadc)*cos(thetaab)/sin(thetaab))+cos(thetadc))\n", + "print \"T3=\",round(T3,2),\"KN\"\n", + "\n", + "T1=T3*sin(thetadc)/sin(thetaab)\n", + "print \"T1=\",round(T1,2),\"KN\"\n", + "\n", + "theta=(atan((T3*sin(thetadc))/(PC-T3*cos(thetadc))))*180/pi\n", + "print\"theta=\",round(theta,2),\"°\"\n", + "\n", + "T2=T3*sin(thetadc)/(sin(theta*pi/180))\n", + "print \"T2=\",round(T2,2),\"KN\"\n" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "# example 2.28 page number 50" + ] + }, + { + "cell_type": "code", + "execution_count": 70, + "metadata": { + "collapsed": false + }, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "RB= 600.0 N\n", + "alpha= 1.249 °\n", + "RD= 632.456 N\n", + "RC= 200.0 N\n", + "RA= 200.0 N\n" + ] + } + ], + "source": [ + "from math import sin,cos,atan,pi\n", + "\n", + "#variable declaration\n", + "W=600.0 #weight of cyclinder,N\n", + "r=150.0 #radius of cylinder,mm\n", + "a=600.0 #mm\n", + "b=300.0 #mm\n", + "\n", + "#Free body diagram of sphere and frame\n", + "\n", + "##sum of vertical Fy & sum of horizontal forces Fx is zero\n", + "#Assume direction of Fx is right\n", + "#Assume direction of Fy is up\n", + "\n", + "RB=600.0 \n", + "#As the frame is in equilibrium under the action of three forces only, they must be concurrent forces. In other words, reaction at D has line of action alone OD. Hence, its inclination to horizontal is given by: \n", + "print\"RB=\",round(RB,2),\"N\"\n", + "alpha=atan((a-r)/r)\n", + "print\"alpha=\",round(alpha,4),\"°\"\n", + "\n", + "RD=W/sin(alpha)\n", + "print\"RD=\",round(RD,3),\"N\"\n", + "\n", + "RC=RD*cos(alpha)\n", + "RA=RC\n", + "print\"RC=\",round(RC),\"N\"\n", + "print\"RA=\",round(RA),\"N\"\n", + "\n", + "\n" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "# example 2.29 page number 51" + ] + }, + { + "cell_type": "code", + "execution_count": 71, + "metadata": { + "collapsed": false + }, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "RB= 166.67 N\n", + "RA= 133.33 N\n", + "RC= 200.0 N\n", + "RD= 133.33 N\n" + ] + } + ], + "source": [ + "from math import sin,cos,pi,acos,asin\n", + "\n", + "\n", + "# Let O1 and O2 be the centres of the first and second spheres. Drop perpendicular O1P to the horizontal line through O2. show free body diagram of the sphere 1 and 2, respectively. Since the surface of contact are smooth, reaction of B is in the radial direction, i.e., in the direction O1O2. Let it make angle a with the horizontal. Then,\n", + "\n", + "#Variable declaration\n", + "\n", + "W=100.0 #weight of spheres,N\n", + "\n", + "r=100.0 #radius of spheres,mm\n", + "\n", + "d=360.0 # horizontal channel having vertical walls, the distance b/w,mm\n", + "\n", + "O1A=100.0\n", + "O2D=100.0\n", + "O1B=100.0\n", + "BO2=100.0\n", + "\n", + "O2P=360.0-O1A-O2D\n", + "O1O2=O1B+BO2\n", + "\n", + "alpha=acos(O2P/O1O2)\n", + "\n", + "###sum of vertical Fy & sum of horizontal forces Fx is zero\n", + "#Assume direction of Fx is right\n", + "#Assume direction of Fy is up\n", + "RB=W/sin(alpha)\n", + "RA=RB*cos(alpha)\n", + "print\"RB=\",round(RB,2),\"N\"\n", + "print\"RA=\",round(RA,2),\"N\"\n", + "\n", + "RC=100+RB*sin(alpha)\n", + "\n", + "RD=RB*cos(alpha)\n", + "\n", + "print\"RC=\",round(RC),\"N\"\n", + "\n", + "print\"RD=\",round(RD,2),\"N\"\n" + ] + }, + { + "cell_type": "markdown", + "metadata": { + "collapsed": true + }, + "source": [ + "# example2.30 page number 52" + ] + }, + { + "cell_type": "code", + "execution_count": 72, + "metadata": { + "collapsed": false + }, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "P= 1071.8 N\n" + ] + } + ], + "source": [ + "from math import sin,cos,pi\n", + "\n", + "# Two cylinders, A of weight 4000 N and B of weight 2000 N rest on smooth inclines. They are connected by a bar of negligible weight hinged to each cylinder at its geometric centre by smooth pins\n", + "\n", + "#variable declaration\n", + "\n", + "WA=4000.0 #weight of cylinder A,N\n", + "WB=2000.0 #weight of cylinder B,N\n", + "\n", + "thetaWA=60.0*pi/180.0 #inclination of wall with cylinderA,°\n", + "thetaWB=45.0*pi/180.0 #inclination of wall with cylinderB,°\n", + "thetaAb=15.0*pi/180.0 #angle inclination bar with cylinder A ,N\n", + "thetaBb=15.0*pi/180.0 #angle inclination bar with cylinder B ,N\n", + "\n", + "#he free body diagram of the two cylinders. Applying Lami’s theorem to the system of forces on cylinder A, we get\n", + "\n", + "C=WA*sin(thetaWA)/sin(thetaWA+(pi/2)-thetaAb)\n", + "\n", + "#Consider cylinder B. Summation of the forces parallel to the inclined plane \n", + "P=(-WB*cos(thetaWB)+C*cos(thetaWA))/cos(thetaBb)\n", + "print\"P=\",round(P,1),\"N\"\n", + "\n", + "\n" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "# example 2.31 page number 55" + ] + }, + { + "cell_type": "code", + "execution_count": 73, + "metadata": { + "collapsed": false + }, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "T= 10.0382 KN\n", + "RA= 188.56 KN\n", + "alpha 32.17 °\n" + ] + } + ], + "source": [ + "from math import pi,atan,sin ,cos,sqrt\n", + "\n", + "# The 12 m boom AB weighs 1 kN, the distance of the centre of gravity G being 6 m from A. For the position shown, determine the tension T in the cable and the reaction at B \n", + "\n", + "#variable declaration\n", + "PB=2.5 #vertical Loading at B,KN\n", + "WAB=1.0 #vertical loading at G,KN\n", + "\n", + "theta=15.0*pi/180\n", + "AG=6.0 #Length of boom AB is 12m\n", + "GB=6.0\n", + "thetaAB=30.0*pi/180.0\n", + "thetaABC=15.0*pi/180.0\n", + "#sum of moment at A\n", + "\n", + "T=(PB*(AG+GB)*cos(thetaAB)+WAB*AG*cos(thetaAB))/(sin(thetaABC)*12)\n", + "print\"T=\",round(T,4),\"KN\"\n", + "\n", + "#sum of vertical Fy & sum of horizontal forces Fx is zero\n", + "#Assume direction of Fx is right\n", + "#Assume direction of Fy is up\n", + "HA=T*cos(thetaABC)\n", + "VA=WAB+PB+T*sin(thetaABC)\n", + "\n", + "RA=sqrt(pow(RA,2)+pow(RA,2))\n", + "print \"RA=\",round(RA,2),\"KN\"\n", + "\n", + "alpha=atan(VA/HA)*180/pi\n", + "print\"alpha\",round(alpha,2),\"°\"" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "# example2.32 page number 56" + ] + }, + { + "cell_type": "code", + "execution_count": 74, + "metadata": { + "collapsed": false + }, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "T= 51.9615 KN\n", + "R1= 23.6603 KN\n", + "R2= 6.3397 KN\n" + ] + } + ], + "source": [ + "from math import sin,cos,pi\n", + "\n", + "#variable declaration\n", + "\n", + "#A cable car used for carrying materials in a hydroelectric project is at rest on a track formed at an angle of 30° with the vertical. The gross weight of the car and its load is 60 kN and its centroid is at a point 800 mm from the track half way between the axles. The car is held by a cable . The axles of the car are at a distance 1.2 m. Find the tension in the cables and reaction at each of the axles neglecting friction of the track.\n", + "\n", + "W=60.0 #gross weight of car,KN\n", + "theta=60.0*pi/180.0\n", + " \n", + " \n", + "T=W*sin(theta)\n", + "print\"T=\",round(T,4),\"KN\"\n", + "\n", + "#Taking moment equilibrium condition about upper axle point on track, we get\n", + "\n", + "R1=(-T*600.0+W*sin(theta)*800.0+W*cos(theta)*600.0)/1200.0\n", + "print\"R1=\",round(R1,4),\"KN\"\n", + "\n", + "#Sum of forces normal to the plane = 0, gives \n", + "R2=W*cos(theta)-R1\n", + "print\"R2=\",round(R2,4),\"KN\"\n", + "\n", + "\n" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "# example 2.33 page numnber 56" + ] + }, + { + "cell_type": "code", + "execution_count": 75, + "metadata": { + "collapsed": false + }, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "W= 0.75 KN\n" + ] + } + ], + "source": [ + "from math import sin,cos,acos,pi\n", + "\n", + "# A hollow right circular cylinder of radius 800 mm is open at both ends and rests on a smooth horizontal plane. Inside the cylinder there are two spheres having weights 1 kN and 3 kN and radii 400 mm and 600 mm, respectively. The lower sphere also rests on the horizontal plane. \n", + "# Join the centres of spheres, O1 and O2 and drop O1D perpendicular to horizontal through O2. \n", + "\n", + "#variable declaration\n", + "R=800.0\n", + "W1=1.0\n", + "r1=400.0\n", + "W2=3.0\n", + "r2=600.0\n", + "O1O2=1000 #mm\n", + "O2D=600 #mm\n", + "\n", + "#If alpha is the inclination of O2O1 to horizontal\n", + "alpha=acos(O2D/O1O2)\n", + "\n", + "#Free body diagrams of cylinder and spheres are shown. Considering the equilibrium of the spheres.\n", + "#Sum of Moment at O2\n", + "\n", + "R1=W1*O2D/(O1O2*sin(alpha))\n", + "#sum of vertical Fy & sum of horizontal forces Fx is zero\n", + "#Assume direction of Fx is right\n", + "#Assume direction of Fy is up\n", + "\n", + "R2=R1\n", + "R3=W1+W2\n", + "#Now consider the equilibrium of cylinder. When it is about to tip over A, there is no reaction from ground at B. The reaction will be only at A. \n", + "\n", + "#Sum of Moment at A\n", + "\n", + "W=R1*O1O2*sin(alpha)/R\n", + "\n", + "print\"W=\",round(W,2),\"KN\"\n", + "\n" + ] + } + ], + "metadata": { + "anaconda-cloud": {}, + "kernelspec": { + "display_name": "Python [Root]", + "language": "python", + "name": "Python [Root]" + }, + "language_info": { + "codemirror_mode": { + "name": "ipython", + "version": 2 + }, + "file_extension": ".py", + "mimetype": "text/x-python", + "name": "python", + "nbconvert_exporter": "python", + "pygments_lexer": "ipython2", + "version": "2.7.12" + } + }, + "nbformat": 4, + "nbformat_minor": 0 +} diff --git a/MECHANICS_OF_SOLIDS_by_S.S._Bhavikatti/Chapter3.ipynb b/MECHANICS_OF_SOLIDS_by_S.S._Bhavikatti/Chapter3.ipynb new file mode 100644 index 00000000..09420950 --- /dev/null +++ b/MECHANICS_OF_SOLIDS_by_S.S._Bhavikatti/Chapter3.ipynb @@ -0,0 +1,1030 @@ +{ + "cells": [ + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "# Chapter3-TRUSSES" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "# example3.1 Page number68" + ] + }, + { + "cell_type": "code", + "execution_count": 1, + "metadata": { + "collapsed": false + }, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "theta= 45.0 °\n", + "FCB= 56.57 KN\n", + "FCD= 40.0 KN\n", + "FDB= 40.0 KN\n", + "FDE= 40.0 KN\n", + "FBE= 113.14 KN\n", + "FBA= 120.0 KN\n", + "Member , Magnitude of Force in KN , Nature\n", + "AB , 120.0 , Tension\n", + "BC , 56.57 , Tension\n", + "CD , 40.0 , Compresion\n", + "DE , 40.0 , Compresion\n", + "BE , 113.14 , Compresion\n", + "BD , 40.0 , Tension\n" + ] + } + ], + "source": [ + "from math import sqrt,atan,pi,sin,cos\n", + "\n", + "#variable declaration\n", + "\n", + "#Determine the inclinations of all inclined members\n", + "\n", + "theta=atan(1)*180/pi\n", + "\n", + "print \"theta=\",round(theta,2),\"°\"\n", + "\n", + "#Now at joints C, there are only two unknowns,forces in members CB and CD, say FCB and FCD.\n", + "#Now there are two equations of equilibrium for the forces meeting at the joint and two unknown forces. Hence, the unknown forces can be determined. At joint C sum V= 0 condition shows that the force FCB should act away from the joint C so that its vertical component balances the vertical downward load at C.\n", + " \n", + "P=40.0\n", + "FCB=P/sin(theta*pi/180)\n", + "\n", + "print \"FCB=\",round(FCB,2),\"KN\"\n", + "\n", + "#Now sum H=0 indicates that FCD should act towards C.\n", + "\n", + "FCD=FCB*cos(theta*pi/180)\n", + "\n", + "print \"FCD=\",round(FCD,2),\"KN\"\n", + "\n", + "#In the present case, near the joint C, the arrows are marked on the members CB and CD to indicate forces FCB and FCD directions as found in the analysis of joint C. Then reversed directions are marked in the members CB and CD near joints B and D, respectively.\n", + "\n", + "FDB=40.0\n", + "FDE=40.0\n", + "\n", + "print \"FDB=\",round(FDB,2),\"KN\"\n", + "\n", + "print \"FDE=\",round(FDE,2),\"KN\"\n", + "\n", + "#In the present case, after marking the forces in the members DB and DE, we find that analysis of joint B can be taken up.\n", + "\n", + "FBE=(FCB*sin(theta*pi/180)+P)/(sin(theta*pi/180))\n", + "\n", + "FBA=FCB*cos(theta*pi/180)+FBE*cos(theta*pi/180)\n", + "\n", + "print \"FBE=\", round(FBE,2),\"KN\"\n", + "print \"FBA=\", round(FBA,2),\"KN\"\n", + "#Determine the nature of forces in each member and tabulate the results. Note that if the arrow marks on a member are towards each other, then the member is in tension and if the arrow marks are away from each other, the member is in compression.\n", + "\n", + "print \"Member\",\",\",\"Magnitude of Force in KN\",\",\",\"Nature\"\n", + "print \"AB\",\",\", round(FBA,2) ,\",\",\"Tension\"\n", + "print \"BC\",\",\", round(FCB,2) ,\",\",\"Tension\"\n", + "print \"CD\",\",\", round(FCD,2) ,\",\",\"Compresion\"\n", + "print \"DE\",\",\", round(FDE,2) ,\",\",\"Compresion\"\n", + "print \"BE\",\",\", round(FBE,2) ,\",\",\"Compresion\"\n", + "print \"BD\",\",\", round(P,2) ,\",\",\"Tension\"\n", + "\n" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "# example3.2 Page number70" + ] + }, + { + "cell_type": "code", + "execution_count": 2, + "metadata": { + "collapsed": false + }, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "FAB= 83.7158 KN (Comp.)\n", + "FAE= 41.8579 KN (Tension)\n", + "FDC= 89.4893 KN (Comp.)\n", + "FDE= 44.7446 KN (Tension)\n", + "FBC= 60.6218 KN (Comp.)\n", + "FCE= 31.7543 KN (Tension)\n" + ] + } + ], + "source": [ + "from math import sqrt,atan,pi,sin,cos\n", + "\n", + "#Now, we cannot find a joint with only two unknown forces without finding reactions.\n", + "#Consider the equilibrium of the entire frame,Sum of moments about A is zero,Horizontal forces & Vertical forces is zero.\n", + "\n", + "#variable declaration\n", + "\n", + "PB=40.0\n", + "PC=50.0\n", + "PE=60.0\n", + "\n", + "theta=60.0\n", + "\n", + "RD=(PC*3+PE*2+PB*1)/(4.0)\n", + "\n", + "RA=PB+PC+PE-RD\n", + "\n", + "FAB=RA/sin(theta*pi/180)\n", + "\n", + "print\"FAB=\",round(FAB,4),\"KN\" ,\"(Comp.)\"\n", + "\n", + "FAE=FAB*cos(theta*pi/180)\n", + "\n", + "print\"FAE=\",round(FAE,4),\"KN\" , \"(Tension)\"\n", + "\n", + "FDC=RD/sin(theta*pi/180)\n", + "\n", + "print\"FDC=\",round(FDC,4),\"KN\" , \"(Comp.)\"\n", + "\n", + "FDE=FDC*cos(theta*pi/180)\n", + "\n", + "print\"FDE=\",round(FDE,4),\"KN\" , \"(Tension)\"\n", + "\n", + "FBE=(FAB*sin(theta*pi/180)-PB)/sin(theta*pi/180)\n", + "\n", + "FBC=(FAB+FBE)*(0.5)\n", + "print\"FBC=\",round(FBC,4),\"KN\",\"(Comp.)\"\n", + "\n", + "\n", + "FCE=(FDC*sin(theta*pi/180)-PC)/(sin(theta*pi/180))\n", + "print\"FCE=\",round(FCE,4),\"KN\",\"(Tension)\"" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "# example3.3 Page number72" + ] + }, + { + "cell_type": "code", + "execution_count": 3, + "metadata": { + "collapsed": false + }, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "FAB= 23.09 KN [Comp.]\n", + "FAC= 11.55 KN [Tensile]\n", + "FDB= 20.0 KN [Comp.]\n", + "FDC= 17.32 KN [Tensile]\n", + "FCB= 11.55 KN FCB= 11.55 KN Checked\n" + ] + } + ], + "source": [ + "from math import sqrt,atan,pi,sin,cos\n", + "\n", + "#variable declaration\n", + "\n", + "PB=20.0 #Load at point B,KN\n", + "PC=10.0 #Load at point C,KN \n", + "thetaA=60.0 #angleBAC\n", + "thetaD=30.0 #angleBDC\n", + "\n", + "AC=3.0 #length,m\n", + "CD=3.0 #length,m\n", + "\n", + "AB=(AC+CD)*cos(thetaA*pi/180)\n", + "BD=(AC+CD)*cos(thetaD*pi/180)\n", + "#mistake in book\n", + "#angleBCA=angleABC=theta\n", + "\n", + "theta=(180.0-thetaA)/(2.0) \n", + "\n", + "#Taking moment about A, we get\n", + "\n", + "RD=(PC*AC+PB*AC*cos(thetaA*pi/180))/(AC+CD)\n", + "\n", + "RA=PC+PB-RD\n", + "#Joint A\n", + "#vertical & horizontal forces sum to zero\n", + "\n", + "FAB=RA/sin(thetaA*pi/180)\n", + "\n", + "print \"FAB=\",round(FAB,2),\"KN\",\"[Comp.]\"\n", + "FAC=FAB*cos(thetaA*pi/180)\n", + "print \"FAC=\",round(FAC,2),\"KN\",\"[Tensile]\"\n", + "\n", + "#Joint D\n", + "#vertical & horizontal forces sum to zero\n", + "\n", + "FDB=RD/sin(thetaD*pi/180)\n", + "\n", + "print \"FDB=\",round(FDB,2),\"KN\",\"[Comp.]\"\n", + "FDC=FDB*cos(thetaD*pi/180)\n", + "print \"FDC=\",round(FDC,2),\"KN\",\"[Tensile]\"\n", + "\n", + "#Joint C\n", + "#vertical & horizontal forces sum to zero\n", + "\n", + "FCB=PC/sin(theta*pi/180)\n", + "\n", + "print \"FCB=\",round(FCB,2),\"KN\",\n", + "\n", + "#CHECK\n", + "\n", + "FCB=(FDC-FAC)/cos(theta*pi/180)\n", + "print \"FCB=\",round(FCB,2),\"KN\",\"Checked\"" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "# example3.4 Page number74\n" + ] + }, + { + "cell_type": "code", + "execution_count": 4, + "metadata": { + "collapsed": false + }, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "FBF= 42.4264 KN (Tension)\n", + "FBC= 30.0 KN (Comp.)\n", + "FCF= 50.0 KN (Comp.)\n", + "FCD= 30.0 KN (Comp.)\n", + "FDF= 70.7107 KN (Tensile)\n", + "FDF= 70.7107 KN Checked\n" + ] + } + ], + "source": [ + "from math import sqrt,atan,pi,sin,cos\n", + "\n", + "#Now, we cannot find a joint with only two unknown forces without finding reactions.\n", + "#Consider the equilibrium of the entire frame,Sum of moments about A is zero,Horizontal forces & Vertical forces is zero.\n", + "\n", + "#variable declaration\n", + "\n", + "PB=30.0 #vertical load at point B,KN\n", + "PC=50.0 #vertical load at point C,KN \n", + "PDv=40.0 #vertical load at point D,KN\n", + "PDh=20.0 #Horizontal load at point D,KN\n", + "PF=30.0 #vertical load at point F,KN\n", + "HA=PDh\n", + "\n", + "RE=(PC*4+PDv*8+PDh*4+PF*4)/(8.0)\n", + "\n", + "VA=PB+PC+PDv+PF-RE\n", + "\n", + "#joint A\n", + "#sum of vertical & sum of horizontal forces is zero.\n", + "\n", + "FAB=VA\n", + "FAF=HA\n", + "\n", + "#joint E\n", + "#sum of vertical & sum of horizontal forces is zero.\n", + "\n", + "FED=RE\n", + "FEF=0\n", + "\n", + "#Joint B: Noting that inclined member is at 45°\n", + "#sum of vertical & sum of horizontal forces is zero.\n", + "\n", + "theta=45.0\n", + "FBF=(VA-PB)/sin(theta*pi/180)\n", + "\n", + "print\"FBF=\",round(FBF,4),\"KN\" , \"(Tension)\"\n", + "\n", + "FBC=FBF*cos(theta*pi/180)\n", + "\n", + "print\"FBC=\",round(FBC,4),\"KN\" , \"(Comp.)\"\n", + "\n", + "#Joint C: \n", + "#sum of vertical & sum of horizontal forces is zero.\n", + "\n", + "\n", + "FCF=PC\n", + "\n", + "print\"FCF=\",round(FCF,4),\"KN\" , \"(Comp.)\"\n", + "\n", + "FCD=FBC\n", + "\n", + "print\"FCD=\",round(FCD,4),\"KN\" , \"(Comp.)\"\n", + "\n", + "#Joint D: Noting that inclined member is at 45°\n", + "#sum of vertical & sum of horizontal forces is zero.\n", + "\n", + "theta=45.0\n", + "FDF=(RE-PDv)/cos(theta*pi/180)\n", + "\n", + "print\"FDF=\",round(FDF,4),\"KN\" , \"(Tensile)\"\n", + "\n", + "#check\n", + "\n", + "FDF=(FCD+PDh)/cos(theta*pi/180)\n", + "\n", + "print\"FDF=\",round(FDF,4),\"KN\" , \"Checked\"" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "# example3.5 Page number75" + ] + }, + { + "cell_type": "code", + "execution_count": 5, + "metadata": { + "collapsed": false + }, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "FED= 25.0 KN (Tension)\n", + "FEF= 15.0 KN (Comp.)\n", + "FAB= 20.0 KN (Comp.)\n", + "FAF= 15.0 KN (Comp.)\n", + "FCB= 25.0 KN (Comp.)\n", + "FCD= 20.0 KN (Tension)\n", + "FBF= 0.0\n", + "FBD= 15.0 KN (Tension)\n", + "FFD= 0.0\n" + ] + } + ], + "source": [ + "from math import sqrt,asin,pi,sin,cos\n", + "\n", + "#All inclined members have the same inclination to horizontal. Now, length of an inclined member is BF\n", + "\n", + "#variable declaration\n", + "\n", + "PE=20.0\n", + "AF=3.0\n", + "FE=3.0\n", + "AB=4.0\n", + "FD=4.0\n", + "BD=3.0\n", + "CD=4.0\n", + "\n", + "BF=sqrt(pow(AF,2)+pow(AB,2))\n", + "DE=BF\n", + "BC=DE\n", + "\n", + "#sin(theta)=AB/BF\n", + "#cos(theta)=AF/BF\n", + "\n", + "theta=asin(AB/BF)\n", + "#As soon as a joint is analysed the forces on the joint are marked on members \n", + "\n", + "#Joint E\n", + "#Consider the equilibrium of the entire frame,Sum of moments about A is zero,Horizontal forces & Vertical forces is zero.\n", + "\n", + "FED=PE/sin(theta)\n", + "print\"FED=\",round(FED),\"KN\",\"(Tension)\"\n", + "\n", + "FEF=FED*cos(theta)\n", + "print\"FEF=\",round(FEF),\"KN\",\"(Comp.)\"\n", + "\n", + "#At this stage as no other joint is having only two unknowns, no further progress is possible. Let us find the reactions at the supports considering the whole structure. Let the reaction be RC HORIZONTAL at point C,VA,HA at point A Vertically & Horizontally respectively.\n", + "#Taking moment at point A,\n", + "\n", + "RC=PE*6/8 \n", + "#sum of vertical & sun of horizontal forces is zero.\n", + "\n", + "VA=PE\n", + "HA=RC\n", + "\n", + "#Joint A\n", + "#sum of vertical & sun of horizontal forces is zero.\n", + "FAB=VA\n", + "print\"FAB=\",round(FAB),\"KN\",\"(Comp.)\"\n", + "\n", + "FAF=HA\n", + "print\"FAF=\",round(FAF),\"KN\",\"(Comp.)\"\n", + "\n", + "#Joint C\n", + "#sum of vertical & sun of horizontal forces is zero.\n", + "FCB=RC/cos(theta)\n", + "print\"FCB=\",round(FCB),\"KN\",\"(Comp.)\"\n", + "\n", + "FCD=FCB*sin(theta)\n", + "print\"FCD=\",round(FCD),\"KN\",\"(Tension)\"\n", + "\n", + "#Joint B\n", + "#sum of vertical & sun of horizontal forces is zero.\n", + "\n", + "FBF=(FCB*sin(theta)-FAB)/sin(theta)\n", + "\n", + "print\"FBF=\",round(FBF)\n", + "\n", + "FBD=FCB*cos(theta)\n", + "print\"FBD=\",round(FBD),\"KN\",\"(Tension)\"\n", + "\n", + "#joint F\n", + "#sum of vertical & sun of horizontal forces is zero.\n", + "\n", + "FFD=FBF\n", + "print\"FFD=\",round(FFD)\n" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "# Example 3.6 page number 78" + ] + }, + { + "cell_type": "code", + "execution_count": 6, + "metadata": { + "collapsed": false + }, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "FHG= 25.0 KN (Comp.)\n", + "FHF= 15.0 KN (Tension)\n", + "FAC= 18.0278 KN (Comp.)\n", + "FAB= 15.0 KN (Tension)\n", + "FBC= 0.0\n", + "FBD=FBA 15.0 KN (Tension)\n", + "FCE=FCA 18.0278 KN (Comp.)\n", + "FDE= 0.0\n", + "FDF=FDB 15.0 KN (Tension)\n", + "FEF= 0\n", + "FEG=FCE= 18.0278 KN (Comp.)\n", + "FFG= 12.0 KN (Tension)\n" + ] + } + ], + "source": [ + "from math import atan, cos , sin, pi\n", + "\n", + "#variable declaration\n", + "\n", + "AB=2.0 #length of beam AB,m\n", + "BD=2.0 #length of beam BD,m\n", + "DF=2.0 #length of beam DF,m\n", + "FH=3.0 #length of beam FH,m\n", + "FG=4.0 #length of beam FG,m\n", + "PF=12.0 #Vertical Load at point F,KN\n", + "PH=20.0 #Vertical Load at point H,KN\n", + "\n", + "#mistake in book FG=4.0 , given FG=2.0 \n", + "\n", + "theta1=atan(FG/(AB+BD+DF))\n", + "theta3=atan(FG/FH)\n", + "theta2=theta3\n", + "\n", + "#sum of all vertical forces & sum of all horizotal forces is zero\n", + "\n", + "#joint H\n", + "\n", + "FHG=PH/sin(theta3)\n", + "print \"FHG=\",round(FHG),\"KN\",\"(Comp.)\" \n", + "\n", + "FHF=FHG*cos(theta2)\n", + "print \"FHF=\",round(FHF),\"KN\",\"(Tension)\"\n", + "\n", + "#taking moment at G\n", + "\n", + "RA=PH*FH/(AB+BD+DF)\n", + "\n", + "RG=RA+PF+PH\n", + "\n", + "#joint A\n", + "#sum of all vertical forces & sum of all horizotal forces is zero\n", + "\n", + "FAC=RA/sin(theta1)\n", + "print \"FAC=\",round(FAC,4),\"KN\",\"(Comp.)\" \n", + "\n", + "FAB=FAC*cos(theta1)\n", + "print \"FAB=\",round(FAB),\"KN\",\"(Tension)\"\n", + " \n", + "#joint B\n", + "#sum of all vertical forces & sum of all horizotal forces is zero\n", + "\n", + "FBC=0\n", + "print \"FBC=\",round(FBC) \n", + "FBA=FAB\n", + "FBD=FBA\n", + "print \"FBD=FBA\",round(FBD),\"KN\",\"(Tension)\"\n", + " \n", + "#Joint C: Sum of Forces normal to AC = 0, gives FCD =0 since FBC = 0 ,sum of Forces parallel to CE =0 \n", + "\n", + "FCA=FAC\n", + "FCE=FCA\n", + "print \"FCE=FCA\",round(FCE,4),\"KN\",\"(Comp.)\"\n", + "\n", + "\n", + "#joint D\n", + "#sum of all vertical forces & sum of all horizotal forces is zero\n", + "\n", + "FDE=0\n", + "print \"FDE=\",round(FDE) \n", + "\n", + "FDB=FBD\n", + "FDF=FDB\n", + "\n", + "print \"FDF=FDB\",round(FDF),\"KN\",\"(Tension)\"\n", + "\n", + "#Joint E: sum of Forces normal to CG = 0, gives FEF = 0 and sum of Forces in the direction of CG = 0, gives \n", + "\n", + "FEF=0\n", + "\n", + "print \"FEF=\",FEF\n", + "\n", + "FEG=FCE\n", + "\n", + "print \"FEG=FCE=\", round(FEG,4),\"KN\",\"(Comp.)\"\n", + "\n", + "#Joint F:\n", + "#sum of all vertical forces & sum of all horizotal forces is zero\n", + "\n", + "FFG=PF\n", + "\n", + "print \"FFG=\",round(FFG),\"KN\",\"(Tension)\"" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "# example 3.7 page number 80" + ] + }, + { + "cell_type": "code", + "execution_count": 7, + "metadata": { + "collapsed": false + }, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "FGF= 23.094 KN (Tension)\n", + "FGE= 11.547 KN (Comp.)\n", + "FFG= 23.094 KN (Comp.)\n", + "FFD= 13.094 KN (Tension)\n", + "FAB= 36.7543 KN (Comp.)\n", + "FAC= 8.3771 KN (Tension)\n", + "FBC= 9.4338 KN (Comp.)\n", + "FBD= 13.6603 KN (Comp.)\n", + "FCD= 9.4338 KN (Tension)\n", + "FCE= 1.0566 KN (Comp.)\n", + "FDE= 44.0748 KN (Comp.)\n" + ] + } + ], + "source": [ + "from math import sin,cos,pi\n", + "\n", + "# Since all members are 3 m long, all triangles are equilateral and hence all inclined members are at 60° to horizontal. Joint-by-joint analysis is carried out . Then nature of the force is determined. \n", + "\n", + "#variable declaration\n", + "\n", + "AB=3.0\n", + "BC=AB\n", + "AC=AB\n", + "BD=BC\n", + "CD=BD\n", + "CE=CD\n", + "DE=CE\n", + "EF=DE\n", + "DF=DE\n", + "EG=DE\n", + "FG=DF\n", + "\n", + "theta=60.0*pi/180 #angles BAC,BCA,DCE,DEC,FEG,FGE,°\n", + "\n", + "PB=40.0 #Vertical Loading at point B,KN\n", + "PD=30.0 #Vertical Loading at point D,KN\n", + "HF=10.0 #Horizontal Loading at point F,KN\n", + "PG=20.0 #Vertical Loading at point G,KN\n", + "\n", + "#joint G\n", + "#sum of all vertical forces & sum of all horizotal forces is zero\n", + "\n", + "FGF=PG/sin(theta)\n", + "\n", + "print \"FGF=\",round(FGF,4),\"KN\",\"(Tension)\"\n", + "\n", + "FGE=FGF*cos(theta)\n", + "\n", + "print \"FGE=\",round(FGE,4),\"KN\",\"(Comp.)\"\n", + "\n", + "#joint F\n", + "\n", + "#sum of all vertical forces & sum of all horizotal forces is zero\n", + "\n", + "FFG=FGF\n", + "\n", + "print \"FFG=\",round(FFG,4),\"KN\",\"(Comp.)\"\n", + "\n", + "FFE=FGF\n", + "FFD=FGF*cos(theta)+FFE*cos(theta)-HF\n", + "print \"FFD=\",round(FFD,4),\"KN\",\"(Tension)\"\n", + "\n", + "#Now, without finding reaction we cannot proceed. Hence, consider equilibrium of the entire truss\n", + "#moment about point A\n", + "\n", + "RE=((PB*AC/2)-(HF*EF*sin(theta))+(PD*(AC+CE/2))+(PG*(AC+CE+EG)))/(AC+CE)\n", + "\n", + "VA=PB+PD+PG-RE\n", + "\n", + "HA=HF\n", + "\n", + "#joint A\n", + "#sum of all vertical forces & sum of all horizotal forces is zero\n", + "\n", + "FAB=VA/sin(theta)\n", + "\n", + "print \"FAB=\",round(FAB,4),\"KN\",\"(Comp.)\"\n", + "\n", + "FAC=FAB*cos(theta)-HF\n", + "\n", + "print \"FAC=\",round(FAC,4),\"KN\",\"(Tension)\"\n", + "\n", + "\n", + "#joint B\n", + "#sum of all vertical forces & sum of all horizotal forces is zero\n", + "\n", + "FBC=(PB-FAB*sin(theta))/sin(theta)\n", + "\n", + "print \"FBC=\",round(FBC,4),\"KN\",\"(Comp.)\"\n", + "\n", + "FBA=FAB\n", + "FBD=-FBC*cos(theta)+FBA*cos(theta)\n", + "\n", + "print \"FBD=\",round(FBD,4),\"KN\",\"(Comp.)\"\n", + "\n", + "#joint C\n", + "#sum of all vertical forces & sum of all horizotal forces is zero\n", + "\n", + "FCD=FBC*sin(theta)/sin(theta)\n", + "\n", + "print \"FCD=\",round(FCD,4),\"KN\",\"(Tension)\"\n", + "\n", + "FCE=FCD*cos(theta)+FBC*cos(theta)-FAC\n", + "\n", + "print \"FCE=\",round(FCE,4),\"KN\",\"(Comp.)\"\n", + "\n", + "#joint D\n", + "#sum of all vertical forces & sum of all horizotal forces is zero\n", + "\n", + "FDE=(PD+FCD*sin(theta))/sin(theta)\n", + "\n", + "print \"FDE=\",round(FDE,4),\"KN\",\"(Comp.)\"\n" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "# example 3.8 page number82" + ] + }, + { + "cell_type": "code", + "execution_count": 8, + "metadata": { + "collapsed": false + }, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "FFH= 69.282 KN (Comp.)\n", + "FGH= 5.7735 KN (Comp.)\n", + "FGI= 72.1688 KN (Tensile)\n" + ] + } + ], + "source": [ + "from math import sin,cos,pi\n", + "\n", + "#Each load is 10 kN and all triangles are equilateral with sides 4 m.\n", + "\n", + "#variable declaration\n", + "\n", + "PB=10.0\n", + "PD=PB\n", + "PF=PD\n", + "AB=4.0\n", + "BC=AB\n", + "AC=BC\n", + "BD=BC\n", + "CD=BC\n", + "DE=CD\n", + "CE=CD\n", + "DF=DE\n", + "EF=DE\n", + "EG=DE\n", + "FG=EF\n", + "#Take section (A)–(A), which cuts the members FH, GH and GI and separates the truss into two parts. \n", + "AG=AC+CE+EG\n", + "BG=CE+EG+AC/2\n", + "DG=EG+CE/2\n", + "FG1=EG/2\n", + "RA=PB*7/2\n", + "RO=RA\n", + "theta=60.0*pi/180\n", + "#moment at point G\n", + "FFH=(RA*AG-PB*BG-PD*DG-PF*FG1)/(FG*sin(theta))\n", + "print \"FFH=\",round(FFH,4),\"KN\",\"(Comp.)\"\n", + "\n", + "#sum of all vertical forces & sum of all horizotal forces is zero\n", + "\n", + "FGH=(RA-PB-PD-PF)/(sin(theta))\n", + "print \"FGH=\",round(FGH,4),\"KN\",\"(Comp.)\"\n", + "\n", + "FGI=FFH+FGH*cos(theta)\n", + "print \"FGI=\",round(FGI,4),\"KN\",\"(Tensile)\"\n" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "# example 3.9 page number 83" + ] + }, + { + "cell_type": "code", + "execution_count": 9, + "metadata": { + "collapsed": false + }, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "FL3L4= 412.5 KN (Tension)\n", + "FU4U3= 456.2 KN (Comp.)\n", + "FU4L3= 62.5 KN (Tension)\n" + ] + } + ], + "source": [ + "from math import asin,acos,sin,cos,sqrt\n", + "\n", + "#To determine reactions, consider equilibrium equations\n", + "\n", + "#variable declaration\n", + " #all Vertical loading are in KN\n", + "PL1=200.0 \n", + "PL2=200.0\n", + "PL3=150.0\n", + "PL4=100.0\n", + "PL5=100.0\n", + "\n", + "#length in m\n", + "UL1=6.0\n", + "UL2=8.0\n", + "UL3=9.0\n", + "UL4=UL2\n", + "UL5=UL1\n", + "\n", + "L1=6.0\n", + "L2=6.0\n", + "L3=6.0\n", + "L4=6.0\n", + "L5=6.0\n", + "L6=6.0\n", + "\n", + "#moment at point LO\n", + "\n", + "R2=(PL1*L1+PL2*(L1+L2)+PL3*(L1+L2+L3)+PL4*(L1+L2+L3+L4)+PL5*(L1+L2+L3+L4+L5))/(L1+L2+L3+L4+L5+L6)\n", + "\n", + "R1=PL1+PL2+PL3+PL4+PL5-R2\n", + "\n", + "#Take the section (1)–(1) and consider the right hand side part.\n", + "\n", + "U3U4=sqrt(pow(1,2)+pow(UL1,2))\n", + "theta1=asin(1/U3U4)\n", + "\n", + "L3U4=sqrt(pow(UL1,2)+pow(UL2,2))\n", + "theta2=asin(6/L3U4)\n", + "\n", + "#moment at U4\n", + "\n", + "FL3L4=(R2*(L5+L6)-PL4*L4)/UL4\n", + "\n", + "print \"FL3L4=\", round(FL3L4,1),\"KN\",\"(Tension)\"\n", + "\n", + "#moment at L3\n", + "FU4U3=(-PL4*L4-PL5*(L4+L5)+R2*(L4+L5+L6))/(cos(theta1)*UL3)\n", + "print \"FU4U3=\", round(FU4U3,1),\"KN\",\"(Comp.)\"\n", + "\n", + "#sum of horizontal forces \n", + "FL4L3=FL3L4\n", + "FU4L3=(-FL4L3+FU4U3*cos(theta1))/sin(theta2)\n", + "print \"FU4L3=\", round(FU4L3,1),\"KN\",\"(Tension)\"\n" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "# example 3.10 page number84" + ] + }, + { + "cell_type": "code", + "execution_count": 10, + "metadata": { + "collapsed": false + }, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "theta= 60.0 °\n", + "F2= 51.9615 KN (Tension)\n", + "F1= 110.0 KN (Comp.)\n", + "F3= 69.282 KN (Tension)\n" + ] + } + ], + "source": [ + "from math import atan,tan,sin,cos,pi\n", + "\n", + "#Each load is 20 kN.\n", + "\n", + "#variable declaration\n", + "\n", + "P=20.0\n", + "AB=18.0\n", + "A=3.0\n", + "\n", + "RA=P*7/2\n", + "RB=RA\n", + "\n", + "theta1=30.0*pi/180\n", + "a=(3*A)/(4*cos(theta1))\n", + "#Take Section (A)–(A) and consider the equilibrium of left hand side part of the French Truss\n", + "#Drop perpendicular CE on AB. \n", + "\n", + "CE=3*A*tan(theta1)\n", + "DE=A\n", + "\n", + "theta=atan(CE/DE)*180/pi\n", + "print \"theta=\",round(theta),\"°\"\n", + "\n", + "#moment at point A\n", + "\n", + "F2=(P*a*cos(theta1)*6)/(A*2*sin(theta*pi/180))\n", + "print \"F2=\",round(F2,4),\"KN\",\"(Tension)\"\n", + "\n", + "#sum of all vertical forces & sum of all horizotal forces is zero\n", + "F1=(F2*sin(theta*pi/180)+RA-P*3)/(sin(theta1))\n", + "print \"F1=\",round(F1,4),\"KN\",\"(Comp.)\"\n", + "\n", + "F3=F1*cos(theta1)-F2*cos(theta*pi/180)\n", + "print \"F3=\",round(F3,4),\"KN\",\"(Tension)\"\n" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "# example 3.11 page number 85" + ] + }, + { + "cell_type": "code", + "execution_count": 11, + "metadata": { + "collapsed": false + }, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "FAE= 30.0 KN (Tension)\n", + "FBC= 71.4 KN (Comp.)\n", + "FFC= 40.98 KN (Tension)\n", + "FAB= 92.62 KN (Comp.)\n", + "FAF= 40.98 KN (Tension)\n" + ] + } + ], + "source": [ + "from math import sin,cos,pi,sqrt\n", + "\n", + "#variable declaration\n", + "\n", + "PA=15.0 #vertical loading at point A,KN\n", + "PB=30.0 #vertical loading at point B,KN\n", + "PC=30.0 #vertical loading at point C,KN\n", + "PD=30.0 #vertical loading at point D,KN\n", + "PE=15.0 #vertical loading at point E,KN\n", + "\n", + "#Due to symmetry, the reactions are equal\n", + "RA=(PA+PB+PC+PD+PE)/2\n", + "RB=RA\n", + "#Drop perpendicular CH on AF. \n", + "#in traingle ACH\n", + "\n", + "angleACH=45.0*pi/180 #angleACH,°\n", + "angleFCV=30.0*pi/180 # FC is inclined at 30° to vertical i.e., 60° to horizontal and CH = 5 m \n", + "CH=5.0\n", + "angleFCH=60.0*pi/180\n", + "\n", + "#It is not possible to find a joint where there are only two unknowns. Hence, consider section (1)–(1). \n", + "#For left hand side part of the frame\n", + "#moment at C\n", + "\n", + "FAE=(RA*CH-PA*CH-PB*CH/2)/(CH)\n", + "print \"FAE=\",round(FAE),\"KN\",\"(Tension)\"\n", + "\n", + "#Assuming the directions for FFC and FBC \n", + "#sum of vertical & sum of horizontal forces is zero\n", + "\n", + "#FFC=FBC*sqrt(2)-RA\n", + "\n", + "FBC=(RA*sin(angleFCH)-PA)/(sqrt(2)*sin(angleFCH)-(1/sqrt(2)))\n", + "print \"FBC=\",round(FBC,2),\"KN\",\"(Comp.)\"\n", + "\n", + "FFC=FBC*sqrt(2)-RA\n", + "print \"FFC=\",round(FFC,2),\"KN\",\"(Tension)\"\n", + "\n", + "#Assumed directions of FBC and FFC are correct. Therefore, FBC is in compression and FFC is in tension. Now we can proceed with method of joints to find the forces in other members. Since it is a symmetric truss, analysis of half the truss is sufficient. Other values may be written down by making use of symmetrry.\n", + "\n", + "#Joint B: sum of forces normal to AC = 0, gives \n", + "\n", + "FBF=PC*cos(angleACH)\n", + "\n", + "#sum of forces parallel to AC = 0, gives \n", + "\n", + "FAB=FBC+PC*sin(angleACH)\n", + "\n", + "print \"FAB=\",round(FAB,2),\"KN\",\"(Comp.)\"\n", + "\n", + "\n", + "\n", + "#JOINT A\n", + "#sum of vertical & sum of horizontal forces is zero\n", + "\n", + "FAF=(FAB*sin(angleACH)+PA-RA)/sin(angleFCV)\n", + "\n", + "print \"FAF=\",round(FAF,2),\"KN\",\"(Tension)\"\n" + ] + } + ], + "metadata": { + "kernelspec": { + "display_name": "Python [Root]", + "language": "python", + "name": "Python [Root]" + }, + "language_info": { + "codemirror_mode": { + "name": "ipython", + "version": 2 + }, + "file_extension": ".py", + "mimetype": "text/x-python", + "name": "python", + "nbconvert_exporter": "python", + "pygments_lexer": "ipython2", + "version": "2.7.12" + } + }, + "nbformat": 4, + "nbformat_minor": 0 +} diff --git a/MECHANICS_OF_SOLIDS_by_S.S._Bhavikatti/Chapter4.ipynb b/MECHANICS_OF_SOLIDS_by_S.S._Bhavikatti/Chapter4.ipynb new file mode 100644 index 00000000..d78e1aa8 --- /dev/null +++ b/MECHANICS_OF_SOLIDS_by_S.S._Bhavikatti/Chapter4.ipynb @@ -0,0 +1,1403 @@ +{ + "cells": [ + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "# Chapter4-DISTRIBUTED FORCES, CENTRE OF GRAVITY AND MOMENT OF INERTIA" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "# example 4.1 page number 102\n" + ] + }, + { + "cell_type": "code", + "execution_count": 1, + "metadata": { + "collapsed": false + }, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "xc= 407.44 mm\n", + "yc= 101.65 mm\n" + ] + } + ], + "source": [ + "from math import cos,sin,pi\n", + "\n", + "#variable declaration\n", + "\n", + "L1=600.0 #length of wire AB,mm\n", + "L2=200.0 #length of wire BC,mm\n", + "L3=300.0 #length of wire CD,mm\n", + "theta=45*pi/180\n", + "#The wire is divided into three segments AB, BC and CD. Taking A as origin the coordinates of the centroids of AB, BC and CD are (X1,Y1),(X2,Y2),(X3,Y3)\n", + "\n", + "X1=300.0\n", + "X2=600.0\n", + "X3=600.0-150*cos(theta)\n", + "Y1=0\n", + "Y2=100\n", + "Y3=200+150*sin(theta)\n", + "L=L1+L2+L3 #Total length,mm\n", + "\n", + "xc=(L1*X1+L2*X2+L3*X3)/L\n", + "\n", + "print \"xc=\",round(xc,2),\"mm\"\n", + "\n", + "\n", + "yc=(L1*Y1+L2*Y2+L3*Y3)/L\n", + "\n", + "print \"yc=\",round(yc,2),\"mm\"\n" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "# example 4.2 page number 103" + ] + }, + { + "cell_type": "code", + "execution_count": 2, + "metadata": { + "collapsed": false + }, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "xc= 451.2 mm\n", + "yc= 54.07 mm\n" + ] + } + ], + "source": [ + "from math import cos,sin,pi\n", + "\n", + "#The composite figure is divided into three simple figures and taking A as origin coordinates of their centroids \n", + "\n", + "#variable declaration\n", + "\n", + "L1=400.0 #length of wire AB,mm\n", + "L2=150.0*pi #length of wire BC,mm\n", + "L3=250.0 #length of wire CD,mm\n", + "theta=30*pi/180\n", + "\n", + "#The wire is divided into three segments AB, BC and CD. Taking A as origin the coordinates of the centroids of AB, BC and CD are (X1,Y1),(X2,Y2),(X3,Y3)\n", + "X1=200.0\n", + "X2=475.0\n", + "X3=400+300.0+250*cos(theta)/2\n", + "\n", + "Y1=0\n", + "Y2=2*150/pi\n", + "Y3=125*sin(theta)\n", + "L=L1+L2+L3 #Total length,mm\n", + "\n", + "xc=(L1*X1+L2*X2+L3*X3)/L\n", + "\n", + "print \"xc=\",round(xc,2),\"mm\"\n", + "\n", + "\n", + "yc=(L1*Y1+L2*Y2+L3*Y3)/L\n", + "\n", + "print \"yc=\",round(yc,2),\"mm\"\n", + "\n" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "# example 4.3 page number 105" + ] + }, + { + "cell_type": "code", + "execution_count": 3, + "metadata": { + "collapsed": false + }, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "xc= 90.19 mm\n", + "yc= 198.5 mm\n", + "zc= 56.17 mm\n" + ] + } + ], + "source": [ + "from math import cos,sin,pi\n", + "# The length and the centroid of portions AB, BC and CD \n", + "# portion AB is in x-z plane, BC in y-z plane and CD in x-y plane. AB and BC are semi circular in shape\n", + "\n", + "#variable declaration\n", + "\n", + "L1=100.0*pi #length of wire AB,mm\n", + "L2=140.0*pi #length of wire BC,mm\n", + "L3=300.0 #length of wire CD,mm\n", + "theta=45*pi/180\n", + "\n", + "#The wire is divided into three segments AB, BC and CD. Taking A as origin the coordinates of the centroids of AB, BC and CD are (X1,Y1),(X2,Y2),(X3,Y3)\n", + "X1=100.0\n", + "X2=0\n", + "X3=300*sin(theta)\n", + "\n", + "Y1=0\n", + "Y2=140\n", + "Y3=280+300*cos(theta)\n", + "Z1=2*100/pi\n", + "Z2=2*140/pi\n", + "Z3=0\n", + "\n", + "L=L1+L2+L3 #Total length,mm\n", + "\n", + "xc=(L1*X1+L2*X2+L3*X3)/L\n", + "\n", + "print \"xc=\",round(xc,2),\"mm\"\n", + "\n", + "\n", + "yc=(L1*Y1+L2*Y2+L3*Y3)/L\n", + "\n", + "print \"yc=\",round(yc,2),\"mm\"\n", + "\n", + "zc=(L1*Z1+L2*Z2+L3*Z3)/L\n", + "\n", + "print \"zc=\",round(zc,2),\"mm\"\n", + "\n", + "\n" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "# example 4.4 page number 111" + ] + }, + { + "cell_type": "code", + "execution_count": 4, + "metadata": { + "collapsed": false + }, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "xc= 0.0\n", + "yc= 40.0 mm\n", + "Hence, centroid of T-section is on the symmetric axis at a distance 40 mm from the top\n" + ] + } + ], + "source": [ + "#variable declaration\n", + "\n", + "A1=100.0*20.0 #Area of 1 ,mm^2\n", + "A2=20.0*100.0 #Area of 2,mm^2\n", + "\n", + "X1=0\n", + "X2=0\n", + "\n", + "Y1=10\n", + "Y2=70\n", + "\n", + "A=A1+A2\n", + "\n", + "xc=(A1*X1+A2*X2)/A\n", + "\n", + "print \"xc=\",round(xc,2)\n", + "\n", + "yc=(A1*Y1+A2*Y2)/A\n", + "\n", + "print \"yc=\",round(yc,2),\"mm\"\n", + "print \"Hence, centroid of T-section is on the symmetric axis at a distance 40 mm from the top\"\n" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "# example 4.5 page number 111" + ] + }, + { + "cell_type": "code", + "execution_count": 5, + "metadata": { + "collapsed": false + }, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "xc= 36.62\n", + "yc= 61.62 mm\n", + "Thus, the centroid is at x = 36.62 mm and y = 61.62 mm \n" + ] + } + ], + "source": [ + "#variable declaration\n", + "\n", + "A1=150.0*12.0 #Area of 1 ,mm^2\n", + "A2=(200.0-12.0)*12.0 #Area of 2,mm^2\n", + "\n", + "X1=75\n", + "X2=6\n", + "\n", + "Y1=6\n", + "Y2=12+(200-12)/2\n", + "\n", + "A=A1+A2\n", + "\n", + "xc=(A1*X1+A2*X2)/A\n", + "\n", + "print \"xc=\",round(xc,2)\n", + "\n", + "yc=(A1*Y1+A2*Y2)/A\n", + "\n", + "print \"yc=\",round(yc,2),\"mm\"\n", + "\n", + "print \"Thus, the centroid is at x = 36.62 mm and y = 61.62 mm \"\n" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "# example 4.6 page number 112" + ] + }, + { + "cell_type": "code", + "execution_count": 6, + "metadata": { + "collapsed": false + }, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "yc= 59.71 mm\n", + "Thus, the centroid is on the symmetric axis at a distance 59.71 mm from the bottom\n" + ] + } + ], + "source": [ + "#variable declaration\n", + "\n", + "A1=100.0*20 #Area of 1 ,mm^2\n", + "A2=100.0*20.0 #Area of 2,mm^2\n", + "A3=150.0*30.0 #Area of 3,mm^2\n", + "\n", + "#Selecting the coordinate system, due to symmetry centroid must lie on y axis,\n", + "\n", + "X1=0\n", + "X2=0\n", + "\n", + "Y1=30+100+20/2\n", + "Y2=30+100/2\n", + "Y3=30/2\n", + "\n", + "A=A1+A2+A3\n", + "\n", + "\n", + "yc=(A1*Y1+A2*Y2+A3*Y3)/A\n", + "\n", + "print \"yc=\",round(yc,2),\"mm\"\n", + "\n", + "print \"Thus, the centroid is on the symmetric axis at a distance 59.71 mm from the bottom\"\n", + "\n" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "# example 4.7 page number 113" + ] + }, + { + "cell_type": "code", + "execution_count": 7, + "metadata": { + "collapsed": false + }, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "xc= 3.523 m\n", + "yc= 2.777 m\n" + ] + } + ], + "source": [ + "# Note that it is convenient to take axis in such a way that the centroids of all simple figures are having positive coordinates. If coordinate of any simple figure comes out to be negative, one should be careful in assigning the sign of moment of area \n", + "\n", + "#variable declaration\n", + "\n", + "A1=2.0*6.0*1.0/2.0 #Area of 1,m^2\n", + "A2=2.0*7.5 #Area of 2,m^2\n", + "A3=3.0*5.0*1.0/2 #Area of 3,m^2\n", + "A4=1.0*4.0 #Area of 4,m^2\n", + "\n", + "#The composite figure can be conveniently divided into two triangles and two rectangle\n", + "\n", + "X1=2.0*2.0/3.0\n", + "X2=2.0+1.0\n", + "X3=2.0+2.0+(1.0*3.0/3.0)\n", + "X4=4.0+4.0/2.0\n", + "\n", + "Y1=6.0/3.0\n", + "Y2=7.5/2.0\n", + "Y3=1.0+5.0/3.0\n", + "Y4=1/2.0\n", + "\n", + "A=A1+A2+A3+A4\n", + "\n", + "xc=(A1*X1+A2*X2+A3*X3+A4*X4)/A\n", + "\n", + "print \"xc=\",round(xc,3),\"m\"\n", + "\n", + "\n", + "yc=(A1*Y1+A2*Y2+A3*Y3+A4*Y4)/A\n", + "\n", + "print \"yc=\",round(yc,3),\"m\"\n" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "# example 4.8 page number 114\n" + ] + }, + { + "cell_type": "code", + "execution_count": 8, + "metadata": { + "collapsed": false + }, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "xc= 2.995 m\n", + "yc= 1.89 m\n" + ] + } + ], + "source": [ + "\n", + "# The composite section is divided into three simple figures, a triangle, a rectangle and a semicircle\n", + "\n", + "from math import pi\n", + "#variable declaration\n", + "\n", + "A1=1.0*3.0*4.0/2.0 #Area of 1,m^2\n", + "A2=6.0*4.0 #Area of 2,m^2\n", + "A3=1.0*pi*pow(2,2)/2 #Area of 3,m^2\n", + "\n", + "#The coordinates of centroids of these three simple figures are:\n", + "\n", + "X1=6.0+3.0/3.0\n", + "X2=3.0\n", + "X3=-(4*2)/(3.0*pi)\n", + "\n", + "Y1=4.0/3.0\n", + "Y2=2.0\n", + "Y3=2.0\n", + "\n", + "A=A1+A2+A3\n", + "\n", + "xc=(A1*X1+A2*X2+A3*X3)/A\n", + "\n", + "print \"xc=\",round(xc,4),\"m\"\n", + "\n", + "\n", + "yc=(A1*Y1+A2*Y2+A3*Y3)/A\n", + "\n", + "print \"yc=\",round(yc,3),\"m\"" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "# example 4.9 page number 115" + ] + }, + { + "cell_type": "code", + "execution_count": 9, + "metadata": { + "collapsed": false + }, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "xc= 145.42 m\n", + "yc= 90.39 m\n" + ] + } + ], + "source": [ + "#The composite area is equal to a rectangle of size 160 × 280 mm plus a triangle of size 280 mm base width and 40 mm height and minus areas of six holes. In this case also the can be used for locating centroid by treating area of holes as negative. The area of simple figures and their centroids are\n", + "\n", + "from math import pi\n", + "\n", + "#variable declaration\n", + "\n", + "Ar=160.0*280.0 #Area of rectangle,mm^2\n", + "At=280.0*40.0/2.0 #Area of triangle,mm^2\n", + "d=21.5 #diameter of hole,mm \n", + "Ah=-pi*pow(d,2)/4 #Area of hole,mm^2\n", + "\n", + "A=Ar+At+Ah*6\n", + "\n", + "\n", + "Xr=140.0\n", + "Xt=560/3.0\n", + "Xh1=70.0\n", + "Xh2=140.0\n", + "Xh3=210.0\n", + "Xh4=70.0\n", + "Xh5=140.0\n", + "Xh6=210.0\n", + "\n", + "Yr=80.0\n", + "Yt=160.0+40.0/3.0\n", + "Yh1=50.0\n", + "Yh2=50.0\n", + "Yh3=50.0\n", + "Yh4=120.0\n", + "Yh5=130.0\n", + "Yh6=140.0\n", + "\n", + "xc=(Ar*Xr+At*Xt+Ah*(Xh1+Xh2+Xh3+Xh4+Xh5+Xh6))/A\n", + "\n", + "print \"xc=\",round(xc,2),\"m\"\n", + "\n", + "\n", + "yc=(Ar*Yr+At*Yt+Ah*(Yh1+Yh2+Yh3+Yh4+Yh5+Yh6))/A\n", + "\n", + "print \"yc=\",round(yc,2),\"m\"\n" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "# example 4.10 page number 116" + ] + }, + { + "cell_type": "code", + "execution_count": 10, + "metadata": { + "collapsed": false + }, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "xc= 90.48 mm\n", + "yc= 67.86 mm\n" + ] + } + ], + "source": [ + "# If xc and yc are the coordinates of the centre of the circle, centroid also must have the coordinates xc and yc as per the condition laid down in the problem. The shaded area may be considered as a rectangle of size 200 mm × 150 mm minus a triangle of sides 100 mm × 75 mm and a circle of diameter 100 mm.\n", + "\n", + "\n", + "#variable declaration\n", + "\n", + "Ap=200.0*150.0 #Area of plate,mm^2\n", + "At=100.0*75.0/2.0 #Area of triangle,mm^2\n", + "Ah=pi*pow(100,2)/4.0 #Area of hole ,mm^2\n", + "\n", + "A=Ap-At-Ah\n", + "\n", + "\n", + "X1=100.0\n", + "X2=200.0-100.0/3.0\n", + "#X3=Xc\n", + "\n", + "Y1=75.0\n", + "Y2=150.0-25.0\n", + "#Y3=Yc\n", + "\n", + "A=Ap-At-Ah\n", + "\n", + "xc=(Ap*X1-At*X2)/(Ah+A)\n", + "\n", + "print \"xc=\",round(xc,2),\"mm\"\n", + "\n", + "yc=(Ap*Y1-At*Y2)/(Ah+A)\n", + "\n", + "print \"yc=\",round(yc,2),\"mm\"\n" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "# example 4.11 page number 118" + ] + }, + { + "cell_type": "code", + "execution_count": 11, + "metadata": { + "collapsed": false + }, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "xc= 326.4 m\n", + "yc= 219.12 m\n" + ] + } + ], + "source": [ + "from math import pi\n", + "\n", + "#variable declaration\n", + "X=40.0\n", + "A1=14.0*12.0*pow(X,2) #Area of rectangle,mm^2\n", + "A2=6.0*4.0*pow(X,2)/2.0 #Area of triangle,mm^2\n", + "A3=-4*4*pow(X,2) #Area of removed subtracted,mm^2\n", + "A4=-pi*pow(4*X,2)/2.0 #Area of semicircle to be subtracted,mm^2\n", + "A5=-pi*pow(4*X,2)/4.0 #Area of quarter of circle to be subtracted,mm^2\n", + "\n", + "X1=7.0*X\n", + "X2=14*X+2*X\n", + "X3=2*X\n", + "X4=6.0*X\n", + "X5=14.0*X-(16*X/(3*pi))\n", + "\n", + "Y1=6.0*X\n", + "Y2=4.0*X/3.0\n", + "Y3=8.0*X+2.0*X\n", + "Y4=(16.0*X)/(3*pi)\n", + "Y5=12*X-4*(4*X/(3*pi))\n", + "\n", + "A=A1+A2+A3+A4+A5\n", + "\n", + "xc=(A1*X1+A2*X2+A3*X3+A4*X4+A5*X5)/A\n", + "\n", + "print \"xc=\",round(xc,2),\"m\"\n", + "\n", + "\n", + "yc=(A1*Y1+A2*Y2+A3*Y3+A4*Y4+A5*Y5)/A\n", + "\n", + "print \"yc=\",round(yc,2),\"m\"" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "# example 4.12 page number 130" + ] + }, + { + "cell_type": "code", + "execution_count": 12, + "metadata": { + "collapsed": false + }, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "Ixx= 6372441.9 mm^4\n", + "Iyy= 2824166.0 mm^4\n", + "kxx= 46.88 mm\n", + "kyy= 31.21 mm\n" + ] + } + ], + "source": [ + "#The given composite section can be divided into two rectangles \n", + "\n", + "from math import pi,sqrt\n", + "#variable declaration\n", + "\n", + "\n", + "A1=150.0*10.0 #Area of 1,mm^2\n", + "A2=140.0*10.0 #Area of 2,mm^2\n", + "A=A1+A2 #Total area,mm^2 \n", + "#Due to symmetry, centroid lies on the symmetric axis y-y. The distance of the centroid from the top most fibre is given by:\n", + "\n", + "Y1=5.0\n", + "Y2=10.0+70.0\n", + "\n", + "yc=(A1*Y1+A2*Y2)/A\n", + "\n", + "#Referring to the centroidal axis x-x and y-y, the centroid of A1 is g1 (0.0, yc-5) and that of A2 is g2 (0.0, 80-yc)\n", + "\n", + "#Moment of inertia of the section about x-x axis Ixx = moment of inertia of A1 about x-x axis + moment of inertia of A2 about x-x axis.\n", + "\n", + "\n", + "Ixx=(150*pow(10,3)/12)+(A1*pow((yc-5),2))+(10*pow(140,3)/12)+(A2*pow((80-yc),2))\n", + "\n", + "print \"Ixx=\",round(Ixx,1),\"mm^4\"\n", + "\n", + "Iyy=(10*pow(150,3)/12)+(140*pow(10,3)/12)\n", + "\n", + "print \"Iyy=\",round(Iyy,1),\"mm^4\"\n", + "\n", + "#Hence, the moment of inertia of the section about an axis passing through the centroid and parallel to the top most fibre is Ixxmm^4 and moment of inertia of the section about the axis of symmetry is Iyy mm^4. \n", + "#The radius of gyration is given by\n", + "\n", + "kxx=sqrt(Ixx/A)\n", + "print\"kxx=\",round(kxx,2),\"mm\"\n", + "\n", + "kyy=sqrt(Iyy/A)\n", + "print\"kyy=\",round(kyy,2),\"mm\"" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "# example 4.13 page number 131" + ] + }, + { + "cell_type": "code", + "execution_count": 13, + "metadata": { + "collapsed": false + }, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "Ixx= 3411298.7 mm^4\n", + "Iyy= 1208657.7 mm^4\n", + "Izz= 4619956.4 mm^4\n" + ] + } + ], + "source": [ + "#The given composite section can be divided into two rectangles \n", + "\n", + " \n", + "#variable declaration\n", + "\n", + "\n", + "A1=125.0*10.0 #Area of 1,mm^2\n", + "A2=75.0*10.0 #Area of 2,mm^2\n", + "A=A1+A2 #Total area,mm^2 \n", + "\n", + "#First, the centroid of the given section is to be located. Two reference axis (1)–(1) and (2)–(2) \n", + "\n", + "#The distance of centroid from the axis (1)–(1)\n", + "\n", + "X1=5.0\n", + "X2=10.0+75.0/2\n", + "\n", + "xc=(A1*X1+A2*X2)/A\n", + "\n", + "#Similarly, the distance of the centroid from the axis (2)–(2)\n", + "\n", + "Y1=125.0/2\n", + "Y2=5.0\n", + "\n", + "yc=(A1*Y1+A2*Y2)/A\n", + "\n", + "#With respect to the centroidal axis x-x and y-y, the centroid of A1 is g1 (xc-5, (85/2)-xc) and that of A2 is g2 ((135/2)-yc, yc-5). \n", + "Ixx=(10*pow(125,3)/12)+(A1*pow(21.56,2))+(75.0*pow(10.0,3.0)/12)+(A2*pow((39.94),2))\n", + "\n", + "print \"Ixx=\",round(Ixx,1),\"mm^4\"\n", + "\n", + "Iyy=(125*pow(10,3)/12)+(A1*pow(15.94,2))+(10*pow(75,3)/12)+(A2*pow(26.56,2)) \n", + "\n", + "print \"Iyy=\",round(Iyy,1),\"mm^4\"\n", + "\n", + "#Izz=Polar moment of inertia\n", + "\n", + "Izz=Ixx+Iyy\n", + "\n", + "print \"Izz=\",round(Izz,1),\"mm^4\"\n", + "\n" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "# eample 4.14 page number 132" + ] + }, + { + "cell_type": "code", + "execution_count": 14, + "metadata": { + "collapsed": false + }, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "Ixx= 59269202.1 mm^4\n", + "Iyy= 12005814.8 mm^4\n", + "Izz= 71275016.9 mm^4\n" + ] + } + ], + "source": [ + "#The given composite section can be divided into two rectangles \n", + "\n", + " \n", + "#variable declaration\n", + "\n", + "\n", + "A1=200.0*9.0 #Area of 1,mm^2\n", + "A2=(250.0-9*2)*6.7 #Area of 2,mm^2\n", + "A3=200.0*9.0 #Area of 3,mm^2 \n", + "A=A1+A2+A3 #Total area,mm^2 \n", + "\n", + "#The section is symmetrical about both x-x and y-y axis. \n", + "X1=0\n", + "X2=0\n", + "X3=0\n", + "\n", + "xc=(A1*X1+A2*X2+A3*X3)/A\n", + "\n", + "\n", + "Y1=245.5\n", + "Y2=125.0\n", + "Y3=4.5\n", + "\n", + "yc=(A1*Y1+A2*Y2+A3*Y3)/A\n", + "\n", + "#Therefore, its centroid will coincide with the centroid of rectangle A2. With respect to the centroidal axis x-x and y-y, the centroid of rectangle A1 is g1 (0.0, 120.5), that of A2 is g2 (0.0, 0.0) and that of A3 is g3 (0.0, 120.5).\n", + "\n", + "Ixx=(200.0*pow(9,3)/12)+(A1*pow(yc-4.5,2))+(6.7*pow(232,3.0)/12)+0+(200*pow(9,3)/12)+(A3*pow((yc-4.5),2))\n", + "\n", + "print \"Ixx=\",round(Ixx,1),\"mm^4\"\n", + "\n", + "Iyy=(9*pow(200,3)/12)+(232*pow(6.7,3)/12)+(9*pow(200,3)/12) \n", + "\n", + "print \"Iyy=\",round(Iyy,1),\"mm^4\"\n", + "\n", + "#Izz=Polar moment of inertia\n", + "\n", + "Izz=Ixx+Iyy\n", + "\n", + "#misprint in book\n", + "\n", + "print \"Izz=\",round(Izz,1),\"mm^4\"\n", + "\n" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "# example4.15 page number 133" + ] + }, + { + "cell_type": "code", + "execution_count": 15, + "metadata": { + "collapsed": false + }, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "Ixx= 135903229.0 mm^4\n", + "Iyy= 5276363.1 mm^4\n" + ] + } + ], + "source": [ + "from math import sqrt\n", + "\n", + "#variable declaration\n", + "\n", + "\n", + "A1=100.0*13.5 #Area of 1,mm^2\n", + "A2=(400.0-27.0)*8.1 #Area of 2,mm^2\n", + "A3=100.0*13.5 #Area of 3,mm^2 \n", + "\n", + "A=A1+A2+A3 #Total area,mm^2 \n", + "\n", + "#The given section is symmetric about horizontal axis passing through the centroid g2 of the rectangle A2.\n", + "\n", + "X1=50.0\n", + "X2=8.1/2.0\n", + "X3=50.0\n", + "\n", + "xc=(A1*X1+A2*X2+A3*X3)/A\n", + "\n", + "Y1=386.5+13.5/2.0\n", + "Y2=200.0\n", + "Y3=13.5/2\n", + "\n", + "yc=(A1*Y1+A2*Y2+A3*Y3)/A\n", + "\n", + "#With reference to the centroidal axis x-x and y-y\n", + "\n", + "Ixx=(100.0*pow(13.5,3)/12.0)+(A1*pow((200-(13.5/2)),2))+(8.1*pow(373,3.0)/12.0)+0+(100*pow(13.5,3)/12.0)+(A3*pow((200-(13.5/2)),2))\n", + "print \"Ixx=\",round(Ixx,1),\"mm^4\"\n", + "\n", + "Iyy=(13.5*pow(100.0,3)/12.0)+(A1*pow((50-xc),2))+(373.0*pow(8.1,3.0)/12.0)+A2*pow(21.68,2)+(13.5*pow(100,3)/12.0)+(A3*pow((50-xc),2))\n", + "\n", + "print \"Iyy=\",round(Iyy,1),\"mm^4\"\n" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "# example 4.16 page number 134\n" + ] + }, + { + "cell_type": "code", + "execution_count": 16, + "metadata": { + "collapsed": false + }, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "Polar moment of Inertia= 32109472.0 mm^4\n", + "kxx= 90.3 mm\n", + "kyy= 23.09 mm\n" + ] + } + ], + "source": [ + "# The section is divided into three rectangles A1, A2 and A3\n", + "\n", + " \n", + "#variable declaration\n", + "\n", + "\n", + "A1=80.0*12.0 #Area of 1,mm^2\n", + "A2=(150.0-22.0)*12.0 #Area of 2,mm^2\n", + "A3=120.0*10.0 #Area of 3,mm^2 \n", + "\n", + "A=A1+A2+A3 #Total area,mm^2 \n", + "\n", + "#Due to symmetry, centroid lies on axis y-y. The bottom fibre (1)–(1) is chosen as reference axis to locate the centroid\n", + "\n", + "Y1=150-6\n", + "Y2=(128/2) +10\n", + "Y3=5\n", + "\n", + "yc=(A1*X1+A2*X2+A3*X3)/A\n", + "\n", + "X1=60.0\n", + "X2=60.0\n", + "X3=60.0\n", + "\n", + "xc=(A1*Y1+A2*Y2+A3*Y3)/A\n", + "\n", + "#With reference to the centroidal axis x-x and y-y, the centroid of the rectangles A1 is g1 (0.0, 150-6-yc), that of A2 is g2 (0.0, 75-yc) and that of A3 is g3 (0.0, yc-5 ).\n", + "\n", + "Iyy=(12*(pow(80,3))/12)+(128*(pow(12,3))/12)+(10*(pow(120,3))/12)\n", + "\n", + "Ixx=(80.0*pow(12.0,3)/12.0)+(A1*pow((150-6-yc),2))+(12*pow(128,3.0)/12.0)+(A2*pow((75-yc),2))+(120*pow(10,3)/12.0)+(A3*pow((150-10-6-yc),2))\n", + "\n", + "\n", + "\n", + "PolarmomentofInertia=Ixx+Iyy\n", + "\n", + "print \"Polar moment of Inertia=\",round(PolarmomentofInertia),\"mm^4\"\n", + "\n", + "kxx=sqrt(Ixx/A)\n", + "print \"kxx=\",round(kxx,2),\"mm\"\n", + "\n", + "\n", + "kyy=sqrt(Iyy/A)\n", + "print \"kyy=\",round(kyy,2),\"mm\"\n", + "\n" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "# example4.17 page number 135" + ] + }, + { + "cell_type": "code", + "execution_count": 17, + "metadata": { + "collapsed": false + }, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "Ixx= 31543827.2 mm^4\n", + "Iyy= 19745121.6 mm^4\n" + ] + } + ], + "source": [ + "from math import sqrt\n", + "\n", + "#The given composite section may be divided into simple rectangles and triangle\n", + "\n", + "#variable declaration\n", + "\n", + "\n", + "A1=100.0*30.0 #Area of 1,mm^2\n", + "A2=100.0*25.0 #Area of 2,mm^2\n", + "A3=200.0*20.0 #Area of 3,mm^2 \n", + "A4=87.5*20.0/2.0 #Area of 4,mm^2\n", + "A5=87.5*20.0/2.0 #Area of 5,mm^2\n", + "\n", + "A=A1+A2+A3+A4+A5 #Total area,mm^2 \n", + "\n", + "#Due to symmetry, centroid lies on the axis y-y. A reference axis (1)–(1) is choosen as shown in the figure. The distance of the centroidal axis from (1)–(1)\n", + "\n", + "X1=100.0\n", + "X2=100.0\n", + "X3=100.0\n", + "X4=2.0*87.5/3.0\n", + "X5=200-X4\n", + "xc=(A1*X1+A2*X2+A3*X3+A4*X4+A5*X5)/A\n", + "\n", + "Y1=135.0\n", + "Y2=70.0\n", + "Y3=10.0\n", + "Y4=(20.0/3.0)+20.0\n", + "Y5=Y4\n", + "\n", + "yc=(A1*Y1+A2*Y2+A3*Y3+A4*Y4+A5*Y5)/A\n", + "\n", + "#With reference to the centroidal axis x-x and y-y, the centroid of the rectangle A1 is g1 (0.0,135.0-yc), that of A2 is g2(0.0,70.00-yc), that of A3 is g3 (0.0, yc-10.0), the centroid of triangle A4 is g4 (41.66,yc-20.0-(20.0/3.0) ) and that of A5 is g5 (41.66,yc-20.0-(20.0/3.0)).\n", + "\n", + "\n", + "Ixx=(100.0*pow(30,3)/12.0)+(A1*pow((135.0-yc),2))+(25.0*pow(100,3.0)/12.0)+(A2*pow((70.0-yc),2))+(200*pow(20,3)/12.0)+(A3*pow((yc-10.0),2))+((87.5*pow(20,3)/36.0)+(A4*pow((yc-20.0-(20.0/3.0)),2)))*2\n", + "\n", + "print \"Ixx=\",round(Ixx,1),\"mm^4\"\n", + "\n", + "Iyy=(30.0*pow(100,3)/12.0)+(100.0*pow(25,3.0)/12.0)+(20*pow(200,3)/12.0)+((20.0*pow(87.5,3)/36.0)+(A4*pow((41.66),2)))*2\n", + "\n", + "print \"Iyy=\",round(Iyy,1),\"mm^4\"\n" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "# example4.18 page number137" + ] + }, + { + "cell_type": "code", + "execution_count": 18, + "metadata": { + "collapsed": false + }, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "IAB= 806093331.0 mm^4\n" + ] + } + ], + "source": [ + "#In this problem, it is required to find out the moment of inertia of the section about an axis AB. So there is no need to find out the position of the centroid. \n", + "#The given section is split up into simple rectangles\n", + "#Moment of inertia about AB = Sum of moments of inertia of the rectangle about AB\n", + "\n", + "#variable declaration\n", + "\n", + "A1=400*20.0\n", + "A2=100*10\n", + "A3=10*380.0\n", + "A4=100*10.0\n", + "\n", + "IAB=(400.0*pow(20,3)/12)+(A1*pow(10,2))+((100*pow(10,3)/12)+(A2*pow(25,2)))*2+((10*pow(380,3)/12)+(A3*pow(220,2)))*2+((100*pow(10,3)/12)+(A4*pow(415,2)))*2\n", + "\n", + "print \"IAB=\",round(IAB),\"mm^4\"" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "# example4.19 page number 137" + ] + }, + { + "cell_type": "code", + "execution_count": 19, + "metadata": { + "collapsed": false + }, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "Ixx= 50399393.9 mm^4\n" + ] + } + ], + "source": [ + "# The built-up section is divided into six simple rectangles\n", + "\n", + "#variable declaration\n", + "\n", + "\n", + "A1=250.0*10.0 #Area of 1,mm^2\n", + "A2=40.0*10.0 #Area of 2,mm^2\n", + "\n", + "A=A1*2+A2*4 #Total area,mm^2 \n", + "\n", + "\n", + "Y1=5.0\n", + "Y2=30.0\n", + "Y3=15.0\n", + "Y4=255.0\n", + "Y5=135.0\n", + "\n", + "yc=(A1*Y1+2*A2*Y2+A2*Y3+A2*Y4+A1*Y5)/A\n", + "\n", + "#Now, Moment of inertia about the centroidalaxis=Sum of the moment of inertia of the individual rectangles\n", + "\n", + "Ixx=(250.0*pow(10,3)/12.0)+(A1*pow((yc-5),2))+((10.0*pow(40,3.0)/12.0)+(A2*pow((yc-30.0),2)))*2+(40*pow(10,3)/12.0)+(A2*pow((yc-15.0),2))+(10.0*pow(250.0,3.0)/12.0)+(A1*pow((yc-135.0),2))+(40.0*pow(10.0,3)/12)+(A2*pow((yc-255),2))\n", + "\n", + "print \"Ixx=\",round(Ixx,1),\"mm^4\"\n", + "\n" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "# example4.20 page number 138" + ] + }, + { + "cell_type": "code", + "execution_count": 20, + "metadata": { + "collapsed": false + }, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "145.394736842\n", + "Ixx= 752680131.6 mm^4\n" + ] + } + ], + "source": [ + "#Each angle is divided into two rectangles \n", + "\n", + "#variable declaration\n", + "\n", + "A1=600.0*15.0 #Area of 1,mm^2\n", + "A2=140.0*10.0 #Area of 2,mm^2\n", + "A3=150.0*10.0\n", + "A4=400.0*20.0\n", + "A=A1+A2*2+A3*2+A4 #Total area,mm^2 \n", + "\n", + "#The distance of the centroidal axis from the bottom fibres of section \n", + "\n", + "Y1=320.0\n", + "Y2=100.0\n", + "Y3=25.0\n", + "Y4=10.0\n", + "\n", + "yc=(A1*Y1+2*A2*Y2+A3*Y3*2+A4*Y4)/A\n", + "print yc\n", + "#Now, Moment of inertia about the centroidalaxis=Sum of the moment of inertia of the individual rectangles\n", + "\n", + "Ixx=(15.0*pow(600,3)/12.0)+(A1*pow((yc-320),2))+((10.0*pow(140,3.0)/12.0)+(A2*pow((yc-100.0),2)))*2+((150*pow(10,3)/12.0)+(A3*pow((yc-15.0),2)))*2+(400.0*pow(20.0,3.0)/12.0)+(A4*pow((yc-10.0),2))\n", + "\n", + "\n", + "print \"Ixx=\",round(Ixx,1),\"mm^4\"\n" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "# example4.21 page number 139" + ] + }, + { + "cell_type": "code", + "execution_count": 21, + "metadata": { + "collapsed": false + }, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "Ixx= 36000000.0 mm^4\n" + ] + } + ], + "source": [ + "\n", + "from math import asin,sin,cos,pi\n", + "\n", + "#The rectangle is divided into four triangles\n", + "#The lines AE and FC are parallel to x-axis\n", + " \n", + "#variable declaration\n", + "\n", + "theta=asin(4.0/5.0)\n", + "\n", + "AB=100.0\n", + "BK=AB*sin((90*pi/180)-theta)\n", + "ND=BK\n", + "FD=60.0/sin(theta)\n", + "AF=150.0-FD\n", + "FL=ME=75.0*sin(theta)\n", + "AE=AB/cos((90*pi/180)-theta)\n", + "FC=AE\n", + "A=125.0*60.0/2.0\n", + "\n", + "#Moment of inertia of the section about axis x-x=Sum of the momentsof inertia of individual triangular areasabout axis\n", + "\n", + "Ixx=(125*pow(60,3)/36)+(A*pow((ND*4.0/3.0),2))+(125*pow(60,3)/36)+(A*pow((ND*2.0/3.0),2))+(125*pow(60,3)/36)+(A*pow((ND*1.0/3.0),2))+(125*pow(60,3)/36)+(A*pow((ND*1.0/3.0),2))\n", + "\n", + "print \"Ixx=\",round(Ixx),\"mm^4\"\n" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "# example 4.22, page number 140" + ] + }, + { + "cell_type": "code", + "execution_count": 22, + "metadata": { + "collapsed": false + }, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "IAB= 4292979.0 mm^4\n" + ] + } + ], + "source": [ + "from math import pi\n", + "\n", + "#The section is divided into a triangle PQR, a semicircle PSQ having base on axis AB and a circle having its centre on axis AB\n", + "\n", + "#variable declaration\n", + "#Now,Moment of inertia of the section about axis AB\n", + "IAB=(80*pow(80,3)/12)+(pi*pow(80,4)/128)-(pi*pow(40,4)/64)\n", + "\n", + "print \"IAB=\",round(IAB),\"mm^4\"\n", + "\n" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "# example4.23 page number141" + ] + }, + { + "cell_type": "code", + "execution_count": 23, + "metadata": { + "collapsed": false + }, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "106.435694487 28.4724404943\n", + "Ixx= 686943.0 mm^4\n", + "Iyy= 17146488.0 mm^4\n" + ] + } + ], + "source": [ + "from math import pi\n", + "\n", + "#The section is divided into three simple figures viz., a triangle ABC, a rectangle ACDE and a semicircle. \n", + "\n", + "#variable declaration\n", + "\n", + "r=20.0 #radius of semicircle\n", + "A1=80.0*20.0/2 #Area of triangle ABC \n", + "A3=40.0*80.0 #Area of rectangle ACDE \n", + "A4=pi*pow(r,2)/2 #Area of semicircle\n", + "At1=30.0*20.0/2.0\n", + "At2=50.0*20.0/2.0\n", + "A=A1+A3-A4 #Total area\n", + "\n", + "X1=2.0*30.0/3.0\n", + "X2=50.0*30.0/3.0\n", + "X3=40.0\n", + "X4=40.0\n", + "\n", + "xc=(At1*X1+At2*X2+A3*X3-A4*X4)/A\n", + "#mistake in book\n", + "\n", + "Y1=(20.0/3.0)+40.0\n", + "Y3=20.0\n", + "Y4=(4.0*20.0)/(3.0*pi)\n", + "\n", + "yc=(A1*Y1+A3*Y3-A4*Y4)/A\n", + "print xc,yc\n", + "#\n", + "#Moment of inertia of the section about axis x-x=Sum of the momentsof inertia of individual triangular areasabout axis\n", + "\n", + "Ixx=(80.0*pow(20.0,3)/36) +A1*pow((60.0-(2*20.0/3.0)-yc),2)+(80*pow(40,3)/12)+(A3*pow((yc-20.0),2))-((0.0068598*pow(20,4))+(A4*pow((yc-Y4),2)))\n", + "\n", + "print\"Ixx=\",round(Ixx),\"mm^4\"\n", + "\n", + "\n", + "Iyy=(20.0*pow(30.0,3)/36) +At1*pow((xc-(2*30.0/3.0)),2)+(20*pow(50,3)/36)+(At2*pow((xc-(30.0+(50/3))),2))+((40*pow(80,3)/12)+(A3*pow((xc-40),2)))-((pi*pow(40,4))/(2*64))-(A4*pow((40-xc),2))\n", + "\n", + "print\"Iyy=\",round(Iyy),\"mm^4\"\n" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "# example 4.27 page number 150" + ] + }, + { + "cell_type": "code", + "execution_count": 24, + "metadata": { + "collapsed": false + }, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "25000.0 5625.0 235.619449019 7889.38055098\n", + "xc= 0.411 m\n", + "yc= 0.329 m\n", + "zc= 0.221 m\n" + ] + } + ], + "source": [ + "#A concrete block of size 0.60 m × 0.75 m × 0.5 m is cast with a hole of diameter 0.2 m and depth 0.3 m\n", + "#The hole is completely filled with steel balls weighing 2500 N. Locate the centre of gravity of the body.\n", + "\n", + "from math import pi\n", + "\n", + "#variable declaration\n", + "\n", + "W=25000.0 # weight of concrete=25000, N/m^3\n", + "W1=0.6*0.75*0.5*W #Weight of solid concrete block\n", + "W2=pi*pow(0.2,2)*0.3*W/4 #Weight of concrete (W2) removed for making hole:\n", + "W3=2500\n", + "\n", + "#Taking origin as shown in the figure, the centre of gravity of solid block is (0.375, 0.3, 0.25) and that of hollow portion is (0.5, 0.4, 0.15)\n", + "\n", + "X1=0.375\n", + "X2=0.5\n", + "X3=0.5\n", + "\n", + "Y1=0.3\n", + "Y2=0.4\n", + "Y3=0.4\n", + "\n", + "Z1=0.25\n", + "Z2=0.15\n", + "Z3=0.15\n", + "\n", + "Wt=W3+W1-W2\n", + "print W,W1,W2,Wt\n", + "xc=(W1*X1-W2*X2+W3*X3)/Wt\n", + "\n", + "yc=(W1*Y1-W2*Y2+W3*Y3)/Wt\n", + "\n", + "zc=(W1*Z1-W2*Z2+W3*Z3)/Wt\n", + "\n", + "print\"xc=\",round(xc,3),\"m\"\n", + "print\"yc=\",round(yc,3),\"m\"\n", + "print\"zc=\",round(zc,3),\"m\"\n" + ] + } + ], + "metadata": { + "kernelspec": { + "display_name": "Python [Root]", + "language": "python", + "name": "Python [Root]" + }, + "language_info": { + "codemirror_mode": { + "name": "ipython", + "version": 2 + }, + "file_extension": ".py", + "mimetype": "text/x-python", + "name": "python", + "nbconvert_exporter": "python", + "pygments_lexer": "ipython2", + "version": "2.7.12" + } + }, + "nbformat": 4, + "nbformat_minor": 0 +} diff --git a/MECHANICS_OF_SOLIDS_by_S.S._Bhavikatti/Chapter5.ipynb b/MECHANICS_OF_SOLIDS_by_S.S._Bhavikatti/Chapter5.ipynb new file mode 100644 index 00000000..87ac24ec --- /dev/null +++ b/MECHANICS_OF_SOLIDS_by_S.S._Bhavikatti/Chapter5.ipynb @@ -0,0 +1,774 @@ +{ + "cells": [ + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "# Chapter5-FRICTION" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "# Example 5.1" + ] + }, + { + "cell_type": "code", + "execution_count": 1, + "metadata": { + "collapsed": false + }, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "P= 1250.0 N\n", + "P= 1210.36288071 N\n" + ] + } + ], + "source": [ + "import math\n", + "Wa=1000.0 #weight of block a\n", + "Wb=2000.0 #weight of block b\n", + "uab=1.0/4.0 #coefficient of friction between A and B\n", + "ubg=1.0/3.0 #coefficient of friction between ground and B\n", + "#When P is horizontal\n", + "#considering equilibrium of block A\n", + "N1=Wa #Normal Reaction on block A from block B\n", + "F1=uab*N1 #limiting Friction between A and B\n", + "T=F1 #tension\n", + "#considering equilibrium of block B\n", + "N2=N1+ Wb #Normal Reaction on block B from Ground\n", + "F2=ubg*N2 #limiting Friction between A and ground\n", + "P=F1+F2\n", + "print \"P=\",P,\"N\"\n", + "#When P is inclined at angle o\n", + "o=30.0*3.14/180.0\n", + "#considering equilibrium of block A\n", + "N1=Wa #Normal Reaction on block A from block B\n", + "F1=uab*N1 #limiting Friction between A and B\n", + "T=F1 #tension\n", + "#considering equilibrium of block B\n", + "#from\n", + "#N2+Psin30=N1+Wb\n", + "#Pcos30=F1+F2\n", + "#F1=ubg*N2\n", + "N2=(N1+Wb-F1*math.tan(o))/(1+ubg*math.tan(o))\n", + "P=(N1+Wb-N2)/math.sin(o)\n", + "print \"P=\",P,\"N\"\n", + "\n" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "# Example 5.2" + ] + }, + { + "cell_type": "code", + "execution_count": 2, + "metadata": { + "collapsed": false + }, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "29.0693410161 °\n" + ] + } + ], + "source": [ + "import math\n", + "Wa=300.0 #weight of upper block \n", + "Wb=900.0 #weight of lower block \n", + "u1=1.0/3.0 #coefficient of friction between upper block and lower block\n", + "u2=1.0/3.0 #coefficient of friction between ground and lower block\n", + "#using \n", + "#N1=Wacoso Normal Reaction\n", + "#F1=u1*N1 Friction\n", + "#N2=Wbcoso+N1\n", + "#F2=u2*N2\n", + "o=math.atan((u1*Wa+u2*Wb+u2*Wa)/Wb)*180/3.14\n", + "print o,\"°\"\n", + "\n" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "# Example 5.3" + ] + }, + { + "cell_type": "code", + "execution_count": 3, + "metadata": { + "collapsed": false + }, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "Angle of inclination is 30.0152164356\n", + "coefficient of friction is 0.1\n" + ] + } + ], + "source": [ + "import math\n", + "W=500.0 #weight of block\n", + "F1=200.0 #force up the inclined plane when block is moving down\n", + "F2=300.0 #force up the inclined plane when block is at rest\n", + "#When block starts moving down the plane\n", + "#sum of all forces perpendicular to the plane = 0\n", + "#N =Wcoso\n", + "#sum of all forces parallel to the plane = 0\n", + "#Fr+F1=Wsino\n", + "#sino-ucoso=F1/w 1\n", + "#When block starts moving up the plane\n", + "#sum of all forces perpendicular to the plane = 0\n", + "#N =Wcoso\n", + "#sum of all forces parallel to the plane = 0\n", + "#Wsino+Wucoso=F2\n", + "#using these equations\n", + "o=math.asin((F1*0.5/W)+(F2*0.5/W)) #angle of inclination\n", + "print \"Angle of inclination is \",(o*180/3.14)\n", + "#using 1\n", + "u=math.sin(o)-F1/W\n", + "print \"coefficient of friction is\",round(u,3)\n", + "\n", + "\n", + "\n", + "\n" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "# Example 5.4" + ] + }, + { + "cell_type": "code", + "execution_count": 4, + "metadata": { + "collapsed": false + }, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "Angle of Inclination 21.8124674778\n" + ] + } + ], + "source": [ + "import math\n", + "uag=0.5 #coefficient of friction between block A and the plane\n", + "ubg=0.2 #coefficient of friction between block B and the plane\n", + "Wb=500.0 #weight of block B\n", + "Wa=1000.0 #weight of block A\n", + "#Considering equilibrium of block A,\n", + "#sum of all forces along the plane is 0\n", + "#N1=Wacoso ,Fr=uagN1\n", + "#sum of all forces perpendicaular to the plane is 0\n", + "#T=uagWacoso-Wasino\n", + "#Considering equilibrium of block A,\n", + "#sum of all forces along the plane is 0\n", + "#N2=Wbcoso ,Fr=uagN2\n", + "#sum of all forces perpendicaular to the plane is 0\n", + "#T=Wbsino-ubgwbsino\n", + "o=math.atan((uag*Wa+ubg*Wb)/(Wa+Wb))*180.0/3.14\n", + "print \"Angle of Inclination\",o;\n", + "\n", + "\n", + "\n", + "\n" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "# Example 5.5" + ] + }, + { + "cell_type": "code", + "execution_count": 5, + "metadata": { + "collapsed": false + }, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "853.305553493 N\n" + ] + } + ], + "source": [ + "import math\n", + "Wl=750.0 #weight of lower block\n", + "Wu=500.0 #weight of upper block\n", + "o1=60.0*3.14/180.0 #angle of inclined plane\n", + "o2=30.0 *3.14/180.0 # anlge at which pull is applied\n", + "u=0.2 #coefficient of friction\n", + "#for 750 N block\n", + "#Σ Forces normal to the plane = 0 \n", + "N1=Wl*math.cos(o1)\n", + "F1=u*N1\n", + "#Σ Forces parallel to the plane = 0\n", + "T=F1+Wl*math.sin(o1)\n", + "#Σ Forces horizontal to the plane = 0\n", + "P=(T+u*Wu)/(math.cos(o2)+u*math.sin(o2))\n", + "print P,\"N\"\n", + "\n", + "\n" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "# Example 5.6" + ] + }, + { + "cell_type": "code", + "execution_count": 6, + "metadata": { + "collapsed": false + }, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "Least Weight is 266.34090474 N\n", + "Greatest Weight is 969.473014916 N\n" + ] + } + ], + "source": [ + "import math\n", + "o1=60.0*3.14/180.0 #angle of inclination of plane AC\n", + "o2=30.0*3.14/180.0 #angle of inclination of plane BC\n", + "Wbc=1000.0 #weight of block on plane BC\n", + "ubc=0.28 #coefficient of friction between the load and the plane BC \n", + "uac=0.20 #coefficient of friction between the load and the plane AC\n", + "#for least weight \n", + "N1=Wbc*math.cos(o2) #Normal Reaction\n", + "F1=ubc*N1 #frictional Force\n", + "T=Wbc*math.sin(o2)-F1 #Tension\n", + "#for block on plane AC\n", + "#N2=Wcoso1\n", + "#F2=uac*N2\n", + "#T=F2+W sino2\n", + "W=T/(uac*math.cos(o1)+math.sin(o1))\n", + "print \"Least Weight is\",W,\"N\"\n", + "#for greatest weight \n", + "N1=Wbc*math.cos(o2) #Normal Reaction\n", + "F1=ubc*N1 #frictional Force\n", + "T=Wbc*math.sin(o2)+F1 #Tension\n", + "#for block on plane AC\n", + "#N2=Wcoso1\n", + "#F2=uac*N2\n", + "#T=F2+W sino2\n", + "W=T/(-1*uac*math.cos(o1)+math.sin(o1))\n", + "print \"Greatest Weight is\",W,\"N\"\n" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "# Example 5.7" + ] + }, + { + "cell_type": "code", + "execution_count": 7, + "metadata": { + "collapsed": false + }, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "Weight 10498.172578 N\n" + ] + } + ], + "source": [ + "import math\n", + "u=0.4 #The coefficient of friction on the horizontal plane\n", + "oi=30 #angle of inclined plane\n", + "o=20.0 #The limiting angle of friction for block B on the inclined plane\n", + "wb=5000.0 #weight of block b\n", + "ub=math.tan(o*3.14/180.0) #coefficcient of friction on plane\n", + "#for block B\n", + "#N1 N2 N3 are normal reaction\n", + "#F1 F2 are frictional forces\n", + "#F1=ub*N1 \n", + "#N1 sinoi + F1 cos oi=wb\n", + "N1=wb/(math.sin(oi*3.14/180.0)+ub*math.cos(oi*3.14/180.0))\n", + "F1=ub*N1\n", + "C=N1*math.cos(oi*3.14/180.0)-F1*math.sin(oi*3.14/180.0)\n", + "\n", + "#force balance on A in horizontal balance\n", + "F2=C\n", + "N2=F2/u\n", + "#force balance on A in vertical balance\n", + "W=N2\n", + "print \"Weight \",W,\"N\"" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "# Example 5.8" + ] + }, + { + "cell_type": "code", + "execution_count": 8, + "metadata": { + "collapsed": false + }, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "Force = 23812.7516422 N\n" + ] + } + ], + "source": [ + "import math\n", + "w=20000.0 #weight of upper block\n", + "o=15.0 #The angle of friction for all surfaces of contact\n", + "u=math.tan(o) #coefficient of friction\n", + "#R1 R2 are forces\n", + "Or1=15.0 #angle force R1 makes with x axis\n", + "Or2=35.0 #angle force R2 makes with Y axis\n", + "R2=w*math.sin((90-Or1)*3.14/180.0)/math.sin((90+Or1+Or2)*3.14/180.0)\n", + "#applyig lamis theorem on block B\n", + "Or1=15.0 #angle force R3 makes with Y axis\n", + "Or2=35.0 #angle force R2 makes with Y axis\n", + "P=R2*math.sin((180-Or1-Or2)*3.14/180.0)/math.sin((90+Or1)*3.14/180.0)\n", + "print \"Force =\",P,\"N\"" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "# Example 5.9" + ] + }, + { + "cell_type": "code", + "execution_count": 9, + "metadata": { + "collapsed": false + }, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "P= 66.26 KN\n" + ] + } + ], + "source": [ + "import math \n", + "w=160.0 #weight of block,KN\n", + "u=0.25 #coefficient of friction\n", + "phi=math.atan(u)\n", + "\n", + "#The free body diagrams of wedges A, B and block C .The problem being symmetric, the reactions R1 and R2 on wedges A and B are equal. The system of forces on block C andon wedge A are shown in the form convenient for applying Lami’s theorem\n", + "R1=w*math.sin(math.pi-(16*math.pi/180)-phi)/math.sin(2*(phi+math.pi*16/180))\n", + "#consider the equillibrium of the wedge A ,Ny lamis's theorem,we get\n", + "P=R1*math.sin(math.pi-phi-phi-(16*math.pi/180))/math.sin((math.pi/2)+phi)\n", + "print\"P=\",round(P,2),\"KN\"" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "# Example 5.10" + ] + }, + { + "cell_type": "code", + "execution_count": 10, + "metadata": { + "collapsed": false + }, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "Force required is 62.0836173323 N\n" + ] + } + ], + "source": [ + "import math\n", + "l=4.0 #length of ladder\n", + "u1=0.2 #coefficient of friction between the wall and the ladder\n", + "w=200.0 #weight of ladder\n", + "u2=0.3 #coefficient of friction between floor and the ladder\n", + "wm=600.0 #weight of man\n", + "lm=3.0 #distance of man\n", + "o=3.14*60.0/180.0 #angle made by ladder with floor\n", + "#sum of all moment about A =0\n", + "Nb=(w*l/2*math.cos(o)+wm*lm*math.cos(o))/(l*(math.sin(o)+u1*math.cos(o))) # normal reaction from wall\n", + "Fb=u1*Nb #friction from wall\n", + "#force balance in vertical direction\n", + "Na=(w+wm-Fb) # normal reaction from ground\n", + "Fa=u2*Na #friction from ground\n", + "P=Nb-Fa\n", + "print \"Force required is \",P,\"N\"" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "# Example 5.11" + ] + }, + { + "cell_type": "code", + "execution_count": 11, + "metadata": { + "collapsed": false + }, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "Angle of inclination is 71.6013500101 degrees\n" + ] + } + ], + "source": [ + "import math\n", + "l=6.0 #length of ladder\n", + "u1=0.4 #coefficient of friction between the wall and the ladder\n", + "w=200.0 #weight of ladder\n", + "u2=0.25 #coefficient of friction between floor and the ladder\n", + "wl=900.0 #weight of load\n", + "ll=5.0 #distance of load\n", + "#force balancing\n", + "#Na Nb normal reaction at A and B\n", + "#Fa Fb friction at A and B\n", + "#Fa=u2*Na \n", + "#Fb=u1*Nb\n", + "#Na+Fb=w+wl\n", + "#Fa=Nb\n", + "Nb=(wl+w)*u2/(1+u2*u1)\n", + "Na=Nb/u2\n", + "Fa=u2*Na\n", + "Fb=u1*Nb\n", + "#sum of all moments about a is =0\n", + "temp=((w*l*0.5)+(wl*ll)-(Fb*l))/(Nb*l)\n", + "o=math.atan(temp)*180/3.14\n", + "print \"Angle of inclination is \",o,\"degrees\"" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "# Example 5.12" + ] + }, + { + "cell_type": "code", + "execution_count": 12, + "metadata": { + "collapsed": false + }, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "length will 0.5 times\n" + ] + } + ], + "source": [ + "import math\n", + "o=45.0*3.14/180.0 #angle of inclination \n", + "u=0.5 #coefficient of friction\n", + "r=1.5 #ratio of mans weight to ladders weight\n", + "o1=45.0*math.pi/180.0 #angle of inclination\n", + "#from law of friction\n", + "#Fa = μNa\n", + "#Fb = μNb\n", + "#Fa – Nb = 0 \n", + "#Na + Fb = W + r W\n", + "#ΣMA = 0\n", + "o=(((u*u+u)*(1+r)/((1+u)))-1.0/2.0)/r\n", + "print \"length will\",o,\"times\"" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "# Example 5.13" + ] + }, + { + "cell_type": "code", + "execution_count": 13, + "metadata": { + "collapsed": false + }, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "Maximum weight is 6277.60420331\n", + "Minimum weight is 57.3467183245\n" + ] + } + ], + "source": [ + "import math\n", + "n=1.25 #number of turns\n", + "o=2*3.14*n #angle of contact\n", + "u=0.3 #coefficient of friction\n", + "t=600.0 #force at the other end of the rope\n", + "#if the impending motion of the weight be downward.\n", + "W=T2=t*2.71**(u*o)\n", + "print \"Maximum weight is \",W\n", + "#if the impending motion of weight be upwards\n", + "W=T1=t*2.71**(-1*u*o)\n", + "print \"Minimum weight is \",W" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "# Example 5.14" + ] + }, + { + "cell_type": "code", + "execution_count": 14, + "metadata": { + "collapsed": false + }, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "Weight is 136.9599857 N\n" + ] + } + ], + "source": [ + "import math\n", + "ur=0.20 #The coefficient of friction between the rope and the fixed drum\n", + "uo=0.30 #The coefficient of friction between other surfaces\n", + "cosa=4.0/5.0 #cos of angle of inclination\n", + "sina=3.0/5.0 #sin of angle of inclination\n", + "Ww=1000.0 #weight\n", + "o=3.14 #angle of contact of rope with pulley\n", + "#for unknown weight\n", + "#force balance perpendicular to the plane\n", + "#N1 = W cos α\n", + "#fr=uoN1\n", + "#force balance along the plane\n", + "#T1 = F1 + W sin α\n", + "#for 1000 N body\n", + "#force balance perpendicular to the plane\n", + "#N2=N1+Wwcosa\n", + "#fr2=uoN2\n", + "#force balance along the plane\n", + "#T2= Wwsina -F1 -F2\n", + "#T2=T1*e^(ur*o)\n", + "W=(Ww*sina-uo*Ww*cosa)/(((uo*cosa+sina)*(2.71**(uo*o)))+(uo*cosa+uo*cosa))\n", + "print \"Weight is \",W,\"N\"\n" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "# Example 5.15" + ] + }, + { + "cell_type": "code", + "execution_count": 15, + "metadata": { + "collapsed": false + }, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "force P applied at the end of the brake lever 274.480678202\n" + ] + } + ], + "source": [ + "import math\n", + "u=0.3 #coefficient of friction\n", + "r=250 #radius of brake drum\n", + "l=300 #length of lever arm\n", + "M=300000.0 #torque\n", + "o=r*3.14/180.0\n", + "l2=50.0\n", + "#using \n", + "#T2 = T1e^(μθ) T1 and T2 are tension\n", + "#(T2-T1)r=M\n", + "T1=M/(r*(2.71**(u*o)-1))\n", + "T2=(2.71**(u*o))*T1\n", + "#Consider the lever arm. Taking moment about the hinge\n", + "p=T2*l2/l #force P applied at the end of the brake lever\n", + "print \"force P applied at the end of the brake lever\",p\n" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "# Example 5.16" + ] + }, + { + "cell_type": "code", + "execution_count": 16, + "metadata": { + "collapsed": false + }, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "Length of belt is 6972.02507534 mm\n", + "Power Transmitted 3252832.96438 Watt\n" + ] + } + ], + "source": [ + "import math\n", + "d1=500.0 #diameter of a shaft\n", + "d2=100.0 #diameter of a shaft\n", + "D=3000.0 #distance between shafts in mm\n", + "T=1000.0 #Maximum permissible tension in the belt\n", + "U=0.25 #coefficient of friction between the belt and the pulley\n", + "R=220.0 #revlution per minute of larger shaft\n", + "O1=O2=3.14+2*math.asin((d1+d2)/(2*D))\n", + "#Length of belt = Arc length DC + Arc length FE + 2BG\n", + "L=(d1/2+d2/2)*O1+2*D*math.cos(math.asin((d1+d2)/(2*D)))\n", + "print \"Length of belt is \",L,\"mm\"\n", + "T1=T/(2.71**(U*O1))\n", + "Velocity_of_the_belt =d1/2*(R*2*3.14/60.0)\n", + "Power_transmitted=(T-T1)*Velocity_of_the_belt\n", + "print \"Power Transmitted\",Power_transmitted,\"Watt\"\n" + ] + }, + { + "cell_type": "markdown", + "metadata": { + "collapsed": true + }, + "source": [ + "# Example 5.17" + ] + }, + { + "cell_type": "code", + "execution_count": 17, + "metadata": { + "collapsed": false + }, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "Length of belt is 6955.3382782 mm\n", + "Power Transmitted 3035637.41075 Watt\n" + ] + } + ], + "source": [ + "import math\n", + "d1=500.0 #diameter of a shaft\n", + "d2=100.0 #diameter of a shaft\n", + "D=3000.0 #distance between shafts in mm\n", + "T=1000.0 #Maximum permissible tension in the belt\n", + "U=0.25 #coefficient of friction between the belt and the pulley\n", + "R=220.0 #revlution per minute of larger shaft\n", + "O1=3.14+2*math.asin((d1-d2)/(2*D))\n", + "O2=3.14-2*math.asin((d1-d2)/(2*D))\n", + "#Length of belt = Arc length DC + Arc length FE + 2BG\n", + "L=(d1/2*O1+d2/2*O2)+2*D*math.cos(math.asin((d1-d2)/(2*D)))\n", + "print \"Length of belt is \",L,\"mm\"\n", + "T1=T/(2.71**(U*O2))\n", + "Velocity_of_the_belt =d1/2*(R*2*3.14/60.0)\n", + "Power_transmitted=(T-T1)*Velocity_of_the_belt\n", + "print \"Power Transmitted\",Power_transmitted,\"Watt\"\n", + "\n", + "\n", + "\n" + ] + } + ], + "metadata": { + "kernelspec": { + "display_name": "Python [Root]", + "language": "python", + "name": "Python [Root]" + }, + "language_info": { + "codemirror_mode": { + "name": "ipython", + "version": 2 + }, + "file_extension": ".py", + "mimetype": "text/x-python", + "name": "python", + "nbconvert_exporter": "python", + "pygments_lexer": "ipython2", + "version": "2.7.12" + } + }, + "nbformat": 4, + "nbformat_minor": 0 +} diff --git a/MECHANICS_OF_SOLIDS_by_S.S._Bhavikatti/Chapter6.ipynb b/MECHANICS_OF_SOLIDS_by_S.S._Bhavikatti/Chapter6.ipynb new file mode 100644 index 00000000..d5de1827 --- /dev/null +++ b/MECHANICS_OF_SOLIDS_by_S.S._Bhavikatti/Chapter6.ipynb @@ -0,0 +1,1595 @@ +{ + "cells": [ + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "# Chapter6-SIMPLE MACHINES" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "# Example 6.1" + ] + }, + { + "cell_type": "code", + "execution_count": 1, + "metadata": { + "collapsed": false + }, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "Mechanical advantage-- 20.0\n", + "Velocity Ratio 25.0\n", + "Efficiency 0.8\n", + "Ideal Load 12500.0\n", + "Ideal Effort 400.0\n", + "Effort lost in friction 100.0\n", + "frictional resistance 2500.0\n" + ] + } + ], + "source": [ + "import math\n", + "W = 10000.0 #Load\n", + "P = 500.0 #Effort\n", + "D = 20.0 #Distance moved by the effort \n", + "d = 0.8 #Distance moved by the load \n", + "MA=W/P #Mechanical advantage\n", + "VR=D/d #Velocity Ratio\n", + "Efficiency=MA/VR\n", + "Pi =W/VR #Ideal effort\n", + "Wi = P*VR #ideal load\n", + "efl=P-Pi #Effort lost in friction\n", + "Fr=Wi-W #frictional resistance\n", + "print \"Mechanical advantage--\",MA\n", + "print \"Velocity Ratio\",VR\n", + "print \"Efficiency\",Efficiency\n", + "print \"Ideal Load\",Wi\n", + "print \"Ideal Effort\",Pi\n", + "print \"Effort lost in friction\",efl\n", + "print \"frictional resistance\",Fr\n", + "\n", + "\n" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "# Example 6.2" + ] + }, + { + "cell_type": "code", + "execution_count": 2, + "metadata": { + "collapsed": false + }, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "Law of machine is P= 0.05 W + 30.0\n", + "Load is 3400.0 N\n", + "Mechanical advantage-- 17.0\n", + "Ideal effort is 113.333333333 N\n", + "Effort lost in friction 86.6666666667\n", + "Efficiency 56.6666666667\n" + ] + } + ], + "source": [ + "import math\n", + "W1 = 2400.0 #Load 1\n", + "P1= 150.0 #Effort1\n", + "\n", + "W2 = 3000.0 #Load 2\n", + "P2= 180.0 #Effort2\n", + "P3= 200.0 #Effort3\n", + "#law of machine is given by P=mW+C\n", + "m=(P2-P1)/(W2-W1)\n", + "C=P2-m*W2\n", + "print \"Law of machine is P=\",m,\"W\",\"+\",C\n", + "W3=(P3-C)/m #Load 2\n", + "print \"Load is \",W3,\"N\"\n", + "MA=W3/P3 #Mechanical advantage\n", + "print \"Mechanical advantage--\",MA\n", + "VR=30.0 #Velocity Ratio\n", + "Efficiency=MA/VR*100\n", + "Pi =W3/VR #Ideal effort\n", + "print \"Ideal effort is\",Pi,\"N\"\n", + "\n", + "efl=P3-Pi #Effort lost in friction\n", + "\n", + "print \"Effort lost in friction\",efl\n", + "print \"Efficiency\",Efficiency" + ] + }, + { + "cell_type": "code", + "execution_count": 3, + "metadata": { + "collapsed": true + }, + "outputs": [], + "source": [ + "#Example 6.3" + ] + }, + { + "cell_type": "code", + "execution_count": 4, + "metadata": { + "collapsed": false + }, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "Mechanical advantage-- 51.3333333333\n", + "Velocity Ratio 85.5555555556\n", + "Efficiency 61.7142857143\n", + "Maximum Mechanical advantage-- 55.0\n", + "Maximum Efficiency 64.2857142857\n" + ] + } + ], + "source": [ + "import math\n", + "W1 = 7700.0 #Load 1\n", + "P1= 150.0 #Effort1\n", + "MA=W1/P1 #Mechanical advantage\n", + "Efficiency=0.6\n", + "VR=MA/Efficiency #Velocity Ratio\n", + "print \"Mechanical advantage--\",MA\n", + "print \"Velocity Ratio\",VR\n", + "W2 = 13200.0 #Load 2\n", + "P2= 250.0 #Effort2\n", + "MA=W2/P2\n", + "Efficiency=MA/VR*100\n", + "print \"Efficiency\",Efficiency\n", + "#law of machine is given by P=mW+C\n", + "m=(P2-P1)/(W2-W1)\n", + "\n", + "\n", + "MMA=1/m #Maximum Mechanical advantage\n", + "print \"Maximum Mechanical advantage--\",MMA\n", + "\n", + "MaxEfficiency=MMA/VR*100\n", + "\n", + "print \"Maximum Efficiency\",MaxEfficiency" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "# Example 6.4" + ] + }, + { + "cell_type": "code", + "execution_count": 5, + "metadata": { + "collapsed": false + }, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "Law of machine is P= 0.06 W + 10.5\n" + ] + }, + { + "data": { + "application/javascript": [ + "/* Put everything inside the global mpl namespace */\n", + "window.mpl = {};\n", + "\n", + "mpl.get_websocket_type = function() {\n", + " if (typeof(WebSocket) !== 'undefined') {\n", + " return WebSocket;\n", + " } else if (typeof(MozWebSocket) !== 'undefined') {\n", + " return MozWebSocket;\n", + " } else {\n", + " alert('Your browser does not have WebSocket support.' +\n", + " 'Please try Chrome, Safari or Firefox ≥ 6. ' +\n", + " 'Firefox 4 and 5 are also supported but you ' +\n", + " 'have to enable WebSockets in about:config.');\n", + " };\n", + "}\n", + "\n", + "mpl.figure = function(figure_id, websocket, ondownload, parent_element) {\n", + " this.id = figure_id;\n", + "\n", + " this.ws = websocket;\n", + "\n", + " this.supports_binary = (this.ws.binaryType != undefined);\n", + "\n", + " if (!this.supports_binary) {\n", + " var warnings = document.getElementById(\"mpl-warnings\");\n", + " if (warnings) {\n", + " warnings.style.display = 'block';\n", + " warnings.textContent = (\n", + " \"This browser does not support binary websocket messages. \" +\n", + " \"Performance may be slow.\");\n", + " }\n", + " }\n", + "\n", + " this.imageObj = new Image();\n", + "\n", + " this.context = undefined;\n", + " this.message = undefined;\n", + " this.canvas = undefined;\n", + " this.rubberband_canvas = undefined;\n", + " this.rubberband_context = undefined;\n", + " this.format_dropdown = undefined;\n", + "\n", + " this.image_mode = 'full';\n", + "\n", + " this.root = $('<div/>');\n", + " this._root_extra_style(this.root)\n", + " this.root.attr('style', 'display: inline-block');\n", + "\n", + " $(parent_element).append(this.root);\n", + "\n", + " this._init_header(this);\n", + " this._init_canvas(this);\n", + " this._init_toolbar(this);\n", + "\n", + " var fig = this;\n", + "\n", + " this.waiting = false;\n", + "\n", + " this.ws.onopen = function () {\n", + " fig.send_message(\"supports_binary\", {value: fig.supports_binary});\n", + " fig.send_message(\"send_image_mode\", {});\n", + " fig.send_message(\"refresh\", {});\n", + " }\n", + "\n", + " this.imageObj.onload = function() {\n", + " if (fig.image_mode == 'full') {\n", + " // Full images could contain transparency (where diff images\n", + " // almost always do), so we need to clear the canvas so that\n", + " // there is no ghosting.\n", + " fig.context.clearRect(0, 0, fig.canvas.width, fig.canvas.height);\n", + " }\n", + " fig.context.drawImage(fig.imageObj, 0, 0);\n", + " };\n", + "\n", + " this.imageObj.onunload = function() {\n", + " this.ws.close();\n", + " }\n", + "\n", + " this.ws.onmessage = this._make_on_message_function(this);\n", + "\n", + " this.ondownload = ondownload;\n", + "}\n", + "\n", + "mpl.figure.prototype._init_header = function() {\n", + " var titlebar = $(\n", + " '<div class=\"ui-dialog-titlebar ui-widget-header ui-corner-all ' +\n", + " 'ui-helper-clearfix\"/>');\n", + " var titletext = $(\n", + " '<div class=\"ui-dialog-title\" style=\"width: 100%; ' +\n", + " 'text-align: center; padding: 3px;\"/>');\n", + " titlebar.append(titletext)\n", + " this.root.append(titlebar);\n", + " this.header = titletext[0];\n", + "}\n", + "\n", + "\n", + "\n", + "mpl.figure.prototype._canvas_extra_style = function(canvas_div) {\n", + "\n", + "}\n", + "\n", + "\n", + "mpl.figure.prototype._root_extra_style = function(canvas_div) {\n", + "\n", + "}\n", + "\n", + "mpl.figure.prototype._init_canvas = function() {\n", + " var fig = this;\n", + "\n", + " var canvas_div = $('<div/>');\n", + "\n", + " canvas_div.attr('style', 'position: relative; clear: both; outline: 0');\n", + "\n", + " function canvas_keyboard_event(event) {\n", + " return fig.key_event(event, event['data']);\n", + " }\n", + "\n", + " canvas_div.keydown('key_press', canvas_keyboard_event);\n", + " canvas_div.keyup('key_release', canvas_keyboard_event);\n", + " this.canvas_div = canvas_div\n", + " this._canvas_extra_style(canvas_div)\n", + " this.root.append(canvas_div);\n", + "\n", + " var canvas = $('<canvas/>');\n", + " canvas.addClass('mpl-canvas');\n", + " canvas.attr('style', \"left: 0; top: 0; z-index: 0; outline: 0\")\n", + "\n", + " this.canvas = canvas[0];\n", + " this.context = canvas[0].getContext(\"2d\");\n", + "\n", + " var rubberband = $('<canvas/>');\n", + " rubberband.attr('style', \"position: absolute; left: 0; top: 0; z-index: 1;\")\n", + "\n", + " var pass_mouse_events = true;\n", + "\n", + " canvas_div.resizable({\n", + " start: function(event, ui) {\n", + " pass_mouse_events = false;\n", + " },\n", + " resize: function(event, ui) {\n", + " fig.request_resize(ui.size.width, ui.size.height);\n", + " },\n", + " stop: function(event, ui) {\n", + " pass_mouse_events = true;\n", + " fig.request_resize(ui.size.width, ui.size.height);\n", + " },\n", + " });\n", + "\n", + " function mouse_event_fn(event) {\n", + " if (pass_mouse_events)\n", + " return fig.mouse_event(event, event['data']);\n", + " }\n", + "\n", + " rubberband.mousedown('button_press', mouse_event_fn);\n", + " rubberband.mouseup('button_release', mouse_event_fn);\n", + " // Throttle sequential mouse events to 1 every 20ms.\n", + " rubberband.mousemove('motion_notify', mouse_event_fn);\n", + "\n", + " rubberband.mouseenter('figure_enter', mouse_event_fn);\n", + " rubberband.mouseleave('figure_leave', mouse_event_fn);\n", + "\n", + " canvas_div.on(\"wheel\", function (event) {\n", + " event = event.originalEvent;\n", + " event['data'] = 'scroll'\n", + " if (event.deltaY < 0) {\n", + " event.step = 1;\n", + " } else {\n", + " event.step = -1;\n", + " }\n", + " mouse_event_fn(event);\n", + " });\n", + "\n", + " canvas_div.append(canvas);\n", + " canvas_div.append(rubberband);\n", + "\n", + " this.rubberband = rubberband;\n", + " this.rubberband_canvas = rubberband[0];\n", + " this.rubberband_context = rubberband[0].getContext(\"2d\");\n", + " this.rubberband_context.strokeStyle = \"#000000\";\n", + "\n", + " this._resize_canvas = function(width, height) {\n", + " // Keep the size of the canvas, canvas container, and rubber band\n", + " // canvas in synch.\n", + " canvas_div.css('width', width)\n", + " canvas_div.css('height', height)\n", + "\n", + " canvas.attr('width', width);\n", + " canvas.attr('height', height);\n", + "\n", + " rubberband.attr('width', width);\n", + " rubberband.attr('height', height);\n", + " }\n", + "\n", + " // Set the figure to an initial 600x600px, this will subsequently be updated\n", + " // upon first draw.\n", + " this._resize_canvas(600, 600);\n", + "\n", + " // Disable right mouse context menu.\n", + " $(this.rubberband_canvas).bind(\"contextmenu\",function(e){\n", + " return false;\n", + " });\n", + "\n", + " function set_focus () {\n", + " canvas.focus();\n", + " canvas_div.focus();\n", + " }\n", + "\n", + " window.setTimeout(set_focus, 100);\n", + "}\n", + "\n", + "mpl.figure.prototype._init_toolbar = function() {\n", + " var fig = this;\n", + "\n", + " var nav_element = $('<div/>')\n", + " nav_element.attr('style', 'width: 100%');\n", + " this.root.append(nav_element);\n", + "\n", + " // Define a callback function for later on.\n", + " function toolbar_event(event) {\n", + " return fig.toolbar_button_onclick(event['data']);\n", + " }\n", + " function toolbar_mouse_event(event) {\n", + " return fig.toolbar_button_onmouseover(event['data']);\n", + " }\n", + "\n", + " for(var toolbar_ind in mpl.toolbar_items) {\n", + " var name = mpl.toolbar_items[toolbar_ind][0];\n", + " var tooltip = mpl.toolbar_items[toolbar_ind][1];\n", + " var image = mpl.toolbar_items[toolbar_ind][2];\n", + " var method_name = mpl.toolbar_items[toolbar_ind][3];\n", + "\n", + " if (!name) {\n", + " // put a spacer in here.\n", + " continue;\n", + " }\n", + " var button = $('<button/>');\n", + " button.addClass('ui-button ui-widget ui-state-default ui-corner-all ' +\n", + " 'ui-button-icon-only');\n", + " button.attr('role', 'button');\n", + " button.attr('aria-disabled', 'false');\n", + " button.click(method_name, toolbar_event);\n", + " button.mouseover(tooltip, toolbar_mouse_event);\n", + "\n", + " var icon_img = $('<span/>');\n", + " icon_img.addClass('ui-button-icon-primary ui-icon');\n", + " icon_img.addClass(image);\n", + " icon_img.addClass('ui-corner-all');\n", + "\n", + " var tooltip_span = $('<span/>');\n", + " tooltip_span.addClass('ui-button-text');\n", + " tooltip_span.html(tooltip);\n", + "\n", + " button.append(icon_img);\n", + " button.append(tooltip_span);\n", + "\n", + " nav_element.append(button);\n", + " }\n", + "\n", + " var fmt_picker_span = $('<span/>');\n", + "\n", + " var fmt_picker = $('<select/>');\n", + " fmt_picker.addClass('mpl-toolbar-option ui-widget ui-widget-content');\n", + " fmt_picker_span.append(fmt_picker);\n", + " nav_element.append(fmt_picker_span);\n", + " this.format_dropdown = fmt_picker[0];\n", + "\n", + " for (var ind in mpl.extensions) {\n", + " var fmt = mpl.extensions[ind];\n", + " var option = $(\n", + " '<option/>', {selected: fmt === mpl.default_extension}).html(fmt);\n", + " fmt_picker.append(option)\n", + " }\n", + "\n", + " // Add hover states to the ui-buttons\n", + " $( \".ui-button\" ).hover(\n", + " function() { $(this).addClass(\"ui-state-hover\");},\n", + " function() { $(this).removeClass(\"ui-state-hover\");}\n", + " );\n", + "\n", + " var status_bar = $('<span class=\"mpl-message\"/>');\n", + " nav_element.append(status_bar);\n", + " this.message = status_bar[0];\n", + "}\n", + "\n", + "mpl.figure.prototype.request_resize = function(x_pixels, y_pixels) {\n", + " // Request matplotlib to resize the figure. Matplotlib will then trigger a resize in the client,\n", + " // which will in turn request a refresh of the image.\n", + " this.send_message('resize', {'width': x_pixels, 'height': y_pixels});\n", + "}\n", + "\n", + "mpl.figure.prototype.send_message = function(type, properties) {\n", + " properties['type'] = type;\n", + " properties['figure_id'] = this.id;\n", + " this.ws.send(JSON.stringify(properties));\n", + "}\n", + "\n", + "mpl.figure.prototype.send_draw_message = function() {\n", + " if (!this.waiting) {\n", + " this.waiting = true;\n", + " this.ws.send(JSON.stringify({type: \"draw\", figure_id: this.id}));\n", + " }\n", + "}\n", + "\n", + "\n", + "mpl.figure.prototype.handle_save = function(fig, msg) {\n", + " var format_dropdown = fig.format_dropdown;\n", + " var format = format_dropdown.options[format_dropdown.selectedIndex].value;\n", + " fig.ondownload(fig, format);\n", + "}\n", + "\n", + "\n", + "mpl.figure.prototype.handle_resize = function(fig, msg) {\n", + " var size = msg['size'];\n", + " if (size[0] != fig.canvas.width || size[1] != fig.canvas.height) {\n", + " fig._resize_canvas(size[0], size[1]);\n", + " fig.send_message(\"refresh\", {});\n", + " };\n", + "}\n", + "\n", + "mpl.figure.prototype.handle_rubberband = function(fig, msg) {\n", + " var x0 = msg['x0'];\n", + " var y0 = fig.canvas.height - msg['y0'];\n", + " var x1 = msg['x1'];\n", + " var y1 = fig.canvas.height - msg['y1'];\n", + " x0 = Math.floor(x0) + 0.5;\n", + " y0 = Math.floor(y0) + 0.5;\n", + " x1 = Math.floor(x1) + 0.5;\n", + " y1 = Math.floor(y1) + 0.5;\n", + " var min_x = Math.min(x0, x1);\n", + " var min_y = Math.min(y0, y1);\n", + " var width = Math.abs(x1 - x0);\n", + " var height = Math.abs(y1 - y0);\n", + "\n", + " fig.rubberband_context.clearRect(\n", + " 0, 0, fig.canvas.width, fig.canvas.height);\n", + "\n", + " fig.rubberband_context.strokeRect(min_x, min_y, width, height);\n", + "}\n", + "\n", + "mpl.figure.prototype.handle_figure_label = function(fig, msg) {\n", + " // Updates the figure title.\n", + " fig.header.textContent = msg['label'];\n", + "}\n", + "\n", + "mpl.figure.prototype.handle_cursor = function(fig, msg) {\n", + " var cursor = msg['cursor'];\n", + " switch(cursor)\n", + " {\n", + " case 0:\n", + " cursor = 'pointer';\n", + " break;\n", + " case 1:\n", + " cursor = 'default';\n", + " break;\n", + " case 2:\n", + " cursor = 'crosshair';\n", + " break;\n", + " case 3:\n", + " cursor = 'move';\n", + " break;\n", + " }\n", + " fig.rubberband_canvas.style.cursor = cursor;\n", + "}\n", + "\n", + "mpl.figure.prototype.handle_message = function(fig, msg) {\n", + " fig.message.textContent = msg['message'];\n", + "}\n", + "\n", + "mpl.figure.prototype.handle_draw = function(fig, msg) {\n", + " // Request the server to send over a new figure.\n", + " fig.send_draw_message();\n", + "}\n", + "\n", + "mpl.figure.prototype.handle_image_mode = function(fig, msg) {\n", + " fig.image_mode = msg['mode'];\n", + "}\n", + "\n", + "mpl.figure.prototype.updated_canvas_event = function() {\n", + " // Called whenever the canvas gets updated.\n", + " this.send_message(\"ack\", {});\n", + "}\n", + "\n", + "// A function to construct a web socket function for onmessage handling.\n", + "// Called in the figure constructor.\n", + "mpl.figure.prototype._make_on_message_function = function(fig) {\n", + " return function socket_on_message(evt) {\n", + " if (evt.data instanceof Blob) {\n", + " /* FIXME: We get \"Resource interpreted as Image but\n", + " * transferred with MIME type text/plain:\" errors on\n", + " * Chrome. But how to set the MIME type? It doesn't seem\n", + " * to be part of the websocket stream */\n", + " evt.data.type = \"image/png\";\n", + "\n", + " /* Free the memory for the previous frames */\n", + " if (fig.imageObj.src) {\n", + " (window.URL || window.webkitURL).revokeObjectURL(\n", + " fig.imageObj.src);\n", + " }\n", + "\n", + " fig.imageObj.src = (window.URL || window.webkitURL).createObjectURL(\n", + " evt.data);\n", + " fig.updated_canvas_event();\n", + " fig.waiting = false;\n", + " return;\n", + " }\n", + " else if (typeof evt.data === 'string' && evt.data.slice(0, 21) == \"data:image/png;base64\") {\n", + " fig.imageObj.src = evt.data;\n", + " fig.updated_canvas_event();\n", + " fig.waiting = false;\n", + " return;\n", + " }\n", + "\n", + " var msg = JSON.parse(evt.data);\n", + " var msg_type = msg['type'];\n", + "\n", + " // Call the \"handle_{type}\" callback, which takes\n", + " // the figure and JSON message as its only arguments.\n", + " try {\n", + " var callback = fig[\"handle_\" + msg_type];\n", + " } catch (e) {\n", + " console.log(\"No handler for the '\" + msg_type + \"' message type: \", msg);\n", + " return;\n", + " }\n", + "\n", + " if (callback) {\n", + " try {\n", + " // console.log(\"Handling '\" + msg_type + \"' message: \", msg);\n", + " callback(fig, msg);\n", + " } catch (e) {\n", + " console.log(\"Exception inside the 'handler_\" + msg_type + \"' callback:\", e, e.stack, msg);\n", + " }\n", + " }\n", + " };\n", + "}\n", + "\n", + "// from http://stackoverflow.com/questions/1114465/getting-mouse-location-in-canvas\n", + "mpl.findpos = function(e) {\n", + " //this section is from http://www.quirksmode.org/js/events_properties.html\n", + " var targ;\n", + " if (!e)\n", + " e = window.event;\n", + " if (e.target)\n", + " targ = e.target;\n", + " else if (e.srcElement)\n", + " targ = e.srcElement;\n", + " if (targ.nodeType == 3) // defeat Safari bug\n", + " targ = targ.parentNode;\n", + "\n", + " // jQuery normalizes the pageX and pageY\n", + " // pageX,Y are the mouse positions relative to the document\n", + " // offset() returns the position of the element relative to the document\n", + " var x = e.pageX - $(targ).offset().left;\n", + " var y = e.pageY - $(targ).offset().top;\n", + "\n", + " return {\"x\": x, \"y\": y};\n", + "};\n", + "\n", + "/*\n", + " * return a copy of an object with only non-object keys\n", + " * we need this to avoid circular references\n", + " * http://stackoverflow.com/a/24161582/3208463\n", + " */\n", + "function simpleKeys (original) {\n", + " return Object.keys(original).reduce(function (obj, key) {\n", + " if (typeof original[key] !== 'object')\n", + " obj[key] = original[key]\n", + " return obj;\n", + " }, {});\n", + "}\n", + "\n", + "mpl.figure.prototype.mouse_event = function(event, name) {\n", + " var canvas_pos = mpl.findpos(event)\n", + "\n", + " if (name === 'button_press')\n", + " {\n", + " this.canvas.focus();\n", + " this.canvas_div.focus();\n", + " }\n", + "\n", + " var x = canvas_pos.x;\n", + " var y = canvas_pos.y;\n", + "\n", + " this.send_message(name, {x: x, y: y, button: event.button,\n", + " step: event.step,\n", + " guiEvent: simpleKeys(event)});\n", + "\n", + " /* This prevents the web browser from automatically changing to\n", + " * the text insertion cursor when the button is pressed. We want\n", + " * to control all of the cursor setting manually through the\n", + " * 'cursor' event from matplotlib */\n", + " event.preventDefault();\n", + " return false;\n", + "}\n", + "\n", + "mpl.figure.prototype._key_event_extra = function(event, name) {\n", + " // Handle any extra behaviour associated with a key event\n", + "}\n", + "\n", + "mpl.figure.prototype.key_event = function(event, name) {\n", + "\n", + " // Prevent repeat events\n", + " if (name == 'key_press')\n", + " {\n", + " if (event.which === this._key)\n", + " return;\n", + " else\n", + " this._key = event.which;\n", + " }\n", + " if (name == 'key_release')\n", + " this._key = null;\n", + "\n", + " var value = '';\n", + " if (event.ctrlKey && event.which != 17)\n", + " value += \"ctrl+\";\n", + " if (event.altKey && event.which != 18)\n", + " value += \"alt+\";\n", + " if (event.shiftKey && event.which != 16)\n", + " value += \"shift+\";\n", + "\n", + " value += 'k';\n", + " value += event.which.toString();\n", + "\n", + " this._key_event_extra(event, name);\n", + "\n", + " this.send_message(name, {key: value,\n", + " guiEvent: simpleKeys(event)});\n", + " return false;\n", + "}\n", + "\n", + "mpl.figure.prototype.toolbar_button_onclick = function(name) {\n", + " if (name == 'download') {\n", + " this.handle_save(this, null);\n", + " } else {\n", + " this.send_message(\"toolbar_button\", {name: name});\n", + " }\n", + "};\n", + "\n", + "mpl.figure.prototype.toolbar_button_onmouseover = function(tooltip) {\n", + " this.message.textContent = tooltip;\n", + "};\n", + "mpl.toolbar_items = [[\"Home\", \"Reset original view\", \"fa fa-home icon-home\", \"home\"], [\"Back\", \"Back to previous view\", \"fa fa-arrow-left icon-arrow-left\", \"back\"], [\"Forward\", \"Forward to next view\", \"fa fa-arrow-right icon-arrow-right\", \"forward\"], [\"\", \"\", \"\", \"\"], [\"Pan\", \"Pan axes with left mouse, zoom with right\", \"fa fa-arrows icon-move\", \"pan\"], [\"Zoom\", \"Zoom to rectangle\", \"fa fa-square-o icon-check-empty\", \"zoom\"], [\"\", \"\", \"\", \"\"], [\"Download\", \"Download plot\", \"fa fa-floppy-o icon-save\", \"download\"]];\n", + "\n", + "mpl.extensions = [\"eps\", \"jpeg\", \"pdf\", \"png\", \"ps\", \"raw\", \"svg\", \"tif\"];\n", + "\n", + "mpl.default_extension = \"png\";var comm_websocket_adapter = function(comm) {\n", + " // Create a \"websocket\"-like object which calls the given IPython comm\n", + " // object with the appropriate methods. Currently this is a non binary\n", + " // socket, so there is still some room for performance tuning.\n", + " var ws = {};\n", + "\n", + " ws.close = function() {\n", + " comm.close()\n", + " };\n", + " ws.send = function(m) {\n", + " //console.log('sending', m);\n", + " comm.send(m);\n", + " };\n", + " // Register the callback with on_msg.\n", + " comm.on_msg(function(msg) {\n", + " //console.log('receiving', msg['content']['data'], msg);\n", + " // Pass the mpl event to the overriden (by mpl) onmessage function.\n", + " ws.onmessage(msg['content']['data'])\n", + " });\n", + " return ws;\n", + "}\n", + "\n", + "mpl.mpl_figure_comm = function(comm, msg) {\n", + " // This is the function which gets called when the mpl process\n", + " // starts-up an IPython Comm through the \"matplotlib\" channel.\n", + "\n", + " var id = msg.content.data.id;\n", + " // Get hold of the div created by the display call when the Comm\n", + " // socket was opened in Python.\n", + " var element = $(\"#\" + id);\n", + " var ws_proxy = comm_websocket_adapter(comm)\n", + "\n", + " function ondownload(figure, format) {\n", + " window.open(figure.imageObj.src);\n", + " }\n", + "\n", + " var fig = new mpl.figure(id, ws_proxy,\n", + " ondownload,\n", + " element.get(0));\n", + "\n", + " // Call onopen now - mpl needs it, as it is assuming we've passed it a real\n", + " // web socket which is closed, not our websocket->open comm proxy.\n", + " ws_proxy.onopen();\n", + "\n", + " fig.parent_element = element.get(0);\n", + " fig.cell_info = mpl.find_output_cell(\"<div id='\" + id + \"'></div>\");\n", + " if (!fig.cell_info) {\n", + " console.error(\"Failed to find cell for figure\", id, fig);\n", + " return;\n", + " }\n", + "\n", + " var output_index = fig.cell_info[2]\n", + " var cell = fig.cell_info[0];\n", + "\n", + "};\n", + "\n", + "mpl.figure.prototype.handle_close = function(fig, msg) {\n", + " fig.root.unbind('remove')\n", + "\n", + " // Update the output cell to use the data from the current canvas.\n", + " fig.push_to_output();\n", + " var dataURL = fig.canvas.toDataURL();\n", + " // Re-enable the keyboard manager in IPython - without this line, in FF,\n", + " // the notebook keyboard shortcuts fail.\n", + " IPython.keyboard_manager.enable()\n", + " $(fig.parent_element).html('<img src=\"' + dataURL + '\">');\n", + " fig.close_ws(fig, msg);\n", + "}\n", + "\n", + "mpl.figure.prototype.close_ws = function(fig, msg){\n", + " fig.send_message('closing', msg);\n", + " // fig.ws.close()\n", + "}\n", + "\n", + "mpl.figure.prototype.push_to_output = function(remove_interactive) {\n", + " // Turn the data on the canvas into data in the output cell.\n", + " var dataURL = this.canvas.toDataURL();\n", + " this.cell_info[1]['text/html'] = '<img src=\"' + dataURL + '\">';\n", + "}\n", + "\n", + "mpl.figure.prototype.updated_canvas_event = function() {\n", + " // Tell IPython that the notebook contents must change.\n", + " IPython.notebook.set_dirty(true);\n", + " this.send_message(\"ack\", {});\n", + " var fig = this;\n", + " // Wait a second, then push the new image to the DOM so\n", + " // that it is saved nicely (might be nice to debounce this).\n", + " setTimeout(function () { fig.push_to_output() }, 1000);\n", + "}\n", + "\n", + "mpl.figure.prototype._init_toolbar = function() {\n", + " var fig = this;\n", + "\n", + " var nav_element = $('<div/>')\n", + " nav_element.attr('style', 'width: 100%');\n", + " this.root.append(nav_element);\n", + "\n", + " // Define a callback function for later on.\n", + " function toolbar_event(event) {\n", + " return fig.toolbar_button_onclick(event['data']);\n", + " }\n", + " function toolbar_mouse_event(event) {\n", + " return fig.toolbar_button_onmouseover(event['data']);\n", + " }\n", + "\n", + " for(var toolbar_ind in mpl.toolbar_items){\n", + " var name = mpl.toolbar_items[toolbar_ind][0];\n", + " var tooltip = mpl.toolbar_items[toolbar_ind][1];\n", + " var image = mpl.toolbar_items[toolbar_ind][2];\n", + " var method_name = mpl.toolbar_items[toolbar_ind][3];\n", + "\n", + " if (!name) { continue; };\n", + "\n", + " var button = $('<button class=\"btn btn-default\" href=\"#\" title=\"' + name + '\"><i class=\"fa ' + image + ' fa-lg\"></i></button>');\n", + " button.click(method_name, toolbar_event);\n", + " button.mouseover(tooltip, toolbar_mouse_event);\n", + " nav_element.append(button);\n", + " }\n", + "\n", + " // Add the status bar.\n", + " var status_bar = $('<span class=\"mpl-message\" style=\"text-align:right; float: right;\"/>');\n", + " nav_element.append(status_bar);\n", + " this.message = status_bar[0];\n", + "\n", + " // Add the close button to the window.\n", + " var buttongrp = $('<div class=\"btn-group inline pull-right\"></div>');\n", + " var button = $('<button class=\"btn btn-mini btn-primary\" href=\"#\" title=\"Stop Interaction\"><i class=\"fa fa-power-off icon-remove icon-large\"></i></button>');\n", + " button.click(function (evt) { fig.handle_close(fig, {}); } );\n", + " button.mouseover('Stop Interaction', toolbar_mouse_event);\n", + " buttongrp.append(button);\n", + " var titlebar = this.root.find($('.ui-dialog-titlebar'));\n", + " titlebar.prepend(buttongrp);\n", + "}\n", + "\n", + "mpl.figure.prototype._root_extra_style = function(el){\n", + " var fig = this\n", + " el.on(\"remove\", function(){\n", + "\tfig.close_ws(fig, {});\n", + " });\n", + "}\n", + "\n", + "mpl.figure.prototype._canvas_extra_style = function(el){\n", + " // this is important to make the div 'focusable\n", + " el.attr('tabindex', 0)\n", + " // reach out to IPython and tell the keyboard manager to turn it's self\n", + " // off when our div gets focus\n", + "\n", + " // location in version 3\n", + " if (IPython.notebook.keyboard_manager) {\n", + " IPython.notebook.keyboard_manager.register_events(el);\n", + " }\n", + " else {\n", + " // location in version 2\n", + " IPython.keyboard_manager.register_events(el);\n", + " }\n", + "\n", + "}\n", + "\n", + "mpl.figure.prototype._key_event_extra = function(event, name) {\n", + " var manager = IPython.notebook.keyboard_manager;\n", + " if (!manager)\n", + " manager = IPython.keyboard_manager;\n", + "\n", + " // Check for shift+enter\n", + " if (event.shiftKey && event.which == 13) {\n", + " this.canvas_div.blur();\n", + " event.shiftKey = false;\n", + " // Send a \"J\" for go to next cell\n", + " event.which = 74;\n", + " event.keyCode = 74;\n", + " manager.command_mode();\n", + " manager.handle_keydown(event);\n", + " }\n", + "}\n", + "\n", + "mpl.figure.prototype.handle_save = function(fig, msg) {\n", + " fig.ondownload(fig, null);\n", + "}\n", + "\n", + "\n", + "mpl.find_output_cell = function(html_output) {\n", + " // Return the cell and output element which can be found *uniquely* in the notebook.\n", + " // Note - this is a bit hacky, but it is done because the \"notebook_saving.Notebook\"\n", + " // IPython event is triggered only after the cells have been serialised, which for\n", + " // our purposes (turning an active figure into a static one), is too late.\n", + " var cells = IPython.notebook.get_cells();\n", + " var ncells = cells.length;\n", + " for (var i=0; i<ncells; i++) {\n", + " var cell = cells[i];\n", + " if (cell.cell_type === 'code'){\n", + " for (var j=0; j<cell.output_area.outputs.length; j++) {\n", + " var data = cell.output_area.outputs[j];\n", + " if (data.data) {\n", + " // IPython >= 3 moved mimebundle to data attribute of output\n", + " data = data.data;\n", + " }\n", + " if (data['text/html'] == html_output) {\n", + " return [cell, data, j];\n", + " }\n", + " }\n", + " }\n", + " }\n", + "}\n", + "\n", + "// Register the function which deals with the matplotlib target/channel.\n", + "// The kernel may be null if the page has been refreshed.\n", + "if (IPython.notebook.kernel != null) {\n", + " IPython.notebook.kernel.comm_manager.register_target('matplotlib', mpl.mpl_figure_comm);\n", + "}\n" + ], + "text/plain": [ + "<IPython.core.display.Javascript object>" + ] + }, + "metadata": {}, + "output_type": "display_data" + }, + { + "data": { + "text/html": [ + "<img src=\"data:image/png;base64,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\">" + ], + "text/plain": [ + "<IPython.core.display.HTML object>" + ] + }, + "metadata": {}, + "output_type": "display_data" + }, + { + "name": "stdout", + "output_type": "stream", + "text": [ + "Maximum Efficiency 66.6666666667\n" + ] + } + ], + "source": [ + "%matplotlib notebook\n", + "import matplotlib\n", + "import numpy as np\n", + "import matplotlib.pyplot as plt2\n", + "W=[100.0,200.0,300.0,400.0,500.0,600.0] #loads \n", + "P=[16.0,22.5,28.0,34.0,40.5,46.5] #Efforts\n", + "VR=25.0 #velocity ratio\n", + "E=[0,0,0,0,0,0] #Efficiency\n", + "#calculating average slope\n", + "m=(P[4]-P[1])/(W[4]-W[1])\n", + "C=P[4]-m*W[4]\n", + "print \"Law of machine is P=\",m,\"W\",\"+\",C\n", + "for i in range(0,6):\n", + " \n", + " E[i]=W[i]/(25*P[i])*100 #E=W/(P*VR)\n", + " \n", + "plt2.plot(W,E)\n", + "plt2.ylabel(\"Efficiency\")\n", + "plt2.xlabel(\"Load\")\n", + "plt2.show() \n", + "\n", + " \n", + "MaxEfficiency=1/VR*100*1/m\n", + "\n", + "print \"Maximum Efficiency\",MaxEfficiency\n", + "\n", + " \n", + " " + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "# Example 6.5" + ] + }, + { + "cell_type": "code", + "execution_count": 6, + "metadata": { + "collapsed": false + }, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "Mechanical advantage-- 13.8888888889\n", + "Velocity Ratio 30.0\n", + "Efficiency 46.2962962963\n", + "self-locking machine\n", + "Ideal Load 10800.0\n", + "frictional resistance 5800.0\n" + ] + } + ], + "source": [ + "\n", + "W = 5000.0 #Load\n", + "P = 360.0 #Effort\n", + "\n", + "MA=W/P #Mechanical advantage\n", + "VR=30.0 #Velocity Ratio\n", + "Efficiency=MA/VR*100.0\n", + "var=\"reversible machine\"\n", + "if Efficiency < 50.0:\n", + " var=\"self-locking machine\"\n", + "\n", + "\n", + "\n", + "Wi = P*VR #ideal load\n", + "\n", + "Fr=Wi-W #frictional resistance\n", + "print \"Mechanical advantage--\",MA\n", + "print \"Velocity Ratio\",VR\n", + "print \"Efficiency\",Efficiency\n", + "print var\n", + "print \"Ideal Load\",Wi\n", + "\n", + "print \"frictional resistance\",Fr\n", + "\n", + "\n" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "# Example 6.6" + ] + }, + { + "cell_type": "code", + "execution_count": 7, + "metadata": { + "collapsed": false + }, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "Effort is 937.5 N\n", + "number of pulley is 4\n" + ] + } + ], + "source": [ + "import math\n", + "W = 6000.0 #Load\n", + "N=3.0 #number of pulleys\n", + "VR=2**N #Velocity Ratio\n", + "L=0.05 #Efficiency loss in each pulley\n", + "Efficiency=0.8\n", + "MA=Efficiency*VR #Mechanical advantage\n", + "P = W/MA #Effort\n", + "print \"Effort is\",P,\"N\"\n", + "#second case\n", + "P=520.0\n", + "n=0,\n", + "for i in range(3,20):\n", + " if((P*(0.8-(i-3)*0.05)*(2**i)))>6000:\n", + " n=i\n", + " break\n", + " \n", + " \n", + "print \"number of pulley is \",n\n" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "# Exmple 6.7" + ] + }, + { + "cell_type": "code", + "execution_count": 8, + "metadata": { + "collapsed": false + }, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "Effort is 2352.94117647 N\n" + ] + } + ], + "source": [ + "import math\n", + "W = 12000.0 #Load\n", + "N=3.0 #number of movable pulleys\n", + "VR=2*N #Velocity Ratio\n", + "L=0.05 #Efficiency loss in each pulley\n", + "Efficiency=0.85\n", + "MA=Efficiency*VR #Mechanical advantage\n", + "P = W/MA #Effort\n", + "print \"Effort is\",P,\"N\"\n" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "# Example 6.8" + ] + }, + { + "cell_type": "code", + "execution_count": 9, + "metadata": { + "collapsed": false + }, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "Effort is 1923.07692308 N\n" + ] + } + ], + "source": [ + "import math\n", + "W = 12000.0 #Load\n", + "N1=2.0 #number of movable pulleys in system 1\n", + "N2=2.0 #number of movable puleys in system 2\n", + "VR=2*N1+2*N2 #Velocity Ratio\n", + "L=0.05 #Efficiency loss in each pulley\n", + "Efficiency=0.78\n", + "MA=Efficiency*VR #Mechanical advantage\n", + "P = W/MA #Effort\n", + "print \"Effort is\",P,\"N\"\n" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "# Example 6.9" + ] + }, + { + "cell_type": "code", + "execution_count": 10, + "metadata": { + "collapsed": false + }, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "Efficiency 79.3650793651\n", + "Effort lost in friction 37.1428571429\n" + ] + } + ], + "source": [ + "import math\n", + "W = 1000.0 #Load\n", + "N=3.0 #number of pulleys\n", + "VR=2**N-1 #Velocity Ratio\n", + "P = 180.0 #Effort\n", + "MA=W/P #Mechanical advantage\n", + "Efficiency=MA/VR*100\n", + "print \"Efficiency\",Efficiency\n", + "Pi =W/VR #Ideal effort\n", + "\n", + "efl=P-Pi #Effort lost in friction\n", + "print \"Effort lost in friction\",efl" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "# Example 6.10" + ] + }, + { + "cell_type": "code", + "execution_count": 11, + "metadata": { + "collapsed": false + }, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "Effort is 595.238095238 N\n" + ] + } + ], + "source": [ + "import math\n", + "W = 2500.0 #Load\n", + "N1=2.0 #number of movable pulleys in system 1 in figure B\n", + "N2=2.0 #number of movable puleys in system 2 in figure C\n", + "VR=2**N1-1+2**N2-1 #Velocity Ratio\n", + "Efficiency=0.70\n", + "MA=Efficiency*VR #Mechanical advantage\n", + "P = W/MA #Effort\n", + "print \"Effort is\",P,\"N\"\n" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "# Example 6.11" + ] + }, + { + "cell_type": "code", + "execution_count": 12, + "metadata": { + "collapsed": false + }, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "Velocity ratio is 2.3\n", + "Effort is 745.341614907 N\n" + ] + } + ], + "source": [ + "D=500.0 #diameter of the wheel\n", + "d=200.0 #diameter of axle\n", + "tcw=6.0 #thickness of the cord on the wheel\n", + "tca=20.0 #thickness of the cord on the axle\n", + "W=1200 #effort\n", + "ED=D+tcw #Effective diameter of the wheel\n", + "Ed=d+tca #Effectivediameter of axle\n", + "VR=ED/Ed #Velocity Ratio\n", + "print \"Velocity ratio is \",VR\n", + "Efficiency=0.7\n", + "MA=Efficiency*VR #Mechanical advantage\n", + "P = W/MA #Effort\n", + "print \"Effort is\",P,\"N\"" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "# Example 6.12" + ] + }, + { + "cell_type": "code", + "execution_count": 13, + "metadata": { + "collapsed": false + }, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "Velocity ratio is 32.0\n", + "Effort is 1136.36363636 N\n" + ] + } + ], + "source": [ + "D=800.0 #diameter of the wheel\n", + "d1=250.0 #diameter of axle 1\n", + "d2=300.0 #diameter of axle 2\n", + "\n", + "W=20000.0 #effort\n", + "\n", + "VR=(2*D)/(d2-d1) #Velocity Ratio\n", + "print \"Velocity ratio is \",VR\n", + "Efficiency=0.55\n", + "MA=Efficiency*VR #Mechanical advantage\n", + "P = W/MA #Effort\n", + "print \"Effort is\",P,\"N\"" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "# Example 6.13" + ] + }, + { + "cell_type": "code", + "execution_count": 14, + "metadata": { + "collapsed": false + }, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "Velocity ratio is 3.33333333333\n", + "Effort is 2500.0 N\n" + ] + } + ], + "source": [ + "D=500.0 #diameter of the wheel\n", + "d=200.0 #diameter of axle \n", + "\n", + "W=5000.0 #effort\n", + "\n", + "VR=(2*D)/(D-d) #Velocity Ratio\n", + "print \"Velocity ratio is \",VR\n", + "Efficiency=0.6\n", + "MA=Efficiency*VR #Mechanical advantage\n", + "P = W/MA #Effort\n", + "print \"Effort is\",P,\"N\"" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "# Example 6.14" + ] + }, + { + "cell_type": "code", + "execution_count": 15, + "metadata": { + "collapsed": false + }, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "Effort is 1741.88034188 N\n" + ] + } + ], + "source": [ + "D=40.0 #Screw diameter\n", + "l=20.0 #Screw lwngth\n", + "p=l/3.0 #Lead of the screw\n", + "W=40000.0 #effort\n", + "R = 400 #Lever length\n", + "u = 0.12 #coefficient of friction between screw and nut\n", + "P = (d/(2*R))*W*((u+(p/(3.14*D)))/(1-u*(p/(3.14*D)))) #Effort\n", + "print \"Effort is\",P,\"N\"\n" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "# Example 6.15" + ] + }, + { + "cell_type": "code", + "execution_count": 16, + "metadata": { + "collapsed": false + }, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "Effort is 57.0287539936 N\n", + "Efficiency 55.8439936484 %\n", + "reversible machine\n", + "The torque required to keep the load from descending 2047.61904762 Nm\n" + ] + } + ], + "source": [ + "import math\n", + "d=50.0 #mean diameter of screw\n", + "p=10.0 #pitch of screw\n", + "u=0.05 #coefficient of friction at the screw thread\n", + "R=300.0 ##Lever length\n", + "W=6000.0 #Load\n", + "o1=math.atan(p/(3.14*d))\n", + "o2=math.atan(0.05)\n", + "P=d/(2*R)*(W*math.tan(o1+o2)) #effort\n", + "print \"Effort is\",P,\"N\"\n", + "VR=2*3.14*R/p #Velocity Ratio\n", + "MA=W/P #Mechanical advantage\n", + "Efficiency=MA/VR*100.0\n", + "print \"Efficiency\",Efficiency,\"%\"\n", + "var=\"reversible machine\"\n", + "if Efficiency < 50.0:\n", + " var=\"self-locking machine\"\n", + "print var\n", + "T =d/2.0*W*math.tan(o1-o2) #The torque required to keep the load from descending\n", + "print \"The torque required to keep the load from descending\",T,\"Nm\"\n" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "# Example 6.16" + ] + }, + { + "cell_type": "code", + "execution_count": 17, + "metadata": { + "collapsed": false + }, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "Efficiency 12.9110001721 %\n" + ] + } + ], + "source": [ + "import math\n", + "p1=5.0 #Pitch of smaller screw\n", + "p2=10.0 #Pitch of larger screw\n", + "R=500.0 #Lever arm length from centre of screw\n", + "W=15000.0 #Load\n", + "P=185.0 #Effort\n", + "VR=2*3.14*R/(p2-p1) #Velocity Ratio\n", + "MA=W/P #Mechanical advantage\n", + "Efficiency=MA/VR*100.0\n", + "\n", + "print \"Efficiency\",Efficiency,\"%\"\n" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "# Example 6.17" + ] + }, + { + "cell_type": "code", + "execution_count": 18, + "metadata": { + "collapsed": false + }, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "Velocity Ratio is 120.0\n", + "Law of machine is P= 0.01 W + 70.0\n", + "Efficiency for first case 25.0 %\n", + "Efficiency for second case 46.875 %\n" + ] + } + ], + "source": [ + "d=200.0 #Diameter of the load drum \n", + "R = 1200.0 # Length of lever arm \n", + "T1 = 10.0 #Number of teeth on pinion, \n", + "T2 = 100.0 #Number of teeth on spur wheel\n", + "VR=R*T2/(d*T1)*2.0 #Velocity Ratio\n", + "print \"Velocity Ratio is \",VR\n", + "W1 = 3000.0 #Load 1\n", + "P1= 100.0 #Effort1\n", + "\n", + "W2 = 9000.0 #Load 2\n", + "P2= 160.0 #Effort2\n", + "\n", + "#law of machine is given by P=mW+C\n", + "m=(P2-P1)/(W2-W1)\n", + "C=P2-m*W2\n", + "print \"Law of machine is P=\",m,\"W\",\"+\",C\n", + "MA=W1/P1 #Mechanical advantage\n", + "Efficiency=MA/VR*100.0\n", + "\n", + "print \"Efficiency for first case\",Efficiency,\"%\"\n", + "MA=W2/P2 #Mechanical advantage\n", + "Efficiency=MA/VR*100.0\n", + "\n", + "print \"Efficiency for second case\",Efficiency,\"%\"" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "# Example 6.18" + ] + }, + { + "cell_type": "code", + "execution_count": 19, + "metadata": { + "collapsed": false + }, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "Velocity Ratio is 32.0\n", + "LOad 3200.0 N\n" + ] + } + ], + "source": [ + "d=150.0 #Diameter of the load drum \n", + "R = 400.0 # Length of lever arm \n", + "T1 = 15.0 #Number of teeth on pinion, \n", + "T3 = 20.0 #Number of teeth on pinion, \n", + "T2 = 45.0 #Number of teeth on spur wheel\n", + "T4 = 40.0 #Number of teeth on spur wheel\n", + "P= 250.0 #Effort\n", + "Efficiency=0.4\n", + "VR=R*T2/(d*T1)*2.0*T4/T3 #Velocity Ratio\n", + "print \"Velocity Ratio is \",VR\n", + "\n", + "W=VR*Efficiency*P #Load \n", + "\n", + "print \"LOad\",W,\"N\"" + ] + } + ], + "metadata": { + "anaconda-cloud": {}, + "kernelspec": { + "display_name": "Python [Root]", + "language": "python", + "name": "Python [Root]" + }, + "language_info": { + "codemirror_mode": { + "name": "ipython", + "version": 2 + }, + "file_extension": ".py", + "mimetype": "text/x-python", + "name": "python", + "nbconvert_exporter": "python", + "pygments_lexer": "ipython2", + "version": "2.7.12" + } + }, + "nbformat": 4, + "nbformat_minor": 0 +} diff --git a/MECHANICS_OF_SOLIDS_by_S.S._Bhavikatti/Chapter7.ipynb b/MECHANICS_OF_SOLIDS_by_S.S._Bhavikatti/Chapter7.ipynb new file mode 100644 index 00000000..62974eb5 --- /dev/null +++ b/MECHANICS_OF_SOLIDS_by_S.S._Bhavikatti/Chapter7.ipynb @@ -0,0 +1,43 @@ +{ + "cells": [ + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "# PHYSICAL AND MECHANICAL PROPERTIES OF STRUCTURAL MATERIALS" + ] + }, + { + "cell_type": "code", + "execution_count": 1, + "metadata": { + "collapsed": true + }, + "outputs": [], + "source": [ + "#No numerical examples\n" + ] + } + ], + "metadata": { + "kernelspec": { + "display_name": "Python [Root]", + "language": "python", + "name": "Python [Root]" + }, + "language_info": { + "codemirror_mode": { + "name": "ipython", + "version": 2 + }, + "file_extension": ".py", + "mimetype": "text/x-python", + "name": "python", + "nbconvert_exporter": "python", + "pygments_lexer": "ipython2", + "version": "2.7.12" + } + }, + "nbformat": 4, + "nbformat_minor": 0 +} diff --git a/MECHANICS_OF_SOLIDS_by_S.S._Bhavikatti/Chapter8.ipynb b/MECHANICS_OF_SOLIDS_by_S.S._Bhavikatti/Chapter8.ipynb new file mode 100644 index 00000000..1204506a --- /dev/null +++ b/MECHANICS_OF_SOLIDS_by_S.S._Bhavikatti/Chapter8.ipynb @@ -0,0 +1,1325 @@ +{ + "cells": [ + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "# Chapter8-SIMPLE STRESSES AND STRAINS" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "# example8.1 Page number243" + ] + }, + { + "cell_type": "code", + "execution_count": 1, + "metadata": { + "collapsed": false + }, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "sectional area= 201.06 mm^2\n", + "stress= 198.94 N/mm^2\n", + "strain= 0.000994718394324 N/mm^2\n", + "Elongation= 0.497 mm\n" + ] + } + ], + "source": [ + "from math import pi\n", + "\n", + "#variable declaration\n", + "\n", + "P=float(40000) #Load,N\n", + "E=float(200000) #Modulus of elasticity for steel,N/mm^2\n", + "L=500 #length of circular rod,mm\n", + "d=float(16) #diameter of rod,mm\n", + " \n", + "A=(pi*(pow(d,2)))/4 #sectional area, mm^2\n", + "p=P/A #stress, N/mm^2\n", + "e=p/E #strain\n", + "delta=(P*L)/(A*E) #Elongation,mm\n", + "\n", + "print \"sectional area=\",round(A,2),\"mm^2\"\n", + "print \"stress=\",round(p,2),\"N/mm^2\"\n", + "print \"strain=\",e,\"N/mm^2\"\n", + "print \"Elongation=\",round(delta,3),\"mm\"\n" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "# example8.2 Page number243" + ] + }, + { + "cell_type": "code", + "execution_count": 2, + "metadata": { + "collapsed": false + }, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "area= 11.25 mm^2\n", + "Elongation= 1.6 mm\n", + "Hence, if measured length is 30.0 m.\n", + "Actual length is 30.0016 m\n", + "Actual length of line AB= 150.008 m.\n" + ] + } + ], + "source": [ + "#variable declaration\n", + "\n", + "P=float(120) # force applied during measurement,N\n", + "E=float(200000) #Modulus of elasticity for steel,N/mm^2\n", + "L=float(30) #length of Surveyor’s steel tape,mm\n", + " \n", + " \n", + "A=15*0.75 #area, mm^2\n", + "delta=((P*L*1000)/(A*E)) #Elongation,mm\n", + "\n", + "print \"area=\",round(A,2),\"mm^2\"\n", + "print \"Elongation=\",round(delta,3),\"mm\"\n", + "\n", + "print \"Hence, if measured length is\", L,\"m.\"\n", + "print \"Actual length is\" ,round((L+(delta/1000)),6),\"m\"\n", + "\n", + "print \"Actual length of line AB=\",round((150*(L+(delta/1000))/30),3),\"m.\"" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "# example 8.3 Page number 244\n" + ] + }, + { + "cell_type": "code", + "execution_count": 3, + "metadata": { + "collapsed": false + }, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "Therefore, permissible stress\n", + "p= 142.857 N/mm^2\n", + "Load P= 160000.0 N\n", + "A= 1120.0 mm^2\n", + "d= 94.32 mm\n", + "t= 3.64 mm\n", + "Hence, use of light section is recommended.\n" + ] + } + ], + "source": [ + "from math import pi,sqrt\n", + "\n", + "#variable declaration\n", + "\n", + "Y=float(250) #Yield stress, N/mm^2\n", + "FOS=float(1.75) #Factor of safety\n", + "P=float(160) #Load,KN\n", + "\n", + "p=Y/FOS\n", + "\n", + "print \"Therefore, permissible stress\"\n", + "print \"p=\",round(p,3), \"N/mm^2\"\n", + "print \"Load P=\",P*1000,\"N\"\n", + "\n", + "#p=P/A\n", + "\n", + "A=P*1000/p #area,mm^2\n", + "\n", + "print \"A=\",round(A),\"mm^2\"\n", + "\n", + "#For hollow section of outer diameter ‘D’ and inner diameter ‘d’ A=pi*(D^2-d^2)/4\n", + "D=float(101.6) #outer diameter,mm\n", + "\n", + "d=sqrt(pow(D,2)-(4*A/pi))\n", + "\n", + "print \"d=\",round(d,2),\"mm\"\n", + "\n", + "t=(D-d)/2\n", + "print \"t=\",round(t,2),\"mm\"\n", + "\n", + "print \"Hence, use of light section is recommended.\"\n" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "# example 8.4 page number 245" + ] + }, + { + "cell_type": "code", + "execution_count": 4, + "metadata": { + "collapsed": false + }, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "Area= 314.16 mm^2\n", + "Stress at elastic limit= 324.68 N/mm^2\n", + "Young's modulus E= 12732.4 N/mm^22\n", + "Percentage elongation= 28.0 %\n", + "Percentage reduction in area= 43.75 %\n", + "Ultimate Tensile Stress= 0.41 N/mm^2\n" + ] + } + ], + "source": [ + "from math import pi\n", + "\n", + "#variable declaration \n", + "\n", + "d=float(20) #Diameter ,mm\n", + "Loadatelasticlimit=float(102) #Load at elastic limit,KN\n", + "P=80 #Load for extension of o.25mm , KN\n", + "delta=float(0.25) #extension in specimen of steel,mm\n", + "L=200 #gauge length of specimen of steel,mm\n", + "Finalextension=float(56) #total extension at fracture,mm\n", + "\n", + "\n", + "A=(pi*pow(d,2))/4 #Area,mm^2\n", + "print \"Area=\", round(A,2),\"mm^2\"\n", + "\n", + "Stressatelasticlimit=Loadatelasticlimit*1000/A #Stress at elastic limit,N/mm^2 \n", + "print \"Stress at elastic limit=\",round(Stressatelasticlimit,2),\"N/mm^2\"\n", + "\n", + "E=(P*1000/A)*(delta*L) #Young’s modulus ,N/mm^2\n", + "print \"Young's modulus E=\", round(E,2),\"N/mm^22\"\n", + "\n", + "Percentageelongation=Finalextension*100/L #percentage elongation,%\n", + "print \"Percentage elongation=\", round(Percentageelongation,2),\"%\"\n", + "\n", + "Initialarea=(pi*pow(d,2))/4\n", + "Finalarea=(pi*pow(15,2))/4 # total extension at fracture is 56 mm and diameter at neck is 15 mm.\n", + "Percentagereductioninarea=(Initialarea-Finalarea)*100/Initialarea\n", + "\n", + "print \"Percentage reduction in area=\",round(Percentagereductioninarea,2),\"%\"\n", + "\n", + "UltimateLoad=130 #Maximum Load=130,kN\n", + "UltimateTensileStress=UltimateLoad/A\n", + "\n", + "print\"Ultimate Tensile Stress=\",round(UltimateTensileStress,2),\"N/mm^2\"\n" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "# example8.5 Page number247\n" + ] + }, + { + "cell_type": "code", + "execution_count": 5, + "metadata": { + "collapsed": false + }, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "E= 56277.19 N/mm^2\n" + ] + } + ], + "source": [ + "from math import pi\n", + "\n", + "#variable declaration\n", + "\n", + "P=float(40) #Load,KN\n", + "L1=150 #length of 1st portion,mm\n", + "A1=pi*pow(25,2)/4 #Area of 1st portion,mm^2\n", + "L2=250 #length of 2nd portion,mm\n", + "A2=pi*pow(20,2)/4 #Area of 2nd portion,mm^2\n", + "L3=150 #length of 3rd portion,mm\n", + "A3=pi*pow(25,2)/4 #Area of 3rd portion,mm^2\n", + "\n", + "#E,Young's modulus ,N/mm^2\n", + "\n", + "#Total extension= Extension of portion 1+Extension of portion 2+Extension of portion 3\n", + "\n", + "#Extension=(P*1000*L)/(A*E)\n", + "\n", + "E=(P*1000*L1/A1)+(P*1000*L2/A2)+(P*1000*L3/A3)\n", + "\n", + "print \"E=\",round(E,2),\"N/mm^2\"\n", + "\n" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "# example8.6 Page number247" + ] + }, + { + "cell_type": "code", + "execution_count": 6, + "metadata": { + "collapsed": false + }, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "Total extension of the bar= 0.5125 mm\n" + ] + } + ], + "source": [ + "from math import pi\n", + "\n", + "#variable declaration\n", + "\n", + "P=float(30) #Load,KN\n", + "L1=600 #length of 1st portion,mm\n", + "A1=40*20 #Area of 1st portion,mm^2\n", + "\n", + "E1=200000 # material 1 Young’s modulus,N/mm^2\n", + " \n", + "E2=100000 # material 2 Young’s modulus,N/mm^2\n", + " \n", + "\n", + "L2=800 #length of 2nd portion,mm\n", + "A2=30*20 #Area of 2nd portion,mm^2\n", + "\n", + "Extensionofportion1=(P*1000*L1)/(A1*E1) #mm\n", + "Extensionofportion2=(P*1000*L2)/(A2*E2) #mm\n", + "\n", + "Totalextensionofthebar= Extensionofportion1 + Extensionofportion2\n", + "\n", + "print\"Total extension of the bar=\",round(Totalextensionofthebar,4),\"mm\"\n", + "\n" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "# example8.7 Page number248\n" + ] + }, + { + "cell_type": "code", + "execution_count": 7, + "metadata": { + "collapsed": false + }, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "E= 200735.96 N/mm^2\n" + ] + } + ], + "source": [ + "from math import pi\n", + "\n", + "#variable declaration\n", + "\n", + "P=float(30) #Load,KN\n", + "L1=600 #length of 1st portion,mm\n", + "A1=pi*pow(30,2)/4 #Area of 1st portion,mm^2\n", + "L2=400 #length of 2nd portion,mm\n", + "A2=pi*(pow(30,2)-pow(10,2))/4 #Area of 2nd portion,mm^2\n", + "\n", + "#E,Young's modulus ,N/mm^2\n", + "\n", + "#Total extension= Extension of portion 1+Extension of portion 2\n", + "\n", + "#Extension=(P*1000*L)/(A*E)\n", + "\n", + "T=float(0.222) #Total extension of the bar,mm\n", + "\n", + "E=((P*1000*L1/A1)+(P*1000*L2/A2))/T \n", + "\n", + "print \"E=\",round(E,2),\"N/mm^2\"\n", + "\n" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "# example 8.10 Page number 251" + ] + }, + { + "cell_type": "code", + "execution_count": 8, + "metadata": { + "collapsed": false + }, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "delta1= 0.2113 mm\n", + "there is calculation mistake in book\n", + "delta2= 0.48 mm^2\n", + "Percentage error= 55.977 %\n", + "there is calculation mistake in book\n" + ] + } + ], + "source": [ + "import math\n", + "#variable declaration\n", + "\n", + "t=10 #steel flat thickness,mm\n", + "b1=float(60) #tapering from b1 to b2\n", + "b2=40\n", + "L=600 #steel flat length\n", + "P=float(80) #Load,KN\n", + "E=2*100000 #Young's Modulus,N/mm^2\n", + "\n", + "#Extension of the tapering bar of rectangular section\n", + "\n", + "delta1=(P*1000*L*math.log((b1/b2),10))/(t*E*(b1-b2))\n", + "\n", + "print \"delta1=\",round(delta1,4),\"mm\"\n", + "print \"there is calculation mistake in book\"\n", + "\n", + "#If averages cross-section is considered instead of tapering cross-section, extension is given by \n", + "\n", + "Aav=(b1+b2)*t/2 #mm^2\n", + "\n", + "delta2=(P*1000*L)/(Aav*E) #mm\n", + "print\"delta2=\",round(delta2,3),\"mm^2\"\n", + "\n", + "P= (delta2-delta1)*100/delta2\n", + "\n", + "print\"Percentage error=\",round(P,3),\"%\"\n", + "\n", + "print \"there is calculation mistake in book\"\n" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "# example8.11 page number251" + ] + }, + { + "cell_type": "code", + "execution_count": 9, + "metadata": { + "collapsed": false + }, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "delta1= 1.194 mm\n", + "delta2= 0.265 mm\n", + "Total extension 1.459 mm\n" + ] + } + ], + "source": [ + "from math import pi\n", + "\n", + "#variable declaration\n", + "\n", + "P=float(200) #loading,KN\n", + "E=200*1000\n", + "d1=40 #Young's modulus,N/mm^2\n", + "A= pi*pow(d1,2)/4 #Area of uniform portion,mm^2 \n", + "L1=1500 #length of uniform portion,mm \n", + "d2=60 #diameter of tapered section,mm\n", + "L2=500 #length of tapered section,mm\n", + "#Extensions of uniform portion and tapering portion are worked out separately and then added to get extension of the given bar. \n", + "\n", + "#Extension of uniform portion\n", + "\n", + "delta1=(P*1000*L1)/(A*E)\n", + "\n", + "print \"delta1=\",round(delta1,3),\"mm\"\n", + "\n", + "delta2=(P*1000*4*L2)/(E*pi*d1*d2)\n", + "\n", + "print \"delta2=\",round(delta2,3),\"mm\"\n", + "\n", + "T=delta1 + delta2 \n", + "print \"Total extension\",round(T,3),\"mm\"\n", + "\n", + "\n" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "# example 8.13 page number259" + ] + }, + { + "cell_type": "code", + "execution_count": 10, + "metadata": { + "collapsed": false + }, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "Poisson's ratio= 0.3\n", + "E= 203718.33 N/mm^2\n", + "G= 78353.2 N/mm^2\n", + "K= 169765.27 N/mm^2\n" + ] + } + ], + "source": [ + "from math import pi\n", + "\n", + "#variable declaration\n", + "\n", + "P=float(60) #load,KN\n", + "d=float(25) #diameter,mm\n", + "A=pi*pow(d,2)/4 #Area,mm^2\n", + "L=float(200) #gauge length,mm\n", + "\n", + "delta=0.12 #extension,mm\n", + "deltad=0.0045 #contraction in diameter,mm\n", + "Linearstrain=delta/L\n", + "Lateralstrain=deltad/d\n", + "\n", + "Pr=Lateralstrain/Linearstrain\n", + "\n", + "print \"Poisson's ratio=\",round(Pr,1)\n", + "\n", + "E=(P*1000*L)/(A*delta)\n", + "\n", + "print \"E=\",round(E,2),\"N/mm^2\"\n", + "\n", + "G=E/(2*(1+Pr)) #Rigidity modulus\n", + "\n", + "print \"G=\",round(G,1),\"N/mm^2\"\n", + "\n", + "K=E/(3*(1-(2*Pr))) #bulk modulus\n", + "\n", + "print \"K=\",round(K,2),\"N/mm^2\"\n" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "# example 8.14 page number 260" + ] + }, + { + "cell_type": "code", + "execution_count": 11, + "metadata": { + "collapsed": false + }, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "G= 76923.1 N/mm^2\n", + "K= 166666.67 N/mm^2\n", + "change in volume 60.0 mm^3\n" + ] + } + ], + "source": [ + "from math import pi\n", + "\n", + "#variable declaration\n", + "\n", + "E=float(2*100000) #Young's modulus,N/mm^2\n", + "Pr=float(0.3) #poisson's ratio\n", + "\n", + "G=E/(2*(1+Pr)) #Rigidity modulus\n", + "\n", + "K=E/(3*(1-2*(Pr))) #Bulk modulus\n", + "\n", + "print \"G=\", round(G,1),\"N/mm^2\"\n", + "\n", + "print \"K=\", round(K,2), \"N/mm^2\"\n", + "\n", + "P=60 #Load,kN\n", + "A=pi*pow(25,2)/4 #Area,mm^2\n", + "\n", + "Stress=P*1000/A #N/mm^2\n", + "#Linear strain,ex\n", + "\n", + "ex=Stress/E\n", + " \n", + "#Lateralstrain,ey,ez\n", + "\n", + "ey=-1*Pr*ex\n", + "ez=-1*Pr*ex\n", + "\n", + "#volumetric strain,ev=ex+ey+ez\n", + "\n", + "ev=ex+ey+ez\n", + "\n", + "v=pi*pow(25,2)*500/4\n", + "Changeinvolume=ev*v\n", + "\n", + "print\"change in volume\",round(Changeinvolume,2),\"mm^3\"" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "# example 8.15 page number261" + ] + }, + { + "cell_type": "code", + "execution_count": 12, + "metadata": { + "collapsed": false + }, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "Change in volume= 10.8 mm^3\n" + ] + } + ], + "source": [ + "#variable declaration\n", + "# Let the x, y, z be the mutually perpendicular directions\n", + "\n", + "pr=float(0.3)\n", + "PX=float(15) #Loading in x-direction,KN\n", + "PY=float(80) #Loading in Y-direction(compressive),KN\n", + "PZ=float(180) #Loading in Z-direction,KN\n", + "\n", + "#Area in X-,Y-,Z-Direction is AX,AY,AZ respectively,mm^2\n", + "\n", + "AX=float(10*30)\n", + "AY=float(10*400)\n", + "AZ=float(30*400)\n", + "\n", + "#stress devoloped in X-,Y-,Z- direction as px,py,pz respectively,N/mm^2\n", + "\n", + "px=PX*1000/AX\n", + "py=PY*1000/AY\n", + "pz=PZ*1000/AZ\n", + "\n", + "#Noting that a stress produces a strain of p/E in its own direction, the nature being same as that of stress and µ p E in lateral direction of opposite nature, and taking tensile stress as +ve, we can write expression for strains ex, ey, ez.\n", + "E=2*100000 #young's modulus,N/mm^2\n", + "\n", + "ex=(px/E)+(pr*py/E)-(pr*pz/E)\n", + "ey=(-pr*px/E)-(py/E)-(pr*pz/E)\n", + "ez=(-pr*px/E)+(pr*py/E)+(pz/E)\n", + "\n", + "ev=ex+ey+ez #Volumetric strain\n", + "\n", + "volume=10*30*400\n", + "\n", + "Changeinvolume=ev*volume\n", + "\n", + "print \"Change in volume=\",round(Changeinvolume,2),\"mm^3\"\n" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "# example 8.17 page number 263" + ] + }, + { + "cell_type": "code", + "execution_count": 13, + "metadata": { + "collapsed": false + }, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "poisson's Ratio= 0.346\n", + "Bulk modulus= 227500.0 N/mm^2\n" + ] + } + ], + "source": [ + "#variable declaration\n", + "\n", + "E=float(2.1*100000) #Young’s modulus of the material,N/mm^2\n", + "G=float(0.78*100000) #modulus of rigidity,N/mm^2\n", + "\n", + "pr=(E/(2*G))-1\n", + "\n", + "print \"poisson's Ratio=\",round(pr,3)\n", + "\n", + "K=E/(3*(1-2*pr))\n", + "\n", + "print \"Bulk modulus=\",round(K,3),\"N/mm^2\" " + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "# example 8.18 page number 263" + ] + }, + { + "cell_type": "code", + "execution_count": 14, + "metadata": { + "collapsed": false + }, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "Young's modulus= 102857.143 N\n", + "Poisson's Ratio 0.2857\n" + ] + } + ], + "source": [ + "#variable declaration\n", + "\n", + "G=float(0.4*100000) #modulus of rigidity of material,N/mm^2\n", + "K=float(0.8*100000) #bulk modulus,N/mm^2\n", + "\n", + "E=(9*G*K)/(3*K+G)\n", + "\n", + "\n", + "print \"Young's modulus=\",round(E,3),\"N\"\n", + "\n", + "pr=(E/(2*G))-1\n", + "\n", + "print \"Poisson's Ratio\",round(pr,4)\n" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "# example 8.19 page number 264" + ] + }, + { + "cell_type": "code", + "execution_count": 15, + "metadata": { + "collapsed": false + }, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "Stress in aluminium strip= 23.08 N/mm^2\n", + "Stress in steel strip= 46.15 N/mm^2\n", + "Extension of the compound bar= 0.138 mm\n" + ] + } + ], + "source": [ + "#variable declaration\n", + "\n", + "L=float(600) #compound bar of length,mm\n", + "P=float(60) #compound bar when axial tensile force ,KN\n", + "\n", + "Aa=float(40*20) #area of aluminium strip,mm^2\n", + "As=float(60*15) #area of steel strip,mm^2\n", + "\n", + "Ea=1*100000 # elastic modulus of aluminium,N/mm^2\n", + "Es=2*100000 # elastic modulus of steel,N/mm^2\n", + "\n", + "#load shared by aluminium strip be Pa and that shared by steel be Ps. Then from equilibrium condition Pa+Ps=P\n", + "#From compatibility condition, deltaAL=deltaS\n", + "Pa=(P*1000)/(1+((As*Es)/(Aa*Ea)))\n", + "Ps=Pa*((As*Es)/(Aa*Ea))\n", + "\n", + "Sias=Pa/Aa\n", + "print \"Stress in aluminium strip=\",round(Sias,2),\"N/mm^2\"\n", + "Siss=Ps/As\n", + "print \"Stress in steel strip=\",round(Siss,2),\"N/mm^2\"\n", + "\n", + "L=600\n", + "#Extension of the compound bar \n", + "deltal=(Pa*L)/(Aa*Ea)\n", + "print\"Extension of the compound bar=\",round(deltal,3),\"mm\"" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "# example 8.20 page number 265" + ] + }, + { + "cell_type": "code", + "execution_count": 16, + "metadata": { + "collapsed": false + }, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "stress in Copper= 75.76 N/mm^2\n", + "stress in Steel= 126.27 N/mm^2\n" + ] + } + ], + "source": [ + "from math import pi\n", + "\n", + "#variable declaration\n", + "\n", + "Es=float(2*100000) #Young's modulus of steel rod ,N/mm^2\n", + "Ec=float(1.2*100000) #Young's modulus of copper tube,N/mm^2\n", + "\n", + "di=float(25) #internal diameter,mm\n", + "de=float(40) #external diameter,mm\n", + "\n", + "As=pi*pow(di,2)/4 #Area of steel rod,mm^2\n", + "Ac=pi*(pow(de,2)-pow(di,2))/4 #Area of copper tube,mm^2\n", + "P=120 #load, KN\n", + "#From equation of equilibrium, Ps+Pc=P,where Ps is the load shared by steel rod and Pc is the load shared by the copper tube.\n", + "#From compatibility condition,deltaS=deltaC\n", + "\n", + "Pc=(P*1000)/(1+((As*Es)/(Ac*Ec)))\n", + "Ps=Pc*((As*Es)/(Ac*Ec))\n", + "\n", + "SIC=Pc/Ac #stress in copper, N/mm^2\n", + "SIS=Ps/As #stress in steel,N/mm^2\n", + "\n", + "print \"stress in Copper=\",round(SIC,2),\"N/mm^2\"\n", + "print \"stress in Steel=\",round(SIS,2),\"N/mm^2\"\n" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "# example 8.21 page number 266" + ] + }, + { + "cell_type": "code", + "execution_count": 17, + "metadata": { + "collapsed": false + }, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "stress in Concrete= 4.51 N/mm^2\n", + "stress in Steel= 81.2 N/mm^2\n" + ] + } + ], + "source": [ + "from math import pi\n", + "\n", + "#variable declaration\n", + "#Es/Ec=18(given)\n", + "Er=float(18) #young modulus ratio Er=Es/Ec\n", + "d=float(16) #steel bar diameter,mm\n", + "#8 steel bars\n", + "As=8*pi*pow(d,2)/4 #Area of steel bar,mm^2\n", + "Ac=(300*500)-As #Area of concrete,mm^2\n", + "\n", + "P=800 #Compressive force, KN\n", + "#From equation of equilibrium, Ps+Pc=P,where Ps is the load shared by steel bar and Pc is the load shared by the Concrete\n", + "#From compatibility condition,deltaS=deltaC\n", + "\n", + "Pc=(P*1000)/(1+((As*Er)/(Ac)))\n", + "Ps=Pc*((As*Er)/(Ac))\n", + "\n", + "SIC=Pc/Ac #stress in Concrete, N/mm^2\n", + "SIS=Ps/As #stress in steel,N/mm^2\n", + "\n", + "print \"stress in Concrete=\",round(SIC,2),\"N/mm^2\"\n", + "print \"stress in Steel=\",round(SIS,2),\"N/mm^2\"" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "# example 8.22 page number 267" + ] + }, + { + "cell_type": "code", + "execution_count": 18, + "metadata": { + "collapsed": false + }, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "stress in Aluminium= 66.96 N/mm^2\n", + "stress in Steel= 89.29 N/mm^2\n" + ] + } + ], + "source": [ + "#variable declaration\n", + "\n", + "Es=float(2*100000) #Young's modulus of steel ,N/mm^2\n", + "Ea=float(1*100000) #Young's modulus of aluminium,N/mm^2\n", + "Ls=240 #length of steel,mm\n", + "La=160 #length of aluminium,mm\n", + "Aa=1200 #Area of aluminium,mm^2\n", + "As=1000 #Area of steel,mm^2\n", + "P=250 #load, KN\n", + "#From equation of equilibrium, Ps+2Pa=P,et force shared by each aluminium pillar be Pa and that shared by steel pillar be Ps. \n", + "#From compatibility condition,deltaS=deltaC\n", + "\n", + "Pa=(P*1000)/(2+((As*Es*La)/(Aa*Ea*Ls)))\n", + "Ps=Pa*((As*Es*La)/(Aa*Ea*Ls))\n", + "\n", + "SIA=Pa/Aa #stress in aluminium, N/mm^2\n", + "SIS=Ps/As #stress in steel,N/mm^2\n", + "\n", + "print \"stress in Aluminium=\",round(SIA,2),\"N/mm^2\"\n", + "print \"stress in Steel=\",round(SIS,2),\"N/mm^2\"" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "# example 8.23 page number 268\n" + ] + }, + { + "cell_type": "code", + "execution_count": 19, + "metadata": { + "collapsed": false + }, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "ps= 91.73 N/mm^2\n", + "pc= 44.96 N/mm^2\n" + ] + } + ], + "source": [ + "from math import pi\n", + "\n", + "#variable declaration\n", + "\n", + "# Let the force shared by bolt be Ps and that by tube be Pc. Since there is no external force, static equilibrium condition gives Ps + Pc = 0 or Ps = – Pc i.e., the two forces are equal in magnitude but opposite in nature. Obviously bolt is in tension and tube is in compression.\n", + "#Let the magnitude of force be P. Due to quarter turn of the nut\n", + "\n", + "#[Note. Pitch means advancement of nut in one full turn] \n", + "\n", + "Ls=float(600) #length of whole assembly,mm\n", + "Lc=float(600) #length of whole assembly,mm\n", + "delta=float(0.5)\n", + "ds=float(20) #diameter,mm\n", + "di=float(28) #internal diameter,mm\n", + "de=float(40) #external diameter,mm\n", + "Es=float(2*100000) #Young's modulus, N/mm^2\n", + "Ec=float(1.2*100000)\n", + "As=pi*pow(ds,2)/4 #area of steel bolt,mm^2\n", + "Ac=pi*(pow(de,2)-pow(di,2))/4 #area of copper tube,mm^2\n", + "\n", + "P= (delta*(1/Ls))/((1/(As*Es))+(1/(Ac*Ec))) #Load,N\n", + "\n", + "ps=P/As #stress,N/mm^2\n", + "pc=P/Ac #copper,N/mm^2\n", + "\n", + "print \"ps=\",round(ps,2),\"N/mm^2\"\n", + "print \"pc=\",round(pc,2),\"N/mm^2\"" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "# example 8.24 page number 271" + ] + }, + { + "cell_type": "code", + "execution_count": 20, + "metadata": { + "collapsed": false + }, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "(a) p= 52.8 \tN/mm^2\n", + "(b) p= 27.8 \tN/mm^2\n", + " (iii) delta= 1.968 mm\n" + ] + } + ], + "source": [ + "#variable declaration\n", + "E=float(2*100000) #Young's modulus,N/mm^2\n", + "alpha=float(0.000012) #expansion coeffecient,/°c\n", + "L=float(12) #length,m\n", + "t=float(40-18) #temperature difference,°c\n", + "\n", + "delta=alpha*t*L*1000 #free expansion of the rails,mm \n", + "# Provide a minimum gap of 3.168 mm between the rails, so that temperature stresses do not develop\n", + " \n", + "# a) If no expansion joint is provided, free expansion prevented is equal to 3.168 mm.\n", + "\n", + "#delta=(P*L)/(A*E) & p=P/A where p is stress, P,A is load,area \n", + "\n", + "p1=(delta*E)/(L*1000) #stress developed , N/mm^2\n", + "\n", + "print \"(a) p=\", round(p1,1),\"\tN/mm^2\"\n", + "\n", + "#(b) If a gap of 1.5 mm is provided, free expansion prevented delta2 = 3.168 – 1.5 = 1.668 mm.\n", + "\n", + "delta2=1.668 #mm\n", + "#delta2=(P*L)/(A*E) & p=P/A where p is stress, P,A is load,area \n", + "\n", + "p2=(delta2*E)/(L*1000) #stress developed , N/mm^2\n", + "\n", + "print \"(b) p=\", round(p2,1),\"\tN/mm^2\"\n", + "\n", + "# If the stress developed is 20 N/mm2, then p = P/ A\n", + "p3=20 #stress developed,N/mm^2\n", + "delta3=delta-(p3*L*1000/E)\n", + "\n", + "print \" (iii) delta=\",round(delta3,3),\"mm\"\n" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "# example 8.25 page number 272\n" + ] + }, + { + "cell_type": "code", + "execution_count": 21, + "metadata": { + "collapsed": false + }, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "stress p= 360.0 N/mm^2\n" + ] + } + ], + "source": [ + "from math import pi\n", + "\n", + "#variable declaration\n", + "\n", + "# Let D be the diameter of ring after heating and ‘d’ be its diameter before heating\n", + "D=float(1.2*1000) #mm\n", + "\n", + "#Circumference of ring after heating Ca= pi*D & Circumference of ring before heating Cb= pi*d\n", + "\n", + "Ca=pi*D\n", + "Cb=pi*d\n", + "alphas=float(0.000012) #coefficient of expansion,/°C\n", + "t=150 #temperature change,°C\n", + "Es=2*100000 #young's modulus,N/mm^2\n", + "d=(Ca-Cb)/(alphas*t*pi)\n", + "\n", + "#when it cools expansion prevented\n", + "#delta=pi*(D-d)\n", + "delta=alphas*t*pi*d\n", + "\n", + "p=(delta*Es)/(pi*d) #stress,N/mm^2\n", + "\n", + "print \"stress p=\",round(p,2),\"N/mm^2\"\n" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "# example 8.26 page number 272\n" + ] + }, + { + "cell_type": "code", + "execution_count": 22, + "metadata": { + "collapsed": false + }, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "P= 12907.3 N\n" + ] + } + ], + "source": [ + "#variable declaration\n", + "\n", + "Ea=70*1000 #Young's modulus of aluminium,N/mm^2\n", + "Es=200*1000 #Young's modulus of steel,N/mm^2\n", + "\n", + "alphaa=float(0.000011) #expansion coefficient,/°C\n", + "alphas=float(0.000012) #expansion coefficient,/°C\n", + "\n", + "Aa=600 #Area of aluminium portion,mm^2\n", + "As=400 #Area of steel, mm^2\n", + "La=float(1.5) #length of aluminium portion,m\n", + "Ls=float(3.0) #length of steel portion,m\n", + "t=18 #temperature,°C\n", + "\n", + "delta=(alphaa*t*La*1000)+(alphas*t*Ls*1000) #mm\n", + "\n", + "P=(delta)/(((La*1000)/(Aa*Ea))+((Ls*1000)/(As*Es)))\n", + "\n", + "print \"P=\" ,round(P,1),\"N\"\n", + "\n" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "# example8.27 page number 273" + ] + }, + { + "cell_type": "code", + "execution_count": 23, + "metadata": { + "collapsed": false + }, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "Corresponding maximum stress = 120.0 N/mm^2\n" + ] + } + ], + "source": [ + "from math import pi\n", + "\n", + "#variable declaration\n", + "\n", + "d1=float(25) # variation linearly in diameter from 25 mm to 50 mm \n", + "d2=float(50)\n", + "L=float(500) #length,mm\n", + "alpha=float(0.000012) #expansion coeffecient,/°C\n", + "t=25 #rise in temperture,°C\n", + "E=2*100000 #Young's modulus,N/mm^2\n", + "\n", + "delta=alpha*t*L\n", + "\n", + "#If P is the force developed by supports, then it can cause a contraction of 4*P*L/(pi*d1*d2*E)\n", + "\n", + "P=(delta*pi*d1*d2*E)/(4*L)\n", + "Am=pi*pow(d1,2)/4\n", + "Ms=P/Am\n", + "\n", + "print \"Corresponding maximum stress = \",round(Ms,1),\"N/mm^2\"\n" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "# example 8.28 page number 275" + ] + }, + { + "cell_type": "code", + "execution_count": 24, + "metadata": { + "collapsed": false + }, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "stress in steel= 12.17 N/mm^2\n", + "Stress in brass= 36.51 N/mm^2\n", + "Shear stress in pin 18.26 N/mm^2\n" + ] + } + ], + "source": [ + "from math import pi\n", + "\n", + "#variable declaration\n", + "\n", + "Db=float(20) #diameter of brass rod,mm\n", + "Dse=float(40) #external diameter of steel tube,mm\n", + "Dsi=float(20) #internal diameter of steel tube,mm\n", + "Es=float(2*100000 ) #Young's modulus steel, N/mm^2\n", + "Eb=float(1*100000 ) #Young's modulus brass, N/mm^2\n", + "alphas=float(0.0000116) #coeffcient of expansion of steel,/°C\n", + "alphab=float(0.0000187) #coeffcient of expansion of brass,/°C\n", + "t=60 #raise in temperature, °C\n", + "As=pi*(pow(Dse,2)-pow(Dsi,2))/4 #Area of steel tube, mm^2\n", + "Ab=pi*(pow(Db,2))/4 #Area of brass rod,mm^2\n", + "L=1200 #length,mm\n", + "#Since free expansion of brass is more than free expansion of steel , compressive force Pb develops in brass and tensile force Ps develops in steel to keep the final position at CC \n", + "\n", + "#Horizontal equilibrium condition gives Pb = Ps, say P. \n", + "\n", + "P=((alphab-alphas)*t*L)/((L/(As*Es))+(L/(Ab*Eb)))\n", + "\n", + "ps=P/As\n", + "pb=P/Ab\n", + "\n", + "print \"stress in steel=\",round(ps,2),\"N/mm^2\"\n", + "print \"Stress in brass=\",round(pb,2),\"N/mm^2\"\n", + "\n", + "#the pin resist the force P at the two cross- sections at junction of two bars.\n", + "\n", + "Shearstress=P/(2*Ab)\n", + "print \"Shear stress in pin\",round(Shearstress,2),\"N/mm^2\"\n", + "\n" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "# example 8.29 page number 276" + ] + }, + { + "cell_type": "code", + "execution_count": 25, + "metadata": { + "collapsed": false + }, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "Change in length= 1.07 mm\n", + "Hoop stress f= 83.33 N/mm^2\n" + ] + } + ], + "source": [ + "#variable declaration\n", + "\n", + "L=float(1000) #length of the bar at normal temperature,mm\n", + "As=float(50*10) #Area of steel,mm^2\n", + "Ac=float(40*5) #Area of copper,mm^2\n", + "#Ac = Free expansion of copper is greater than free expansion of steel . To bring them to the same position, tensile force Ps acts on steel plate and compressive force Pc acts on each copper plate. \n", + "alphas=float(0.000012) #Expansion of coeffcient of steel,/°C\n", + "alphac=float(0.000017 ) #Expansion of coeffcient of copper,/°C\n", + "t=80 #raise by temperature, °C\n", + "Es=2*100000 #Young's modulus of steel,N/mm^2\n", + "Ec=1*100000 #Young's modulus of copper,N/mm^2\n", + "Pc=((alphac-alphas)*t*L)/((2*L/(As*Es)) +(L/(Ac*Ec)))\n", + "Ps=2*Pc\n", + "\n", + "pc=Pc/Ac #Stress in copper,N/mm^2\n", + "ps=Ps/As #Stress in steel, N/mm^2\n", + "\n", + "Changeinlength=alphas*t*L+(Ps*L/(As*Es))\n", + "\n", + "\n", + "print\"Change in length=\",round(Changeinlength,2),\"mm\"\n", + "\n", + "##example 8.30 page number 278\n", + "\n", + "#variable declaration\n", + "\n", + "p=float(2) #internal pressure, N/mm^2\n", + "t=12 #thickness of thin cylinder,mm\n", + "D=float(1000) #internal diameter,mm\n", + "\n", + "f=(p*D)/(2*t) #Hoop stress,N/mm^2\n", + "\n", + "print \"Hoop stress f=\",round(f,2),\"N/mm^2\"\n", + "\n", + "\n" + ] + } + ], + "metadata": { + "kernelspec": { + "display_name": "Python [Root]", + "language": "python", + "name": "Python [Root]" + }, + "language_info": { + "codemirror_mode": { + "name": "ipython", + "version": 2 + }, + "file_extension": ".py", + "mimetype": "text/x-python", + "name": "python", + "nbconvert_exporter": "python", + "pygments_lexer": "ipython2", + "version": "2.7.12" + } + }, + "nbformat": 4, + "nbformat_minor": 0 +} diff --git a/MECHANICS_OF_SOLIDS_by_S.S._Bhavikatti/Chapter9.ipynb b/MECHANICS_OF_SOLIDS_by_S.S._Bhavikatti/Chapter9.ipynb new file mode 100644 index 00000000..6496faeb --- /dev/null +++ b/MECHANICS_OF_SOLIDS_by_S.S._Bhavikatti/Chapter9.ipynb @@ -0,0 +1,466 @@ +{ + "cells": [ + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "# Chapter9-Beams" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "# example 9.1 page number 286" + ] + }, + { + "cell_type": "code", + "execution_count": 1, + "metadata": { + "collapsed": false + }, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "RB= 18.8684 KN\n", + "RA= 29.989 KN\n", + "alpha= 25.21 °\n" + ] + } + ], + "source": [ + "from math import pi,atan,sqrt,cos,sin\n", + "\n", + "#variable declaration\n", + "\n", + "#summation of all horizontal forces is zero & vertical forces is zero.\n", + "P1=float(10) #Vertical down Load at 4m from A,KN\n", + "P2=float(15) #Inclined down Load at angle 30° at 6m from A,KN\n", + "P3=float(20) #Inclined down Load at angle 45° at 10m from A,KN\n", + "theta2=30\n", + "theta3=45\n", + "#horizontal,vertical component at A is Ha,Va respectively.\n", + "\n", + "Ha=P2*cos(theta2*pi/180)+P3*cos(theta3*pi/180)\n", + "Rb=(P1*4+P2*6*sin(theta2*pi/180)+P3*10*sin(theta3*pi/180))/12 #reaction at B point,KN\n", + "\n", + "print \"RB=\",round(Rb,4),\"KN\"\n", + "\n", + "#now vertical component\n", + "Va=P2*sin(theta2*pi/180)+P3*sin(theta3*pi/180)+P1-Rb\n", + "\n", + "Ra=sqrt(pow(Ha,2)+pow(Va,2))\n", + "\n", + "print \"RA=\",round(Ra,4),\"KN\"\n", + "\n", + "alpha=(atan(Va/Ha))*180/pi\n", + "\n", + "print \"alpha=\",round(alpha,2),\"°\"" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "# example 9.2 page number 287" + ] + }, + { + "cell_type": "code", + "execution_count": 2, + "metadata": { + "collapsed": false + }, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "RB= 100.4475 KN\n", + "RA= 87.0172 KN\n", + "alpha= 79.45 °\n" + ] + } + ], + "source": [ + "from math import pi,atan,sqrt,cos,sin\n", + "\n", + "#variable declaration\n", + "\n", + "#summation of all horizontal forces is zero & vertical forces is zero.\n", + "P1=float(60) #inclined down to right Load at angle 60 at 1m from A,KN\n", + "P2=float(80) #Inclined down to left Load at angle 75° at 3m from A,KN\n", + "P3=float(50) #Inclined down to left Load at angle 60° at 5.5m from A,KN\n", + "theta1=60 \n", + "theta2=75\n", + "theta3=60\n", + "thetaRb=60\n", + "#horizontal,vertical component at A is Ha,Va respectively.\n", + "\n", + "Rb=(P1*1*sin(theta1*pi/180)+P2*3*sin(theta2*pi/180)+P3*5.5*sin(theta3*pi/180))/(6*sin(thetaRb*pi/180)) #reaction at B point,KN\n", + "Ha=-P1*cos(theta1*pi/180)+P2*cos(theta2*pi/180)-P3*cos(theta3*pi/180)+Rb*cos(thetaRb*pi/180)\n", + "print \"RB=\",round(Rb,4),\"KN\"\n", + "\n", + "#now vertical component\n", + "Va=P1*sin(theta1*pi/180)+P2*sin(theta2*pi/180)+P3*sin(theta3*pi/180)-Rb*sin(thetaRb*pi/180)\n", + "\n", + "Ra=sqrt(pow(Ha,2)+pow(Va,2))\n", + "\n", + "print \"RA=\",round(Ra,4),\"KN\"\n", + "\n", + "alpha=(atan(Va/Ha))*180/pi\n", + "\n", + "print \"alpha=\",round(alpha,2),\"°\"\n" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "# example 9.3 page number 288\n" + ] + }, + { + "cell_type": "code", + "execution_count": 3, + "metadata": { + "collapsed": false + }, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "RA= 91.6503 KN\n", + "HB= 42.4264 KN\n", + "VB= 90.7761 KN\n", + "RB= 100.2013 KN\n", + "alpha= 64.95 °\n" + ] + } + ], + "source": [ + "from math import pi,atan,sqrt,cos,sin\n", + "\n", + "#variable declaration\n", + "\n", + "#summation of all horizontal forces is zero & vertical forces is zero.\n", + "P1=float(20) #vertical down Load at 2m from A,KN\n", + "P2=float(30) #uniform distributed load from 2m to 6m from A,KN/m(in 4m of span)\n", + "P3=float(60) #Inclined down to right Load at angle 45° at 7m from A,KN\n", + "\n", + "theta3=45\n", + "#horizontal,vertical component at B is Hb,Vb respectively.\n", + "\n", + "Ra=(P1*7+P2*4*5+P3*2*sin(theta3*pi/180))/(9) #reaction at B point,KN\n", + "\n", + "print \"RA=\",round(Ra,4),\"KN\"\n", + "\n", + "Hb=P3*cos(theta3*pi/180)\n", + "print \"HB=\",round(Hb,4),\"KN\"\n", + "#now vertical component\n", + "Vb=P1+P2*4+P3*sin(theta3*pi/180)-Ra\n", + "print \"VB=\",round(Vb,4),\"KN\"\n", + "\n", + "Rb=sqrt(pow(Hb,2)+pow(Vb,2))\n", + "\n", + "print \"RB=\",round(Rb,4),\"KN\"\n", + "\n", + "alpha=(atan(Vb/Hb))*180/pi\n", + "\n", + "print \"alpha=\",round(alpha,2),\"°\"" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "# example 9.4 page number 288" + ] + }, + { + "cell_type": "code", + "execution_count": 4, + "metadata": { + "collapsed": false + }, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "no horizontal force HA=0\n", + "VA= 74.0 KN\n", + "MA= 148.0 KN-m\n" + ] + } + ], + "source": [ + "#variable declaration\n", + "#Let the reactions at A be Ha, Va and Ma\n", + "#summation of all horizontal forces is zero & vertical forces is zero.\n", + "\n", + "P1=float(20) #vertical down Load at 2m from A,KN\n", + "P2=float(12) #vertical down Load at 3m from A,KN \n", + "P3=float(10) #vertical down Load at 4m from A,KN\n", + "Pu=float(16) #uniform distributed load from A to 2m from A,KN/m(in 2m of span)\n", + "##horizontal,vertical component at A is Ha,Va respectively.\n", + "print\"no horizontal force \",\"HA=0\"\n", + "Va=Pu*2+P1+P2+P3\n", + "print \"VA=\", round(Va,2),\"KN\"\n", + "Ma=Pu*2*1+P1*2+P2*3+P3*4\n", + "print \"MA=\", round(Ma,2),\"KN-m\"\n", + "\n" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "# example 9.5 page number 288\n" + ] + }, + { + "cell_type": "code", + "execution_count": 5, + "metadata": { + "collapsed": false + }, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "no horizontal force HA=0\n", + "VA= 65.0 KN\n", + "MA= 165.0 KN-m\n" + ] + } + ], + "source": [ + "#variable declaration\n", + "#Let the reactions at A be Va and Ma\n", + "#summation of all horizontal forces is zero & vertical forces is zero.\n", + "\n", + "P1=float(15) #vertical down Load at 3m from A,KN\n", + "P2=float(10) #vertical down Load at 5m from A,KN \n", + "M=float(30) #CW moment at 4m distance from A, KN-m\n", + "Pu=float(20) #uniform distributed load from A to 2m from A,KN/m(in 2m of span)\n", + "##horizontal,vertical component at A is Ha,Va respectively.\n", + "print\"no horizontal force \",\"HA=0\"\n", + "Va=Pu*2+P1+P2\n", + "print \"VA=\", round(Va,2),\"KN\"\n", + "Ma=Pu*2*1+P1*3+P2*5+M\n", + "print \"MA=\", round(Ma,2),\"KN-m\"\n" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "# example 9.6 page number 289" + ] + }, + { + "cell_type": "code", + "execution_count": 6, + "metadata": { + "collapsed": false + }, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "RB= 100.0 KN\n", + "RA= 30.0 KN\n" + ] + } + ], + "source": [ + "#variable declaration\n", + "\n", + "#As supports A and B are simple supports and loading is only in vertical direction, the reactions RA and RB are in vertical directions only.\n", + "\n", + "#summation of all horizontal forces is zero & vertical forces is zero.\n", + "\n", + "P1=float(30) #vertical down Load at 1m from A,KN\n", + "P2=float(40) #vertical down Load at 6.5m from A,KN \n", + "Pu=float(20) #uniform distributed load from 2m to 5m from A,KN/m(in 3m of span).\n", + "\n", + "Rb=(Pu*3*3.5+P1*1+P2*6.5)/5\n", + "print \"RB=\", round(Rb,2),\"KN\"\n", + "Ra=Pu*3+P1+P2-Rb\n", + "print \"RA=\", round(Ra,2),\"KN\"" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "# example 9.7 page number 289\n" + ] + }, + { + "cell_type": "code", + "execution_count": 7, + "metadata": { + "collapsed": false + }, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "no horizontal force HA=0\n", + "VB= 50.0 KN\n", + "VA= 70.0 KN\n" + ] + } + ], + "source": [ + "#variable declaration\n", + "#Let the reactions at A be Va and Ma.\n", + "#summation of all horizontal forces is zero & vertical forces is zero.\n", + "\n", + "P1=float(60) #vertical down Load at 4m from A to right,KN\n", + "P2=float(20) #vertical down Load at 11m from A to right,KN \n", + "M=float(30) #CW moment at 7m distance from A to right, KN-m\n", + "Pu=float(20) #uniform distributed load from A to 2m from A to left ,KN/m(in 2m of span)\n", + "##horizontal,vertical component at A is Ha,Va respectively.\n", + "print\"no horizontal force \",\"HA=0\"\n", + "Vb=(-Pu*2*1+P1*4+P2*11+M)/9\n", + "print \"VB=\", round(Vb,2),\"KN\"\n", + "Va=Pu*2+P1+P2-Vb\n", + "print \"VA=\", round(Va,2),\"KN\"\n" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "# example 9.8 page number 290\n" + ] + }, + { + "cell_type": "code", + "execution_count": 8, + "metadata": { + "collapsed": false + }, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "RB= 71.011 KN\n", + "(Negative sign show that the assumed direction of VA is wrong. In other words, VA is acting vertically downwards). \n", + "RA= 23.3666 KN\n", + "alpha= 24.79 °\n" + ] + } + ], + "source": [ + "from math import pi,atan,sqrt,cos,sin\n", + "\n", + "#variable declaration\n", + "\n", + "#summation of all horizontal forces is zero & vertical forces is zero.\n", + " \n", + "P1=float(30) #Inclined down Load at angle 45° to left at 5m from A,KN\n", + "Pu=float(20) #uniformly distributed load from 6m to 8m from A ,KN,(2m of span)\n", + "theta1=45\n", + "M=40 #ACW moment at 3m from A, KN-m\n", + "#horizontal,vertical component at A is Ha,Va respectively.\n", + "\n", + "Rb=(M+P1*5*sin(theta1*pi/180)+Pu*2*7)/6 #reaction at B point,KN\n", + "\n", + "print \"RB=\",round(Rb,4),\"KN\"\n", + "\n", + "Ha=P1*cos(theta1*pi/180)\n", + "\n", + "#now vertical component\n", + "Va=P1*sin(theta1*pi/180)-Rb+Pu*2\n", + "\n", + "Ra=sqrt(pow(Ha,2)+pow(Va,2))\n", + "\n", + "print \"(Negative sign show that the assumed direction of VA is wrong. In other words, VA is acting vertically downwards). \"\n", + "\n", + "Va1=-1*Va\n", + "print \"RA=\",round(Ra,4),\"KN\"\n", + "\n", + "alpha=(atan(Va1/Ha))*180/pi\n", + "\n", + "print \"alpha=\",round(alpha,2),\"°\"" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "# example 9.9 page number 290\n" + ] + }, + { + "cell_type": "code", + "execution_count": 9, + "metadata": { + "collapsed": false + }, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "X= 5.0 m\n" + ] + } + ], + "source": [ + "#variable declaration\n", + "\n", + "#summation of all horizontal forces is zero & vertical forces is zero.\n", + " \n", + "#Let the left support C be at a distance x metres from A. \n", + "\n", + "P1=float(30) #vertical down load at A,KN\n", + "Pu=float(6) #uniform distributed load over whole span,KN/m,(20m of span)\n", + "P2=float(50) #vertical down load at B, KN\n", + "\n", + "#Rc=Rd(given) reaction at C & D is equal.\n", + "\n", + "Rc=(P1+P2+Pu*20)/2\n", + "Rd=Rc\n", + "\n", + "#taking moment at A \n", + "x=(((Pu*20*10+P2*20)/100)-12)/2\n", + "\n", + "print \"X=\", round(x,2),\"m\"\n" + ] + } + ], + "metadata": { + "kernelspec": { + "display_name": "Python [Root]", + "language": "python", + "name": "Python [Root]" + }, + "language_info": { + "codemirror_mode": { + "name": "ipython", + "version": 2 + }, + "file_extension": ".py", + "mimetype": "text/x-python", + "name": "python", + "nbconvert_exporter": "python", + "pygments_lexer": "ipython2", + "version": "2.7.12" + } + }, + "nbformat": 4, + "nbformat_minor": 0 +} diff --git a/MECHANICS_OF_SOLIDS_by_S.S._Bhavikatti/screenshots/Screenshot_280.png b/MECHANICS_OF_SOLIDS_by_S.S._Bhavikatti/screenshots/Screenshot_280.png Binary files differnew file mode 100644 index 00000000..c6681894 --- /dev/null +++ b/MECHANICS_OF_SOLIDS_by_S.S._Bhavikatti/screenshots/Screenshot_280.png diff --git a/MECHANICS_OF_SOLIDS_by_S.S._Bhavikatti/screenshots/Screenshot_281.png b/MECHANICS_OF_SOLIDS_by_S.S._Bhavikatti/screenshots/Screenshot_281.png Binary files differnew file mode 100644 index 00000000..ba271472 --- /dev/null +++ b/MECHANICS_OF_SOLIDS_by_S.S._Bhavikatti/screenshots/Screenshot_281.png diff --git a/MECHANICS_OF_SOLIDS_by_S.S._Bhavikatti/screenshots/Screenshot_282.png b/MECHANICS_OF_SOLIDS_by_S.S._Bhavikatti/screenshots/Screenshot_282.png Binary files differnew file mode 100644 index 00000000..d7b1586d --- /dev/null +++ b/MECHANICS_OF_SOLIDS_by_S.S._Bhavikatti/screenshots/Screenshot_282.png diff --git a/Strength_Of_Materials_by_S_S_Bhavikatti/chapter_no.10_nHKu37x.ipynb b/Strength_Of_Materials_by_S_S_Bhavikatti/chapter_no.10_nHKu37x.ipynb new file mode 100644 index 00000000..7cd2fd61 --- /dev/null +++ b/Strength_Of_Materials_by_S_S_Bhavikatti/chapter_no.10_nHKu37x.ipynb @@ -0,0 +1,280 @@ +{
+ "metadata": {
+ "name": "chapter no.10.ipynb"
+ },
+ "nbformat": 3,
+ "nbformat_minor": 0,
+ "worksheets": [
+ {
+ "cells": [
+ {
+ "cell_type": "heading",
+ "level": 1,
+ "metadata": {},
+ "source": [
+ "Chapter 10:Theory of Failures"
+ ]
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example No.10.10.1,Page No.401"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "import numpy as np\n",
+ "\n",
+ "#Initilization of Variables\n",
+ "\n",
+ "P_e=300 #N/mm**2 #Elastic Limit in tension\n",
+ "FOS=3 #Factor of safety\n",
+ "mu=0.3 #Poissoin's ratio\n",
+ "P=12*10**3 #N Pull \n",
+ "Q=6*10**3 #N #Shear force\n",
+ "\n",
+ "#Calculations\n",
+ "\n",
+ "#Let d be the diameter of the shaft\n",
+ "\n",
+ "#Direct stress\n",
+ "#P_x=P*(pi*4**-1*d**3)**-1\n",
+ "#After substituting values and further simplifying we get\n",
+ "#P_x=48*10**3\n",
+ "\n",
+ "#Now shear stress at the centre of bolt\n",
+ "#q=4*3**-1*q_av\n",
+ "#After substituting values and further simplifying we get\n",
+ "#q=32*10**3*(pi*d**2)**-1\n",
+ "\n",
+ "#Principal stresses are\n",
+ "#P1=P_x*2**-1+((P_x*2**-1)**2+q**2)**0.5\n",
+ "#After substituting values and further simplifying we get\n",
+ "#p1=20371.833*(d**2)**-1\n",
+ "\n",
+ "#P2=P_x*2**-1-((P_x*2**-1)**2+q**2)**0.5\n",
+ "#After substituting values and further simplifying we get\n",
+ "#P2=-5092.984*(d**2)**-1\n",
+ "\n",
+ "#q_max=((P_x*2**-1)**2+q**2)**0.5\n",
+ "\n",
+ "#From Max Principal stress theory\n",
+ "#Permissible stress in Tension\n",
+ "P1=100 #N/mm**2 \n",
+ "d=(20371.833*P1**-1)**0.5\n",
+ "\n",
+ "#Max strain theory\n",
+ "#e_max=P1*E**-1-mu*P2*E**-1\n",
+ "#After substituting values and further simplifying we get\n",
+ "#e_max=21899.728*(d**2*E)**-1\n",
+ "\n",
+ "#According to this theory,the design condition is\n",
+ "#e_max=P_e*(E*FOS)**-1\n",
+ "#After substituting values and further simplifying we get\n",
+ "d2=(21899.728*3*300**-1)**0.5 #mm\n",
+ "\n",
+ "#Max shear stress theory\n",
+ "#e_max=shear stress at elastic*(FOS)**-1\n",
+ "#After substituting values and further simplifying we get\n",
+ "d3=(12732.421*6*300**-1)**0.5 #mm\n",
+ "\n",
+ "#Result\n",
+ "print\"Diameter of Bolt by:Max Principal stress theory\",round(d,2),\"mm\"\n",
+ "print\" :Max strain theory\",round(d2,2),\"mm\"\n",
+ "print\" :Max shear stress theory\",round(d3,2),\"mm\""
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Diameter of Bolt by:Max Principal stress theory 14.27 mm\n",
+ " :Max strain theory 14.8 mm\n",
+ " :Max shear stress theory 15.96 mm\n"
+ ]
+ }
+ ],
+ "prompt_number": 9
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example No.10.10.2.Page No.402"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "import numpy as np\n",
+ "\n",
+ "#Initilization of Variables\n",
+ "\n",
+ "M=40*10**6 #N-mm #Bending moment\n",
+ "T=10*10**6 #N-mm #TOrque\n",
+ "mu=0.25 #Poissoin's ratio\n",
+ "P_e=200 #N/mm**2 #Stress at Elastic Limit\n",
+ "FOS=2\n",
+ "\n",
+ "#Calculations\n",
+ "\n",
+ "#Let d be the diameter of the shaft\n",
+ "\n",
+ "#Principal stresses are given by\n",
+ "\n",
+ "#P1=16*(pi*d**3)**-1*(M+(M**2+T**2)**0.5)\n",
+ "#After substituting values and further simplifying we get\n",
+ "#P1=4.13706*10**8*(d**3)**-1 ............................(1)\n",
+ "\n",
+ "#P2=16*(pi*d**3)**-1*(M-(M**2+T**2)**0.5)\n",
+ "#After substituting values and further simplifying we get\n",
+ "#P2=-6269718*(pi*d**3)**-1 ..............................(2)\n",
+ "\n",
+ "#q_max=(P1-P2)*2**-1\n",
+ "#After substituting values and further simplifying we get\n",
+ "#q_max=2.09988*10**8*(d**3)**-1\n",
+ "\n",
+ "#Max Principal stress theory\n",
+ "#P1=P_e*(FOS)**-1\n",
+ "#After substituting values and further simplifying we get\n",
+ "d=(4.13706*10**8*2*200**-1)**0.33333 #mm \n",
+ "\n",
+ "#Max shear stress theory\n",
+ "#q_max=shear stress at elastic limit*(FOS)**-1\n",
+ "#After substituting values and further simplifying we get\n",
+ "d2=(2.09988*10**8*4*200**-1)**0.33333\n",
+ "\n",
+ "#Max strain energy theory\n",
+ "#P_3=0\n",
+ "#P1**2+P2**2-2*mu*P1*P2=P_e**2*(FOS)**-1\n",
+ "#After substituting values and further simplifying we get\n",
+ "d3=(8.62444*10**12)**0.166666\n",
+ "\n",
+ "#Result\n",
+ "print\"Diameter of shaft according to:MAx Principal stress theory\",round(d,2),\"mm\"\n",
+ "print\" :Max shear stress theory\",round(d2,2),\"mm\"\n",
+ "print\" :Max strain energy theory\",round(d3,2),\"mm\""
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Diameter of shaft according to:MAx Principal stress theory 160.52 mm\n",
+ " :Max shear stress theory 161.33 mm\n",
+ " :Max strain energy theory 143.2 mm\n"
+ ]
+ }
+ ],
+ "prompt_number": 6
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example No.10.10.3,Page No.403"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "import numpy as np\n",
+ "\n",
+ "#Initilization of Variables\n",
+ "\n",
+ "f_x=40 #N/mm**2 #Internal Fliud Pressure\n",
+ "d1=200 #mm #Internal Diameter\n",
+ "r1=d1*2**-1 #mm #Radius\n",
+ "q=300 #N/mm**2 #Tensile stress\n",
+ "\n",
+ "#Calculations\n",
+ "\n",
+ "#From Lame's Equation we have,\n",
+ "\n",
+ "#Hoop Stress\n",
+ "#f_x=b*(x**2)**-1+a ..........................(1)\n",
+ "\n",
+ "#Radial Pressure\n",
+ "#p_x=b*(x**2)**-1-a .........................(2)\n",
+ "\n",
+ "#the boundary conditions are\n",
+ "x=d1*2**-1 #mm \n",
+ "#After sub values in equation 1 and further simplifying we get\n",
+ "#40=b*100**-1-a ..........................(3)\n",
+ "\n",
+ "#Max Principal stress theory\n",
+ "#q*(FOS)**-1=b*100**2+a ..................(4)\n",
+ "#After sub values in above equation and further simplifying we get\n",
+ "\n",
+ "#From Equation 3 and 4 we get\n",
+ "a=80*2**-1\n",
+ "#Sub value of a in equation 3 we get\n",
+ "b=(f_x+a)*100**2\n",
+ "\n",
+ "#At outer edge where x=r_0 pressure is zero\n",
+ "r_0=(b*a**-1)**0.5 #mm\n",
+ "\n",
+ "#thickness\n",
+ "t=r_0-r1 #mm\n",
+ "\n",
+ "#Max shear stress theory\n",
+ "P1=b*(100**2)**-1+a #Max hoop stress\n",
+ "P2=-40 #pressure at int radius (since P2 is compressive)\n",
+ "\n",
+ "#Max shear stress\n",
+ "q_max=(P1-P2)*2**-1\n",
+ "\n",
+ "#According max shear theory the design condition is\n",
+ "#q_max=P_e*2**-1*(FOS)**-1\n",
+ "#After sub values in equation we get and further simplifying we get\n",
+ "#80=b*(100**2)**-1+a\n",
+ "#After sub values in equation 1 and 3 and further simplifying we get\n",
+ "b2=120*100**2*2**-1\n",
+ "\n",
+ "#from equation(3)\n",
+ "a2=120*2**-1-a\n",
+ "\n",
+ "#At outer radius r_0,radial pressure=0\n",
+ "r_02=(b2*a2**-1)**0.5\n",
+ "\n",
+ "#thickness\n",
+ "t2=r_02-r1\n",
+ "\n",
+ "#Result\n",
+ "print\"Thickness of metal by:Max Principal stress theory\",round(t,2),\"mm\"\n",
+ "print\" :Max shear stress thoery\",round(t2,2),\"mm\""
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Thickness of metal by:Max Principal stress theory 41.42 mm\n",
+ " :Max shear stress thoery 73.21 mm\n"
+ ]
+ }
+ ],
+ "prompt_number": 2
+ }
+ ],
+ "metadata": {}
+ }
+ ]
+}
\ No newline at end of file diff --git a/Strength_Of_Materials_by_S_S_Bhavikatti/chapter_no.2_TVYLrac.ipynb b/Strength_Of_Materials_by_S_S_Bhavikatti/chapter_no.2_TVYLrac.ipynb new file mode 100644 index 00000000..94ef74e7 --- /dev/null +++ b/Strength_Of_Materials_by_S_S_Bhavikatti/chapter_no.2_TVYLrac.ipynb @@ -0,0 +1,2794 @@ +{
+ "metadata": {
+ "name": "chapter no.2.ipynb"
+ },
+ "nbformat": 3,
+ "nbformat_minor": 0,
+ "worksheets": [
+ {
+ "cells": [
+ {
+ "cell_type": "heading",
+ "level": 1,
+ "metadata": {},
+ "source": [
+ "Chapter 2:Simple Stresses And Strains"
+ ]
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 2.2.1,Page No.14"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "import numpy as np\n",
+ "\n",
+ "#Initilization of Variables\n",
+ "P=45*10**3 #N #Load\n",
+ "E=200*10**3 #N/mm**2 #Modulus of elasticity of rod\n",
+ "L=500 #mm #Length of rod\n",
+ "d=20 #mm #Diameter of rod\n",
+ "\n",
+ "#Calculations\n",
+ "\n",
+ "A=pi*d**2*4**-1 #mm**2 #Area of circular rod\n",
+ "p=P*A**-1 #N/mm**2 #stress\n",
+ "e=p*E**-1 #strain \n",
+ "dell_l=(P*L)*(A*E)**-1\n",
+ "\n",
+ "#Result\n",
+ "print\"The stress in bar due to Load is\",round(p,5),\"N/mm\"\n",
+ "print\"The strain in bar due to Load is\",round(e,5),\"N/mm\"\n",
+ "print\"The Elongation in bar due to Load is\",round(dell_l,2),\"mm\""
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "The stress in bar due to Load is 143.23945 N/mm\n",
+ "The strain in bar due to Load is 0.00072 N/mm\n",
+ "The Elongation in bar due to Load is 0.36 mm\n"
+ ]
+ }
+ ],
+ "prompt_number": 1
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 2.2.2,Page No.15"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "import numpy as np\n",
+ "\n",
+ "#Initilization of Variables\n",
+ " \n",
+ "A=15*0.75 #mm**2 #area of steel tape\n",
+ "P=100 #N #Force apllied\n",
+ "L=30*10**3 #mm #Length of tape\n",
+ "E=200*10**3 #N/m**2 #Modulus of Elasticity of steel tape\n",
+ "AB=150 #m #Measurement of Line AB \n",
+ "\n",
+ "#Calculations\n",
+ "\n",
+ "dell_l=P*L*(A*E)**-1 #mm #Elongation\n",
+ "l=L+dell_l*10**-3 #mm #Actual Length \n",
+ "AB1=AB*l*L**-1 #m Actual Length of AB\n",
+ "\n",
+ "#Result\n",
+ "print\"The Actual Length of Line AB is\",round(AB1,2),\"m\""
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "The Actual Length of Line AB is 150.0 m\n"
+ ]
+ }
+ ],
+ "prompt_number": 2
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 2.2.3,Page No.15"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "import numpy as np\n",
+ "\n",
+ "#Initilization of Variables\n",
+ "\n",
+ "#Let y be the yield stress\n",
+ "\n",
+ "y=250 #N/mm**2 #yield stress\n",
+ "FOS=1.75 #Factor of safety\n",
+ "P=140*10**3 #N #compressive Load\n",
+ "D=101.6 #mm #External diameter\n",
+ "\n",
+ "#Calculations\n",
+ "\n",
+ "p=y*(FOS)**-1 #N/mm**2 #Permissible stress\n",
+ "A=P*p**-1 #mm**2 #Area of hollow tube\n",
+ "\n",
+ "#Let d be the internal diameter of tube\n",
+ "d=-((A*4*(pi)**-1)-D**2)\n",
+ "X=d**0.5\n",
+ "t=(D-X)*2**-1 #mm #Thickness of steel tube\n",
+ "\n",
+ "#result\n",
+ "print\"The thickness of steel tube is\",round(t,2),\"mm\""
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "The thickness of steel tube is 3.17 mm\n"
+ ]
+ }
+ ],
+ "prompt_number": 3
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 2.2.4,Page No.16"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "import numpy as np\n",
+ "\n",
+ "#Initilization of Variables\n",
+ "\n",
+ "d=25 #mm #diameter of steel\n",
+ "d2=18 #mm #Diameter at neck\n",
+ "L=200 #mm #length of stee\n",
+ "P=80*10**3 #KN #Load \n",
+ "P1=160*10**3 #N #Load at Elastic Limit\n",
+ "P2=180*10**3 #N #Max Load\n",
+ "L1=56 #mm #Total Extension\n",
+ "dell_l=0.16 #mm #Extension\n",
+ "\n",
+ "\n",
+ "#Calculations\n",
+ "\n",
+ "A=pi*d**2*4**-1 #Area of steel #mm**2\n",
+ "\n",
+ "p=P1*A**-1 #Stress at Elastic Limit #N/mm**2\n",
+ "Y=P*L*(A*dell_l)**-1 #Modulus of elasticity\n",
+ "\n",
+ "#Let % elongation be x\n",
+ "x=L1*L**-1*100 \n",
+ "\n",
+ "#Percentage reduction in area\n",
+ "#Let % A be a\n",
+ "a=((pi*4**-1*d**2)-(pi*4**-1*d2**2))*(pi*4**-1*d**2)**-1*100\n",
+ "\n",
+ "#Ultimate tensile stress\n",
+ "sigma=P2*A**-1 #N/mm**2\n",
+ "\n",
+ "#result\n",
+ "print\"Stress at Elastic limit is\",round(p,2),\"N/mm**2\"\n",
+ "print\"Young's Modulus is\",round(Y,2),\"N/mm**2\"\n",
+ "print\"Percentage Elongation is\",round(a,2)\n",
+ "print\"Percentage reduction in area is\",round(P2,2)\n",
+ "print\"Ultimate tensile stress\",round(sigma,2),\"N/mm**2\""
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Stress at Elastic limit is 325.95 N/mm**2\n",
+ "Young's Modulus is 203718.33 N/mm**2\n",
+ "Percentage Elongation is 48.16\n",
+ "Percentage reduction in area is 180000.0\n",
+ "Ultimate tensile stress 366.69 N/mm**2\n"
+ ]
+ }
+ ],
+ "prompt_number": 4
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 2.2.5,Page No.16"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "import numpy as np\n",
+ "%matplotlib inline\n",
+ "\n",
+ "#Initilization of Variables\n",
+ "\n",
+ "d=20 #mm #Diameter of bar\n",
+ "d2=14.7 #mm #Diameter at neck \n",
+ "L=200 #mm #guage Length \n",
+ "\n",
+ "#Calculations\n",
+ "\n",
+ "print \"The Shear Force and Bending Moment Diagrams are the results\"\n",
+ "\n",
+ "#Plotting the Shear Force Diagram\n",
+ "\n",
+ "X1=[0,10,20,30,40,50,60]\n",
+ "Y1=[0,32,64,95,127,160,190]\n",
+ "Z1=[0,0,0,0,0,0,0]\n",
+ "plt.plot(X1,Y1,X1,Z1)\n",
+ "plt.xlabel(\"Extension in divisions\")\n",
+ "plt.ylabel(\"Load in kN\")\n",
+ "plt.show()\n",
+ "\n",
+ "A=pi*4**-1*d**2 #mm**2 #Area of Bar\n",
+ "A2=pi*4**-1*d2**2\n",
+ "\n",
+ "P=45 #KN #Load obtained from graph\n",
+ "dell=0.143 #mm #Divisions\n",
+ "\n",
+ "#Modulus of Elasticity\n",
+ "E=P*L*(dell*A)**-1 \n",
+ "\n",
+ "BL=93*10**3 #N #Breaking Load\n",
+ "\n",
+ "#Nominal stress at Breaking point\n",
+ "sigma=BL*A**-1 #KN/mm**2 \n",
+ "\n",
+ "#True stress at breaking Point\n",
+ "sigma1=BL*A2**-1\n",
+ "\n",
+ "#Percentage Elongation \n",
+ "dell_l=(A-A2)*A**-1*100\n",
+ "\n",
+ "#Result\n",
+ "print\"The Value of ELongation is\",round(E,2),\"N/mm**2\"\n",
+ "print\"The Nominal stress at the Breaking Point\",round(sigma,2),\"KN/mm**2\"\n",
+ "print\"The True stress at the Breaking Point\",round(sigma1,2),\"KN/mm**2\"\n",
+ "print\"The Percentage Reduction in Area is\",round(dell_l,2)"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "The Shear Force and Bending Moment Diagrams are the results\n"
+ ]
+ },
+ {
+ "metadata": {},
+ "output_type": "display_data",
+ "png": "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\n",
+ "text": [
+ "<matplotlib.figure.Figure at 0x560b250>"
+ ]
+ },
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "The Value of ELongation is 200.33 N/mm**2\n",
+ "The Nominal stress at the Breaking Point 296.03 KN/mm**2\n",
+ "The True stress at the Breaking Point 547.97 KN/mm**2\n",
+ "The Percentage Reduction in Area is 45.98\n"
+ ]
+ }
+ ],
+ "prompt_number": 1
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 2.2.6,Page No.19"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "import numpy as np\n",
+ "\n",
+ "#Initilization of Variables\n",
+ "\n",
+ "P=40*10**3 #N #Load \n",
+ "L1=160 #mm #Length of Bar1\n",
+ "L2=240 #mm #Length of bar2\n",
+ "L3=160 #mm #Length of bar3\n",
+ "d1=25 #mm #Diameter of Bar1\n",
+ "d2=20 #mm #diameter of bar2\n",
+ "d3=25 #mm #diameter of bar3\n",
+ "dell_l=0.285 #mm #Total Extension of bar\n",
+ "\n",
+ "#Calculations\n",
+ "\n",
+ "E=P*4*(dell_l*pi)**-1*(L1*(d1**2)**-1+L2*(d2**2)**-1+L3*(d3**2)**-1)\n",
+ "\n",
+ "#Result\n",
+ "print\"The Young's Modulus of the material\",round(E,2),\"N/mm**2\""
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "The Young's Modulus of the material 198714.72 N/mm**2\n"
+ ]
+ }
+ ],
+ "prompt_number": 6
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 2.2.7,Page No.19"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "import numpy as np\n",
+ "\n",
+ "#Initilization of Variables\n",
+ "\n",
+ "E1=2*10**5 #N/mm**2 #modulus of Elasticity of material1\n",
+ "E2=1*10**5 #N/mm**2 #modulus of Elasticity of material2\n",
+ "P=25*10**3 #N #Load \n",
+ "t=20 #mm #thickness of material\n",
+ "b1=40 #mm #width of material1\n",
+ "b2=30 #mm #width of material2\n",
+ "L1=500 #mm #Length of material1\n",
+ "L2=750 #mm #Length of material2\n",
+ "\n",
+ "#Calculations\n",
+ "\n",
+ "A1=b1*t #mm**2 #Area of materila1\n",
+ "A2=b2*t #mm**2 #Area of material2\n",
+ "\n",
+ "dell_l1=P*L1*(A1*E1)**-1 #Extension of Portion1\n",
+ "dell_l2=P*L2*(A2*E2)**-1 #Extension of portion2\n",
+ "\n",
+ "#Total Extension of Bar is\n",
+ "dell_l=dell_l1+dell_l2\n",
+ "\n",
+ "#Result\n",
+ "print\"The Total Extension of the Bar is\",round(dell_l,2),\"mm\""
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "The Total Extension of the Bar is 0.39 mm\n"
+ ]
+ }
+ ],
+ "prompt_number": 15
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 2.2.8,Page No.20"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "import numpy as np\n",
+ "\n",
+ "#Initilization of Variables\n",
+ "\n",
+ "L=1000 #mm #Length of Bar\n",
+ "l=400 #mm #Length upto which bire is drilled \n",
+ "D=30 #mm #diameter of bar\n",
+ "d1=10 #mm #diameter of bore\n",
+ "P=25*10**3 #N #Load\n",
+ "dell_l=0.185 #mm #Extension of bar\n",
+ "\n",
+ "#Calculations \n",
+ "\n",
+ "L1=L-l #Length of bar above the bore\n",
+ "L2=400 #mm #Length of bore\n",
+ "\n",
+ "A1=pi*4**-1*D**2 #Area of bar\n",
+ "A2=pi*4**-1*(D**2-d1**2) #Area of bore\n",
+ "\n",
+ "E=P*dell_l**-1*(L1*A1**-1+L2*A2**-1)\n",
+ "\n",
+ "#Result\n",
+ "print\"The Modulus of ELasticity is\",round(E,2),\"N/mm**2\""
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "The Modulus of ELasticity is 200735.96 N/mm**2\n"
+ ]
+ }
+ ],
+ "prompt_number": 7
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 2.2.11,Page No.23"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "import numpy as np\n",
+ "\n",
+ "#Initilization of Variables\n",
+ "\n",
+ "t=10 #mm #Thickness of steel\n",
+ "b1=60 #mm #width of plate1\n",
+ "b2=40 #mm #width of plate2\n",
+ "P=60*10**3 #Load\n",
+ "L=600 #mm #Length of plate\n",
+ "E=2*10**5 #N/mm**2\n",
+ " \n",
+ "#Calculations\n",
+ "\n",
+ "#Extension of taperong bar of rectangular section\n",
+ "dell_l=P*L*(t*E*(b1-b2))**-1*log(b1*b2**-1)\n",
+ "\n",
+ "A_av=(b1*t+b2*t)*2**-1 #Average Area #mm**2\n",
+ "dell_l2=P*L*(A_av*E)**-1 \n",
+ "\n",
+ "#PErcentage Error\n",
+ "e=(dell_l-dell_l2)*(dell_l)**-1*100\n",
+ "\n",
+ "#Result\n",
+ "print\"The Percentage Error is\",round(e,2)"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "The Percentage Error is 1.35\n"
+ ]
+ }
+ ],
+ "prompt_number": 8
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 2.2.12,Page No.23"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "import numpy as np\n",
+ "\n",
+ "#Initilization of Variables\n",
+ "\n",
+ "L=1.5 #m #Length of steel bar\n",
+ "L1=1000 #m0 #Length of steel bar 1\n",
+ "L2=500 #m #Length of steel bar 2 \n",
+ "d1=40 #Diameter of steel bar 1\n",
+ "d2=20 #diameter of steel bar 2\n",
+ "E=2*10**5 #N/mm**2 #Modulus of Elasticity\n",
+ "P=160*10**3 #N #Load\n",
+ "\n",
+ "#Calculations\n",
+ "\n",
+ "A1=pi*4**-1*d1**2 #Area of Portion 1\n",
+ "\n",
+ "#Extension of uniform Portion 1\n",
+ "dell_l1=P*L1*(A1*E)**-1 #mm\n",
+ "\n",
+ "#Extension of uniform Portion 2\n",
+ "dell_l2=4*P*L2*(pi*d1*d2*E)**-1 #mm\n",
+ "\n",
+ "#Total Extension of Bar\n",
+ "dell_l=dell_l1+dell_l2\n",
+ "\n",
+ "#Result\n",
+ "print\"The Elongation of the Bar is\",round(dell_l,2),\"mm\" "
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "The Elongation of the Bar is 1.27 mm\n"
+ ]
+ }
+ ],
+ "prompt_number": 9
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 2.2.14,Page No.25"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "import numpy as np\n",
+ "\n",
+ "#Initilization of Variables\n",
+ "\n",
+ "#Portion AB\n",
+ "L_AB=600 #mm #Length of AB\n",
+ "A_AB=40*40 #mm**2 #Cross-section Area of AB\n",
+ "\n",
+ "#Portion BC\n",
+ "L_BC=800 #mm #Length of BC\n",
+ "A_BC=30*30 #mm #Length of BC\n",
+ "\n",
+ "#Portion CD\n",
+ "L_CD=1000 #mm #Length of CD\n",
+ "A_CD=20*20 #mm #Area of CD\n",
+ "\n",
+ "P1=80*10**3 #N #Load1\n",
+ "P2=60*10**3 #N #Load2\n",
+ "P3=40*10**3 #N #Load3\n",
+ "\n",
+ "E=2*10**5 #Modulus of Elasticity\n",
+ "\n",
+ "#Calculations\n",
+ "\n",
+ "P4=P1-P2+P3 #Load4\n",
+ "\n",
+ "#Now Force in AB\n",
+ "F_AB=P1\n",
+ "\n",
+ "#Force in BC\n",
+ "F_BC=P1-P2\n",
+ "\n",
+ "#Force in CD\n",
+ "F_CD=P4\n",
+ "\n",
+ "#Extension of AB\n",
+ "dell_l_AB=F_AB*L_AB*(A_AB*E)**-1\n",
+ "\n",
+ "#Extension of BC\n",
+ "dell_l_BC=F_BC*L_BC*(A_BC*E)**-1\n",
+ "\n",
+ "#Extension of CD\n",
+ "dell_l_CD=F_CD*L_CD*(A_CD*E)**-1\n",
+ "\n",
+ "#Total Extension\n",
+ "dell_l=dell_l_AB+dell_l_BC+dell_l_CD\n",
+ "\n",
+ "#Result\n",
+ "print\"The Total Extension in Bar is\",round(dell_l,2),\"mm\""
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "The Total Extension in Bar is 0.99 mm\n"
+ ]
+ }
+ ],
+ "prompt_number": 5
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 2.2.15,Page No.26"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "import numpy as np\n",
+ "\n",
+ "#Initilization of Variables\n",
+ "\n",
+ "L=800 #mm #Length of bar\n",
+ "F1=30*10**3 #N #Force acting on the bar\n",
+ "F2=60*10**3 #N #force acting on the bar\n",
+ "L=800 #mm #Length of bar\n",
+ "d=25 #mm #diameter of bar \n",
+ "L_AC=275 #mm #Length of AC\n",
+ "L_CD=150 #mm #Length of CD\n",
+ "L_DB=375 #mm #Length of DB\n",
+ "E=2*10**5 #Pa #Modulus of elasticity\n",
+ "\n",
+ "#Calculations\n",
+ "\n",
+ "#Let P be the Reaction on tne Bar from support at A\n",
+ "\n",
+ "#Shortening of Portion AC\n",
+ "#dell_l_AC1=P*L_AC*(A*E)**-1\n",
+ "\n",
+ "#Shortening of Portion CD\n",
+ "#dell_l_CD1=(30+P)*L_CD*(A*E)**-1\n",
+ "\n",
+ "#Extension of Portion DB\n",
+ "#dell_l_DB1=(30-P)*L_DB*(A*E)**-1\n",
+ "\n",
+ "#Total Extensions=1*(A*E)**-1*(P*L_AC-(30+P)*L_CD+(30-P)*L_DB)\n",
+ "#As Supports are unyielding,Total Extensions=0\n",
+ "\n",
+ "#After substituting values in above equation and Further simplifying we get\n",
+ "P=(30*375-150*30)*800**-1\n",
+ "\n",
+ "#Reaction of support A\n",
+ "R_A=P\n",
+ "\n",
+ "#Reaction of support B\n",
+ "R_B=30-P\n",
+ "\n",
+ "#Cross-sectional Area\n",
+ "A=pi*4**-1*d**2\n",
+ "\n",
+ "#Stress in Portion AC\n",
+ "sigma1=P*10**3*A**-1 #N/mm**2\n",
+ "\n",
+ "#Stress in Portion CD\n",
+ "sigma2=(30+P)*10**3*A**-1 #N/mm**2\n",
+ "\n",
+ "#Stress in Portion DB\n",
+ "sigma3=(30-P)*10**3*A**-1 #N/mm**2\n",
+ "\n",
+ "#Shortening of Portion AC\n",
+ "dell_l_AC2=P*10**3*L_AC*(A*E)**-1 #mm \n",
+ "\n",
+ "#Shortening of Portion CD\n",
+ "dell_l_CD2=(30+P)*10**3*L_CD*(A*E)**-1 #mm \n",
+ "\n",
+ "#Extension of Portion DB\n",
+ "dell_l_DB2=(30-P)*10**3*L_DB*(A*E)**-1 #mm \n",
+ "\n",
+ "#result\n",
+ "print\"The Reactios at two Ends are:R_A\",round(R_A,2),\"KN\"\n",
+ "print\" :R_B\",round(R_B,2),\"KN\"\n",
+ "print\"Stress in Portion AC\",round(sigma1,2),\"N/mm**2\"\n",
+ "print\"Stress in Portion CD\",round(sigma2,2),\"N/mm**2\"\n",
+ "print\"Stress in Portion DB\",round(sigma3,2),\"N/mm**2\"\n",
+ "print\"Shortening of Portion AC\",round(dell_l_AC2,3),\"mm\"\n",
+ "print\"Shortening of Portion CD\",round(dell_l_CD2,3),\"mm\"\n",
+ "print\"Shortening of Portion DB\",round(dell_l_DB2,3),\"mm\""
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "The Reactios at two Ends are:R_A 8.44 KN\n",
+ " :R_B 21.56 KN\n",
+ "Stress in Portion AC 17.19 N/mm**2\n",
+ "Stress in Portion CD 78.3 N/mm**2\n",
+ "Stress in Portion DB 43.93 N/mm**2\n",
+ "Shortening of Portion AC 0.024 mm\n",
+ "Shortening of Portion CD 0.059 mm\n",
+ "Shortening of Portion DB 0.082 mm\n"
+ ]
+ }
+ ],
+ "prompt_number": 10
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 2.2.19,Page No.29"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "import numpy as np\n",
+ "\n",
+ "#Initilization of Variables\n",
+ " \n",
+ "h=4 #m #height of Pillars\n",
+ "P=20 #KN #Load at M\n",
+ "\n",
+ "#Calculations\n",
+ "\n",
+ "#Let P_A,P_B,P_C,P_D be the forces introduced in the Pillars\n",
+ "#Sun of All Vertical Forces\n",
+ "#P_A+P_B+P_C+P_D=20 ....................(1)\n",
+ "\n",
+ "#Sum of moment about AB, we get\n",
+ "#P_D+P_C=12 ....................(2)\n",
+ "\n",
+ "#Sum of Moment about AD\n",
+ "#P_C+P_B=8 ....................(3)\n",
+ "\n",
+ "#Let dell_l_A,dell_l_B,dell_l-C,dell_l_D be the deformations of Pillars A,B,C,D respectively\n",
+ "#Diagonals AC and BD will remain straight Lines even after the Load is applied.\n",
+ "#Deflection of central Point is given by (dell_l_A+dell_l_C)*2**-1 & (dell_l_B+dell_l_D)*2**-1\n",
+ "\n",
+ "#dell_l_A+dell_l_C=dell_l_B+ell_l_D\n",
+ "#P_A*L*(A*E)**-1+P_C*L*(A*E)**-1=P_B*L*(A*E)**-1+P_D*L*(A*E)**-1\n",
+ "\n",
+ "#Since Pillars are identical in Length,cross-sectional area,material Property\n",
+ "#P_A+P_C=P_B+P_D ..............(4)\n",
+ "\n",
+ "#From Equations 1 and 4 we get\n",
+ "#P_B+P_D=10 ....................(5)\n",
+ " \n",
+ "#Substracting Equation 3 from Equation 2 we get\n",
+ "#P_D-P_B=4 ....................(6)\n",
+ "\n",
+ "#Adding Equation 5 and 6 we get\n",
+ "\n",
+ "P_D=14*2**-1\n",
+ "P_C=12-P_D\n",
+ "P_B=8-P_C\n",
+ "\n",
+ "#Now substituting values of P_B,P_C,P_D in equation1 we get\n",
+ "P_A=20-(P_B+P_C+P_D)\n",
+ "\n",
+ "#Result\n",
+ "print\"The Forces Developed in the Pillars are:P_A\",round(P_A,2),\"KN\"\n",
+ "print\" :P_B\",round(P_B,2),\"KN\"\n",
+ "print\" :P_C\",round(P_C,2),\"KN\"\n",
+ "print\" :P_D\",round(P_D,2),\"KN\""
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "The Forces Developed in the Pillars are:P_A 5.0 KN\n",
+ " :P_B 3.0 KN\n",
+ " :P_C 5.0 KN\n",
+ " :P_D 7.0 KN\n"
+ ]
+ }
+ ],
+ "prompt_number": 11
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 2.2.20,Page No.31"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "import numpy as np\n",
+ "\n",
+ "#Initilization of Variables\n",
+ "\n",
+ "sigma=150 #N/mm**2 #Stress\n",
+ "P=40*10**3 #N #Load\n",
+ "\n",
+ "#Calculations\n",
+ "\n",
+ "#LEt P_A.P_B,P_C,P_D be the forces developed in wires A,B,C,D respectively\n",
+ "\n",
+ "#Let sum of all Vertical Forces=0\n",
+ "#P_A+P_B+P_C+P_D=40 ..........................(1)\n",
+ "\n",
+ "#Let x be the distance between each wires\n",
+ "#sum of all moments=0\n",
+ "#P_B*x+P_C*2*x+P_D*3*x=40*2*x\n",
+ "\n",
+ "#After further simplifying we get\n",
+ "#P_B+2*P_C+3*P_D=80 ..........................(2)\n",
+ "\n",
+ "#As the equations of statics ae not enough to find unknowns,Consider compatibilit Equations\n",
+ "\n",
+ "#Let dell_l be the increse in elongation of wire\n",
+ "\n",
+ "#dell_l_B=dell_l_A+dell_l\n",
+ "#dell_l_C=dell_l_A+2*dell_l\n",
+ "#dell_l_D=dell_l_A+3*dell_l\n",
+ "\n",
+ "#Let P1 be the force required for the Elongation of wires,then\n",
+ "#P_B=P_A+P1 ]\n",
+ "#P_C=P_A+2*P1 ]\n",
+ "#P_D=P_A+3*P1 ] ................................(3) \n",
+ "\n",
+ "#from Equation (3) and (1) we get\n",
+ "#2*P_A+3*P1=20 ................................(4)\n",
+ "\n",
+ "#from Equation (3) and (2) we get\n",
+ "#6*P_A+14*P1=80 \n",
+ "\n",
+ "#subtracting 3 times equation (4) from (3) we get\n",
+ "P1=20*5**-1\n",
+ "\n",
+ "#from Equation 4 we get\n",
+ "P_A=(80-14*P1)*6**-1\n",
+ "P_B=P_A+P1\n",
+ "P_C=P_A+2*P1 \n",
+ "P_D=P_A+3*P1\n",
+ "\n",
+ "#Let d be the diameter required,then\n",
+ "d=(P_D*10**3*4*(pi*150)**-1)**0.5\n",
+ "\n",
+ "#result\n",
+ "print\"The Required Diameter is\",round(d,2),\"mm\""
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "The Required Diameter is 11.65 mm\n"
+ ]
+ }
+ ],
+ "prompt_number": 12
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 2.2.21,Page No.32"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "import numpy as np\n",
+ "\n",
+ "#Initilization of Variables\n",
+ "\n",
+ "P=20*10**3 #N #Load\n",
+ "d=6 #mm #diameter of wire\n",
+ "E=2*10**5 #N/mm**2 \n",
+ "L_BO=4000 #mm #Length of BO\n",
+ "\n",
+ "#Calculations\n",
+ "\n",
+ "#Let theta be the angle between OA and OB and also between OC and OB\n",
+ "theta=30\n",
+ "\n",
+ "#Let P_OA,P_OB,P_OC be the Forces introduced in wires OA,OB,OC respectively\n",
+ "#Due to symmetry P_OA=P_OC (same angles)\n",
+ "\n",
+ "#Sum of all Vertical Forces=0\n",
+ "#P_OA*cos(theta)+P_OB+P_OC*cos(theta)=P\n",
+ "\n",
+ "#After further simplifyinf we get\n",
+ "#2*P_OA*cos(theta)+P_OB=20 ...............(1)\n",
+ "\n",
+ "#Let oo1 be the extension of BO\n",
+ "#oo1=L_A1o1*(cos(theta))**-1\n",
+ "\n",
+ "#From relation we get\n",
+ "#P_OB*L_BO=P_OA*L_AO*(cos(theta))**-1\n",
+ "\n",
+ "#But L_AO=L_BO*(cos(theta))**-1\n",
+ "\n",
+ "#After substituting value of L_AO in above equation we get\n",
+ "#P_OB=0.75*P_OA .......................(2)\n",
+ "\n",
+ "#substituting in Equation 1 we get\n",
+ "#2*P_OA*cos(theta)+0.75*P_OA=20\n",
+ "\n",
+ "P_OA=20*(2*cos(theta*pi*180**-1)+0.75)**-1\n",
+ "\n",
+ "P_OB=0.75*P_OA\n",
+ "\n",
+ "A=pi*4**-1*d**2 \n",
+ "\n",
+ "#Vertical displacement of Load\n",
+ "dell_l_BO=P_OB*10**3*L_BO*(A*E)**-1\n",
+ " \n",
+ "#Result\n",
+ "print\"Forces in each wire is:P_OA\",round(P_OA,2),\"KN\"\n",
+ "print\" :P_OB\",round(P_OB,2),\"KN\"\n",
+ "print\"Vertical displacement of Loadis\",round(dell_l_BO,2),\"mm\""
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Forces in each wire is:P_OA 8.06 KN\n",
+ " :P_OB 6.04 KN\n",
+ "Vertical displacement of Loadis 4.27 mm\n"
+ ]
+ }
+ ],
+ "prompt_number": 13
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 2.2.22,Page No.34"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "import numpy as np\n",
+ "\n",
+ "#Initilization of Variables\n",
+ "\n",
+ "L_s=L_a=L=500 #mm #Length of bar\n",
+ "A_a=50*20 #mm #Area of aluminium strip\n",
+ "A_s=50*15 #mm #Area of steel strip\n",
+ "P=50*10**3 #N #Load\n",
+ "E_a=1*10**5 #N/mm**2 #Modulus of aluminium \n",
+ "E_s=2*10**5 #N/mm**2 #Modulus of steel\n",
+ "\n",
+ "#Calculations\n",
+ "\n",
+ "#Let P_a and P_s br the Load shared by aluminium and steel strip\n",
+ "#P_a+P_s=P ..................(1)\n",
+ "\n",
+ "#For compatibility condition,dell_l_a=dell_l_s\n",
+ "#P_a*L_a*(A_a*E_a)**-1=P_s*L_s*(A_s*E_s)**-1 .....(2)\n",
+ "\n",
+ "#As L_a=L_s we get\n",
+ "#P_s=1.5*P_a .................(3)\n",
+ " \n",
+ "#From Equation 1 and 2 we get\n",
+ "P_a=P*2.5**-1\n",
+ "\n",
+ "#Substituting in equation 1 we get\n",
+ "P_s=P-P_a\n",
+ "\n",
+ "#stress in aluminium strip \n",
+ "sigma_a=P_a*A_a**-1\n",
+ "\n",
+ "#stress in steel strip\n",
+ "sigma_s=P_s*A_s**-1\n",
+ "\n",
+ "#Now from the relation we get\n",
+ "dell_l_a=dell_l_s=P_s*L_s*(A_s*E_s)**-1\n",
+ "\n",
+ "#result\n",
+ "print\"Stress in Aluminium strip is\",round(sigma_a,2),\"N/mm**2\"\n",
+ "print\"Stress in steel strip is\",round(sigma_s,2),\"N/mm**2\"\n",
+ "print\"The Extension of the bar is\",round(dell_l_s,2),\"mm\""
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Stress in Aluminium strip is 20.0 N/mm**2\n",
+ "Stress in steel strip is 40.0 N/mm**2\n",
+ "The Extension of the bar is 0.1 mm\n"
+ ]
+ }
+ ],
+ "prompt_number": 14
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 2.2.23,Page No.35"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "import numpy as np\n",
+ "\n",
+ "#Initilization of Variables\n",
+ "\n",
+ "D_s=20 #mm #Diameter of steel\n",
+ "D_Ci=20 #mm #Internal Diameter of Copper\n",
+ "t=5 #mm #THickness of copper bar\n",
+ "P=100*10**3 #N #Load\n",
+ "E_s=2*10**5 #N/mm**2 #modulus of elasticity of steel\n",
+ "E_c=1.2*10**5 #N/mm**2 #Modulus of Elasticity of Copper\n",
+ "\n",
+ "#Calculations\n",
+ "\n",
+ "A_s=pi*4**-1*D_s**2 #mm**2 #Area of steel\n",
+ "D_Ce=D_s+2*t #mm #External Diameterof Copper Tube\n",
+ "\n",
+ "A_c=pi*4**-1*(D_Ce**2-D_Ci**2) #mm**2 #Area of Copper\n",
+ "\n",
+ "#From static Equilibrium condition\n",
+ "#Let P_s and P_c be the Load shared by steel and copper in KN\n",
+ "#P_s+P_c=100 ....................................(1)\n",
+ "\n",
+ "#From compatibility Equation,dell_l_s=dell_l_c\n",
+ "#P_s*L*(A_s*E_s)**-1=P_c*L*(A_c*E_c)**-1\n",
+ "\n",
+ "#Substituting values in above Equation we get\n",
+ "#P_s=1.3333*P_C \n",
+ "\n",
+ "#Now Substituting value of P_s in Equation (1),we get\n",
+ "P_c=100*2.3333**-1 #KN\n",
+ "P_s=100-P_c #KN\n",
+ "\n",
+ "#Stress in steel\n",
+ "sigma_s=P_s*10**3*A_s**-1 #N/mm**2 \n",
+ "\n",
+ "#Stress in copper\n",
+ "sigma_c=P_c*10**3*A_c**-1 #N/mm**2\n",
+ "\n",
+ "#Result\n",
+ "print\"Stresses Developed in Two material are:sigma_s\",round(sigma_s,2),\"N/mm**2\"\n",
+ "print\" :sigma_c\",round(sigma_c,2),\"N/mm**2\""
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Stresses Developed in Two material are:sigma_s 181.89 N/mm**2\n",
+ " :sigma_c 109.14 N/mm**2\n"
+ ]
+ }
+ ],
+ "prompt_number": 15
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 2.2.24,Page No.36"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "import numpy as np\n",
+ "\n",
+ "#Initilization of Variables\n",
+ "\n",
+ "A_C=230*400 #mm #Area of column\n",
+ "D_s=12 #mm #Diameter of steel Bar\n",
+ "P=600*10**3 #N #Axial compression\n",
+ "#E_s*E_c=18.67\n",
+ "n=8 #number of steel Bars\n",
+ "\n",
+ "#Calculations \n",
+ "\n",
+ "A_s=pi*4**-1*D_s**2*n #Area of steel #mm**2 \n",
+ "A_c=A_C-A_s #mm**2 #Area of concrete\n",
+ "\n",
+ "#From static Equilibrium condition\n",
+ "#P_s+P_c=600 .........(1)\n",
+ "\n",
+ "#Now from compatibility Equation dell_l_s=dell_l_c we get,\n",
+ "#P_s*L*(A_s*E_s)**-1=P_c*L*(A_c*E_c)**-1\n",
+ "\n",
+ "#Substituting values in above Equation we get\n",
+ "#P_s=0.1854*P_c\n",
+ "\n",
+ "#Now Substituting value of P_s in Equation (1),we get\n",
+ "P_c=600*1.1854**-1\n",
+ "P_s=600-P_c\n",
+ "\n",
+ "#Stress in steel\n",
+ "sigma_s=P_s*10**3*A_s**-1 #N/mm**2\n",
+ "\n",
+ "#Stress in copper\n",
+ "sigma_c=P_c*10**3*A_c**-1 #N/mm**2\n",
+ "\n",
+ "#Result\n",
+ "print\"Stresses Developed in Two material are:sigma_s\",round(sigma_s,2),\"N/mm**2\"\n",
+ "print\" :sigma_c\",round(sigma_c,2),\"N/mm**2\""
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Stresses Developed in Two material are:sigma_s 103.72 N/mm**2\n",
+ " :sigma_c 5.56 N/mm**2\n"
+ ]
+ }
+ ],
+ "prompt_number": 16
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 2.2.25,Page No.36"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "import numpy as np\n",
+ "\n",
+ "#Initilization of Variables\n",
+ "\n",
+ "P=200*10**3 #N #Load\n",
+ "A_a=1000 #mm**2 #Area of Aluminium\n",
+ "A_s=800 #mm**2 #Area of steel\n",
+ "E_a=1*10**5 #N/mm**2 #Modulus of Elasticity of Aluminium\n",
+ "E_s=2*10**5 #N/mm**2 #Modulus of ELasticity of steel\n",
+ "sigma_a1=65 #N/mm**2 #stress in aluminium\n",
+ "sigma_s1=150 #N/mm**2 #Stress in steel\n",
+ "\n",
+ "#Calculations \n",
+ "\n",
+ "#Let P_a and P_s be the force in aluminium and steel pillar respectively\n",
+ "\n",
+ "#Now,sum of forces in Vertical direction we get\n",
+ "#2*P_a+P_s=200 .........................................(1)\n",
+ "\n",
+ "#By compatibility Equation dell_l_s=dell_l_a we get\n",
+ "#P_s=1.28*P_a ..........................................(2)\n",
+ "\n",
+ "#Now substituting value of P_s in Equation 1 we get\n",
+ "P_a=200*3.28**-1 #KN\n",
+ "P_s=200-2*P_a #KN\n",
+ "\n",
+ "#Stress developed in aluminium\n",
+ "sigma_a=P_a*10**3*A_a**-1 #N/mm**2 \n",
+ "\n",
+ "#Stress developed in steel\n",
+ "sigma_s=P_s*10**3*A_s**-1 #N/mm**2 \n",
+ "\n",
+ "#Part-2\n",
+ "\n",
+ "#Let sigma_a1 and sigma_s1 be the stresses in Aluminium and steel due to Additional LOad\n",
+ "\n",
+ "P_a1=sigma_a1*A_a #Load carrying capacity of aluminium\n",
+ "P_s1=1.28*P_a1\n",
+ "\n",
+ "#Total Load carrying capacity \n",
+ "P1=2*P_a1+P_s1 #N \n",
+ "\n",
+ "P_s2=sigma_s1*A_s #Load carrying capacity of steel\n",
+ "P_a2=P_s2*1.28**-1\n",
+ "\n",
+ "#Total Load carrying capacity\n",
+ "P2=2*P_a2+P_s2\n",
+ "\n",
+ "#Additional Load\n",
+ "P3=P1-P\n",
+ "\n",
+ "#Result\n",
+ "print\"Stresses Developed in Each Pillar is:sigma_a\",round(sigma_a,2),\"N/mm**2\"\n",
+ "print\" :sigma_s\",round(sigma_s,2),\"N/mm**2\"\n",
+ "print\"Additional Load taken by pillars is\",round(P3,2),\"N\""
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Stresses Developed in Each Pillar is:sigma_a 60.98 N/mm**2\n",
+ " :sigma_s 97.56 N/mm**2\n",
+ "Additional Load taken by pillars is 13200.0 N\n"
+ ]
+ }
+ ],
+ "prompt_number": 17
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 2.2.26,Page No.37"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "import numpy as np\n",
+ "\n",
+ "#Initilization of Variables\n",
+ "\n",
+ "L=500 #mm #Length of assembly\n",
+ "D=16 #mm #Diameter of steel bolt\n",
+ "Di=20 #mm #internal Diameter of copper tube\n",
+ "Do=30 #mm #External Diameter of copper tube\n",
+ "E_s=2*10**5 #N/mm**2 #Modulus of Elasticity of steel\n",
+ "E_c=1.2*10**5 #N/mm**2 #Modulus of Elasticity of copper\n",
+ "p=2 #mm #Pitch of nut\n",
+ "\n",
+ "#Calculations\n",
+ "\n",
+ "#Let P_s be the Force in bolt and P_c be the FOrce in copper tube\n",
+ "#P_s=-P_s\n",
+ "\n",
+ "dell=1*4**-1*2 #Quarter turn of nut total movement\n",
+ "\n",
+ "#dell=dell_s+dell_c\n",
+ " \n",
+ "#Area of steel\n",
+ "A_s=pi*4**-1*D**2\n",
+ "\n",
+ "#Area of copper\n",
+ "A_c=pi*4**-1*(Do**2-Di**2)\n",
+ "\n",
+ "#dell=P*L*(A_s*E_s)**-1+P*L*(A_c*E_c)**-1\n",
+ "P=dell*(1*(A_s*E_s)**-1+1*(A_c*E_c)**-1)**-1*L**-1 #LOad\n",
+ "\n",
+ "P_s=P*A_s**-1\n",
+ "P_c=P*A_c**-1\n",
+ "\n",
+ "#result\n",
+ "print\"stress introduced in bolt is\",round(P_s,2),\"N/mm**2\"\n",
+ "print\"stress introduced in tube is\",round(P_c,2),\"N/mm**2\""
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "stress introduced in bolt is 107.91 N/mm**2\n",
+ "stress introduced in tube is 55.25 N/mm**2\n"
+ ]
+ }
+ ],
+ "prompt_number": 18
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 2.2.27,Page No.39"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "import numpy as np\n",
+ "\n",
+ "#Initilization of Variables\n",
+ "\n",
+ "D=20 #mm #Diameter of Bolts\n",
+ "Di=25 #m #internal Diameter\n",
+ "t=10 #mm #Thickness of bolt\n",
+ "E_s=2*10**5 #N/mm**2 #Modulus of Elasticity\n",
+ "E_c=1.2*10**5 #N/mm**2 #Modulus of copper\n",
+ "p=3 #mm #Pitch\n",
+ "theta=30 #degree\n",
+ "L_c=500 #Lengh of copper \n",
+ "L_s=600 #Length of steel\n",
+ "\n",
+ "#Calculations\n",
+ "\n",
+ "#Let P_s be the Force in each bolt and P_c be the FOrce in copper tube\n",
+ "#From Static Equilibrium condition\n",
+ "#P_c=2*P_s\n",
+ "\n",
+ "#As nut moves by 60 degree.If nut moves by 360 degree its Longitudinal movement is by 3 mm\n",
+ "dell=theta*360**-1*p\n",
+ "\n",
+ "#From Compatibility Equaton we get\n",
+ "#dell=dell_c+dell_s\n",
+ "\n",
+ "\n",
+ "A_s=pi*4**-1*Di**2 #mm**2 #Area of steel\n",
+ "A_c=pi*4**-1*(45**2-Di**2) #mm**2 #Area of copper\n",
+ "\n",
+ "#Force introduced in steel\n",
+ "P_s=0.5*(2*L_c*(A_c*E_c)**-1+L_s*(A_s*E_s)**-1)**-1 #N\n",
+ "P_s2=P_s*A_s**-1\n",
+ "\n",
+ "#Force introduced in copper \n",
+ "P_c=2*P_s*A_c**-1 #N\n",
+ "\n",
+ "#Result\n",
+ "print\"Stress introduced in bolt is\",round(P_s2,2),\"N/mm**2\"\n",
+ "print\"stress introduced in tube is\",round(P_c,2),\"N/mm**2\""
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Stress introduced in bolt is 74.4 N/mm**2\n",
+ "stress introduced in tube is 66.43 N/mm**2\n"
+ ]
+ }
+ ],
+ "prompt_number": 19
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 2.2.28,Page No.40"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "import numpy as np\n",
+ "\n",
+ "#Initilization of Variables\n",
+ "\n",
+ "L=9 #m #Length of rigid bar\n",
+ "L_b=3000 #Length of bar\n",
+ "A_b=1000 #mm**2 #Area of bar\n",
+ "E_b=1*10**5 #N/mm**2 #Modulus of Elasticity of brasss bar\n",
+ "L_s=5000 #mm #Length of steel bar\n",
+ "A_s=445 #mm**2 #Area of steel bar\n",
+ "E_s=2*10**5 #N/mm**2 #Modulus of elasticity of steel bar\n",
+ "P=3000 #N #Load\n",
+ "\n",
+ "#Calculations\n",
+ "\n",
+ "#From static equilibrium Equation of the rod after appliying Load is\n",
+ "#P_b+P_s=P ......................(1)\n",
+ "\n",
+ "#P_b=1.8727*P_s ..................(2)\n",
+ "\n",
+ "#NOw substituting equation 2 in equation 1 we get\n",
+ "P_s=P*2.8727**-1\n",
+ "P_b=P-P_s\n",
+ "\n",
+ "d=P_s*L*P**-1 \n",
+ "\n",
+ "#Result\n",
+ "print\"Distance at which Load applied even after which bar remains horizontal is\",round(d,2),\"m\" "
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Distance at which Load applied even after which bar remains horizontal is 3.13 m\n"
+ ]
+ }
+ ],
+ "prompt_number": 20
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 2.2.29,Page No.41"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "import numpy as np\n",
+ "\n",
+ "#Initilization of Variables\n",
+ "\n",
+ "A_b=1000 #MM**2 #Area of brass bar\n",
+ "E_b=1*10**5 #N/mm**2 #Modulus of Elasticity of brass\n",
+ "A_s=600 #N/mm**2 #Area of steel rod\n",
+ "E_s=2*10**5 #N/mm**2 #Modulus of eLasticity of steel bar\n",
+ "P=10*10**2 #N #Load\n",
+ "\n",
+ "#Calculations\n",
+ "\n",
+ "#Let P_b be the tensile force in brass bar and P_s be the compressive force in steel bar\n",
+ "#Now taking moment about A we get static Equilibrium condition as\n",
+ "#P_b+2*P_s=27500 ......................................(1)\n",
+ "\n",
+ "#Now from deformed shape we get\n",
+ "#dell_s=2*dell_b\n",
+ "\n",
+ "#P_s*L_s*(A_s*E_s)**-1=P_b*L_b*(A_b*E_b)**-1\n",
+ "#Further simplifying we get\n",
+ "#P_s=1.2*P_b .........................................(2)\n",
+ "\n",
+ "#Now substituting equation 1 in equation 2 we get\n",
+ "P_b=27500*3.4**-1\n",
+ "P_s=1.2*P_b \n",
+ "\n",
+ "#Tensile stress in brass bar \n",
+ "sigma_b=P_b*A_b**-1\n",
+ "\n",
+ "#compressive stress in steel bar\n",
+ "sigma_s=P_s*A_s**-1\n",
+ "\n",
+ "#Result\n",
+ "print\"Compressive Stress in Bar is\",round(sigma_s,2),\"N/mm**2\"\n",
+ "print\"tensile Stress in Bar is\",round(sigma_b,2),\"N/mm**2\""
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Compressive Stress in Bar is 16.18 N/mm**2\n",
+ "tensile Stress in Bar is 8.09 N/mm**2\n"
+ ]
+ }
+ ],
+ "prompt_number": 21
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 2.2.30,Page No.44"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "import numpy as np\n",
+ "\n",
+ "#Initilization of Variables\n",
+ "\n",
+ "L=12.6 #m #Length of rail\n",
+ "t1=24 #Degree celsius\n",
+ "t2=44 #degree celsius\n",
+ "alpha=12*10**-6 #Per degree celsius\n",
+ "E=2*10**5 #N/mm**2 #Modulus of ELasticity\n",
+ "gamma=2 #mm #Gap provided for Expansion\n",
+ "sigma=20 #N/mm**2 #Stress\n",
+ "\n",
+ "#Calculations \n",
+ "\n",
+ "t=t2-t1 #Temperature Difference\n",
+ "\n",
+ "#Free Expansion of the rails\n",
+ "dell=alpha*t*L*1000 #mm \n",
+ "\n",
+ "#When no expansion joint is provided then\n",
+ "p=dell*E*(L*10**3)**-1\n",
+ "\n",
+ "#When a gap of 2 mm is provided,then free expansion prevented is\n",
+ "dell_1=dell-gamma\n",
+ "p2=dell_1*E*(L*10**3)**-1\n",
+ "\n",
+ "#When stress is developed,then gap left is\n",
+ "gamma2=-(sigma*L*10**3*E**-1-dell)\n",
+ "\n",
+ "#Result\n",
+ "print\"The minimum gap between the two rails is\",round(dell,2),\"mm\"\n",
+ "print\"Thermal Developed in the rials if:No expansionn joint is provided:p\",round(p,2),\"N/mm**2\"\n",
+ "print\" :If a gap of is provided then :p2\",round(p2,2),\"N/mm**2\"\n",
+ "print\"When stress is developed gap left between the rails is\",round(gamma2,2),\"mm\""
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "The minimum gap between the two rails is 3.02 mm\n",
+ "Thermal Developed in the rials if:No expansionn joint is provided:p 48.0 N/mm**2\n",
+ " :If a gap of is provided then :p2 16.25 N/mm**2\n",
+ "When stress is developed gap left between the rails is 1.76 mm\n"
+ ]
+ }
+ ],
+ "prompt_number": 22
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 2.2.31,Page No.45"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "import numpy as np\n",
+ "\n",
+ "#Initilization of Variables\n",
+ "\n",
+ "t=20 #degree celsius\n",
+ "E_a=70*10**9 #N/mm**2 #Modulus of Elasticicty of aluminium\n",
+ "alpha_a=11*10**-6 #per degree celsius #Temperature coeff of aluminium\n",
+ "alpha_s=12*10**-6 #Per degree celsius #Temperature coeff of steel\n",
+ "L_a=1000 #mm #Length of aluminium \n",
+ "L_s=3000 #mm #Length of steel\n",
+ "E_a=7*10**4 #N/mm**2 #Modulus of Elasticity of aluminium\n",
+ "E_s=2*10**5 #N/mm*2 #Modulus of Elasticity of steel\n",
+ "A_a=600 #mm**2 #Area of aluminium\n",
+ "A_s=300 #mm**2 #Area of steel\n",
+ "\n",
+ "#Calculations\n",
+ "\n",
+ "#Free Expansion \n",
+ "dell=alpha_a*t*L_a+alpha_s*t*L_s\n",
+ " \n",
+ "#support Reaction\n",
+ "P=dell*(L_a*(A_a*E_a)**-1+L_s*(A_s*E_s)**-1)**-1\n",
+ "\n",
+ "#Result\n",
+ "print\"Reaction at support is\",round(P,2),\"N\""
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Reaction at support is 12735.48 N\n"
+ ]
+ }
+ ],
+ "prompt_number": 23
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 2.2.33,Page No.48"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "import numpy as np\n",
+ "\n",
+ "#Initilization of Variables\n",
+ "\n",
+ "D=25 #mm #Diameter of Brass\n",
+ "De=50 #mm #External Diameter of steel tube\n",
+ "Di=25 #mm #Internal Diameter of steel tube\n",
+ "L=1.5 #m #Length of both bars\n",
+ "t1=30 #degree celsius #Initial Temperature\n",
+ "t2=100 #degree celsius #final Temperature\n",
+ "E_s=2*10**5 #N/mm**2 #Modulus of ELasticity of steel bar\n",
+ "E_b=1*10**5 #N/mm**2 #Modulus of Elasticity of brass bar\n",
+ "alpha_s=11.6*10**-6 #Temperature Coeff of steel\n",
+ "alpha_b=18.7*10**-6 #Temperature coeff of brass bar\n",
+ "d=20 #mm #diameter of pins\n",
+ "\n",
+ "#Calculations\n",
+ "\n",
+ "t=t2-t1 #Temperature Difference\n",
+ "A_s=pi*4**-1*(De**2-Di**2) #mm**2 #Area of steel\n",
+ "A_b=pi*4**-1*D**2 #mm**2 #Area of brass\n",
+ "\n",
+ "#Let P_b be the tensile force in brass bar and P_s be the compressive force in steel bar\n",
+ "#But from Equilibrium of Forces \n",
+ "#P_b=P_s=P\n",
+ "\n",
+ "#Let dell=dell_s+dell_b\n",
+ "dell=(alpha_b-alpha_s)*t*L*1000\n",
+ "\n",
+ "P=dell*(1*(A_s*E_s)**-1+1*(A_b*E_b)**-1)**-1*(L*1000)**-1\n",
+ "P_b=P_s=P\n",
+ "\n",
+ "#Stress in steel\n",
+ "sigma_s=P_s*A_s**-1\n",
+ "\n",
+ "#Stress in Brass\n",
+ "sigma_b=P_b*A_b**-1\n",
+ "\n",
+ "#Area of Pins\n",
+ "A_p=pi*4**-1*d**2\n",
+ "\n",
+ "#Since,the force is resisted by two cross section of pins\n",
+ "tou=P*(2*A_p)**-1\n",
+ " \n",
+ "#Result\n",
+ "print\"Stress in steel bar is\",round(sigma_s,2),\"N/mm**2\"\n",
+ "print\"Stress in Brass bar is\",round(sigma_b,2),\"N/mm**2\"\n",
+ "print\"Shear Stresss induced in pins is\",round(tou,2),\"N/mm**2\""
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Stress in steel bar is 14.2 N/mm**2\n",
+ "Stress in Brass bar is 42.6 N/mm**2\n",
+ "Shear Stresss induced in pins is 33.28 N/mm**2\n"
+ ]
+ }
+ ],
+ "prompt_number": 24
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 2.2.34,Page No.49"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "import numpy as np\n",
+ "\n",
+ "#Initilization of Variables\n",
+ "\n",
+ "b_s=60 #mm #width of steel Bar\n",
+ "t_s=10 #mm #thickness of steel Bar\n",
+ "b_c=40 #mm #width of copper bar\n",
+ "t_c=5 #mm #thickness of copper bar\n",
+ "E_s=2*10**5 #N/mm**2 #Modulus of Elasticity of steel bar\n",
+ "E_c=1*10**5 #N/mm**2 #Modulus of Elasticity of copper bar\n",
+ "alpha_s=12*10**-6 #Per degree celsius #Temperature coeff of steel bar\n",
+ "alpha_c=17*10**-6 #Per degree celsius #Temperature coeff of copper bar\n",
+ "L_s=L_c=L=1000 #mm #Length of bar\n",
+ "t=80 #degree celsius\n",
+ "\n",
+ "#Calculations\n",
+ "\n",
+ "A_s=b_s*t_s #Area of steel bar\n",
+ "A_c=b_c*t_c #Area of copper bar\n",
+ "\n",
+ "#Let P_s be the tensile force in steel bar and P_c be the compressive force in copper bar\n",
+ "#The equilibrium of forces gives \n",
+ "#P_s=2*P_c\n",
+ "\n",
+ "#Let dell=dell_s+dell_b\n",
+ "dell=(alpha_c-alpha_s)*t\n",
+ "\n",
+ "P_c=dell*(2*(A_s*E_s)**-1+1*(A_c*E_c)**-1)**-1\n",
+ "P_s=2*P_c\n",
+ "\n",
+ "#Stress in copper \n",
+ "sigma_c=P_c*A_c**-1\n",
+ "\n",
+ "#Stress in steel \n",
+ "sigma_s=P_s*A_s**-1\n",
+ "\n",
+ "#Change in Length of bar\n",
+ "dell_2=alpha_s*t*L+P_s*L_s*(A_s*E_s)**-1\n",
+ "\n",
+ "#result\n",
+ "print\"Stress in copper is\",round(sigma_c,2),\"N/mm**2\"\n",
+ "print\"Stress in steel is\",round(sigma_s,2),\"N/mm**2\"\n",
+ "print\"the change in Length is\",round(dell_2,2),\"mm\""
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Stress in copper is 30.0 N/mm**2\n",
+ "Stress in steel is 20.0 N/mm**2\n",
+ "the change in Length is 1.06 mm\n"
+ ]
+ }
+ ],
+ "prompt_number": 25
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 2.2.35,Page No.50"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "import numpy as np\n",
+ "\n",
+ "#Initilization of Variables\n",
+ "\n",
+ "P=2*10**5 #N #Weight\n",
+ "L=1 #m #Length of each rod\n",
+ "A_c=A_s=A=500 #mm**2 #Area of each rod\n",
+ "t=40 #degree celsius #temperature\n",
+ "E_s=2*10**5 #N/mm**2 #Modulus of Elasticity of steel rod\n",
+ "E_c=1*10**5 #N/mm**2 #modulus of Elastictiy of copper rod\n",
+ "alpha_s=1.2*10**-5 #Per degree Celsius #temp coeff of steel rod\n",
+ "alpha_c=1.8*10**-5 #Per degree Celsius #Temp coeff of copper rod\n",
+ "\n",
+ "#Calculations\n",
+ "\n",
+ "#Let P_s be the force in each one of the copper rods and P_s be the force in steel rod\n",
+ "#2*P_c+P_s=P .....................(1)\n",
+ "\n",
+ "#Extension of copper bar=Extension of steel bar\n",
+ "#P_s*L*(A_s*E_s)**-1=P_c*L*(A_c*E_c)**-1\n",
+ "#after simplifying above equation we get\n",
+ "#P_s=2*P_c ........................(2)\n",
+ "\n",
+ "#Now substituting value of P_s in Equation 1 we get\n",
+ "P_c=P*4**-1\n",
+ "P_s=2*P_c\n",
+ "\n",
+ "#Now EXtension due to copper Load\n",
+ "dell_1=P_c*L*1000*(A_c*E_c)**-1\n",
+ "\n",
+ "#Part-2\n",
+ "\n",
+ "#Due to rise of temperature of40 degree celsius\n",
+ "\n",
+ "#As bars are rigidly joined,let P_c1 be the compressive forccesdeveloped in copper bar and P_s1 be the tensile force in steel causing changes\n",
+ "#P_s1=2*P_c1\n",
+ "\n",
+ "#dell_s+dell_c=(alpha_c-alpha_s)*t*L .......................................(3)\n",
+ "#P_s1*L*(A_s*E_s)**-1+P_c1*L*(A_c*E_c)**-1=(alpha_c-alpha_s)*t*L ................(4)\n",
+ "#After substituting values in above equation and further simplifying we get,\n",
+ "P_c1=(alpha_c-alpha_s)*t*L*(2*(A_s*E_s)**-1+1*(A_c*E_c)**-1)**-1 #.................(5)\n",
+ "P_s1=2*P_c1\n",
+ "\n",
+ "#Extension of bar due to temperature rise\n",
+ "dell_2=alpha_s*t*L+P_s1*L*(A_s*E_s)**-1\n",
+ "\n",
+ "#Amount by which bar will descend\n",
+ "dell_3=dell_1+dell_2\n",
+ "\n",
+ "#Load carried by steel bar\n",
+ "P_S=P_s+P_s1\n",
+ "\n",
+ "#Load carried by copper bar\n",
+ "P_C=P_c-P_c1\n",
+ "\n",
+ "#Part-3\n",
+ "\n",
+ "#Let P_c1_1=P_c #For convenience\n",
+ "#Rise in temperature if Load is to be carried out by steel rod alone\n",
+ "P_c1_1=P_c\n",
+ "\n",
+ "#From equation 5 \n",
+ "t=P_c1_1*(2*(A_s*E_s)**-1+1*(A_c*E_c)**-1)*(alpha_c-alpha_s)**-1\n",
+ "\n",
+ "#result\n",
+ "print\"Extension Due top copper Load\",round(dell_1,2),\"mm\"\n",
+ "print\"Load carried by each rod:P_s\",round(P_s,2),\"N\"\n",
+ "print\" :P_c\",round(P_c,2),\"N\"\n",
+ "print\"Rise in Temperature of steel rod should be\",round(t,2),\"degree Celsius\""
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Extension Due top copper Load 1.0 mm\n",
+ "Load carried by each rod:P_s 100000.0 N\n",
+ " :P_c 50000.0 N\n",
+ "Rise in Temperature of steel rod should be 333.33 degree Celsius\n"
+ ]
+ }
+ ],
+ "prompt_number": 26
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 2.2.36,Page No.53"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "import numpy as np\n",
+ "\n",
+ "#Initilization of Variables\n",
+ "\n",
+ "t=40 #degree celsius #temperature\n",
+ "A_s=400 #mm**2 #Area of steel bar\n",
+ "A_c=600 #mm**2 #Area of copper bar\n",
+ "E_s=2*10**5 #N/mm**2 #Modulus of Elasticity of steel bar\n",
+ "E_c=1*10**5 #N/mm**2 #Modulus of Elasticity of copper bar\n",
+ "alpha_s=12*10**-6 #degree celsius #Temperature coeff of steel bar\n",
+ "alpha_c=18*10**-6 #degree celsius #Temperature coeff of copper bar\n",
+ "L_c=800 #mm #Length of copper bar\n",
+ "L_s=600 #mm #Length of steel bar\n",
+ "\n",
+ "#Calculations\n",
+ "\n",
+ "#Let P_s be the tensile force in steel bar and P_c be the compressive force in copper bar\n",
+ "#Static Equilibrium obtained by taking moment about A\n",
+ "#P_c=2*P_s\n",
+ "\n",
+ "#From property of similar triangles we get\n",
+ "#(alpha_c*Lc-dell_c)*1**-1=(alpha_s*L_s-dell_s)*2**-1\n",
+ "#After substituting values in above equations and further simplifying we get\n",
+ "P_s=(2*alpha_c*L_c-alpha_s*L_s)*t*(L_s*(A_s*E_s)**-1+4*L_c*(A_c*E_c)**-1)**-1\n",
+ "P_c=2*P_s\n",
+ "\n",
+ "#Stress in steel rod\n",
+ "sigma_s=P_s*A_s**-1 #N/mm**2 \n",
+ "\n",
+ "#Stress in copper rod\n",
+ "sigma_c=P_c*A_c**-1 #N/mm**2\n",
+ "\n",
+ "#Result\n",
+ "print\"Stress in steel rod is\",round(sigma_s,2),\"N/mm**2\"\n",
+ "print\"STress in copper rod is\",round(sigma_c,2),\"N/mm**2\""
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Stress in steel rod is 35.51 N/mm**2\n",
+ "STress in copper rod is 47.34 N/mm**2\n"
+ ]
+ }
+ ],
+ "prompt_number": 4
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 2.2.37,Page No.61"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "import numpy as np\n",
+ "\n",
+ "#Initilization of Variables\n",
+ "\n",
+ "d=20 #mm #Diameter of bar\n",
+ "P=37.7*10**3 #N #Load\n",
+ "L=200 #mm #Guage Length \n",
+ "dell=0.12 #mm #Extension\n",
+ "dell_d=0.0036 #mm #contraction in diameter\n",
+ "\n",
+ "#Calculations\n",
+ "\n",
+ "#Area of bar\n",
+ "A=pi*4**-1*d**2\n",
+ "\n",
+ "#Let s and dell_s be the Linear strain and Lateral strain\n",
+ "s=dell*L**-1\n",
+ "dell_s=dell_d*d**-1\n",
+ "mu=dell_s*s**-1 #Poissoin's ratio \n",
+ "\n",
+ "#dell=P*L*(A*E)**-1\n",
+ "E=P*L*(dell*A)**-1 #N/mm**2 #Modulus of Elasticity of bar\n",
+ "\n",
+ "#Modulus of Rigidity\n",
+ "G=E*(2*(1+mu))**-1 #N/mm**2\n",
+ "\n",
+ "#Bulk Modulus \n",
+ "K=E*(3*(1-2*mu))**-1 #N/mm**2\n",
+ "\n",
+ "#result\n",
+ "print\"Poisson's ratio is\",round(mu,2)\n",
+ "print\"The Elastic constant are:E\",round(E,2)\n",
+ "print\" :G\",round(G,2)\n",
+ "print\" :K\",round(K,2)"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Poisson's ratio is 0.3\n",
+ "The Elastic constant are:E 200004.71\n",
+ " :G 76924.89\n",
+ " :K 166670.59\n"
+ ]
+ }
+ ],
+ "prompt_number": 13
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 2.2.38,Page No.62"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "import numpy as np\n",
+ "\n",
+ "#Initilization of Variables\n",
+ "\n",
+ "d=100 #mm #Diameter of circular rod\n",
+ "P=1*10**6 #N #Tensile Force\n",
+ "mu=0.3 #Poisson's ratio\n",
+ "E=2*10**5 #N/mm**2 #Young's Modulus \n",
+ "L=500 #mm #Length of rod\n",
+ "\n",
+ "#Calculations\n",
+ "\n",
+ "#Modulus of Rigidity\n",
+ "G=E*(2*(1+mu))**-1 #N/mm**2\n",
+ "\n",
+ "#Bulk Modulus \n",
+ "K=E*(3*(1-2*mu))**-1 #N/mm**2\n",
+ "\n",
+ "A=pi*4**-1*d**2 #mm**2 #Area of Circular rod\n",
+ "#Let sigma be the Longitudinal stress\n",
+ "sigma=P*A**-1 #N/mm**2 \n",
+ "\n",
+ "s=sigma*E**-1 #Linear strain\n",
+ "e_x=s\n",
+ "\n",
+ "#Volumetric strain\n",
+ "e_v=e_x*(1-2*mu)\n",
+ "\n",
+ "v=pi*4**-1*d**2*L\n",
+ "#Change in VOlume\n",
+ "dell_v=e_v*v\n",
+ "\n",
+ "#Result\n",
+ "print\"Bulk Modulus is\",round(E,2),\"N/mm**2\"\n",
+ "print\"Modulus of Rigidity is\",round(G,2),\"N/mm**2\"\n",
+ "print\"The change in Volume is\",round(dell_v,2),\"mm**3\""
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Bulk Modulus is 200000.0 N/mm**2\n",
+ "Modulus of Rigidity is 76923.08 N/mm**2\n",
+ "The change in Volume is 1000.0 mm**3\n"
+ ]
+ }
+ ],
+ "prompt_number": 21
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 2.2.39,Page No.62"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "import numpy as np\n",
+ "\n",
+ "#Initilization of Variables\n",
+ "\n",
+ "L=500 #mm #Length of rectangular cross section bar\n",
+ "A=20*40 #mm**2 #Area of rectangular cross section bar\n",
+ "P1=4*10**4 #N #Tensile Force on 20mm*40mm Faces\n",
+ "P2=2*10**5 #N #compressive force on 20mm*500mm Faces\n",
+ "P3=3*10**5 #N #Tensile Force on 40mm*500mm Faces\n",
+ "E=2*10**5 #N/mm**2 #young's Modulus \n",
+ "mu=0.3 #Poisson's Ratio\n",
+ "\n",
+ "#Calculations\n",
+ "\n",
+ "#Let P_x,P_y,P_z be the forces n x,y,z directions\n",
+ "\n",
+ "P_x=P1*A**-1\n",
+ "P_y=P2*A**-1\n",
+ "P_z=P3*A**-1\n",
+ "\n",
+ "#Let e_x,e_y,e_z be the strains in x,y,z directions\n",
+ "e_x=1*E**-1*(50+mu*20-15*mu)\n",
+ "e_y=1*E**-1*(-mu*50-20-mu*15)\n",
+ "e_z=1*E**-1*(-mu*50+mu*20+15)\n",
+ "\n",
+ "#Volumetric strain\n",
+ "e_v=e_x+e_y+e_z\n",
+ "\n",
+ "#Volume\n",
+ "V=20*40*500 #mm**3\n",
+ "#Change in Volume \n",
+ "dell_v=e_v*V #mm**3\n",
+ "\n",
+ "#Result\n",
+ "print\"The change in Volume is\",round(dell_v,2),\"mm**3\""
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "The change in Volume is 36.0 mm**3\n"
+ ]
+ }
+ ],
+ "prompt_number": 2
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 2.2.41,Page No.65"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "import numpy as np\n",
+ "\n",
+ "#Initilization of Variables\n",
+ "\n",
+ "E=2.1*10**5 #N/mm**2 #Young's Modulus \n",
+ "G=0.78*10**5 #N/mm**2 #Modulus of Rigidity\n",
+ "\n",
+ "#Calculations\n",
+ "\n",
+ "#Now using the relation\n",
+ "#E=2*G*(1+mu)\n",
+ "mu=E*(2*G)**-1-1 #Poisson's ratio\n",
+ "\n",
+ "#Bulk Modulus \n",
+ "K=E*(3*(1-2*mu))**-1 #N/mm**2\n",
+ "\n",
+ "\n",
+ "#Result\n",
+ "print\"The Poisson's Ratio is\",round(mu,2)\n",
+ "print\"The modulus of Rigidity\",round(K,2),\"N/mm**2\""
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "The Poisson's Ratio is 0.35\n",
+ "The modulus of Rigidity 227500.0 N/mm**2\n"
+ ]
+ }
+ ],
+ "prompt_number": 5
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 2.2.42,Page No.65"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "import numpy as np\n",
+ "\n",
+ "#Initilization of Variables\n",
+ "\n",
+ "G=0.4*10**5 #N/mm**2 #Modulus of rigidity\n",
+ "K=0.75*10**5 #N/mm**2 #Bulk Modulus \n",
+ "\n",
+ "#Calculations\n",
+ "\n",
+ "#Young's Modulus\n",
+ "E=9*G*K*(3*K+G)**-1\n",
+ "\n",
+ "#Now from the relation\n",
+ "#E=2*G(1+2*mu)\n",
+ "mu=E*(2*G)**-1-1 #POissoin's ratio \n",
+ "\n",
+ "#result\n",
+ "print\"Young's modulus is\",round(E,2),\"N/mm**2\"\n",
+ "print\"Poissoin's ratio is\",round(mu,2)"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Young's modulus is 101886.79 N/mm**2\n",
+ "Poissoin's ratio is 0.27\n"
+ ]
+ }
+ ],
+ "prompt_number": 25
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 2.2.43,Page No.65"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "import numpy as np\n",
+ "\n",
+ "#Initilization of Variables\n",
+ "\n",
+ "b=60 #mm #width of bar\n",
+ "d=30 #mm #depth of bar\n",
+ "L=200 #mm #Length of bar\n",
+ "A=30*60 #mm**2 #Area of bar\n",
+ "A2=30*200 #mm**2 #Area of bar along which expansion is restrained\n",
+ "P=180*10**3 #N #Compressive force\n",
+ "E=2*10**5 #N/mm**2 #Young's Modulus\n",
+ "mu=0.3 #Poissoin's ratio\n",
+ "\n",
+ "#Calculations\n",
+ "\n",
+ "#The bar is restrained from expanding in Y direction\n",
+ "P_z=0\n",
+ "P_x=P*A**-1 #stress developed in x direction\n",
+ "\n",
+ "#Now taking compressive strain as positive\n",
+ "#e_x=P_x*E**-1-mu*P_y*E**-1 .......................(1)\n",
+ "#e_y=-mu*P_x*E**-1+P_y*E**-1 ....................(2)\n",
+ "#e_z=-mu*P_x*E**-1-mu*P_y*E**-1 ......................(3)\n",
+ "\n",
+ "#Part-1\n",
+ "#When it is fully restrained\n",
+ "e_y=0\n",
+ "P_y=30 #N/mm**2 \n",
+ "e_x=P_x*E**-1-mu*P_y*E**-1\n",
+ "e_z=-mu*P_x*E**-1-mu*P_y*E**-1\n",
+ "\n",
+ "#Change in Length \n",
+ "dell_l=e_x*L #mm\n",
+ "\n",
+ "#Change in width\n",
+ "dell_b=b*e_y\n",
+ "\n",
+ "#change in Depth\n",
+ "dell_d=d*e_z\n",
+ "\n",
+ "#Volume of bar\n",
+ "V=b*d*L #mm**3\n",
+ "#Change in Volume\n",
+ "e_v=(e_x+e_y+e_z)*V #mm**3\n",
+ "\n",
+ "#Part-2\n",
+ "#When 50% is restrained\n",
+ "\n",
+ "#Free strain in Y direction\n",
+ "e_y1=mu*P_x*E**-1\n",
+ "\n",
+ "#As 50% is restrained,so\n",
+ "e_y2=-50*100**-1*e_y1\n",
+ "\n",
+ "#But form Equation 2 we have e_y=-mu*P_x*E**-1+P_y*E**-1 \n",
+ "#After substituting values in above equation and furthe simplifying we get\n",
+ "P_y=e_y2*E+d\n",
+ "\n",
+ "e_x2=P_x*E**-1-mu*P_y*E**-1 \n",
+ "e_z2=-mu*P_x*E**-1-mu*P_y*E**-1\n",
+ "\n",
+ "#Change in Length \n",
+ "dell_l2=e_x2*L #mm\n",
+ "\n",
+ "#Change in width\n",
+ "dell_b2=b*e_y2\n",
+ "\n",
+ "#change in Depth\n",
+ "dell_d2=d*e_z2\n",
+ "\n",
+ "#Change in Volume\n",
+ "e_v2=(e_x2+e_y2+e_z2)*V #mm**3\n",
+ "\n",
+ "#REsult\n",
+ "print\"Change in Dimension of bar is:dell_l\",round(dell_l,2),\"mm\"\n",
+ "print\" :dell_b\",round(dell_b,4),\"mm\"\n",
+ "print\" :dell_d\",round(dell_d,2),\"mm\"\n",
+ "print\"Change in Volume is\",round(e_v,2),\"mm**3\"\n",
+ "print\"Changes in material when only 50% of expansion can be reatrained:dell_l2\",round(dell_l2,2),\"mm\"\n",
+ "print\" :dell_b2\",round(dell_b2,4),\"mm\"\n",
+ "print\" :dell_d2\",round(dell_d2,2),\"mm\""
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Change in Dimension of bar is:dell_l 0.09 mm\n",
+ " :dell_b 0.0 mm\n",
+ " :dell_d -0.01 mm\n",
+ "Change in Volume is 93.6 mm**3\n",
+ "Changes in material when only 50% of expansion can be reatrained:dell_l2 0.1 mm\n",
+ " :dell_b2 -0.0045 mm\n",
+ " :dell_d2 -0.01 mm\n"
+ ]
+ }
+ ],
+ "prompt_number": 23
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 2.2.44,Page No.72"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "import numpy as np\n",
+ "\n",
+ "#Initilization of Variables\n",
+ "\n",
+ "P=10*10**3 #N #Load\n",
+ "E=2*10**5 #N/mm**2 #Young's Modulus\n",
+ "d2=12 #mm #Diameter of bar1\n",
+ "d1=16 #mm #diameter of bar2\n",
+ "L1=200 #mm #Length of bar1\n",
+ "L2=500 #mm #Length of bar2\n",
+ "\n",
+ "#Calculations\n",
+ "\n",
+ "#Let A1 and A2 be the cross Area of Bar1 & bar2 respectively\n",
+ "A1=pi*4**-1*d1**2 #mm**2\n",
+ "A2=pi*4**-1*d2**2 #mm**2\n",
+ "\n",
+ "#Let p1 and p2 be the stress in Bar1 nad bar2 respectively\n",
+ "p1=P*A1**-1 #N/mm**2\n",
+ "p2=P*A2**-1 #N/mm**2\n",
+ "\n",
+ "#Let V1 nad V2 be the Volume of of Bar1 and Bar2\n",
+ "V1=A1*(L1+L1)\n",
+ "V2=A2*L2\n",
+ "\n",
+ "#Let E be the strain Energy stored in the bar\n",
+ "E=p1**2*(2*E)**-1*V1+p2**2*V2*(2*E)**-1\n",
+ "\n",
+ "#result\n",
+ "print\"The Strain Energy stored in Bar is\",round(E,2),\"N-mm\""
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "The Strain Energy stored in Bar is 1602.6 N-mm\n"
+ ]
+ }
+ ],
+ "prompt_number": 74
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 2.2.45,Page No.73"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "import numpy as np\n",
+ "\n",
+ "#Initilization of Variables\n",
+ "\n",
+ "#Bar-A\n",
+ "d1=30 #mm #Diameter of bar1\n",
+ "L=600 #mm #length of bar1\n",
+ "\n",
+ "#Bar-B\n",
+ "d2=30 #mm #Diameter of bar2\n",
+ "d3=20 #mm #Diameter of bar2\n",
+ "L2=600 #mm #length of bar2\n",
+ "\n",
+ "#Calculations\n",
+ "\n",
+ "#Area of bar-A\n",
+ "A1=pi*4**-1*d1**2\n",
+ "\n",
+ "#Area of bar-B\n",
+ "A2=pi*4**-1*d2**2\n",
+ "A3=pi*4**-1*d3**2\n",
+ "\n",
+ "#let SE be the Strain Energy\n",
+ "#Strain Energy stored in Bar-A\n",
+ "#SE=p**2*(2*E)**-1*V\n",
+ "#After substituting values and simolifying further we get\n",
+ "#SE=P**2*E**-1*0.4244\n",
+ "\n",
+ "#Strain Energy stored in Bar-B\n",
+ "#SE2=p1**2*V1*(2*E)**-1+p2**2*V2*(2*E)**-1\n",
+ "#After substituting values and simolifying further we get\n",
+ "#SE2=0.6897*P**2*E**-1\n",
+ "\n",
+ "#Let X be the ratio of SE in Bar-B and SE in Bar-A\n",
+ "X=0.6897*0.4244**-1\n",
+ "\n",
+ "#Part-2\n",
+ "\n",
+ "#When Max stress is produced is same:Let p be the max stress produced\n",
+ "\n",
+ "#Stress in bar A is p throughout \n",
+ "#In bar B:stress in 20mm dia.portion=p2=p\n",
+ "\n",
+ "#Stress in 30 mm dia.portion\n",
+ "#p1=P*A2*A3**-1\n",
+ "#After substituting values and simolifying further we get\n",
+ "#p1=4*9**-1*p\n",
+ "\n",
+ "#Strain Energy in bar A\n",
+ "#SE_1=p**2*(2*E)**-1*A1*L1\n",
+ "#After substituting values and simolifying further we get\n",
+ "#SE_1=67500*p**2*pi*E**-1\n",
+ "\n",
+ "#Strain Energy in bar B\n",
+ "#SE_2=p1**2*V1*(2*E)**-1+p2**2*V2*(2*E)**-1\n",
+ "#After substituting values and simolifying further we get\n",
+ "#SE_2=21666.67*pi*p**2*E**-1\n",
+ "\n",
+ "#Let Y be the Ratio of SE in bar B and SE in bar A\n",
+ "Y=21666.67*67500**-1\n",
+ "\n",
+ "#result\n",
+ "print\"Gradually applied Load is\",round(X,2)\n",
+ "print\"Gradually applied Load is\",round(Y,2)"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Gradually applied Load is 1.63\n",
+ "Gradually applied Load is 0.32\n"
+ ]
+ }
+ ],
+ "prompt_number": 4
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 2.2.46,Page No.74"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "import numpy as np\n",
+ "\n",
+ "#Initilization of Variables \n",
+ "\n",
+ "W=100 #N #Load\n",
+ "E=2*10**5 #N/mm**2 #Young's Modulus \n",
+ "h=60 #mm #Height through Load falls down\n",
+ "L=400 #mm #Length of collar\n",
+ "d=30 #mm #diameter of bar\n",
+ "\n",
+ "#Calculations\n",
+ "\n",
+ "A=pi*4**-1*d**2 #mm**2 #Area of bar\n",
+ "\n",
+ "#Instantaneous stress produced is\n",
+ "p=W*A**-1*(1+(1+(2*A*E*h*(W*L)**-1))**0.5)\n",
+ "\n",
+ "#Now the EXtension of the bar is neglected in calculating work doneby the Load,then\n",
+ "P=(2*E*h*W*(A*L)**-1)**0.5\n",
+ "\n",
+ "#Let percentage error be denoted by E1\n",
+ "#Percentage error in approximating is\n",
+ "E1=(p-P)*p**-1*100\n",
+ "\n",
+ "#Instantaneous Extension produced is\n",
+ "dell_l=round(P,3)*E**-1*L\n",
+ "\n",
+ "#Result\n",
+ "print\"The Instantaneous stress is\",round(p,2),\"N/mm\"\n",
+ "print\"Percentage Error is\",round(E1,2)\n",
+ "print\"The Instantaneous extension is\",round(dell_l,2),\"mm\""
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "The Instantaneous stress is 92.27 N/mm\n",
+ "Percentage Error is 0.15\n",
+ "The Instantaneous extension is 0.18 mm\n"
+ ]
+ }
+ ],
+ "prompt_number": 23
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 2.2.47,Page No.75"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "import numpy as np\n",
+ "\n",
+ "#Initilization of Variables\n",
+ "\n",
+ "d=20 #mm #Diameter of steel bar\n",
+ "L=1000 #mm #Length of bar\n",
+ "E=2*10**5 #N/mm**2 #Young's Modulus \n",
+ "p=300 #N/mm**2 #max Permissible stress\n",
+ "h=50 #mm #Height through which weight will fall\n",
+ "w=600 #N #Load\n",
+ "\n",
+ "#Calculations\n",
+ "\n",
+ "#ARea of steel bar\n",
+ "A=pi*4**-1*d**2\n",
+ "\n",
+ "#Instantaneous extension is\n",
+ "dell_l=p*L*E**-1 #mm \n",
+ "\n",
+ "#Work done by Load \n",
+ "#W=W1*(h+dell_l)\n",
+ "\n",
+ "#Volume of bar\n",
+ "V=round(A,2)*L\n",
+ "#Let E1 be the strain Energy\n",
+ "E1=p**2*(2*E)**-1*V\n",
+ "\n",
+ "#Answer in Book for Strain Energy is Incorrect \n",
+ "\n",
+ "#Now Equating Workdone by Load to strain Energy \n",
+ "W1=E1*51.5**-1\n",
+ "\n",
+ "#Now when w=600 N\n",
+ "#Let W2 be the Work done by the Load\n",
+ "#W2=w(h2*dell_l)\n",
+ "\n",
+ "h=E1*w**-1-dell_l\n",
+ "\n",
+ "#Result\n",
+ "print\"The Max Lodad which can Fall from a height of 50 mm on the collar is\",round(W1,2),\"N\"\n",
+ "print\"the Max Height from which a 600 N Load can fall on the collar is\",round(h,2),\"mm\""
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "The Max Lodad which can Fall from a height of 50 mm on the collar is 1372.54 N\n",
+ "the Max Height from which a 600 N Load can fall on the collar is 116.31 mm\n"
+ ]
+ }
+ ],
+ "prompt_number": 40
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 2.2.48,Page No.76"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "import numpy as np\n",
+ "\n",
+ "#Initilization of Variables\n",
+ "\n",
+ "D_s=30 #mm #Diameter of steel rod\n",
+ "d=30 #mm #Internal Diameter of copper tube\n",
+ "D=40#mm #External Diameter of copper tube\n",
+ "E_s=2*10**5 #N/mm**2 #Young's Modulus of Steel rod\n",
+ "E_c=1*10**5#N/mm**2 #Young's Modulus of copper tube\n",
+ "P=100 #N #Load\n",
+ "h=40 #mm #height from which Load falls\n",
+ "L=800 #mm #Length \n",
+ "\n",
+ "#Calculations\n",
+ "\n",
+ "#Area of steel rod\n",
+ "A_s=pi*4**-1*D_s**2\n",
+ "\n",
+ "#Area of copper tube\n",
+ "A_c=pi*4**-1*(D**2-d**2)\n",
+ "\n",
+ "#But Dell_s=dell_c=dell\n",
+ "#p_s*E_s**-1*L=p_c*L*E_c\n",
+ "#After simplifying furthe we get\n",
+ "#p_s=2*p_c\n",
+ "\n",
+ "#Now Equating internal Energy to Workdone we get\n",
+ "p_c=(2*P*h*L**-1*(4*A_s*E_s**-1+A_c*E_c**-1))**0.5\n",
+ "p_s=2*p_c\n",
+ "\n",
+ "#Result\n",
+ "print A_s\n",
+ "print\"STress produced in steel is\",round(p_s,2),\"N/mm**2\"\n",
+ "print\"STress produced in copper is\",round(p_c,2),\"N/mm**2\""
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "706.858347058\n",
+ "STress produced in steel is 0.89 N/mm**2\n",
+ "STress produced in copper is 0.44 N/mm**2\n"
+ ]
+ }
+ ],
+ "prompt_number": 9
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 2.2.49,Page No.77"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "import numpy as np\n",
+ "\n",
+ "dell=0.25 #mm #Instantaneous Extension\n",
+ "\n",
+ "#Bar-A\n",
+ "b1=25 #mm #width of bar\n",
+ "D1=500 #mm #Depth of bar\n",
+ "\n",
+ "#Bar-B\n",
+ "b2_1=25 #mm #width of upper bar\n",
+ "b2_2=15 #mm #Width of Lower Bar\n",
+ "L2=200 #mm #Length of upper bar\n",
+ "L1=300 #mm #Length of Lower bar\n",
+ "\n",
+ "E=2*10**5 #N/mm**2 #Young's Modulus of bar\n",
+ "\n",
+ "#Calculations\n",
+ "\n",
+ "#Strain\n",
+ "e=dell*D1**-1 \n",
+ "\n",
+ "#Load\n",
+ "p=e*E\n",
+ "\n",
+ "#Area of bar-A\n",
+ "A=pi*4**-1*25**2\n",
+ "\n",
+ "#Volume of bar-A\n",
+ "V=A*D1\n",
+ "\n",
+ "#Let E1 be the Energy of Blow\n",
+ "#Energy of Blow\n",
+ "E1=p**2*(E)**-1*V\n",
+ "\n",
+ "#Let p2 be the Max stress in bar B When this blow is applied.\n",
+ "#the max stress occurs in the 15mm dia. portion,Hence, the stress in 25 mm dia.portion is\n",
+ "#p2*pi*4**-1*b2_2**2*(pi*4**-1*b2_2**2=0.36*p\n",
+ "\n",
+ "#Strain Energy of bar B\n",
+ "#E2=p**2*(2*E)**-1*v1+1*(2*E)**-1*(0.36*p2)**2*v2\n",
+ "#After substituting values and Further substituting values we get\n",
+ "#E2=0.1643445*p2**2\n",
+ "\n",
+ "#Equating it to Energy of applied blow,we get\n",
+ "p2=(12271.846*0.1643445**-1)**0.5\n",
+ "\n",
+ "#Stress in top portion\n",
+ "sigma=0.36*p2\n",
+ "\n",
+ "#Extension in Bar-1\n",
+ "dell_1=p2*E**-1*L1\n",
+ "\n",
+ "#Extension in Bar-2\n",
+ "dell_2=0.36*p2*E**-1*L2\n",
+ "\n",
+ "#Extension of bar\n",
+ "dell_3=dell_1+dell_2\n",
+ "\n",
+ "#Result\n",
+ "print\"Instantaneous Max stress is\",round(sigma,2),\"N/mm**2\"\n",
+ "print\"extension in Bar is\",round(dell_3,2),\"mm\""
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Instantaneous Max stress is 98.37 N/mm**2\n",
+ "extension in Bar is 0.51 mm\n"
+ ]
+ }
+ ],
+ "prompt_number": 1
+ }
+ ],
+ "metadata": {}
+ }
+ ]
+}
\ No newline at end of file diff --git a/Strength_Of_Materials_by_S_S_Bhavikatti/chapter_no.3_QseVBHY.ipynb b/Strength_Of_Materials_by_S_S_Bhavikatti/chapter_no.3_QseVBHY.ipynb new file mode 100644 index 00000000..a051919c --- /dev/null +++ b/Strength_Of_Materials_by_S_S_Bhavikatti/chapter_no.3_QseVBHY.ipynb @@ -0,0 +1,1601 @@ +{
+ "metadata": {
+ "name": "chapter no.3.ipynb"
+ },
+ "nbformat": 3,
+ "nbformat_minor": 0,
+ "worksheets": [
+ {
+ "cells": [
+ {
+ "cell_type": "heading",
+ "level": 1,
+ "metadata": {},
+ "source": [
+ "Chapter 3:Shear Force And Bending Moment Diagrams in Statically Determinate Beams"
+ ]
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 3.3.1,Page No.100"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "import numpy as np\n",
+ "%matplotlib inline\n",
+ "\n",
+ "#Initilization of Variables\n",
+ "\n",
+ "L_AC=L_CD=1 #m #Length of AC & CD\n",
+ "L_DB=1.5 #m #Lengh of DB\n",
+ "L=3.5 #m #Length of Beam\n",
+ "F_B=10 #KN #Force at pt B\n",
+ "F_C=F_D=20 #KN #Force at pt C & D\n",
+ "\n",
+ "#Calculations\n",
+ "\n",
+ "R_A=F_C+F_D+F_B #KN #Force at support A \n",
+ "\n",
+ "#Shear Force Calculations\n",
+ "\n",
+ "#S.F At pt B\n",
+ "V_B1=0 #KN \n",
+ "V_B2=F_B #KN\n",
+ "\n",
+ "#S.F At pt D\n",
+ "V_D1=V_B2 #KN\n",
+ "V_D2=V_D1+F_D #KN\n",
+ "\n",
+ "#S.F At pt C \n",
+ "V_C1=V_D2 #KN\n",
+ "V_C2=V_D2+F_C #KN\n",
+ "\n",
+ "#S.F At Pt A\n",
+ "V_A1=V_C2 #KN\n",
+ "V_A2=V_C2-R_A #KN\n",
+ "\n",
+ "#Bending Moment Calculations\n",
+ "\n",
+ "#B.M At Pt B\n",
+ "M_B=0 #KN.m\n",
+ "\n",
+ "#B.M AT Pt D\n",
+ "M_D=F_B*L_DB #KN.m\n",
+ "\n",
+ "#B.M At pt C\n",
+ "M_C=F_B*(L_DB+L_CD)+F_D*L_CD #KN.m\n",
+ "\n",
+ "#B.M At pt A\n",
+ "M_A=F_B*L+F_D*(L_CD+L_AC)+F_C*L_AC\n",
+ "\n",
+ "#Result\n",
+ "print \"The Shear Force and Bending Moment Diagrams are the results\"\n",
+ "\n",
+ "#Plotting the Shear Force Diagram\n",
+ "\n",
+ "X1=[0,0,L_DB,L_DB,L_CD+L_DB,L_CD+L_DB,L_CD+L_DB+L_AC,L_CD+L_DB+L_AC]\n",
+ "Y1=[V_B1,V_B2,V_D1,V_D2,V_C1,V_C2,V_A1,V_A2]\n",
+ "Z1=[0,0,0,0,0,0,0,0]\n",
+ "plt.plot(X1,Y1,X1,Z1)\n",
+ "plt.xlabel(\"Length x in m\")\n",
+ "plt.ylabel(\"Shear Force in kN\")\n",
+ "plt.show()\n",
+ "\n",
+ "#Plotting the Bendimg Moment Diagram\n",
+ "\n",
+ "Y2=[M_B,M_D,M_C,M_A]\n",
+ "X2=[0,L_DB,L_DB+L_CD,L_AC+L_CD+L_DB]\n",
+ "Z2=[0,0,0,0]\n",
+ "plt.plot(X2,Y2,X2,Z2)\n",
+ "plt.xlabel(\"Length in m\")\n",
+ "plt.ylabel(\"Bending Moment in kN.m\")\n",
+ "plt.show()"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "The Shear Force and Bending Moment Diagrams are the results\n"
+ ]
+ },
+ {
+ "metadata": {},
+ "output_type": "display_data",
+ "png": "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\n",
+ "text": [
+ "<matplotlib.figure.Figure at 0x4e80390>"
+ ]
+ },
+ {
+ "metadata": {},
+ "output_type": "display_data",
+ "png": "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\n",
+ "text": [
+ "<matplotlib.figure.Figure at 0x55ec610>"
+ ]
+ }
+ ],
+ "prompt_number": 1
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 3.3.2,Page No.101"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "import numpy as np\n",
+ "%matplotlib inline\n",
+ "\n",
+ "#Initilization of Variables\n",
+ "\n",
+ "w1=10 #KN/m #u.d.L\n",
+ "F_D=20 #KN #Force at pt D\n",
+ "F_C=30 #KN #Force at pt C\n",
+ "L_DB=4 #m #Length of DB\n",
+ "L_CD=L_AC=2 #m #Length of AC & CD\n",
+ "L=8 #m #Length of Beam\n",
+ "\n",
+ "#Calculations\n",
+ "\n",
+ "#Let R_A And R_B be the Reactions at pt A and B \n",
+ "#R_A+R_B=90 \n",
+ "#Now Taking moment at A,M_A we get\n",
+ "R_A=(w1*L_DB*(L_DB*2**-1)+F_D*L_DB+F_C*(L_CD+L_DB))*L**-1\n",
+ "R_B=90-R_A\n",
+ "\n",
+ "#Shear Force Calculations\n",
+ "\n",
+ "#S.F At Pt B\n",
+ "V_B1=0 #KN\n",
+ "V_B2=R_B #KN\n",
+ "\n",
+ "#S.F At pt D\n",
+ "V_D1=R_B-w1*L_DB #KN\n",
+ "V_D2=V_D1-F_D #KN\n",
+ "\n",
+ "#S.F at Pt C\n",
+ "V_C1=V_D2 #KN\n",
+ "V_C2=V_C1-F_C \n",
+ "\n",
+ "#S.F at PT A\n",
+ "V_A1=V_C2 #KN\n",
+ "V_A2=V_C2+R_A #KN\n",
+ "\n",
+ "#Bending Moment Calculations\n",
+ "\n",
+ "#B.M At Pt B\n",
+ "M_B=0 #KN.m\n",
+ "\n",
+ "#B.M At Pt D\n",
+ "M_D=-R_B*L_DB+w1*L_DB*L_DB*2**-1 #KN.m\n",
+ "\n",
+ "#B.M At PT C\n",
+ "M_C=-R_B*(L_DB+L_CD)+w1*L_DB*(L_DB*2**-1+L_CD)+F_D*L_CD #KN.m\n",
+ "\n",
+ "#B.M At Pt A\n",
+ "M_A=-R_B*L+w1*L_DB*(L_DB*2**-1+L_CD+L_AC)+F_D*(L_CD+L_AC)+F_C*L_AC\n",
+ "\n",
+ "#Result\n",
+ "print \"The Shear Force and Bending Moment Diagrams are the results\"\n",
+ "\n",
+ "#Plotting the Shear Force Diagram\n",
+ "\n",
+ "X1=[0,0,L_DB,L_DB,L_CD+L_DB,L_CD+L_DB,L_CD+L_DB+L_AC,L_CD+L_DB+L_AC]\n",
+ "Y1=[V_B1,V_B2,V_D1,V_D2,V_C1,V_C2,V_A1,V_A2]\n",
+ "Z1=[0,0,0,0,0,0,0,0]\n",
+ "plt.plot(X1,Y1,X1,Z1)\n",
+ "plt.xlabel(\"Length x in m\")\n",
+ "plt.ylabel(\"Shear Force in kN\")\n",
+ "plt.show()\n",
+ "\n",
+ "#Plotting the Bendimg Moment Diagram\n",
+ "\n",
+ "Y2=[M_B,M_D,M_C,M_A]\n",
+ "X2=[0,L_DB,L_DB+L_CD,L_AC+L_CD+L_DB]\n",
+ "Z2=[0,0,0,0]\n",
+ "plt.plot(X2,Y2,X2,Z2)\n",
+ "plt.xlabel(\"Length in m\")\n",
+ "plt.ylabel(\"Bending Moment in kN.m\")\n",
+ "plt.show()"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "The Shear Force and Bending Moment Diagrams are the results\n"
+ ]
+ },
+ {
+ "metadata": {},
+ "output_type": "display_data",
+ "png": "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\nRQWwZQuwdSvw8MMtS0sPPwz8718lIpKByZaPtFotXn/9ddy4cQOvvvoqJk2a1O1w1dXVqK6uRkRE\nBOrq6hAVFYXPPvsM27dvx4ABA7B8+XKsXbsWV65cQXp6etvQLAWbwbkDkfXodikcPHgQq1evhrOz\nM1599VWDS0qmMHXqVCxevBiLFy/G0aNH4e3tjerqakRHR+P7779vG5qlYHM4dyCSX7dKYfjw4fj5\n55/x4osvYvTo0dIvvC0yMtJkQXU6HcaOHYtz587hgQcewJUrVwAAQgh4enpKj6XQLAWbxrkDkTw6\n893paOgHLi4ucHFxQUZGBjIyMtr9/MiRI91PCKCurg4zZszApk2b4Obm1uZnCoWiTRG1tnLlSul+\ndHQ0oqOjTZKHzO/28Q635w6jRnHuQGQOWq0WWq22S+8xOlNobm6Gg0PbY9xu3ryJe+65p8sB73Tr\n1i089thjmDRpEp577jkAQHBwMLRaLXx8fFBVVYWYmBguH/VwnDsQWYZJTnMxf/78No/r6uowefLk\n7iVDy9LQs88+C7VaLRUCAMTHx2Pnzp0AgJ07d2Lq1Knd/iyybi4uwKJFwPffAytWAO+9B/z+98C6\ndcAdK4dEZGZGS8HX1xcpKSkAgCtXrmDixIl4+umnu/3BX375JT788EMcOXIEGo0GGo0GBw8eRGpq\nKrKzsxEUFIScnBykpqZ2+7PINvA8S0Ty69QuqS+99BKuXr2Kr7/+GqmpqUhISLBENoO4fGQ/eLwD\nkel0a++j28Pl279k1apVGD58OB599FEoFApMnz7d9Ik7iaVgfzh3IOq+bpXCM88802bPHyFEm8fb\nt283UcyuYynYLx7vQHT3eEI86tF4vANR1/AiO9Sj8foORKbHLQXqMTh3IOoYl4/ILnHuQKSfSUrh\n5s2byMjIgE6nQ2Njo/SLV6xYYbqkXcRSoM5qPXd46qmWuUNgoNypiORhkpnC448/jqysLDg5OcHV\n1RWurq5wcXExWUgic2o9d3BzA0aP5tyBqCNGtxTCwsJw7tw5S+XpFG4p0N1qPXdwd2+ZO8ycybkD\n2QeTbCk8+OCDKCgoMFkoIjm1Ps/Sa68Bf/87z7NE1JrRLYWQkBBcuHAB/v7+6N27d8ubFApZi4Jb\nCmRKnDuQvTDJoFmn0+l9XqVS3W2ubmMpkDlUVracZ+m993ieJeqZulUKV69ehbu7O2pqavS+0dPT\n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\n",
+ "text": [
+ "<matplotlib.figure.Figure at 0x55c8a50>"
+ ]
+ },
+ {
+ "metadata": {},
+ "output_type": "display_data",
+ "png": "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\nsrBgEBGRLP8PAOBgfwTG6goAAAAASUVORK5CYII=\n",
+ "text": [
+ "<matplotlib.figure.Figure at 0x565e350>"
+ ]
+ }
+ ],
+ "prompt_number": 2
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 3.3.3,Page No.102"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "import numpy as np\n",
+ "%matplotlib inline\n",
+ "\n",
+ "#Initilization of Variables\n",
+ "\n",
+ "L_DB=L_CD=1.5 #m #Length of DB & CD\n",
+ "L_AC=3 #m #Length of AC\n",
+ "F_D=80 #KN #Force at Pt D\n",
+ "w=40 #KN/m #u.v.l\n",
+ "L=6 #Length of beam\n",
+ "\n",
+ "#Calculations\n",
+ "\n",
+ "#Let R_A and R_B be the Reactions at Pt A & B respectively\n",
+ "#R_A+R_B=140 \n",
+ "#Taking moment at B we get,M_B\n",
+ "R_A=(1*2**-1*L_AC*w*(1*3**-1*L_AC+(L_CD+L_DB))+F_D*L_DB)*L**-1\n",
+ "R_B=140-R_A\n",
+ "\n",
+ "#Shear Force Calculations\n",
+ "\n",
+ "#S.F at B\n",
+ "V_B1=0 #KN\n",
+ "V_B2=R_B #KN\n",
+ "\n",
+ "#S.F At D\n",
+ "V_D1=V_B2 #KN\n",
+ "V_D2=V_D1-F_D #KN\n",
+ "\n",
+ "#S.F at C\n",
+ "V_C=V_D2 #KN\n",
+ "\n",
+ "#S.F At A\n",
+ "V_A1=V_C-1*2**-1*w*L_AC #KN\n",
+ "V_A2=V_A1+R_A #KN\n",
+ "\n",
+ "#Bending Moment Calculations\n",
+ "\n",
+ "#B.M At B\n",
+ "M_B=0 #KN.m\n",
+ "\n",
+ "#B.M At D\n",
+ "M_D=-R_B*L_DB\n",
+ "\n",
+ "#B.M At C\n",
+ "M_C=F_D*L_CD-R_B*(L_DB+L_CD)\n",
+ "\n",
+ "#B.M At A\n",
+ "M_A=F_D*(L_CD+L_AC)-R_B*L+1*2**-1*w*L_AC*(1*3**-1*L_AC)+R_A\n",
+ "\n",
+ "#Result\n",
+ "print \"The Shear Force and Bending Moment Diagrams are the results\"\n",
+ "\n",
+ "#Plotting the Shear Force Diagram\n",
+ "\n",
+ "X1=[0,0,L_DB,L_DB,L_DB+L_CD,L_DB+L_CD+L_AC,L_DB+L_CD+L_AC]\n",
+ "Y1=[V_B1,V_B2,V_D1,V_D2,V_C,V_A1,V_A2]\n",
+ "Z1=[0,0,0,0,0,0,0]\n",
+ "plt.plot(X1,Y1,X1,Z1)\n",
+ "plt.xlabel(\"Length x in m\")\n",
+ "plt.ylabel(\"Shear Force in kN\")\n",
+ "plt.show()\n",
+ "\n",
+ "#Plotting the Bendimg Moment Diagram\n",
+ "\n",
+ "X2=[0,L_DB,L_CD+L_DB,L_AC+L_CD+L_DB]\n",
+ "Y2=[M_B,M_D,M_C,M_A]\n",
+ "Z2=[0,0,0,0]\n",
+ "plt.plot(X2,Y2,X2,Z2)\n",
+ "plt.xlabel(\"Length in m\")\n",
+ "plt.ylabel(\"Bending Moment in kN.m\")\n",
+ "plt.show()"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "The Shear Force and Bending Moment Diagrams are the results\n"
+ ]
+ },
+ {
+ "metadata": {},
+ "output_type": "display_data",
+ "png": "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\nRK5CYII=\n",
+ "text": [
+ "<matplotlib.figure.Figure at 0x56d88d0>"
+ ]
+ },
+ {
+ "metadata": {},
+ "output_type": "display_data",
+ "png": "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\ngg==\n",
+ "text": [
+ "<matplotlib.figure.Figure at 0x55c8eb0>"
+ ]
+ }
+ ],
+ "prompt_number": 3
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 3.3.4,Page No.104"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "import numpy as np\n",
+ "%matplotlib inline\n",
+ "\n",
+ "#Initilization of Variables\n",
+ "\n",
+ "M_D=120 #KN.m #B.M at Pt D\n",
+ "F_C=40 #KN #Force at Pt C\n",
+ "w1=20 #KN.m\n",
+ "L_DB=1.5 #m #Length of DB\n",
+ "L_CD=1.5 #m #Length of CD\n",
+ "L_AC=3 #m #Length of AC\n",
+ "L=6 #m #Length of Beam\n",
+ "\n",
+ "#Calculations\n",
+ "\n",
+ "#Let R_A And R_B be the Reactions at pt A and B \n",
+ "#R_A+R_B=100\n",
+ "#Now Taking Moment At Pt B We get,M_B\n",
+ "R_A=-(M_D-F_C*(L_CD+L_DB)-w1*L_AC*(L_AC*2**-1+L_CD+L_DB))*L**-1\n",
+ "R_B=100-R_A\n",
+ "\n",
+ "#Shear Force Calculations\n",
+ "\n",
+ "#S.F At Pt B\n",
+ "V_B1=0\n",
+ "V_B2=R_B\n",
+ "\n",
+ "#S.F at Pt D\n",
+ "V_D=V_B2 #KN\n",
+ "\n",
+ "#S.F At Pt C\n",
+ "V_C1=V_D #KN\n",
+ "V_C2=V_C1-F_C\n",
+ "\n",
+ "#S.F At Pt A\n",
+ "V_A1=V_C2-w1*L_AC #KN\n",
+ "V_A2=V_A1+R_A\n",
+ "\n",
+ "#Bending Moment Calculations\n",
+ "\n",
+ "#B.M At Pt B\n",
+ "M_B=0 #KN.m\n",
+ "\n",
+ "#B.M At Pt D\n",
+ "M_D1=M_B-R_B*L_DB #KN.m\n",
+ "M_D2=M_B+M_D-R_B*L_DB\n",
+ "\n",
+ "#B.M At Pt C\n",
+ "M_C=M_D-R_B*(L_CD+L_DB)\n",
+ "\n",
+ "#B.M At Pt A\n",
+ "M_A=M_D-R_B*L+F_C*L_AC+w1*L_AC*L_AC*2**-1\n",
+ "\n",
+ "#Result\n",
+ "print \"The Shear Force and Bending Moment Diagrams are the results\"\n",
+ "\n",
+ "#Plotting the Shear Force Diagram\n",
+ "\n",
+ "X1=[0,0,L_DB,L_DB+L_CD,L_DB+L_CD,L_DB+L_CD+L_AC,L_DB+L_CD+L_AC]\n",
+ "Y1=[V_B1,V_B2,V_D,V_C1,V_C2,V_A1,V_A2]\n",
+ "Z1=[0,0,0,0,0,0,0]\n",
+ "plt.plot(X1,Y1,X1,Z1)\n",
+ "plt.xlabel(\"Length x in m\")\n",
+ "plt.ylabel(\"Shear Force in kN\")\n",
+ "plt.show()\n",
+ "\n",
+ "#Plotting the Bendimg Moment Diagram\n",
+ "\n",
+ "Y2=[M_B,M_D1,M_D2,M_C,M_A]\n",
+ "X2=[0,L_DB,L_DB,L_CD+L_DB,L_AC+L_CD+L_DB]\n",
+ "Z2=[0,0,0,0,0]\n",
+ "plt.plot(X2,Y2,X2,Z2)\n",
+ "plt.xlabel(\"Length in m\")\n",
+ "plt.ylabel(\"Bending Moment in kN.m\")\n",
+ "plt.show()"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "The Shear Force and Bending Moment Diagrams are the results\n"
+ ]
+ },
+ {
+ "metadata": {},
+ "output_type": "display_data",
+ "png": "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\nRU5ErkJggg==\n",
+ "text": [
+ "<matplotlib.figure.Figure at 0x56ee0d0>"
+ ]
+ },
+ {
+ "metadata": {},
+ "output_type": "display_data",
+ "png": "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\n",
+ "text": [
+ "<matplotlib.figure.Figure at 0x55f4e70>"
+ ]
+ }
+ ],
+ "prompt_number": 4
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 3.3.5,Page No.105"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "import numpy as np\n",
+ "%matplotlib inline\n",
+ "\n",
+ "#Initilization of Variables\n",
+ "\n",
+ "F_C=20 #KN #Force at Pt C\n",
+ "F_D=40 #KN #Force at pt D\n",
+ "w=20 #KN.m #u.d.l \n",
+ "L_AD=L_DB=2 #m #Length of AD & DB\n",
+ "L_BC=1 #m #Length of BC\n",
+ "L=5 #m #Length of Beam\n",
+ "\n",
+ "#Calculations\n",
+ "\n",
+ "#LEt R_A and R_B be the reactions at A & B respectively\n",
+ "#R_A+R_B=100 \n",
+ "#Now Taking Moment at B,M_B we get\n",
+ "R_A=-(F_C*L_BC-F_D*L_DB-w*L_AD*(L_AD*2**-1+L_DB))*(L_AD+L_DB)**-1\n",
+ "R_B=100-R_A\n",
+ "\n",
+ "#Shear Force Calculations\n",
+ "\n",
+ "#S.F At pt C\n",
+ "V_C1=0 #KN\n",
+ "V_C2=-F_C #KN\n",
+ "\n",
+ "#S.F At PT B\n",
+ "V_B1=V_C2 #KN\n",
+ "V_B2=V_C2+R_B #KN\n",
+ "\n",
+ "#S.F At Pt D\n",
+ "V_D1=V_B2 #KN\n",
+ "V_D2=V_D1-F_D #KN\n",
+ "\n",
+ "#S.F At Pt A\n",
+ "V_A1=V_D2-w*L_AD #KN\n",
+ "V_A2=V_A1+R_A #KN\n",
+ "\n",
+ "#Bending Moment Calculations\n",
+ "\n",
+ "#B.M At Pt C\n",
+ "M_C=0 \n",
+ "\n",
+ "#B.M At Pt B\n",
+ "M_B=F_C*L_BC\n",
+ "\n",
+ "#B.M At Pt D\n",
+ "M_D=F_C*(L_BC+L_DB)-R_B*L_DB\n",
+ "\n",
+ "#B.M At Pt A\n",
+ "M_A=F_C*L-R_B*(L_DB+L_AD)+F_D*L_AD+w*L_AD*L_AD*2**-1\n",
+ "\n",
+ "#Result\n",
+ "print \"The Shear Force and Bending Moment Diagrams are the results\"\n",
+ "\n",
+ "#Plotting the Shear Force Diagram\n",
+ "\n",
+ "X1=[0,0,L_BC,L_BC,L_BC+L_DB,L_BC+L_DB,L_BC+L_DB+L_AD,L_BC+L_DB+L_AD]\n",
+ "Y1=[V_C1,V_C2,V_B1,V_B2,V_D1,V_D2,V_A1,V_A2]\n",
+ "Z1=[0,0,0,0,0,0,0,0]\n",
+ "plt.plot(X1,Y1,X1,Z1)\n",
+ "plt.xlabel(\"Length x in m\")\n",
+ "plt.ylabel(\"Shear Force in kN\")\n",
+ "plt.show()\n",
+ "\n",
+ "#Plotting the Bendimg Moment Diagram\n",
+ "\n",
+ "Y2=[M_C,M_B,M_D,M_A]\n",
+ "X2=[0,L_BC,L_BC+L_DB,L_BC+L_DB+L_AD]\n",
+ "Z2=[0,0,0,0]\n",
+ "plt.plot(X2,Y2,X2,Z2)\n",
+ "plt.xlabel(\"Lenght in m\")\n",
+ "plt.ylabel(\"Bending Moment in kN.m\")\n",
+ "plt.show()"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "The Shear Force and Bending Moment Diagrams are the results\n"
+ ]
+ },
+ {
+ "metadata": {},
+ "output_type": "display_data",
+ "png": "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\niJj+H1U+eMmY8O6MAAAAAElFTkSuQmCC\n",
+ "text": [
+ "<matplotlib.figure.Figure at 0x57acb70>"
+ ]
+ },
+ {
+ "metadata": {},
+ "output_type": "display_data",
+ "png": "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\n776bzMxMs8Myxc0338yVV15pdhiW0KZNG2JjYwEIDQ2la9euHDx40OSozNOsWTMAKisrqa6urvNN\nwJ8dOHCAtWvX8tBDD+kQTXDpd+BTSaG0tJR27do5v9fmNjlfSUkJhYWFJCQkmB2KaU6fPk1sbCyt\nW7emX79+REVFmR2SaZ588knmzp1LUJBPvdV5hM1mIzExkZ49e7Jw4cJaH+dTvymtRJKLqaio4K67\n7uKVV14hNDTU7HBMExQURFFREQcOHOCzzz4L2GMe1qxZQ6tWrYiLi9MoAcjPz6ewsJB169Yxf/58\nNm7cWOPjfCoptG3blv379zu/379//znHYkjg+uWXXxgxYgT33nsvw4YNMzscS2jRogW33347X331\nldmhmOKLL75g9erVdOjQgdTUVD799FPuv/9+s8MyzZm9Yddccw133nlnrefK+VRS6NmzJ7t27aKk\npITKykqWL19OcnKy2WGJyRwOB+PGjSMqKoqJEyeaHY6pjhw54jxL7OTJk6xfv564uDiTozLHrFmz\n2L9/P3v37mXZsmX84Q9/4O233zY7LFOcOHGC48ePA/Dzzz+Tk5NT68pFn0oKwcHBzJs3j4EDBxIV\nFcWoUaMCdoVJamoqN910Ezt37qRdu3ZkZGSYHZJp8vPzeeedd9iwYYOzR0d2drbZYZni0KFD/OEP\nfyA2NpaEhASGDh1K//79zQ7LEgJ5+vnw4cPcfPPNzr8XQ4YMYcCAATU+1qeWpIqIiGf51EhBREQ8\nS0lBRESclBRERMRJSUFERJyUFERExElJQUREnJQUxK95+riL8PBwfvzxxwvuz8vL48svv6zxOVlZ\nWQF97LtYmymd10S8xdMblmw2W43n6mzYsIHmzZvTu3fvC342dOjQgD/bX6xLIwUJOHv27GHQoEH0\n7NmTW265hR07dgAwduxYnnjiCfr06UNERAQrVqwAjFNHx48fT9euXRkwYAC3336782cAr732GvHx\n8XTv3p0dO3ZQUlLCG2+8wV//+lfi4uL4/PPPz7n+W2+9xWOPPXbRa56tpKSEyMhIHnjgAbp06cI9\n99xDTk4Offr0oXPnzmzZssVTvyoJQEoKEnD++Mc/8tprr/HVV18xd+5cxo8f7/xZWVkZ+fn5rFmz\nhilTpgDw4Ycf8t1337F9+3aWLl3Kl19+ec4I5JprrmHr1q08+uijvPjii4SHh/PII48wadIkCgsL\nL2hwc/7opaZrnm/Pnj1MnjyZb7/9lh07drB8+XLy8/N58cUXmTVrlrt+NSKaPpLAUlFRwZdffsnI\nkSOd91VWVgLGm/WZE1a7du3K4cOHAfj8889JSUkBcPYoONvw4cMB6NGjBx9++KHzfldOkKntmufr\n0KED3bp1A6Bbt24kJiYCEB0dTUlJSZ3XEXGVkoIElNOnT3PFFVdQWFhY48+bNm3q/PrMm/r5dYPz\n3+wvueQSAJo0aUJVVVW9Y6rpmuc7cw0w+iWceU5QUFCDrilSG00fSUC5/PLL6dChAx988AFgvAn/\n61//uuhz+vTpw4oVK3A4HBw+fJi8vLw6r9O8eXPnUcXn0xmUYmVKCuLXTpw4Qbt27Zy3//3f/+Xd\nd99l0aJFxMbGEh0dfU4z97Pn+898PWLECMLCwoiKiuK+++6jR48etGjR4oJr2Ww253OGDh3KypUr\niYuLIz8/v9bH1XbNml67tu8D+UhocT8dnS3igp9//pnLLruM//znPyQkJPDFF1/QqlUrs8MScTvV\nFERcMGTIEMrLy6msrGTatGlKCOK3NFIQEREn1RRERMRJSUFERJyUFERExElJQUREnJQURETESUlB\nRESc/j+iaB8fTwtkoQAAAABJRU5ErkJggg==\n",
+ "text": [
+ "<matplotlib.figure.Figure at 0x57c1130>"
+ ]
+ }
+ ],
+ "prompt_number": 5
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 3.3.6,Page No.107"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "import numpy as np\n",
+ "%matplotlib inline\n",
+ "\n",
+ "#Initilization of Variables\n",
+ "\n",
+ "L_BC=L_EB=L_AD=1 #m #Length of spans BC,ED,AD\n",
+ "L_ED=2 #m #Length of ED\n",
+ "w=60 #KNm #u.d.l\n",
+ "F_C=20 #KN Pt Load at C\n",
+ "L=5 #m #Span of beam \n",
+ "\n",
+ "#Calculations\n",
+ "\n",
+ "#Let R_A & R_B be the reactions at A & B respectively\n",
+ "#R_A+R_B=80 \n",
+ "#Taking Moment At A,we get M_A\n",
+ "R_B=(F_C*L+1*2**-1*L_ED*w*(2*3**-1*L_ED+L_AD))*(L_AD+L_ED+L_EB)**-1\n",
+ "R_A=80-R_B\n",
+ "\n",
+ "#Shear Force Calculations\n",
+ "\n",
+ "#S.F At C\n",
+ "V_C1=0 #KN\n",
+ "V_C2=-F_C #KN\n",
+ "\n",
+ "#S.F At B\n",
+ "V_B1=V_C2 #KN\n",
+ "V_B2=V_C2+R_B #KN \n",
+ "\n",
+ "#S.F aT E\n",
+ "V_E=V_B2 #KN\n",
+ "\n",
+ "#S.F AT D\n",
+ "V_D=V_B2-1*2**-1*L_ED*w #KN\n",
+ "\n",
+ "#S.F At A\n",
+ "V_A1=V_D #KN \n",
+ "V_A2=V_D+R_A\n",
+ "\n",
+ "#Bending Moment Calculations\n",
+ "\n",
+ "#B.M at C\n",
+ "M_C=0 #KN.m\n",
+ "\n",
+ "#B.M at B\n",
+ "M_B=F_C*L_BC #KN.m\n",
+ "\n",
+ "#B.M at E\n",
+ "M_E=F_C*(L_EB+L_BC)-R_B*L_EB #KN.m\n",
+ "\n",
+ "#B.M at D\n",
+ "M_D=F_C*(L_ED+L_EB+L_BC)-R_B*(L_ED+L_EB)+1*2**-1*L_ED*w*1*3**-1*L_ED #KN.m\n",
+ "\n",
+ "#B.M at A\n",
+ "M_A=1*2**-1*L_ED*w*(2*3**-1*L_ED+L_AD)-R_B*(L_AD+L_ED+L_EB)+F_C*L\n",
+ "\n",
+ "#Result\n",
+ "print \"The Shear Force and Bending Moment Diagrams are the results\"\n",
+ "\n",
+ "#Plotting the Shear Force Diagram\n",
+ "\n",
+ "X1=[0,0,L_BC,L_BC,L_EB+L_BC,L_ED+L_EB+L_BC,L_AD+L_ED+L_EB+L_BC,L_ED+L_EB+L_BC+L_AD]\n",
+ "Y1=[V_C1,V_C2,V_B1,V_B2,V_E,V_D,V_A1,V_A2]\n",
+ "Z1=[0,0,0,0,0,0,0,0]\n",
+ "plt.plot(X1,Y1,X1,Z1)\n",
+ "plt.xlabel(\"Length x in m\")\n",
+ "plt.ylabel(\"Shear Force in kN\")\n",
+ "plt.show()\n",
+ "\n",
+ "#Plotting the Bendimg Moment Diagram\n",
+ "\n",
+ "X2=[0,L_BC,L_BC+L_EB,L_EB+L_BC+L_ED,L_EB+L_BC+L_ED+L_AD]\n",
+ "Y2=[M_C,M_B,M_E,M_D,M_A]\n",
+ "Z2=[0,0,0,0,0]\n",
+ "plt.plot(X2,Y2,X2,Z2)\n",
+ "plt.xlabel(\"Lenght in m\")\n",
+ "plt.ylabel(\"Bending Moment in kN.m\")\n",
+ "plt.show()"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "The Shear Force and Bending Moment Diagrams are the results\n"
+ ]
+ },
+ {
+ "metadata": {},
+ "output_type": "display_data",
+ "png": "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\nAABJRU5ErkJggg==\n",
+ "text": [
+ "<matplotlib.figure.Figure at 0x56832d0>"
+ ]
+ },
+ {
+ "metadata": {},
+ "output_type": "display_data",
+ "png": "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\nkeDZfAAAAABJRU5ErkJggg==\n",
+ "text": [
+ "<matplotlib.figure.Figure at 0x55d4330>"
+ ]
+ }
+ ],
+ "prompt_number": 6
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 3.3.7,Page No.109"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "import numpy as np\n",
+ "%matplotlib inline\n",
+ "\n",
+ "#Initilization of Variables\n",
+ "\n",
+ "L_BC=1 #m #Length of BC\n",
+ "L_DB=2 #m #Length of DB\n",
+ "L_AD=4 #m #Length 0f AD\n",
+ "M_D=30 #KN.m #Moment at D\n",
+ "w=45 #KN/m #u.d.l\n",
+ "L=7 #m #Span of beam\n",
+ "\n",
+ "#Calculations\n",
+ "\n",
+ "#Let R_B & R_A be the Reactions at B & A respectively\n",
+ "#R_B+R_A=180+P ............(1)\n",
+ "\n",
+ "#Now Taking Moment about A,we get\n",
+ "#R_B=7*P+390 ...............(2)\n",
+ "\n",
+ "#Since R_A & R_B Are Equal\n",
+ "#2*R_B=180+P ...................(3)\n",
+ "\n",
+ "#From equation 1 and 3 we get\n",
+ "#3*(180+P)=7P+390\n",
+ "#After simplifying Further above equation we get\n",
+ "P=150*4**-1 #KN\n",
+ "R_A=R_B=(180+P)*2**-1\n",
+ "F_C=P\n",
+ "\n",
+ "#Shear Force Calculations\n",
+ "\n",
+ "#S.F At C\n",
+ "V_C1=0 #KN\n",
+ "V_C2=-P #KN\n",
+ "\n",
+ "#S.F At B\n",
+ "V_B1=V_C2 #KN\n",
+ "V_B2=V_C2+R_B #KN \n",
+ "\n",
+ "#S.F At D\n",
+ "V_D=V_B2 #KN\n",
+ "\n",
+ "#S.F At A\n",
+ "V_A1=V_D-w*L_AD #KN\n",
+ "V_A2=V_A1+R_A #KN\n",
+ "\n",
+ "#Bending Moment Calculations\n",
+ "\n",
+ "#B.M at C\n",
+ "M_C=0 #KN.m \n",
+ "\n",
+ "#B.M at B\n",
+ "M_B=F_C*L_BC #KN.m\n",
+ "\n",
+ "#B.M at D\n",
+ "M_D1=F_C*(L_BC+L_DB)-R_B*L_DB #KN.m\n",
+ "M_D2=M_D1+M_D\n",
+ "\n",
+ "#B.M At A\n",
+ "M_A=w*L_AD*L_AD*2**-1+M_D-R_B*(L_AD+L_DB)+P*L\n",
+ "\n",
+ "#Result\n",
+ "print \"The Shear Force and Bending Moment Diagrams are the results\"\n",
+ "\n",
+ "#Plotting the Shear Force Diagram\n",
+ "\n",
+ "X1=[0,0,L_BC,L_BC,L_DB+L_BC,L_DB+L_BC+L_AD,L_DB+L_BC+L_AD]\n",
+ "Y1=[V_C1,V_C2,V_B1,V_B2,V_D,V_A1,V_A2]\n",
+ "Z1=[0,0,0,0,0,0,0]\n",
+ "plt.plot(X1,Y1,X1,Z1)\n",
+ "plt.xlabel(\"Length x in m\")\n",
+ "plt.ylabel(\"Shear Force in kN\")\n",
+ "plt.show()\n",
+ "\n",
+ "#Plotting the Bendimg Moment Diagram\n",
+ "\n",
+ "X2=[0,L_BC,L_DB+L_BC,L_DB+L_BC,L_AD+L_DB+L_BC]\n",
+ "Y2=[M_C,M_B,M_D1,M_D2,M_A]\n",
+ "Z2=[0,0,0,0,0]\n",
+ "plt.plot(X2,Y2,X2,Z2)\n",
+ "plt.xlabel(\"Lenght in m\")\n",
+ "plt.ylabel(\"Bending Moment in kN.m\")\n",
+ "plt.show()"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "The Shear Force and Bending Moment Diagrams are the results\n"
+ ]
+ },
+ {
+ "metadata": {},
+ "output_type": "display_data",
+ "png": "iVBORw0KGgoAAAANSUhEUgAAAYwAAAEPCAYAAABRHfM8AAAABHNCSVQICAgIfAhkiAAAAAlwSFlz\nAAALEgAACxIB0t1+/AAAIABJREFUeJzt3X9c1fWhx/HXAYlNkcQNUYGJV1CEKEHz50MHmj+YgZLK\nQuevIr362Ky7e1de7x6bM0u709m0uDOvqdlKK+ePfujUFFMn2JRuK5qSQRcRzTKvhhkC3/vHt840\nhXNAOJ9z4P18PHjscH5w3jo7b77fz+f7+Tgsy7IQERFxwc90ABER8Q0qDBERcYsKQ0RE3KLCEBER\nt6gwRETELSoMERFxi9HCuO+++wgLCyMhIcF537lz5xg+fDjdu3dnxIgRnD9/3vnYokWLiImJITY2\nlp07d5qILCLSYhktjOnTp7Njx45r7lu8eDHDhw/n+PHjDBs2jMWLFwNQWFjIxo0bKSwsZMeOHcye\nPZuamhoTsUVEWiSjhTF48GBCQkKuuW/btm1MnToVgKlTp7JlyxYAtm7dSlZWFgEBAURFRREdHc3h\nw4c9nllEpKXyujGMM2fOEBYWBkBYWBhnzpwB4NSpU0RERDifFxERQVlZmZGMIiItkdcVxtUcDgcO\nh6POx0VExDNamQ7wbWFhYZw+fZqOHTtSXl5Ohw4dAAgPD6e0tNT5vJMnTxIeHn7d66Ojozlx4oTH\n8oqINAfdunXjww8/rPM5XneEkZ6ezrp16wBYt24dY8eOdd6/YcMGKisrKS4upqioiL59+173+hMn\nTmBZls9+/frXvzaeoSVmV37zX8pv9sudX7SNHmFkZWWxb98+Pv30UyIjI1mwYAFz584lMzOT1atX\nExUVxUsvvQRAXFwcmZmZxMXF0apVK3JycnRKSkTEg4wWxosvvnjD+3fv3n3D++fNm8e8efOaMpKI\niNTC605JtXTJycmmIzSYL2cH5TdN+b2fw7KsZrWBksPhoJn9kUREmpw7n506whAREbeoMERExC0q\nDBERcYsKQ0RE3KLCEBERt6gwRETELSoMERFxiwpDRETcosIQERG3qDBERMQtKgwREXGLCkNERNyi\nwhAREbeoMERExC0qDBERcYsKQ0RE3KLCEBERt6gwRETELa1MB5B/OHECTp82naLlCguD6GjTKUS8\nl/b09iK33w7+/tC6tekkLdPx4/DYYzBjhukkIp7nzmenjjC8SHU1vPgixMebTtIyFRXB3XdDYSEs\n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\nImzdCg88AMuW2WtSmaDCEBHxAQMGwKFDsGYNzJwJX+8+4VEqDBERH9GlCxw8COXlMHIkeHq3bBWG\niIgPadvWnnKblGRfGX78uOfeW4UhIuJj/P1hyRJ4+GEYPBjefNMz76vCEBHxUdnZ9tTbiRNh5cqm\nfz8VhoiID0tJgQMH4He/g4cegurqpnsvI4Xx8ssvEx8fj7+/P0ePHr3msUWLFhETE0NsbCw7d+50\n3n/kyBESEhKIiYnhwQcf9HRkERGvFRNjLyfy/vv2pkwXLjTN+xgpjISEBDZv3syQIUOuub+wsJCN\nGzdSWFjIjh07mD17tnPLwFmzZrF69WqKioooKipix44dJqKLiHilkBB44w178cKBA6G4uPHfw0hh\nxMbG0r179+vu37p1K1lZWQQEBBAVFUV0dDT5+fmUl5dz8eJF+vbtC8CUKVPYsmWLp2OLiHi1gAB4\n+mn7Oo2BA+0puI3Jq8YwTp06RUREhPP7iIgIysrKrrs/PDycMm/fmkpExACHA372M3j2WXu59PXr\nG+9nN9l+GMOHD+f06dPX3f/444+TlpbWVG8LwPz58523k5OTSU5ObtL3ExHxNqmpsHevPabxwQew\ncKG9NtU3cnNzyc3NBdy/ALDJCmPXrl31fk14eDilpaXO70+ePElERATh4eGcPHnymvvDw8Nr/TlX\nF4aISEsVHw/5+XDPPfYWsM89B23a2I9d/cv088/D55//xuXPM35KyrpqFa309HQ2bNhAZWUlxcXF\nFBUV0bdvXzp27EhwcDD5+flYlsX69esZO3aswdQiIr4hNBR274agIBgyBG7mbL6Rwti8eTORkZHk\n5eUxevRoUlNTAYiLiyMzM5O4uDhSU1PJycnB8fX+hDk5OWRnZxMTE0N0dDSjRo0yEV1ExOcEBsLa\ntfZRRv/+cORIw36Ow7JMLZTbNBwOB83sjyQi0mg2b4YZM+C//gvGj7fvi46GEydcf3Y22RiGiIh4\nn4wM+1qNMWPg2DGYN8/916owRERamMRE+8rwMWPsGVSVle69zvigt4iIeF7nzrBvn10WV01OrZPG\nMEREWrCaGntcY/x415+dKgwREXHrs1OnpERExC0qDBERcYsKQ0RE3KLCEBERt6gwRETELSoMERFx\niwpDRETcosIQERG3qDBERMQtKgwREXGLCkNERNyiwhAREbeoMERExC0qDBERcYsKQ0RE3KLCEBER\nt6gwRETELSoMERFxiwpDRETcosIQERG3qDBERMQtKgwREXGLCkNERNyiwhAREbeoMERExC0qDBER\ncYsKQ0RE3KLCEBERt6gwRETELSoMERFxi5HCePnll4mPj8ff35+jR4867y8pKeG73/0uiYmJJCYm\nMnv2bOdjR44cISEhgZiYGB588EETsUVEWjQjhZGQkMDmzZsZMmTIdY9FR0dTUFBAQUEBOTk5zvtn\nzZrF6tWrKSoqoqioiB07dngyssfk5uaajtBgvpwdlN805fd+RgojNjaW7t27u/388vJyLl68SN++\nfQGYMmUKW7Zsaap4RvnyPzpfzg7Kb5ryez+vG8MoLi4mMTGR5ORkDhw4AEBZWRkRERHO54SHh1NW\nVmYqoohIi9SqqX7w8OHDOX369HX3P/7446Slpd3wNZ07d6a0tJSQkBCOHj3K2LFjef/995sqooiI\n1IdlUHJysnXkyBGXj586dcqKjY113v/CCy9YM2fOvOFrunXrZgH60pe+9KWvenx169bN5Wd2kx1h\nuMuyLOftTz/9lJCQEPz9/fnoo48oKirin/7pn2jXrh3BwcHk5+fTt29f1q9fz5w5c2748z788ENP\nRRcRaVGMjGFs3ryZyMhI8vLyGD16NKmpqQDs27ePO+64g8TERCZMmMDKlStp164dADk5OWRnZxMT\nE0N0dDSjRo0yEV1EpMVyWFf/ii8iIlILr5sl1VA7duwgNjaWmJgYnnjiCdNx6u2+++4jLCyMhIQE\n01HqrbS0lJSUFOLj47nttttYvny56Uj1cvnyZfr160evXr2Ii4vj3//9301HapDq6moSExNrnVTi\nzaKiorj99ttJTEx0Tp/3FefPn2f8+PH07NmTuLg48vLyTEdy27Fjx5wXSicmJnLrrbfW/d9vPcep\nvVJVVZXVrVs3q7i42KqsrLTuuOMOq7Cw0HSsennrrbeso0ePWrfddpvpKPVWXl5uFRQUWJZlWRcv\nXrS6d+/uc3//FRUVlmVZ1pUrV6x+/fpZ+/fvN5yo/pYuXWpNnDjRSktLMx2l3qKioqzPPvvMdIwG\nmTJlirV69WrLsux/P+fPnzecqGGqq6utjh07Wv/7v/9b63OaxRHG4cOHiY6OJioqioCAAO699162\nbt1qOla9DB48mJCQENMxGqRjx4706tULgKCgIHr27MmpU6cMp6qf1q1bA1BZWUl1dTXt27c3nKh+\nTp48yRtvvEF2dvY1E0l8iS/m/r//+z/279/PfffdB0CrVq249dZbDadqmN27d9OtWzciIyNrfU6z\nKIyysrJjFZu/AAAGPklEQVRr/pARERG6sM+QkpISCgoK6Nevn+ko9VJTU0OvXr0ICwsjJSWFuLg4\n05Hq5V/+5V/47W9/i5+fb/4n7XA4uOuuu+jTpw+rVq0yHcdtxcXFhIaGMn36dJKSknjggQe4dOmS\n6VgNsmHDBiZOnFjnc3zzX9e3OBwO0xEE+OKLLxg/fjy///3vCQoKMh2nXvz8/HjnnXc4efIkb731\nlk8t8/Daa6/RoUMHEhMTffK3dICDBw9SUFDA9u3befrpp9m/f7/pSG6pqqri6NGjzJ49m6NHj9Km\nTRsWL15sOla9VVZW8uqrrzJhwoQ6n9csCiM8PJzS0lLn96WlpdcsJSJN78qVK4wbN46f/OQnjB07\n1nScBrv11lsZPXo0f/3rX01Hcdtf/vIXtm3bRteuXcnKymLPnj1MmTLFdKx66dSpEwChoaFkZGRw\n+PBhw4ncExERQUREBHfeeScA48ePv2YFbl+xfft2evfuTWhoaJ3PaxaF0adPH4qKiigpKaGyspKN\nGzeSnp5uOlaLYVkW999/P3FxcTz00EOm49Tbp59+yvnz5wH48ssv2bVrF4mJiYZTue/xxx+ntLSU\n4uJiNmzYwNChQ3nuuedMx3LbpUuXuHjxIgAVFRXs3LnTZ2YLduzYkcjISI4fPw7Y4wDx8fGGU9Xf\niy++SFZWlsvnGb/SuzG0atWKp556ipEjR1JdXc39999Pz549Tceql6ysLPbt28dnn31GZGQkCxYs\nYPr06aZjueXgwYM8//zzzmmRAIsWLfKZiyvLy8uZOnUqNTU11NTUMHnyZIYNG2Y6VoP52inaM2fO\nkJGRAdineCZNmsSIESMMp3LfihUrmDRpEpWVlXTr1o01a9aYjlQvFRUV7N69262xI124JyIibmkW\np6RERKTpqTBERMQtKgwREXGLCkNERNyiwhAREbeoMERExC0qDGkRmnqpkieffJIvv/yy0d/v1Vdf\n9cnl+qV50nUY0iK0bdvWeTVxU+jatSt//etf+d73vueR9xMxQUcY0mKdOHGC1NRU+vTpw5AhQzh2\n7BgA06ZN48EHH2TQoEF069aNTZs2AfaKtrNnz6Znz56MGDGC0aNHs2nTJlasWMGpU6dISUm55grx\nX/7yl/Tq1YsBAwbwySefXPf+Dz30EI8++igAf/7zn/nhD3943XPWrl3Lz372szpzXa2kpITY2Fim\nT59Ojx49mDRpEjt37mTQoEF0796dt99+++b/4qTl8sC+HCLGBQUFXXff0KFDraKiIsuyLCsvL88a\nOnSoZVmWNXXqVCszM9OyLMsqLCy0oqOjLcuyrJdfftn60Y9+ZFmWZZ0+fdoKCQmxNm3aZFnW9RsA\nORwO67XXXrMsy7Iefvhha+HChde9/6VLl6z4+Hhrz549Vo8ePayPPvrouuesXbvW+ulPf1pnrqsV\nFxdbrVq1st577z2rpqbG6t27t3XfffdZlmVZW7dutcaOHevy70qkNs1iLSmR+vriiy84dOjQNcs5\nV1ZWAvZaTN+suNuzZ0/OnDkDwIEDB8jMzARw7ptRm1tuuYXRo0cD0Lt3b3bt2nXdc7773e+yatUq\nBg8ezO9//3u6du1aZ+bacn1b165dnQvgxcfHc9dddwFw2223UVJSUud7iNRFhSEtUk1NDe3ataOg\noOCGj99yyy3O29bXw3wOh+Oa/SasOob/AgICnLf9/Pyoqqq64fPeffddQkND3d7w60a5vi0wMPCa\n9/7mNXXlEHGHxjCkRQoODqZr16688sorgP3h++6779b5mkGDBrFp0yYsy+LMmTPs27fP+Vjbtm25\ncOFCvTJ8/PHH/O53v3NuHHSjPSDqKiURT1NhSItw6dIlIiMjnV9PPvkkf/zjH1m9ejW9evXitttu\nY9u2bc7nX71E+De3x40bR0REBHFxcUyePJmkpCTn/s0zZsxg1KhRzkHvb7/+20uOW5ZFdnY2S5cu\npWPHjqxevZrs7GznabHaXlvb7W+/prbvfW3pc/EumlYrUg8VFRW0adOGzz77jH79+vGXv/yFDh06\nmI4l4hEawxCph7vvvpvz589TWVnJr371K5WFtCg6whAREbdoDENERNyiwhAREbeoMERExC0qDBER\ncYsKQ0RE3KLCEBERt/w/DSM1oLe5H2sAAAAASUVORK5CYII=\n",
+ "text": [
+ "<matplotlib.figure.Figure at 0x57b3950>"
+ ]
+ },
+ {
+ "metadata": {},
+ "output_type": "display_data",
+ "png": "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\n1FS8vLzw8PDAxcWFfv36kZiYqHescnnkkUe455579I5RIY0aNSIwMBCAWrVq0bx5c06cOKFzqvK5\n++67ASgsLKS4uJh69erpnKh8jh8/zooVKxg6dOgNG0lsiS3m/vPPP9mwYQNDhgwBoFq1atSpU0fn\nVBWzZs0aPD09ady4camfYxcFIzs7+4Y/pLu7uxzs00lmZia7d+8mNDRU7yjlUlJSQmBgIA0bNqRj\nx474+fnpHalcXn/9dT766COcnGzzn7TBYKBz5860bt2aWbNm6R3HZMeOHaN+/fo8++yztGrViuef\nf54LFy7oHatC5s2bR//+/e/4Obb5t+sm1/ejEvo5f/48vXv3ZurUqdSqVUvvOOXi5OTEnj17OH78\nOD///LNNtXlYtmwZDRo0ICgoyCa/SwfYtGkTu3fvZuXKlXzyySds2LBB70gmKSoqYteuXQwfPpxd\nu3ZRs2ZN4uPj9Y5VboWFhSxdupQ+ffrc8fPsomC4ubmRlZVl/DgrK+uGViLC8q5cuUKvXr14+umn\n6dGjh95xKqxOnTp069aNHTt26B3FZJs3b2bJkiU0bdqU6Oho1q5dy6BBg/SOVS73338/oBqQ9uzZ\nk9TUVJ0Tmcbd3R13d3ceeughAHr37s2uXbt0TlV+K1euJDg4mPr169/x8+yiYLRu3ZrDhw+TmZlJ\nYWEh8+fP5/HHH9c7lsPQNI3nnnsOPz8/XnvtNb3jlNvp06fJy8sD4OLFiyQnJxMUFKRzKtNNmDCB\nrKwsjh07xrx583j00Uf56quv9I5lsgsXLpCfnw9AQUEBq1evtpndgo0aNaJx48akp6cDah3A399f\n51Tl9/333xMdHV3m5+l+0tscqlWrxvTp0+nSpQvFxcU899xzNG/eXO9Y5RIdHc369es5c+YMjRs3\n5oMPPuDZZ5/VO5ZJNm3axDfffGPcFgkQFxdnM4crc3JyGDx4MCUlJZSUlDBw4EA6deqkd6wKs7Up\n2pMnT9KzZ09ATfEMGDCAiIgInVOZbtq0aQwYMIDCwkI8PT2ZO3eu3pHKpaCggDVr1pi0diQH94QQ\nQpjELqakhBBCWJ4UDCGEECaRgiGEEMIkUjCEEEKYRAqGEEIIk0jBEEIIYRIpGMJhWbp9iYeHB2fP\nnr3l8fXr17Nly5bbPmfp0qU22Z5fOAa7OLgnREVY+oCbwWC4bW+ndevW4erqesM1xNdERUXZ5H0W\nwjHICEOI62RkZBAZGUnr1q1p3749hw4dAuCZZ55hxIgRtG3bFk9PTxYuXAioLrfDhw+nefPmRERE\n0K1bN+PvgToFHBwcTMuWLTl06BCZmZl8+umnfPzxxwQFBbFx48Yb3v+LL77gH//4xx3f83qZmZn4\n+vry7LPP0qxZMwYMGMDq1atp27YtPj4+bN++3VL/qYQDkoIhxHVeeOEFpk2bxo4dO/joo48YPny4\n8fdyc3PZtGkTy5YtIyYmBoAff/yR//73vxw4cICvv/6aLVu23DByqV+/Pjt37uSll15i0qRJeHh4\n8OKLL/LGG2+we/du2rVrd8P73zzqud173iwjI4ORI0dy8OBBDh06xPz589m0aROTJk1iwoQJ5vpP\nI4RMSQlxzfnz59myZcsNLZ4LCwsB9YX8Whfe5s2bc/LkSQA2btxI3759AYx3aVzvySefBKBVq1b8\n+OOPxsdN6chT2nverGnTpsaGd/7+/nTu3BmAFi1akJmZWeb7CGEqKRhCXFVSUkLdunXZvXv3bX+/\nevXqxl9f+4J/8zrFzYWgRo0aADg7O1NUVFTuTLd7z5tdew9Q93pce46Tk1OF3lOI0siUlBBX1a5d\nm6ZNm/LDDz8A6gv0vn377victm3bsnDhQjRN4+TJk6xfv77M93F1dTW2876Z9AIV1kwKhnBYFy5c\noHHjxsYfU6ZM4dtvv2X27NkEBgbSokULlixZYvz869cXrv26V69euLu74+fnx8CBA2nVqtVt73Q2\nGAzG50RFRbFo0SKCgoLYtGlTqZ9X2nve7rVL+9jWWp0L6ybtzYWopIKCAmrWrMmZM2cIDQ1l8+bN\nNGjQQO9YQpidrGEIUUndu3cnLy+PwsJC3nvvPSkWwm7JCEMIIYRJZA1DCCGESaRgCCGEMIkUDCGE\nECaRgiGEEMIkUjCEEEKYRAqGEEIIk/w/Ax1NdOgaZEcAAAAASUVORK5CYII=\n",
+ "text": [
+ "<matplotlib.figure.Figure at 0x57a5230>"
+ ]
+ }
+ ],
+ "prompt_number": 7
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 3.3.8,Page No.110"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "import numpy as np\n",
+ "%matplotlib inline\n",
+ "\n",
+ "#Initilization of Variables\n",
+ "\n",
+ "L=6 #m #Span Of beam\n",
+ "w=30 #KN/m #u.d.l\n",
+ "\n",
+ "#Calculations\n",
+ "\n",
+ "#Due to Symmetry\n",
+ "#Let R_B and R_C be the reactions at B & C Respectively\n",
+ "R_B=R_C=w*L*2**-1 #KN\n",
+ "\n",
+ "#Let a be the overhang.The Max -ve moment occurs at the support and max +ve moment at middle of the beam\n",
+ "#Now Equating these two equations we get\n",
+ "#30*a*a*2**-1=90*(3-a)-w*L*2**-1*L*4**-1\n",
+ "#After simplifying we get an equation as\n",
+ "#a**2+6*a-9=0\n",
+ "x=1\n",
+ "y=6\n",
+ "z=-9\n",
+ "\n",
+ "p=y**2-4*x*z\n",
+ "\n",
+ "a1=(-y+p**0.5)*2**-1\n",
+ "a2=(-y-p**0.5)*2**-1\n",
+ "\n",
+ "#Now Length cannot be negative,so taking a1 into Consideration\n",
+ "\n",
+ "L_CD=L_AB=a1\n",
+ "L_BC=L-2*a1\n",
+ "\n",
+ "#Shear Force Calculations\n",
+ "\n",
+ "#S.F At D\n",
+ "V_D=0\n",
+ "\n",
+ "#S.F At C\n",
+ "V_C1=V_D-w*L_CD #KN\n",
+ "V_C2=V_C1+R_C #KN\n",
+ "\n",
+ "#S.F At B\n",
+ "V_B1=-w*(L_BC+L_CD)+R_C\n",
+ "V_B2=V_B1+R_B\n",
+ "\n",
+ "#S.F At A\n",
+ "V_A=round(V_B2,2)-round(w*L_AB,2)\n",
+ "\n",
+ "#Bending Moment Calculations\n",
+ "\n",
+ "#B.M At D\n",
+ "M_D=0\n",
+ "\n",
+ "#B.M At C\n",
+ "M_C=w*L_CD*L_CD*2**-1 #KN.m\n",
+ "\n",
+ "#B.M At B\n",
+ "M_B=w*(L_BC+L_CD)*(L_BC+L_CD)*2**-1-R_C*L_BC*L_BC*2**-1\n",
+ "\n",
+ "#B.M At A\n",
+ "X=w*L*L*2**-1\n",
+ "Y=-R_C*(L_AB+L_BC)-R_B*L_AB\n",
+ "M_A=X+Y\n",
+ "\n",
+ "#Result\n",
+ "print \"The Shear Force and Bending Moment Diagrams are the results\"\n",
+ "\n",
+ "#Plotting the Shear Force Diagram\n",
+ "\n",
+ "X1=[0,L_CD,L_CD,L_CD+L_BC,L_CD+L_BC,L_CD+L_BC+L_AB]\n",
+ "Y1=[V_D,V_C1,V_C2,V_B1,V_B2,V_A]\n",
+ "Z1=[0,0,0,0,0,0]\n",
+ "plt.plot(X1,Y1,X1,Z1)\n",
+ "plt.xlabel(\"Length x in m\")\n",
+ "plt.ylabel(\"Shear Force in kN\")\n",
+ "plt.show()\n",
+ "\n",
+ "#Plotting the Bendimg Moment Diagram\n",
+ "\n",
+ "X2=[0,L_CD,L_BC+L_CD,L_AB+L_BC+L_CD]\n",
+ "Y2=[M_D,M_C,M_B,M_A]\n",
+ "Z2=[0,0,0,0]\n",
+ "plt.plot(X2,Y2,X2,Z2)\n",
+ "plt.xlabel(\"Lenght in m\")\n",
+ "plt.ylabel(\"Bending Moment in kN.m\")\n",
+ "plt.show()"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "The Shear Force and Bending Moment Diagrams are the results\n"
+ ]
+ },
+ {
+ "metadata": {},
+ "output_type": "display_data",
+ "png": "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\nAElFTkSuQmCC\n",
+ "text": [
+ "<matplotlib.figure.Figure at 0x5681510>"
+ ]
+ },
+ {
+ "metadata": {},
+ "output_type": "display_data",
+ "png": "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\nICIiWf4/U4J8H+TjvqoAAAAASUVORK5CYII=\n",
+ "text": [
+ "<matplotlib.figure.Figure at 0x57c1270>"
+ ]
+ }
+ ],
+ "prompt_number": 8
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 3.3.9,Page No.112"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "import numpy as np\n",
+ "%matplotlib inline\n",
+ "\n",
+ "#Initilization of Variables\n",
+ "\n",
+ "F_F=6 #KN #Force at F\n",
+ "w1=w2=w=3 #KN.m #u.d.l\n",
+ "M_D=24 #KN.m \n",
+ "L_AB=L_CD=L_DE=L_EF=4 #m #Length of AB,CD,DE,EF\n",
+ "L_BC=2 #m #Length of BC\n",
+ "L=18 #m #Span of Beam\n",
+ "\n",
+ "#Calculations\n",
+ "\n",
+ "#LEt R_B and R_E be the Reactions at B & E respectively\n",
+ "#R_B+R_E=42\n",
+ "\n",
+ "#Taking Moment At Pt B,M_B\n",
+ "R_E=(F_F*(L_BC+L_CD+L_DE+L_EF)+w*(L_CD+L_DE)*((L_CD+L_DE)*2**-1+L_BC)-w*L_AB*L_AB*2**-1-M_D)*(L_BC+L_CD+L_DE)**-1\n",
+ "R_B=42-R_E #KN\n",
+ "\n",
+ "#Shear Force Calculations\n",
+ "\n",
+ "#S.F aT F\n",
+ "V_F1=0 #KN \n",
+ "V_F2=-F_F #KN\n",
+ "\n",
+ "#S.F at E\n",
+ "V_E1=V_F2 #KN\n",
+ "V_E2=V_E1+R_E #KN\n",
+ "\n",
+ "#S.F aT C\n",
+ "V_C=V_E2-w*(L_CD+L_DE) #KN\n",
+ "\n",
+ "#S.F at B\n",
+ "V_B1=V_C #KN \n",
+ "V_B2=V_C+R_B #KN\n",
+ "\n",
+ "#S.F At A\n",
+ "V_A=V_B2-w*L_AB #KN\n",
+ "\n",
+ "#Bending Moment Calculations\n",
+ "\n",
+ "#B.M At F\n",
+ "M_F=0\n",
+ "\n",
+ "#B.M At E\n",
+ "M_E=F_F*L_EF #KN.m\n",
+ "\n",
+ "#B.M At D\n",
+ "M_D1=F_F*(L_DE+L_EF)-R_E*L_DE+w*L_DE*L_DE*2**-1 #KN.m\n",
+ "M_D2=M_D1-M_D\n",
+ "\n",
+ "#B.M At C\n",
+ "M_C=F_F*(L_CD+L_DE+L_EF)-R_E*(L_CD+L_DE)+w*(L_CD+L_DE)*(L_CD+L_DE)*2**-1-M_D\n",
+ "\n",
+ "#B.M At B\n",
+ "M_B=F_F*(L_BC+L_CD+L_DE+L_EF)-R_E*(L_BC+L_CD+L_DE)-M_D+w*(L_CD+L_DE)*((L_CD+L_DE)*2**-1+L_BC)\n",
+ "\n",
+ "#B.M At A\n",
+ "M_A=w*L_AB*L_AB*2**-1-R_B*L_AB+w*(L_CD+L_DE)*((L_CD+L_DE)*2**-1+L_BC+L_AB)-R_E*(L_AB+L_BC+L_CD+L_DE)+F_F*L-M_D\n",
+ "\n",
+ "#Result\n",
+ "print \"The Shear Force and Bending Moment Diagrams are the results\"\n",
+ "\n",
+ "#Plotting the Shear Force Diagram\n",
+ "\n",
+ "X1=[0,0,L_EF,L_EF,L_EF+L_DE+L_CD,L_EF+L_DE+L_CD+L_BC,L_EF+L_DE+L_CD+L_BC,L_EF+L_DE+L_CD+L_BC+L_AB]\n",
+ "Y1=[V_F1,V_F2,V_E1,V_E2,V_C,V_B1,V_B2,V_A]\n",
+ "Z1=[0,0,0,0,0,0,0,0]\n",
+ "plt.plot(X1,Y1,X1,Z1)\n",
+ "plt.xlabel(\"Length x in m\")\n",
+ "plt.ylabel(\"Shear Force in kN\")\n",
+ "plt.show()\n",
+ "\n",
+ "#Plotting the Bendimg Moment Diagram\n",
+ "\n",
+ "X2=[0,L_EF,L_DE+L_EF,L_DE+L_EF,L_CD+L_DE+L_EF,L_CD+L_DE+L_EF+L_BC,L_CD+L_DE+L_EF+L_BC+L_AB]\n",
+ "Y2=[M_F,M_E,M_D1,M_D2,M_C,M_B,M_A]\n",
+ "Z2=[0,0,0,0,0,0,0]\n",
+ "plt.plot(X2,Y2,X2,Z2)\n",
+ "plt.xlabel(\"Lenght in m\")\n",
+ "plt.ylabel(\"Bending Moment in kN.m\")\n",
+ "plt.show()"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "The Shear Force and Bending Moment Diagrams are the results\n"
+ ]
+ },
+ {
+ "metadata": {},
+ "output_type": "display_data",
+ "png": "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\nQmCC\n",
+ "text": [
+ "<matplotlib.figure.Figure at 0x5667df0>"
+ ]
+ },
+ {
+ "metadata": {},
+ "output_type": "display_data",
+ "png": "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\nfyRzHAAAAABJRU5ErkJggg==\n",
+ "text": [
+ "<matplotlib.figure.Figure at 0x5681b30>"
+ ]
+ }
+ ],
+ "prompt_number": 9
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 3.3.10,Page No.114"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "import numpy as np\n",
+ "%matplotlib inline\n",
+ "\n",
+ "#Initilization of Variables\n",
+ "\n",
+ "L_DC=L_BA=2 #m #Length of BA & DC\n",
+ "L_CB=1 #m #Length of CB\n",
+ "F_A=10 #KN #Force at pt A\n",
+ "F_B=20 #KN #Force at pt B\n",
+ "w=4 #KN.m #u.d.l\n",
+ "L=5 #m #Length of beam\n",
+ "\n",
+ "#Calculations\n",
+ "\n",
+ "#Let R_D be the reactions at Pt D\n",
+ "R_D=F_B+F_A+w*L_DC #KN\n",
+ "\n",
+ "#Shear Force Calculations\n",
+ "\n",
+ "#S.F at Pt A\n",
+ "V_A1=0 #KN\n",
+ "V_A2=F_A #KN\n",
+ "\n",
+ "#S.F At Pt B\n",
+ "V_B1=V_A2\n",
+ "V_B2=F_B+F_A\n",
+ "\n",
+ "#S.F at Pt C\n",
+ "V_C=F_B+F_A #KN \n",
+ "\n",
+ "#S.F At Pt D\n",
+ "V_D1=V_B2+w*L_DC\n",
+ "V_D2=F_B+F_A+w*L_DC-R_D\n",
+ "\n",
+ "#B.M At Pt A\n",
+ "M_A=0\n",
+ "\n",
+ "#B.M At Pt B\n",
+ "M_B=F_A*L_BA\n",
+ "\n",
+ "#B.M at Pt C\n",
+ "M_C=F_B*L_CB+F_A*(L_BA+L_CB) #KN\n",
+ "\n",
+ "#B.M At Pt D\n",
+ "M_D1=F_A*L+F_B*(L_CB+L_DC)+w*L_DC*L_DC*2**-1\n",
+ "M_D2=(F_A*L+F_B*(L_CB+L_DC)+w*L_DC*L_DC*2**-1)-M_D1\n",
+ "\n",
+ "#Result\n",
+ "print \"The Shear Force and Bending Moment Diagrams are the results\"\n",
+ "\n",
+ "#Plotting the Shear Force Diagram\n",
+ "\n",
+ "X1=[0,0,L_BA,L_BA,L_BA+L_CB,L_BA+L_CB+L_DC,L_BA+L_CB+L_DC]\n",
+ "Y1=[V_A1,V_A2,V_B1,V_B2,V_C,V_D1,V_D2]\n",
+ "Z1=[0,0,0,0,0,0,0]\n",
+ "plt.plot(X1,Y1,X1,Z1)\n",
+ "plt.xlabel(\"Length x in m\")\n",
+ "plt.ylabel(\"Shear Force in kN\")\n",
+ "plt.show()\n",
+ "\n",
+ "#Plotting the Bendimg Moment Diagram\n",
+ "\n",
+ "Y2=[M_A,M_B,M_C,M_D1,M_D2]\n",
+ "X2=[0,L_BA,L_CB+L_BA,L_CB+L_BA+L_DC,L_CB+L_BA+L_DC]\n",
+ "Z2=[0,0,0,0,0]\n",
+ "plt.plot(X2,Y2,X2,Z2)\n",
+ "plt.xlabel(\"Lenght in m\")\n",
+ "plt.ylabel(\"Bending Moment in kN.m\")\n",
+ "plt.show()"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "The Shear Force and Bending Moment Diagrams are the results\n"
+ ]
+ },
+ {
+ "metadata": {},
+ "output_type": "display_data",
+ "png": "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\n",
+ "text": [
+ "<matplotlib.figure.Figure at 0x56d8a30>"
+ ]
+ },
+ {
+ "metadata": {},
+ "output_type": "display_data",
+ "png": "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\nCwAAAABJRU5ErkJggg==\n",
+ "text": [
+ "<matplotlib.figure.Figure at 0x56fc8d0>"
+ ]
+ }
+ ],
+ "prompt_number": 10
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 3.3.11,Page No.115"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "import numpy as np\n",
+ "%matplotlib inline\n",
+ "\n",
+ "#Initilization of Variables\n",
+ "\n",
+ "w=20 #KN/m #u.v.l\n",
+ "F_C=40 #KN #Force at Pt C\n",
+ "M_D=40 #KN.m #Moment at pt D\n",
+ "L_AB=3 #m #Length of AB\n",
+ "L_BC=1 #m #Length of BC\n",
+ "L_CD=L_DE=2 #m #Length of CD & DE\n",
+ "L=8 #8 #Length of beam\n",
+ "\n",
+ "#Calculations\n",
+ "\n",
+ "#Let R_A & R_E be the Reactions at A & E respectively\n",
+ "#R_A+R_E=70\n",
+ "\n",
+ "#Taking Moments At Pt A we get,M_A\n",
+ "R_E=(F_C*(L_AB+L_BC)+1*2**-1*L_AB*w*2+40)*L**-1\n",
+ "R_A=70-R_E\n",
+ "\n",
+ "#shear Force Calculations\n",
+ "\n",
+ "#S.F At Pt E\n",
+ "V_E1=0\n",
+ "V_E2=R_E #KN\n",
+ "\n",
+ "#S.F aT pt D\n",
+ "V_D=V_E2\n",
+ "\n",
+ "#S.F At PT C\n",
+ "V_C1=V_D\n",
+ "V_C2=V_D-F_C #KN\n",
+ "\n",
+ "#S.F At Pt A\n",
+ "V_A1=V_C2-(1*2**-1*w*L_AB)\n",
+ "V_A2=V_A1+R_A\n",
+ "\n",
+ "#Bending Moment Calculations\n",
+ "\n",
+ "#B.M At Pt E\n",
+ "M_E=0\n",
+ "\n",
+ "#B.M At Pt D\n",
+ "M_D1=M_E-R_E*L_DE\n",
+ "M_D2=M_D1+M_D\n",
+ "\n",
+ "#B.M At Pt C\n",
+ "M_C=-R_E*(L_DE+L_CD)+M_D\n",
+ "\n",
+ "#B.M At Pt B\n",
+ "M_B=-R_E*(L_DE+L_CD+L_BC)+M_D+F_C*L_BC\n",
+ "\n",
+ "#B.M At Pt A\n",
+ "M_A=-R_E*L+M_D+(1*2**-1*L_AB*w*2)+F_C*(L_BC+L_AB)\n",
+ "\n",
+ "#Result\n",
+ "print \"The Shear Force and Bending Moment Diagrams are the results\"\n",
+ "\n",
+ "#Plotting the Shear Force Diagram\n",
+ "\n",
+ "X1=[0,0,L_DE,L_CD+L_DE,L_CD+L_DE,L_CD+L_DE+L_AB,L_CD+L_DE+L_AB]\n",
+ "Y1=[V_E1,V_E2,V_D,V_C1,V_C2,V_A1,V_A2]\n",
+ "Z1=[0,0,0,0,0,0,0]\n",
+ "plt.plot(X1,Y1,X1,Z1)\n",
+ "plt.xlabel(\"Length x in m\")\n",
+ "plt.ylabel(\"Shear Force in kN\")\n",
+ "plt.show()\n",
+ "\n",
+ "#Plotting the Bendimg Moment Diagram\n",
+ "\n",
+ "Y2=[M_E,M_D1,M_D2,M_C,M_B,M_A]\n",
+ "X2=[0,L_DE,L_DE,L_CD+L_DE,L_DE+L_CD+L_BC,L_AB+L_BC+L_CD+L_DE]\n",
+ "Z2=[0,0,0,0,0,0]\n",
+ "plt.plot(X2,Y2)\n",
+ "plt.xlabel(\"Lenght in m\")\n",
+ "plt.ylabel(\"Bending Moment in kN.m\")\n",
+ "plt.show()"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "The Shear Force and Bending Moment Diagrams are the results\n"
+ ]
+ },
+ {
+ "metadata": {},
+ "output_type": "display_data",
+ "png": "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\n",
+ "text": [
+ "<matplotlib.figure.Figure at 0x568ee10>"
+ ]
+ },
+ {
+ "metadata": {},
+ "output_type": "display_data",
+ "png": "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\nMplYVsqi8ZiYGA4dOnTZ41OmTKGgoIC//vqLLVu2sHXrVmJjY/nNTsEek52/KRc2VtHR0URHR18x\nT2XWs6e6kS5eDN5+xLbJBK+9Bs8/D717q96D8F7PPqv+LJs1053EN6WkpJCSklKm19htFB49fzL2\niBEjyhVm9erVdr83d+5cevfuDUC7du2oUqUK//vf/wgICGD//v225x04cICAgIAS38MdPRhfVXwj\nffpp6NNHzTV4s65d1alsn32mVqwI75ScDHv3+sbOe0916S/MkxypMGlo8N577xnjx483DMMw0tLS\njMaNGxuGYRh79uwxIiMjjbNnzxq//fab0axZM6OoqOiy12uK7dWKigzj7rsNY8GCix9PSjKMvn21\nRHLKunWGERhoGGfP6k4iyiMvzzCaNDGM77/XnaRyceTeafd3xoiICLsNiclkYteuXWVory42ePBg\nBg8eTEREBNWqVeOTTz4BwGKxEBsbi8Viwc/Pj8TERLvDR6JsTCZ1aM3DD8OAAVC9uu5EzrnrLmjR\nQu3F+Oc/dacRZTV5Mtx5p1oVJzyL3c1rWVlZACQmJgJqOMkwDD7//HMArWcpyOa18uveXU04Dxum\nvvaWzWsl2bpVTTynp0PNmrrTCEft3q02IO7eDQ0b6k5Tubik9lGrVq3YuXPnRY9FRUWxY8cO5xOW\nkzQK5bd9O/TooW6kV13l3Y0CqEbhzjtViW3h+YqK4O671Z6T+HjdaSofl+xoNgyDDRs22L7euHGj\n3JC9WOvWcOut8O67upO4xquvqoPdndw6IyrIxx/D2bPw5JO6kwh7Su0pbNu2jccff5zjx48DUL9+\nfT788ENat25dIQFLIj0F51itqvueng4rV3p3TwHUPEloqNqLITzXkSMQFqZ2pGu8fVRqLiudDdga\nhXr16jmfzEnSKDhv4EB15kJIiPc3CunpqveTng5XX607jbBn6FA19zN7tu4klZdLGoUzZ86wZMkS\nsrKyKCgosL3x+PHjXZe0jKRRcN5vv0H79mr/wg8/eHejAOpAluuvV5v0hOfZtEntQLdawQN+r6y0\nXDKn8MADD7Bs2TL8/f2pXbs2tWvXplatWi4LKfRo1gweekjVnfEF48fDvHnwxx+6k4hLFRSognez\nZkmD4A1K7SmEh4eze/fuisrjEOkpuMaBA2oIqWdP7+8pgCqZUKWKqrYpPMcbb6hTAFetkvpGurmk\n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\nGhPHAAAAAElFTkSuQmCC\n",
+ "text": [
+ "<matplotlib.figure.Figure at 0x567eb10>"
+ ]
+ }
+ ],
+ "prompt_number": 11
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 3.3.12,Page No.116"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "import numpy as np\n",
+ "%matplotlib inline\n",
+ "\n",
+ "#Initilization of Variables\n",
+ "\n",
+ "F_G=10 #KN #Force at Pt G\n",
+ "F_B=F_E=15 #KN #Force at Pt B & E\n",
+ "w=20 #KN/m #U.d.L\n",
+ "L_FG=L_EF=L_DE=L_CD=L_BC=L_AB=1 #m #Lengths of FG,EF,DE,CD,BC,AB respectively\n",
+ "L=6 #m #Length of beam\n",
+ "\n",
+ "#Calculations\n",
+ "\n",
+ "#LEt R_F & R_A be the Reactions at E & A respectively\n",
+ "#R_F+R_A=60\n",
+ "\n",
+ "#Taking Moment At Pt A,M_A\n",
+ "R_F=(F_G*L+F_E*(L_AB+L_BC+L_CD+L_DE)+w*L_CD*(L_AB+L_BC+L_CD*2**-1)+F_B*L_AB)*(L_AB+L_BC+L_CD+L_DE+L_EF)**-1\n",
+ "R_A=60-R_F\n",
+ "\n",
+ "#Shear Force Calculations\n",
+ "\n",
+ "#S.F At G\n",
+ "V_G1=0 #KN \n",
+ "V_G2=F_G #KN\n",
+ "\n",
+ "#S.F At F\n",
+ "V_F1=V_G2 #KN\n",
+ "V_F2=V_F1-R_F\n",
+ "\n",
+ "#S.F At E\n",
+ "V_E1=V_F2 #KN\n",
+ "V_E2=V_F2+F_E\n",
+ "\n",
+ "#S.F At D\n",
+ "V_D=V_E2\n",
+ "\n",
+ "#S.F At C\n",
+ "V_C=V_E2+w*L_CD\n",
+ "\n",
+ "#S.F At B\n",
+ "V_B1=V_C\n",
+ "V_B2=V_B1+F_B\n",
+ "\n",
+ "#S.F At A\n",
+ "V_A1=V_B2\n",
+ "V_A2=V_B2-R_A\n",
+ "\n",
+ "#Bending Moment Calculations\n",
+ "\n",
+ "#B.M At Pt G\n",
+ "M_G=0\n",
+ "\n",
+ "#B.M At F\n",
+ "M_F=F_G*L_FG \n",
+ "\n",
+ "#B.M At E\n",
+ "M_E=F_G*(L_FG+L_EF)-R_F*L_EF\n",
+ "\n",
+ "#B.M At D\n",
+ "M_D=F_G*(L_FG+L_EF+L_DE)-R_F*(L_EF+L_DE)+F_E*L_DE\n",
+ "\n",
+ "#B.M At C\n",
+ "M_C=F_G*(L_FG+L_EF+L_DE+L_CD)-R_F*(L_EF+L_DE+L_CD)+F_E*(L_DE+L_CD)+w*L_CD*L_CD*2**-1\n",
+ "\n",
+ "#B.M At B\n",
+ "M_B=F_G*(L_FG+L_EF+L_DE+L_CD+L_BC)-R_F*(L_EF+L_DE+L_CD+L_BC)+F_E*(L_DE+L_CD+L_BC)+w*L_CD*(L_CD*2**-1+L_BC)\n",
+ "\n",
+ "#B.M At A\n",
+ "M_A=F_G*L-R_F*(L_EF+L_DE+L_CD+L_BC+L_AB)+F_E*(L_DE+L_CD+L_BC+L_AB)+F_B*L_AB+w*L_CD*(L_CD*2**-1+L_BC+L_AB)\n",
+ "\n",
+ "#Result\n",
+ "print \"The Shear Force and Bending Moment Diagrams are the results\"\n",
+ "\n",
+ "#Plotting the Shear Force Diagram\n",
+ "\n",
+ "X1=[0,0,L_FG,L_FG,L_FG+L_EF,L_FG+L_EF,L_FG+L_EF+L_DE,L_FG+L_EF+L_DE+L_CD,L_FG+L_EF+L_DE+L_CD+L_BC,L_FG+L_EF+L_DE+L_CD+L_BC,L_FG+L_EF+L_DE+L_CD+L_BC+L_AB,L_FG+L_EF+L_DE+L_CD+L_BC+L_AB]\n",
+ "Y1=[V_G1,V_G2,V_F1,V_F2,V_E1,V_E2,V_D,V_C,V_B1,V_B2,V_A1,V_A2]\n",
+ "Z1=[0,0,0,0,0,0,0,0,0,0,0,0]\n",
+ "plt.plot(X1,Y1,X1,Z1)\n",
+ "plt.xlabel(\"Length x in m\")\n",
+ "plt.ylabel(\"Shear Force in kN\")\n",
+ "plt.show()\n",
+ "\n",
+ "#Plotting the Bendimg Moment Diagram\n",
+ "\n",
+ "X2=[0,L_FG,L_EF+L_FG,L_EF+L_FG+L_DE,L_EF+L_FG+L_DE+L_CD,L_EF+L_FG+L_DE+L_CD+L_BC,L_EF+L_FG+L_DE+L_CD+L_BC+L_AB]\n",
+ "Y2=[M_G,M_F,M_E,M_D,M_C,M_B,M_A]\n",
+ "Z2=[0,0,0,0,0,0,0]\n",
+ "plt.plot(X2,Y2)\n",
+ "plt.xlabel(\"Lenght in m\")\n",
+ "plt.ylabel(\"Bending Moment in kN.m\")\n",
+ "plt.show()"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "The Shear Force and Bending Moment Diagrams are the results\n"
+ ]
+ },
+ {
+ "metadata": {},
+ "output_type": "display_data",
+ "png": "iVBORw0KGgoAAAANSUhEUgAAAYUAAAEPCAYAAACtCNj2AAAABHNCSVQICAgIfAhkiAAAAAlwSFlz\nAAALEgAACxIB0t1+/AAAHZJJREFUeJzt3XtYVAX+x/HPIOgmYt6hB3ie8eESF03whtZaoIKVK1kq\nhWUsZvbLrd32ktlly3IT3GrLLm5tP1O7PWnLFtiF1DVMKjTDbFf2UUowQGBLIu+LwPn9wXp+KgyD\nOTMHhvfreXicyxnPZ8pnPpzznXOOzTAMQwAASPKxOgAAoPOgFAAAJkoBAGCiFAAAJkoBAGCiFAAA\nJstK4cSJE0pISFBcXJxiYmJ07733SpLq6uqUnJysyMhIpaSkqL6+3qqIANDt2Kw8TuHYsWPq3bu3\nGhsb9dOf/lSPP/648vLyNGjQIC1cuFDLli3T999/r+zsbKsiAkC3Yunuo969e0uSGhoa1NTUpP79\n+ysvL08ZGRmSpIyMDL399ttWRgSAbsXSUmhublZcXJwCAwOVlJSk2NhY1dbWKjAwUJIUGBio2tpa\nKyMCQLfia+XKfXx89MUXX+iHH37QlClT9OGHH57xvM1mk81msygdAHQ/lpbCKRdeeKGmTp2qzz//\nXIGBgaqpqVFQUJCqq6s1ZMiQVsuHh4fr66+/tiApAHRdYWFh+uqrr9pdxrLdR9999535zaLjx49r\n48aNio+PV2pqqtasWSNJWrNmjaZPn97qtV9//bUMw/Dan4ceesjyDLw/3l93fH/e/N4Mw+jQL9OW\nbSlUV1crIyNDzc3Nam5u1pw5czRp0iTFx8crLS1NK1eulN1u17p166yKCADdjmWlMHz4cBUXF7d6\nfMCAAdq0aZMFiQAAHNHcCSUmJlodwa14f12bN78/b35vHWXpwWs/ls1mUxeMDQCW6shnJ1sKAAAT\npQAAMFEKAAATpQAAMFEKAAATpQAAMFEKAAATpQAAMFEKAAATpQAAMFEKAAATpQAAMFEKAAATpQAA\nMFEKAAATpQAAMFEKAAATpQAAMFEKAACTr9UBAKAzaGyUxo6VDh2yOom1bIazqzh3Qh25+DQAnIvj\nx6V+/aTdu61O4h47dkjp6c4/O9lSAID/8vGRwsOtTuEeNTUdW46ZAgDARCkAAEyUAgDARCkAAEyW\nlUJFRYWSkpIUGxurYcOG6emnn5Yk1dXVKTk5WZGRkUpJSVF9fb1VEQGg27GsFPz8/PTkk09q9+7d\nKioq0nPPPad//etfys7OVnJysvbu3atJkyYpOzvbqogA0O1YVgpBQUGKi4uTJPXp00fR0dGqqqpS\nXl6eMjIyJEkZGRl6++23rYoIAN1Op5gplJeXa+fOnUpISFBtba0CAwMlSYGBgaqtrbU4HQB0H5aX\nwpEjRzRjxgwtX75cAQEBZzxns9lks9ksSgYA3Y+lRzSfPHlSM2bM0Jw5czR9+nRJLVsHNTU1CgoK\nUnV1tYYMGdLmaxcvXmzeTkxMVGJiogcSA0DXUVBQoIKCAknSN9907DWWnfvIMAxlZGRo4MCBevLJ\nJ83HFy5cqIEDB+qee+5Rdna26uvrWw2bOfcRAFc7flwaMKDlT29UWChNmOD8s9OyUigsLNTll1+u\nSy65xNxFlJWVpbFjxyotLU3ffPON7Ha71q1bp379+p0ZmlIA4GKUQgvOkgoAohROsXzQDADoPCgF\nAICJUgAAmCgFAICJUgAAmCgFAICJUgAAmCgFAICJUgAAmCgFAICJUgAAmCgFAICJUgAAmCgFAICJ\nUgAAmCgFAICJUgAAmCgFAICJUgAAmCgFAICJUgAAmCgFAICJUgAAmCgFAICJUgAAmCgFAICJUgAA\nmCgFAIDJ19ETSUlJbT5us9kkSZs3b3ZPIgCAZRyWwmOPPWbePlUERUVFWrZsmYYMGeKSlc+dO1fv\nvvuuhgwZon/84x+SpLq6Ol1//fXav3+/7Ha71q1bp379+rlkfQCA9jncfTR69Gjz5/Dhw7rnnnv0\n+uuv64UXXtCOHTtcsvLMzEzl5+ef8Vh2draSk5O1d+9eTZo0SdnZ2S5ZFwDAOYdbCpKUn5+vRx99\nVD179tQDDzzgcJfSjzVhwgSVl5ef8VheXp62bNkiScrIyFBiYiLFAAAe4rAUxowZo2+//Va/+93v\nNH78eElScXGx+fzIkSPdEqi2tlaBgYGSpMDAQNXW1ra53OLFbll9pxAXJ02fbnUKAN2Rw1Lw9/eX\nv7+/cnJylJOT0+r5Dz/80K3BpJZZxql5xtkKChabt+32RNntiW7P4wnffCNt2kQpADh/BQUFKigo\nkNTy2dIRDkvh1F/U3NwsH58zRw8nTpz4UQE7IjAwUDU1NQoKClJ1dbXDofbppeBNCgulRYusTgHA\nGyQmJioxMVFSy2fLqlUPO32N0+MU5s2bd8b9I0eO6Oqrr/5xCTsgNTVVa9askSStWbNG0/mVGQA8\n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\nKQAATP8HttSK1NQ812EAAAAASUVORK5CYII=\n",
+ "text": [
+ "<matplotlib.figure.Figure at 0x56fa3d0>"
+ ]
+ },
+ {
+ "metadata": {},
+ "output_type": "display_data",
+ "png": "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\nDsV00dHRjsOHD1sdhsfce++9jlmzZjkcDuPv6NGjR8t9nl+NFHJycmjatCnR0dGEh4dz1113kZmZ\naXVYpmnfvj116tSxOgyPadiwIUlJSQBEREQQFxfHvn37LI7KPJdeeikAxcXFlJSUULduXYsjMtcP\nP/zAf//7Xx544AEcATrrHKi/108//cTKlSsZPHgwAGFhYdSqVavc5/pVUsjPz6dRo0bOP0dFRZGf\nn29hRFJdeXl55ObmkpKSYnUopjl9+jRJSUk0aNCADh06EB8fb3VIpnr88cd5/vnnCQnxq7cNl9ls\nNjp16kSbNm2YOXOm1eGYavfu3VxxxRUMGjSIVq1aMWTIEIqKisp9rl/917XZbFaHICYoLCykb9++\nvPTSS0RERFgdjmlCQkJYt24dP/zwAytWrAiokgmLFy+mfv36JCcnB+yn6VWrVpGbm8uSJUt49dVX\nWblypdUhmebUqVOsXbuWoUOHsnbtWi677DImTZpU7nP9KilcffXVzoqqYCxcRkVFWRiRVNXJkye5\n4447uPvuu+nVq5fV4XhErVq16NGjB19//bXVoZjmyy+/ZOHChTRp0oQBAwbw2Wefce+991odlqmu\nvPJKAK644gp69+5NTk6OxRGZJyoqiqioKH7/+98D0LdvX9auXVvuc/0qKbRp04bt27eTl5dHcXEx\nc+fOpWfPnlaHJS5yOBzcf//9xMfHM3z4cKvDMdWhQ4c4evQoAL/88guffPKJ81BmIJgwYQJ79+5l\n9+7d/Otf/+LWW2/lnXfesTos0xQVFTlL6hw/fpylS5cG1C7Ahg0b0qhRI7Zt2wbAp59+SosWLcp9\nrmUF8aojLCyMV155hS5dulBSUsL9999PXFyc1WGZZsCAASxfvpzDhw/TqFEjxo4dy6BBg6wOyzSr\nVq3ivffec277A5g4cSJdu3a1ODL37d+/nz/84Q+cPn2a06dPc88999CxY0erw/KYQJvKPXDgAL17\n9waMqZaBAwfSuXNni6My18svv8zAgQMpLi4mJiaGOXPmlPs8HV4TEREnv5o+EhERz1JSEBERJyUF\nERFxUlIQEREnJQUREXFSUhARESclBQloni6jER0dzZEjR8o8vnz5clavXl3uaxYtWhRwZd8lcPjV\n4TWRqvL0ISubzVZuLaDPP/+cyMhIbrjhhjI/S0tLC8h+BBIYNFKQoLNz5066detGmzZtuPnmm9m6\ndSsA9913H4899hjt2rUjJiaGefPmAUb106FDhxIXF0fnzp3p0aOH82dgnBRt3bo11113HVu3biUv\nL4/p06fzj3/8g+TkZL744otS93/rrbf405/+dMF7nisvL4/Y2FgGDRrE7373OwYOHMjSpUtp164d\nzZs3Z82aNZ76VyVBSElBgs6DDz7Iyy+/zNdff83zzz/P0KFDnT8rKChg1apVLF68mBEjRgAwf/58\n9uzZw+bNm3n33XdZvXp1qRHIFVdcwTfffMMf//hHpkyZQnR0NA8//DBPPPEEubm53HTTTaXuf/7o\npbx7nm/nzp08+eSTbNmyha1btzJ37lxWrVrFlClTmDBhgln/akQ0fSTBpbCwkNWrV9OvXz/nY8XF\nxYDxZn22cmtcXBwHDhwA4IsvvuDOO+8EcPZKOFefPn0AaNWqFfPnz3c+7koFmYrueb4mTZo4C5i1\naNGCTp06AZCQkEBeXl6l9xFxlZKCBJXTp09Tu3ZtcnNzy/15jRo1nN+ffVM/f93g/Df7iy66CIDQ\n0FBOnTpV5ZjKu+f5zt4DjL4NZ18TEhJSrXuKVETTRxJUatasSZMmTfi///s/wHgT/vbbby/4mnbt\n2jFv3jwcDgcHDhxg+fLlld4nMjLSWYr5fKpBKb5MSUECWlFREY0aNXJ+vfjii7z//vvMmjWLpKQk\nEhISWLhwofP55873n/3+jjvuICoqivj4eO655x5atWpVbn9bm83mfE1aWhoLFiwgOTmZVatWVfi8\niu5Z3rUr+nOglbEWa6l0togLjh8/zmWXXcbhw4dJSUnhyy+/pH79+laHJWI6rSmIuOC2227j6NGj\nFBcXM2rUKCUECVgaKYiIiJPWFERExElJQUREnJQURETESUlBRESclBRERMRJSUFERJz+P8O/Vq30\nkcIBAAAAAElFTkSuQmCC\n",
+ "text": [
+ "<matplotlib.figure.Figure at 0x57c10f0>"
+ ]
+ }
+ ],
+ "prompt_number": 12
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 3.3.13,Page No.117"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "import numpy as np\n",
+ "%matplotlib inline\n",
+ "\n",
+ "#Initilization of Variables\n",
+ "L_AB=L_BC=L_CD=L_DE=L_EF=1 #m #LEngth of AB,BC,CD,DE,EF respectively\n",
+ "M_A=50 #KN/m #Moment at A\n",
+ "w=5 #KN/m #u.v.l\n",
+ "F_D=10 #KN\n",
+ "w2=5 #KN/m #u.d.l\n",
+ "\n",
+ "#Calculations\n",
+ "\n",
+ "#Let R_B & R_E be the Reactions at B and E respectively\n",
+ "#R_B+R_E=20\n",
+ "\n",
+ "#Taking Moment At Pt B,M_B\n",
+ "R_E=(w2*L_EF*(L_EF*2**-1+L_DE+L_CD+L_BC)+w*L_BC*2**-1*2*3**-1+50+F_D*(L_BC+L_CD))*3**-1\n",
+ "R_B=17.5-R_E #KN\n",
+ "\n",
+ "#Shear Force Calculations\n",
+ "\n",
+ "#S.F At F\n",
+ "V_F=0\n",
+ "\n",
+ "#S.F aT E\n",
+ "V_E1=-w2*L_EF #KN\n",
+ "V_E2=V_E1+R_E\n",
+ "\n",
+ "#S.F at D\n",
+ "V_D1=R_E-w2*L_EF #KN\n",
+ "V_D2=V_D1-F_D #KN\n",
+ "\n",
+ "#S.F At C\n",
+ "V_C=V_D2\n",
+ "\n",
+ "#S.F aT B\n",
+ "V_B1=-L_BC*w*2**-1-F_D+R_E-w2*L_EF\n",
+ "V_B2=V_B1+R_B\n",
+ "\n",
+ "#Bending Moment Calculations\n",
+ "\n",
+ "#B.M at F\n",
+ "M_F=0 #KN.m\n",
+ "\n",
+ "#B.M At E\n",
+ "M_E=w2*L_EF*L_EF*2**-1 #KN.m\n",
+ "\n",
+ "#B.M at D\n",
+ "M_D=-R_E*L_DE+w2*L_EF*(L_EF*2**-1+L_DE) #KN.m\n",
+ "\n",
+ "#B.M At C\n",
+ "M_C=F_D*L_CD*R_E*(L_CD+L_DE)+w2*L_EF*(L_EF*2**-1+L_DE+L_CD) #KN.m\n",
+ "\n",
+ "#B.M At B\n",
+ "M_B=F_D*(L_CD+L_BC)-R_E*(L_BC+L_CD+L_DE)+w2*L_EF*(L_EF*2**-1+L_BC+L_CD+L_DE)+1*2**-1*L_BC*w*2*3**-1\n",
+ "\n",
+ "#B.M At A\n",
+ "M_A1=w*L_EF*(L_EF*2**-1+L_AB+L_BC+L_CD+L_DE)-R_E*(L_AB+L_BC+L_CD+L_DE)+F_D*(L_AB+L_BC+L_CD)+1*2**-1*L_BC*w*(2*3**-1*L_BC+L_AB)-R_B*L_AB\n",
+ "M_A2=M_A1+M_A\n",
+ "\n",
+ "#Result\n",
+ "print \"The Shear Force and Bending Moment Diagrams are the results\"\n",
+ "\n",
+ "#Plotting the Shear Force Diagram\n",
+ "\n",
+ "X1=[0,L_EF,L_EF,L_DE+L_EF,L_DE+L_EF,L_CD+L_DE+L_EF,L_CD+L_DE+L_EF+L_BC,L_CD+L_DE+L_EF+L_BC]\n",
+ "Y1=[V_F,V_E1,V_E2,V_D1,V_D2,V_C,V_B1,V_B2]\n",
+ "Z1=[0,0,0,0,0,0,0,0]\n",
+ "plt.plot(X1,Y1,X1,Z1)\n",
+ "plt.xlabel(\"Length x in m\")\n",
+ "plt.ylabel(\"Shear Force in kN\")\n",
+ "plt.show()\n",
+ "\n",
+ "#Plotting the Bendimg Moment Diagram\n",
+ "\n",
+ "X2=[0,L_EF,L_DE+L_EF,L_CD+L_DE+L_EF,L_CD+L_DE+L_EF+L_BC,L_CD+L_DE+L_EF+L_BC+L_AB,L_CD+L_DE+L_EF+L_BC+L_AB]\n",
+ "Y2=[M_F,M_E,M_D,M_C,M_B,M_A1,M_A2]\n",
+ "Z2=[0,0,0,0,0,0,0]\n",
+ "plt.plot(X2,Y2,X2,Z2)\n",
+ "plt.xlabel(\"Length in m\")\n",
+ "plt.ylabel(\"Bending Moment in kN.m\")\n",
+ "plt.show()"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "The Shear Force and Bending Moment Diagrams are the results\n"
+ ]
+ },
+ {
+ "metadata": {},
+ "output_type": "display_data",
+ "png": "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\n9fRALU6VlZUpPDxckrRlyxaNHDmyxfVc+YUAAK6xZIRw8803q6ioSIZhKDo6WuvXr1doaKi3ywAA\nnMPyXUYAAN/gE2cq5+fna8SIERo6dKjuv//+Fte57bbbNHToUCUkJKiwsNDLFTZwVmdBQYEuuugi\n+wl399xzj9drnDdvnkJDQx3uhpN8oy+d1ekLfVlaWqq0tDTFxcUpPj5ejz76aIvrWd2fbanTF/rz\n7NmzSk5OVmJiomJjY/Wb3/ymxfWs7s+21OkL/SlJdXV1SkpK0owZM1p8v919aVqstrbWHDx4sFlc\nXGxWV1ebCQkJ5v79+5uss23bNnPq1KmmaZrmnj17zOTkZJ+s8+233zZnzJjh9drOtXPnTvPjjz82\n4+PjW3zfF/rSNJ3X6Qt9WVZWZhYWFpqmaZonTpwwhw0b5pP/NttSpy/0p2ma5qlTp0zTNM2amhoz\nOTnZfPfdd5u87wv9aZrO6/SV/nzooYfMn/70py3W4kpfWj5C2Lt3r4YMGaKoqCj5+/vrhhtu0Nat\nW5usk5eXp+zsbElScnKyqqqqVFFR4XN1StafcJeSkqJ+/fo5fN8X+lJyXqdkfV+GhYUpMTFRkhQY\nGKiYmBgdPXq0yTq+0J9tqVOyvj8lqU+fPpKk6upq1dXVqX///k3e94X+bEudkvX9efjwYb3++uta\nsGBBi7W40peWB8KRI0cUGRlpfx0REaEjR444Xefw4cNeq9FRDefXaRiG3n//fSUkJGjatGnav3+/\nV2tsC1/oy7bwtb4sKSlRYWGhkpOTmyz3tf50VKev9Gd9fb0SExMVGhqqtLQ0xcbGNnnfV/rTWZ2+\n0J+//OUv9cADD8jPr+WvcVf60vJAMNp4ttT5CdjWz7lLW9obPXq0SktL9cknn2jp0qWaOXOmFypr\nP6v7si18qS9PnjypWbNmae3atQoMDGz2vq/0Z2t1+kp/+vn5qaioSIcPH9bOnTtbvBSEL/Snszqt\n7s/XXntNISEhSkpKanWk0t6+tDwQBg0apNLSUvvr0tJSRUREtLrO4cOHNWjQIK/V2FINLdUZFBRk\nH2pOnTpVNTU1qqys9GqdzvhCX7aFr/RlTU2NsrKydOONN7b4R+8r/emsTl/pz0YXXXSRpk+fro8+\n+qjJcl/pz0aO6rS6P99//33l5eUpOjpac+bM0Y4dO3TzzTc3WceVvrQ8EMaOHauDBw+qpKRE1dXV\nevHFF5WZmdlknczMTD377LOSpD179qhv375eP2+hLXVWVFTYE3nv3r0yTbPFfY9W8oW+bAtf6EvT\nNDV//nzFxsZq2bJlLa7jC/3Zljp9oT+/++47+3XLzpw5o+3btyspKanJOr7Qn22p0+r+XL16tUpL\nS1VcXKwXXnhBEydOtPdbI1f60pIzlZsU0LOnHnvsMV111VWqq6vT/PnzFRMTo/Xr10uSFi1apGnT\npun111/XkCFDFBAQoI0bN/pknZs3b9af/vQn9ezZU3369NELL7zg9TrnzJmjd955R999950iIyN1\n9913q6amxl6jL/RlW+r0hb7ctWuXNm3apFGjRtm/EFavXq1//etf9jp9oT/bUqcv9GdZWZmys7NV\nX1+v+vp63XTTTZo0aZLP/a23pU5f6M9zNe4K6mhfcmIaAECSD+wyAgD4BgIBACCJQAAA2BAIAABJ\nBAIAwIZAAABIIhDQCbV0+Qh3euSRR3TmzBm3t/fqq686vLw74As4DwGdTlBQkE6cOOGx7UdHR+uj\njz7SgAEDvNIe4CsYIaBL+PrrrzV16lSNHTtWP/7xj3XgwAFJ0i233KJf/OIXmjBhggYPHqzc3FxJ\nDVezXLJkiWJiYpSRkaHp06crNzdX69at09GjR5WWlqZJkybZt3/nnXcqMTFR48eP17ffftus/WXL\nlmnVqlWSpH/84x+68sorm63z9NNPa+nSpa3Wda6SkhKNGDFCc+fO1fDhw/Wzn/1Mb7zxhiZMmKBh\nw4bpww8/7HjHAedy9cYMgFUCAwObLZs4caJ58OBB0zQbbgYyceJE0zRNMzs727zuuutM0zTN/fv3\nm0OGDDFN0zRffvllc9q0aaZpmmZ5ebnZr18/Mzc31zRN04yKijK///57+7YNwzBfe+010zRN8447\n7jDvueeeZu2fPn3ajIuLM3fs2GEOHz7cPHToULN1nn76afPWW29tta5zFRcXmz179jQ/++wzs76+\n3hwzZow5b9480zRNc+vWrebMmTOd9hXQHpZfywjoqJMnT2r37t2aPXu2fVl1dbWkhmu8NF79MyYm\nxn6DkPfee0/XXXedJNmvee9Ir169NH36dEnSmDFjtH379mbrXHjhhXryySeVkpKitWvXKjo6utWa\nHdV1vujoaMXFxUmS4uLiNHnyZElSfHy8SkpKWm0DaC8CAZ1efX29+vbt6/Cesb169bI/N21TZoZh\nNLlWvNnKVJq/v7/9uZ+fn2pra1tcb9++fRo4cGCzGyc50lJd5+vdu3eTths/01odgKuYQ0CnFxwc\nrOjoaG3evFlSw5frvn37Wv3MhAkTlJubK9M0VVFRoXfeecf+XlBQkI4fP96uGr755hv94Q9/UGFh\nof7+979r7969zdZpLXQAX0AgoNM5ffq0IiMj7Y9HHnlEzz33nDZs2KDExETFx8crLy/Pvv65d4lq\nfJ6VlaWIiAjFxsbqpptu0ujRo3XRRRdJkhYuXKgpU6bYJ5XP//z5d50yTVMLFizQQw89pLCwMG3Y\nsEELFiyw77Zy9FlHz8//jKPXvninO3RuHHaKbuvUqVMKCAjQ999/r+TkZL3//vsKCQmxuizAMswh\noNu6+uqrVVVVperqat11112EAbo9RggAAEnMIQAAbAgEAIAkAgEAYEMgAAAkEQgAABsCAQAgSfp/\np8METwRPdJcAAAAASUVORK5CYII=\n",
+ "text": [
+ "<matplotlib.figure.Figure at 0x570b4f0>"
+ ]
+ },
+ {
+ "metadata": {},
+ "output_type": "display_data",
+ "png": "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\nQmCC\n",
+ "text": [
+ "<matplotlib.figure.Figure at 0x56fe390>"
+ ]
+ }
+ ],
+ "prompt_number": 13
+ }
+ ],
+ "metadata": {}
+ }
+ ]
+}
\ No newline at end of file diff --git a/Strength_Of_Materials_by_S_S_Bhavikatti/chapter_no.4_tHf77dd.ipynb b/Strength_Of_Materials_by_S_S_Bhavikatti/chapter_no.4_tHf77dd.ipynb new file mode 100644 index 00000000..ac226466 --- /dev/null +++ b/Strength_Of_Materials_by_S_S_Bhavikatti/chapter_no.4_tHf77dd.ipynb @@ -0,0 +1,1661 @@ +{
+ "metadata": {
+ "name": "chapter no.4.ipynb"
+ },
+ "nbformat": 3,
+ "nbformat_minor": 0,
+ "worksheets": [
+ {
+ "cells": [
+ {
+ "cell_type": "heading",
+ "level": 1,
+ "metadata": {},
+ "source": [
+ "Chapter 4:Stresses in Beams"
+ ]
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 4.4.1,Page no.130"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "import numpy as np\n",
+ "\n",
+ "#Initilization of Variables\n",
+ "\n",
+ "L=5000 #mm #Length of Beam\n",
+ "a=2000 #mm #Length of start of beam to Pt Load\n",
+ "b=3000 #mm #Length of Pt load to end of beam\n",
+ "A=150*250 #m**2 #Area of beam \n",
+ "b=150 #mm #Width of beam\n",
+ "d=250 #mm #Depth of beam\n",
+ "sigma=10#N/mm**2 #stress\n",
+ "l=2000 #m #Load applied from one end\n",
+ "\n",
+ "#Calculations\n",
+ "\n",
+ "#Moment of Inertia\n",
+ "I=1*12**-1*b*d**3 #m**4\n",
+ "\n",
+ "#Distance from N.A to end\n",
+ "y_max=d*2**-1 #m\n",
+ "\n",
+ "#Section Modulus\n",
+ "Z=1*6**-1*b*d**2 #mm**3\n",
+ "\n",
+ "#Moment Carrying Capacity\n",
+ "M=sigma*Z #N-mm\n",
+ "\n",
+ "#Let w be the Intensity of the Load in N/m,then Max moment\n",
+ "#M_max=w*L**2*8**-1 #N-mm\n",
+ "#After substituting values and further simplifying we get\n",
+ "#M_max=w*25*100*8**-1\n",
+ "\n",
+ "#EQuating it to moment carrying capacity,we get max intensity load\n",
+ "w=M*(25*1000)**-1*8*10**-3\n",
+ "\n",
+ "#Part-2\n",
+ "\n",
+ "#Let P be the concentrated load,then max moment occurs under the load and its value\n",
+ "#M1=P*a*b*L**-1 #N-mm\n",
+ "\n",
+ "#Equting it to moment carrying capacity we get\n",
+ "P=M*1200**-1*10**-3 #N\n",
+ "\n",
+ "#Result\n",
+ "print\"Max Intensity of u.d.l it can carry\",round(w,3),\"KN-m\"\n",
+ "print\"MAx concentrated Load P apllied at 2 m from one end is\",round(P,3),\"KN\""
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Max Intensity of u.d.l it can carry 5.0 KN-m\n",
+ "MAx concentrated Load P apllied at 2 m from one end is 13.021 KN\n"
+ ]
+ }
+ ],
+ "prompt_number": 2
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 4.4.2,Page no.131"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "import numpy as np\n",
+ "\n",
+ "#Initilization of Variables\n",
+ "\n",
+ "D=70 #mm #External Diameter\n",
+ "t=8 #mm #Thickness of pipe\n",
+ "L=2500 #mm #span \n",
+ "sigma=150 #N/mm**2 #stress\n",
+ "\n",
+ "#Calculations\n",
+ "\n",
+ "#Internal Diameter \n",
+ "d=D-2*t #mm\n",
+ "\n",
+ "#M.I Of Pipe\n",
+ "I=pi*64**-1*(D**4-d**4) #mm**4\n",
+ "\n",
+ "y_max=D*2**-1 #mm\n",
+ "Z=I*(y_max)**-1 #mm**3\n",
+ "\n",
+ "#Moment Carrying capacity\n",
+ "M=sigma*Z #N*mm\n",
+ "\n",
+ "#Max moment int the beam occurs at the mid-span and is equal to\n",
+ "#m=P*L*4**-1\n",
+ "\n",
+ "#Equating Max moment to moment carrying capacity we get,\n",
+ "#M=P*2.5*L*4**-1\n",
+ "#After substituting and simplifying we get\n",
+ "P=4*M*(L)**-1*10**-3 #N\n",
+ "\n",
+ "#Result\n",
+ "print\"Max concentrated load that can be applied at the centre of span is\",round(P,3),\"KN\""
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Max concentrated load that can be applied at the centre of span is 5.22 KN\n"
+ ]
+ }
+ ],
+ "prompt_number": 9
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 4.4.3,Page no.132"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "import numpy as np\n",
+ "\n",
+ "#Initilization of Variables\n",
+ "\n",
+ "#Flanges Dimension\n",
+ "b1=180 #mm #Width\n",
+ "d1=10 #mm #Thickness\n",
+ "\n",
+ "D=500 #mm #Overall depth\n",
+ "t=8 #mm #Thickness of web\n",
+ "\n",
+ "#Plate Dimensions\n",
+ "b2=240 #mm #Width\n",
+ "t2=12 #mm #Thickness\n",
+ "\n",
+ "sigma=150 #N/mm**2 #Stress\n",
+ "L=3000 #mm #span\n",
+ "\n",
+ "#Calculations\n",
+ "\n",
+ "#Distance of centroid from bottom fibre\n",
+ "y_bar=(b2*t2*(D+t2*2**-1)+b1*d1*(D-t1*2**-1)+(D-2*t1)*t*D*2**-1+(b1*t1*t1*2**-1))*(b2*t2+b1*d1+b1*d1+(D-2*d1)*t)**-1\n",
+ "\n",
+ "#M.I of section\n",
+ "I=(1*12**-1*b2*t2**3+b2*t2*(D+t2*2**-1-y_bar)**2+1*12**-1*b1*d1**3+b1*d1*(D-t1*2**-1-y_bar)**2+1*12**-1*b1*t1**3+b1*t1*(t1*2**-1-y_bar)**2+1*12**-1*t*(D-2*t1)**3+t*(D-2*t1)*(D*2**-1-y_bar)**2)\n",
+ "\n",
+ "#Section Modulus\n",
+ "Z=I*(y_bar)**-1 #mm**3\n",
+ "\n",
+ "#Moment or Resistance\n",
+ "M=sigma*Z\n",
+ "\n",
+ "#Let Load on Cantilever be w/m Length \n",
+ "#Max M.I produced\n",
+ "#M_max=w*L**2**-1 \n",
+ "\n",
+ "#Now Equating Moment of resistance to Max moment,we get Max load\n",
+ "#4.5*w=M\n",
+ "#After rearranging and further simplifying we get\n",
+ "w=M*4.5**-1*10**3*10**-9\n",
+ "\n",
+ "#Result\n",
+ "print\"Moment of Resistance is\",round(M,2),\"KN-mm\"\n",
+ "print\"Load the section can carry is\",round(w,3),\"KN/m\""
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Moment of Resistance is 198770121.83 KN-mm\n",
+ "Load the section can carry is 44.171 KN/m\n"
+ ]
+ }
+ ],
+ "prompt_number": 26
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 4.4.4,Page no.134"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "import numpy as np\n",
+ "\n",
+ "#Initilization of Variables\n",
+ "\n",
+ "#Flange (Top)\n",
+ "b1=80 #mm #Width \n",
+ "t1=40 #mm #Thickness\n",
+ "\n",
+ "#Flange (Bottom)\n",
+ "b2=160 #mm #width\n",
+ "t2=40 #mm #Thickness\n",
+ "\n",
+ "#web\n",
+ "d=120 #mm #Depth\n",
+ "t3=20 #mm #Thickness\n",
+ "\n",
+ "D=200 #mm #Overall Depth\n",
+ "sigma1=30 #N/mm**2 #Tensile stress\n",
+ "sigma2=90 #N/mm**2 #Compressive stress\n",
+ "L=6000 #mm #Span\n",
+ "\n",
+ "#Calculations\n",
+ "\n",
+ "#Distance of centroid from bottom fibre\n",
+ "y_bar=(b1*t1*(D-t1*2**-1)+d*t3*(d*2**-1+t2)+b2*t2*t2*2**-1)*(b1*t1+d*t3+b2*t2)**-1 #mm\n",
+ "\n",
+ "#Moment of Inertia\n",
+ "I=1*12**-1*b1*t1**3+b1*t1*(D-t1*2**-1-round(y_bar,2))**2+1*12**-1*t3*d**3+t3*d*(d*2**-1+t2-round(y_bar,2))**2+1*12**-1*b2*t2**3+b2*t2*(t2*2**-1-round(y_bar,2))**2\n",
+ "\n",
+ "#Extreme fibre distance of top and bottom fibres are y_t and y_c respectively\n",
+ "\n",
+ "y_t=y_bar #mm\n",
+ "y_c=D-y_bar #mm\n",
+ "\n",
+ "#Moment carrying capacity considering Tensile strength \n",
+ "M1=sigma1*I*y_t**-1*10**-6 #KN-m\n",
+ "\n",
+ "#Moment carrying capacity considering compressive strength \n",
+ "M2=sigma2*I*y_c**-1*10**-6 #KN-m\n",
+ "\n",
+ "#Max Bending moment in simply supported beam 6 m due to u.d.l\n",
+ "#M_max=w*L*10**-3*8**-1\n",
+ "#After simplifying further we get\n",
+ "#M_max=4.5*w\n",
+ "\n",
+ "#Now Equating it to Moment carrying capacity, we get load carrying capacity\n",
+ "w=M1*4.5**-1 #KN/m\n",
+ "\n",
+ "#Result\n",
+ "print\"Max Uniformly Distributed Load is\",round(w,3),\"KN/m\""
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Max Uniformly Distributed Load is 5.096 KN/m\n"
+ ]
+ }
+ ],
+ "prompt_number": 16
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 4.4.5,Page no.136"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "import numpy as np\n",
+ "\n",
+ "#Initilization of Variables\n",
+ "\n",
+ "#Flanges\n",
+ "b=200 #mm #Width\n",
+ "t=25 #mm #Thickness \n",
+ "\n",
+ "D1=500 #mm #Overall Depth\n",
+ "t2=20 #mm #Thickness of web\n",
+ "\n",
+ "d=450 #mm #Depth of web\n",
+ "\n",
+ "#Calculations\n",
+ "\n",
+ "#Consider,Element of Thickness \"y\" at Distance \"dy\" from N.A \n",
+ "#Let Bending stress \"sigma_max\"\n",
+ "\n",
+ "#Stress on the element \n",
+ "#sigma=y*(D*2**-1)*sigma_max ..............(1)\n",
+ "\n",
+ "#Area of Element\n",
+ "#A=b*dy .................................(2)\n",
+ "\n",
+ "#Force on Element \n",
+ "#F=y*250**-1*sigma_max*b*dy\n",
+ "\n",
+ "#Let M be the Moment of resistance\n",
+ "#M=y*250**-1*sigma_max*b*dy*y\n",
+ "\n",
+ "#Moment of Resistance of top flange be M1\n",
+ "def integrand(y, b, D):\n",
+ " return b*y**2*D**-1\n",
+ "b=200 \n",
+ "D=250\n",
+ "\n",
+ "X = quad(integrand, 225, 250, args=(b,D))\n",
+ "\n",
+ "Y=2*X[0]\n",
+ "\n",
+ "#M1=Y*sigma\n",
+ "\n",
+ "#Now Moment of Inertia I section is\n",
+ "X=b*D1**3\n",
+ "Y=(b-t2)*d**3\n",
+ "I=(X-Y)*12**-1*10**-8\n",
+ "\n",
+ "#Moment acting on the entire section\n",
+ "#since sigmais the value at y=250\n",
+ "y_max=250\n",
+ "Z=I*10**8*y_max**-1\n",
+ "#M=sigma*Z \n",
+ "#After Simplifying Further we get\n",
+ "#M2=Z*sigma\n",
+ "\n",
+ "#Percentage Moment resisted by Flanges\n",
+ "P1=2258333.3*(2865833.3)**-1*100\n",
+ "\n",
+ "#Percentage Moment resisted by web\n",
+ "P2=100-P1\n",
+ "\n",
+ "#Result\n",
+ "print\"Percentage Moment resisted by Flanges\",round(P1,2),\"%\"\n",
+ "print\"Percentage Moment resisted by web\",round(P2,2),\"%\""
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Percentage Moment resisted by Flanges 78.8 %\n",
+ "Percentage Moment resisted by web 21.2 %\n"
+ ]
+ }
+ ],
+ "prompt_number": 38
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 4.4.6,Page no.137"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "import numpy as np\n",
+ "\n",
+ "#Initilization of Variables\n",
+ "\n",
+ "#Flanges\n",
+ "b1=200 #mm #Width\n",
+ "t1=10 #mm #Thickness\n",
+ "\n",
+ "#Web\n",
+ "d=380 #mm #Depth \n",
+ "t2=8 #mm #Thickness\n",
+ "\n",
+ "D=400 #mm #Overall Depth\n",
+ "sigma=150 #N/mm**2\n",
+ "\n",
+ "#Calculations\n",
+ "\n",
+ "#Area\n",
+ "A=b1*t1+d*t2+b1*t1 #mm**2\n",
+ "\n",
+ "#Moment of Inertia\n",
+ "I=1*12**-1*(b1*D**3-(b1-t2)*d**3)\n",
+ "\n",
+ "#Bending Moment\n",
+ "M=sigma*I*(D*2**-1)**-1\n",
+ "\n",
+ "#Square Section\n",
+ "\n",
+ "#Let 'a' be the side\n",
+ "a=A**0.5\n",
+ "\n",
+ "#Moment of Resistance of this section\n",
+ "M1=1*6**-1*a*a**2*sigma\n",
+ "\n",
+ "X=M*M1**-1\n",
+ "\n",
+ "#Rectangular section\n",
+ "#Let 'a' be the side and depth be 2*a\n",
+ "\n",
+ "a=(A*2**-1)**0.5\n",
+ "\n",
+ "#Moment of Rectangular secction\n",
+ "M2=1*6**-1*a*(2*a)**2*sigma\n",
+ "\n",
+ "X2=M*M2**-1\n",
+ "\n",
+ "#Circular section\n",
+ "#A=pi*d1**2*4**-1\n",
+ "\n",
+ "d1=(A*4*pi**-1)**0.5\n",
+ "\n",
+ "#Moment of circular section\n",
+ "M3=pi*32**-1*d1**3*sigma\n",
+ "\n",
+ "X3=M*M3**-1\n",
+ "\n",
+ "#Result\n",
+ "print\"Moment of resistance of beam section\",round(M,2),\"mm\"\n",
+ "print\"Moment of resistance of square section\",round(X,2),\"mm\"\n",
+ "print\"Moment of resistance of rectangular section\",round(X2,2),\"mm\"\n",
+ "print\"Moment of resistance of circular section\",round(X3,2),\"mm\""
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Moment of resistance of beam section 141536000.0 mm\n",
+ "Moment of resistance of square section 9.58 mm\n",
+ "Moment of resistance of rectangular section 6.78 mm\n",
+ "Moment of resistance of circular section 11.33 mm\n"
+ ]
+ }
+ ],
+ "prompt_number": 25
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 4.4.7,Page no.139"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "import numpy as np\n",
+ "\n",
+ "#Initilization of Variables\n",
+ "\n",
+ "F=12 #KN #Force at End of beam\n",
+ "L=2 #m #span\n",
+ "\n",
+ "#Square section \n",
+ "b=d=200 #mm #Width and depth of beam\n",
+ "\n",
+ "#Rectangular section\n",
+ "b1=150 #mm #Width\n",
+ "d1=300 #mm #Depth\n",
+ "\n",
+ "#Calculations\n",
+ "\n",
+ "#Max bending Moment\n",
+ "M=F*L*10**6 #N-mm\n",
+ "\n",
+ "#M=sigma*b*d**2\n",
+ "sigma=M*6*(b*d**2)**-1 #N/mm**2\n",
+ "\n",
+ "#Let W be the central concentrated Load in simply supported beam of span L1=3 m\n",
+ "#MAx Moment\n",
+ "#M1=W*L1*4**-1\n",
+ "#After Further simplifying we get\n",
+ "#M1=0.75*10**6 #N-mm\n",
+ "\n",
+ "#The section has a moment of resistance\n",
+ "M1=sigma*1*6**-1*b1*d1**2\n",
+ "\n",
+ "#Equating it to moment of resistance we get max load W\n",
+ "#0.75*10**6*W=M1\n",
+ "#After Further simplifying we get\n",
+ "W=M1*(0.75*10**6)**-1\n",
+ "\n",
+ "#Result\n",
+ "print\"Minimum Concentrated Load required to brek the beam\",round(W,2),\"KN\""
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Minimum Concentrated Load required to brek the beam 54.0 KN\n"
+ ]
+ }
+ ],
+ "prompt_number": 30
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 4.4.8,Page no.140"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "import numpy as np\n",
+ "\n",
+ "#Initilization of Variables\n",
+ "\n",
+ "L=3 #m #span\n",
+ "sigma_t=35 #N/mm**2 #Permissible stress in tension\n",
+ "sigma_c=90 #N/mm**2 #Permissible stress in compression\n",
+ "\n",
+ "#Flanges\n",
+ "t=30 #mm #Thickness\n",
+ "d=250 #mm #Depth\n",
+ "\n",
+ "#Web\n",
+ "t2=25 #mm #Thickness\n",
+ "b=600 #mm #Width\n",
+ "\n",
+ "#Calculations\n",
+ "\n",
+ "#Let y_bar be the Distance of N.A from Extreme Fibres\n",
+ "y_bar=(t*d*d*2**-1*2+(b-2*t)*t2*t2*2**-1)*(t*d*2+(b-2*t)*t2)**-1\n",
+ "\n",
+ "#Moment of Inertia\n",
+ "I=(1*12**-1*t*d**3+t*d*(d*2**-1-y_bar)**2)*2+1*12**-1*(b-2*t)*t2**3+(b-2*t)*t2*(t2*2**-1-y_bar)**2\n",
+ "\n",
+ "#Part-1\n",
+ "\n",
+ "#If web is in Tension\n",
+ "y_t=y_bar #mm\n",
+ "y_c=d-y_bar #mm\n",
+ "\n",
+ "#Moment carrying caryying capacity From consideration of tensile stress\n",
+ "M=sigma_t*I*(y_bar)**-1 #N-mm\n",
+ "\n",
+ "#Moment carrying caryying capacity From consideration of compressive stress\n",
+ "M1=sigma_c*I*(y_c)**-1 #N-mm\n",
+ "\n",
+ "#If w KN/m is u.d.l in beam,Max bending moment\n",
+ "#M=wl**2*8**-1\n",
+ "#After further simplifyng we get\n",
+ "#M=1.125*w*10**6 N-mm\n",
+ "w=M*(1.125*10**6)**-1 #KN\n",
+ "\n",
+ "#Part-2\n",
+ "\n",
+ "#If web is in compression\n",
+ "y_t2=178.299 #mm\n",
+ "y_c2=71.71 #mm \n",
+ "\n",
+ "#Moment carrying caryying capacity From consideration of tensile stress\n",
+ "M2=sigma_t*I*(y_t2)**-1 #N-mm\n",
+ "\n",
+ "#Moment carrying caryying capacity From consideration of compressive stress\n",
+ "M3=sigma_c*I*(y_c2)**-1 #N-mm\n",
+ "\n",
+ "#Moment of resistance is M2\n",
+ "\n",
+ "#Equating it to bending moment we get\n",
+ "#M2=1.125*10**6*w2\n",
+ "#After further simplifyng we get\n",
+ "w2=M2*(1.125*10**6)**-1\n",
+ "\n",
+ "#Result\n",
+ "print\"Uniformly Distributed Load carrying capacity if:web is in Tension\",round(w,2),\"KN\"\n",
+ "print\" :web is in compression\",round(w2,3),\"KN\""
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Uniformly Distributed Load carrying capacity if:web is in Tension 73.21 KN\n",
+ " :web is in compression 29.446 KN\n"
+ ]
+ }
+ ],
+ "prompt_number": 26
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 4.4.9,Page no.141"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "import numpy as np\n",
+ "\n",
+ "#Initilization of Variables\n",
+ "\n",
+ "b1=200 #mm #Width at base\n",
+ "b2=100 #mm #Width at top\n",
+ "\n",
+ "L=8 #m Length\n",
+ "P=500 #N #Load\n",
+ "\n",
+ "#Calculations\n",
+ "\n",
+ "#Consider a section at y metres from top\n",
+ "\n",
+ "#At this section diameter d is\n",
+ "#d=b2+y*L**-1*(b1-b2)\n",
+ "#After Further simplifying we get\n",
+ "#d=b2+12.5*y #mm\n",
+ "\n",
+ "#Moment of Inertia\n",
+ "#I=pi*64**-1*d**4\n",
+ "\n",
+ "#Section Modulus \n",
+ "#Z=pi*32**-1*(b1+12.5*y)**3\n",
+ "\n",
+ "#Moment \n",
+ "#M=5*10**5*y #N-mm\n",
+ "\n",
+ "#Let sigma be the fibre stress at this section then\n",
+ "#M=sigma*Z\n",
+ "#After sub values in above equation and further simplifying we get\n",
+ "#sigma=5*10**5*32*pi**-1*y*((b2+12.5*y)**3)**-1\n",
+ "\n",
+ "#For sigma to be Max,d(sigma)*(dy)**-1=0\n",
+ "#16*10**6*pi**-1*((b2+12.5*y)**-3+y*(-3)*(b2+12.5*y)**-4*12.5)\n",
+ "#After Further simplifying we get\n",
+ "#b2+12.5*y=37.5*y\n",
+ "#After Further simplifying we get\n",
+ "y=b2*25**-1 #m\n",
+ "\n",
+ "#Stress at this section\n",
+ "sigma=5*10**5*32*pi**-1*y*((b2+12.5*y)**3)**-1\n",
+ "\n",
+ "#Result\n",
+ "print\"Stress at Extreme Fibre is max\",round(y,2),\"m\"\n",
+ "print\"Max stress is\",round(sigma,2),\"N/mm**2\""
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Stress at Extreme Fibre is max 4.0 m\n",
+ "Max stress is 6.04 N/mm**2\n"
+ ]
+ }
+ ],
+ "prompt_number": 28
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 4.4.10,Page no.143"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "import numpy as np\n",
+ "\n",
+ "#Initilization of Variables\n",
+ "H=10 #mm #Height\n",
+ "A1=160*160 #mm**2 #area of square section at bottom\n",
+ "L1=160 #mm #Length of square section at bottom\n",
+ "b1=160 #mm #width of square section at bottom\n",
+ "A2=80*80 #mm**2 #area of square section at top\n",
+ "L2=80 #mm #Length of square section at top\n",
+ "b2=80 #mm #Width of square section at top\n",
+ "P=100 #N #Pull\n",
+ "\n",
+ "#Calculations\n",
+ "\n",
+ "#Consider a section at distance y from top.\n",
+ "#Let the side of square bar be 'a'\n",
+ "#a=L2+y*(H)**-1*(b1-b2)\n",
+ "#After further simplifying we get\n",
+ "#a=L2+8*y\n",
+ "\n",
+ "#Moment of Inertia\n",
+ "#I=2*1*12**-1*a*(2)**0.5*(a*((2)**0.5)**-1)**3\n",
+ "#After further simplifying we get\n",
+ "#I=a**4*12**-1\n",
+ "\n",
+ "#Section Modulus \n",
+ "#Z=a**4*(12*a*(2)**0.5)**-1\n",
+ "#After further simplifying we get\n",
+ "#Z=2**0.5*a**3*(12)**-1 #mm**3\n",
+ "\n",
+ "#Bending moment at this section=100*y N-mm\n",
+ "#M=100*10**3*y #N-mm\n",
+ "\n",
+ "#But\n",
+ "#M=sigma*Z\n",
+ "#After sub values in above equation we get\n",
+ "#sigma=M*Z**-1\n",
+ "#After further simplifying we get\n",
+ "#sigma=1200*10**3*(2**0.5)**-1*y*((80+80*y)**3)**-1 .......(1)\n",
+ "\n",
+ "#For Max stress df*(dy)**-1=0\n",
+ "#After taking Derivative of above equation we get\n",
+ "#df*(dy)**-1=1200*10**3*(2**0.5)**-1*((80+8*y)**-3+y(-3)*(80+8*y)**-4*8)\n",
+ "#After further simplifying we get\n",
+ "y=80*16**-1 #m\n",
+ "\n",
+ "#Max stress at this level is\n",
+ "sigma=1200*10**3*(2**0.5)**-1*y*((80+8*y)**3)**-1\n",
+ "\n",
+ "#Result\n",
+ "print\"Max Bending stress is Developed at\",round(y,3),\"m\"\n",
+ "print\"Value of Max Bending stress is\",round(sigma,3),\"N/mm**2\""
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Max Bending stress is Developed at 5.0 m\n",
+ "Value of Max Bending stress is 2.455 N/mm**2\n"
+ ]
+ }
+ ],
+ "prompt_number": 4
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 4.4.12,Page no.147"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "import numpy as np\n",
+ "\n",
+ "#Initilization of Variables\n",
+ "\n",
+ "b=200 #mm #Width of timber \n",
+ "d=400 #mm #Depth of timber\n",
+ "t=6 #mm #Thickness\n",
+ "b2=200 #mm #width of steel plate\n",
+ "t2=20 #mm #Thickness of steel plate\n",
+ "M=40*10**6 #KN-mm #Moment\n",
+ "#Let E_s*E_t**-1=X\n",
+ "X=20 #Ratio of Modulus of steel to timber\n",
+ "\n",
+ "#Calculations\n",
+ "\n",
+ "#let y_bar be the Distance of centroidfrom bottom most fibre\n",
+ "y_bar=(b*d*(b+t)+t2*b2*t*t*2**-1)*(b*d+t2*b2*t)**-1 #mm\n",
+ "\n",
+ "#Moment of Inertia\n",
+ "I=1*12**-1*b*d**3+b*d*(b+t-round(y_bar,3))**2+1*12**-1*t2*b2*t**3+b2*t2*t*(round(y_bar,3)-t*2**-1)**2\n",
+ "\n",
+ "#distance of the top fibre from N-A\n",
+ "y_1=d+t-y_bar #mm\n",
+ "\n",
+ "#Distance of the junction of timber and steel From N-A\n",
+ "y_2=y_bar-t #mm\n",
+ "\n",
+ "#Stress in Timber at the top\n",
+ "Y=M*I**-1*y_1 #N/mm**2\n",
+ "\n",
+ "#Stress in the Timber at the junction point\n",
+ "Z=M*I**-1*y_2\n",
+ "\n",
+ "#Coressponding stress in steel at the junction point\n",
+ "Z2=X*Z #N/mm**2 \n",
+ "\n",
+ "#The stress in Extreme steel fibre \n",
+ "Z3=X*M*I**-1*y_bar\n",
+ "\n",
+ "#Result\n",
+ "print\"Stress in Extreme steel Fibre\",round(Z3,2),\"N/mm**2\""
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Stress in Extreme steel Fibre 69.67 N/mm**2\n"
+ ]
+ }
+ ],
+ "prompt_number": 23
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 4.4.13,Page no.149"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "import numpy as np\n",
+ "\n",
+ "#Initilization of Variables\n",
+ "\n",
+ "#Timber size\n",
+ "b=150 #mm #Width\n",
+ "d=300 #mm #Depth\n",
+ "\n",
+ "t=6 #mm #Thickness of steel plate\n",
+ "l=6 #m #Span\n",
+ "\n",
+ "#E_s*E_t**-1=20 \n",
+ "#m=E_s*E_t**-1\n",
+ "m=20 \n",
+ "sigma_timber=8 #N/mm**2 #Stress in timber\n",
+ "sigma_steel=150 #N/mm**2 #Stress in steel plate\n",
+ "\n",
+ "#Let m*t=Y\n",
+ "Y=m*t #mm\n",
+ "L=(2*t+b)*m #mm #Width of flitched beam\n",
+ "\n",
+ "#Calculations\n",
+ "\n",
+ "#Due to synnetry cenroid,the neutral axis is half the depth\n",
+ "I=(1*12**-1*L*t**3+L*t*(b+t*2**-1)**2)*2+1*12**-1*(Y+b+Y)*d**3 #mm**4\n",
+ "\n",
+ "y_max1=150 #mm #For timber\n",
+ "y_max2=156 #mm #For steel\n",
+ "\n",
+ "#stress in steel\n",
+ "f_t1=1*m**-1*sigma_steel #N/mm**2\n",
+ "\n",
+ "#Moment of resistance\n",
+ "M=f_t1*(I*y_max2**-1)\n",
+ "\n",
+ "#load\n",
+ "w=8*M*(l**2)**-1*10**-6 #KN/m\n",
+ "\n",
+ "#Result\n",
+ "print\"Load beam can carry is\",round(w,2),\"KN/m\""
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Load beam can carry is 19.1 KN/m\n"
+ ]
+ }
+ ],
+ "prompt_number": 17
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 4.4.14,Page no.151"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "import numpy as np\n",
+ "\n",
+ "#Initilization of Variables\n",
+ "\n",
+ "L=6000 #mm #Span of beam\n",
+ "W=20*10**3 #N #Load\n",
+ "sigma=8 #N/mm**2 #Stress\n",
+ "b=200 #mm #Width of section\n",
+ "d=300 #mm #Depth of section\n",
+ "\n",
+ "#Calculations\n",
+ "\n",
+ "#let x be the distance from left side of beam\n",
+ "\n",
+ "#Bending moment\n",
+ "#M=W*2**-1*x #Nmm .......(1)\n",
+ "\n",
+ "#But M=sigma*Z ..........(2)\n",
+ "\n",
+ "#Equating equation 1 and 2 we get\n",
+ "#W*2**-1*x=sigma*Z ............(3)\n",
+ "\n",
+ "#Section Modulus \n",
+ "#Z=1*6*b*d**2 ...............(4)\n",
+ "\n",
+ "#Equating equation 3 and 4 we get\n",
+ "#b*d**2=3*W*x*sigma**-1 .............(5)\n",
+ "\n",
+ "#Beam of uniform strength of constant depth\n",
+ "#b=3*W*x*(sigma*d**2) \n",
+ "\n",
+ "#When x=0\n",
+ "b=0\n",
+ "\n",
+ "#When x=L*2**-1\n",
+ "b2=3*W*L*(2*sigma*d**2)**-1 #mm\n",
+ "\n",
+ "#Beam with constant width of 200 mm\n",
+ "\n",
+ "#We have\n",
+ "#d=(3*W*x*(sigma*d)**-1)**0.5\n",
+ "#thus depth varies as (x)**0.5\n",
+ "\n",
+ "#when x=0\n",
+ "d1=0\n",
+ "\n",
+ "#when x=L*2**-1\n",
+ "d2=(3*W*L*(2*sigma*200)**-1)**0.5 #mm\n",
+ "\n",
+ "#Result\n",
+ "print\"Cross section of rectangular beam is:\",round(b2,2),\"mm\"\n",
+ "print\" :\",round(d2,2),\"mm\""
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Cross section of rectangular beam is: 250.0 mm\n",
+ " : 335.41 mm\n"
+ ]
+ }
+ ],
+ "prompt_number": 4
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 4.4.15,Page no.154"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "import numpy as np\n",
+ "\n",
+ "#Initilization of Variables\n",
+ "\n",
+ "L=800 #mm #Span\n",
+ "n=5 #number of leaves\n",
+ "b=60 #mm #Width\n",
+ "t=10 #mm #thickness\n",
+ "sigma=250 #N/mm**2 #Stress\n",
+ "\n",
+ "#Calculations\n",
+ "\n",
+ "#section Modulus\n",
+ "Z=n*6**-1*b*t**2 #mm**3\n",
+ "\n",
+ "#from the relation\n",
+ "#sigma*Z=M ...................(1)\n",
+ "#M=P*L*4**-1\n",
+ "#sub values of M in equation 1 we get\n",
+ "P=sigma*Z*4*L**-1*10**-3 #KN #Load\n",
+ "\n",
+ "#Length of Leaves\n",
+ "L1=0.2*L #mm\n",
+ "L2=0.4*L #mm\n",
+ "L3=0.6*L #mm\n",
+ "L4=0.8*L #mm\n",
+ "L5=L #mm\n",
+ "\n",
+ "#Result\n",
+ "print\"Max Load it can take is\",round(P,2),\"KN\"\n",
+ "print\"Length of leaves:L1\",round(L1,2),\"mm\"\n",
+ "print\" :L2\",round(L2,2),\"mm\""
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Max Load it can take is 6.25 KN\n",
+ "Length of leaves:L1 160.0 mm\n",
+ " :L2 320.0 mm\n"
+ ]
+ }
+ ],
+ "prompt_number": 6
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 4.4.16,Page no.161"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "import numpy as np\n",
+ "matplotlib.pyplot\n",
+ "\n",
+ "#Initilization of Variables\n",
+ "\n",
+ "F=20*10**3 #N #Shear Force\n",
+ "\n",
+ "#Tee section\n",
+ "\n",
+ "#Flange\n",
+ "b=100 #mm #Width\n",
+ "t=12 #mm #Thickness\n",
+ "\n",
+ "#Web\n",
+ "d=88 #mm #Depth\n",
+ "t2=12 #mm #Thicknes\n",
+ "\n",
+ "D=100 #mm #Overall Depth\n",
+ "\n",
+ "#Calculations\n",
+ "\n",
+ "#Distance of C.G from Top Fibre\n",
+ "y=(b*t*t*2**-1+t2*d*(d*2**-1+t))*(b*t+d*t2)**-1 #mm \n",
+ "\n",
+ "#Moment Of Inertia\n",
+ "I=1*12**-1*b*t**3+b*t*(y-t*2**-1)**2+1*12**-1*t2*d**3+t2*d*(t+d*2**-1-y)**2 #mm**4\n",
+ "\n",
+ "#shear stress at bottom Flange\n",
+ "\n",
+ "#Area above this level\n",
+ "A=b*t #mm**2\n",
+ "\n",
+ "#C.G of this area from N-A\n",
+ "y2=y-t*2**-1\n",
+ "\n",
+ "#Stress at bottom of flange\n",
+ "sigma=F*A*y2*(b*I)**-1 #N/mm**2 \n",
+ "\n",
+ "#sigma2 at same level but in web where width is 12 mm\n",
+ "sigma2=F*A*y2*(t2*I)**-1 #N/mm**2 \n",
+ "\n",
+ "#To find shear stress at N-A\n",
+ "X=t*b*(y-t*2**-1)+t2*(y-t2)*(y-t2)*2**-1 #mm**3\n",
+ "\n",
+ "sigma3=F*X*(t2*I)**-1 #N/mm**2\n",
+ "\n",
+ "#Shear stress at top and bottom fibre is zero\n",
+ "#sigma4 and sigma5 are top and bottom fibre shear stress\n",
+ "sigma4=sigma5=0\n",
+ "\n",
+ "#Result\n",
+ "print \"The Shear Force and Bending Moment Diagrams are the results\"\n",
+ "\n",
+ "#Plotting the Shear Force Diagram\n",
+ "\n",
+ "X1=[0,t,t,y,D]\n",
+ "Y1=[sigma4,sigma,sigma2,sigma3,sigma5]\n",
+ "Z1=[0,0,0,0,0]\n",
+ "plt.plot(X1,Y1,X1,Z1)\n",
+ "plt.xlabel(\"Length x in m\")\n",
+ "plt.ylabel(\"Shear Force in kN\")\n",
+ "plt.show()\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "The Shear Force and Bending Moment Diagrams are the results\n"
+ ]
+ },
+ {
+ "metadata": {},
+ "output_type": "display_data",
+ "png": "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\nnntYs2YN3bt3p3nz5nzxxRflv3Ail3JWibWIM/j5+V32Wq9evawDBw5YlmVZW7dutXr16mVZlmXd\nd9991tChQy3LsqxvvvnGuvXWWy3Lsqy3337b6tevn2VZlpWZmWndeOON1rJlyyzLsqygoCDr6NGj\nhcd2OBzWqlWrLMuyrCeeeMJ65plnLjv/qVOnrPDwcGvdunVWSEiI9d133132nvnz51sTJky4alwX\nS0lJsapWrWp9/fXXVkFBgdW+fXtr9OjRlmVZ1vLly62BAweWeK1ErlVVuxOSSHnk5OSwZcsWhgwZ\nUvhabm4uYJb6Pb/QV4sWLQrXid+4cSNDhw4FzEqRUVFRxR6/WrVq9O/fH4D27duzdu3ay95z/fXX\nM3fuXHr06MGsWbMIDg6+aszFxXWp4OBgwsPDAQgPD6d3794AtGzZktTU1KueQ6QslBDEoxUUFFCn\nTh127Nhxxd9Xq1at8Ll1brjM4XAU2WPBusowmq+vb+FzHx8f8vLyrvi+Xbt20aBBg1Jv6HSluC5V\nvXr1Iuc+/5mrxSFSHhpDEI9Wu3ZtgoODeeeddwBzc921a9dVP9O9e3eWLVuGZVlkZWWxfv36wt/V\nqlWLEydOXFMM33//PX/729/YsWMHH374Idu2bbvsPVdLOiLuQglBPMqpU6do0qRJ4ePFF1/kzTff\n5NVXX6Vt27a0bNmSFStWFL7/4h2izj9PTEwkMDCQsLAwhg8fTrt27bjhhhsAuP/+++nbt2/hoPKl\nn790xynLshg7diwvvPACAQEBvPrqq4wdO7aw26q4zxb3/NLPFPezt+4IJs6laafilU6ePEnNmjU5\nevQonTt3ZvPmzV61y5bIlWgMQbzSgAEDyM7OJjc3l6eeekrJQAS1EERE5ByNIYiICKCEICIi5ygh\niIgIoIQgIiLnKCGIiAighCAiIuf8f5wqyy9KzUKHAAAAAElFTkSuQmCC\n",
+ "text": [
+ "<matplotlib.figure.Figure at 0x5667930>"
+ ]
+ }
+ ],
+ "prompt_number": 1
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 4.4.17,Page no.163"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "import numpy as np\n",
+ "matplotlib.pyplot\n",
+ "\n",
+ "#Initilization of Variables\n",
+ "\n",
+ "F=40*10**3 #N #shear Force\n",
+ "\n",
+ "#I-section\n",
+ "\n",
+ "#Flanges\n",
+ "b=80 #mm #Width of flange\n",
+ "t=20 #mm #Thickness\n",
+ "\n",
+ "#Web\n",
+ "d=200 #mm #Depth\n",
+ "t2=20 #mm #Thickness\n",
+ "\n",
+ "#Flange-2\n",
+ "b2=160 #mm #Width\n",
+ "t3=20 #mm #Thickness\n",
+ "\n",
+ "D=240 #mm #Overall Depth\n",
+ "\n",
+ "#Calculations\n",
+ "\n",
+ "#Distance of N-A from Top Fibre \n",
+ "y=(b*t*t*2**-1+d*t2*(t+d*2**-1)+b2*t3*(t+d+t3*2**-1))*(b*t+d*t2+b2*t3)**-1 #mm\n",
+ "\n",
+ "#Moment of Inertia\n",
+ "I=1*12**-1*b*t**3+b*t*(y-(t*2**-1))**2+1*12**-1*t2*d**3+t2*d*(y-(t+d*2**-1))**2+1*12**-1*b2*t3**3+t3*b2*((d+t+t3*2**-1)-y)**2 #mm**4\n",
+ "\n",
+ "#Shear stress bottom of flange\n",
+ "sigma=F*b*t*(y-t*2**-1)*(b*I)**-1 #N/mm**2\n",
+ "\n",
+ "#At same Level but in web\n",
+ "sigma2=F*b*t*(y-t*2**-1)*(t2*I)**-1 #N/mm**2\n",
+ "\n",
+ "#for shear stress at N.A\n",
+ "X=b*t*(y-t*2**-1)+t2*(y-t)*(y-t)*2**-1 #mm**3\n",
+ "sigma3=F*X*(t2*I)**-1 #N/mm**2\n",
+ "\n",
+ "#Shear stress at bottom of web\n",
+ "\n",
+ "X=b2*t3*((D-y)-t3*2**-1) #mm**3\n",
+ "\n",
+ "#Stress at bottom of web\n",
+ "sigma4=F*X*(t2*I)**-1 #N/mm**2\n",
+ "\n",
+ "#Stress at Lower flange\n",
+ "sigma5=F*X*(b2*I)**-1 #N/mm**2\n",
+ "\n",
+ "#Result\n",
+ "print \"The Shear Force Diagram is the result\"\n",
+ "\n",
+ "#Plotting the Shear Force Diagram\n",
+ "\n",
+ "X1=[0,20,20,140,220,220,240]\n",
+ "Y1=[0,sigma,sigma2,sigma3,sigma4,sigma5,0]\n",
+ "Z1=[0,0,0,0,0,0,0]\n",
+ "plt.plot(X1,Y1,X1,Z1)\n",
+ "plt.xlabel(\"Length in mm\")\n",
+ "plt.ylabel(\"Shear Force in N\")\n",
+ "plt.show()\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "The Shear Force Diagram is the result\n"
+ ]
+ },
+ {
+ "metadata": {},
+ "output_type": "display_data",
+ "png": "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\n/w/qZz1xEBCKMwAAAABJRU5ErkJggg==\n",
+ "text": [
+ "<matplotlib.figure.Figure at 0x5683070>"
+ ]
+ }
+ ],
+ "prompt_number": 2
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 4.4.18,Page no.164"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "import numpy as np\n",
+ "\n",
+ "#Initilization of Variables\n",
+ "\n",
+ "F=30*10**3 #N #Shear Force\n",
+ "\n",
+ "#Channel Section\n",
+ "d=400 #mm #Depth of web \n",
+ "t=10 #mm #THickness of web\n",
+ "t2=15 #mm #Thickness of flange\n",
+ "b=100 #mm #Width of flange\n",
+ "\n",
+ "#Rectangular Welded section\n",
+ "b2=80 #mm #Width\n",
+ "d2=60 #mm #Depth\n",
+ "\n",
+ "#Calculations\n",
+ "\n",
+ "#Distance of Centroid From Top Fibre\n",
+ "y=(d*t*t*2**-1+2*t2*(b-t)*((b-t)*2**-1+10)+d2*b2*(d2*2**-1+t))*(d*t+2*t2*(b-t)+d2*b2)**-1 #mm\n",
+ "\n",
+ "#Moment Of Inertia of the section about N-A\n",
+ "I=1*12**-1*d*t**3+d*t*(y-t*2**-1)**2+2*(1*12**-1*t2*(b-t)**3+t2*(b-t)*(((b-t)*2**-1+t)-y)**2)+1*12**-1*d2**3*b2+d2*b2*(d2*2**-1+t-y)**2\n",
+ "\n",
+ "#Shear stress at level of weld\n",
+ "sigma=F*d*t*(y-t*2**-1)*((b2+t2+t2)*I)**-1 #N/mm**2\n",
+ "\n",
+ "#Max Shear Stress occurs at Neutral Axis\n",
+ "X=d*t*(y-t*2**-1)+2*t2*(y-t)*(y-t)*2**-1+b2*(y-t)*(y-t)*2**-1\n",
+ "\n",
+ "sigma_max=F*X*((b+t)*I)**-1\n",
+ "\n",
+ "#Result\n",
+ "print\"Shear stress in the weld is\",round(sigma,2),\"N/mm**2\"\n",
+ "print\"Max shear stress is\",round(sigma_max,2),\"N/mm**2\""
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Shear stress in the weld is 3.62 N/mm**2\n",
+ "Max shear stress is 4.48 N/mm**2\n"
+ ]
+ }
+ ],
+ "prompt_number": 13
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 4.4.19,Page no.165"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "import numpy as np\n",
+ "\n",
+ "#Initilization of Variables\n",
+ "\n",
+ "#Wooden Section\n",
+ "b=300 #mm #Width\n",
+ "d=300 #mm #Depth\n",
+ "\n",
+ "D=100 #mm #Diameter of Bore\n",
+ "F=10*10**3 #N #Shear Force\n",
+ "\n",
+ "#Calculations\n",
+ "\n",
+ "#Moment Of Inertia Of Section\n",
+ "I=1*12**-1*b*d**3-pi*64**-1*D**4\n",
+ "\n",
+ "#Shear stress at crown of circle\n",
+ "sigma=F*b*D*(d*2**-1-D*2**-1)*(b*I)**-1\n",
+ "\n",
+ "#Let a*y_bar=X\n",
+ "X=b*d*2**-1*d*4**-1-pi*8**-1*D**2*4*D*2**-1*(3*pi)**-1 #mm**3\n",
+ "\n",
+ "#Shear Stress at Neutral Axis\n",
+ "sigma2=F*X*((b-D)*I)**-1 #N/mm**2\n",
+ "\n",
+ "#Result\n",
+ "print\"Shearing Stress at Crown of Bore\",round(sigma,3),\"N/mm**2\"\n",
+ "print\"Shear Stress at Neutral Axis\",round(sigma2,3),\"N/mm**2\""
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Shearing Stress at Crown of Bore 0.149 N/mm**2\n",
+ "Shear Stress at Neutral Axis 0.246 N/mm**2\n"
+ ]
+ }
+ ],
+ "prompt_number": 10
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 4.4.20,Page no.166"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "import numpy as np\n",
+ "\n",
+ "#Initilization of Variables\n",
+ "\n",
+ "#flanges\n",
+ "b=200 #mm #width\n",
+ "t1=25 #mm #Thickness\n",
+ "\n",
+ "#web\n",
+ "d=450 #mm #Depth \n",
+ "t2=20 #mm #thickness\n",
+ "\n",
+ "D=500 #mm #Total Depth of section\n",
+ "\n",
+ "#Calculations\n",
+ "\n",
+ "#Moment Of Inertia of the section about N-A\n",
+ "I=1*12**-1*b*D**3-1*12**-1*(b-t2)*d**3 #mm**4\n",
+ "\n",
+ "#Consider an element in the web at distance y from y from N-A\n",
+ "#Depth of web section=225-y\n",
+ "\n",
+ "#C.G From N-A\n",
+ "#y2=y+(((D*2**-1-t)-y)*2**-1)\n",
+ "\n",
+ "#ay_bar for section at y\n",
+ "#Let ay_bar be X\n",
+ "#X=X1 be of Flange + X2 be of web above y\n",
+ "#X=b*t1*(D*2**-1-t1*2**-1)+t2*(d-t1)*(d-t1+y)*2**-1\n",
+ "#After Sub values and Further simplifying we get\n",
+ "#X=1187500+10*(225**2-y**2)\n",
+ "\n",
+ "#Shear stress at y\n",
+ "#sigma_y=F*(X)*(t2*I)**-1\n",
+ "\n",
+ "#Shear Force resisted by the Element\n",
+ "#F1=F*X*t2*dy*(t2*I)**-1\n",
+ "\n",
+ "#Shear stress resisted by web \n",
+ "#sigma=2*F*I**-1*(X)*dy\n",
+ "\n",
+ "#After Integrating above equation and further simplifying we get\n",
+ "#sigma=0.9578*F\n",
+ "\n",
+ "sigma=0.9578*100\n",
+ "\n",
+ "#Result\n",
+ "print\"Shear Resisted by web\",round(sigma,2),\"%\""
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Shear Resisted by web 95.78 %\n"
+ ]
+ }
+ ],
+ "prompt_number": 1
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 4.4.21,Page no.167"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "import numpy as np\n",
+ "\n",
+ "#Initilization of Variables\n",
+ "\n",
+ "#Wooden Beam\n",
+ "\n",
+ "b=150 #mm #width\n",
+ "d=250 #mm #Depth\n",
+ "\n",
+ "L=5000 #mm #span\n",
+ "m=11.2 #N/mm**2 #Max Bending stress\n",
+ "sigma=0.7 #N/mm**2 #Max shear stress\n",
+ "\n",
+ "#Calculations\n",
+ "\n",
+ "#Let 'a' be the distance from left support\n",
+ "#Max shear force\n",
+ "#F=R_A=W*(L-a)*L**-1 \n",
+ "\n",
+ "#Max Moment\n",
+ "#M=W*(L-a)*a*L**-1\n",
+ "\n",
+ "#But M=sigma*Z\n",
+ "#W*(L-a)*a*L**-1=m*1*6**-1*b*d**2 .....................(1)\n",
+ "\n",
+ "#In Rectangular Section MAx stress is 1.5 times Avg shear stress\n",
+ "F=sigma*b*d*1.5**-1\n",
+ "\n",
+ "#W*(L-a)*L**-1=F .....................(2)\n",
+ "\n",
+ "#Dividing Equation 1 nad 2 we get\n",
+ "a=m*6**-1*b*d**2*1.5*(sigma*b*d)**-1\n",
+ "\n",
+ "#Sub above value in equation 2 we get\n",
+ "W=(L-a)**-1*L*F*10**-3 #KN \n",
+ "\n",
+ "#Result\n",
+ "print\"Load is\",round(W,2),\"KN\"\n",
+ "print\"Distance from Left support is\",round(a,2),\"mm\""
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Load is 21.87 KN\n",
+ "Distance from Left support is 1000.0 mm\n"
+ ]
+ }
+ ],
+ "prompt_number": 22
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 4.4.22,Page no.168"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "import numpy as np\n",
+ "\n",
+ "#Initilization of Variables\n",
+ "\n",
+ "L=1000 #mm #span\n",
+ "\n",
+ "#Rectangular Section\n",
+ "\n",
+ "b=200 #mm #width\n",
+ "d=400 #mm #depth\n",
+ "\n",
+ "sigma=1.5 #N/mm**2 #Shear stress\n",
+ "\n",
+ "#Calculations\n",
+ "\n",
+ "#Let AB be the cantilever beam subjected to load W KN at free end\n",
+ "\n",
+ "#MAx shear Force\n",
+ "#F=W*10**3 #KN\n",
+ "\n",
+ "#Since Max shear stress in Rectangular section\n",
+ "#sigma_max=1.5*F*A**-1 \n",
+ "#After sub values and further simplifyng we get\n",
+ "W=1.5*b*d*(1.5*1000)**-1 #KN\n",
+ "\n",
+ "#Moment at fixwed end\n",
+ "M=W*1 #KN-m\n",
+ "y_max=d*2**-1 #mm\n",
+ "\n",
+ "#M.I\n",
+ "I=1*12**-1*b*d**3 #mm**3\n",
+ "\n",
+ "#MAx Stress\n",
+ "sigma_max=M*10**6*I**-1*y_max\n",
+ "\n",
+ "#Result\n",
+ "print\"Concentrated Load is\",round(sigma_max,2),\"N/mm**2\""
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Concentrated Load is 15.0 N/mm**2\n"
+ ]
+ }
+ ],
+ "prompt_number": 14
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 4.4.24,Page no.170"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "import numpy as np\n",
+ "\n",
+ "#Initilization of Variables\n",
+ "\n",
+ "L=4000 #mm #span\n",
+ "\n",
+ "#Rectangular Cross-section\n",
+ "b=100 #mm #Width\n",
+ "d=200 #mm #Thickness\n",
+ "\n",
+ "F_per=10 #N/mm**2 #Max Bending stress\n",
+ "q_max=0.6 #N/mm**2 #Shear stress\n",
+ "\n",
+ "#Calculations\n",
+ "\n",
+ "#If the Load W is in KN/m\n",
+ "\n",
+ "#Max shear Force\n",
+ "#F=w*l*2**-1 #KN\n",
+ "#After substituting values and further simplifying we get\n",
+ "#M=2*w #KN-m\n",
+ "\n",
+ "#Max Load from Consideration of moment\n",
+ "#M=1*6**-1*b*d**2*F_per\n",
+ "#After substituting values and further simplifying we get\n",
+ "w=(1*6**-1*b*d**2*F_per)*(2*10**6)**-1 #KN/m\n",
+ "\n",
+ "#Max Load from Consideration of shear stress\n",
+ "#q_max=1.5*F*(b*d)**-1 #N\n",
+ "#After substituting values and further simplifying we get\n",
+ "F=q_max*(1.5)*b*d #N\n",
+ "\n",
+ "#If w is Max Load in KN/m,then\n",
+ "#2*w*1000=8000\n",
+ "#After Rearranging and Further simplifying we get\n",
+ "w2=8000*(2*1000)**-1 #KN/m\n",
+ "\n",
+ "#Result\n",
+ "print\"Uniformly Distributed Load Beam can carry is\",round(w,2),\"KN/m\""
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Uniformly Distributed Load Beam can carry is 3.33 KN/m\n"
+ ]
+ }
+ ],
+ "prompt_number": 8
+ }
+ ],
+ "metadata": {}
+ }
+ ]
+}
\ No newline at end of file diff --git a/Strength_Of_Materials_by_S_S_Bhavikatti/chapter_no.5_q8NJmAM.ipynb b/Strength_Of_Materials_by_S_S_Bhavikatti/chapter_no.5_q8NJmAM.ipynb new file mode 100644 index 00000000..bb7dd352 --- /dev/null +++ b/Strength_Of_Materials_by_S_S_Bhavikatti/chapter_no.5_q8NJmAM.ipynb @@ -0,0 +1,1019 @@ +{
+ "metadata": {
+ "name": "chapter no.5.ipynb"
+ },
+ "nbformat": 3,
+ "nbformat_minor": 0,
+ "worksheets": [
+ {
+ "cells": [
+ {
+ "cell_type": "heading",
+ "level": 1,
+ "metadata": {},
+ "source": [
+ "Chapter 5:Deflections Of Beams By Double Integration Methods"
+ ]
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 5.5.2,Page No.192"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "import numpy as np\n",
+ "\n",
+ "\n",
+ "#Initilization of Variables\n",
+ "\n",
+ "L=3000 #mm #span of beam\n",
+ "a=2000 #mm\n",
+ "W1=20*10**3 #N #Pt Load Acting on beam\n",
+ "W2=30*10**3 #N #Pt Load Acting on beam\n",
+ "E=2*10**5 #N/mm**2 #Young's Modulus\n",
+ "I=2*10**8 #mm**4 #M.I\n",
+ "\n",
+ "#Calculations\n",
+ "\n",
+ "#Deflection at free End Due to W2\n",
+ "dell1=W2*L**3*(3*E*I)**-1 #mm\n",
+ "\n",
+ "#Deflection at free end Due to W1\n",
+ "dell2=W1*a**3*(3*E*I)**-1+(L-a)*W1*a**2*(2*E*I)**-1 #mm\n",
+ "\n",
+ "#Total Deflection at free end\n",
+ "dell=dell1+dell2 #mm\n",
+ "\n",
+ "#Result\n",
+ "print\"Deflection at Free End is\",round(dell,2),\"mm\""
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Deflection at Free End is 9.08 mm\n"
+ ]
+ }
+ ],
+ "prompt_number": 8
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 5.5.4,Page No.193"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "import numpy as np\n",
+ "\n",
+ "\n",
+ "#Initilization of Variables\n",
+ "\n",
+ "E=2*10**5 #N/mm**2 #Young's Modulus\n",
+ "I=180*10**6 #mm**4 #M.I\n",
+ "W1=20 #N/m #u.d.l\n",
+ "W2=20*10**3 #N #Pt load\n",
+ "L=3000 #m #Span of beam\n",
+ "a=2000 #m #Span of u.d.l\n",
+ "\n",
+ "#Calculations\n",
+ "\n",
+ "#Displacement of free End due to 20 KN Pt load at free end\n",
+ "dell1=W2*L**3*(3*E*I)**-1 #mm\n",
+ "\n",
+ "#Displacement of free end due to u.d.l\n",
+ "dell2=W1*a**4*(8*E*I)**-1+(L-a)*W1*a**3*(6*E*I)**-1\n",
+ "\n",
+ "#Deflection at free end\n",
+ "dell=dell1+dell2 #mm\n",
+ "\n",
+ "#Result\n",
+ "print\"The Displacement of Free End of cantilever beam is\",round(dell,2),\"mm\""
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "The Displacement of Free End of cantilever beam is 6.85 mm\n"
+ ]
+ }
+ ],
+ "prompt_number": 7
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 5.5.10,Page No.201"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "import numpy as np\n",
+ "\n",
+ "\n",
+ "#Initilization of Variables\n",
+ "\n",
+ "E=200*10**6 #KN/m**2 #Young's Modulus\n",
+ "I=15*10**-6 #m**4 #M.I\n",
+ "a=4000 #m \n",
+ "L_AB=6 #m #Span of beam\n",
+ "L_CB=2 #m #Length of CB\n",
+ "F_C=18 #KN #force at C\n",
+ "\n",
+ "#Calculations\n",
+ "\n",
+ "#Let V_A & V_B be the Reactions at A & B Respectively\n",
+ "#V_A+V_B=18\n",
+ "#Now taking moment at B,we get M_B\n",
+ "V_A=(F_C*L_CB)*L_AB**-1\n",
+ "V_B=18-V_A\n",
+ "\n",
+ "#Now Taking Moment at distance x\n",
+ "#M_x=6*x-18*(x-4)\n",
+ "#EI*d**2*y*(d*x**2)**-1=6*x-18*(x-4)\n",
+ "\n",
+ "#Now Integrating above equation,we get\n",
+ "#EI*dy*(dx)**-1=C1+3*x**2-9(x-4)**4\n",
+ "\n",
+ "#Again Integrating above equation we get\n",
+ "#EI*y=C2+C1*x+x**3-3*(x-4)**3\n",
+ "\n",
+ "#The Boundary conditions\n",
+ "x=0\n",
+ "y=0 #.....(a)\n",
+ "\n",
+ "x=6\n",
+ "y=0 #....(b)\n",
+ "\n",
+ "#From Boundary Condition(B.C) a we get\n",
+ "C2=0\n",
+ "\n",
+ "#From Boundary Condition(B.C) b we get\n",
+ "#6*C1+216-3*8\n",
+ "#After Further simplifying we get\n",
+ "C1=-(216-24)*6**-1\n",
+ "\n",
+ "#EI*y=-32*x+x**3-3*(x-4)**3\n",
+ "#EI*dy*(dx)**-1=-32+3*x**2-9(x-4)**4\n",
+ "\n",
+ "#For Max Deflection\n",
+ "#Assume it inthe Porion AC i.e x=4=a\n",
+ "#0=-32+3*x**2\n",
+ "x=(32*3**-1)**0.5\n",
+ "\n",
+ "#Value of Max deflection is\n",
+ "ymax=(-32*x+x**3)*(E*I)**-1 #mm\n",
+ "\n",
+ "#slope at mid-span\n",
+ "\n",
+ "#EI*(dy*(dx)**-1)_centre=-32+3*x**2\n",
+ "#at centre ,\n",
+ "x1=3 #m\n",
+ "\n",
+ "#Let (dy*(dx)**-1)_centre=X\n",
+ "X=-(-32+3*x1**2)*(E*I)**-1 #Radian\n",
+ "\n",
+ "#Deflection at Load Point\n",
+ "x2=4 #m\n",
+ "#EI*y_c=-32*x2+x2**3\n",
+ "\n",
+ "y_c=-(-32*x2+x2**3)*(E*I)**-1\n",
+ "\n",
+ "\n",
+ "#Result\n",
+ "print\"Value of Max Deflection\",round(ymax,4),\"mm\"\n",
+ "print\"SLope at mid-span\",round(X,4),\"radian\"\n",
+ "print\"Deflection at the Load Point is\",round(y_c,4),\"mm\""
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Value of Max Deflection -0.0232 mm\n",
+ "SLope at mid-span 0.0017 radian\n",
+ "Deflection at the Load Point is 0.0213 mm\n"
+ ]
+ }
+ ],
+ "prompt_number": 25
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 5.5.11,Page No.203"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "import numpy as np\n",
+ "\n",
+ "\n",
+ "#Initilization of Variables\n",
+ "\n",
+ "L_CB=2 #m #Length of CB\n",
+ "L_AC=4 #m #Length of AB\n",
+ "M_C=15 #KN.m #Moment At Pt C\n",
+ "F_C=30 #KN\n",
+ "L=6 #m Span of Beam\n",
+ "\n",
+ "#Let X=E*I\n",
+ "X=10000 #KN-m**2\n",
+ "\n",
+ "#Calculations\n",
+ "\n",
+ "#Let V_A and V_B be the reactions at A & B respectively\n",
+ "#V_A+V_B=30\n",
+ "\n",
+ "#Taking Moment a A,we get\n",
+ "V_B=(F_C*L_AC+M_C)*L**-1\n",
+ "V_A=30-V_B\n",
+ "\n",
+ "#Now Taking Moment at distacnce x from A\n",
+ "#M_x=7.5*x-30*(x-4)+15\n",
+ "\n",
+ "#By using Macaulay's Method\n",
+ "#EI*(d**2*x/dx**2)=M_x=7.5*x-30*(x-4)+15\n",
+ "\n",
+ "#Now Integrating above Equation we get\n",
+ "#EI*(dy/dx)=C1+7.5*x**2*2**-1-15*(x-4)**2+15*(x-4) ............(1)\n",
+ "\n",
+ "#Again Integrating above Equation we get\n",
+ "#EIy=C2+C1*x+7.5*6**-1*x**3-5*(x-4)**3+15*(x-4)**2*2**-1..........(2)\n",
+ "\n",
+ "#Boundary Cinditions\n",
+ "x=0\n",
+ "y=0\n",
+ "\n",
+ "#Substituting above equations we get \n",
+ "C2=0\n",
+ "\n",
+ "x=6 #m\n",
+ "y=0\n",
+ "\n",
+ "C1=-(7.5*6**3*6**-1-5*2**3+15*2**2*2**-1)*6**-1\n",
+ "\n",
+ "#EIy_c=C2+C1*x+7.5*6**-1*x**3-5*(x-4)**3+15*(x-4)**2*2**-1\n",
+ "#Sub values in Above equation we get\n",
+ "y_c=(93.3333*(X)**-1)\n",
+ "\n",
+ "#Result\n",
+ "print\"The Deflection at C\",round(y_c,4),\"mm\""
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "The Deflection at C 0.0093 mm\n"
+ ]
+ }
+ ],
+ "prompt_number": 10
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 5.5.12,Page No.204"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "import numpy as np\n",
+ "\n",
+ "\n",
+ "#Initilization of Variables\n",
+ "\n",
+ "L_AC=L_CD=L_DB=2 #m #Length of AC,CD,DB\n",
+ "F_C=40 #KN #Force at C\n",
+ "w=20 #KN/m #u.d.l\n",
+ "L=6 #m #span of beam\n",
+ "\n",
+ "#Let E*I=X\n",
+ "X=15000 #KN-m**2\n",
+ "\n",
+ "\n",
+ "#Calculations\n",
+ "\n",
+ "#Let V_A & V_B be the reactions at A & B respectively\n",
+ "#V_A+V_B=80\n",
+ "\n",
+ "#Taking Moment B,M_B\n",
+ "V_A=(F_C*(L_CD+L_DB)+w*L_DB*L_DB*2**-1)*L**-1 #KN\n",
+ "V_B=80-V_A #KN\n",
+ "\n",
+ "#Taking Moment at distance x from A\n",
+ "#M_x=33.333*x-40*(x-2)-20*(x-4)**2*2**-1\n",
+ "#EI*(d**2/dx**2)=33.333*x-40*(x-2)-10*(x-4)**2\n",
+ "\n",
+ "#Integrating above equation we get\n",
+ "#EI*(dy/dx)=C1+33.333*x**2*2**-1-20*(x-2)**2-10*3**-1*(x-4)**3\n",
+ "\n",
+ "#Again Integrating above equation we get\n",
+ "#EI*y=C2+C1*x+33.333*x**3*6**-1-20*3**-1*(x-2)**3-10*12**-1*(x-4)**4\n",
+ "\n",
+ "#At\n",
+ "x=0\n",
+ "y=0\n",
+ "C2=0\n",
+ "\n",
+ "#At\n",
+ "x=6\n",
+ "y=0\n",
+ "C1=-760*6**-1\n",
+ "\n",
+ "#Assuming Deflection to be max in portion CD and sustituting value of C1 in equation of slope we get\n",
+ "#EI*y=C2+C1*x+33.333*x**3*6**-1-20*3**-1*(x-2)**3-10*12**-1*(x-4)**4\n",
+ "#0=-126.667+33.333*x**2**-1-20*(x-2)**2\n",
+ "\n",
+ "#After rearranging and simplifying further we get\n",
+ "\n",
+ "#x**2-24*x+62=0\n",
+ "#From above equations\n",
+ "a=1\n",
+ "b=-24\n",
+ "c=62\n",
+ "\n",
+ "y=(b**2-4*a*c)**0.5\n",
+ "\n",
+ "x1=(-b+y)*(2*a)**-1\n",
+ "x2=(-b-y)*(2*a)**-1\n",
+ "\n",
+ "#Taking x2 into account\n",
+ "x=2.945 #m\n",
+ "C1=-126.667\n",
+ "C2=0\n",
+ "\n",
+ "y_max=(C2+C1*x+33.333*x**3*6**-1-20*3**-1*(x-2)**3)*X**-1 #mm\n",
+ "\n",
+ "#Max slope occurs at the ends\n",
+ "#At A,\n",
+ "#EI*(dy/dx)_A=-126.667\n",
+ "#At B\n",
+ "#EI*(dy/dx)_B=126.667+33.333*6**2*2**-1-20*4**2-10*2**3\n",
+ "#After simplifying Further we get\n",
+ "#EI*(dy/dx)_B=73.3273\n",
+ "\n",
+ "#Now Max slope is EI(dy/dx)_A=-126.667\n",
+ "#15000*(dy/dx)_=-126.667\n",
+ "\n",
+ "#Let Y=dy/dx\n",
+ "Y=-126.667*X**-1 #Radians\n",
+ "\n",
+ "#Result\n",
+ "print\"Maximum Deflection for Beam is\",round(y_max,4),\"mm\"\n",
+ "print\"Maximum Slope for beam is\",round(Y,4),\"radians\""
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Maximum Deflection for Beam is -0.0158 mm\n",
+ "Maximum Slope for beam is -0.0084 radians\n"
+ ]
+ }
+ ],
+ "prompt_number": 21
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 5.5.13,Page No.206"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "import numpy as np\n",
+ "\n",
+ "#Initilization of Variables\n",
+ "\n",
+ "E=2*10**8 #KN/m**2\n",
+ "I=450*10**-6 #m**4\n",
+ "L_AC=1 #m #Length of AC\n",
+ "L_CD=3 #m #Length of CD\n",
+ "L_DB=2 #m #Length of DB\n",
+ "w=10 #KN/m #u.d.l\n",
+ "\n",
+ "#Calculations\n",
+ "\n",
+ "#Let V_A & V_B be the reactions at A & B respectively\n",
+ "#V_A+V_B=30\n",
+ "\n",
+ "#Taking Moment at distance x from A\n",
+ "#M_x=17.5*x-10*(x-1)**2*2**-1+10*(x-4)**2*2**-1\n",
+ "#EI*(d**2/dx**2)=17.5*x-10*(x-1)**2*2**-1+10*(x-4)**2*2**-1\n",
+ "\n",
+ "#Now Integrating Above equation we get\n",
+ "#EI(dy/dx)=C1+17.5*x**2*2**-1-5*3**-1*(x-1)**2+5*3**-1*(x-4)**3\n",
+ "\n",
+ "#Again Integrating Above equation we get\n",
+ "#EI*y=C2+C1*x+17.5*x**3*6**-1-5*12**-1*(x-1)**4+5*12**-1*(x-4)**4\n",
+ "\n",
+ "#At \n",
+ "x=0\n",
+ "y=0\n",
+ "C2=0\n",
+ "\n",
+ "#At \n",
+ "x=6 \n",
+ "y=0\n",
+ "C1=(-17.5*x**3*6**-1+5*12**-1*(x-1)**4-5*12**-1*(x-4)**4)*x**-1\n",
+ "\n",
+ "# 1)Slope at A .i.e at x=0\n",
+ "#EI*(dy/dx)_A=C1=-62.708 #KN-m**2\n",
+ "#let (dy/dx)=X\n",
+ "X=C1*(E*I)**-1 #radiams\n",
+ "\n",
+ "#Deflection at mid-span\n",
+ "x=3 #m\n",
+ "#EI*y_centre=C1*x+17.5*x**3*6**-1-5*12**-1*(x-1)**2\n",
+ "y_centre=-(C1*x+17.5*x**3*6**-1-5*12**-1*(x-1)**4)*(E*I)**-1\n",
+ "\n",
+ "#Maximum Deflection\n",
+ "\n",
+ "#At point of Max deflection (dy/dx)=0\n",
+ "#Assuming it in portion CD\n",
+ "\n",
+ "#0=C1*x+17.5*x**2*2**-1-5*3**-1*(x-1)**3\n",
+ "\n",
+ "#Now Let\n",
+ "#F(x)=C1+17.5*x**2*2**-1-5*3**-1*(x-1)**3\n",
+ "\n",
+ "#Let F(x)=Y\n",
+ "#At \n",
+ "x=2.5\n",
+ "Y1=-(C1+17.5*x**2*2**-1-5*3**-1*(x-1)**3)\n",
+ "\n",
+ "#AT\n",
+ "x=3\n",
+ "Y2=-(C1+17.5*x**2*2**-1-5*3**-1*(x-1)**3)\n",
+ "\n",
+ "#At\n",
+ "x=2.9 #m\n",
+ "Y3=-(C1+17.5*x**2*2**-1-5*3**-1*(x-1)**3)\n",
+ "\n",
+ "#A curve may be plotted for (F(x) and the value for which F(x)=0 may be found\n",
+ "#For F(x)=0 for x=2.92 m\n",
+ "#Therefore y_max occur at x=2.92\n",
+ "\n",
+ "x=2.92 #m\n",
+ "y_max=(C1*x+17.5*x**3*6**-1-5*12**-1*(x-1)**4)*(E*I)**-1\n",
+ "\n",
+ "#Result\n",
+ "print\"Slope at A\",round(X,6),\"mm\"\n",
+ "print\"Deflection at mid-span\",round(y_centre,6),\"mm\"\n",
+ "print\"Maxmimum Deflection is\",round(y_max,5),\"mm\""
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Slope at A -0.000697 mm\n",
+ "Deflection at mid-span 0.001289 mm\n",
+ "Maxmimum Deflection is -0.00129 mm\n"
+ ]
+ }
+ ],
+ "prompt_number": 1
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 5.5.14,Page No.208"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "import numpy as np\n",
+ "\n",
+ "#Initilization of Variables\n",
+ "\n",
+ "L_AC=LDE=L_EB=1 #m #Length of AC\n",
+ "L_CD=2 #m #Length of CD\n",
+ "E=200 #KN/mm**2\n",
+ "I=60*10**6 #mm**4 #M.I\n",
+ "F_C=20 #KN #Force at C\n",
+ "F_E=30 #KN #Force at E\n",
+ "w=10 #KN/m #u.d.l\n",
+ "\n",
+ "#Calculations\n",
+ "\n",
+ "X=E*I*10**-6 #KN-m**2\n",
+ "\n",
+ "#Let V_A & V_B be the reactions at A & B respectively\n",
+ "#V_A+V_B=70\n",
+ "\n",
+ "#Taking Moment at distance x from A\n",
+ "#M_x=34*x-20*(x-1)-10*(x-1)**2*2**-1+10*(x-3)**2*2**-1-30*(x-4)\n",
+ "#EI*(d**2y/dx**2)=34*x-20*(x-1)-10*(x-1)**2*2**-1+10*(x-3)**2*2**-1-30*(x-4)\n",
+ "\n",
+ "#Now Integrating Above equation,we get\n",
+ "#EI*(dy/dx)=C1+17*x**2-10*(x-1)**2-5*3**-1*(x-1)**3+5*3**-1*(x-3)**3-15*(x-4)**2\n",
+ "\n",
+ "#Again Integrating Above equation,we get\n",
+ "#EI*y=C2+C1*x+17*3**-1*x**3-10*3**-1*(x-1)**3-5*12**-1*(x-1)**4+5*12**-1*(x-3)**4-5*(x-4)**3\n",
+ "\n",
+ "#At\n",
+ "x=0\n",
+ "y=0\n",
+ "C2=0\n",
+ "\n",
+ "#At \n",
+ "x=5 #m\n",
+ "y=0\n",
+ "C1=(-17*3**-1*x**3+10*3**-1*(x-1)**3+5*12**-1*(x-1)**4-5*12**-1*(x-3)**4+5*(x-4)**3)*5**-1\n",
+ "\n",
+ "#EI*y=C2+C1*x+17*3**-1*x**3-10*3**-1*(x-1)**3-5*12**-1*(x-1)**4+5*12**-1*(x-3)**4-5*(x-4)**3\n",
+ "C2=0\n",
+ "C1=-78\n",
+ "x=1\n",
+ "y_c=(-78*x+17*3**-1*x)*(X)**-1\n",
+ "\n",
+ "#EI*y_D=C2+C1*x+17*3**-1*x**3-10*3**-1*(x-1)**3-5*12**-1*(x-1)**4\n",
+ "x=3\n",
+ "C1-78\n",
+ "C2=0\n",
+ "y_D=(C2+C1*x+17*3**-1*x**3-10*3**-1*(x-1)**3-5*12**-1*(x-1)**4)*(X**-1)\n",
+ "\n",
+ "#EI*y_E=C2+C1*x+17*3**-1*x**3-10*3**-1*(x-1)**3-5*12**-1*(x-1)**4+5*12**-1*(x-3)**4\n",
+ "x=4\n",
+ "C1-78\n",
+ "C2=0\n",
+ "y_E=(C2+C1*x+17*3**-1*x**3-10*3**-1*(x-1)**3-5*12**-1*(x-1)**4+5*12**-1*(x-3)**4)*X**-1\n",
+ "\n",
+ "#Result\n",
+ "print\"Deflections at C\",round(y_c,5),\"mm\"\n",
+ "print\"Deflections at D\",round(y_D,5),\"mm\"\n",
+ "print\"Deflections at E\",round(y_E,4),\"mm\""
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Deflections at C -0.00603 mm\n",
+ "Deflections at D -0.00953 mm\n",
+ "Deflections at E -0.0061 mm\n"
+ ]
+ }
+ ],
+ "prompt_number": 45
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 5.5.15,Page No.209"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "import numpy as np\n",
+ "%matplotlib inline\n",
+ "\n",
+ "#Initilization of Variables\n",
+ "\n",
+ "E=200 #KN/mm**2 #Modulus of Elasticity\n",
+ "I=300*10**6 #mm\n",
+ "L_AB=L_BC=L_CD=L_DE=1 #m #Length of AB,BC,CD,DE respectively\n",
+ "F_A=20 #KN #Force at A\n",
+ "F_C=10 #KN #Force at C\n",
+ "w=30 #KN/m #u.d.l\n",
+ "\n",
+ "#Let E*I=X\n",
+ "X=E*I*10**-6 #KN-2**2\n",
+ "\n",
+ "#Calculations\n",
+ "\n",
+ "#Let V_E be the reactions at E\n",
+ "V_E=F_A+F_C+w*(L_BC+L_CD) #KN \n",
+ "\n",
+ "#Taking Moment at distance x\n",
+ "#EI*(d**2x/dy**2)=M=-20*x-30*(x-1)**2*2**-1-10*(x-2)+30*(x-3)**2*2**-1\n",
+ "\n",
+ "#Integrating above equation we get\n",
+ "#EI*(dy/dx)=C1-10*x**2-5*(x-1)**3-5*(x-2)**2+5*(x-3)**3\n",
+ "\n",
+ "#Again Integrating above equation\n",
+ "#EI*y=C2+C1*x-10*x**3*3**-1-5*(x-1)**4*4**-1-5*(x-3)**4*4**-1-5*3*(x-2)**3\n",
+ "\n",
+ "#At\n",
+ "#dy/dx=0\n",
+ "x=4 #m\n",
+ "C1=10*x**2+5*(x-1)**3+5*(x-2)**2-5*(x-3)**3\n",
+ "\n",
+ "#AT\n",
+ "x=4\n",
+ "y=0\n",
+ "C2=-C1*4+10*x**3*3**-1+5*(x-1)**4*4**-1-5*(x-3)**4*4**-1+5*3**-1*(x-2)**3\n",
+ "\n",
+ "#Max Deflection and Max slopes occurs at Free end in case of cantilever\n",
+ "y_max=y_A=C2*X**-1\n",
+ "\n",
+ "#EI*(dy/dx)_max=C1\n",
+ "#Let (dy/dx)=Y\n",
+ "Y=C1*X**-1 #radian\n",
+ "\n",
+ "#Now deflection at x=1 #m\n",
+ "C2=-913.333\n",
+ "C1=310\n",
+ "x=1\n",
+ "y_B=(C2+C1*x-10*x**3*3**-1)*X**-1\n",
+ "\n",
+ "#Now Deflection at x=2 #m\n",
+ "C2=-913.333\n",
+ "C1=310\n",
+ "x=2 #m\n",
+ "y_C=(C2+C1*x-10*x**3*3**-1-5*(x-1)**4*4**-1)*X**-1\n",
+ "\n",
+ "#Now Deflection at x=3 #m\n",
+ "C2=-913.333\n",
+ "C1=310\n",
+ "x=3 #m\n",
+ "y_D=(C2+C1*x-10*x**3*3**-1-5*(x-1)**4*4**-1-5*3**-1*(x-2)**3)*X**-1\n",
+ "\n",
+ "y_E=0\n",
+ "\n",
+ "#Result\n",
+ "print\"Max Deflection for Beam\",round(y_A,4),\"mm\"\n",
+ "print\"Max Slope for beam\",round(Y,5),\"radians\"\n",
+ "\n",
+ "#Plotting the ELastic Curve\n",
+ "\n",
+ "Y2=[y_E,y_D,y_C,y_B,y_A]\n",
+ "X2=[L_AB+L_BC+L_CD+L_DE,L_AB+L_BC+L_CD,L_AB+L_BC,L_AB,0]\n",
+ "Z2=[0,0,0,0,0]\n",
+ "plt.plot(X2,Y2,X2,Z2)\n",
+ "plt.xlabel(\"Length in mm\")\n",
+ "plt.ylabel(\"Deflection in mm\")\n",
+ "plt.show()"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Max Deflection for Beam -0.0152 mm\n",
+ "Max Slope for beam 0.00517 radians\n"
+ ]
+ },
+ {
+ "metadata": {},
+ "output_type": "display_data",
+ "png": "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\nHMidd97JRx99xKhRowgMDGT79u0AxMXFERMTQ3h4OH5+frz//vs8/vjjDB06lKioKCoqKpr9WUr7\npEQjUo8HHniAl19+mR07drBo0SJmzJjh+l1hYSGbN29m3bp1xMbGAvD++++zf/9+srKyePvtt9m6\ndSs2m41Zs2bRr18/0tLS+PjjjwE4evQoI0eO5IsvviA8PJzXXnut2vXPnhW3pmue7fvvv+fxxx/n\nm2++4dtvvyUpKYnNmzfzl7/8hQULFrjK7du3j08++YTk5GTuuusuHA4Hu3fvpmvXrnzwwQfn/OxE\noA3PdSbSHI4cOcLWrVu5/fbbXfvKysoAMwGcms04ODjYtfDTp59+ysSJEwFc647UpnPnzowfPx6A\n4cOHk5qaWmc8tV3zbP3792fQoEEADBo0iBtuuAGAwYMHk5OT4zpXVFQUHTt2ZPDgwVRWVjJ27FgA\nhgwZ4ioncq6UaETqUFlZSc+ePWtdE71z586un081d9pstiprddTVDOrl5eX6uUOHDg16XVXTNc/W\npUuXKuc9dczZ1zhzf1NiEWkIvToTqcOvfvUr+vfvz3vvvQeYX+y7d++u85hRo0axatUqDMOgqKiI\n9PR01+969OjBzz//3KgY3NVfR/2ApKUo0Yic4dixY/j6+ro+L730Eu+++y6vv/46oaGhDB48mOTk\nZFf5M9tPTv1822234ePjQ0hICFOnTuXKK6/kggsuAMz2nhtvvNHVGeDs42tapfDs/bX9fPYxtW2f\n+rmu89Z1bpHGUvdmETc4evQo3bp149ChQ4wYMYItW7bQp08fq8MSsYTaaETc4KabbqKkpISysjL+\n9Kc/KclIu6YajYiIuJXaaERExK2UaERExK2UaERExK2UaERExK2UaERExK2UaERExK3+P5k+A1z9\nL+mlAAAAAElFTkSuQmCC\n",
+ "text": [
+ "<matplotlib.figure.Figure at 0x4e323d0>"
+ ]
+ }
+ ],
+ "prompt_number": 1
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 5.5.16,Page No.211"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "import numpy as np\n",
+ "\n",
+ "#Initilization of Variables\n",
+ "\n",
+ "L_BD=L_CB=L_AC=2 #m #Length of BD,CB,AC\n",
+ "F_C=40 #KN #Force at C\n",
+ "F_D=10 #KN Force at D\n",
+ "L=6 #m spna of beam\n",
+ "\n",
+ "#EI is constant in this problem\n",
+ "\n",
+ "#Calculations\n",
+ "\n",
+ "#Let V_A & V_B be the reactions at A & B Respectively\n",
+ "#V_A+V_B=50\n",
+ "\n",
+ "#Taking Moment at Pt A\n",
+ "V_B=(F_D*L+F_C*L_AC)*(L_AC+L_CB)**-1\n",
+ "V_A=50-V_B\n",
+ "\n",
+ "#Now Taking Moment at distance x from A,M_x\n",
+ "#M_x=15*x-40*(x-2)+35*(x-4)\n",
+ "#EI*(d**2*y/dx**2)=15*x-40*(x-2)+35*(x-4)\n",
+ "\n",
+ "#Now Integrating above equation we get\n",
+ "#EI*(dy/dx)=C1+7.5*x**2-20*(x-2)**2+17.5(x-4)**2\n",
+ "\n",
+ "#Again Integrating above equation we get\n",
+ "#EI*y=C2+C1*x+2.5*x**2-20*3**-1*(x-2)**3+17.5*(x-4)**3*3**-1\n",
+ "\n",
+ "#At\n",
+ "x=0\n",
+ "y=0\n",
+ "#we get\n",
+ "C2=0\n",
+ "\n",
+ "#At\n",
+ "x=4 \n",
+ "y=0\n",
+ "#we get\n",
+ "C1=(2.5*4**3-20*3**-1*2**3)*4**-1\n",
+ "\n",
+ "#Now Deflection at C\n",
+ "x=2\n",
+ "C1=-26.667\n",
+ "C2=0\n",
+ "y_C=C2+C1*x+2.5*x**3\n",
+ "\n",
+ "#Now Deflection at D\n",
+ "C1=-21.667\n",
+ "C2=0\n",
+ "y_D=-26.667*6+2.5*6**3-20*3**-1*4**3+17.5*2**3*3**-1\n",
+ "\n",
+ "#Result\n",
+ "print\"Deflections Under Loads are:y_D\",round(y_D,4)\n",
+ "print\" :y_C\",round(y_C,2)"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Deflections Under Loads are:y_D -0.002\n",
+ " :y_C -33.33\n"
+ ]
+ }
+ ],
+ "prompt_number": 8
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 5.5.17,Page No.212"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "import numpy as np\n",
+ "\n",
+ "#Initilization of Variables\n",
+ "\n",
+ "L_BC=L_EB=2 #m #Length of BC & EB\n",
+ "E=200*10**6 #KN/m**2 #Modulus of eLasticity\n",
+ "I=45*10**-6 #mm**4 #M.I\n",
+ "L_DE=3 #m #Length of DE\n",
+ "L_AD=1 #m #Length of AD\n",
+ "w=20 #KN/m #u.d.l\n",
+ "L=8 #m #span of beam\n",
+ "F_C=30 #KN #Force at C\n",
+ "\n",
+ "#Calculations\n",
+ "\n",
+ "#Let V_A & V_B be the reactions at A & B respectively\n",
+ "#V_A+V_B=90\n",
+ "\n",
+ "#Taking Moment at A,M_A\n",
+ "V_B=(w*L_DE*(L_DE*2**-1+L_AD)+F_C*L)*(L_AD+L_DE+L_EB)**-1\n",
+ "V_A=90-V_B\n",
+ "\n",
+ "#Taking Moment at distance x\n",
+ "#M_x=25*x-20*(x-1)**2*2**-1+20*(x-4)**2*2**-1+65*(x-6)\n",
+ "\n",
+ "#Integrating above equation we get\n",
+ "#EI*(d**2*y/dx**2)=25*x-10*(x-1)**2+10*(x-4)**2+65*(x-6)\n",
+ "\n",
+ "#again Integrating above equation we get\n",
+ "#EI*(dy/dx)=C1+25*x**2*2**-1-10*3**-1*(x-1)**3+10*3**-1*(x-4)**2+65*2**-1*(x-6)**2\n",
+ "\n",
+ "#again Integrating above equation we get\n",
+ "#EI*y=C2+C1*x+25*6**-1*x**3-10*12**-1*(x-1)**4+10*12**-1*(x-4)**4+65*6**-1*(x-6)**3\n",
+ "\n",
+ "x=0\n",
+ "y=0\n",
+ "#Sub these values in above equation,we get\n",
+ "C2=0\n",
+ "\n",
+ "x=6 #m\n",
+ "y=0\n",
+ "C1=-(25*6**-1*6**3-10*12**-1*5**4+10*12**-1*2**4)*6**-1\n",
+ "\n",
+ "#deflection at C is given by\n",
+ "x=8\n",
+ "y_c=(C2+C1*x+25*6**-1*x**3-10*12**-1*(x-1)**4+10*12**-1*(x-4)**4+65*6**-1*(x-6)**3)*(E*I)**-1\n",
+ "\n",
+ "#Assuming y is max in the portion DE,then\n",
+ "#(dy/dx)=0 for that point\n",
+ "\n",
+ "#0=-65.417+25*2**-1*x**2-10*3**-1*x(-1)**3\n",
+ "\n",
+ "#Let F(x)=-65.417+25*2**-1*x**2-10*3**-1*x(-1)**3\n",
+ "#Let z=F(x)\n",
+ "\n",
+ "#AT \n",
+ "x=3\n",
+ "z=-65.417+25*2**-1*x**2-10*3**-1*(x-1)**3\n",
+ "\n",
+ "x=2.5\n",
+ "z1=-65.417+25*2**-1*x**2-10*3**-1*(x-1)**3\n",
+ "\n",
+ "x=2.4\n",
+ "z2=-65.417+25*2**-1*x**2-10*3**-1*(x-1)**3\n",
+ "\n",
+ "#The assumption is max in portion DE\n",
+ "x=2.46\n",
+ "y_max=(-65.417*x+25*6**-1*x**3-10*12**-1*1.46**4)*(E*I)**-1\n",
+ "\n",
+ "#Result\n",
+ "print\"Deflection at free end C\",round(y_c,4),\"mm\"\n",
+ "print\"Max Deflection between A and B\",round(y_max,4),\"mm\""
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Deflection at free end C -0.0101 mm\n",
+ "Max Deflection between A and B -0.0114 mm\n"
+ ]
+ }
+ ],
+ "prompt_number": 1
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 5.5.18,Page No.213"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "import numpy as np\n",
+ "\n",
+ "#Initilization of Variables\n",
+ "\n",
+ "L_DB=L_AC=L_ED=2 #m #Length of DB & AC\n",
+ "L_CD=4 #m #Length of CD\n",
+ "L_CE=2 #m #Length of CE\n",
+ "F_A=40 #KN #Force at C\n",
+ "F_B=20 #KN #Force at A\n",
+ "E=200*10**6 #KN/mm**2 #Modulus of Elasticity\n",
+ "I=50*10**-6 #m**4 #M.I\n",
+ "\n",
+ "#Calculations\n",
+ "\n",
+ "#LEt V_C & V_D be the reactions at C & D respectively\n",
+ "#V_C+V_D=60\n",
+ "\n",
+ "#Taking Moment At D,M_D\n",
+ "V_C=-(-F_A*(L_AC+L_CE+L_ED)+F_B*L_DB)*L_CD**-1\n",
+ "V_D=60-V_C\n",
+ "\n",
+ "#Now Taking Moment at Distance x from A,\n",
+ "#M_x=-40*x+50*(x-2)+10*(x-6)\n",
+ "\n",
+ "#EI*(d**2*y/dx**2)=-40*x+50*(x-2)+10*(x-6)\n",
+ "\n",
+ "#Now Integrating above Equation we get\n",
+ "#EI*(dy/dx)=C1+20*x**2-25*(x-2)+5*(x-6)**2\n",
+ "\n",
+ "#Again Integrating above Equation we get\n",
+ "#EI*y=C2+C1*x-20*3**-1*x**3+25*3**-1*(x-2)**3+5*3**-1*(x-6)**3\n",
+ "\n",
+ "#At\n",
+ "x=0\n",
+ "y=0\n",
+ "#C2+2*C1=-53.33 ...............(1)\n",
+ "\n",
+ "#At \n",
+ "x=6\n",
+ "y=0\n",
+ "#C2+6*C1=906.667 ...............(2)\n",
+ "\n",
+ "#Subtracting Equation 1 from 2 we get\n",
+ "C1=853.333*4**-1\n",
+ "C2=53.333-2*C1\n",
+ "x=0\n",
+ "y_A=(C2+C1*x-20*3**-1*x**3+25*3**-1*(x-2)**3+5*3**-1*(x-6)**3)*(E*I)**-1\n",
+ "\n",
+ "#Answer For y_A is incorrect in textbook\n",
+ "\n",
+ "#At Mid-span\n",
+ "C1=853.333*4**-1\n",
+ "C2=53.333-2*C1\n",
+ "x=4\n",
+ "y_E=(C2+C1*x-20*3**-1*x**3+25*3**-1*(x-2)**3+5*3**-1*(x-6)**3)*(E*I)**-1\n",
+ "\n",
+ "#Answer For y_E is incorrect in textbook\n",
+ "\n",
+ "#At B\n",
+ "C1=853.333*4**-1\n",
+ "C2=53.333-2*C1\n",
+ "x=8\n",
+ "y_B=(C2+C1*x-20*3**-1*x**3+25*3**-1*(x-2)**3+5*3**-1*(x-6)**3)*(E*I)**-1\n",
+ "\n",
+ "\n",
+ "#Result\n",
+ "print\"Deflection relative to the level of the supports:at End A\",round(y_A,4),\"mm\"\n",
+ "print\" :at End B\",round(y_B,4),\"mm\"\n",
+ "print\" :at Centre of CD\",round(y_E,4),\"mm\""
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Deflection relative to the level of the supports:at End A -0.08 mm\n",
+ " :at End B -0.0267 mm\n",
+ " :at Centre of CD 0.0107 mm\n"
+ ]
+ }
+ ],
+ "prompt_number": 8
+ }
+ ],
+ "metadata": {}
+ }
+ ]
+}
\ No newline at end of file diff --git a/Strength_Of_Materials_by_S_S_Bhavikatti/chapter_no.6_OKBvhyK.ipynb b/Strength_Of_Materials_by_S_S_Bhavikatti/chapter_no.6_OKBvhyK.ipynb new file mode 100644 index 00000000..e3bdfbe1 --- /dev/null +++ b/Strength_Of_Materials_by_S_S_Bhavikatti/chapter_no.6_OKBvhyK.ipynb @@ -0,0 +1,1518 @@ +{
+ "metadata": {
+ "name": "chapter no.6.ipynb"
+ },
+ "nbformat": 3,
+ "nbformat_minor": 0,
+ "worksheets": [
+ {
+ "cells": [
+ {
+ "cell_type": "heading",
+ "level": 1,
+ "metadata": {},
+ "source": [
+ "Chapter No.6:Torsion"
+ ]
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 6.6.1,Page No.225"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "import numpy as np\n",
+ "\n",
+ "#Initilization of Variables\n",
+ "\n",
+ "L=10000 #mm #Length of solid shaft\n",
+ "d=100 #mm #Diameter of shaft\n",
+ "n=150 #rpm\n",
+ "P=112.5*10**6 #N-mm/sec #Power Transmitted\n",
+ "G=82*10**3 #N/mm**2 #modulus of Rigidity\n",
+ "\n",
+ "#Calculations\n",
+ "\n",
+ "J=pi*d**4*(32)**-1 #mm**3 #Polar Modulus\n",
+ "T=P*60*(2*pi*n)**-1 #N-mm #Torsional moment\n",
+ "\n",
+ "r=50 #mm #Radius\n",
+ "\n",
+ "q_s=T*r*J**-1 #N/mm**2 #Max shear stress intensity\n",
+ "Theta=T*L*(G*J)**-1 #angle of twist\n",
+ "\n",
+ "#Result\n",
+ "print\"Max shear stress intensity\",round(q_s,2),\"N/mm**2\"\n",
+ "print\"Angle of Twist\",round(Theta,3),\"radian\""
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Max shear stress intensity 36.48 N/mm**2\n",
+ "Angle of Twist 0.089 radian\n"
+ ]
+ }
+ ],
+ "prompt_number": 4
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 6.6.2,Page No.226"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "import numpy as np\n",
+ "\n",
+ "#Initilization of Variables\n",
+ "\n",
+ "P=440*10**6 #N-m/sec #Power transmitted\n",
+ "n=280 #rpm\n",
+ "theta=pi*180**-1 #radian #angle of twist\n",
+ "L=1000 #mm #Length of solid shaft\n",
+ "q_s=40 #N/mm**2 #Max torsional shear stress\n",
+ "G=84*10**3 #N/mm**2 #Modulus of rigidity\n",
+ "\n",
+ "#Calculations\n",
+ "\n",
+ "#P=2*pi*n*T*(60)**-1 #Equation of Power transmitted\n",
+ "T=P*60*(2*pi*n)**-1 #N-mm #torsional moment\n",
+ "\n",
+ "#From Consideration of shear stress\n",
+ "d1=(T*16*(pi*40)**-1)**0.333333 \n",
+ "\n",
+ "#From Consideration of angle of twist\n",
+ "d2=(T*L*32*180*(pi*84*10**3*pi)**-1)**0.25\n",
+ "\n",
+ "#result\n",
+ "print\"Diameter of solid shaft is\",round(d1,2),\"mm\""
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Diameter of solid shaft is 124.09 mm\n"
+ ]
+ }
+ ],
+ "prompt_number": 21
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 6.6.3,Page No.227"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "import numpy as np\n",
+ "\n",
+ "#Initilization of Variables\n",
+ "\n",
+ "G=80*10**3 #N/mm**2 #Modulus of rigidity\n",
+ "q_s=80 #N/mm**2 #Max sheare stress\n",
+ "P=736*10**6 #N-mm/sec #Power transmitted\n",
+ "n=200\n",
+ "\n",
+ "#Calculations\n",
+ "\n",
+ "T=P*60*(2*pi*n)**-1 #N-mm #Torsional moment\n",
+ "\n",
+ "#Now From consideration of angle of twist\n",
+ "theta=pi*180**-1\n",
+ "#L=15*d\n",
+ "\n",
+ "d=(T*32*180*15*(pi**2*G)**-1)**0.33333\n",
+ "\n",
+ "#Now corresponding stress at the surface is\n",
+ "q_s2=T*32*d*(pi*2*d**4)**-1\n",
+ "\n",
+ "#Result\n",
+ "print\"Max diameter required is\",round(d,2),\"mm\"\n",
+ "print\"Corresponding shear stress is\",round(q_s2,2),\"N/mm**2\""
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Max diameter required is 156.66 mm\n",
+ "Corresponding shear stress is 46.55 N/mm**2\n"
+ ]
+ }
+ ],
+ "prompt_number": 27
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 6.6.4,Page No.228"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "import numpy as np\n",
+ "\n",
+ "#Initilization of Variables\n",
+ "\n",
+ "d=25 #mm #Diameter of steel bar\n",
+ "p=50*10**3 #N #Pull\n",
+ "dell_1=0.095 #mm #Extension of bar\n",
+ "l=200 #mm #Guage Length\n",
+ "T=200*10**3 #N-mm #Torsional moment\n",
+ "theta=0.9*pi*180**-1 #angle of twist\n",
+ "L=250 #mm Length of steel bar\n",
+ "\n",
+ "#Calculations\n",
+ "\n",
+ "A=pi*4**-1*d**2 #Area of steel bar #mm**2\n",
+ "E=p*l*(dell_1*A)**-1 #N/mm**2 #Modulus of elasticity \n",
+ "\n",
+ "J=pi*32**-1*d**4 #mm**4 #Polar modulus\n",
+ "\n",
+ "G=T*L*(theta*J)**-1 #Modulus of rigidity #N/mm**2\n",
+ "\n",
+ "#Now from the relation of Elastic constants\n",
+ "mu=E*(2*G)**-1-1\n",
+ "\n",
+ "#result\n",
+ "print\"The Poissoin's ratio is\",round(mu,3)"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "The Poissoin's ratio is 0.292\n"
+ ]
+ }
+ ],
+ "prompt_number": 30
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 6.6.5,Page No.229"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "import numpy as np\n",
+ "\n",
+ "#Initilization of Variables\n",
+ "\n",
+ "L=6000 #mm #Length of circular shaft\n",
+ "d1=100 #mm #Outer Diameter\n",
+ "d2=75 #mm #Inner Diameter\n",
+ "R=100*2**-1 #Radius of shaft\n",
+ "T=10*10**6 #N-mm #Torsional moment\n",
+ "G=80*10**3 #N/mm**2 #Modulus of Rigidity\n",
+ "\n",
+ "#Calculations\n",
+ "\n",
+ "J=pi*32**-1*(d1**4-d2**4) #mm**4 #Polar Modulus \n",
+ "\n",
+ "#Max Shear stress produced\n",
+ "q_s=T*R*J**-1 #N/mm**2\n",
+ "\n",
+ "#Angle of twist\n",
+ "theta=T*L*(G*J)**-1 #Radian\n",
+ "\n",
+ "#Result\n",
+ "print\"MAx shear stress produced is\",round(q_s,2),\"N/mm**2\"\n",
+ "print\"Angle of Twist is\",round(theta,2),\"Radian\""
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "MAx shear stress produced is 74.5 N/mm**2\n",
+ "Angle of Twist is 0.11 Radian\n"
+ ]
+ }
+ ],
+ "prompt_number": 1
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 6.6.6,Page No.229"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "import numpy as np\n",
+ "\n",
+ "#Initilization of Variables\n",
+ "\n",
+ "d1=200 #mm #External Diameter of shaft\n",
+ "t=25 #mm #Thickness of shaft\n",
+ "n=200 #rpm\n",
+ "theta=0.5*pi*180**-1 #Radian #angle of twist\n",
+ "L=2000 #mm #Length of shaft\n",
+ "G=84*10**3 #N/mm**2\n",
+ "d2=d1-2*t #mm #Internal Diameter of shaft\n",
+ "\n",
+ "#Calculations\n",
+ "\n",
+ "J=pi*32**-1*(d1**4-d2**4) #mm**4 #Polar Modulus \n",
+ "\n",
+ "#Torsional moment\n",
+ "T=G*J*theta*L**-1 #N/mm**2 \n",
+ "\n",
+ "#Power Transmitted\n",
+ "P=2*pi*n*T*60**-1*10**-6 #N-mm\n",
+ "\n",
+ "#Max shear stress transmitted\n",
+ "q_s=G*theta*(d1*2**-1)*L**-1 #N/mm**2 \n",
+ "\n",
+ "#Result\n",
+ "print\"Power Transmitted is\",round(P,2),\"N-mm\"\n",
+ "print\"Max Shear stress produced is\",round(q_s,2),\"N/mm**2\""
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Power Transmitted is 824.28 N-mm\n",
+ "Max Shear stress produced is 36.65 N/mm**2\n"
+ ]
+ }
+ ],
+ "prompt_number": 14
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 6.6.7,Page No.230"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "import numpy as np\n",
+ "\n",
+ "#Initilization of Variables\n",
+ "\n",
+ "P=3750*10**6 #N-mm/sec\n",
+ "n=240 #Rpm\n",
+ "q_s=160 #N/mm**2 #Max shear stress\n",
+ "\n",
+ "#Calculations\n",
+ "\n",
+ "#d2=0.8*d2 #mm #Internal Diameter of shaft\n",
+ "\n",
+ "#J=pi*32**-1*(d1**4-d2**4) #mm**4 #Polar modulus\n",
+ "#After substituting value in above Equation we get\n",
+ "#J=0.05796*d1**4\n",
+ "\n",
+ "T=P*60*(2*pi*n)**-1 #N-mm #Torsional moment\n",
+ "\n",
+ "#Now from Torsion Formula\n",
+ "#T*J**-1=q_s*R**-1 ......................................(1)\n",
+ "\n",
+ "#But R=d1*2**-1 \n",
+ "\n",
+ "#Now substituting value of R and J in Equation (1) we get\n",
+ "d1=(T*(0.05796*q_s*2)**-1)**0.33333\n",
+ "\n",
+ "d2=d1*0.8\n",
+ "\n",
+ "#Result\n",
+ "print\"The size of the Shaft is:d1\",round(d1,3),\"mm\"\n",
+ "print\" :d2\",round(d2,3),\"mm\""
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "The size of the Shaft is:d1 200.362 mm\n",
+ " :d2 160.289 mm\n"
+ ]
+ }
+ ],
+ "prompt_number": 22
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 6.6.8,Page No.231"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "import numpy as np\n",
+ "\n",
+ "#Initilization of Variables\n",
+ "\n",
+ "P=245*10**6 #N-mm/sec #Power transmitted\n",
+ "n=240 #rpm\n",
+ "q_s=40 #N/mm**2 #Shear stress\n",
+ "theta=pi*180**-1 #radian #Angle of twist\n",
+ "L=1000 #mm #Length of shaft\n",
+ "G=80*10**3 #N/mm**2\n",
+ "\n",
+ "#Tmax=1.5*T\n",
+ "\n",
+ "#Calculations\n",
+ "\n",
+ "T=P*60*(2*pi*n)**-1 #N-mm #Torsional Moment\n",
+ "Tmax=1.5*T\n",
+ "\n",
+ "#Now For Solid shaft\n",
+ "#J=pi*32*d**4\n",
+ "\n",
+ "#Now from the consideration of shear stress we get\n",
+ "#T*J**-1=q_s*(d*2**-1)**-1\n",
+ "#After substituting value in above Equation we get\n",
+ "#T=pi*16**-1*d**3*q_s\n",
+ "\n",
+ "#Designing For max Torque\n",
+ "d=(Tmax*16*(pi*40)**-1)**0.33333 #mm #Diameter of shaft\n",
+ "\n",
+ "#For max Angle of Twist\n",
+ "#Tmax*J**-1=G*theta*L**-1 \n",
+ "#After substituting value in above Equation we get\n",
+ "d2=(Tmax*32*180*L*(pi**2*G)**-1)**0.25\n",
+ "\n",
+ "#For Hollow Shaft\n",
+ "\n",
+ "#d1_2=Outer Diameter\n",
+ "#d2_2=Inner Diameter\n",
+ "\n",
+ "#d2_2=0.5*d1_2\n",
+ "\n",
+ "# Polar modulus\n",
+ "#J=pi*32**-1*(d1_2**4-d2_2**4)\n",
+ "#After substituting values we get\n",
+ "#J=0.092038*d1_2**4\n",
+ "\n",
+ "#Now from the consideration of stress\n",
+ "#Tmax*J**-1=q_s*(d1_2*2**-1)**-1\n",
+ "#After substituting values and further simplifying we get\n",
+ "d1_2=(Tmax*(0.092038*2*q_s)**-1)**0.33333\n",
+ "\n",
+ "#Now from the consideration of angle of twist\n",
+ "#Tmax*J**-1=G*theta*L**-1\n",
+ "#After substituting values and further simplifying we get\n",
+ "d1_3=(Tmax*180*L*(0.092038*G*pi)**-1)**0.25\n",
+ "\n",
+ "d2_2=0.5*d1_2\n",
+ "\n",
+ "#result\n",
+ "print\"Diameter of shaft is:For solid shaft:d\",round(d,2),\"mm\"\n",
+ "print\" :For Hollow shaft:d1_2\",round(d1_2,3),\"mm\"\n",
+ "print\" : :d2_2\",round(d2_2,3),\"mm\" "
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Diameter of shaft is:For solid shaft:d 123.01 mm\n",
+ " :For Hollow shaft:d1_2 125.69 mm\n",
+ " : :d2_2 62.845 mm\n"
+ ]
+ }
+ ],
+ "prompt_number": 7
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 6.6.11,Page No.235"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "import numpy as np\n",
+ "\n",
+ "#Initilization of Variables\n",
+ "\n",
+ "P=250*10**6 #N-mm/sec #Power transmitted\n",
+ "n=100 #rpm\n",
+ "q_s=75 #N/mm**2 #Shear stress\n",
+ "\n",
+ "#Calculations\n",
+ "\n",
+ "#From Equation of Power we have\n",
+ "T=P*60*(2*pi*n)**-1 #N-mm #Torsional moment\n",
+ "\n",
+ "#Now from torsional moment equation we have\n",
+ "#T=j*q_s*(d/2**-1)**-1\n",
+ "#After substituting values in above equation and further simplifying we get\n",
+ "#T=pi*16**-1**d**3*q_s\n",
+ "d=(T*16*(pi*q_s)**-1)**0.3333 #mm #Diameter of solid shaft\n",
+ "\n",
+ "#PArt-2\n",
+ "\n",
+ "#Let d1 and d2 be the outer and inner diameter of hollow shaft\n",
+ "#d2=0.6*d1\n",
+ "\n",
+ "#Again from torsional moment equation we have\n",
+ "#T=pi*32**-1*(d1**4-d2**4)*q_s*(d1/2)**-1\n",
+ "d1=(T*16*(pi*(1-0.6**4)*q_s)**-1)**0.33333\n",
+ "d2=0.6*d1\n",
+ "\n",
+ "#Cross sectional area of solid shaft\n",
+ "A1=pi*4**-1*d**2 #mm**2\n",
+ "\n",
+ "#cross sectional area of hollow shaft\n",
+ "A2=pi*4**-1*(d1**2-d2**2)\n",
+ "\n",
+ "#Now percentage saving in weight\n",
+ "#Let W be the percentage saving in weight\n",
+ "W=(A1-A2)*100*A1**-1\n",
+ "\n",
+ "#Result\n",
+ "print\"Percentage saving in Weight is\",round(W,3),\"%\"\n",
+ "print\"Size of shaft is:solid shaft:d\",round(d,3),\"mm\"\n",
+ "print\" :Hollow shaft:d1\",round(d1,3),\"mm\"\n",
+ "print\" : :d2\",round(d2,3),\"mm\""
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Percentage saving in Weight is 29.735 %\n",
+ "Size of shaft is:solid shaft:d 117.418 mm\n",
+ " :Hollow shaft:d1 123.031 mm\n",
+ " : :d2 73.818 mm\n"
+ ]
+ }
+ ],
+ "prompt_number": 2
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 6.6.12,Page No.237"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "import numpy as np\n",
+ "\n",
+ "#Initilization of Variables\n",
+ "d=100 #mm #Diameter of solid shaft\n",
+ "d1=100 #mm #Outer Diameter of hollow shaft\n",
+ "d2=50 #mm #Inner Diameter of hollow shaft\n",
+ "\n",
+ "#Calculations\n",
+ "\n",
+ "#Torsional moment of solid shaft\n",
+ "#T_s=J*q_s*(d*2**-1)**-1 \n",
+ "#After substituting values in above equation and further simplifying we get\n",
+ "#T_s=pi*16*d**3*q_s ...............(1)\n",
+ "\n",
+ "#torsional moment for hollow shaft is\n",
+ "#T_h=J*q_s*(d1**4-d2**4)**-1*(d1*2**-1)\n",
+ "#After substituting values in above equation and further simplifying we get\n",
+ "#T_h=pi*32**-1*2*d1**-1*(d1**4-d2**4)*q_s ...........(2)\n",
+ "\n",
+ "#Dividing Equation 2 by 1 we get\n",
+ "#Let the ratio of T_h*T_s**-1 Be X\n",
+ "X=1-0.5**4\n",
+ "\n",
+ "#Loss in strength \n",
+ "#Let s be the loss in strength\n",
+ "#s=T_s*T_h*100*T_s**-1\n",
+ "#After substituting values in above equation and further simplifying we get\n",
+ "s=(1-0.9375)*100\n",
+ "\n",
+ "#Weight Ratio \n",
+ "#Let w be the Weight ratio\n",
+ "#w=W_h*W_s**-1\n",
+ "\n",
+ "A_h=pi*32**-1*(d1**2-d2**2) #mm**2 #Area of Hollow shaft\n",
+ "A_s=pi*32**-1*d**2 #mm**2 #Area of solid shaft\n",
+ "\n",
+ "w=A_h*A_s**-1 \n",
+ "\n",
+ "#Result\n",
+ "print\"Loss in strength is\",round(s,2)\n",
+ "print\"Weight ratio is\",round(w,2)"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Loss in strength is 6.25\n",
+ "Weight ratio is 0.75\n"
+ ]
+ }
+ ],
+ "prompt_number": 4
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 6.6.13,Page No.239"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "import numpy as np\n",
+ "\n",
+ "#Initilization of Variables\n",
+ "T=8 #KN-m #Torque \n",
+ "d=100 #mm #Diameter of portion AB\n",
+ "d1=100 #mm #External Diameter of Portion BC\n",
+ "d2=75 #mm #Internal Diameter of Portion BC\n",
+ "G=80 #KN/mm**2 #Modulus of Rigidity\n",
+ "L1=1500 #mm #Radial Distance of Portion AB\n",
+ "L2=2500 #mm #Radial Distance ofPortion BC\n",
+ "\n",
+ "#Calculations\n",
+ "\n",
+ "R=d*2**-1 #mm #Radius of shaft\n",
+ "\n",
+ "#For Portion AB,Polar Modulus\n",
+ "J1=pi*32**-1*d**4 #mm**4 \n",
+ "\n",
+ "#For Portion BC,Polar modulus \n",
+ "J2=pi*32**-1*(d1**4-d2**4) #mm**4\n",
+ "\n",
+ "#Now Max stress occurs in portion BC since max radial Distance is sme in both cases\n",
+ "q_max=T*J2**-1*R*10**6 #N/mm**2 \n",
+ "\n",
+ "#Let theta1 be the rotation in Portion AB and theta2 be the rotation in portion BC\n",
+ "theta1=T*L1*(G*J1)**-1 #Radians\n",
+ "theta2=T*L2*(G*J2)**-1 #Radians\n",
+ "\n",
+ "#Total Rotational at end C\n",
+ "theta=(theta1+theta2)*10**3 #Radians\n",
+ "\n",
+ "#Result\n",
+ "print\"Max stress induced is\",round(q_max,2),\"N/mm**2\"\n",
+ "print\"Angle of Twist is\",round(theta,3),\"radians\""
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Max stress induced is 59.6 N/mm**2\n",
+ "Angle of Twist is 0.053 radians\n"
+ ]
+ }
+ ],
+ "prompt_number": 23
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 6.6.14,Page No.240"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "import numpy as np\n",
+ "\n",
+ "#Initilization of Variables\n",
+ "\n",
+ "q_b=80 #N/mm**2 #Shear stress in Brass\n",
+ "q_s=100 #N/mm**2 #Shear stress in Steel\n",
+ "G_b=40*10**3 #N/mm**2 \n",
+ "G_s=80*10**3 \n",
+ "L_b=1000 #mm #Length of brass shaft\n",
+ "L_s=1200 #mm #Length of steel shaft\n",
+ "d1=80 #mm #Diameter of brass shaft\n",
+ "d2=60 #mm #Diameter of steel shaft\n",
+ "\n",
+ "#Calculations\n",
+ "\n",
+ "#Polar modulus of brass rod\n",
+ "J_b=pi*32**-1*d1**4 #mm**4 \n",
+ "\n",
+ "#Polar modulus of steel rod\n",
+ "J_s=pi*32**-1*d2**4 #mm**4\n",
+ "\n",
+ "#Considering bras Rod:AB\n",
+ "T1=J_b*q_b*(d1*2**-1)**-1 #N-mm \n",
+ "\n",
+ "#Considering Steel Rod:BC\n",
+ "T2=J_s*q_s*(d2*2**-1)**-1 #N-mm\n",
+ "\n",
+ "#Max Torque that can be applied\n",
+ "T2\n",
+ "\n",
+ "#Let theta_b and theta_s be the rotations in Brass and steel respectively\n",
+ "theta_b=T2*L_b*(G_b*J_b)**-1 #Radians\n",
+ "theta_s=T2*L_s*(G_s*J_s)**-1 #Radians\n",
+ "\n",
+ "theta=theta_b+theta_s #Radians #Rotation of free end\n",
+ "\n",
+ "#Result\n",
+ "print\"Total of free end is\",round(theta,3),\"Radians\""
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Total of free end is 0.076 Radians\n"
+ ]
+ }
+ ],
+ "prompt_number": 36
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 6.6.15,Page No.241"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "import numpy as np\n",
+ "\n",
+ "#Initilization of Variables\n",
+ "\n",
+ "G=80*10**3 #N/mm**2 #Modulus of Rigidity\n",
+ "d1=100 #mm #Outer diameter of hollow shft\n",
+ "d2=80 #mm #Inner diameter of hollow shaft\n",
+ "d=80 #mm #diameter of Solid shaft\n",
+ "d3=60 #mm #diameter of Solid shaft having L=0.5m\n",
+ "L1=300 #mm #Length of Hollow shaft\n",
+ "L2=400 #mm #Length of solid shaft\n",
+ "L3=500 #mm #LEngth of solid shaft of diameter 60mm\n",
+ "T1=2*10**6 #N-mm #Torsion in Shaft AB\n",
+ "T2=1*10**6 #N-mm #Torsion in shaft BC\n",
+ "T3=1*10**6 #N-mm #Torsion in shaft CD\n",
+ "\n",
+ "#Calculations\n",
+ "\n",
+ "#Now Polar modulus of section AB\n",
+ "J1=pi*32**-1*(d1**4-d2**4) #mm**4 \n",
+ "\n",
+ "#Polar modulus of section BC\n",
+ "J2=pi*32**-1*d**4 #mm**4\n",
+ "\n",
+ "#Polar modulus of section CD\n",
+ "J3=pi*32**-1*d3**4 #mm**4\n",
+ "\n",
+ "#Now angle of twist of AB\n",
+ "theta1=T1*L1*(G*J1)**-1 #radians\n",
+ "\n",
+ "#Angle of twist of BC\n",
+ "theta2=T2*L2*(G*J2)**-1 #radians\n",
+ "\n",
+ "#Angle of twist of CD\n",
+ "theta3=T3*L3*(G*J3)**-1 #radians\n",
+ "\n",
+ "#Angle of twist\n",
+ "theta=theta1-theta2+theta3 #Radians\n",
+ "\n",
+ "#Shear stress in AB From Torsion Equation\n",
+ "q_s1=T1*(d1*2**-1)*J1**-1 #N/mm**2 \n",
+ "\n",
+ "#Shear stress in BC\n",
+ "q_s2=T2*(d*2**-1)*J2**-1 #N/mm**2 \n",
+ "\n",
+ "#Shear stress in CD\n",
+ "q_s3=T3*(d3*2**-1)*J3**-1 #N-mm**2\n",
+ "\n",
+ "#As max shear stress occurs in portion CD,so consider CD\n",
+ "\n",
+ "#Result\n",
+ "print\"Angle of twist at free end is\",round(theta,5),\"Radian\"\n",
+ "print\"Max Shear stress\",round(q_s3,2),\"N/mm**2\""
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Angle of twist at free end is 0.00496 Radian\n",
+ "Max Shear stress 23.58 N/mm**2\n"
+ ]
+ }
+ ],
+ "prompt_number": 2
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 6.6.16,Page No.242"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "import numpy as np\n",
+ "\n",
+ "#Initilization of Variables\n",
+ "\n",
+ "L=1000 #mm #Length of bar\n",
+ "L1=600 #mm #Length of Bar AB\n",
+ "L2=400 #mm #Length of Bar BC\n",
+ "d1=60 #mm #Outer Diameter of bar BC\n",
+ "d2=30 #mm #Inner Diameter of bar BC\n",
+ "d=60 #mm #Diameter of bar AB\n",
+ "T=2*10**6 #N-mm #Total Torque\n",
+ "\n",
+ "#Calculations\n",
+ "\n",
+ "#Polar Modulus of Portion AB\n",
+ "J1=pi*32**-1*d**4 #mm*4\n",
+ "\n",
+ "#Polar Modulus of Portion BC\n",
+ "J2=pi*32**-1*(d1**4-d2**4) #mm**4\n",
+ "\n",
+ "#Let T1 be the torque resisted by bar AB and T2 be torque resisted by Bar BC\n",
+ "#Let theta1 and theta2 be the rotation of shaft in portion AB & BC\n",
+ "\n",
+ "#theta1=T1*L1*(G*J1)**-1 #radians\n",
+ "#After substituting values and further simplifying we get \n",
+ "#theta1=32*600*T1*(pi*60**4*G)**-1\n",
+ "\n",
+ "#theta2=T2*L*(J2*G)**-1 #Radians\n",
+ "#After substituting values and further simplifying we get \n",
+ "#theta2=32*400*T2*(pi*60**4*(1-0.5**4)*G)**-1 \n",
+ "\n",
+ "#Now For consistency of Deformation,theta1=theta2\n",
+ "#After substituting values and further simplifying we get \n",
+ "#T1=0.7111*T2 ..................................................(1)\n",
+ "\n",
+ "#But T1+T2=T=2*10**6 ...........................................(2)\n",
+ "#Substituting value of T1 in above equation\n",
+ "\n",
+ "T2=T*(0.7111+1)**-1\n",
+ "T1=0.71111*T2\n",
+ "\n",
+ "#Max stress in Portion AB\n",
+ "q_s1=T1*(d*2**-1)*(J1)**-1 #N/mm**2\n",
+ "\n",
+ "#Max stress in Portion BC\n",
+ "q_s2=T2*(d1*2**-1)*J2**-1 #N/mm**2 \n",
+ "\n",
+ "#Result\n",
+ "print\"Stresses Developed in Portion:AB\",round(q_s1,2),\"N/mm**2\"\n",
+ "print\" :BC\",round(q_s2,2),\"N/mm**2\""
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Stresses Developed in Portion:AB 19.6 N/mm**2\n",
+ " :BC 29.4 N/mm**2\n"
+ ]
+ }
+ ],
+ "prompt_number": 1
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 6.6.17,Page No.243"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "import numpy as np\n",
+ "\n",
+ "#Initilization of Variables\n",
+ "\n",
+ "d1=80 #mm #External Diameter of Brass tube\n",
+ "d2=50 #mm #Internal Diameter of Brass tube\n",
+ "d=50 #mm #Diameter of steel Tube\n",
+ "G_b=40*10**3 #N/mm**2 #Modulus of Rigidity of brass tube\n",
+ "G_s=80*10**3 #N/mm**2 #Modulus of rigidity of steel tube\n",
+ "T=6*10**6 #N-mm #Torque\n",
+ "L=2000 #mm #Length of Tube\n",
+ "\n",
+ "#Calculations\n",
+ "\n",
+ "#Polar Modulus of brass tube\n",
+ "J1=pi*32**-1*(d1**4-d2**4) #mm**4 \n",
+ "\n",
+ "#Polar modulus of steel Tube\n",
+ "J2=pi*32**-1*d**4 #mm**4\n",
+ "\n",
+ "#Let T_s & T_b be the torque resisted by steel and brass respectively\n",
+ "#Then, T_b+T_s=T ............................................(1)\n",
+ "\n",
+ "#Since the angle of twist will be the same\n",
+ "#Theta1=Theta2\n",
+ "#After substituting values and further simplifying we get \n",
+ "#Ts=0.360*Tb ...........................................(2)\n",
+ "\n",
+ "#After substituting value of Ts in eqn 1 and further simplifying we get \n",
+ "T_b=T*(0.36+1)**-1 #N-mm\n",
+ "T_s=0.360*T_b\n",
+ "\n",
+ "#Let q_s and q_b be the max stress in steel and brass respectively\n",
+ "q_b=T_b*(d1*2**-1)*J1**-1 #N/mm**2\n",
+ "q_s=T_s*(d2*2**-1)*J2**-1 #N/mm**2\n",
+ "\n",
+ "#Since angle of twist in brass=angle of twist in steel\n",
+ "theta_s=T_s*L*(J2*G_s)**-1\n",
+ "\n",
+ "#Result\n",
+ "print\"Stresses Developed in Materials are:Brass\",round(q_b,2),\"N/mm**2\"\n",
+ "print\" :Steel\",round(q_s,2),\"N/mm**2\"\n",
+ "print\"Angle of Twist in 2m Length\",round(theta_s,3),\"Radians\" "
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Stresses Developed in Materials are:Brass 51.79 N/mm**2\n",
+ " :Steel 64.71 N/mm**2\n",
+ "Angle of Twist in 2m Length 0.065 Radians\n"
+ ]
+ }
+ ],
+ "prompt_number": 12
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 6.6.18,Page No.245"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "import numpy as np\n",
+ "\n",
+ "#Initilization of Variables\n",
+ "\n",
+ "d1=60 #mm #External Diameter of aluminium Tube\n",
+ "d2=40 #mm #Internal Diameter of aluminium Tube\n",
+ "d=40 #mm #Diameter of steel tube\n",
+ "q_a=60 #N/mm**2 #Permissible stress in aluminium\n",
+ "q_s=100 #N/mm**2 #Permissible stress in steel tube\n",
+ "G_a=27*10**3 #N/mm**2 \n",
+ "G_s=80*10**3 #N/mm**2 \n",
+ "\n",
+ "#Calculations\n",
+ "\n",
+ "#Polar modulus of aluminium Tube\n",
+ "J_a=pi*32**-1*(d1**4-d2**4) #mm**4\n",
+ "\n",
+ "#Polar Modulus of steel Tube\n",
+ "J_s=pi*32**-1*d**4 #mm**4\n",
+ "\n",
+ "#Now the angle of twist of steel tube = angle of twist of aluminium tube\n",
+ "#T_s*L_s*(J_s*theta_s)**-1=T_a*L_a*(J_a*theta_a)**-1\n",
+ "#After substituting values in above Equation and Further simplifyin we get\n",
+ "#T_s=0.7293*T_a .....................(1)\n",
+ "\n",
+ "#If steel Governs the resisting capacity\n",
+ "T_s1=q_s*J_s*(d*2**-1)**-1 #N-mm\n",
+ "T_a1=T_s1*0.7293**-1 #N-mm\n",
+ "T1=(T_s1+T_a1)*10**-6 #KN-m #Total Torque in steel Tube\n",
+ "\n",
+ "#If aluminium Governs the resisting capacity \n",
+ "T_a2=q_a*J_a*(d1*2**-1) #N-mm\n",
+ "T_s2=T_a2*0.7293 #N-mm\n",
+ "T2=(T_s2+T_a2)*10**-6 #KN-m #Total Torque in aluminium tube\n",
+ "\n",
+ "#Result\n",
+ "print\"Steel Governs the torque carrying capacity\",round(T1,2),\"KN-m\""
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Steel Governs the torque carrying capacity 2.98 KN-m\n"
+ ]
+ }
+ ],
+ "prompt_number": 19
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 6.6.19,Page No.247"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "import numpy as np\n",
+ "\n",
+ "#Initilization of Variables\n",
+ "\n",
+ "P=225*10**6 #N-mm/sec #Power Trasmitted\n",
+ "q_b=80 #N/mm**2 #Shear stress\n",
+ "n=200 #Rpm\n",
+ "q_k=100 #N/mm**2 #PErmissible stress in Keys\n",
+ "D=300 #mm #Diameter of bolt circle\n",
+ "L=150 #mm #Length of shear key\n",
+ "d=16 #mm #Diameterr of bolt\n",
+ "\n",
+ "#Calculations\n",
+ "T=60*P*(2*pi*n)**-1 #N-mm #Torque\n",
+ "\n",
+ "#Now From Torsion Formula\n",
+ "#T*J**-1=q_s*R**-1\n",
+ "#After substituting values we get\n",
+ "#T=pi*16*d**3*n\n",
+ "#After further simplifying we get\n",
+ "d1=(T*16*(pi*q_s)**-1)**0.33333\n",
+ "\n",
+ "#Let b be the width of shear Key\n",
+ "#T=q_k*L*b*R\n",
+ "#After simplifying further we get\n",
+ "b=T*(q_k*L*(d1*2**-1))**-1 #mm\n",
+ "\n",
+ "#Let n2 be the no. of bolts required at bolt circle of radius\n",
+ "R_b=D*2**-1 #mm \n",
+ "\n",
+ "n2=T*4*(q_b*pi*d**2*R_b)**-1\n",
+ "\n",
+ "#result\n",
+ "print\"Minimum no. of Bolts Required are\",round(n2,2)"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Minimum no. of Bolts Required are 4.45\n"
+ ]
+ }
+ ],
+ "prompt_number": 26
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 6.6.20,Page No.250"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "import numpy as np\n",
+ "\n",
+ "#Initilization of Variables\n",
+ "\n",
+ "T=2*10**6 #N-mm #Torque transmitted\n",
+ "G=80*10**3 #N/mm**2 #Modulus of rigidity\n",
+ "d1=40 #mm \n",
+ "d2=80 #mm\n",
+ "r1=20 #mm\n",
+ "r2=40 #mm\n",
+ "L=2000 #mm #Length of shaft\n",
+ "\n",
+ "#Calculations\n",
+ "\n",
+ "#Angle of twist \n",
+ "theta=2*T*L*(r1**2+r1*r2+r2**2)*(3*pi*G*r2**3*r1**3)**-1 #radians\n",
+ "\n",
+ "#If the shaft is treated as shaft of average Diameter\n",
+ "d_avg=(d1+d2)*2**-1 #mm\n",
+ "\n",
+ "theta1=T*L*(G*pi*32**-1*d_avg**4)**-1 #Radians\n",
+ "\n",
+ "#Percentage Error\n",
+ "#Let Percentage Error be E\n",
+ "X=theta-theta1\n",
+ "E=(X*theta**-1)*100 \n",
+ "\n",
+ "#Result\n",
+ "print\"Percentage Error is\",round(E,2),\"%\""
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Percentage Error is 32.28 %\n"
+ ]
+ }
+ ],
+ "prompt_number": 42
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 6.6.21,Page No.252"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "import numpy as np\n",
+ "\n",
+ "#Initilization of Variables\n",
+ "\n",
+ "G=80*10**3 #N/mm**2 \n",
+ "P=1*10**9 #N-mm/sec #Power\n",
+ "n=300 \n",
+ "d1=150 #mm #Outer Diameter\n",
+ "d2=120 #mm #Inner Diameter\n",
+ "L=2000 #mm #Length of circular shaft\n",
+ "\n",
+ "#Calculations\n",
+ "\n",
+ "T=P*60*(2*pi*n)**-1 #N-mm\n",
+ "\n",
+ "#Polar Modulus \n",
+ "J=pi*32**-1*(d1**4-d2**4) #mm**4\n",
+ "\n",
+ "q_s=T*J**-1*(d1*2**-1) #N/mm**2 \n",
+ "\n",
+ "\n",
+ "#Strain ENergy\n",
+ "U=q_s**2*(4*G)**-1*pi*4**-1*(d1**2-d2**2)*L\n",
+ "\n",
+ "#Result\n",
+ "print\"Max shear stress is\",round(q_s,2),\"N/mm**2\"\n",
+ "print\"Strain Energy stored in the shaft is\",round(U,2),\"N-mm\""
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Max shear stress is 81.36 N/mm**2\n",
+ "Strain Energy stored in the shaft is 263181.37 N-mm\n"
+ ]
+ }
+ ],
+ "prompt_number": 51
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 6.6.22,Page No.254"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "import numpy as np\n",
+ "\n",
+ "#Initilization of Variables\n",
+ "\n",
+ "d=12 #mm #Diameter of helical spring\n",
+ "D=150 #mm #Mean Diameter\n",
+ "R=D*2**-1 #mm #Radius of helical spring\n",
+ "n=10 #no.of turns\n",
+ "G=80*10**3 #N/mm**2 \n",
+ "W=450 #N #Load\n",
+ "\n",
+ "#Calculations\n",
+ "\n",
+ "#Max shear stress \n",
+ "q_s=16*W*R*(pi*d**3)**-1 #N/mm**2\n",
+ "\n",
+ "#Strain Energy stored\n",
+ "U=32*W**2*R**3*n*(G*d**4)**-1 #N-mm\n",
+ "\n",
+ "#Deflection Produced\n",
+ "dell=64*W*R**3*n*(G*d**4)**-1 #mm\n",
+ "\n",
+ "#Stiffness Spring\n",
+ "k=W*dell**-1 #N/mm\n",
+ "\n",
+ "#Result\n",
+ "print\"Max shear stress is\",round(q_s,2),\"N/mm**2\"\n",
+ "print\"Strain Energy stored is\",round(U,2),\"N-mm\"\n",
+ "print\"Deflection Produced is\",round(dell,2),\"mm\"\n",
+ "print\"Stiffness spring is\",round(k,2),\"N/mm\""
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Max shear stress is 99.47 N/mm**2\n",
+ "Strain Energy stored is 16479.49 N-mm\n",
+ "Deflection Produced is 73.24 mm\n",
+ "Stiffness spring is 6.14 N/mm\n"
+ ]
+ }
+ ],
+ "prompt_number": 53
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 6.6.23,Page No.255"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "import numpy as np\n",
+ "\n",
+ "#Initilization of Variables\n",
+ "\n",
+ "K=5 #N/mm #Stiffness\n",
+ "L=100 #mm #Solid Length\n",
+ "q_s=60 #N/mm**2 #Max shear stress\n",
+ "W=200 #N #Max Load\n",
+ "G=80*10**3 #N/mm**2\n",
+ "\n",
+ "#Calculations\n",
+ "\n",
+ "#K=W*dell**-1\n",
+ "#After substituting values and further simplifying we get\n",
+ "#d=0.004*R**3*n ........(1) #mm #Diameter of wire\n",
+ "#n=L*d**-1 ........(2)\n",
+ "\n",
+ "#From Shearing stress\n",
+ "#q_s=16*W*R*(pi*d**3)**-1 \n",
+ "#After substituting values and further simplifying we get\n",
+ "#d**4=0.004*R**3*n .................(4)\n",
+ "\n",
+ "#From Equation 1,2,3\n",
+ "#d**4=0.004*(0.0785*d**3)**3*100*d**-1\n",
+ "#after further simplifying we get\n",
+ "d=5168.101**0.25\n",
+ "n=100*d**-1\n",
+ "R=(d**4*(0.004*n)**-1)**0.3333\n",
+ "\n",
+ "#Result\n",
+ "print\"Diameter of Wire is\",round(d,2),\"mm\"\n",
+ "print\"No.of turns is\",round(n,2)\n",
+ "print\"Mean Radius of spring is\",round(R,2),\"mm\""
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Diameter of Wire is 8.48 mm\n",
+ "No.fo turns is 11.79\n",
+ "Mean Radius of spring is 47.83 mm\n"
+ ]
+ }
+ ],
+ "prompt_number": 54
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 6.6.24,Page No.255"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "import numpy as np\n",
+ "\n",
+ "#Initilization of Variables\n",
+ "\n",
+ "m=5*10**5 #Wagon Weighing\n",
+ "v=18*1000*36000**-1 \n",
+ "d=300 #mm #Diameter of Beffer springs\n",
+ "n=18 #no.of turns\n",
+ "G=80*10**3 #N/mm**2\n",
+ "dell=225\n",
+ "R=100 #mm #Mean Radius\n",
+ "\n",
+ "#Calculations\n",
+ "\n",
+ "#Energy of Wagon\n",
+ "E=m*v**2*(9.81*2)**-1 #N-mm\n",
+ "\n",
+ "#Load applied\n",
+ "W=dell*G*d**4*(64*R**3*n)**-1 #N \n",
+ "\n",
+ "#Energy each spring can absorb is\n",
+ "E2=W*dell*2**-1 #N-mm\n",
+ "\n",
+ "#No.of springs required to absorb energy of Wagon\n",
+ "n2=E*E2**-1 *10**7\n",
+ "\n",
+ "#Result\n",
+ "print\"No.of springs Required for Buffer is\",round(n2,2)"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "No.of springs Required for Buffer is 4.47\n"
+ ]
+ }
+ ],
+ "prompt_number": 66
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 6.6.25,Page No.259"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "import numpy as np\n",
+ "\n",
+ "#Initilization of Variables\n",
+ "\n",
+ "b=180 #mm #width of flange\n",
+ "d=10 #mm #Depth of flange\n",
+ "t=10 #mm #Thickness of flange\n",
+ "D=400 #mm #Overall Depth \n",
+ "\n",
+ "#Calculations\n",
+ "\n",
+ "I_xx=1*12**-1*(b*D**3-(b-t)*(D-2*d)**3)\n",
+ "I_yy=1*12**-1*((D-2*d)*t**3+2*t*b**3)\n",
+ "\n",
+ "#If warping is neglected\n",
+ "J=I_xx+I_yy #mm**4\n",
+ "\n",
+ "#Since b/d>1.6,we get\n",
+ "J2=1*3**-1*d**3*b*(1-0.63*d*b**-1)*2+1*3**-1*t**3*(D-2*d)*(1-0.63*t*b**-1)\n",
+ "\n",
+ "#Over Estimation of torsional Rigidity would have been \n",
+ "T=J*J2**-1\n",
+ "\n",
+ "#Result\n",
+ "print\"Error in assessing torsional Rigidity if the warping is neglected is\",round(T,2)\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Error in assessing torsional Rigidity if the warping is neglected is 808.28\n"
+ ]
+ }
+ ],
+ "prompt_number": 68
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 6.6.26,Page No.261"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "import numpy as np\n",
+ "\n",
+ "#Initilization of Variables\n",
+ "\n",
+ "d1=100 #mm #Outer Diameter\n",
+ "d2=95 #mm #Inner Diameter\n",
+ "T=2*10**6 #N-mm #Torque\n",
+ "\n",
+ "#Calculations\n",
+ "\n",
+ "J=pi*32**-1*(d1**4-d2**4) #mm**4 #Polar Modulus\n",
+ "\n",
+ "#Shear stress\n",
+ "q_max=T*J**-1*d1*2**-1 #N/mm**2 \n",
+ "\n",
+ "#Now theta*L**-1=T*(G*J)**-1\n",
+ "#After substituting values and further simplifying we get\n",
+ "#Let theta*L**-1=X\n",
+ "X=T*J**-1\n",
+ "\n",
+ "#Now Treating it as very thin walled tube\n",
+ "d=(d1+d2)*2**-1 #mm\n",
+ "\n",
+ "r=d*2**-1 \n",
+ "t=(d1-d2)*2**-1\n",
+ "q_max2=T*(2*pi*r**2*t)**-1 #N/mm**2\n",
+ "\n",
+ "X2=T*(2*pi*r**3*t)**-1 \n",
+ "\n",
+ "#Result\n",
+ "print\"When it is treated as hollow shaft:Max shear stress\",round(q_max,2),\"N/mm**2\"\n",
+ "print\" :Angle of Twist per unit Length\",round(X,3)\n",
+ "print\"When it is very thin Walled Tube :Max shear stress\",round(q_max2,2),\"N/mm**2\"\n",
+ "print\" :Angle of twist per Unit Length\",round(X2,3)"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "When it is treated as hollow shaft:Max shear stress 54.91 N/mm**2\n",
+ " :Angle of Twist per unit Length 1.098\n",
+ "When it is very thin Walled Tube :Max shear stress 53.57 N/mm**2\n",
+ " :Angle of twist per Unit Length 1.099\n"
+ ]
+ }
+ ],
+ "prompt_number": 72
+ }
+ ],
+ "metadata": {}
+ }
+ ]
+}
\ No newline at end of file diff --git a/Strength_Of_Materials_by_S_S_Bhavikatti/chapter_no.7_fkGg3JF.ipynb b/Strength_Of_Materials_by_S_S_Bhavikatti/chapter_no.7_fkGg3JF.ipynb new file mode 100644 index 00000000..b75d886a --- /dev/null +++ b/Strength_Of_Materials_by_S_S_Bhavikatti/chapter_no.7_fkGg3JF.ipynb @@ -0,0 +1,1328 @@ +{
+ "metadata": {
+ "name": "chapter no.7.ipynb"
+ },
+ "nbformat": 3,
+ "nbformat_minor": 0,
+ "worksheets": [
+ {
+ "cells": [
+ {
+ "cell_type": "heading",
+ "level": 1,
+ "metadata": {},
+ "source": [
+ "Chapter No.7:Compound Stresses And Strains"
+ ]
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 7.1,Page No.269"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "import numpy as np\n",
+ "\n",
+ "#Initilization of Variables\n",
+ "\n",
+ "sigma1=30 #N/mm**2 #Stress in tension\n",
+ "d=20 #mm #Diameter \n",
+ "sigma2=90 #N/mm**2 #Max compressive stress\n",
+ "sigma3=25 #N/mm**2\n",
+ "\n",
+ "#Calculations\n",
+ "\n",
+ "#In TEnsion\n",
+ "\n",
+ "#Corresponding stress in shear\n",
+ "P=sigma1*2**-1 #N/mm**2\n",
+ "\n",
+ "#Tensile force\n",
+ "F=pi*4**-1*d**2*sigma1\n",
+ "\n",
+ "#In Compression\n",
+ "\n",
+ "#Correspong shear stress\n",
+ "P2=sigma2*2**-1 #N/mm**2\n",
+ "\n",
+ "#Correspong compressive(axial) stress\n",
+ "p=2*sigma3 #N/mm**2 \n",
+ "\n",
+ "#Corresponding Compressive force\n",
+ "P3=p*pi*4**-1*d**2 #N\n",
+ "\n",
+ "#Result\n",
+ "print\"Failure Loads are:\",round(F,2),\"N\"\n",
+ "print\" :\",round(P3,2),\"N\""
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Failure Loads are: 9424.78 N\n",
+ " : 15707.96 N\n"
+ ]
+ }
+ ],
+ "prompt_number": 24
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example No.7.2,Page No.270"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "import numpy as np\n",
+ "\n",
+ "#Initilization of Variables\n",
+ "\n",
+ "d=25 #mm #Diameter of circular bar\n",
+ "F=20*10**3 #N #Axial Force\n",
+ "theta=30 #Degree #angle \n",
+ "\n",
+ "#Calculations\n",
+ "\n",
+ "#Axial stresses\n",
+ "p=F*(pi*4**-1*d**2)**-1 #N/mm**2\n",
+ "\n",
+ "#Normal Stress\n",
+ "p_n=p*(cos(30*pi*180**-1))**2\n",
+ "\n",
+ "#Tangential Stress\n",
+ "p_t=p*2**-1*sin(2*theta*pi*180**-1)\n",
+ "\n",
+ "#Max shear stress occurs on plane where theta2=45 \n",
+ "theta2=45\n",
+ "sigma_max=p*2**-1*sin(2*theta2*pi*180**-1)\n",
+ "\n",
+ "#Result\n",
+ "print\"Stresses developed on a plane making 30 degree is:\",round(p_n,2),\"N/mm**2\"\n",
+ "print\" :\",round(p_t,2),\"N/mm**2\"\n",
+ "print\"stress on max shear stress is\",round(sigma_max,2),\"N/mm**2\""
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Stresses developed on a plane making 30 degree is: 30.56 N/mm**2\n",
+ " : 17.64 N/mm**2\n",
+ "stress on max shear stress is 20.37 N/mm**2\n"
+ ]
+ }
+ ],
+ "prompt_number": 38
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example No.7.3,Page No.272"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "import numpy as np\n",
+ "\n",
+ "#Initilization of Variables\n",
+ "\n",
+ "theta=30 #degree\n",
+ "\n",
+ "#Stresses acting on material\n",
+ "p1=120 #N/mm**2\n",
+ "p2=80 #N/mm**2\n",
+ "\n",
+ "#Calculations\n",
+ "\n",
+ "#Normal Stress\n",
+ "P_n=(p1+p2)*2**-1+(p1-p2)*2**-1*cos(2*theta*pi*180**-1) #N/mm**2\n",
+ "\n",
+ "#Tangential stress\n",
+ "P_t=(p1-p2)*2**-1*sin(2*theta*pi*180**-1)\n",
+ "\n",
+ "#Resultant stress\n",
+ "P=(P_n**2+P_t**2)**0.5 #N/mm**2\n",
+ "\n",
+ "#Inclination to the plane\n",
+ "phi=arctan(P_n*P_t**-1)*(180*pi**-1)\n",
+ "\n",
+ "#Angle made by resultant with 120 #N/mm**2 stress\n",
+ "phi2=phi+theta #Degree\n",
+ "\n",
+ "#Result\n",
+ "print\"Normal Stress is\",round(P_n,2),\"N/mm**2\"\n",
+ "print\"Tangential Stress is\",round(P_t,2),\"N/mm**2\"\n",
+ "print\"Angle made by resultant\",round(phi2,2),\"Degree\""
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Normal Stress is 110.0 N/mm**2\n",
+ "Tangential Stress is 17.32 N/mm**2\n",
+ "Angle made by resultant 111.05 Degree\n"
+ ]
+ }
+ ],
+ "prompt_number": 30
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example No.7.4,Page No.272"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "import numpy as np\n",
+ "\n",
+ "#Initilization of Variables\n",
+ "\n",
+ "#Direct Stresses\n",
+ "P1=60 #N/mm**2 \n",
+ "P2=100 #N/mm**2\n",
+ "\n",
+ "Theta=25 #Degree #Angle\n",
+ "\n",
+ "#Calculations\n",
+ "\n",
+ "#Normal Stress\n",
+ "P_n=(P1-P2)*2**-1+(P1+P2)*2**-1*cos(2*Theta*pi*180**-1) #N/mm**2\n",
+ "\n",
+ "#Tangential Stress\n",
+ "P_t=(P1+P2)*2**-1*sin(Theta*2*pi*180**-1) #N/mm**2\n",
+ "\n",
+ "#Resultant stress\n",
+ "P=(P_n**2+P_t**2)**0.5 #N/mm**2\n",
+ "\n",
+ "theta2=arctan(P_n*P_t**-1)*(180*pi**-1)\n",
+ "\n",
+ "#Result\n",
+ "print\"Stresses on the plane AC is:\",round(P_n,2),\"N/mm**2\"\n",
+ "print\" \",round(P_t,2),\"N/mm**2\""
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Stresses on the plane AC is: 31.42 N/mm**2\n",
+ " 61.28 N/mm**2\n"
+ ]
+ }
+ ],
+ "prompt_number": 25
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example No.7.6,Page No.278"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "import numpy as np\n",
+ "\n",
+ "#Initilization of Variables\n",
+ "\n",
+ "#Stresses acting on material\n",
+ "p_x=180 #N/mm**2 \n",
+ "p_y=120 #N/mm**2\n",
+ "\n",
+ "q=80 #N/mm**2\n",
+ "\n",
+ "#Calculations\n",
+ "\n",
+ "theta=arctan(2*q*(p_x-p_y)**-1)*(180*pi**-1) #degrees\n",
+ "theta2=theta*2**-1 #Degrees\n",
+ "theta3=theta+180 #Degrees\n",
+ "theta4=theta3*2**-1 #Degrees\n",
+ "\n",
+ "#Stresses\n",
+ "p_1=(p_x+p_y)*2**-1+(((p_x-p_y)*2**-1)**2+q**2)**0.5 #N/mm**2\n",
+ "p_2=(p_x+p_y)*2**-1-(((p_x-p_y)*2**-1)**2+q**2)**0.5 #N/mm**2\n",
+ "\n",
+ "#Max shear stress\n",
+ "q_max=(((p_x-p_y)*2**-1)**2+q**2)**0.5 #N/mm**2\n",
+ "\n",
+ "#Result\n",
+ "print\"Magnitude of Principal stress is:\",round(p_1,2),\"N/mm**2\"\n",
+ "print\" \",round(p_2,2),\"N/mm**2\"\n",
+ "print\"Magnitude of max shear stress is\",round(q_max,2),\"N/mm**2\""
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Magnitude of Principal stress is: 235.44 N/mm**2\n",
+ " 64.56 N/mm**2\n",
+ "Magnitude of max shear stress is 85.44 N/mm**2\n"
+ ]
+ }
+ ],
+ "prompt_number": 40
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example No.7.7,Page No.279"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "import numpy as np\n",
+ "\n",
+ "#Initilization of Variables\n",
+ "\n",
+ "#stresses\n",
+ "p_x=60 #N/mm**2\n",
+ "p_y=-40 #N/mm**2\n",
+ "\n",
+ "q=10 #N/mm**2 #shear stress\n",
+ "\n",
+ "#Calculations\n",
+ "\n",
+ "#Principal Stresses\n",
+ "p1=(p_x+p_y)*2**-1+(((p_x-p_y)*2**-1)**2+q**2)**0.5 #N/mm**2\n",
+ "p2=(p_x+p_y)*2**-1-(((p_x-p_y)*2**-1)**2+q**2)**0.5 #N/mm**2\n",
+ "\n",
+ "#Max shear stress\n",
+ "q_max=(((p_x-p_y)*2**-1)**2+q**2)**0.5 #N/mm**2\n",
+ "\n",
+ "#Inclination of principal stress to plane\n",
+ "theta=arctan(2*q*(p_x-p_y)**-1)*(180*pi**-1)#Degrees\n",
+ "theta2=(theta)*2**-1 #degrees\n",
+ "\n",
+ "theta3=(theta+180)*2**-1 #degrees\n",
+ "\n",
+ "#Result\n",
+ "print\"Principal Stresses are:\",round(p1,2),\"N/mm**2\"\n",
+ "print\" :\",round(p2,2),\"N/mm**2\"\n",
+ "print\"Max shear stresses\",round(q_max,2),\"N/mm**2\""
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Principal Stresses are: 60.99 N/mm**2\n",
+ " : -40.99 N/mm**2\n",
+ "Max shear stresses 50.99 N/mm**2\n"
+ ]
+ }
+ ],
+ "prompt_number": 16
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example No.7.8,Page No.280"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "import numpy as np\n",
+ "\n",
+ "#Initilization of Variables\n",
+ "\n",
+ "#stresses\n",
+ "p_x=-120 #N/mm**2\n",
+ "p_y=-80 #N/mm**2\n",
+ "\n",
+ "q=-60 #N/mm**2 #shear stress\n",
+ "\n",
+ "#Calculations\n",
+ "\n",
+ "#Principal Stresses\n",
+ "p1=(p_x+p_y)*2**-1+(((p_x-p_y)*2**-1)**2+q**2)**0.5 #N/mm**2\n",
+ "p2=(p_x+p_y)*2**-1-(((p_x-p_y)*2**-1)**2+q**2)**0.5 #N/mm**2\n",
+ "\n",
+ "#Max shear stress\n",
+ "q_max=(((p_x-p_y)*2**-1)**2+q**2)**0.5 #N/mm**2\n",
+ "\n",
+ "#Inclination of principal stress to plane\n",
+ "theta=arctan(2*q*(p_x-p_y)**-1)*(180*pi**-1)#Degrees\n",
+ "theta2=(theta)*2**-1 #degrees\n",
+ "\n",
+ "theta3=(theta+180)*2**-1 #degrees\n",
+ "\n",
+ "#Result\n",
+ "print\"Principal Stresses are:\",round(p1,2),\"N/mm**2\"\n",
+ "print\" :\",round(p2,2),\"N/mm**2\"\n",
+ "print\"Max shear stresses\",round(q_max,2),\"N/mm**2\""
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Principal Stresses are: -36.75 N/mm**2\n",
+ " : -163.25 N/mm**2\n",
+ "Max shear stresses 63.25 N/mm**2\n"
+ ]
+ }
+ ],
+ "prompt_number": 17
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example No.7.9,Page No.282"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "import numpy as np\n",
+ "\n",
+ "#Initilization of Variables\n",
+ "\n",
+ "#stresses\n",
+ "p_x=-40 #N/mm**2\n",
+ "p_y=80 #N/mm**2\n",
+ "\n",
+ "q=48 #N/mm**2 #shear stress\n",
+ "\n",
+ "#Calculations\n",
+ "\n",
+ "#Max shear stress\n",
+ "q_max=((((p_x-p_y)*2**-1)**2)+q**2)**0.5 #N/mm**2\n",
+ "\n",
+ "#Inclination of principal stress to plane\n",
+ "theta=arctan(2*q*(p_x-p_y)**-1)*(180*pi**-1)#Degrees\n",
+ "theta2=(theta)*2**-1 #degrees\n",
+ "\n",
+ "theta3=(theta+180)*2**-1 #degrees\n",
+ "\n",
+ "#Normal Corresponding stress\n",
+ "p_n=(p_x+p_y)*2**-1+(p_x-p_y)*2**-1*cos(2*(theta2+45)*pi*180**-1)+q*sin(2*(theta2+45)*pi*180**-1) #Degrees\n",
+ "\n",
+ "#Resultant stress\n",
+ "p=((p_n**2+q_max**2)**0.5) #N/mm**2\n",
+ "\n",
+ "phi=arctan(p_n*q_max**-1)*(180*pi**-1) #Degrees\n",
+ "\n",
+ "#Inclination to the plane\n",
+ "alpha=round((theta2+45),2)+round(phi ,2)#Degree\n",
+ "\n",
+ "#Answer in book is incorrect of alpha ie41.25\n",
+ "\n",
+ "#Result\n",
+ "print\"Planes of max shear stress:\",round(p_n,2),\"N/mm**2\"\n",
+ "print\" \",round(q_max,2),\"N/mm*2\"\n",
+ "print\"Resultant Stress is\",round(p,2),\"N/mm**2\""
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Planes of max shear stress: 20.0 N/mm**2\n",
+ " 76.84 N/mm*2\n",
+ "Resultant Stress is 79.4 N/mm**2\n"
+ ]
+ }
+ ],
+ "prompt_number": 40
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example No.7.10,Page No.283"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "import numpy as np\n",
+ "\n",
+ "#Initilization of Variables\n",
+ "\n",
+ "#Stresses\n",
+ "p_x=50*cos(35*pi*180**-1)\n",
+ "q=50*sin(35*pi*180**-1)\n",
+ "p_y=0\n",
+ "\n",
+ "theta=40 #Degrees #Plane AB inclined to vertical\n",
+ "\n",
+ "#Calculations\n",
+ "\n",
+ "#Normal Stress on AB\n",
+ "p_n=(p_x+p_y)*2**-1+(p_x-p_y)*2**-1*cos(2*theta*pi*180**-1)+q*sin(2*theta*pi*180**-1)\n",
+ "\n",
+ "#Tangential Stress on AB\n",
+ "p_t=(p_x-p_y)*2**-1*sin(2*theta*pi*180**-1)-q*cos(2*theta*pi*180**-1) #N/mm**2\n",
+ "\n",
+ "#Resultant stress\n",
+ "p=(p_n**2+p_t**2)**0.5 #N/mm**2\n",
+ "\n",
+ "#Angle of resultant\n",
+ "phi=arctan(p_n*p_t**-1)*(180*pi**-1) #degrees\n",
+ "phi2=phi+theta #Degrees\n",
+ "\n",
+ "#Result\n",
+ "print\"Magnitude of resultant stress is\",round(p,2),\"N/mm**2\"\n",
+ "print\"Direction of Resultant stress is\",round(phi2,2),\"Degrees\""
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Magnitude of resultant stress is 54.44 N/mm**2\n",
+ "Direction of Resultant stress is 113.8 Degrees\n"
+ ]
+ }
+ ],
+ "prompt_number": 8
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example No.7.12,Page No.285"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "import numpy as np\n",
+ "\n",
+ "#Initilization of Variables\n",
+ "\n",
+ "#Direct stresses\n",
+ "p_x=120 #N/mm**2 #Tensile stress\n",
+ "p_y=-100 #N/mm**2 #Compressive stress\n",
+ "p1=160 #N/mm**2 #Major principal stress\n",
+ "\n",
+ "#Calculations\n",
+ "\n",
+ "#Let q be the shearing stress\n",
+ "\n",
+ "#p1=(p_x+p_y)*2**-1+((((p_x+p_y)*2**-1)**2)+q**2)**0.5\n",
+ "#After further simplifying we get\n",
+ "q=(p1-((p_x+p_y)*2**-1))**2-((p_x-p_y)*2**-1)**2 #N/mm**2\n",
+ "q2=(q)**0.5 #N/mm**2\n",
+ "\n",
+ "#Minimum Principal stress\n",
+ "p2=(p_x+p_y)*2**-1-(((p_x-p_y)*2**-1)**2+q2**2)**0.5 #N/mm**2\n",
+ "\n",
+ "#Max shearing stress\n",
+ "q_max=(((p_x-p_y)*2**-1)**2+q2**2)**0.5 #N/mm**2\n",
+ "\n",
+ "#Result\n",
+ "print\"Shearing stress of material\",round(q,2),\"N/mm**2\"\n",
+ "print\"Min Principal stress\",round(p2,2),\"N/mm**2\"\n",
+ "print\"Max shearing stress\",round(q_max,2),\"N/mm**2\""
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Shearing stress of material 10400.0 N/mm**2\n",
+ "Min Principal stress -140.0 N/mm**2\n",
+ "Max shearing stress 150.0 N/mm**2\n"
+ ]
+ }
+ ],
+ "prompt_number": 19
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example No.7.14,Page No.291"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "import numpy as np\n",
+ "\n",
+ "#Initilization of Variables\n",
+ "\n",
+ "F=40*10**3 #N #Shear Force\n",
+ "M=20*10**6 #Bending Moment\n",
+ "\n",
+ "#Rectangular section\n",
+ "b=100 #mm #Width\n",
+ "d=200 #mm #Depth\n",
+ "\n",
+ "x=20 #mm #Distance from Top surface upto point\n",
+ "y=80 #mm #Distance from point to Bottom\n",
+ "\n",
+ "#Calculations\n",
+ "\n",
+ "I=1*12**-1*b*d**3 #mm**4 #M.I\n",
+ "\n",
+ "#At 20 mm Below top Fibre\n",
+ "f_x=M*I**-1*y #N/mm**2 #Stress\n",
+ "\n",
+ "#Assuming sagging moment ,f_x is compressive p_x=f_x=-24 #N/mm**2\n",
+ "p_x=f_x=-24 #N/mm**2\n",
+ "\n",
+ "#Shearing stress\n",
+ "q=F*(b*I)**-1*(b*x*(b-x*2**-1)) #N/mm**2\n",
+ "\n",
+ "#Direct stresses\n",
+ "\n",
+ "p_y=0 #N/mm**2\n",
+ "\n",
+ "p1=(p_x+p_y)*2**-1+(((p_x+p_y)*2**-1)**2+q**2)**0.5 #N/mm**2\n",
+ "p2=(p_x+p_y)*2**-1-(((p_x+p_y)*2**-1)**2+q**2)**0.5 #N/mm**2\n",
+ "\n",
+ "#Result\n",
+ "print\"Directions of principal stresses at a point below 20mm is:\",round(p1,2),\"N/mm**2\"\n",
+ "print\" \",round(p2,2),\"N/mm**2\""
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Directions of principal stresses at a point below 20mm is: 0.05 N/mm**2\n",
+ " -24.05 N/mm**2\n"
+ ]
+ }
+ ],
+ "prompt_number": 36
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example No.7.15,Page No.292"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "import numpy as np\n",
+ "\n",
+ "#Initilization of Variables\n",
+ "\n",
+ "L=4000 #mm #Span\n",
+ "W1=W2=W3=2*10**3 #N #Load\n",
+ "\n",
+ "#SEction of beam\n",
+ "b=100 #mm #Width\n",
+ "d=240 #mm #Dept\n",
+ "\n",
+ "#Calculations\n",
+ "\n",
+ "#Let R_A and R_B be the reactions\n",
+ "R_A=R_B=(W1+W2+W3)*2**-1 #KN\n",
+ "\n",
+ "#Now at the section 1.5m from left support A\n",
+ "#Shear Force\n",
+ "F=R_A-W1 #KN\n",
+ "\n",
+ "#B.M\n",
+ "M=R_A*1.5-W1*0.5 #KN-m\n",
+ "\n",
+ "#M.I\n",
+ "I=1*12**-1*b*d**3 #mm**4\n",
+ "\n",
+ "#Bending stress\n",
+ "#f=M*I**-1*y\n",
+ "#After Sub values and further simplifying we get\n",
+ "#f=3.04*10**-2*y\n",
+ "\n",
+ "#As it varies Linearly\n",
+ "\n",
+ "#at distance 0 From NA \n",
+ "f1=0\n",
+ "#at distance 60 mm from NA\n",
+ "f2=1.823 #N/mm**2\n",
+ "#at distance 120 mm from NA\n",
+ "f3=3.646 #N/mm**2\n",
+ "\n",
+ "#Shearing stress\n",
+ "q=F*b*d*2**-1*d*4**-1*(b*I)**-1\n",
+ "\n",
+ "#At 60 mm above NA\n",
+ "q2=F*b*d*4**-1*(d*2**-1-d*8**-1)*(b*I)**-1\n",
+ "\n",
+ "#At 120 mm above NA\n",
+ "q3=0 \n",
+ "\n",
+ "#At NA element is under pure shear\n",
+ "p1=q #N/mm**2\n",
+ "p2=-q #N/mm**2 \n",
+ "\n",
+ "#Inclination of principal plane to vertical\n",
+ "#theta=2*q*0**-1\n",
+ "#Further simplifying we get\n",
+ "#theta=infinity\n",
+ "\n",
+ "#therefore\n",
+ "theta=90*2**-1 #degrees\n",
+ "theta2=270*2**-1 #degrees\n",
+ "\n",
+ "#At 60 mm From NA\n",
+ "p_x=-1.823 #N/mm**2 \n",
+ "p_y=0\n",
+ "q=0.0469 #N/mm**2\n",
+ "\n",
+ "#principal planes\n",
+ "P1=(p_x+p_y)*2**-1+(((p_x+p_y)*2**-1)**2+q**2)**0.5 #N/mm**2\n",
+ "P2=(p_x+p_y)*2**-1-(((p_x+p_y)*2**-1)**2+q**2)**0.5 #N/mm**2\n",
+ "\n",
+ "#Principal planes inclination to hte plane of p_x is given by\n",
+ "theta3=(arctan(2*q*(p_x-p_y)**-1)*(180*pi**-1))\n",
+ "theta4=theta3*2**-1#degrees\n",
+ "\n",
+ "theta5=theta3+180 #Degrees\n",
+ "\n",
+ "#At 120 mm From N-A\n",
+ "p_x2=3.646 #N/mm**2\n",
+ "p_y2=0 #N/mm**2\n",
+ "q2=0 #N/mm**2\n",
+ "\n",
+ "P3=p_x2 #N/mm**2\n",
+ "P4=0 #N/mm**2\n",
+ "\n",
+ "#Answer for P2 at 60 mm from NA is incorrect\n",
+ "\n",
+ "#Result\n",
+ "print\"Principal Planes at 60 mm from NA:\",round(p_x,2),\"N/mm**2\"\n",
+ "print\" \",round(p_y,2),\"N/mm**2\"\n",
+ "print\"Principal Stresses at 60 mm From NA\",round(P1,4),\"N/mm**2\"\n",
+ "print\" \",round(P2,4),\"N/mm**2\"\n",
+ "print\"Principal Planes at 60 mm from NA:\",round(p_x2,4),\"N/mm**2\"\n",
+ "print\" \",round(p_y2,4),\"N/mm**2\"\n",
+ "print\"Principal Stresses at 60 mm From NA\",round(P3,4),\"N/mm**2\"\n",
+ "print\" \",round(P4,4),\"N/mm**2\""
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Principal Planes at 60 mm from NA: -1.82 N/mm**2\n",
+ " 0.0 N/mm**2\n",
+ "Principal Stresses at 60 mm From NA 0.0012 N/mm**2\n",
+ " -1.8242 N/mm**2\n",
+ "Principal Planes at 60 mm from NA: 3.646 N/mm**2\n",
+ " 0.0 N/mm**2\n",
+ "Principal Stresses at 60 mm From NA 3.646 N/mm**2\n",
+ " 0.0 N/mm**2\n"
+ ]
+ }
+ ],
+ "prompt_number": 23
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example No.7.16,Page No.295"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "import numpy as np\n",
+ "\n",
+ "#Initilization of Variables\n",
+ "\n",
+ "L=8000 #mm #Span of beam\n",
+ "w=40*10**6 #N/mm #udl\n",
+ "\n",
+ "#I-section\n",
+ "\n",
+ "#Flanges\n",
+ "b=100 #mm #Width\n",
+ "t=10 #mm #Thickness\n",
+ "\n",
+ "D=400 #mm #Overall Depth\n",
+ "t2=10 #mm #thickness of web\n",
+ "\n",
+ "#Calculations\n",
+ "\n",
+ "#Let R_A and R_B be the Reactions at A & B respectively\n",
+ "R_A=w*2**-1*L*10**-9 #KN\n",
+ "\n",
+ "#Shear force at 2m for left support\n",
+ "F=R_A-2*w*10**-6 #KN\n",
+ "\n",
+ "#Bending Moment\n",
+ "M=R_A*2-2*w*10**-6 #KN-m\n",
+ "\n",
+ "#M.I\n",
+ "I=1*12**-1*b*D**3-1*12**-1*(b-t)*(D-2*t2)**3 #mm**4\n",
+ "\n",
+ "#Bending stress at 100 mm above N_A\n",
+ "f=M*10**6*I**-1*b\n",
+ "\n",
+ "#Shear stress \n",
+ "q=F*10**3*(t*I)**-1*(b*t*(D-t)*2**-1 +t2*(b-t2)*145) #N/mm**2\n",
+ "\n",
+ "p_x=-197.06 #N/mm**2 \n",
+ "p_y=0 #N/mm**2\n",
+ "q=21.38 #N/mm**2\n",
+ "\n",
+ "#Principal Stresses\n",
+ "\n",
+ "P1=(p_x+p_y)*2**-1+(((p_x-p_y)*2**-1)**2+q**2)**0.5 #N/mm**2\n",
+ "P2=(p_x+p_y)*2**-1-(((p_x-p_y)*2**-1)**2+q**2)**0.5 #N/mm**2\n",
+ "\n",
+ "#Max shear stress\n",
+ "q_max=(((p_x-p_y)*2**-1)**2+q**2)**0.5 #N/mm**2\n",
+ "\n",
+ "#Result\n",
+ "print\"Principal Stresses are:\",round(P1,2),\"N/mm**2\"\n",
+ "print\" \",round(P2,2),\"N/mm**2\"\n",
+ "print\"Max shear stress\",round(q_max,2),\"N/mm**2\""
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Principal Stresses are: 2.29 N/mm**2\n",
+ " -199.35 N/mm**2\n",
+ "Max shear stress 100.82 N/mm**2\n"
+ ]
+ }
+ ],
+ "prompt_number": 48
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example No.7.18,Page No.298"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "import numpy as np\n",
+ "\n",
+ "#Initilization of Variables\n",
+ "\n",
+ "d=100 #mm #Diameter of shaft\n",
+ "M=3*10**6 #N-mm #B.M\n",
+ "T=6*10**6 #N-mm #Twisting Moment\n",
+ "mu=0.3\n",
+ "\n",
+ "#Calculations\n",
+ "\n",
+ "#Max principal Stress\n",
+ "\n",
+ "P1=16*(pi*d**3)**-1*(M+(M**2+T**2)**0.5) #N/mm**2 \n",
+ "P2=16*(pi*d**3)**-1*(M-(M**2+T**2)**0.5) #N/mm**2 \n",
+ "\n",
+ "#Direct stress\n",
+ "P=round(P1,2)-mu*round(P2,2) #N/mm**2 \n",
+ "\n",
+ "#Result\n",
+ "print\"Principal stresses are:\",round(P1,2),\"N/mm**2\"\n",
+ "print\" :\",round(P2,2),\"N/mm**2\"\n",
+ "print\"Stress Producing the same strain is\",round(P,2),\"N/mm**2\""
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Principal stresses are: 49.44 N/mm**2\n",
+ " : -18.89 N/mm**2\n",
+ "Stress Producing the same strain is 55.11 N/mm**2\n"
+ ]
+ }
+ ],
+ "prompt_number": 51
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example No.7.19,Page No.299"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "import numpy as np\n",
+ "\n",
+ "#Initilization of Variables\n",
+ "\n",
+ "d=75 #mm #diameter \n",
+ "P=30*10**6 #W #Power transmitted\n",
+ "W=6 #N-mm/sec #Load\n",
+ "L=1000 #mm \n",
+ "N=300 #r.p.m\n",
+ "\n",
+ "#Calculations\n",
+ "\n",
+ "#B.M\n",
+ "M=W*L*4**-1 #N-mm\n",
+ "T=P*60*(2*pi*N)**-1 #Torque transmitted\n",
+ "\n",
+ "#M.I\n",
+ "I=pi*64**-1*d**4 #mm**4\n",
+ "\n",
+ "#Bending stress\n",
+ "f_A=M*I**-1*(d*2**-1) #N/mm**2\n",
+ "\n",
+ "#At A\n",
+ "p_x=f_A\n",
+ "p_y=0\n",
+ "\n",
+ "#Polar Modulus\n",
+ "J=pi*32**-1*d**4 #mm**4\n",
+ "\n",
+ "#Shearing stress\n",
+ "q=T*J**-1*(d*2**-1) #N/mm**2\n",
+ "\n",
+ "#Principal Stresses\n",
+ "P1=(p_x+p_y)*2**-1+(((p_x-p_y)*2**-1)**2+q**2)**0.5 #N/mm**2\n",
+ "P2=(p_x+p_y)*2**-1-(((p_x-p_y)*2**-1)**2+q**2)**0.5 #N/mm**2\n",
+ "\n",
+ "#Max shear stress\n",
+ "q_max=(((p_x-p_y)*2**-1)**2+q**2)**0.5 #N/mm**2\n",
+ "\n",
+ "#Bending stress\n",
+ "p_x2=0\n",
+ "p_y2=0\n",
+ "\n",
+ "#Shearing stress\n",
+ "q2=T*J**-1*d*2**-1 #N/mm**2\n",
+ "\n",
+ "#Principal stresses\n",
+ "P3=(p_x2+p_y2)*2**-1+(((p_x2-p_y2)*2**-1)**2+q2**2)**0.5 #N/mm**2\n",
+ "P4=(p_x2+p_y2)*2**-1-(((p_x2-p_y2)*2**-1)**2+q2**2)**0.5 #N/mm**2\n",
+ "\n",
+ "#Max shear stress\n",
+ "q_max2=(((p_x2-p_y2)*2**-1)**2+q2**2)**0.5 #N/mm**2\n",
+ "\n",
+ "#Answer for Principal Stresses P1,P2 and Max stress i.e q_max is incorrect in Book\n",
+ "\n",
+ "#Result\n",
+ "print\"Principal Stresses at vertical Diameter:P1\",round(P1,2),\"N/mm**2\"\n",
+ "print\" :P2\",round(P2,2),\"N/mm**2\"\n",
+ "print\"Max stress at vertical Diameter : \",round(q_max,2),\"N/mm**2\"\n",
+ "print\"Principal Stresses at Horizontal Diameter:P3\",round(P3,2),\"N/mm**2\"\n",
+ "print\" :P4\",round(P4,2),\"N/mm**2\"\n",
+ "print\"Max stress at Horizontal Diameter : \",round(q_max2,2),\"N/mm**2\""
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Principal Stresses at vertical Diameter:P1 11.55 N/mm**2\n",
+ " :P2 -11.51 N/mm**2\n",
+ "Max stress at vertical Diameter : 11.53 N/mm**2\n",
+ "Principal Stresses at Horizontal Diameter:P3 11.53 N/mm**2\n",
+ " :P4 -11.53 N/mm**2\n",
+ "Max stress at Horizontal Diameter : 11.53 N/mm**2\n"
+ ]
+ }
+ ],
+ "prompt_number": 20
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example No.7.20,Page No.302"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "import numpy as np\n",
+ "\n",
+ "#Initilization of Variables\n",
+ "\n",
+ "d1=100 #mm #External Diameter\n",
+ "d2=50 #mm #Internal Diameter\n",
+ "N=500 #mm #r.p.m\n",
+ "P=60*10**6 #N-mm/sec #Power\n",
+ "p=100 #N/mm**2 #principal stress\n",
+ "\n",
+ "#Calculations\n",
+ "\n",
+ "#M.I\n",
+ "I=pi*(d1**4-d2**4)*64**-1 #mm**4\n",
+ "\n",
+ "#Bending Stress\n",
+ "#f=M*I*d1*2**-1 #N/mm**2\n",
+ "\n",
+ "#Principal Planes\n",
+ "#p_x=32*M*(pi*(d1**4-d2**4))*d1\n",
+ "#p_y=0\n",
+ "\n",
+ "#Shear stress\n",
+ "#q=T*J**-1*(d1*2**-1)\n",
+ "#After sub values and further simplifying we get\n",
+ "#q=16*T*d1*(pi*(d1**4-d2**4))*d1\n",
+ "\n",
+ "#Principal stresses\n",
+ "#P1=(p_x+p_y)*2**-1+(((p_x-p_y)*2**-1)**2+q**2)**0.5 #N/mm**2\n",
+ "#After sub values and further simplifying we get\n",
+ "#P1=16*(pi*(d1**4-d2**4))*d1*(M+(M**2+t**2)**0.5) ...............(1)\n",
+ "\n",
+ "#P=2*pi*N*T*60**-1\n",
+ "#After sub values and further simplifying we get\n",
+ "T=P*60*(2*pi*N)**-1*10**-6 #N-mm\n",
+ "\n",
+ "#Again Sub values and further simplifying Equation 1 we get\n",
+ "M=(337.533)*(36.84)**-1 #KN-m\n",
+ "\n",
+ "#Min Principal stress\n",
+ "#P2=(p_x+p_y)*2**-1-(((p_x-p_y)*2**-1)**2+q**2)**0.5 #N/mm**2\n",
+ "#Sub values and further simplifying we get\n",
+ "P2=16*(pi*(d1**4-d2**4))*d1*(M-(M**2+T**2)**0.5)*10**-11\n",
+ "\n",
+ "#Result\n",
+ "print\"Bending Moment safely applied to shaft is\",round(M,2),\"KN-m\"\n",
+ "print\"Min Principal Stress is\",round(P2,3),\"N/mm**2\""
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Bending Moment safely applied to shaft is 9.16 KN-m\n",
+ "Min Principal Stress is -0.336 N/mm**2\n"
+ ]
+ }
+ ],
+ "prompt_number": 32
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example No.7.21,Page No.303"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "import numpy as np\n",
+ "\n",
+ "#Initilization of Variables\n",
+ "\n",
+ "d=150 #mm #Diameter\n",
+ "T=20*10**6 #N #Torque\n",
+ "M=12*10**6 #N-mm #B.M\n",
+ "F=200*10**3 #N #Axial Thrust\n",
+ "\n",
+ "#Calculations\n",
+ "\n",
+ "#M.I\n",
+ "I=(pi*64**-1*d**4)\n",
+ "\n",
+ "#Bending stress \n",
+ "f_A=M*I**-1*(d*2**-1) #N/mm**2\n",
+ "f_B=-f_A #N/mm**2\n",
+ "\n",
+ "#Axial thrust due to thrust\n",
+ "sigma=F*(pi*4**-1*d**2)**-1\n",
+ "\n",
+ "#At A\n",
+ "p_x=f_A-sigma #N/mm**2\n",
+ "\n",
+ "#At B\n",
+ "p_x2=f_B-sigma #N/mm**2\n",
+ "\n",
+ "p_y=0 #At A and B\n",
+ "\n",
+ "#Polar Modulus\n",
+ "J=pi*32**-1*d**4 #mm**4\n",
+ "\n",
+ "#Shearing stress at A and B\n",
+ "q=T*J**-1*(d*2**-1) #N/mm**2\n",
+ "\n",
+ "\n",
+ "#Principal Stresses\n",
+ "#At A\n",
+ "P1=(p_x+p_y)*2**-1+(((p_x-p_y)*2**-1)**2+q**2)**0.5 #N/mm**2\n",
+ "P2=(p_x+p_y)*2**-1-(((p_x-p_y)*2**-1)**2+q**2)**0.5 #N/mm**2\n",
+ "\n",
+ "#Max shear stress\n",
+ "q_max1=(((p_x-p_y)*2**-1)**2+q**2)**0.5 #N/mm**2\n",
+ "\n",
+ "#At B\n",
+ "P1_2=(p_x2+p_y)*2**-1+(((p_x2-p_y)*2**-1)**2+q**2)**0.5 #N/mm**2\n",
+ "P2_2=(p_x2+p_y)*2**-1-(((p_x2-p_y)*2**-1)**2+q**2)**0.5 #N/mm**2\n",
+ "\n",
+ "#Max shear stress\n",
+ "q_max2=(((p_x2-p_y)*2**-1)**2+q**2)**0.5 #N/mm**2\n",
+ "\n",
+ "\n",
+ "#Result\n",
+ "print\"MAx Principal Stresses:P1\",round(P1,2),\"N/mm**2\"\n",
+ "print\" :P2\",round(P2,2),\"N/mm**2\"\n",
+ "print\"Min Principal Stresses:P1_2\",round(P1_2,2),\"N/mm**2\"\n",
+ "print\" :P2_2\",round(P2_2,2),\"N/mm**2\""
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "MAx Principal Stresses:P1 45.1 N/mm**2\n",
+ " :P2 -20.2 N/mm**2\n",
+ "Min Principal Stresses:P1_2 14.65 N/mm**2\n",
+ " :P2_2 -62.18 N/mm**2\n"
+ ]
+ }
+ ],
+ "prompt_number": 19
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example No.7.22,Page No.311"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "import numpy as np\n",
+ "\n",
+ "#Initilization of Variables\n",
+ "\n",
+ "#strains\n",
+ "e_A=500 #microns\n",
+ "e_B=250 #microns\n",
+ "e_C=-150 #microns\n",
+ "E=2*10**5 #N/mm**2 #Modulus of Elasticity\n",
+ "mu=0.3 #Poissoin's ratio\n",
+ "theta=45 #Degrees\n",
+ "\n",
+ "#Calculations\n",
+ "\n",
+ "e_x=e_A=500\n",
+ "e_45=e_B=250\n",
+ "e_y=e_C=-150 \n",
+ "\n",
+ "#e_45=(e_x+e_y)*2**-1+(e_x-e_y)*2**-1*cos(2*theta)+rho_x_y*2**-1*sin(2*theta)\n",
+ "#After sub values and further simplifying we get\n",
+ "rho_x_y=(e_45-(e_x+e_y)*2**-1-(e_x-e_y)*2**-1*cos(2*theta*pi*180**-1))*(sin(2*theta*pi*180**-1))**-1*2\n",
+ "\n",
+ "#Principal strains are given by\n",
+ "e1=(e_x+e_y)*2**-1+(((e_x-e_y)*2**-1)**2+(rho_x_y*2**-1)**2)**0.5 #microns\n",
+ "e2=(e_x+e_y)*2**-1-(((e_x-e_y)*2**-1)**2+(rho_x_y*2**-1)**2)**0.5 #microns\n",
+ "\n",
+ "#Principal Stresses\n",
+ "sigma1=E*(e1+mu*e2)*(1-mu**2)**-1*10**-6 #N/mm**2\n",
+ "sigma2=E*(e2+mu*e1)*(1-mu**2)**-1*10**-6 #N/mm**2\n",
+ "\n",
+ "#Result\n",
+ "print\"Principal Strains are:e1\",round(e1,2),\"N/mm**2\"\n",
+ "print\" :e2\",round(e2,2),\"N/mm**2\"\n",
+ "print\"Principal Stresses are:sigma1\",round(sigma1,2),\"N/mm**2\"\n",
+ "print\" :sigma2\",round(sigma2,2),\"N/mm**2\""
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Principal Strains are:e1 508.54 N/mm**2\n",
+ " :e2 -158.54 N/mm**2\n",
+ "Principal Stresses are:sigma1 101.31 N/mm**2\n",
+ " :sigma2 -1.31 N/mm**2\n"
+ ]
+ }
+ ],
+ "prompt_number": 10
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example No.7.23,Page No.313"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "import numpy as np\n",
+ "\n",
+ "#Initilization of Variables\n",
+ "\n",
+ "#Strains\n",
+ "e_A=600 #microns\n",
+ "e_B=-450 #microns\n",
+ "e_C=100 #micron\n",
+ "E=2*10**5 #N/mm**2 #Modulus of Elasticity\n",
+ "mu=0.3 #Poissoin's ratio\n",
+ "theta=240\n",
+ "\n",
+ "#Calculations\n",
+ "\n",
+ "e_x=e_A=600\n",
+ "\n",
+ "#e_A=(e_x+e_y)*2**-1+(e_x-e_y)*2**-1*cos(theta)+rho_x_y*2**-1*sin(theta)\n",
+ "#After sub values and further simplifying we get\n",
+ "#-450=(e_x+e_y)*2**-1-(e_x-e_y)*2**-1*(0.5)-0.866*2**-1*rho_x_y .....................(1)\n",
+ "\n",
+ "#e_C=(e_x+e_y)*2**-1+(e_x-e_y)*2**-1*cos(2*theta)+rho_x_y*2**-1*sin(2*theta)\n",
+ "#After sub values and further simplifying we get\n",
+ "#100=(e_x+e_y)*2**-1-0.5*(e_x-e_y)*2**-1*(0.5)-0.866*2**-1*rho_x_y .....................(2)\n",
+ "\n",
+ "#Adding Equation 1 and 2 we get equations as\n",
+ "#-350=e_x+e_y-(e_x-e_y)*2**-1 ...............(3)\n",
+ "#Further simplifying we get\n",
+ "\n",
+ "e_y=(-700-e_x)*3**-1 #micron \n",
+ "\n",
+ "rho_x_y=(e_C-(e_x+e_y)*2**-1-(e_x-e_y)*2**-1*cos(2*theta*pi*180**-1))*(sin(2*theta*pi*180**-1))**-1*2 #micron\n",
+ "\n",
+ "#Principal strains\n",
+ "e1=(e_x+e_y)*2**-1-(((e_x-e_y)*2**-1)**2+(rho_x_y*2**-1)**2)**0.5 #microns\n",
+ "e2=(e_x+e_y)*2**-1+(((e_x-e_y)*2**-1)**2+(rho_x_y*2**-1)**2)**0.5 #microns\n",
+ "\n",
+ "#Principal Stresses\n",
+ "sigma1=E*(e1+mu*e2)*(1-mu**2)**-1*10**-6 #N/mm**2\n",
+ "sigma2=E*(e2+mu*e1)*(1-mu**2)**-1*10**-6 #N/mm**2\n",
+ "\n",
+ "\n",
+ "#Result\n",
+ "print\"Principal Stresses are:sigma1\",round(sigma1,2),\"N/mm**2\"\n",
+ "print\" :sigma2\",round(sigma2,2),\"N/mm**2\""
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Principal Stresses are:sigma1 -69.49 N/mm**2\n",
+ " :sigma2 117.11 N/mm**2\n"
+ ]
+ }
+ ],
+ "prompt_number": 18
+ }
+ ],
+ "metadata": {}
+ }
+ ]
+}
\ No newline at end of file diff --git a/Strength_Of_Materials_by_S_S_Bhavikatti/chapter_no.8_qDewT6c.ipynb b/Strength_Of_Materials_by_S_S_Bhavikatti/chapter_no.8_qDewT6c.ipynb new file mode 100644 index 00000000..335b99dd --- /dev/null +++ b/Strength_Of_Materials_by_S_S_Bhavikatti/chapter_no.8_qDewT6c.ipynb @@ -0,0 +1,1531 @@ +{
+ "metadata": {
+ "name": "chapter no.8.ipynb"
+ },
+ "nbformat": 3,
+ "nbformat_minor": 0,
+ "worksheets": [
+ {
+ "cells": [
+ {
+ "cell_type": "heading",
+ "level": 1,
+ "metadata": {},
+ "source": [
+ "Chapter No.8:Thin And Thick Cyclinders And Spheres"
+ ]
+ },
+ {
+ "cell_type": "heading",
+ "level": 1,
+ "metadata": {},
+ "source": [
+ "Example 8.8.1,Page No.322"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "import numpy as np\n",
+ "\n",
+ "#Initilization of Variables\n",
+ "\n",
+ "L=3000 #mm #Length\n",
+ "d1=1000 #mm #Internal diameter\n",
+ "t=15 #mm #Thickness\n",
+ "P=1.5 #N/mm**2 #Fluid Pressure\n",
+ "E=2*10**5 #n/mm**2 #Modulus of elasticity\n",
+ "mu=0.3 #Poissoin's ratio\n",
+ "\n",
+ "#Calculations\n",
+ "\n",
+ "#Hoop stress\n",
+ "f1=P*d1*(2*t)**-1 #N/mm**2\n",
+ "\n",
+ "#Longitudinal Stress\n",
+ "f2=P*d1*(4*t)**-1 #N/mm**2\n",
+ "\n",
+ "#Max shear stress\n",
+ "q_max=(f1-f2)*2**-1 #N/mm**2\n",
+ "\n",
+ "#Diametrical Strain\n",
+ "#Let e1=dell_d*d**-1 .....................(1)\n",
+ "e1=(f1-mu*f2)*E**-1 \n",
+ "\n",
+ "#Sub values in equation 1 and further simplifying we get\n",
+ "dell_d=e1*d1 #mm\n",
+ "\n",
+ "#Longitudinal strain\n",
+ "#e2=dell_L*L**-1 ......................(2)\n",
+ "e2=(f2-mu*f1)*E**-1 \n",
+ "\n",
+ "#Sub values in equation 2 and further simplifying we get\n",
+ "dell_L=e2*L #mm\n",
+ "\n",
+ "#Change in Volume \n",
+ "#Let Z=dell_V*V**-1 ................(3)\n",
+ "Z=2*e1+e2\n",
+ "\n",
+ "#Sub values in equation 3 and further simplifying we get\n",
+ "dell_V=Z*pi*4**-1*d1**2*L\n",
+ "\n",
+ "#Result\n",
+ "print\"Max Intensity of shear stress\",round(q_max,2),\"N/mm**2\"\n",
+ "print\"Change in the Dimensions of the shell is:dell_d\",round(dell_d,2),\"mm\"\n",
+ "print\" :dell_L\",round(dell_L,2),\"mm\"\n",
+ "print\" :dell_V\",round(dell_V,2),\"mm**3\""
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Max Intensity of shear stress 12.5 N/mm**2\n",
+ "Change in the Dimensions of the shell is:dell_d 0.21 mm\n",
+ " :dell_L 0.15 mm\n",
+ " :dell_V 1119192.38 mm**3\n"
+ ]
+ }
+ ],
+ "prompt_number": 1
+ },
+ {
+ "cell_type": "heading",
+ "level": 1,
+ "metadata": {},
+ "source": [
+ "Example 8.8.2,Page No.323"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "import numpy as np\n",
+ "\n",
+ "#Initilization of Variables\n",
+ "\n",
+ "L=2000 #mm #Length\n",
+ "d=200 #mm # diameter\n",
+ "t=10 #mm #Thickness\n",
+ "dell_V=25000 #mm**3 #Additional volume\n",
+ "E=2*10**5 #n/mm**2 #Modulus of elasticity\n",
+ "mu=0.3 #Poissoin's ratio\n",
+ "\n",
+ "#Calculations\n",
+ "\n",
+ "#Let p be the pressure developed\n",
+ "\n",
+ "#Circumferential Stress\n",
+ "\n",
+ "#f1=p*d*(2*t)**-1 #N/mm**2\n",
+ "#After sub values and further simplifying\n",
+ "#f1=10*p\n",
+ "\n",
+ "#f1=p*d*(4*t)**-1 #N/mm**2\n",
+ "#After sub values and further simplifying\n",
+ "#f1=5*p\n",
+ "\n",
+ "#Diameterical strain = Circumferential stress\n",
+ "#Let X=dell_d*d**-1 ................................(1)\n",
+ "#X=e1=(f1-mu*f2)*E**-1 \n",
+ "#After sub values and further simplifying\n",
+ "#e1=8.5*p*E**-1\n",
+ "\n",
+ "#Longitudinal strain\n",
+ "#Let Y=dell_L*L**-1 ......................................(2)\n",
+ "#Y=e2=(f2-mu*f1)*E**-1 \n",
+ "#After sub values and further simplifying\n",
+ "#e2=2*p*E**-1\n",
+ "\n",
+ "#Volumetric strain\n",
+ "#Let X=dell_V*V**-1 \n",
+ "#X=2*e1+e2\n",
+ "#After sub values and further simplifying\n",
+ "#X=19*p*E**-1\n",
+ "#After further simplifying we get\n",
+ "p=dell_V*(pi*4**-1*d**2*L)**-1*E*19**-1 #N/mm**2\n",
+ "\n",
+ "#Hoop Stress\n",
+ "f1=p*d*(2*t)**-1\n",
+ "\n",
+ "X=e1=8.5*p*E**-1\n",
+ "#Sub value of X in equation 1 we get\n",
+ "dell_d=8.5*p*E**-1*d\n",
+ "\n",
+ "Y=e2=2*p*E**-1\n",
+ "#Sub value of Y in equation 2 we get\n",
+ "dell_L=2*p*E**-1*L\n",
+ "\n",
+ "#Result\n",
+ "print\"Pressure Developed is\",round(p,2),\"N/mm**2\"\n",
+ "print\"Hoop stress Developed is\",round(f1,2),\"N/mm**2\"\n",
+ "print\"Change in diameter is\",round(dell_d,2),\"mm\"\n",
+ "print\"Change in Length is\",round(dell_L,2),\"mm\""
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Pressure Developed is 4.19 N/mm**2\n",
+ "Hoop stress Developed is 41.88 N/mm**2\n",
+ "Change in diameter is 0.04 mm\n",
+ "Change in Length is 0.08 mm\n"
+ ]
+ }
+ ],
+ "prompt_number": 22
+ },
+ {
+ "cell_type": "heading",
+ "level": 1,
+ "metadata": {},
+ "source": [
+ "Example 8.8.3,Page No.324"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "import numpy as np\n",
+ "\n",
+ "#Initilization of Variables\n",
+ "\n",
+ "d=750 #mm #Diameter of water supply pipes\n",
+ "h=50*10**3 #mm #Water head\n",
+ "sigma=20 #N/mm**2 #Permissible stress\n",
+ "rho=9810*10**-9 #N/mm**3\n",
+ "\n",
+ "#Calculations\n",
+ "\n",
+ "#Pressure of water\n",
+ "P=rho*h #N/mm**2\n",
+ "\n",
+ "#Stress\n",
+ "#sigma=p*d*(2*t)**-1\n",
+ "#After further simplifying\n",
+ "t=P*d*(2*sigma)**-1 #mm \n",
+ "\n",
+ "#Result\n",
+ "print\"Thickness of seamless pipe is\",round(t,3),\"mm\""
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Thickness of seamless pipe is 9.197 mm\n"
+ ]
+ }
+ ],
+ "prompt_number": 37
+ },
+ {
+ "cell_type": "heading",
+ "level": 1,
+ "metadata": {},
+ "source": [
+ "Example 8.8.4,Page No.326"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "import numpy as np\n",
+ "\n",
+ "#Initilization of Variables\n",
+ "\n",
+ "d=2500 #mm #Diameter of riveted boiler\n",
+ "P=1 #N/mm**2 #Pressure\n",
+ "rho1=0.7 #Percent efficiency\n",
+ "rho2=0.4 #Circumferential joints\n",
+ "sigma=150 #N/mm**2 #Permissible stress\n",
+ "\n",
+ "#Calculations\n",
+ "\n",
+ "#Equating Bursting force to longitudinal joint strength ,we get\n",
+ "#p*d*L=rho1*2*t*L*sigma\n",
+ "#After rearranging and further simplifying we get\n",
+ "t=P*d*(2*sigma*rho1)**-1 #mm\n",
+ "\n",
+ "#Considering Longitudinal force\n",
+ "#pi*d**2*4**-1*P=rho2*pi*d*t*sigma\n",
+ "#After rearranging and further simplifying we get\n",
+ "t2=P*d*(4*sigma*rho2)**-1\n",
+ "\n",
+ "#Result\n",
+ "print\"Thickness of plate required is\",round(t,2),\"mm\""
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Thickness of plate required is 11.9 mm\n"
+ ]
+ }
+ ],
+ "prompt_number": 45
+ },
+ {
+ "cell_type": "heading",
+ "level": 1,
+ "metadata": {},
+ "source": [
+ "Example 8.8.5,Page No.326"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "import numpy as np\n",
+ "\n",
+ "#Initilization of Variables\n",
+ "\n",
+ "#Boiler Dimensions\n",
+ "t=16 #mm #Thickness\n",
+ "p=2 #N/mm**2 #internal pressure\n",
+ "f=150 #N/mm**2 #Permissible stress\n",
+ "rho1=0.75 #Longitudinal joints\n",
+ "rho2=0.45 #circumferential joints\n",
+ "\n",
+ "#Calculations\n",
+ "\n",
+ "#Equating Bursting force to longitudinal joint strength ,we get\n",
+ "d1=rho1*2*t*f*p**-1 #mm\n",
+ "\n",
+ "#Considering circumferential strength \n",
+ "d2=4*rho2*t*f*p**-1 #mm\n",
+ "\n",
+ "#Result\n",
+ "print\"Largest diameter of Boiler is\",round(d1,2),\"mm\""
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Largest diameter of Boiler is 1800.0 mm\n"
+ ]
+ }
+ ],
+ "prompt_number": 52
+ },
+ {
+ "cell_type": "heading",
+ "level": 1,
+ "metadata": {},
+ "source": [
+ "Example 8.8.6,Page No.329"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "import numpy as np\n",
+ "\n",
+ "#Initilization of Variables\n",
+ "\n",
+ "d=250 #mm #Diameter iron pipe\n",
+ "t=10 #mm #Thickness\n",
+ "d2=6 #mm #Diameter of steel\n",
+ "p=80 #N/mm**2 #stress\n",
+ "P=3 #N/mm**2 #Pressure\n",
+ "E_c=1*10**5 #N/mm**2\n",
+ "mu=0.3 #poissoin's ratio\n",
+ "E_s=2*10**5 #N/mm**2\n",
+ "n=1 #No.of wires\n",
+ "\n",
+ "#Calculations\n",
+ "\n",
+ "L=6 #mm #Length of cyclinder\n",
+ "\n",
+ "#Force Exerted by steel wire at diameterical section\n",
+ "F=p*2*pi*d2**2*1*4**-1 #N\n",
+ "\n",
+ "#Initial stress in cyclinder\n",
+ "f_c=F*(2*t*d2)**-1 #N/mm**2\n",
+ "\n",
+ "#LEt due to fluid pressure alone stresses developed in steel wire be F_w and in cyclinder f1 and f2\n",
+ "f2=P*d*(4*t)**-1 #N/mm**2\n",
+ "\n",
+ "#Considering the equilibrium of half the cyclinder, 6mm long we get\n",
+ "#F_w*2*pi*4**-1*d2**2*n+f1*2*t*d2=P*d*d2\n",
+ "#After further simplifying we get\n",
+ "#F_w+2.122*f1=79.58 . ......................................(1)\n",
+ "\n",
+ "#Equating strain in wire to circumferential strain in cyclinder \n",
+ "#F_w=(f1-mu*f2)*E_s*E_c**-1 #N/mm**2\n",
+ "#After further simplifying we get\n",
+ "#F_w=2*f1-11.25 ....................................(2)\n",
+ "\n",
+ "#Sub in equation in1 we get\n",
+ "f1=(79.58+11.25)*(4.122)**-1 #N/mm**2\n",
+ "F_w=2*f1-11.25 #N/mm**2\n",
+ "\n",
+ "#Final stresses\n",
+ "#1) In steel Wire\n",
+ "sigma=F_w+p #N/mm**2\n",
+ "\n",
+ "#2) In Cyclinder\n",
+ "sigma2=f1-f_c\n",
+ "\n",
+ "#Result\n",
+ "print\"Final Stresses developed in:cyclinder is\",round(sigma,2),\"N/mm**2\"\n",
+ "print\" :Steel is\",round(sigma2,2),\"N/mm**2\" "
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Final Stresses developed in:cyclinder is 112.82 N/mm**2\n",
+ " :Steel is -15.66 N/mm**2\n"
+ ]
+ }
+ ],
+ "prompt_number": 8
+ },
+ {
+ "cell_type": "heading",
+ "level": 1,
+ "metadata": {},
+ "source": [
+ "Example 8.8.7,Page No.332"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "import numpy as np\n",
+ "\n",
+ "#Initilization of Variables\n",
+ "\n",
+ "d=750 #mm #Diameter of shell\n",
+ "t=8 #mm #THickness\n",
+ "p=2.5 #N/mm**2\n",
+ "E=2*10**5 #N/mm**2\n",
+ "mu=0.25 #Poissoin's ratio\n",
+ "\n",
+ "#Calculations\n",
+ "\n",
+ "#Hoop stress\n",
+ "f1=f2=p*d*(4*t)**-1 #N/mm**2\n",
+ "\n",
+ "#Change in Diameter\n",
+ "dell_d=d*p*d*(1-mu)*(4*t*E)**-1 #mm\n",
+ "\n",
+ "#Change in Volume\n",
+ "dell_V=3*p*d*(1-mu)*(4*t*E)**-1*pi*6**-1*d**3\n",
+ "\n",
+ "#Answer for Change in diameter is incorrect in book\n",
+ "\n",
+ "#Result\n",
+ "print\"Stress introduced is\",round(f1,2),\"N/mm**2\"\n",
+ "print\"Change in Diameter is\",round(dell_d,2),\"N/mm**2\"\n",
+ "print\"Change in Volume is\",round(dell_V,2),\"mm**3\""
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Stress introduced is 58.59 N/mm**2\n",
+ "Change in Diameter is 0.16 N/mm**2\n",
+ "Change in Volume is 145608.33 mm**3\n"
+ ]
+ }
+ ],
+ "prompt_number": 56
+ },
+ {
+ "cell_type": "heading",
+ "level": 1,
+ "metadata": {},
+ "source": [
+ "Example 8.8.8,Page No.333"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "import numpy as np\n",
+ "\n",
+ "#Initilization of Variables\n",
+ "\n",
+ "d=600 #mm #Diameter of sherical shell\n",
+ "t=10 #mm #Thickness\n",
+ "f=80 #N/mm**2 #Permissible stress\n",
+ "rho=0.75 #Efficiency joint\n",
+ "\n",
+ "#Calculations\n",
+ "\n",
+ "#Max Pressure\n",
+ "p=f*4*t*rho*d**-1 #N/mm**2\n",
+ "\n",
+ "#Result\n",
+ "print\"Max Pressure is\",round(p,2),\"N/mm**2\""
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Max Pressure is 4.0 N/mm**2\n"
+ ]
+ }
+ ],
+ "prompt_number": 60
+ },
+ {
+ "cell_type": "heading",
+ "level": 1,
+ "metadata": {},
+ "source": [
+ "Example 8.8.9,Page No.333"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "import numpy as np\n",
+ "\n",
+ "#Initilization of Variables\n",
+ "\n",
+ "L=1000 #mm #Length of shell\n",
+ "d=200 #mm #Diameter\n",
+ "t=6 #mm #Thickness\n",
+ "p=1.5 #N/mm**2 #Internal Pressure\n",
+ "E=2*10**5 #N/mm**2\n",
+ "mu=0.25 #Poissoin's Ratio\n",
+ "\n",
+ "#Calculations\n",
+ "\n",
+ "#Change in Volume of sphere\n",
+ "dell_V_s=3*p*d*(1-mu)*(4*t*E)**-1*pi*6**-1*d**3\n",
+ "\n",
+ "#Hoop stress\n",
+ "f1=p*d*(2*t)**-1 #N/mm**2\n",
+ "\n",
+ "#Longitudinal stress\n",
+ "f2=p*d*(4*t)**-1 #N/mm**2\n",
+ "\n",
+ "#Principal strain\n",
+ "e1=(f1-mu*f2)*E**-1\n",
+ "e2=(f2-mu*f1)*E**-1\n",
+ "\n",
+ "V_c=1000 #mm**3\n",
+ "\n",
+ "#Change in Volume of cyclinder\n",
+ "dell_V_c=(2*e1+e2)*pi*4**-1*d**2*L\n",
+ "\n",
+ "#Total Change in Diameter\n",
+ "dell_V=dell_V_s+dell_V_c #mm**3\n",
+ "\n",
+ "#Result\n",
+ "print\"Change in Volume is\",round(dell_V,2),\"mm**3\""
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Change in Volume is 8443.03 mm**3\n"
+ ]
+ }
+ ],
+ "prompt_number": 66
+ },
+ {
+ "cell_type": "heading",
+ "level": 1,
+ "metadata": {},
+ "source": [
+ "Example 8.8.10,Page No.337"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "import numpy as np\n",
+ "%matplotlib inline\n",
+ "\n",
+ "#Initilization of Variables\n",
+ "\n",
+ "d1=400 #mm #Internal Diameter\n",
+ "t=100 #mm #Thickness\n",
+ "p=80 #N/mm**2 #Fluid pressure\n",
+ "\n",
+ "\n",
+ "#Calculations\n",
+ "\n",
+ "#Internal Radius\n",
+ "r1=d1*2**-1 #mm\n",
+ "\n",
+ "#Outer Radius\n",
+ "r_o=r1+t #mm\n",
+ "\n",
+ "p1=80 #N/mm**2\n",
+ "p2=0\n",
+ "\n",
+ "#Now From Lame's Euation\n",
+ "#p_x=b*(x**2)**-1-a\n",
+ "#at x=200 #mm \n",
+ "p_x=80 #N/mm**2\n",
+ "#80=b*(200**2)**-1-a ..........................(1)\n",
+ "\n",
+ "#at x=300 #mm\n",
+ "#p_x2=0\n",
+ "#0=b*(300**2)**-1-a ...........................(2)\n",
+ "\n",
+ "#Sub equation 2 from 1\n",
+ "#80=b*(200**2)**-1-b*(300**2)**-1\n",
+ "#After Further simplifying we get\n",
+ "b=(50000)**-1*(200**2*300**2*80)\n",
+ "\n",
+ "#From equation 2 we get\n",
+ "a=b*(300**2)**-1\n",
+ "\n",
+ "#Variation of radial pressure p_x;\n",
+ "#p_x=b*(x**2)**-1-a\n",
+ "#After sub values and further simplifying we get\n",
+ "\n",
+ "#Radial pressure Variation\n",
+ "#At \n",
+ "x=200 #mm\n",
+ "p_x=b*(x**2)**-1-a #N/mm**2\n",
+ "\n",
+ "#At\n",
+ "x2=250 #mm\n",
+ "p_x2=b*(x2**2)**-1-a #N/mm**2\n",
+ "\n",
+ "#At \n",
+ "x3=300 #mm\n",
+ "p_x3=b*(x3**2)**-1-a #N/mm**2\n",
+ "\n",
+ "\n",
+ "#Hoop stress Distribution\n",
+ "#Variation of F_x\n",
+ "\n",
+ "#At \n",
+ "x=200 #mm\n",
+ "F_x=b*(x**2)**-1+a #N/mm**2\n",
+ "\n",
+ "#At\n",
+ "x2=250 #mm\n",
+ "F_x2=b*(x2**2)**-1+a #N/mm**2\n",
+ "\n",
+ "#At\n",
+ "x3=300 #mm\n",
+ "F_x3=b*(x3**2)**-1+a #N/mm**2\n",
+ "\n",
+ "#Result\n",
+ "print\"Max Hoop stress is\",round(F_x,2),\"N/mm**2\"\n",
+ "print\"Min Hoop stress is\",round(F_x3,2),\"N/mm**2\"\n",
+ "print\"Plot of Hoop stress\"\n",
+ "\n",
+ "#Plotting Variation of hoop stress\n",
+ "\n",
+ "X1=[x,x2,x3]\n",
+ "Y1=[p_x,p_x2,p_x3]\n",
+ "Y2=[-F_x,-F_x2,-F_x3]\n",
+ "Z1=[0,0,0]\n",
+ "plt.plot(X1,Y1,X1,Y2,X1,Z1)\n",
+ "plt.xlabel(\"Length x in mm\")\n",
+ "plt.ylabel(\"Radial Stress Distribution & Hoop Stress Distribution in N/mm**2\")\n",
+ "plt.show()\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Max Hoop stress is 208.0 N/mm**2\n",
+ "Min Hoop stress is 128.0 N/mm**2\n",
+ "Plot of Hoop stress\n"
+ ]
+ },
+ {
+ "metadata": {},
+ "output_type": "display_data",
+ "png": "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\n",
+ "text": [
+ "<matplotlib.figure.Figure at 0x4e683d0>"
+ ]
+ }
+ ],
+ "prompt_number": 1
+ },
+ {
+ "cell_type": "heading",
+ "level": 1,
+ "metadata": {},
+ "source": [
+ "Example 8.8.11,Page No.338"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "import numpy as np\n",
+ "%matplotlib inline\n",
+ "\n",
+ "#Initilization of Variables\n",
+ "\n",
+ "d_o=300 #mm #Outside diameter \n",
+ "d2=200 #mm #Internal Diameter\n",
+ "p=14 #N/mm**2 #internal Fluid pressure\n",
+ "t=50 #mm #Thickness\n",
+ "r_o=150 #mm #Outside Diameter\n",
+ "r2=100 #mm #Internal Diameter\n",
+ "\n",
+ "#Calculations\n",
+ "\n",
+ "#From Lame's Equation\n",
+ "#p_x=b*(x**2)**-1-a #N/mm**2 ...................(1)\n",
+ "#F_x=b*(x**2)**-1+a #N/mm**2 ...................(2)\n",
+ "\n",
+ "#At \n",
+ "x=r2=100 #mm\n",
+ "p_x=14 #N/mm**2\n",
+ "\n",
+ "#Sub value of p_x in equation 1 we get\n",
+ "#14=(100)**-1*b-a ............................(3)\n",
+ "\n",
+ "#At\n",
+ "x2=r_o=150 #mm\n",
+ "p_x2=0 #N/mm**2\n",
+ "\n",
+ "#Sub value in equation 1 we get\n",
+ "#0=b*(150**2)**-1-a ......................(4)\n",
+ "\n",
+ "#From Equations 3 and 4 we get\n",
+ "#14=b*(100**2)**-1-b*(100**2)**-1\n",
+ "#After sub values and further simplifying we get\n",
+ "b=14*100**2*150**2*(150**2-100**2)**-1\n",
+ "\n",
+ "#From equation 4 we get\n",
+ "a=b*(150**2)**-1\n",
+ "\n",
+ "#Hoop Stress\n",
+ "#F_x=b*(x**2)**-1+a #N/mm**2\n",
+ "\n",
+ "#At \n",
+ "x=100 #mm\n",
+ "F_x=b*(x**2)**-1+a #N/mm**2\n",
+ "\n",
+ "#At\n",
+ "x2=125 #mm\n",
+ "F_x2=b*(x2**2)**-1+a #N/mm**2\n",
+ "\n",
+ "#At\n",
+ "x3=150 #mm\n",
+ "F_x3=b*(x3**2)**-1+a #N/mm**2\n",
+ "\n",
+ "#If thin Cyclindrical shell theory is used,hoop stress is uniform and is given by\n",
+ "F=p*d2*(2*t)**-1 #N/mm**2\n",
+ "\n",
+ "#Percentage error in estimating max hoop tension\n",
+ "E=(F_x-F)*F_x**-1*100 #%\n",
+ "\n",
+ "#Result\n",
+ "print\"Max Hoop Stress Developed in the cross-section is\",round(F,2),\"N/mm**2\"\n",
+ "print\"Plot of Variation of hoop stress\"\n",
+ "\n",
+ "#Plotting Variation of hoop stress\n",
+ "\n",
+ "X1=[x,x2,x3]\n",
+ "Y1=[F_x,F_x2,F_x3]\n",
+ "Z1=[0,0,0]\n",
+ "plt.plot(X1,Y1,X1,Z1)\n",
+ "plt.xlabel(\"Length x in mm\")\n",
+ "plt.ylabel(\"Radial Stress Distribution & Hoop Stress Distribution in N/mm**2\")\n",
+ "plt.show()\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Max Hoop Stress Developed in the cross-section is 28.0 N/mm**2\n",
+ "Plot of Variation of hoop stress\n"
+ ]
+ },
+ {
+ "metadata": {},
+ "output_type": "display_data",
+ "png": "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\nSUVORK5CYII=\n",
+ "text": [
+ "<matplotlib.figure.Figure at 0x5662550>"
+ ]
+ }
+ ],
+ "prompt_number": 2
+ },
+ {
+ "cell_type": "heading",
+ "level": 1,
+ "metadata": {},
+ "source": [
+ "Example 8.8.12,Page No.339"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "import numpy as np\n",
+ "\n",
+ "#Initilization of Variables\n",
+ "\n",
+ "d_o=300 #mm #Outside diameter \n",
+ "d2=200 #mm #Internal Diameter\n",
+ "p=12 #N/mm**2 #internal Fluid pressure\n",
+ "F_max=16 #N/mm**2 #Tensile stress\n",
+ "r_o=150 #mm #Outside Diameter\n",
+ "r2=100 #mm #Internal Diameter\n",
+ "\n",
+ "#Calculations\n",
+ "\n",
+ "#Let p_o be the External Pressure applied.\n",
+ "#From LLame's theorem\n",
+ "#p_x=b*(x**2)**-1-a ..............(1)\n",
+ "#F_x=b*(x**2)**-1+a ...........................(2)\n",
+ "\n",
+ "#Now At\n",
+ "x=100 #mm\n",
+ "p_x=12 #N/mm**2\n",
+ "#sub in equation 1 we get\n",
+ "#12=b*(100**2)**-1-a . ..................(3)\n",
+ "\n",
+ "#The Max Hoop stress occurs at least value of x where\n",
+ "x=r1=100 #mm\n",
+ "#16=b*(100**2)**-1+a .......................(4)\n",
+ "\n",
+ "#From Equations 1 and 2 we get\n",
+ "#28=b*(100**2)**-1+b*(100**2)**-1\n",
+ "#After furhter Simplifying we get\n",
+ "b=28*100**2*2**-1\n",
+ "\n",
+ "#sub in equation 1 we get\n",
+ "a=-(12-(b*(100**2)**-1))\n",
+ "\n",
+ "#Thus At\n",
+ "x2=150 #mm\n",
+ "p_o=b*(x2**2)**-1-a\n",
+ "\n",
+ "#Result\n",
+ "print\"Minimum External applied is\",round(p_o,2),\"N/mm**2\""
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Minimum External applied is 4.22 N/mm**2\n"
+ ]
+ }
+ ],
+ "prompt_number": 18
+ },
+ {
+ "cell_type": "heading",
+ "level": 1,
+ "metadata": {},
+ "source": [
+ "Example 8.8.13,Page No.340"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "import numpy as np\n",
+ "\n",
+ "#Initilization of Variables\n",
+ "\n",
+ "d1=160 #mm #Internal Diameter \n",
+ "r1=80 #mm #External Diameter\n",
+ "p1=40 #N/mm**2 #Internal Diameter\n",
+ "P_max=120 #N/mm**2 #Allowable stress\n",
+ "\n",
+ "#Calculations\n",
+ "\n",
+ "#From Lame's Equation we have\n",
+ "#p_x=b*(x**2)**-1-a ..........................(1)\n",
+ "#F_x=b*(x**2)**-1+a ...........................(2)\n",
+ "\n",
+ "#At \n",
+ "x=r1=80 #N/mm**2 \n",
+ "#Sub in equation 1 we get\n",
+ "#120=b*(80**2)**-1+a ........................(3)\n",
+ "\n",
+ "#The hoop tension at inner edge is max stress\n",
+ "#Hence\n",
+ "#120=b*(80**2)**-1+a .............................(4)\n",
+ "\n",
+ "#From Equation 3 and 4 we get\n",
+ "b=160*80**2*2**-1 \n",
+ "\n",
+ "#Sub in equation 3 we get\n",
+ "a=-(40-(b*(80**2)**-1))\n",
+ "\n",
+ "#Let External radius be r_o.Since at External Surface is Zero,we get\n",
+ "#0=b*(r_o)**-1-a\n",
+ "#After Further simplifying we get\n",
+ "r_o=(b*a**-1)**0.5\n",
+ "\n",
+ "#Thickness of Cyclinder \n",
+ "t=r_o-r1 #mm\n",
+ "\n",
+ "#Result\n",
+ "print\"Thickness Required is\",round(t,2),\"mm\""
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Thickness Required is 33.14 mm\n"
+ ]
+ }
+ ],
+ "prompt_number": 31
+ },
+ {
+ "cell_type": "heading",
+ "level": 1,
+ "metadata": {},
+ "source": [
+ "Example 8.8.14,Page No.341"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "import numpy as np\n",
+ "\n",
+ "#Initilization of Variables\n",
+ "\n",
+ "d_o=300 #mm #Outside diameter \n",
+ "d1=180 #mm #Internal Diameter\n",
+ "p=12 #N/mm**2 #internal Fluid pressure\n",
+ "p_o=6 #N/mm**2 #External Pressure\n",
+ "r_o=150 #mm #Outside Diameter\n",
+ "r=90 #mm #Internal Diameter\n",
+ "\n",
+ "\n",
+ "#Calculations\n",
+ "\n",
+ "#From Lame's Equation we have\n",
+ "#p_x=b*(x**2)**-1-a ..........................(1)\n",
+ "#F_x=b*(x**2)**-1+a ...........................(2)\n",
+ "\n",
+ "#At \n",
+ "x=r1=90 #N/mm**2 \n",
+ "p=42 #N/mm**2\n",
+ "#Sub in equation 1 we get\n",
+ "#42=b*(90**2)**-1-a ..............................(3)\n",
+ "\n",
+ "#At \n",
+ "x=r_o=150 #mm\n",
+ "p2=6 #N/mm**2\n",
+ "#sub in equation 1 we get\n",
+ "#6=b*(150**2)**-1-a ..............................(4)\n",
+ "\n",
+ "#From equations 3 and 4 weget\n",
+ "#36=b*(90**2)**-1-b2(150**2)**-1\n",
+ "#After further simplifying we get\n",
+ "b=36*90**2*150**2*(150**2-90**2)**-1\n",
+ "\n",
+ "#Sub value of b in equation 4 we get\n",
+ "a=b*(150**2)**-1-p_o\n",
+ "\n",
+ "#At \n",
+ "x=r1=90 #mm\n",
+ "F_x=b*(x**2)**-1+a #N/mm**2\n",
+ "\n",
+ "#At \n",
+ "x2=r_o=150 #mm \n",
+ "F_x2=b*(x2**2)**-1+a #N/mm**2\n",
+ "\n",
+ "#Now if External pressure is doubled i.e p_o2=12 #N/mm**2 We have\n",
+ "p_o2=12 #N/mm**2\n",
+ "#sub in equation 4 we get\n",
+ "#12=b2*(150**2)**-1-a2 ..........................(5)\n",
+ "\n",
+ "#Max Hoop stress is to be 70.5 #N/mm**2,which occurs at x=r1=90 #mm\n",
+ "#Sub in equation 4 we get\n",
+ "#70.5=b*(90**2)**-1+a2 ................................(6)\n",
+ "\n",
+ "#Adding equation 5 and 6\n",
+ "#82.5=b2*(150**2)**-1+b*(90**2)**-1\n",
+ "#After furhter simplifying we get\n",
+ "b2=82.5*150**2*90**2*(150**2+90**2)**-1\n",
+ "\n",
+ "#Sub in equation 5 we get\n",
+ "a2=b2*(150**2)**-1-12 \n",
+ "\n",
+ "#If p_i is the internal pressure required then from Lame's theorem\n",
+ "p_i=b2*(r1**2)**-1-a2\n",
+ "\n",
+ "#Result\n",
+ "print\"Stresses int the material are:F_x\",round(F_x,2),\"N/mm**2\"\n",
+ "print\" :F_x2\",round(F_x2,2),\"N/mm**2\"\n",
+ "print\"Internal Pressure that can be maintained is\",round(p_i,2),\"N/mm**2\""
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Stresses int the material are:F_x 70.5 N/mm**2\n",
+ " :F_x2 34.5 N/mm**2\n",
+ "Internal Pressure that can be maintained is 50.82 N/mm**2\n"
+ ]
+ }
+ ],
+ "prompt_number": 17
+ },
+ {
+ "cell_type": "heading",
+ "level": 1,
+ "metadata": {},
+ "source": [
+ "Example 8.8.15,Page No.344"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "import numpy as np\n",
+ "%matplotlib inline\n",
+ "\n",
+ "#Initilization of Variables\n",
+ "\n",
+ "r1=200 #mm #Inner Radius\n",
+ "r2=250 #mm #Radius at common surface\n",
+ "r3=300 #mm #Outer radius\n",
+ "p=6 #N/mm**2 #Inital pressure\n",
+ "p2=80 #N/mm**2 #Pressure\n",
+ "\n",
+ "#Calculations\n",
+ "\n",
+ "#Inner Cyclinder:\n",
+ "\n",
+ "#From Lame's Equation we have\n",
+ "#p_x=b*(x**2)**-1-a ..........................(1)\n",
+ "#F_x=b*(x**2)**-1+a ...........................(2)\n",
+ "\n",
+ "#At \n",
+ "x=r1=200 #mm\n",
+ "p_x=0\n",
+ "#0=b1*(250**2)**-1-a1 .................(3)\n",
+ "\n",
+ "#At x=r2=250 #mm\n",
+ "p_x2=6 #N/mm**2\n",
+ "#6=b1*(250**2)-a1 ...................(4)\n",
+ "\n",
+ "#From Equation 3 and 4 we get\n",
+ "b1=6*200**2*250**2*(200**2-250**2)**-1\n",
+ "\n",
+ "#From equation 3 we get\n",
+ "a1=b1*(200**2)**-1\n",
+ "\n",
+ "F_200=b1*(200**2)**-1+a1\n",
+ "F_250=b1*(250**2)**-1+a1\n",
+ "\n",
+ "#For outer cyclinder \n",
+ "#From Lame's Equation we have\n",
+ "#p_x2=b2*(x**2)**-1-a2 ..........................(5)\n",
+ "#F_x2=b2*(x**2)**-1+a2 ...........................(6)\n",
+ "\n",
+ "\n",
+ "#At \n",
+ "x2=r2=250 #mm\n",
+ "p_x2=6 #N/mm**2\n",
+ "#6=b2*(250**2)**-1-a2 ...........................(7) \n",
+ "\n",
+ "#At\n",
+ "x3=300 #mm\n",
+ "#p_x2=0\n",
+ "#0=b2**2*(300**2)**-1-a2 .................................(8)\n",
+ "\n",
+ "#from equation 7 and 8 we get\n",
+ "b2=6*250**2*300**2*(300**2-250**2)**-1\n",
+ "\n",
+ "#sub in equation 8 we get\n",
+ "a2=b2*(300**2)**-1\n",
+ "\n",
+ "F_250_2=b2*(250**2)**-1+a2\n",
+ "F_300_2=b2*(300**2)**-1+a2\n",
+ "\n",
+ "#When Fluid is admitted\n",
+ "#Let Lame's equation be\n",
+ "#p_x3=b3*(x**2)**-1-a3 ..........................(5)\n",
+ "#F_x3=b3*(x**2)**-1+a3 ...........................(6)\n",
+ "\n",
+ "\n",
+ "#At x=200\n",
+ "p_x3=80 #N/mm**2\n",
+ "#80=b3*(200**2)**-1-a3 ................................(7)\n",
+ "\n",
+ "#At x=300 #mm\n",
+ "#p_x=0\n",
+ "#0=b3*(300**2)**-1-a3 ..............................(8)\n",
+ "\n",
+ "#from Equation 7 and 8 we get\n",
+ "b3=80*200**2*300**2*(300**2-200**2)**-1\n",
+ "\n",
+ "#From Equation 8 we get\n",
+ "a3=b3*(300**2)**-1\n",
+ "\n",
+ "#Hoop stresses \n",
+ "F_200_3=b3*(200**2)**-1+a3 #N/mm**2\n",
+ "F_250_3=b3*(250**2)**-1+a3 #N/mm**2\n",
+ "F_300_3=b3*(300**2)**-1+a3 #N/mm**2\n",
+ "\n",
+ "#Pressure at common surface\n",
+ "p_250=b3*(250**2)**-1-a3 #N/mm**2\n",
+ "\n",
+ "#final stress\n",
+ "f_200=F_200+F_200_3 #N/mm**2\n",
+ "f_250=F_250+F_250_3 #N/mm**2\n",
+ "f_300=F_250_2+F_250_3 #N/mm**2\n",
+ "f_300_2=F_300_2+F_300_3 #N/mm**2\n",
+ "\n",
+ "#Result\n",
+ "print\"final Hoop stress are:f_200\",round(f_200,2),\"N/mm**2\"\n",
+ "print\" :f_250\",round(f_250,2),\"N/mm**2\"\n",
+ "print\" :f_300\",round(f_300,2),\"N/mm**2\"\n",
+ "print\" :f_300_2\",round(f_300_2,2),\"N/mm**2\"\n",
+ "print\"Variation of Hoop stress and Radial stress\"\n",
+ "\n",
+ "#Final stresses\n",
+ "#Variation of hoop stress \n",
+ " \n",
+ "X1=[x,x2,x3,x3]\n",
+ "Y1=[f_200,f_250,f_300,f_300_2]\n",
+ "Z1=[0,0,0,0]\n",
+ "plt.plot(X1,Y1,X1,Z1)\n",
+ "plt.xlabel(\"Length x in mm\")\n",
+ "plt.ylabel(\"Hoop Stress Distribution in N/mm**2\")\n",
+ "plt.show()\n",
+ "\n",
+ "#Due to Fluid\n",
+ "#Variation of hoop stress \n",
+ " \n",
+ "X1=[x,x2,x3]\n",
+ "Y1=[F_200_3,F_250_3,F_300_3]\n",
+ "Z1=[0,0,0]\n",
+ "plt.plot(X1,Y1,X1,Z1)\n",
+ "plt.xlabel(\"Length x in mm\")\n",
+ "plt.ylabel(\"Hoop Stress Distribution in N/mm**2\")\n",
+ "plt.show()\n",
+ "\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "final Hoop stress are:f_200 174.67 N/mm**2\n",
+ " :f_250 128.83 N/mm**2\n",
+ " :f_300 189.43 N/mm**2\n",
+ " :f_300_2 155.27 N/mm**2\n",
+ "Variation of Hoop stress and Radial stress\n"
+ ]
+ },
+ {
+ "metadata": {},
+ "output_type": "display_data",
+ "png": "iVBORw0KGgoAAAANSUhEUgAAAYoAAAEPCAYAAABcA4N7AAAABHNCSVQICAgIfAhkiAAAAAlwSFlz\nAAALEgAACxIB0t1+/AAAIABJREFUeJzt3XlUlEfaNvCrETAquIwLRImiIDuCYkTHoCgirrigJG4h\nGrfkjJO8MaLJ5xjNTBQzr/NGnRiNcUtMjDEuYNRIXHDU6GAU9wUHAbFBXHGNIlDfHzU0oHRjd/P0\nQl+/czgHu3meulPRvqmnqu5SCSEEiIiItLAzdwBERGTZmCiIiEgnJgoiItKJiYKIiHRioiAiIp2Y\nKIiISCfFEkVOTg569OgBf39/BAQEYNGiRQCAW7duITIyEl5eXujduzcKCgo018ybNw9t27aFj48P\nkpOTlQqNiIj0oFJqH8XVq1dx9epVBAcH4/79+wgJCcGWLVuwatUqNGnSBPHx8Zg/fz5u376NhIQE\nnD17FiNHjsSRI0egVqvRq1cvpKenw86Ogx4iInNS7FPY1dUVwcHBAAAnJyf4+vpCrVYjKSkJcXFx\nAIC4uDhs2bIFAJCYmIgRI0bAwcEB7u7u8PT0RGpqqlLhERHRczLJr+tZWVlIS0tDaGgo8vPz4eLi\nAgBwcXFBfn4+ACA3Nxdubm6aa9zc3KBWq00RHhER6aB4orh//z5iYmKwcOFCODs7V3hPpVJBpVJp\nvVbXe0REZBr2St78yZMniImJwZgxYzB48GAAchRx9epVuLq6Ii8vD82aNQMAtGjRAjk5OZprr1y5\nghYtWjxzT09PT2RkZCgZNhFRjePh4YH//Oc/Bl2r2IhCCIE333wTfn5+ePfddzWvR0dHY82aNQCA\nNWvWaBJIdHQ0vv/+exQWFiIzMxMXL15Ep06dnrlvRkYGhBD8EgIfffSR2WOwlC/2BfuCfaH7y5hf\nsBUbURw8eBBr165Fu3bt0L59ewBy+euMGTMQGxuLFStWwN3dHT/88AMAwM/PD7GxsfDz84O9vT2W\nLFnCR09ERBZAsUTxyiuvoKSkpNL3du3aVenrH374IT788EOlQiIiIgNwk4IVCw8PN3cIFoN9UYZ9\nUYZ9UT0U23CnFJVKBSsLmYjI7Iz57OSIgoiIdGKiICIinZgoiIhIJyYKIiLSiYmCiKiGe/zYuOuZ\nKIiIaqDiYmDbNiA6GnByMu5eTBRERDVIXh7wt78BbdoAc+YAgwcD/y2pZzAmCiIiK1dSAvzyCxAT\nA/j7A1euAFu2AKmpwLhxgIODcfdXtHosEREp59o1YPVqYNkyoH59YPJk+eenTnQwGhMFEZEVEQLY\ntw9YuhTYuRMYMgRYtw54+WVAqTqqTBRERFbg1i1gzRo5erC3ByZNksmiYUPl22aiICKyUEIAv/4q\nE8LWrcDAgcBXXwFduyo3eqgMEwURkYUpKADWrpWjh8JCOXr47DOgcWPzxMNEQURkAYQAjhyRyWHT\nJiAqCli0CAgPN+3ooTJMFEREZnTvHvDddzJB3LkDTJwIXLhg/N6H6lRlonjy5AkcnlqEe+PGDTRp\n0kSxoIiIarq0NJkc1q8HevYEEhKAXr0AOwvc3aY1pL1798LNzQ2urq7o3bs3MjMzNe9FRkaaJDgi\noprkwQNg5UogNBQYNAhwcwPOnAE2bgR697bMJAHoSBTTpk3Dzp07cePGDUycOBGRkZE4dOiQKWMj\nIqoRTp8GpkwBWraUO6ZnzQIyM4GZM4Hmzc0dXdW0PnoqLCyEv78/AGDYsGHw9fXF0KFDMX/+fJMF\nR0RkrR49AjZskI+XMjOB8ePl46aWLc0dmf60JgpHR0dcvXoVrq6uAAB/f3/s3r0b/fv3R0ZGhskC\nJCKyJhcuyOTwzTdASAjw/vvAgAFyk5y10hr6vHnzKiQKAHBzc8O+ffvwz3/+0yTBERFZg8ePgc2b\nZYI4d04W4ktNBVq3Nndk1UMlhBDa3jxx4gSCgoJw8uRJtGvXzpRxaaVSqXDxooCnp7kjISJbl5EB\nfPmlLMQXECCL8g0aBDg6mjuyitzdgexsFXR83Oukc4595cqVuHjxIlasWGHQzZUSFgb4+QEzZgCH\nDskDOoiITOHJE7khrndvoHNn+fmzfz+wezcwfLjlJYnqoDVRzJkzByUlJQgNDYUQAnPmzDFlXDqp\n1TKD29vLzSnNmwNvvgkkJgIPH5o7OiKqibKzgb/8BWjVSpbTiIsDcnKA//1fwMvL3NEpS+ejp6Sk\nJOzYsQN9+/ZFdHS0KePSSqV6dvh06ZIsmJWYCPz2m9zyHh0tJ5DKTbEQEemluBjYvl3OPRw6BIwe\nLesu+fmZOzL9KPro6d///je++OILHDlyxKCbm0qbNsA77wB79sis/9prwK5dgK8v0KULMG+e3NRi\nYB8RkY1Rq4GPP5YfsHPnAsOGydHDwoXWlySqg1VOZj9vViwslAd8JCXJL3t7OdIYNAh45RXrXq5G\nRNWrpARITpajh3375C+ckyYBQUHmjsx4NjmZ/bwcHYHISGDxYiArS05ANWok1zW7uMhh5A8/AHfv\nmjtSIjKX/Hz51MHDA/h//w/o1w+4fBlYsqRmJInqYJWT2YZQqeT/9Fmz5DzGiRNyVLFqFdCihSzp\n+/nn8i8IEdVsJSVylVJsLODjI+c5N2wAjh4FJkwAnJzMHaFlqRGT2ca6d08OOZOSgG3bgJdeko+n\noqOB9u3NXwueiKrHjRtyxeSXXwIvvCD3PYwaBTRoYO7IlMXJ7Grg7AzExMjzaK9elRNW9+8Dr74q\n67K8/bY8xPzxY3NHSkT6EkLucxg1CmjbFjh1Sv5bP3FC/tuu6UmiOugcUVgiJUYU2ggh67YkJsrR\nxpkzcs4jOhro3x/4wx9MEgYRGeD2beDrr+XktBBy9DBmjG3+uzV2RFFloti6dStmzZqFrKwsFBUV\nyYtUKtw10wywKRPF065dk4+mEhPlUtwOHWTSiI4GS4oQWQAhgMOHZXJITAT69pUJIizMth8hK54o\nPDw8sHnzZgQEBMDOAk7VMGeiKO/33+VkWFKS3OzXqFHZvEZoqOUeQEJUE929C3z7LbB0qazOMHEi\n8MYbQNOm5o7MMiieKLp37449e/agVq1aBjVQ3SwlUZRXUiIPRS/dr3H9utwVHh0tjzasW9fcERLV\nTEePyuTw44/y39rkyUCPHvxF7WmKJ4rDhw9j1qxZ6NGjBxz/W+1KpVLhvffeM6hBY1lionhaRoYc\nZSQlVSwpMnCg3L9BRIa7fx/4/nuZIG7elMtZx41juR5dFE8UkZGRcHZ2RmBgYIVHTx999JFBDRrL\nGhJFebdvAzt2yOelO3fKsiKl8xp+frb93JRIHydPyrmHdeuAbt3k6CEyErCQhx0WTfFEERAQgNOn\nTxt0cyVYW6Ior3xJkcREuXO8NGmwpAjRs37/XVZPWLoUuHJFHif65puAm5u5I7MuiieK+Ph4RERE\nICoqyqAGqps1J4ryhJDruEvnNTIzZemA6Gi5S7x+fXNHSGQ+587J0cPatXJxyKRJ8t8Hf5kyjOKJ\nwsnJCQ8fPoSjoyMcHBzkRTa6PFZJV66UzWscOAD88Y9lo42XXjJ3dETKe/wY2LhRJoj0dDlyGD9e\nfsiRcRRPFJampiaK8kpLiiQmylr4LVuWJQ2WFKGa5uJFWVJjzRogOFiOHqKjgf/+XkrVwCSJ4uTJ\nkxU23AHA0KFDDWrQWLaQKMorKgJ+/bVsXuPRo7KkER4O1K5t7giJ9FdYKP8+L1smJ6nHjpWrl7hx\nVRmKJ4qxY8fi1KlT8Pf3r7DqadWqVQY1aCxbSxTlCQGcP182r3HmjDy3NzpaPr+1xdIEZF0yM4Hl\ny2XVZm9vuXJpyBD+wqM0xROFn58fzpw5A5WFPO+w5UTxtGvXgJ9+kkmjfEmRQYNkbX0iS1BUJP+e\nLlsmN6a+/rrcOe3jY+7IbIfiiSIuLg7x8fHw9/c3qIHqxkRRudKSIomJclK8ceOyR1QsKULmkJMD\nfPUVsGIF0KqVHD0MGwbUqWPuyGxPURHg4KBQmXFAPnrq0qULvLy8EBgYiMDAwOc+FnXcuHFwcXFB\nYGCg5rXZs2fDzc0N7du3R/v27bFjxw7Ne/PmzUPbtm3h4+OD5ORkA/5zbFedOrJsyPLlQG4usHKl\nTA4TJgDNm8vVI0lJsg4OkVKKi+UCjOhoOTF986bccHrwoKzcyiRhHsYuK36uooD/93//90xRQPfn\nWLO2f/9+ODk54fXXX8epU6cAyJPznJ2dnykBcvbsWYwcORJHjhyBWq1Gr169kJ6e/kwhQo4o9Pd0\nSZEePeQ/5AEDWFKEqkdenhw5LF8u/05NnizPc6lXz9yRUSljPjurHFE0a9YM0dHRaNOmDdzd3TVf\nzyMsLAyNGjV65vXKgk1MTMSIESPg4OAAd3d3eHp6IjU19bnaId08PIB335XzGNnZ8vjH5GQ5mdil\nC5CQAJw9KyfLiZ5XSQnwyy/y0C8/P/moafNmIDVV1l5ikqg5qhyQtG/fHiNHjsTAgQMrFAU0Znns\n4sWL8fXXX6Njx45YsGABGjZsiNzcXHTu3FnzM25ublCr1Qa3QZVr1Eie9DVqlFyimJIiRxp9+rCk\nCD2fa9fKjhN1dpb7HlatYjWBmqzKj4LSXdlPzxkYmijeeustzJo1CwDwl7/8BVOnTsWKFSsq/Vlt\nK61mz56t+T48PBzh4eEGxWLrHB3l8trevYHFi8tKikydCmRllZUU6dNHfiCQ7RJC1ilbulQWtxwy\nBPjuO+Dll7kB1FKlpKQgJSWlWu6ldY7iu+++Q1RUFBo3bmxUA1lZWRg4cKBmjkLbewkJCQCAGTNm\nAAD69OmDOXPmIDQ0tGLAnKMwifIlRQ4eLCspMnAgS4rYklu35I7pZcvkCHPSJDkp3bChuSMjfSky\nR3H58mUMHz4cr7zyCmbPno1///vf1fIBnZeXp/l+8+bNmhVR0dHR+P7771FYWIjMzExcvHgRnTp1\nMro9MoybG/DWW3LFilotV00dPixXsnToAMyZA6SlcV6jJhJC/nLw+utAmzbAsWNymeupU8CUKUwS\ntqjKVU93797Frl27sHPnTqSmpsLHxwd9+/ZFVFQUXKpYMjNixAjs27cPN27cgIuLC+bMmYOUlBQc\nP34cKpUKrVu3xrJlyzT3mTt3LlauXAl7e3ssXLiw0oq1HFGYV1GR/BApLSny+DFLitQUd+4A33wj\nRw+FhXL0EBcn9+SQ9TPms1PvooBnzpzBjh07kJycbJa9DkwUlqN8SZHERLlyiiVFrIsQcrf0smXA\npk2yxP2kSTLpc+6hZlEkUVy+fFnrRUIItGrVyqAGjcVEYbny84Ft28pKioSElI02WFLEsty7Jyej\nly0DCgpkchg7FmjWzNyRkVIUSRQBAQGVrjq6fv06rl+/juLiYoMaNBYThXV4+FCWFElKKispMmiQ\nTBqdOrGkiLmkpcnksH490LOnTBC9evH/hy0wyaOnrKwsJCQkYNeuXXjnnXcwZcoUgxo0FhOF9Skp\nkZuwSqve3rghd4UPGgRERAB165o7wprtwQOZGJYtkzuoJ06UG+KaNzd3ZGRKiiaK9PR0zJ07F4cP\nH8bUqVPxxhtvaE66MwcmCutXWlIkMRE4epQlRZRy+rRMDt99J5c3T54s98TUqmXuyMgcFEkUp06d\nwieffIIzZ84gPj4eI0eORC0L+BvGRFGz3Loll+AmJcmNXH5+ZfMavr6cUNXXo0fAjz/KjXGZmWXH\nibZsae7IyNwUSRS1atWCm5sbBgwYUGlhvkWLFhnUoLGYKGqux4/l7t/SR1SOjmXzGl27sqSILhcu\nyNHDN9/IRQSTJskRGo8TpVKKJIrVq1drbl6eEAIqlQpxcXEGNWgsJgrbIIQsKZKYKJNGaUmRQYPk\nEk6WFJF7HTZvlqOHc+fKjhNt08bckZElMuk+CnNjorBNOTnylLTERLnhr2vXskdUbm7mjs60MjLK\njhMNCJBzD4MGyREYkTZMFGRT7t6VZdKTkuS+DXf3sqQRHFwz5zWePJELAJYulUtc4+Lk6iUvL3NH\nRtaCiYJs1tMlRQoLK5YUsfbfsrOzy44T9fSUcw8xMcALL5g7MrI2TBREkPMa586VTYaXlhQZNAjo\n29d6SoqUHie6bBlw6BAwerQcPVjIsfVkpRRNFNeuXcPy5cuRlZWFoqIiTYMrV640qEFjMVHQ88rP\nl/MaSUnA3r2WX1JErS47TtTNTY4eYmO5IZGqh6KJokuXLujWrRtCQkI0y2RVKhViYmIMatBYTBRk\niKdLijRpUpY0zFlSpKREzrcsWyaXBr/2mkwQQUHmiYdqLkUTRXBwMI4fP27QzZXAREHGqqykyMCB\nMmmYqqRIfj6wcqUcPTRqJFcujRgBODkp3zbZJkUTxcyZM9GlSxf079/foAaqGxMFVbeMjLKkUVpS\nZNAgoH//6i0pUlIiH4EtWwb88gswbJgcPXTsWH1tEGmjaKJwcnLSnJtdWuNJpVLh7t27BjVoLCYK\nUtKtW3IiOSlJPhIqLSkyaBDg42PY0tsbN4DVq4Evv5SrlSZPBkaNAho0qPbwibTiqiciBTxdUqR2\n7bJ5japKiggBHDgg9z1s2yYTzeTJQOfONXOfB1k+RRLFuXPn4Ovri2PHjlV6YYcOHQxq0FhMFGQO\nQgDHj5cljexsWVIkOrpiSZHbt4Gvv5aPl4SQj5Zef916luZSzaVIopgwYQKWL1+O8PDwSg8w2rt3\nr0ENGouJgixBTo5cPZWUVFZSpGlTuRy3b185eggL4+iBLAcfPRGZUWlJkbw8uby1aVNzR0T0LCYK\nIiLSyZjPTp6US0REOjFREBGRTs91ZpharUZWVhaKi4s1Bxd169ZN6diIiMgCVJkopk+fjvXr18PP\nz6/CmdlMFEREtqHKyWwvLy+cOnUKtWvXNlVMOnEym4hIf4pOZnt4eKCwsNCgmxMRkfWr8tFTnTp1\nEBwcjIiICM2oQqVSYdGiRYoHR0RE5ldlooiOjkZ0dLRmd3bpZDYREdmG59pw9/jxY6SnpwMAfHx8\nNFVkzYFzFERE+jPms7PKEUVKSgri4uLQqlUrAMDly5exZs0adO/e3aAGiYjIulQ5oujQoQPWrVsH\nb29vAEB6ejpee+01rVVllcYRBRGR/hRd9VRUVKRJEoBcLltUVGRQY0REZH2qfPQUEhKC8ePHY/To\n0RBC4Ntvv0VHnt1IRGQzqnz09OjRI3z++ec4ePAgACAsLAxvv/222Tbg8dETEZH+WGaciIh0UmTV\n0/Dhw7FhwwYEBAQ8s29CpVLh5MmTBjVIRETWReuIIjc3F82bN0d2dvYzWUilUmmWy5oaRxRERPpT\nZNVT8+bNAQBLliyBu7t7ha8lS5YYFikREVmdKpfHJicnP/Pa9u3bFQmGiIgsj9Y5ii+++AJLlixB\nRkYGAgMDNa/fu3cPXbt2NUlwRERkflrnKO7cuYPbt29jxowZmD9/vubZlrOzMxo3bmzSIMvjHAUR\nkf4UXR6bnZ1dabXYli1bGtSgsZgoiIj0p2iiKP/Y6dGjR8jMzIS3tzfOnDljUIPGYqIgItKfotVj\nT506VeHPx44dw+eff25QY0REZH0M2pkdEBCA06dPKxFPlTiiICLSn6IjigULFmi+LykpwbFjx9Ci\nRQuDGiMiIutT5T6Ke/fu4f79+7h//z4KCwsxYMAAJCYmPtfNx40bBxcXlwrzHLdu3UJkZCS8vLzQ\nu3dvFBQUaN6bN28e2rZtCx8fn0r3bxARkek996OnO3fuQKVSoX79+s998/3798PJyQmvv/66Zq4j\nPj4eTZo0QXx8PObPn4/bt28jISEBZ8+exciRI3HkyBGo1Wr06tUL6enpsLOrmMv46ImISH+KHlx0\n5MgRBAYGol27dggMDERQUBB+++2357p5WFgYGjVqVOG1pKQkxMXFAQDi4uKwZcsWAEBiYiJGjBgB\nBwcHuLu7w9PTE6mpqfr+9xARUTWrMlGMGzcOS5YsQXZ2NrKzs/H5559j3LhxBjeYn58PFxcXAICL\niwvy8/MByCKEbm5ump9zc3ODWq02uB0iIqoeVU5m29vbIywsTPPnV155Bfb2VV72XFQqVaWb+cq/\nX5nZs2drvg8PD0d4eHi1xENEVFOkpKQgJSWlWu6l9RP/6NGjAIDu3btj0qRJGDFiBABg/fr16N69\nu8ENuri44OrVq3B1dUVeXh6aNWsGAGjRogVycnI0P3flyhWtq6vKJwoiInrW079Ez5kzx+B7aU0U\nU6dO1fxGL4TQNCKE0DkKqEp0dDTWrFmD6dOnY82aNRg8eLDm9ZEjR+K9996DWq3GxYsX0alTJ4Pb\nISKi6qHoUagjRozAvn37cOPGDbi4uODjjz/GoEGDEBsbi8uXL8Pd3R0//PADGjZsCACYO3cuVq5c\nCXt7eyxcuBBRUVHPBsxVT0REelOk1tPatWsxevRoLFiwoMIIonRE8d577xkWrZGYKIiI9KfIzuwH\nDx4AkBvujHnURERE1k3no6fi4mIsXLjQbKOHynBEQUSkP8U23NWqVQvr1q0z6MZERFQzVDmZ/T//\n8z948uQJXn31VdSrV0/zeocOHRQPrjIcURAR6U/Rg4vCw8MrnaPYu3evQQ0ai4mCiEh/iiaKS5cu\noU2bNlW+ZipMFERE+lO0KOCwYcOeeW348OEGNUZERNZH6/LYc+fO4ezZsygoKMCmTZs0+yfu3r2L\nR48emTJGIiIyI62JIj09HVu3bsWdO3ewdetWzevOzs5Yvny5SYIjIiLzq3KO4tChQ+jSpYup4qkS\n5yiIiPSn6BzFpk2bcPfuXTx58gQRERFo0qQJvvnmG4MaIyIi61NlokhOTkb9+vXx008/wd3dHRkZ\nGfj73/9uitiIiMgCVJkoioqKAAA//fQThg0bhgYNGrD2ExGRDanyqLqBAwfCx8cHL7zwAr744gtc\nu3YNL7zwgiliIyIiC/Bc51HcvHkTDRs2RK1atfDgwQPcu3cPrq6upojvGZzMJiLSnyJlxnfv3o2I\niAhs3Lixwkl3pQ0OHTrUoAaJiMi6aE0U//rXvxAREYGtW7dWOifBREFEZBsUPQpVCXz0RESkP0Ue\nPQHA+fPn8eWXX+L8+fMAAD8/P0yYMAHe3t4GNUZERNZH6/LYQ4cOoUePHnB2dsbEiRMxYcIE1K1b\nF+Hh4Th06JApYyQiIjPS+uipT58+mDFjBsLDwyu8vm/fPiQkJGDHjh2miO8ZfPRERKQ/Rc6j8PLy\nQnp6eqUXeXt748KFCwY1aCwmCiIi/SlS68nJyUnrRXXr1jWoMSIisj5aJ7NzcnLw5z//udIMpFar\nFQ2KiIgsh9ZE8fe//73S/RNCCHTs2FHRoIiIyHJwHwURkQ1Q9DwKIiKybUwURESkExMFERHpVGWi\nmDZtGo9CJSKyYTwKlYiIdOJRqEREpBOPQiUiIp2e+yjUBg0awN7enkehEhFZIUX3UWzYsAEODg6w\nt7fHX//6V4wePRq5ubkGNUZERNanykTx8ccfo379+jhw4AB2796NN998E5MnTzZFbEREZAGqTBS1\natUCICezJ0yYgAEDBuDJkyeKB0ZERJahykTRokULTJw4EevXr0f//v3x6NEjlJSUmCI2IiKyAFVO\nZj948AA7d+5EYGAg2rZti7y8PJw6dQq9e/c2VYwVcDKbiEh/ik5m16tXD02bNsWBAwcAAPb29vD0\n9DSoMSIisj5Vjihmz56No0eP4sKFC0hPT4darUZsbCwOHjxoqhgr4IiCiEh/io4oNm/ejMTERNSr\nVw+AnLO4d++eQY0REZH1qTJR1K5dG3Z2ZT/24MEDRQMiIiLLUmWiGD58OCZNmoSCggJ8+eWXiIiI\nwPjx400RGxERWQCdcxRCCOTk5OD8+fNITk4GAERFRSEyMtJkAT6NcxRERPoz5rOzykQRGBiI06dP\nGxxcdWOiICLSn2KT2SqVCiEhIUhNTTXo5kREZP2qXB7r7e2N//znP2jVqpVm5ZNKpcLJkyeNatjd\n3R3169dHrVq14ODggNTUVNy6dQuvvvoqsrOz4e7ujh9++AENGzasGDBHFEREelPs0RMAZGdnP3Nz\nlUqFVq1aGdRgqdatW+Po0aP4wx/+oHktPj4eTZo0QXx8PObPn4/bt28jISHhmbaZKIiI9KPoPoqZ\nM2fC3d29wtfMmTMNauxpTwedlJSEuLg4AEBcXBy2bNlSLe0QEZHhqkwUT09kFxUV4ejRo0Y3rFKp\n0KtXL3Ts2BHLly8HAOTn58PFxQUA4OLigvz8fKPbISIi42g9CnXu3LmYN28efv/9dzg7O2ted3Bw\nwMSJE41u+ODBg3jxxRdx/fp1REZGwsfHp8L7KpVK69ncs2fP1nwfHh6O8PBwo+MhIqpJUlJSkJKS\nUi33qnKOYsaMGc/ME1S3OXPmwMnJCcuXL0dKSgpcXV2Rl5eHHj164Pz58xUD5hwFEZHeFJmjyM7O\nRkFBgSZJ7NmzB3/+85/xj3/8A4WFhYZF+l8PHz7U1It68OABkpOTERgYiOjoaKxZswYAsGbNGgwe\nPNiodoiIyHhaRxSdOnXCli1b0Lx5cxw/fhwRERH48MMPceLECTg6OuKrr74yuNHMzEwMGTIEgJzz\nGDVqFD744APcunULsbGxuHz5MpfHEhFVI0WWx7Zr106zV+L999+HnZ0dPv30U5SUlCAoKAinTp0y\nPGIjMFEQEelPkUdP5W+4e/du9OzZU15gV+VCKSIiqkG0rnrq0aMHhg8fjhdffBEFBQWaRJGbm4va\ntWubLEAiIjIvrY+eSkpKsH79ely9ehWxsbFo0aIFACAtLQ3Xrl1DVFSUSQMtxUdPRET6U7SEh6Vh\noiAi0p+iJTyIiMi2MVEQEZFOWiezyyssLMS5c+dgZ2cHb29vODo6Kh0XERFZiCoTxbZt2zB58mS0\nadMGAHDp0iUsW7YM/fr1Uzw4IiIyv+c6uGjbtm3w9PQEAGRkZKBfv364cOGCSQJ8GieziYj0p+hk\ndv369TVJAgDatGmD+vXrG9QYERFZnypHFJMnT8bly5cRGxsLANiwYQNatmyJyMhIAMDQoUOVj7Ic\njiiIiPSrSn/yAAAL0ElEQVSn6D6KN954Q9MIIEt7lD8nYtWqVQY1bCgmCiIi/XHDHRER6aToHEVO\nTg6GDBmCpk2bomnTpoiJicGVK1cMaoyIiKxPlYli7NixiI6ORm5uLnJzczFw4ECMHTvWFLEREZEF\nqPLRU1BQEE6cOFHla6bCR09ERPpT9NFT48aN8c0336C4uBhFRUVYu3YtmjRpYlBjRERkfaocUWRl\nZWHKlCk4fPgwAOCPf/wjFi9ejJYtW5okwKdxREFEpD+ueiIiIp246omIiBTDVU9ERKQTVz0REdkA\nrnoiIiLFcNUTEZEN4KonIiLSyZjPTq0n3E2ZMkVrAyqVCosWLTKoQSIisi5aE0VISIgmQXz00Uf4\n+OOPNcmifJlxIiKq2Z7r0VP79u2RlpZminiqxEdPRET6U3TVExER2TYmCiIi0knrHIWTk5NmLuL3\n33+Hs7Oz5j2VSoW7d+8qHx0REZkdl8cSEdkAzlEQEZFimCiIiEgnJgoiItKJiYKIiHRioiAiIp2Y\nKIiISCcmCiIi0omJgoiIdGKiICIinZgoiIhIJyYKIiLSiYmCiIh0YqIgIiKdmCiIiEgni0sUP//8\nM3x8fNC2bVvMnz/f3OEQEdk8i0oUxcXF+NOf/oSff/4ZZ8+exbp163Du3Dlzh2WxUlJSzB2CxWBf\nlGFflGFfVA+LShSpqanw9PSEu7s7HBwc8NprryExMdHcYVks/iMow74ow74ow76oHhaVKNRqNV56\n6SXNn93c3KBWq80YERERWVSiKD2jm4iILIiwIIcOHRJRUVGaP8+dO1ckJCRU+BkPDw8BgF/84he/\n+KXHl4eHh8GfzSohDDxtWwFFRUXw9vbG7t270bx5c3Tq1Anr1q2Dr6+vuUMjIrJZ9uYOoDx7e3v8\n85//RFRUFIqLi/Hmm28ySRARmZlFjSiIiMjyWNRkdk5ODnr06AF/f38EBARg0aJFAIBbt24hMjIS\nXl5e6N27NwoKCjTXzJs3D23btoWPjw+Sk5PNFXq109YX06ZNg6+vL4KCgjB06FDcuXNHc42t9UWp\nBQsWwM7ODrdu3dK8Zot9sXjxYvj6+iIgIADTp0/XvG5rfZGamopOnTqhffv2ePnll3HkyBHNNTW1\nLx49eoTQ0FAEBwfDz88PH3zwAYBq/Ow0eHZDAXl5eSItLU0IIcS9e/eEl5eXOHv2rJg2bZqYP3++\nEEKIhIQEMX36dCGEEGfOnBFBQUGisLBQZGZmCg8PD1FcXGy2+KuTtr5ITk7W/DdOnz7dpvtCCCEu\nX74soqKihLu7u7h586YQwjb7Ys+ePaJXr16isLBQCCHEtWvXhBC22Rfdu3cXP//8sxBCiO3bt4vw\n8HAhRM3uCyGEePDggRBCiCdPnojQ0FCxf//+avvstKgRhaurK4KDgwEATk5O8PX1hVqtRlJSEuLi\n4gAAcXFx2LJlCwAgMTERI0aMgIODA9zd3eHp6YnU1FSzxV+dKuuL3NxcREZGws5O/m8LDQ3FlStX\nANhmXwDAe++9h08//bTCz9taX6jVaixduhQffPABHBwcAABNmzYFYJt98eKLL2pG2gUFBWjRogWA\nmt0XAFC3bl0AQGFhIYqLi9GoUaNq++y0qERRXlZWFtLS0hAaGor8/Hy4uLgAAFxcXJCfnw8AyM3N\nhZubm+aamrpBr3xflLdy5Ur069cPgG32RWJiItzc3NCuXbsKP2OLfZGeno5//etf6Ny5M8LDw/Hb\nb78BsL2+6Ny5MxISEjB16lS0bNkS06ZNw7x58wDU/L4oKSlBcHAwXFxcNI/kquuz06JWPZW6f/8+\nYmJisHDhQjg7O1d4T6VS6dyYV9M27d2/fx/Dhg3DwoUL4eTkpHn9k08+gaOjI0aOHKn12prcF3Z2\ndpg7dy5++eUXzftCx7qMmtwXzs7OKCoqwu3bt3H48GEcOXIEsbGxuHTpUqXX1uS+cHJywuDBg7Fo\n0SIMGTIEGzZswLhx4yr8PSmvJvWFnZ0djh8/jjt37iAqKgp79+6t8L4xn50WN6J48uQJYmJiMGbM\nGAwePBiAzIRXr14FAOTl5aFZs2YAgBYtWiAnJ0dz7ZUrVzTDzJqgtC9Gjx6t6QsAWL16NbZv345v\nv/1W85qt9UVGRgaysrIQFBSE1q1b48qVKwgJCUF+fr7N9QUgfyMcOnQoAODll1+GnZ0dbty4YZN9\nkZqaiiFDhgAAhg0bpnmkUtP7olSDBg3Qv39/HD16tPo+OxWfYdFDSUmJGDNmjHj33XcrvD5t2jTN\nDu158+Y9MyHz+PFjcenSJdGmTRtRUlJi8riVoK0vduzYIfz8/MT169crvG6LfVFeZZPZttQXS5cu\nFbNmzRJCCHHhwgXx0ksvCSFssy/at28vUlJShBBC7Nq1S3Ts2FEIUbP74vr16+L27dtCCCEePnwo\nwsLCxK5du6rts9OiEsX+/fuFSqUSQUFBIjg4WAQHB4sdO3aImzdvioiICNG2bVsRGRmp6RAhhPjk\nk0+Eh4eH8Pb21qx0qAkq64vt27cLT09P0bJlS81rb731luYaW+uL8lq3bq1JFELYVl/s2LFDFBYW\nitGjR4uAgADRoUMHsXfvXs01ttQX27dvF0eOHBGdOnUSQUFBonPnzuLYsWOaa2pqX5w8eVK0b99e\nBAUFicDAQPHpp58KIUS1fXZywx0REelkcXMURERkWZgoiIhIJyYKIiLSiYmCiIh0YqIgIiKdmCiI\niEgnJgqyOuVLmSjhs88+w++//17t7W3duhXz58+vlnsRmRL3UZDVcXZ2xr179xS7f+vWrfHbb7+h\ncePGJmmPyNJxREE1QkZGBvr27YuOHTuiW7duuHDhAgDgjTfewDvvvIOuXbvCw8MDGzduBCArbb79\n9tvw9fVF79690b9/f2zcuBGLFy9Gbm4uevTogYiICM39Z86cieDgYHTp0gXXrl17pv13330Xf/3r\nXwEAO3fuRPfu3Z/5mdWrV2PKlCk64yovKysLPj4+GDt2LLy9vTFq1CgkJyeja9eu8PLy0hzIM3v2\nbMTFxaFbt25wd3fHpk2b8P7776Ndu3bo27cvioqKjOxdsnmK7SknUoiTk9Mzr/Xs2VNcvHhRCCHE\n4cOHRc+ePYUQQsTFxYnY2FghhBBnz54Vnp6eQgghNmzYIPr16yeEEOLq1auiUaNGYuPGjUKIinWj\nhBBCpVKJn376SQghRHx8vPjb3/72TPsPHz4U/v7+Ys+ePcLb21tcunTpmZ9ZvXq1+NOf/qQzrvIy\nMzOFvb29OH36tCgpKREhISFi3LhxQgghEhMTxeDBg4UQQnz00UciLCxMFBUViRMnTog6depoSjIM\nGTJEbNmyRUdvElXNIsuME+nj/v37OHToEIYPH655rbCwEIAsnVxaVdTX11dTj//AgQOIjY0FAE39\nfm0cHR3Rv39/AEBISEilJavr1KmD5cuXIywsDAsXLkTr1q11xqwtrqe1bt0a/v7+AAB/f3/06tUL\nABAQEICsrCzNvfr27YtatWohICAAJSUliIqKAgAEBgZqfo7IUEwUZPVKSkrQsGFDpKWlVfq+o6Oj\n5nvx3yk5lUpV4fwKoWOqrvTUOEDW/Nf2KOfkyZNo2rTpcx+GU1lcT6tdu3aFtkuveTqO8q8/b7xE\nz4tzFGT16tevj9atW+PHH38EID90T548qfOarl27YuPGjRBCID8/H/v27dO85+zsjLt37+oVQ3Z2\nNv7xj38gLS0NO3bsqPRYSV3JyBhK3ZeoFBMFWZ2HDx/ipZde0nx99tln+Pbbb7FixQoEBwcjICAA\nSUlJmp8vf3JX6fcxMTFwc3ODn58fxowZgw4dOqBBgwYAgIkTJ6JPnz6ayeynr3/6JDAhBMaPH48F\nCxbA1dUVK1aswPjx4zWPv7Rdq+37p6/R9ufS73XdV9e9iZ4Xl8eSzXrw4AHq1auHmzdvIjQ0FL/+\n+qvmBDAiKsM5CrJZAwYMQEFBAQoLCzFr1iwmCSItOKIgIiKdOEdBREQ6MVEQEZFOTBRERKQTEwUR\nEenEREFERDoxURARkU7/H21GIMqBrUIbAAAAAElFTkSuQmCC\n",
+ "text": [
+ "<matplotlib.figure.Figure at 0x55be650>"
+ ]
+ },
+ {
+ "metadata": {},
+ "output_type": "display_data",
+ "png": "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\n",
+ "text": [
+ "<matplotlib.figure.Figure at 0x55af7b0>"
+ ]
+ }
+ ],
+ "prompt_number": 3
+ },
+ {
+ "cell_type": "heading",
+ "level": 1,
+ "metadata": {},
+ "source": [
+ "Example 8.8.16,Page No.348"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "import numpy as np\n",
+ "\n",
+ "#Initilization of Variables\n",
+ "\n",
+ "do=200 #mm #Inner Diameter\n",
+ "r_o=100 #mm #Inner radius\n",
+ "d1=300 #mm #outer diameter\n",
+ "r1=150 #mm #Outer radius\n",
+ "d2=250 #mm #Junction Diameter\n",
+ "r2=125 #mm #Junction radius\n",
+ "E=2*10**5 #N/mm**2 #Modulus of Elasticity\n",
+ "p=30 #N/mm**2 #radial pressure\n",
+ "\n",
+ "#Calculations\n",
+ "\n",
+ "#from Lame's Equation we get\n",
+ "#p_x=b*(x**2)**-1-a ..........................(1)\n",
+ "#F_x=b*(x**2)**-1+a ...........................(2)\n",
+ "\n",
+ "#Then from Boundary condition \n",
+ "#p_x=0 at x=100 #mm\n",
+ "#0=b1*(100**2)**-1-a1 .....................(3)\n",
+ "\n",
+ "#p_x2=30 #N/mm**2 at x2=125 #mm\n",
+ "#30=b1*(125**2)**-1-a1 ................................(4)\n",
+ "\n",
+ "#From equation 3 and 4 we get\n",
+ "b1=30*125**2*100**2*(100**2-125**2)**-1\n",
+ "\n",
+ "#From Equation 3 we get\n",
+ "a1=b1*(100**2)**-1\n",
+ "\n",
+ "#therefore Hoop stress in inner cyclinder at junction\n",
+ "F_2_1=b1*(125**2)**-1+a1 #N/mm**2\n",
+ "\n",
+ "#Outer Cyclinder\n",
+ "#p_x=b*(x**2)**-1-a ..........................(5)\n",
+ "#F_x=b*(x**2)**-1+a ...........................(6)\n",
+ "\n",
+ "#Now at x=125 #mm\n",
+ "#p_x3=30 #N/mm**2\n",
+ "#30=b2*(125**2)**-1-a2 ..................................(7)\n",
+ "\n",
+ "#At x=150 #mm\n",
+ "#p_x4=0\n",
+ "#0=b2*(150**2)**-1-a2 ...................................(8)\n",
+ "\n",
+ "#From equations 7 and 8\n",
+ "b2=30*150**2*125**2*(150**2-125**2)**-1\n",
+ "\n",
+ "#From eqauation 8 we get\n",
+ "a2=b2*(150**2)**-1\n",
+ "\n",
+ "#Hoop stress at junction \n",
+ "F_2_0=b2*(125**2)**-1+a2 #N/mm**2\n",
+ "\n",
+ "rho_r=(F_2_0-F_2_1)*E**-1*r2\n",
+ "\n",
+ "#Result\n",
+ "print\"Shrinkage Allowance is\",round(rho_r,3),\"mm\""
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Shrinkage Allowance is 0.189 mm\n"
+ ]
+ }
+ ],
+ "prompt_number": 40
+ },
+ {
+ "cell_type": "heading",
+ "level": 1,
+ "metadata": {},
+ "source": [
+ "Example 8.8.17,Page No.350"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "import numpy as np\n",
+ "\n",
+ "#Initilization of Variables\n",
+ "\n",
+ "d_o=500 #mm #Outer Diameter\n",
+ "r_o=250 #mm #Outer Radius\n",
+ "d1=300 #mm #Inner Diameter\n",
+ "r1=150 #mm #Inner Radius\n",
+ "d2=400 #mm #Junction Diameter\n",
+ "E=2*10**5 #N/mm**2 #Modulus ofElasticity\n",
+ "alpha=12*10**-6 #Per degree celsius\n",
+ "dell_d=0.2 #mm\n",
+ "dell_r=0.1 #mm\n",
+ "\n",
+ "#Calculations\n",
+ "\n",
+ "#Let p be the radial pressure developed at junction\n",
+ "#Let Lame's Equation for internal cyclinder be\n",
+ "#p_x=b*(x**2)**-1-a ................................(1)\n",
+ "#F_x=b*(x**2)**-1+a ...............................(2)\n",
+ "\n",
+ "#At \n",
+ "x=150 #mm \n",
+ "p_x=0\n",
+ "#Sub in equation 1 we get\n",
+ "#0=b*(150**2)**-1-a .........................(3)\n",
+ "\n",
+ "#At \n",
+ "x2=200 #mm\n",
+ "#p_x2=p\n",
+ "#p=b*(200**2)**-1-a ......................(4)\n",
+ " \n",
+ "#From Equation 3 and 4\n",
+ "#p=b*(200**2)**-1-b(150**2)**-1\n",
+ "#after further simplifying we get\n",
+ "#b=-51428.571*p\n",
+ "\n",
+ "#sub in equation 3 we get\n",
+ "#a1=-2.2857*p\n",
+ "\n",
+ "#therefore hoop stress at junction is\n",
+ "#F_2_1=-21428.571*p*(200**2)**-1-2.2857*p\n",
+ "#after Further simplifying we geet\n",
+ "#F_2_1=3.5714*p\n",
+ "\n",
+ "#Let Lame's Equation for cyclinder be \n",
+ "#p_x=b*(x**2)**-1-a .........................5\n",
+ "#F_x=b*(x**2)**-1+a .............................6\n",
+ "\n",
+ "#At \n",
+ "x=200 #mm\n",
+ "#p_x=p2\n",
+ "#p2=b2*(20**2)**-1-a2 ...................7\n",
+ "\n",
+ "#At\n",
+ "x2=200 #mm\n",
+ "p_x2=0\n",
+ "#0=b2*(250**2)**-1-a2 ....................8\n",
+ "\n",
+ "#from equation 7 and 8 we get\n",
+ "#p2=b2*(200**2)**-1-b2*(250**2)**-1\n",
+ "#After further simplifying we get\n",
+ "#p2=b2*(250**2-200**2)*(200**2*250**2)**-1\n",
+ "#b2=111111.11*p\n",
+ "\n",
+ "#from equation 7\n",
+ "#a2=b2*(250**2)**-1\n",
+ "#further simplifying we get\n",
+ "#a2=1.778*p\n",
+ "\n",
+ "#At the junctionhoop stress in outer cyclinder \n",
+ "#F_2_0=b2*(200**2)**-1+a2\n",
+ "#After further simplifying we get\n",
+ "#F_2_0=4.5556*p\n",
+ "\n",
+ "#Considering circumferential strain,the compatibility condition\n",
+ "#rho_r*r2**-1=1*E**-1*(F_2_1+F_2_0)\n",
+ "#where F_2_1 is compressive and F_2_0 is tensile\n",
+ "#furter simplifying we get\n",
+ "p=0.1*200**-1*2*10**5*(3.5714+4.5556)**-1\n",
+ "\n",
+ "#Let T be the rise in temperature required\n",
+ "#dell_d=d*alpha*T\n",
+ "#After sub values and further simplifying we get\n",
+ "d=250 #mm\n",
+ "T=dell_d*(d*alpha)**-1 #Per degree celsius\n",
+ "\n",
+ "#Result\n",
+ "print\"Radial Pressure Developed at junction\",round(p,2),\"N/mm**2\"\n",
+ "print\"Min Temperatureto outer cyclinder\",round(T,2),\"Per degree Celsius\""
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Radial Pressure Developed at junction 12.3 N/mm**2\n",
+ "Min Temperatureto outer cyclinder 66.67 Per degree Celsius\n"
+ ]
+ }
+ ],
+ "prompt_number": 13
+ },
+ {
+ "cell_type": "heading",
+ "level": 1,
+ "metadata": {},
+ "source": [
+ "Example 8.8.18,Page No.355"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "import numpy as np\n",
+ "%matplotlib inline\n",
+ "\n",
+ "#Initilization of Variables\n",
+ "\n",
+ "d_o=400 #mm #Outer Diameter\n",
+ "r_o=200 #mm #Outer radius\n",
+ "t=50 #mm #Thickness\n",
+ "r1=150 #mm #Internal Radius\n",
+ "p=50 #N/mm**2 #Internal Pressure\n",
+ "\n",
+ "#Calculations\n",
+ "\n",
+ "#The Radial Pressure and hoop stress at any radial distance x are given by\n",
+ "#p_x=b*(x**2)**-1-a ..........................(1)\n",
+ "#F_x=b*(x**2)**-1+a ...........................(2)\n",
+ "\n",
+ "#Now at\n",
+ "x=150 #N/mm**2\n",
+ "p_x1=50 #N/mm**2\n",
+ "#Sub in equation 1 we get\n",
+ "#50=2*b*(150**3)**-1-a ...........................(3)\n",
+ "\n",
+ "#At x=200 #mm\n",
+ "p_x2=0\n",
+ "#0=2*b*(200**2)**-1-a ....................(4)\n",
+ "\n",
+ "#From equation 3 and 4 we get\n",
+ "#50=2*b*(150**3)**-1-2*b*(200**3)**-1\n",
+ "#After further simplifying we get\n",
+ "b=50*150**3*200**3*(200**3-150**3)**-1*2**-1\n",
+ "\n",
+ "#Sub in equation 3 we get\n",
+ "a=b*(200**3)**-1\n",
+ "\n",
+ "#Now At\n",
+ "x=150 #mm\n",
+ "F_x=b*(x**3)**-1+a\n",
+ "\n",
+ "#Now At\n",
+ "x2=160 #mm\n",
+ "F_x2=b*(x2**3)**-1+a\n",
+ "\n",
+ "#Now At\n",
+ "x3=170 #mm\n",
+ "F_x3=b*(x3**3)**-1+a\n",
+ "\n",
+ "#Now At\n",
+ "x4=180 #mm\n",
+ "F_x4=b*(x4**3)**-1+a\n",
+ "\n",
+ "#Now At\n",
+ "x5=190 #mm\n",
+ "F_x5=b*(x5**3)**-1+a\n",
+ "\n",
+ "#Now At\n",
+ "x6=200 #mm\n",
+ "F_x6=b*(x6**3)**-1+a\n",
+ "\n",
+ "#Result\n",
+ "print\"Plot of Variation of hoop stress\"\n",
+ "\n",
+ "#Plotting Variation of hoop stress\n",
+ "\n",
+ "X1=[x,x2,x3,x4,x5,x6]\n",
+ "Y1=[F_x,F_x2,F_x3,F_x4,F_x5,F_x6]\n",
+ "Z1=[0,0,0,0,0,0]\n",
+ "plt.plot(X1,Y1,X1,Z1)\n",
+ "plt.xlabel(\"Length x in mm\")\n",
+ "plt.ylabel(\"Hoop Stress Distribution in N/mm**2\")\n",
+ "plt.show()\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Plot of Variation of hoop stress\n"
+ ]
+ },
+ {
+ "metadata": {},
+ "output_type": "display_data",
+ "png": "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\nBgIREQEA/h+bezx5xlsz+QAAAABJRU5ErkJggg==\n",
+ "text": [
+ "<matplotlib.figure.Figure at 0x5795290>"
+ ]
+ }
+ ],
+ "prompt_number": 4
+ }
+ ],
+ "metadata": {}
+ }
+ ]
+}
\ No newline at end of file diff --git a/Strength_Of_Materials_by_S_S_Bhavikatti/chapter_no.9_hAFUtkV.ipynb b/Strength_Of_Materials_by_S_S_Bhavikatti/chapter_no.9_hAFUtkV.ipynb new file mode 100644 index 00000000..cecacb12 --- /dev/null +++ b/Strength_Of_Materials_by_S_S_Bhavikatti/chapter_no.9_hAFUtkV.ipynb @@ -0,0 +1,779 @@ +{
+ "metadata": {
+ "name": "chapter no.9.ipynb"
+ },
+ "nbformat": 3,
+ "nbformat_minor": 0,
+ "worksheets": [
+ {
+ "cells": [
+ {
+ "cell_type": "heading",
+ "level": 1,
+ "metadata": {},
+ "source": [
+ "Chapter 9:Columns And Struts"
+ ]
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 9.9.1,Page No.377"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "import numpy as np\n",
+ "\n",
+ "#Initilization of Variables\n",
+ "L=5000 #mm #Length of strut\n",
+ "dell=10 #mm #Deflection\n",
+ "W=10 #N #Load\n",
+ "\n",
+ "#Calculations\n",
+ "\n",
+ "#Central Deflection of a simply supported beam with central concentrated load is\n",
+ "#dell=W*L**3*(48*E*I)**-1 \n",
+ "\n",
+ "#Let E*I=X\n",
+ "X=W*L**3*(48*dell)**-1 #mm\n",
+ "\n",
+ "#Euler's Load\n",
+ "#Let Euler's Load be P\n",
+ "P=pi**2*X*(L**2)**-1\n",
+ "\n",
+ "#Result\n",
+ "print\"Critical Load of Bar is\",round(P,2),\"N\""
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Critical Load of Bar is 1028.08 N\n"
+ ]
+ }
+ ],
+ "prompt_number": 2
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 9.9.2,Page No.377"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "import numpy as np\n",
+ "\n",
+ "#Initilization of Variables\n",
+ "\n",
+ "L=2000 #mm #Length of square column\n",
+ "E=12*10**3 #N/mm**2 #Modulus of Elasticity\n",
+ "sigma=12 #N/mm*2 #stress\n",
+ "W1=95*10**3 #N #Load1\n",
+ "W2=200*10**3 #N #Load2\n",
+ "FOS=3\n",
+ "\n",
+ "#Calculations\n",
+ "\n",
+ "#From Euler's Formula\n",
+ "#P=pi**2*E*I*(L**2)**-1 .........(1)\n",
+ "\n",
+ "#Working Load\n",
+ "#W=P*(FOS)**-1\n",
+ "\n",
+ "#Part-1\n",
+ "\n",
+ "#At W1=95*10**3 #N\n",
+ "#W1=P*(3*L**2)**-1\n",
+ "\n",
+ "#Let 'a' be the side of the square\n",
+ "#I=1*12**-1*a**4\n",
+ "\n",
+ "#sub value of I in Equation 1 and further rearranging we get\n",
+ "a=(W1*3*12*L**2*(pi**2*E)**-1)**0.25 #mm\n",
+ "\n",
+ "#From Consideration of direct crushing\n",
+ "#sigma*a**2=W1\n",
+ "#After Reaaranging the above equation we get\n",
+ "a2=(W1*(sigma)**-1)**0.5 #mm\n",
+ "\n",
+ "#required size is 103.67*103.67 i.e a*a\n",
+ "\n",
+ "#Part-2\n",
+ "\n",
+ "#At W2=200*10**3 #N\n",
+ "#W2=P*(3*L**2)**-1\n",
+ "#After substituting values and further Rearranging the above equation we get\n",
+ "a3=(W2*3*12*L**2*(pi**2*E)**-1)**0.25 #mm\n",
+ "\n",
+ "#From consideration of direct compression,size required is\n",
+ "a4=(W2*sigma**-1)**0.5\n",
+ "\n",
+ "#required size is 129.10*129.10 i.e a4*a4\n",
+ "\n",
+ "#Result\n",
+ "print\"For W1 Load Required size is\",round(a*a,2),\"mm**2\"\n",
+ "print\"For W2 Load Required size is\",round(a4*a4,2),\"mm**2\""
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "For W1 Load Required size is 10747.38 mm**2\n",
+ "For W1 Load Required size is 16666.67 mm**2\n"
+ ]
+ }
+ ],
+ "prompt_number": 16
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 9.9.3,Page No.378"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "import numpy as np\n",
+ "\n",
+ "#Initilization of Variables\n",
+ "\n",
+ "#Flange \n",
+ "b=100 #mm #Width\n",
+ "\n",
+ "D=80 #mm #Overall Depth\n",
+ "t=10 #mm #Thickness of web and flanges\n",
+ "L=3000 #mm #Length of strut\n",
+ "E=200*10**3 #N/mm**2 #Modulus of Elasticity\n",
+ "\n",
+ "#Calculations\n",
+ "\n",
+ "#Let centroid be at depth y_bar from top fibre\n",
+ "y_bar=(b*t*t*2**-1+(D-t)*t*((D-t)*2**-1+t))*(b*t+(D-t)*t)**-1 #mm \n",
+ "\n",
+ "#M.I at x-x axis\n",
+ "I_x=1*12**-1*b*t**3+b*t*(y_bar-t*2**-1)**2+1*12**-1*t*((D-t))**3+t*((D-t))*((((D-t)*2**-1)+t)-y_bar)**2\n",
+ "\n",
+ "#M.I at y-y axis\n",
+ "I_y=1*12**-1*t*b**3+1*12**-1*(D-t)*t**3 #mm**3\n",
+ "\n",
+ "#Least M.I\n",
+ "I=I_y\n",
+ "\n",
+ "#Since both ends are hinged\n",
+ "#Feective Length=Actual Length\n",
+ "L=l=3000 #mm\n",
+ "\n",
+ "#Buckling Load \n",
+ "P=pi**2*E*I*(l**2)**-1*10**-3 #KN\n",
+ "\n",
+ "#Result\n",
+ "print\"The Buckling Load for strut of tee section\",round(P,2),\"KN\""
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "The Buckling Load for strut of tee section 184.05 KN\n"
+ ]
+ }
+ ],
+ "prompt_number": 10
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 9.9.4,Page No.379"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "import numpy as np\n",
+ "\n",
+ "#Initilization of Variables\n",
+ "\n",
+ "D=400 #mm #Overall Depth\n",
+ "\n",
+ "#Flanges\n",
+ "b=300 #mm #Width\n",
+ "t=50 #mm #Thickness\n",
+ "\n",
+ "t2=30 #mm #Web Thickness\n",
+ "\n",
+ "dell=10 #mm #Deflection\n",
+ "w=40 #N/mm #Load\n",
+ "FOS=1.75 #Factor of safety\n",
+ "E=2*10**5 #N/mm**2\n",
+ "\n",
+ "#Calculations\n",
+ "\n",
+ "#M.I at x-x axis\n",
+ "I_x=1*12**-1*(b*D**3-(b-t2)*b**3) #mm**4\n",
+ "\n",
+ "#Central Deflection\n",
+ "#dell=5*w*L**4*(384*E*I)**-1\n",
+ "#After sub values in above equation and further simplifying we get\n",
+ "L=(dell*384*E*I_x*(5*w)**-1)**0.25\n",
+ "\n",
+ "#M.I aty-y axis\n",
+ "I=I_y=1*12**-1*t*b**3+1*12**-1*b*t2**3+1*12**-1*t*b**3 #mm**4\n",
+ "\n",
+ "#Both the Ends of column are hinged\n",
+ "\n",
+ "#Crippling Load\n",
+ "P=pi**2*E*I*(L**2)**-1 #N\n",
+ "\n",
+ "#Safe Load\n",
+ "S=P*(FOS)**-1*10**-3 #N\n",
+ "\n",
+ "#Result\n",
+ "print\"Safe Load if I-section is used as column with both Ends hhinged\",round(S,2),\"KN\""
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Safe Load if I-section is used as column with both Ends hhinged 4123.29 KN\n"
+ ]
+ }
+ ],
+ "prompt_number": 19
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 9.9.5,Page No.381"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "import numpy as np\n",
+ "\n",
+ "#Initilization of Variables\n",
+ "\n",
+ "D=200 #mm #External Diameter\n",
+ "t=20 #mm #hickness\n",
+ "d=200-2*t #mm #Internal Diameter\n",
+ "E=1*10**5 #N/mm**2\n",
+ "a=1*(1600)**-1 #Rankine's Constant\n",
+ "L=4.5 #m #Length\n",
+ "sigma=550 #N/mm**2 #Stress\n",
+ "FOS=2.5\n",
+ "\n",
+ "#Calculations\n",
+ "\n",
+ "#Moment of Inertia\n",
+ "I=pi*D**4*64**-1-pi*d**4*64**-1\n",
+ "\n",
+ "#Both Ends are fixed\n",
+ "\n",
+ "#Effective Length\n",
+ "l=1*2**-1*L*10**3 #mm\n",
+ "\n",
+ "#Euler's Critical Load\n",
+ "P_E=pi**2*E*I*(l**2)**-1\n",
+ "\n",
+ "A=pi*4**-1*(D**2-d**2) #mm*2\n",
+ "\n",
+ "k=(I*A**-1)**0.5\n",
+ "\n",
+ "#Rankine's Critical Load\n",
+ "P_R=sigma*A*(1+a*(l*k**-1)**2)**-1\n",
+ "\n",
+ "X=P_E*P_R**-1 \n",
+ "\n",
+ "#Safe Load using Rankine's Formula\n",
+ "S=P_R*(FOS)**-1*10**-3 #KN\n",
+ "\n",
+ "#Result\n",
+ "print\"Safe Load by Rankine's Formula is\",round(S,2),\"KN\""
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Safe Load by Rankine's Formula is 1404.36 KN\n"
+ ]
+ }
+ ],
+ "prompt_number": 39
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 9.9.6,Page No.382"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "import numpy as np\n",
+ "\n",
+ "#Initilization of Variables\n",
+ "\n",
+ "L=3000 #mm #Length of column\n",
+ "W=800*10**3 #N #Load\n",
+ "a=1*1600**-1 #Rankine's constant\n",
+ "FOS=4 #Factor of safety\n",
+ "sigma=550 #N/mm**2 #stress\n",
+ "\n",
+ "#Calculations\n",
+ "\n",
+ "#Effective Length\n",
+ "l=L*2**-1 #mm \n",
+ "\n",
+ "#Let d1=outer diameter & d2=inner diameter\n",
+ "#d1=5*8**-1*d2\n",
+ "\n",
+ "#M.I\n",
+ "#I=pi*64**-1*(d1**4-d2**4) #mm**4\n",
+ "\n",
+ "#Area of section\n",
+ "#A=pi4**-1*(d1**2-d2**2) #mm**2\n",
+ "\n",
+ "#k=(I*A**-1) \n",
+ "#substituting values in above equation \n",
+ "#k=1*16**-1*(d1**2-d2**2)\n",
+ "#after simplifying further we get\n",
+ "#k=0.2948119.d1\n",
+ "\n",
+ "#X=l*k**-1\n",
+ "#substituting values in above equation and after simplifying further we get\n",
+ "#X=5087.9898*d1**-1\n",
+ "\n",
+ "#Crtitcal Load\n",
+ "P=W*FOS #N\n",
+ "\n",
+ "#From Rankine's Load\n",
+ "#P2=sigma*A*(1+a*(X)**2)**-1\n",
+ "#substituting values in above equation and after simplifying further we get\n",
+ "#d1**4-12156618*d1**4-1.96691*10**8=0\n",
+ "#Solving Quadratic Equation we get\n",
+ "#d1**2-12156618*d1-196691000=0\n",
+ "a=1\n",
+ "b=-12156.618\n",
+ "c=-196691000\n",
+ "\n",
+ "Y=b**2-4*a*c\n",
+ "\n",
+ "d1_1=((-b+Y**0.5)*(2*a)**-1)**0.5 #mm\n",
+ "d1_2=((-b-Y**0.5)*(2*a)**-1) #mm\n",
+ "\n",
+ "d2=5*8**-1*d1_1\n",
+ "\n",
+ "#Result\n",
+ "print\"Section of cast iron hollow cylindrical column is:d1_1\",round(d1_1,2),\"mm\"\n",
+ "print\" :d2 \",round(d2,2),\"mm\""
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Section of cast iron hollow cylindrical column is:d1_1 146.16 mm\n",
+ " :d2 91.35 mm\n"
+ ]
+ }
+ ],
+ "prompt_number": 25
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 9.9.7,Page No.383"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "import numpy as np\n",
+ "\n",
+ "#Initilization of Variables\n",
+ "\n",
+ "#Let X=(P*A**-1) #Average Stress at Failure \n",
+ "Lamda_1=70 #Slenderness Ratio\n",
+ "Lamda_2=170 #Slenderness Ratio\n",
+ "X1=200 #N/mm**2 \n",
+ "X2=69 #N/mm**2 \n",
+ "\n",
+ "#Rectangular section\n",
+ "b=60 #mm #width\n",
+ "t=20 #mm #Thickness\n",
+ "\n",
+ "L=1250 #mm #Length of strut\n",
+ "FOS=4 #Factor of safety\n",
+ "\n",
+ "#Calculations\n",
+ "\n",
+ "#Slenderness ratio\n",
+ "#Lamda=L*k**-1\n",
+ "\n",
+ "#The Rankine's Formula for strut\n",
+ "#P=sigma*A*(1+a*(L*k**-1)**-1\n",
+ "\n",
+ "#From test result 1,\n",
+ "#After sub values in above equation we get and further simplifying we get\n",
+ "#sigma_1=200+980000*a ...................(1)\n",
+ "\n",
+ "#From test result 2,\n",
+ "#After sub values in above equation we get and further simplifying we get\n",
+ "#sigma_2=69+1994100*a ...................(2)\n",
+ "\n",
+ "#Substituting it in equation (1) we get\n",
+ "a=131*1014100**-1 \n",
+ "\n",
+ "#Substituting a in equation 1\n",
+ "sigma_1=200+980000*a #N/mm**2\n",
+ "\n",
+ "#Effective Length \n",
+ "l=1*2**-1*L #mm\n",
+ "\n",
+ "#Least of M.I\n",
+ "I=1*12**-1*b*t**3 #mm**4\n",
+ "\n",
+ "#Area \n",
+ "A=b*t #mm**2 \n",
+ "\n",
+ "k=(I*A**-1)**0.5\n",
+ "\n",
+ "#Slenderness ratio\n",
+ "Lamda=l*k**-1\n",
+ "\n",
+ "#From Rankine's Ratio\n",
+ "P=sigma_1*A*(1+a*(Lamda)**2)**-1\n",
+ "\n",
+ "#Safe Load\n",
+ "S=P*(FOS)**-1*10**-3 #N\n",
+ "\n",
+ "#Result\n",
+ "print\"Constant in the Formula is:a \",round(a,6)\n",
+ "print\" :sigma_1\",round(sigma_1,2)\n",
+ "print\"Safe Load is\",round(S,2),\"KN\""
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Constant in the Formula is:a 0.000129\n",
+ " :sigma_1 326.6\n",
+ "Safe Load is 38.98 KN\n"
+ ]
+ }
+ ],
+ "prompt_number": 38
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 9.9.8,Page No.385"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "import numpy as np\n",
+ "\n",
+ "#Initilization of Variables\n",
+ "\n",
+ "D=200 #mm #Depth\n",
+ "b=140 #mm #width\n",
+ "\n",
+ "#Plate\n",
+ "b2=160 #mm #Width\n",
+ "t2=10 #mm #Thickness\n",
+ "\n",
+ "L=l=4000 #mm #Length\n",
+ "FOS=4 #Factor of safety\n",
+ "sigma=315 #N/mm**2 #stress\n",
+ "a2=1*7500**-1 \n",
+ "I_xx=26.245*10**6 #mm**4 #M.I at x-x\n",
+ "I_yy=3.288*10**6 #mm**4 #M.I at y-y\n",
+ "a=3671 #mm**2 #Area\n",
+ "k_x=84.6#mm\n",
+ "k_y=29.9 #mm\n",
+ "\n",
+ "#Calculations\n",
+ "\n",
+ "#Total Area\n",
+ "A=a+2*t2*b2 #mm**2\n",
+ "\n",
+ "#M.I\n",
+ "I=I_yy+2*12**-1*t2*b2**3 #mm**4\n",
+ "\n",
+ "k=(I*A**-1)**0.5 #mm\n",
+ "\n",
+ "#Let X=L*k**-1\n",
+ "X=L*k**-1\n",
+ "\n",
+ "#Appliying Rankine's Formula\n",
+ "P=sigma*A*(1+a2*(X)**2)**-1 #N\n",
+ "\n",
+ "#Safe Load\n",
+ "S=P*(FOS)**-1*10**-3 #KN\n",
+ "\n",
+ "#Result\n",
+ "print\"Safe axial Load is\",round(S,2),\"KN\""
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Safe axial Load is 220.93 KN\n"
+ ]
+ }
+ ],
+ "prompt_number": 48
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 9.9.9,Page No.389"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "import numpy as np\n",
+ "\n",
+ "#Initilization of Variables\n",
+ "\n",
+ "E=200*10**3 #N/mm**2 #Modulus of elasticity\n",
+ "sigma=330 #N/mm**2 #Stress\n",
+ "a=1*7500**-1 #Rankine's constant\n",
+ "A=5205 #mm**2 #area of column\n",
+ "I_xx=59.431*10**6 #mm**4 #M.I at x-x axis\n",
+ "I_yy=8.575*10**6 #mm**24#M.I at y-y axis\n",
+ "\n",
+ "#Calculations\n",
+ "\n",
+ "#Total M.I\n",
+ "I=I_xx+I_yy #mm**4\n",
+ "\n",
+ "#Area of compound Section \n",
+ "A2=2*A #mm**2\n",
+ "\n",
+ "k=(I*A2**-1)**0.5 #mm\n",
+ "\n",
+ "#Equating Euler's Load to Rankine's Load we get\n",
+ "#pi**2*E*I*(L**2)**-1=sigma*A*(1+a*(L*k)**2)**-1\n",
+ "#After Substitt=uting values and further simplifying we get\n",
+ "L=(39076198*(1-0.7975432)**-1)**0.5*10**-3 #m\n",
+ "\n",
+ "#Result\n",
+ "print\"Length of column for which Rankine's formula and Euler's Formula give the same result is\",round(L,2),\"m\""
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Length of column for which Rankine's formula and Euler's Formula give the same result is 13.89 m\n"
+ ]
+ }
+ ],
+ "prompt_number": 47
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 9.9.10,Page No.387"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "import numpy as np\n",
+ "\n",
+ "#Initilization of Variables\n",
+ "\n",
+ "sigma=326 #N/mm**2 #stress\n",
+ "E=2*10**5 #N/mm**2 #Modulus of Elasticity\n",
+ "FOS=2 #Factor of safety\n",
+ "a=1*7500**-1 #Rankine's constant\n",
+ "D=350 #mm #Overall Depth \n",
+ "\n",
+ "#Cover plates\n",
+ "b1=500 #mm #width\n",
+ "t1=10 #mm #Thickness\n",
+ "\n",
+ "d=220 #mm #Distance between two channels\n",
+ "\n",
+ "L=6000 #mm #Length of column\n",
+ "\n",
+ "A=5366 #mm**2 #Area of Column section \n",
+ "I_xx=100.08*10**6 #mm**4 #M.I of x-x axis\n",
+ "I_yy=4.306*10**6 #mm**4 #M.I of y-y axis\n",
+ "C_yy=23.6 #mm #Centroid at y-y axis\n",
+ "\n",
+ "#Calculations\n",
+ "\n",
+ "#Symmetric axes are the centroidal axes is\n",
+ "\n",
+ "#M.I of Channel at x-x axis\n",
+ "I_xx_1=2*I_xx+2*(1*12**-1*b1*t1**3+b1*t1*(D*2**-1+t1*2**-1)**2)\n",
+ "\n",
+ "#M.I of Channel at y-y axis\n",
+ "I_yy_1=2*(I_yy+A*(d*2**-1+C_yy)**2)+2*12**-1*t1*b1**3\n",
+ "\n",
+ "#As I_yy<I_xx\n",
+ "#So\n",
+ "I=I_yy_1 #mm**4 \n",
+ "\n",
+ "A2=2*A+2*t1*b1 #Area of channel\n",
+ "\n",
+ "k=(I*A2**-1)**0.5 #mm\n",
+ "\n",
+ "#Critical Load\n",
+ "P=sigma*A2*(1+a*(L*k**-1)**2)**-1 \n",
+ "\n",
+ "#Safe Load\n",
+ "S=P*2**-1*10**-3 #KN\n",
+ "\n",
+ "#Result\n",
+ "print\"Safe Load carrying Capacity is\",round(S,2),\"KN\""
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Safe Load carrying Capacity is 2717.35 KN\n"
+ ]
+ }
+ ],
+ "prompt_number": 67
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 9.9.11,Page No.390"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "import numpy as np\n",
+ "\n",
+ "#Initilization of Variables\n",
+ "\n",
+ "I=4.085*10**8 #mm**4 #M.I\n",
+ "A=20732.0 #mm**2 #area of column\n",
+ "f_y=250 #N/mm**2 \n",
+ "L=6000 #mm #Length of column\n",
+ "\n",
+ "#Calculations\n",
+ "\n",
+ "k=(I*A**-1)**0.5 #mm\n",
+ "lamda=L*k**-1 #Slenderness ratro\n",
+ "\n",
+ "#From Indian standard table\n",
+ "lamda_1=40 \n",
+ "sigma_a_c_1=139 #N/mm**2\n",
+ "lamda_2=50 \n",
+ "sigma_a_c_2=132 #N/mm**2 \n",
+ "\n",
+ "#Linearly interpolating between these values for lambda=42.744\n",
+ "\n",
+ "sigma_a_c_3=sigma_a_c_1-2.744*10**-1*(sigma_a_c_1-sigma_a_c_2)\n",
+ "\n",
+ "#Safe Load carrying capacity of column\n",
+ "P=sigma_a_c_3*A*10**-3\n",
+ "\n",
+ "#Result\n",
+ "print\"Safe Load carrying capacity is\",round(P,2),\"KN\""
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Safe Load carrying capacity is 2841.93 KN\n"
+ ]
+ }
+ ],
+ "prompt_number": 6
+ }
+ ],
+ "metadata": {}
+ }
+ ]
+}
\ No newline at end of file diff --git a/Strength_Of_Materials_by_S_S_Bhavikatti/screenshots/BMD_tqVqRIl.JPG b/Strength_Of_Materials_by_S_S_Bhavikatti/screenshots/BMD_tqVqRIl.JPG Binary files differnew file mode 100644 index 00000000..c8b25ae0 --- /dev/null +++ b/Strength_Of_Materials_by_S_S_Bhavikatti/screenshots/BMD_tqVqRIl.JPG diff --git a/Strength_Of_Materials_by_S_S_Bhavikatti/screenshots/SFD2_lmhWgCg.JPG b/Strength_Of_Materials_by_S_S_Bhavikatti/screenshots/SFD2_lmhWgCg.JPG Binary files differnew file mode 100644 index 00000000..2403777e --- /dev/null +++ b/Strength_Of_Materials_by_S_S_Bhavikatti/screenshots/SFD2_lmhWgCg.JPG diff --git a/Strength_Of_Materials_by_S_S_Bhavikatti/screenshots/S_F_D_1_PXUHXWr.JPG b/Strength_Of_Materials_by_S_S_Bhavikatti/screenshots/S_F_D_1_PXUHXWr.JPG Binary files differnew file mode 100644 index 00000000..5d05794a --- /dev/null +++ b/Strength_Of_Materials_by_S_S_Bhavikatti/screenshots/S_F_D_1_PXUHXWr.JPG diff --git a/sample_notebooks/Mayur Phadtare/chapter_no.3.ipynb b/sample_notebooks/Mayur Phadtare/chapter_no.3.ipynb new file mode 100644 index 00000000..7cace9d2 --- /dev/null +++ b/sample_notebooks/Mayur Phadtare/chapter_no.3.ipynb @@ -0,0 +1,589 @@ +{
+ "metadata": {
+ "name": "chapter no.3.ipynb"
+ },
+ "nbformat": 3,
+ "nbformat_minor": 0,
+ "worksheets": [
+ {
+ "cells": [
+ {
+ "cell_type": "heading",
+ "level": 1,
+ "metadata": {},
+ "source": [
+ "Chapter 3:Coplanar Parallel forces"
+ ]
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 3.1,Page No.48"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "\n",
+ "#Declaration Of Variables\n",
+ "\n",
+ "#Lengths\n",
+ "L_AB=L_BC=L_CD=L_DA=2 #m\n",
+ "\n",
+ "#Loads\n",
+ "F_B=10 #N\n",
+ "F_C=20 #N\n",
+ "F_D=30 #N\n",
+ "F_A=40 #N\n",
+ "\n",
+ "#Calculations\n",
+ "\n",
+ "#Taking Moment at point A\n",
+ "#As the Forces F_A & F_B pass through point A,these Forces will be zero\n",
+ "#Resultant Moment of all Forces\n",
+ "M_A=-(-F_D*L_DA-F_C*L_CD) #N.m\n",
+ "\n",
+ "#Result\n",
+ "print\"Resultant Moment about point A is\",round(M_A,2),\"N.m (Anticlockwise)\""
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Resultant Moment about point A is 100.0 N.m (Anticlockwise)\n"
+ ]
+ }
+ ],
+ "prompt_number": 4
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 3.2,Page No.50"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "\n",
+ "#Declaration Of Variables\n",
+ "F_A=100 #N\n",
+ "OCB=60 #Degrees\n",
+ "L_OC=3 #m\n",
+ "\n",
+ "#Calculations\n",
+ "\n",
+ "#Triangle OBC is a right Angled triangle\n",
+ "L_OB=L_OC*sin(60*pi*180**-1)\n",
+ "\n",
+ "#Moment of force 100 #N about o\n",
+ "M_O=F_A*L_OB #Nm\n",
+ "\n",
+ "#Result\n",
+ "print\"Moment of Force about O is\",round(M_O,2),\"Nm\""
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Moment of Force about O is 259.81 Nm\n"
+ ]
+ }
+ ],
+ "prompt_number": 6
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 3.3,Page No.54"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "\n",
+ "#Declaration Of Variables\n",
+ "\n",
+ "#Lengths\n",
+ "L_AB=30 #cm\n",
+ "L_BC=40 #cm\n",
+ "\n",
+ "#Loads\n",
+ "F_A=100 #N\n",
+ "F_B=200 #N\n",
+ "F_C=300 #N\n",
+ "\n",
+ "#Calculations\n",
+ "\n",
+ "#resultant of all forces\n",
+ "R=F_A+F_B+F_C #N\n",
+ "\n",
+ "#Let resultant be acting at distance x from point A\n",
+ "\n",
+ "#Now taking moments at point A\n",
+ "M_A=-(-F_C*(L_AB+L_BC)-F_B*L_AB) #N.m\n",
+ "\n",
+ "#Moment of resultant R about A\n",
+ "#M_R=R*x\n",
+ "\n",
+ "#But algebraic sum of moments of all forces about A = Moment of resultant about A\n",
+ "x=M_A*R**-1\n",
+ "\n",
+ "#Result\n",
+ "print\"Resultant is\",round(R,2),\"N\"\n",
+ "print\"Distance of resultant from point A\",round(x,2),\"cm\""
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Resultant is 600.0 N\n",
+ "Distance of resultant from point A 45.0 cm\n"
+ ]
+ }
+ ],
+ "prompt_number": 9
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 3.4,Page No.54"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "\n",
+ "#Declaration Of Variables\n",
+ "\n",
+ "#Lengths\n",
+ "L_AC=4 #m\n",
+ "L_CD=3 #m\n",
+ "L_AD=7 #m\n",
+ "\n",
+ "#Forces\n",
+ "F_A=50 #N\n",
+ "F_D=100 #N\n",
+ "R=250 #N #Resultant \n",
+ "\n",
+ "#Calculations\n",
+ "\n",
+ "#Part-1\n",
+ "#Magnitude of Force F_B\n",
+ "F=R-F_A-F_D #N\n",
+ "\n",
+ "#Part-2\n",
+ "#Distance from pt A\n",
+ "#Taking Moment of all forces at pt A\n",
+ "#M_A=0\n",
+ "#Now moments of all forces = Moment of Resultant\n",
+ "#After simplifying further we get\n",
+ "x=(R*L_AC-F_D*L_AD)*F_B**-1 #m\n",
+ "\n",
+ "#Result\n",
+ "print\"Magnitude of Force F is\",round(F,2),\"N\"\n",
+ "print\"Distance of force f from A is\",round(x,2),\"m\""
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Magnitude of Force F is 100.0 N\n",
+ "Distance of force f from A is 3.0 m\n"
+ ]
+ }
+ ],
+ "prompt_number": 2
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 3.5,Page No.55"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "\n",
+ "#Declaration Of Variables\n",
+ "\n",
+ "#Lengths\n",
+ "L_AB=0.9 #m\n",
+ "L_BC=1.2 #m\n",
+ "L_CD=0.75 #m\n",
+ "L=L_AB+L_BC+L_CD #m\n",
+ "\n",
+ "#Forces\n",
+ "F_A=100 #N\n",
+ "F_B=150 #N\n",
+ "F_C=25 #N\n",
+ "F_D=200 #N\n",
+ "\n",
+ "#Calculations\n",
+ "\n",
+ "#Part-1\n",
+ "#Magnitude of Resultant\n",
+ "R=F_A-F_B-F_C+F_D #N\n",
+ "\n",
+ "#Part-2\n",
+ "#Let x be the distance of Resultant from A\n",
+ "x=-(F_B*L_AB+F_C*(L_AB+L_BC)-F_D*L)*R**-1 #m\n",
+ "\n",
+ "#Result\n",
+ "print\"Magnitude of Resultant\",round(R,2),\"N\"\n",
+ "print\"Distance of Resultant from x is\",round(x,2),\"m\""
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Magnitude of Resultant 125.0 N\n",
+ "Distance of Resultant from x is 3.06 m\n"
+ ]
+ }
+ ],
+ "prompt_number": 33
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 3.6,Page No.57"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "\n",
+ "#Declaration Of Variables\n",
+ "\n",
+ "#Lengths\n",
+ "L_AC=L_CD=1 #m\n",
+ "L_DB=1.5 #m\n",
+ "L=3.5 #m\n",
+ "\n",
+ "#Forces\n",
+ "F_A=32.5 #N\n",
+ "F_C=150 #N\n",
+ "F_D=67.5 #N\n",
+ "F_B=10 #N\n",
+ "\n",
+ "#Calculations\n",
+ "\n",
+ "#Part-1\n",
+ "\n",
+ "#Single Force ststem\n",
+ "R=-(F_A-F_C+F_D-F_B) #N\n",
+ "\n",
+ "#Let x be the distance of Resultant from A\n",
+ "x=-(F_C*L_AC-F_D*(L_AC+L_CD)+F_B*L)*R**-1 #m\n",
+ "\n",
+ "#Part-2\n",
+ "\n",
+ "#Single Force is given By R\n",
+ "\n",
+ "#Now moment of couple at pt A\n",
+ "M_A=-R*round(x,2) #N.m\n",
+ "\n",
+ "#Part-3\n",
+ "\n",
+ "#Now couple at B\n",
+ "L_BE=L+x\n",
+ "M_B=R*round(L_BE,3) #N.m\n",
+ "\n",
+ "#Result\n",
+ "print\"Single Force is\",round(R,2),\"N\"\n",
+ "print\"Couple at A\",round(M_A,2),\"N.m\"\n",
+ "print\"Couple at B\",round(M_B,2),\"N.m\""
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "2.66666666667\n",
+ "Single Force is 60.0 N\n",
+ "Couple at A 49.8 N.m\n",
+ "Couple at B 160.02 N.m\n"
+ ]
+ }
+ ],
+ "prompt_number": 53
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 3.7,Page No.59"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "\n",
+ "#Declaration Of Variables\n",
+ "\n",
+ "#Lengths\n",
+ "L_AB=L_DE=0.6 #m\n",
+ "L_BC=0.9 #m\n",
+ "L_CD=1.2 #m\n",
+ "\n",
+ "#Forces\n",
+ "F_A=4 #N\n",
+ "F_B=8 #N\n",
+ "F_C=8 #N\n",
+ "F_D=16 #N\n",
+ "F_E=12 #N\n",
+ "\n",
+ "#Calculations\n",
+ "\n",
+ "#Resultant Of All Forces\n",
+ "R=-F_A+F_B-F_C+F_D-F_E #N\n",
+ "\n",
+ "#As the Resultatn Force is zero,tere will be two possibilities.The system will have a resultant coup\n",
+ "#Algebraic sum of moments of all forces about A\n",
+ "M_A=-F_B*L_AB+F_C*(L_AB+L_BC)-F_D*(L_AB+L_BC+L_CD)+F_E*(L_AB+L_BC+L_CD+L_DE) #N.m\n",
+ "\n",
+ "#As the algebraic sum of moments of all forces is not zero,the ststem will have couple of magnitude 3.6 #N.m\n",
+ "\n",
+ "#Result\n",
+ "print\"Resultant of Parallel Forces is\",round(R,2),\"N\""
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Resultant of Parallel Forces is 0.0 N\n"
+ ]
+ }
+ ],
+ "prompt_number": 56
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 3.8,Page No.59"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "\n",
+ "#Declaration Of Variables\n",
+ "\n",
+ "L_AB=L_DE=2 #m\n",
+ "L_BC=0.5 #m\n",
+ "L_CD=0.5 #m\n",
+ "\n",
+ "#Forces\n",
+ "F_A=20 #N\n",
+ "F_B=20 #N\n",
+ "F_C=40 #N\n",
+ "F_D=30 #N\n",
+ "F_E=10 #N\n",
+ "\n",
+ "\n",
+ "#Calculations\n",
+ "\n",
+ "#Resultant Of All Forces\n",
+ "R=-F_A+F_B+F_C-F_D-F_E #N\n",
+ "\n",
+ "#As the Resultant is zero and also the resultant force on the body is zero,the body will be in equilibrium\n",
+ "\n",
+ "#Result\n",
+ "print\"Resultant of Parallel Forces is\",round(R,2),\"N\""
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Resultant of Parallel Forces is 0.0 N\n"
+ ]
+ }
+ ],
+ "prompt_number": 58
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 3.9,Page No.60"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "\n",
+ "#Declaration Of Variables\n",
+ "\n",
+ "#Distances\n",
+ "L_OA=200 #mm\n",
+ "L_OB=100 #mm\n",
+ "L_BC=200 #mm\n",
+ "\n",
+ "COA=90 #Degrees\n",
+ "\n",
+ "#Forces\n",
+ "F_A=2000 #N\n",
+ "F_B=1500 #N\n",
+ "F_C=1000 #N\n",
+ "\n",
+ "#Calculations\n",
+ "\n",
+ "#Resolving FOrce A in two components\n",
+ "F_A1=F_A*cos(30*pi*180**-1) #Component along x-axis\n",
+ "F_A2=F_A*sin(30*pi*180**-1) #Component along y-axis\n",
+ "\n",
+ "#Resolving all forces along X-axis\n",
+ "F_x=F_A1-F_B-F_C\n",
+ "F_y=F_A2\n",
+ "\n",
+ "#Resultant \n",
+ "R=(F_x**2+F_y**2)**0.5 #N\n",
+ "\n",
+ "#Taking Moments of all forces about pt O\n",
+ "M_o=-(F_y*L_OA-F_B*L_OB-F_C*(L_BC+L_OB)) #N.mm\n",
+ "\n",
+ "#Result\n",
+ "print\"Equivalent system through point O is:Resultant\",round(R,2),\"N\"\n",
+ "print\" :Moment\",round(M_o,2),\"N.mm\""
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Equivalent system through point O is:Resultant 1260.85 N\n",
+ " :Moment 250000.0 N.mm\n"
+ ]
+ }
+ ],
+ "prompt_number": 63
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 3.10,Page No.61"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "\n",
+ "#Declaration Of Variables\n",
+ "\n",
+ "#Lengths\n",
+ "L_AC=1 #m\n",
+ "L_CB=1.5 #m\n",
+ "L_CD=0.8 #m\n",
+ "L_DB=0.7 #m\n",
+ "L=2.5 #m\n",
+ "\n",
+ "#Forces\n",
+ "F_C=4000 #N\n",
+ "F_B=2500 #N\n",
+ "M_D=2000 #N*m\n",
+ "\n",
+ "#Calculations\n",
+ "\n",
+ "#Resultant of all forces\n",
+ "R=-F_C+F_B #N\n",
+ "\n",
+ "#As the Force is acting in downward direction,so negative sign\n",
+ "R2=-R\n",
+ "\n",
+ "#Sum of Moments of all Forces\n",
+ "M=(F_C*L_AC+M_D-F_B*L)\n",
+ "M2=-M #Anticlockwise\n",
+ "\n",
+ "#Now distance of resultant from x is\n",
+ "x=(F_C*L_AC+M_D-F_B*L)*R2**-1\n",
+ "\n",
+ "#Negative sign indicates that it acts left of A\n",
+ "x2=-x\n",
+ "\n",
+ "#Result\n",
+ "print\"Resultant of the system\",round(R2,2),\"N\"\n",
+ "print\"Equivalent system through A\",round(M2,2),\"N.m (Anticlockwise)\""
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Resultant of the system 1500.0 N\n",
+ "Equivalent system through A 250.0 N.m (Anticlockwise)\n"
+ ]
+ }
+ ],
+ "prompt_number": 72
+ }
+ ],
+ "metadata": {}
+ }
+ ]
+}
\ No newline at end of file diff --git a/sample_notebooks/ShubhamDahiphale/chapter_1.ipynb b/sample_notebooks/ShubhamDahiphale/chapter_1.ipynb new file mode 100644 index 00000000..87ae9b81 --- /dev/null +++ b/sample_notebooks/ShubhamDahiphale/chapter_1.ipynb @@ -0,0 +1,193 @@ +{
+ "metadata": {
+ "name": "chapter 1.ipynb"
+ },
+ "nbformat": 3,
+ "nbformat_minor": 0,
+ "worksheets": [
+ {
+ "cells": [
+ {
+ "cell_type": "heading",
+ "level": 1,
+ "metadata": {},
+ "source": [
+ "Chapter 1:Coplanar Concurrent Force System"
+ ]
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Problem 1,Page No.3"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "\n",
+ "#Declaration of Variables\n",
+ "\n",
+ "F1=1200 #N #Force1\n",
+ "F2=400 #N #Force2\n",
+ "\n",
+ "#Calculations\n",
+ "\n",
+ "theta=arctan(300*400**-1)*(180*pi**-1)\n",
+ "\n",
+ "#Components of F1\n",
+ "F1x=-F1*sin(theta*180**-1*pi) #N\n",
+ "F1y=-F1*cos(theta*180**-1*pi) #N\n",
+ "\n",
+ "#Components of F2\n",
+ "F2x=F2*cos(theta*180**-1*pi) #N\n",
+ "F2y=-F2*sin(theta*180**-1*pi) #N\n",
+ "\n",
+ "#Results\n",
+ "print\"Components of F1 is:F1x\",round(F1x,2),\"N\"\n",
+ "print\" :F1y\",round(F1y,2),\"N\"\n",
+ "print\"Components of F1 is:F2x\",round(F2x,2),\"N\"\n",
+ "print\" :F2y\",round(F2y,2),\"N\""
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Components of F1 is:F1x -720.0 N\n",
+ " :F1y -960.0 N\n",
+ "Components of F1 is:F2x 320.0 N\n",
+ " :F2y -240.0 N\n"
+ ]
+ }
+ ],
+ "prompt_number": 10
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Problem 1,Page No.4"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "\n",
+ "#Declaration of Variables\n",
+ "\n",
+ "#Forces\n",
+ "F1=300 #N\n",
+ "F2=390 #N\n",
+ "F3=400 #N\n",
+ "\n",
+ "#Angles\n",
+ "theta1=30 #Degree\n",
+ "theta2=arctan(12*5**-1)*(180*pi**-1) #Degree\n",
+ "theta3=40 #Degree\n",
+ "\n",
+ "#Calculations\n",
+ "\n",
+ "#Components of F1\n",
+ "F1x=F1*cos(theta1*pi*180**-1) #N\n",
+ "F1y=-F1*sin(theta1*pi*180**-1) #N\n",
+ "\n",
+ "#Components of F2\n",
+ "F2x=-F2*cos(theta2*pi*180**-1) #N\n",
+ "F2y=F2*sin(theta2*pi*180**-1) #N\n",
+ "\n",
+ "#Components of F3\n",
+ "F3x=-F3*cos(theta3*pi*180**-1) #N\n",
+ "F3y=-F3*sin(theta3*pi*180**-1) #N\n",
+ "\n",
+ "#Result\n",
+ "print\"Components of F1 is:F1x\",round(F1x,2),\"N\"\n",
+ "print\" :F1y\",round(F1y,2),\"N\"\n",
+ "print\"Components of F2 is:F2x\",round(F2x,2),\"N\"\n",
+ "print\" :F2y\",round(F2y,2),\"N\"\n",
+ "print\"Components of F3 is:F2x\",round(F3x,2),\"N\"\n",
+ "print\" :F3y\",round(F3y,2),\"N\""
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Components of F1 is:F1x 259.81 N\n",
+ " :F1y -150.0 N\n",
+ "Components of F2 is:F2x -150.0 N\n",
+ " :F2y 360.0 N\n",
+ "Components of F3 is:F2x -306.42 N\n",
+ " :F3y -257.12 N\n"
+ ]
+ }
+ ],
+ "prompt_number": 14
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Problem 3,Page No.4"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "\n",
+ "#Declaration of Variables\n",
+ "\n",
+ "#Forces\n",
+ "F1=20 #N\n",
+ "F2=60 #N\n",
+ "\n",
+ "theta1=20 #Degree\n",
+ "theta2=25 #Degree\n",
+ "\n",
+ "#Calculations\n",
+ "\n",
+ "#Resultant\n",
+ "\n",
+ "R=(F1**2+F2**2+2*F1*F2*cos(theta2*pi*180**-1))**0.5 #N\n",
+ "\n",
+ "X=(F1*(sin(theta2*180**-1*pi)))\n",
+ "Y=((F1+F2*(cos(theta2*pi*180**-1))))\n",
+ "alpha=arctan(X*Y**-1)*(180*pi**-1)\n",
+ "\n",
+ "#Inclination with x axis\n",
+ "alpha2=theta1+alpha\n",
+ "\n",
+ "#Result\n",
+ "print\"Resultant of two forces is\",round(alpha2,2),\"degree\""
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Resultant of two forces is 26.48 degree\n"
+ ]
+ }
+ ],
+ "prompt_number": 28
+ }
+ ],
+ "metadata": {}
+ }
+ ]
+}
\ No newline at end of file |