summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorTrupti Kini2016-03-10 23:30:18 +0600
committerTrupti Kini2016-03-10 23:30:18 +0600
commit8b45c91b0d1cc1bf93d8653912e7068004eda3eb (patch)
treedf1b8a69966585df2b7cad68a6be74b346b54262
parent1ab1ae28c5ba41d5159b2f2922447419e2d64eb9 (diff)
downloadPython-Textbook-Companions-8b45c91b0d1cc1bf93d8653912e7068004eda3eb.tar.gz
Python-Textbook-Companions-8b45c91b0d1cc1bf93d8653912e7068004eda3eb.tar.bz2
Python-Textbook-Companions-8b45c91b0d1cc1bf93d8653912e7068004eda3eb.zip
Added(A)/Deleted(D) following books
A A_Textbook_of_Production_Engineering_by_P._C._Sharma/Chapter11_1.ipynb A A_Textbook_of_Production_Engineering_by_P._C._Sharma/Chapter13_1.ipynb A A_Textbook_of_Production_Engineering_by_P._C._Sharma/Chapter14_1.ipynb A A_Textbook_of_Production_Engineering_by_P._C._Sharma/Chapter15_1.ipynb A A_Textbook_of_Production_Engineering_by_P._C._Sharma/Chapter16_1.ipynb A A_Textbook_of_Production_Engineering_by_P._C._Sharma/Chapter17_1.ipynb A A_Textbook_of_Production_Engineering_by_P._C._Sharma/Chapter21_1.ipynb A A_Textbook_of_Production_Engineering_by_P._C._Sharma/Chapter22_1.ipynb A A_Textbook_of_Production_Engineering_by_P._C._Sharma/Chapter23_1.ipynb A A_Textbook_of_Production_Engineering_by_P._C._Sharma/Chapter26_1.ipynb A A_Textbook_of_Production_Engineering_by_P._C._Sharma/Chapter2_1.ipynb A A_Textbook_of_Production_Engineering_by_P._C._Sharma/Chapter4_1.ipynb A A_Textbook_of_Production_Engineering_by_P._C._Sharma/Chapter5_1.ipynb A A_Textbook_of_Production_Engineering_by_P._C._Sharma/Chapter9_1.ipynb A A_Textbook_of_Production_Engineering_by_P._C._Sharma/screenshots/21AOQCurve_1.png A A_Textbook_of_Production_Engineering_by_P._C._Sharma/screenshots/21X&RChart_1.png A A_Textbook_of_Production_Engineering_by_P._C._Sharma/screenshots/22CuttingVvsCutterDia_1.png A Heat_And_Mass_Transfer_by_Vijay_K._Dwivedi/chapter_1.ipynb A Heat_And_Mass_Transfer_by_Vijay_K._Dwivedi/chapter_10.ipynb A Heat_And_Mass_Transfer_by_Vijay_K._Dwivedi/chapter_2.ipynb A Heat_And_Mass_Transfer_by_Vijay_K._Dwivedi/chapter_3.ipynb A Heat_And_Mass_Transfer_by_Vijay_K._Dwivedi/chapter_4.ipynb A Heat_And_Mass_Transfer_by_Vijay_K._Dwivedi/chapter_5.ipynb A Heat_And_Mass_Transfer_by_Vijay_K._Dwivedi/chapter_6.ipynb A Heat_And_Mass_Transfer_by_Vijay_K._Dwivedi/chapter_7.ipynb A Heat_And_Mass_Transfer_by_Vijay_K._Dwivedi/chapter_8.ipynb A Heat_And_Mass_Transfer_by_Vijay_K._Dwivedi/chapter_9.ipynb A Heat_And_Mass_Transfer_by_Vijay_K._Dwivedi/screenshots/1.png A Heat_And_Mass_Transfer_by_Vijay_K._Dwivedi/screenshots/2.png A Heat_And_Mass_Transfer_by_Vijay_K._Dwivedi/screenshots/3.png A Modern_Electronic_Instrumentation_And_Measurement_Techniques_by_A._D._Helfrick_And_W._D._Cooper/README.txt A Strength_Of_Materials_by_S_S_Bhavikatti/chapter_no.10_1.ipynb A Strength_Of_Materials_by_S_S_Bhavikatti/chapter_no.1_1.ipynb A Strength_Of_Materials_by_S_S_Bhavikatti/chapter_no.2_1.ipynb A Strength_Of_Materials_by_S_S_Bhavikatti/chapter_no.3_1.ipynb A Strength_Of_Materials_by_S_S_Bhavikatti/chapter_no.4_1.ipynb A Strength_Of_Materials_by_S_S_Bhavikatti/chapter_no.5_1.ipynb A Strength_Of_Materials_by_S_S_Bhavikatti/chapter_no.6_1.ipynb A Strength_Of_Materials_by_S_S_Bhavikatti/chapter_no.7_1.ipynb A Strength_Of_Materials_by_S_S_Bhavikatti/chapter_no.8_1.ipynb A Strength_Of_Materials_by_S_S_Bhavikatti/chapter_no.9_1.ipynb A Strength_Of_Materials_by_S_S_Bhavikatti/screenshots/B.M.D_1.JPG A Strength_Of_Materials_by_S_S_Bhavikatti/screenshots/S.F.D_1.jpg A Strength_Of_Materials_by_S_S_Bhavikatti/screenshots/S.F.D_2.jpg A "sample_notebooks/DaudIbrahir Saifi/Chapter_07_1.ipynb"
-rw-r--r--A_Textbook_of_Production_Engineering_by_P._C._Sharma/Chapter11_1.ipynb123
-rw-r--r--A_Textbook_of_Production_Engineering_by_P._C._Sharma/Chapter13_1.ipynb517
-rw-r--r--A_Textbook_of_Production_Engineering_by_P._C._Sharma/Chapter14_1.ipynb823
-rw-r--r--A_Textbook_of_Production_Engineering_by_P._C._Sharma/Chapter15_1.ipynb408
-rw-r--r--A_Textbook_of_Production_Engineering_by_P._C._Sharma/Chapter16_1.ipynb65
-rw-r--r--A_Textbook_of_Production_Engineering_by_P._C._Sharma/Chapter17_1.ipynb93
-rw-r--r--A_Textbook_of_Production_Engineering_by_P._C._Sharma/Chapter21_1.ipynb661
-rw-r--r--A_Textbook_of_Production_Engineering_by_P._C._Sharma/Chapter22_1.ipynb365
-rw-r--r--A_Textbook_of_Production_Engineering_by_P._C._Sharma/Chapter23_1.ipynb396
-rw-r--r--A_Textbook_of_Production_Engineering_by_P._C._Sharma/Chapter26_1.ipynb69
-rw-r--r--A_Textbook_of_Production_Engineering_by_P._C._Sharma/Chapter2_1.ipynb743
-rw-r--r--A_Textbook_of_Production_Engineering_by_P._C._Sharma/Chapter4_1.ipynb863
-rw-r--r--A_Textbook_of_Production_Engineering_by_P._C._Sharma/Chapter5_1.ipynb1707
-rw-r--r--A_Textbook_of_Production_Engineering_by_P._C._Sharma/Chapter9_1.ipynb476
-rw-r--r--A_Textbook_of_Production_Engineering_by_P._C._Sharma/screenshots/21AOQCurve_1.pngbin0 -> 17618 bytes
-rw-r--r--A_Textbook_of_Production_Engineering_by_P._C._Sharma/screenshots/21X&RChart_1.pngbin0 -> 39330 bytes
-rw-r--r--A_Textbook_of_Production_Engineering_by_P._C._Sharma/screenshots/22CuttingVvsCutterDia_1.pngbin0 -> 42089 bytes
-rw-r--r--Heat_And_Mass_Transfer_by_Vijay_K._Dwivedi/chapter_1.ipynb644
-rw-r--r--Heat_And_Mass_Transfer_by_Vijay_K._Dwivedi/chapter_10.ipynb426
-rw-r--r--Heat_And_Mass_Transfer_by_Vijay_K._Dwivedi/chapter_2.ipynb515
-rw-r--r--Heat_And_Mass_Transfer_by_Vijay_K._Dwivedi/chapter_3.ipynb632
-rw-r--r--Heat_And_Mass_Transfer_by_Vijay_K._Dwivedi/chapter_4.ipynb760
-rw-r--r--Heat_And_Mass_Transfer_by_Vijay_K._Dwivedi/chapter_5.ipynb802
-rw-r--r--Heat_And_Mass_Transfer_by_Vijay_K._Dwivedi/chapter_6.ipynb543
-rw-r--r--Heat_And_Mass_Transfer_by_Vijay_K._Dwivedi/chapter_7.ipynb610
-rw-r--r--Heat_And_Mass_Transfer_by_Vijay_K._Dwivedi/chapter_8.ipynb903
-rw-r--r--Heat_And_Mass_Transfer_by_Vijay_K._Dwivedi/chapter_9.ipynb280
-rw-r--r--Heat_And_Mass_Transfer_by_Vijay_K._Dwivedi/screenshots/1.pngbin0 -> 39875 bytes
-rw-r--r--Heat_And_Mass_Transfer_by_Vijay_K._Dwivedi/screenshots/2.pngbin0 -> 47846 bytes
-rw-r--r--Heat_And_Mass_Transfer_by_Vijay_K._Dwivedi/screenshots/3.pngbin0 -> 47310 bytes
-rw-r--r--Modern_Electronic_Instrumentation_And_Measurement_Techniques_by_A._D._Helfrick_And_W._D._Cooper/README.txt10
-rw-r--r--Strength_Of_Materials_by_S_S_Bhavikatti/chapter_no.10_1.ipynb277
-rw-r--r--Strength_Of_Materials_by_S_S_Bhavikatti/chapter_no.1_1.ipynb22
-rw-r--r--Strength_Of_Materials_by_S_S_Bhavikatti/chapter_no.2_1.ipynb2700
-rw-r--r--Strength_Of_Materials_by_S_S_Bhavikatti/chapter_no.3_1.ipynb1588
-rw-r--r--Strength_Of_Materials_by_S_S_Bhavikatti/chapter_no.4_1.ipynb1628
-rw-r--r--Strength_Of_Materials_by_S_S_Bhavikatti/chapter_no.5_1.ipynb1002
-rw-r--r--Strength_Of_Materials_by_S_S_Bhavikatti/chapter_no.6_1.ipynb1494
-rw-r--r--Strength_Of_Materials_by_S_S_Bhavikatti/chapter_no.7_1.ipynb1309
-rw-r--r--Strength_Of_Materials_by_S_S_Bhavikatti/chapter_no.8_1.ipynb1512
-rw-r--r--Strength_Of_Materials_by_S_S_Bhavikatti/chapter_no.9_1.ipynb768
-rw-r--r--Strength_Of_Materials_by_S_S_Bhavikatti/screenshots/B.M.D_1.JPGbin0 -> 19793 bytes
-rw-r--r--Strength_Of_Materials_by_S_S_Bhavikatti/screenshots/S.F.D_1.jpgbin0 -> 16749 bytes
-rw-r--r--Strength_Of_Materials_by_S_S_Bhavikatti/screenshots/S.F.D_2.jpgbin0 -> 18365 bytes
-rw-r--r--sample_notebooks/DaudIbrahir Saifi/Chapter_07_1.ipynb342
45 files changed, 26076 insertions, 0 deletions
diff --git a/A_Textbook_of_Production_Engineering_by_P._C._Sharma/Chapter11_1.ipynb b/A_Textbook_of_Production_Engineering_by_P._C._Sharma/Chapter11_1.ipynb
new file mode 100644
index 00000000..7e0c843a
--- /dev/null
+++ b/A_Textbook_of_Production_Engineering_by_P._C._Sharma/Chapter11_1.ipynb
@@ -0,0 +1,123 @@
+{
+ "cells": [
+ {
+ "cell_type": "markdown",
+ "metadata": {},
+ "source": [
+ "# Chapter 11 : Surface Finish"
+ ]
+ },
+ {
+ "cell_type": "markdown",
+ "metadata": {},
+ "source": [
+ "## Exa 11.1 : Page 436"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 1,
+ "metadata": {
+ "collapsed": false
+ },
+ "outputs": [
+ {
+ "name": "stdout",
+ "output_type": "stream",
+ "text": [
+ "C.L.A value = 0.00*10**-6 m \n"
+ ]
+ }
+ ],
+ "source": [
+ "v = 15000 # vertical magnification\n",
+ "h = 100 # horizontal magnification\n",
+ "l = 0.8 # sampling length in mm\n",
+ "a1 = 160 # area above datum line in mm**2\n",
+ "a2 = 90 # area above datum line in mm**2\n",
+ "a3 = 180 # area above datum line in mm**2\n",
+ "a4 = 50 # area above datum line in mm**2\n",
+ "a5 = 95 # area below datum line in mm**2\n",
+ "a6 = 65 # area below datum line in mm**2\n",
+ "a7 = 170 # area below datum line in mm**2\n",
+ "a8 = 150 # area below datum line in mm**2\n",
+ "a = (a1+a2+a3+a4+a5+a6+a7+a8)/(v*h)\n",
+ "CLA= a/l\n",
+ "print \"C.L.A value = %0.2f*10**-6 m \" %(CLA*1000)"
+ ]
+ },
+ {
+ "cell_type": "markdown",
+ "metadata": {},
+ "source": [
+ "## Exa 11.2 : Page 436"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 2,
+ "metadata": {
+ "collapsed": false
+ },
+ "outputs": [
+ {
+ "name": "stdout",
+ "output_type": "stream",
+ "text": [
+ " The arithmetic average = 0.23*10**-6 m \n",
+ " The r.m.s. value = 0.248*10**-6 m\n"
+ ]
+ }
+ ],
+ "source": [
+ "from math import sqrt\n",
+ "# from figure 11.23\n",
+ "y1 = 0.15 # mu_m\n",
+ "y2 = 0.25 # mu_m\n",
+ "y3 = 0.35 # mu_m\n",
+ "y4 = 0.25 # mu_m\n",
+ "y5 = 0.30 # mu_m\n",
+ "y6 = 0.15 # mu_m\n",
+ "y7 = 0.10 # mu_m\n",
+ "y8 = 0.30 # mu_m\n",
+ "y9 = 0.35 # mu_m\n",
+ "y10 = 0.10 # mu_m\n",
+ "y1sqr = y1**2 # mu_m\n",
+ "y2sqr = y2**2# mu_m\n",
+ "y3sqr = y3**2 # mu_m\n",
+ "y4sqr = y4**2 # mu_m\n",
+ "y5sqr = y5**2 # mu_m\n",
+ "y6sqr = y6**2 # mu_m\n",
+ "y7sqr = y7**2 # mu_m\n",
+ "y8sqr = y8**2 # mu_m\n",
+ "y9sqr = y9**2 # mu_m\n",
+ "y10sqr = y10**2 # mu_m\n",
+ "n = 10\n",
+ "yn = (y1+y2+y3+y4+y5+y6+y7+y8+y9+y10)/n # arithmetic average in mu_m\n",
+ "rms = sqrt((y1sqr+y2sqr+y3sqr+y4sqr+y5sqr+y6sqr+y7sqr+y8sqr+y9sqr+y10sqr)/n) # r.m.s value in mu_m\n",
+ "print \" The arithmetic average = %0.2f*10**-6 m \\n The r.m.s. value = %0.3f*10**-6 m\"%(yn,rms)"
+ ]
+ }
+ ],
+ "metadata": {
+ "kernelspec": {
+ "display_name": "Python 2",
+ "language": "python",
+ "name": "python2"
+ },
+ "language_info": {
+ "codemirror_mode": {
+ "name": "ipython",
+ "version": 2
+ },
+ "file_extension": ".py",
+ "mimetype": "text/x-python",
+ "name": "python",
+ "nbconvert_exporter": "python",
+ "pygments_lexer": "ipython2",
+ "version": "2.7.9"
+ }
+ },
+ "nbformat": 4,
+ "nbformat_minor": 0
+}
diff --git a/A_Textbook_of_Production_Engineering_by_P._C._Sharma/Chapter13_1.ipynb b/A_Textbook_of_Production_Engineering_by_P._C._Sharma/Chapter13_1.ipynb
new file mode 100644
index 00000000..332359b5
--- /dev/null
+++ b/A_Textbook_of_Production_Engineering_by_P._C._Sharma/Chapter13_1.ipynb
@@ -0,0 +1,517 @@
+{
+ "cells": [
+ {
+ "cell_type": "markdown",
+ "metadata": {},
+ "source": [
+ "# Chapter 13 : Analysis of Metal Forming Process"
+ ]
+ },
+ {
+ "cell_type": "markdown",
+ "metadata": {},
+ "source": [
+ "## Exa 13.1 : page 515"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 1,
+ "metadata": {
+ "collapsed": false
+ },
+ "outputs": [
+ {
+ "name": "stdout",
+ "output_type": "stream",
+ "text": [
+ "Total drawing load = 2136.5 N\n"
+ ]
+ }
+ ],
+ "source": [
+ "from __future__ import division\n",
+ "from math import sqrt, pi, tan, exp\n",
+ "sigma_0 = 240 # N/mm**2\n",
+ "d1 = 5 # initial wire diameter in mm\n",
+ "d0 = 5.5 # final wire diameter in mm\n",
+ "x = d1/d0 # mm\n",
+ "alpha = 8 # angle of contact\n",
+ "alpha = alpha*pi/180\n",
+ "mu = 0.1 # coefficient of friction\n",
+ "B = mu/tan(alpha) \n",
+ "sigma_d = (sigma_0*(1+B)*(1-(x)**(2*B)))/B # N/mm**2\n",
+ "l = 3 # die land in mm\n",
+ "mu = 0.1 # coefficient of friction\n",
+ "r1 = d1/2 # mm\n",
+ "sigma_t = sigma_0 - (sigma_0 - sigma_d)/exp((2*mu*l)/r1) # N/mm**2\n",
+ "dl = sigma_t*pi*(r1)**2 # drawing load in N\n",
+ "print \"Total drawing load = %0.1f N\"%(dl)\n",
+ "# Answers vary due to round off error"
+ ]
+ },
+ {
+ "cell_type": "markdown",
+ "metadata": {},
+ "source": [
+ "## Exa 13.2 : page 517"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 2,
+ "metadata": {
+ "collapsed": false
+ },
+ "outputs": [
+ {
+ "name": "stdout",
+ "output_type": "stream",
+ "text": [
+ " The pipe drawing force force on plug mandrels = 0.547 \n",
+ " The pipe drawing forcw on mandrels = 0.368\n",
+ " Use of movable mandrel substantially reduces drawing force\n"
+ ]
+ }
+ ],
+ "source": [
+ "from math import log10\n",
+ "alpha = 15 # angle of contact\n",
+ "alpha = alpha*pi/180\n",
+ "bita = 0 # degree\n",
+ "mu = 0.1 # coefficient of friction\n",
+ "mu1 = mu\n",
+ "mu2 = mu\n",
+ "h1 = 1.75 # mm\n",
+ "h0 = 2.5 # mm\n",
+ "B = (mu1+mu2)/(tan(alpha)-tan(bita)) \n",
+ "y1 = (1+B)*(1-(h1/h0)**B)/B #sigma_d/sigma_0 for plug mandrels in N/mm**2\n",
+ "z = 1/((h0/h1)-1)\n",
+ "y2 = log10(z)# sigma_d/sigma_0 for movable mandrels in N/mm**2\n",
+ "print \" The pipe drawing force force on plug mandrels = %0.3f \\n The pipe drawing forcw on mandrels = %0.3f\"%(y1,y2)\n",
+ "print \" Use of movable mandrel substantially reduces drawing force\""
+ ]
+ },
+ {
+ "cell_type": "markdown",
+ "metadata": {},
+ "source": [
+ "## Exa 13.3 : page 517"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 3,
+ "metadata": {
+ "collapsed": false
+ },
+ "outputs": [
+ {
+ "name": "stdout",
+ "output_type": "stream",
+ "text": [
+ "Neutral section = 20.3 mm\n",
+ "Backward slip = 18.8 percent\n",
+ "Forward slip = 1.5 percent\n",
+ "Maximum pressure = 132.6 N/mm**2\n"
+ ]
+ }
+ ],
+ "source": [
+ "from math import acos, atan, log\n",
+ "h0 = 25 # thickness of plate in mm \n",
+ "h1 = 20 # mm \n",
+ "delta_h = h0-h1 # mm\n",
+ "sigma = 100 # maximum pressure in N/mm**2\n",
+ "D = 500 # rolled diameter in mm\n",
+ "r = D/2 # rolled radius in mm\n",
+ "alpha = acos(1-(delta_h/D)) # angle of contact in radians\n",
+ "mu = tan(alpha) # coefficient of friction\n",
+ "Ho = 2*sqrt(r/h1)*atan(sqrt(r/h1)*mu)\n",
+ "Hn = (Ho - (log(h0/h1))/mu)/2\n",
+ "theta = sqrt(h1/r)*tan(sqrt(h1/r)*(Hn/2)) # radian\n",
+ "hn = h1 + r*theta**2 # neutral section in mm\n",
+ "x = hn/h0 \n",
+ "bs = (1-x)*100 # backward slip\n",
+ "y = hn/h1\n",
+ "fs = (y-1)*100 # forward slip\n",
+ "sigma0 = 2*sigma/sqrt(3)\n",
+ "pn = sigma0*hn*exp(mu*Hn)/h1 #N/mm**2\n",
+ "print \"Neutral section = %0.1f mm\"%(hn)\n",
+ "print \"Backward slip = %0.1f percent\\nForward slip = %0.1f percent\"%(bs,fs)\n",
+ "print \"Maximum pressure = %0.1f N/mm**2\"%(pn)\n",
+ " # Answers vary due to round off error"
+ ]
+ },
+ {
+ "cell_type": "markdown",
+ "metadata": {},
+ "source": [
+ "## Exa 13.4 : page 519"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 4,
+ "metadata": {
+ "collapsed": false
+ },
+ "outputs": [
+ {
+ "name": "stdout",
+ "output_type": "stream",
+ "text": [
+ "Force = 6328 kN\n"
+ ]
+ }
+ ],
+ "source": [
+ "from math import sqrt, pi\n",
+ "Do = 250 # diameter in mm\n",
+ "ho = 250 # hieght in mm\n",
+ "delta_h = 100 # mm\n",
+ "h = 150 # mm\n",
+ "sigma0 = 55 # N/mm**2\n",
+ "d = Do*sqrt(ho/(ho-delta_h)) # diameter in mm \n",
+ "mu = 0.42 # coefficient of friction\n",
+ "R = 162.5 # mm\n",
+ "pa = sigma0/2*(h/(mu*R))**2*(exp(2*mu*R/h)-2*mu*R/h-1) # N/mm**2\n",
+ "p = pa*pi*(R)**2 # force in kN\n",
+ "print \"Force = %d kN\"%(p/1000)"
+ ]
+ },
+ {
+ "cell_type": "markdown",
+ "metadata": {},
+ "source": [
+ "## Exa 13.5 : page 519"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 5,
+ "metadata": {
+ "collapsed": false
+ },
+ "outputs": [
+ {
+ "name": "stdout",
+ "output_type": "stream",
+ "text": [
+ " Sticking radius = 48.5 mm \n",
+ " Total forging load = 11.927 MN\n"
+ ]
+ }
+ ],
+ "source": [
+ "from sympy import symbols, diff, solve, exp\n",
+ "from math import log\n",
+ "from sympy.mpmath import quad\n",
+ "d = 150 # diameter in mm\n",
+ "h = 10 # thickness in mm\n",
+ "R = d/2 # radius in mm\n",
+ "mu = 0.2 # coefficient of friction\n",
+ "sigma_0 = 200 # N/mm**2\n",
+ "Rs = R - (h/(2*mu))*log(1/(sqrt(3)*mu)) # sticking radius in mm\n",
+ "Ps = sigma_0*exp(2*mu*(R-Rs)/h) # pressure at sticking radius in N/mm**2\n",
+ "y=lambda r:2*pi*r*sigma_0*exp(2*mu/h*(R-r))\n",
+ "L_sld = quad(y,[48.5,75])\n",
+ "L_sld = L_sld/1000 # load on sliding portion in kN\n",
+ "Pc = Ps + (2*sigma_0*Rs)/(h*sqrt(3)) # pressure at centre in N/mm**2\n",
+ "L_sp = (Pc+Ps)*pi*(Rs)**2/(2*1000) # load on sticking portion in kN\n",
+ "F_l = L_sld + L_sp # total forging load in kN\n",
+ "print \" Sticking radius = %0.1f mm \\n Total forging load = %0.3f MN\"%(Rs ,F_l/1000)\n",
+ "# Answers vary due to round off error"
+ ]
+ },
+ {
+ "cell_type": "markdown",
+ "metadata": {},
+ "source": [
+ "## Exa 13.7 : page 522"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 6,
+ "metadata": {
+ "collapsed": false
+ },
+ "outputs": [
+ {
+ "name": "stdout",
+ "output_type": "stream",
+ "text": [
+ "Drawing load = 11.21 kN\n",
+ "Power of motor = 26.32 kW\n"
+ ]
+ }
+ ],
+ "source": [
+ "from math import sqrt, pi\n",
+ "RA = 0.30\n",
+ "d = 12 # diameter in mm\n",
+ "alpha = 6 # angle of contact in degree\n",
+ "alpha = 6*pi/180 # angle of contact in radian\n",
+ "mu = 0.10 # coefficient of friction\n",
+ "sigma_0 = 240 # N/mm**2\n",
+ "B = mu/tan(alpha)\n",
+ "x = 1 - RA\n",
+ "sigma_d = (sigma_0*(1+B)*(1-(x)**B))/B # N/mm**2\n",
+ "r1 = sqrt(x)*(d/2) # mm\n",
+ "l = sigma_d*pi*(r1)**2 # load in kN\n",
+ "ita = 98 # efficiency\n",
+ "ita = ita/100\n",
+ "s = 2.3 # drawing speed in m/s\n",
+ "P = (l*s)/ita # kW\n",
+ "print \"Drawing load = %0.2f kN\\nPower of motor = %0.2f kW\"%(l/1000 ,P/1000 )\n",
+ "# Answers vary due to round off error"
+ ]
+ },
+ {
+ "cell_type": "markdown",
+ "metadata": {},
+ "source": [
+ "## Exa 13.8 : page 522"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 7,
+ "metadata": {
+ "collapsed": false
+ },
+ "outputs": [
+ {
+ "name": "stdout",
+ "output_type": "stream",
+ "text": [
+ " Drawing load = 27.166 kN\n",
+ " Power rating of motor = 17.66 kW\n"
+ ]
+ }
+ ],
+ "source": [
+ "from math import sqrt, pi, tan\n",
+ "mu1 = 0.15 # coefficient of friction \n",
+ "mu2 = 0.18 # coefficient of fricton\n",
+ "alpha = 14 # angle of contact in degree\n",
+ "alpha = alpha*pi/180\n",
+ "bita = 10 # semi-cone angle in degree\n",
+ "bita = bita*pi/180\n",
+ "sigma_0 = 1.40 # kN/mm**2\n",
+ "h0 = 1.5 #mm\n",
+ "h1 = 1 # mm\n",
+ "B = (mu1+mu2)/(tan(alpha)+tan(bita))\n",
+ "sigmad = (sigma_0*(1+B)*(1-(h1/h0)**B))/B # drawing stress in kN/mm**2\n",
+ "d1 = 11 # outside diameter in mm\n",
+ "t = 1 # thickness in mm\n",
+ "d2 = d1-2*t # mm\n",
+ "a = (pi*((d1)**2-(d2)**2))/4 # area in mm**2\n",
+ "l = sigmad*a # load in kN\n",
+ "s = 0.65 # drawing speed in m/s\n",
+ "w = l*s # work in kJ/s\n",
+ "p = w # power in kW\n",
+ "print \" Drawing load = %0.3f kN\\n Power rating of motor = %0.2f kW\"%(l , p)\n",
+ "# Answers vary due to round off error"
+ ]
+ },
+ {
+ "cell_type": "markdown",
+ "metadata": {},
+ "source": [
+ "## Exa 13.9 : page 523"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 8,
+ "metadata": {
+ "collapsed": false
+ },
+ "outputs": [
+ {
+ "name": "stdout",
+ "output_type": "stream",
+ "text": [
+ " Forging load at start of forging = 18.5625 MN\n",
+ " Forging load at completion of forging = 70.875 MN\n"
+ ]
+ }
+ ],
+ "source": [
+ "sigma_0 = 50 # pressure at start in MPa\n",
+ "B = 0.9 # width in m\n",
+ "h1 = 0.2 # thickness in m\n",
+ "b = 0.3 # tool bite in m\n",
+ "# At commencement of forging\n",
+ "FL = sigma_0*B*b*(1+(b/(4*h1))) # forging load in MN\n",
+ "# At completion of forging\n",
+ "h2 = 0.1 # thickness in m\n",
+ "sigma_0c = 150 # pressure at completion in MPa\n",
+ "FL2 = sigma_0c*B*b*(1+(b/(4*h2))) # forging load in MN\n",
+ "print \" Forging load at start of forging = %0.4f MN\\n Forging load at completion of forging = %0.3f MN\"%(FL , FL2)"
+ ]
+ },
+ {
+ "cell_type": "markdown",
+ "metadata": {},
+ "source": [
+ "## Exa 13.10 : page 524"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 9,
+ "metadata": {
+ "collapsed": false
+ },
+ "outputs": [
+ {
+ "name": "stdout",
+ "output_type": "stream",
+ "text": [
+ "Extrusion load = 34 MN\n"
+ ]
+ }
+ ],
+ "source": [
+ "from math import sqrt, tan, pi\n",
+ "sigma_0 = 250 # N/mm**2\n",
+ "d1 = 5 # initial wire diameter in mm\n",
+ "d0 = 15 # final wire diameter in mm \n",
+ "r0 = d0/2\n",
+ "r1 = d1/2\n",
+ "x = (r0/r1)**2 # mm\n",
+ "alpha = 45 # angle of contact\n",
+ "alpha = alpha*pi/180\n",
+ "mu = 0.1 # coefficient of friction\n",
+ "B = mu/tan(alpha) \n",
+ "sigma_x0 = (sigma_0*(1+B)*(1-(x)**B))/B # N/mm**2\n",
+ "sigma_x0 = -sigma_x0\n",
+ "l = 37.5 # length 0f billet in mm\n",
+ "tau1 = sigma_0/2 # Mpa\n",
+ "Pe = sigma_x0 + (4*tau1*l)/d0 # extrusion pressure in Mpa\n",
+ "el = Pe*pi*(r0)**2 # extrusion load in MN\n",
+ "print \"Extrusion load = %d MN\"%(el/10000)"
+ ]
+ },
+ {
+ "cell_type": "markdown",
+ "metadata": {},
+ "source": [
+ "## Exa 13.11 : page 524"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 10,
+ "metadata": {
+ "collapsed": false
+ },
+ "outputs": [
+ {
+ "name": "stdout",
+ "output_type": "stream",
+ "text": [
+ "(a) Roll pressure at enter and exit = 242.5 N/mm**2\n",
+ " Roll pressure at neutral plane = 257.81 N/mm**2\n",
+ "(b) Roll pressure at neutral point when co-efficient of friction is 0.40 = 779.97 N/mm**2\n",
+ "(c) Roll pressure when 35 N/mm**2 tension is applied at neutral point = 220.60 N/mm**2\n"
+ ]
+ }
+ ],
+ "source": [
+ "from math import cos, acos, sqrt, tan, exp\n",
+ "h0 = 4.05 # thickness of plate in mm \n",
+ "h1 = 3.55 # mm\n",
+ "D = 500 # rolled diameter in mm\n",
+ "r = D/2 # rolled radius in mm\n",
+ "mu = 0.04 # coefficient of friction\n",
+ "sigma = 210 # N/mm**2\n",
+ "delta_h = h0-h1 # mm\n",
+ "p = 2*sigma/sqrt(3) # N/mm**2\n",
+ "alpha = acos(1-(delta_h/D)) # angle of contact\n",
+ "Ho = 2*sqrt(r/h1)*atan(sqrt(r/h1)*alpha)\n",
+ "Hn1 = (Ho - (log(h0/h1))/mu)/2\n",
+ "theta = sqrt(h1/r)*tan(sqrt(h1/r)*(Hn1/2)) # radians\n",
+ "hn = h1 + 2*r*(1-cos(theta)) # mm\n",
+ "pn1 = p*hn*exp(mu*Hn1)/h1 # roll pressure in N/mm**2\n",
+ "# b) roll pressure when coefficient of friction is 0.4\n",
+ "mu2 = 0.4 # coefficient of friction\n",
+ "Hn2 = (Ho - (log(h0/h1))/mu2)/2\n",
+ "theta = sqrt(h1/r)*tan(sqrt(h1/r)*(Hn2/2)) # radians\n",
+ "hn2 = h1 + r*theta**2 # mm\n",
+ "pn2 = (p*hn2*exp(mu2*Hn2))/h1 # roll pressure in N/mm**2\n",
+ "# c) if tension is applied of 35 N/mm**2\n",
+ "sigma_f = 35 # front tension in N/mm**2\n",
+ "pn3 = (p-sigma_f)*hn*exp(mu*Hn1)/h1 # roll ressure in N/mm**2\n",
+ "print \"(a) Roll pressure at enter and exit = %0.1f N/mm**2\\n Roll pressure at neutral plane = %0.2f N/mm**2\"%(p , pn1)\n",
+ "print \"(b) Roll pressure at neutral point when co-efficient of friction is 0.40 = %0.2f N/mm**2\"%(pn2)\n",
+ "print \"(c) Roll pressure when 35 N/mm**2 tension is applied at neutral point = %0.2f N/mm**2\"%(pn3)\n",
+ "# Answers vary due to round off error"
+ ]
+ },
+ {
+ "cell_type": "markdown",
+ "metadata": {},
+ "source": [
+ "## Exa 13.12 : page 526"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 11,
+ "metadata": {
+ "collapsed": false
+ },
+ "outputs": [
+ {
+ "name": "stdout",
+ "output_type": "stream",
+ "text": [
+ "Neutral plane = 1.58 degree\n"
+ ]
+ }
+ ],
+ "source": [
+ "from math import acos, atan, sqrt\n",
+ "h1 = 6.35 # thickness in mm\n",
+ "mu = 0.2 # coefficient of friction\n",
+ "r = 50 # rolled radius in cm\n",
+ "r = r*10 # mm\n",
+ "R = 30 # reduction in percent\n",
+ "h0 = h1*100/(100-R) # mm \n",
+ "delta_h = h0-h1 # mm\n",
+ "alpha = acos(1-(delta_h/(2*r))) # angle of contact\n",
+ "Ho = 2*sqrt(r/h1)*atan(sqrt(r/h1)*alpha)\n",
+ "Hn = (Ho - (log(h0/h1))/mu)/2 \n",
+ "theta = sqrt(h1/r)*tan(sqrt(h1/r)*(Hn/2)) # neutral plane in radians\n",
+ "theta = theta*180/pi # neutral plane in degrees\n",
+ "print \"Neutral plane = %0.2f degree\"%(theta)\n",
+ "# 'Answers vary due to round off error'"
+ ]
+ }
+ ],
+ "metadata": {
+ "kernelspec": {
+ "display_name": "Python 2",
+ "language": "python",
+ "name": "python2"
+ },
+ "language_info": {
+ "codemirror_mode": {
+ "name": "ipython",
+ "version": 2
+ },
+ "file_extension": ".py",
+ "mimetype": "text/x-python",
+ "name": "python",
+ "nbconvert_exporter": "python",
+ "pygments_lexer": "ipython2",
+ "version": "2.7.9"
+ }
+ },
+ "nbformat": 4,
+ "nbformat_minor": 0
+}
diff --git a/A_Textbook_of_Production_Engineering_by_P._C._Sharma/Chapter14_1.ipynb b/A_Textbook_of_Production_Engineering_by_P._C._Sharma/Chapter14_1.ipynb
new file mode 100644
index 00000000..ebc24f18
--- /dev/null
+++ b/A_Textbook_of_Production_Engineering_by_P._C._Sharma/Chapter14_1.ipynb
@@ -0,0 +1,823 @@
+{
+ "cells": [
+ {
+ "cell_type": "markdown",
+ "metadata": {},
+ "source": [
+ "# Chapter 14 : Theory of Metal Cutting"
+ ]
+ },
+ {
+ "cell_type": "markdown",
+ "metadata": {},
+ "source": [
+ "## Exa 14.1 : page 563"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 1,
+ "metadata": {
+ "collapsed": false
+ },
+ "outputs": [
+ {
+ "name": "stdout",
+ "output_type": "stream",
+ "text": [
+ "Tool life = 18 min.\n"
+ ]
+ }
+ ],
+ "source": [
+ "v1 = 18 # cutting speed in m/min\n",
+ "t1 = 3 # tool life in hours\n",
+ "n = 0.125 # exponent\n",
+ "c = v1*(t1*60)**n # constant\n",
+ "v2 = 24 # cutting speed in m/min\n",
+ "t = (c/v2)**(1/0.125) # tool life in min.\n",
+ "print \"Tool life = %d min.\"%(t)"
+ ]
+ },
+ {
+ "cell_type": "markdown",
+ "metadata": {},
+ "source": [
+ "## Exa 14.2 : page 564"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 2,
+ "metadata": {
+ "collapsed": false
+ },
+ "outputs": [
+ {
+ "name": "stdout",
+ "output_type": "stream",
+ "text": [
+ "Cutting speed = 56.5 m/min.\n"
+ ]
+ }
+ ],
+ "source": [
+ "from __future__ import division\n",
+ "c_t = 8 # tool change time in min.\n",
+ "r_t = 5 # tool re-grind time in min.\n",
+ "mr_c = 5 # machine running cost per hour\n",
+ "d = 30 # total depreciation per re-grind in paisa\n",
+ "n = 0.25 # exponent\n",
+ "c = 150 # constant\n",
+ "c_c = mr_c*c_t/60 # total change cost in Rs\n",
+ "r_c = mr_c*r_t/60 # regrind cost in Rs\n",
+ "ct = c_c+r_c+d/100 # tooling cost in Rs\n",
+ "cm = mr_c/60 # machining cost in Rs\n",
+ "v = c*((cm*n)/(ct*(1-n)))**n # cutting speed in m/min.\n",
+ "print \"Cutting speed = %0.1f m/min.\"%(v) "
+ ]
+ },
+ {
+ "cell_type": "markdown",
+ "metadata": {},
+ "source": [
+ "## Exa 14.3 : page 564"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 3,
+ "metadata": {
+ "collapsed": false
+ },
+ "outputs": [
+ {
+ "name": "stdout",
+ "output_type": "stream",
+ "text": [
+ "Drawing load = 14.262 kN\n",
+ "Power rating of motor = 9.27 kW\n",
+ "Shear angle = 31.27 degree\n",
+ "Friction angle = 31.82 degree\n",
+ "Shear stress = 236.1 N/mm**2\n",
+ "Cutting power = 1.134 kw \n",
+ "Chip velocity = 1.114 m/s\n",
+ "shear strain = 2.036\n",
+ "Shear strain rate = 86386.645 s**-1\n"
+ ]
+ }
+ ],
+ "source": [
+ "from math import pi, tan, atan, cos, sin\n",
+ "mu1 = 0.15 # coefficient of friction \n",
+ "mu2 = 0.18 # coefficient of fricton\n",
+ "alpha = 14 # angle of contact in degree\n",
+ "alpha = alpha*pi/180\n",
+ "bita = 10 # semi-cone angle in degree\n",
+ "bita = bita*pi/180\n",
+ "sigma_0 = 1.40 # kN/mm**2\n",
+ "h0 = 1.5 #mm\n",
+ "h1 = 1 # mm\n",
+ "B = (mu1+mu2)/(tan(alpha)+tan(bita))\n",
+ "sigmad = (sigma_0*(1+B)*(1-(h1/h0)**B))/B # drawing stress in kN/mm**2\n",
+ "d1 = 11 # outside diameter in mm\n",
+ "t = 1 # thickness in mm\n",
+ "d2 = d1-t # mm\n",
+ "a = (pi*((d1)**2-(d2)**2))/4 # area in mm**2\n",
+ "l = sigmad*a # load in kN\n",
+ "s = 0.65 # drawing speed in m/s\n",
+ "w = l*s # work in kJ/s\n",
+ "p = w # power in kW\n",
+ "print \"Drawing load = %0.3f kN\\nPower rating of motor = %0.2f kW\"%(l , p)\n",
+ "t = 0.127 # uncut chip thickness in mm\n",
+ "b = 6.35 # width of cut in mm\n",
+ "v = 2 # cutting speed in m/s\n",
+ "alpha = 10 # rake angle in degrees\n",
+ "fc = 567 # cutting force in N\n",
+ "ft = 227 # thrust force in N\n",
+ "tc = 0.228 # chip thickness in mm\n",
+ "r = t/tc # chip thickness ratio\n",
+ "alpha = alpha*pi/180 # rake angle in radians\n",
+ "phi = atan(r*cos(alpha)/(1-(r*sin(alpha)))) # shear angle \n",
+ "phi1 = phi*180/pi # shear angle\n",
+ "print \"Shear angle = %0.2f degree\"%(phi1) \n",
+ "mu =((fc*sin(alpha)+ft*cos(alpha))/(fc*cos(alpha)-ft*sin(alpha))) #coefficient of friction\n",
+ "bita = atan(mu) # friction angle\n",
+ "bita = bita*180/(pi)\n",
+ "print \"Friction angle = %0.2f degree\"%(bita )\n",
+ "fs = fc*cos(phi)-ft*sin(phi) #shear force in N\n",
+ "taus = (fs*sin(phi))/(b*t) # shear stress\n",
+ "print \"Shear stress = %0.1f N/mm**2\"%(taus)\n",
+ "cp = fc*v/1000 # cutting power in kw\n",
+ "print \"Cutting power = %0.3f kw \"%(cp)\n",
+ "vc = v*r # chip velocity in m/s\n",
+ "print \"Chip velocity = %0.3f m/s\"%(vc)\n",
+ "ss = 1/tan(phi) + tan(phi-alpha) # shear strain\n",
+ "print \"shear strain = %0.3f\"%(ss)\n",
+ "spl = t/sin(phi) # shear plane length\n",
+ "vs = v*cos(alpha)/cos(phi-alpha) # shear velocity\n",
+ "S = vs*10/spl # shear strain rate\n",
+ "S = S*10**3 # shear strain rate\n",
+ "print \"Shear strain rate = %.3f s**-1\"%(S)\n",
+ "# 'Answers vary due to round off error'"
+ ]
+ },
+ {
+ "cell_type": "markdown",
+ "metadata": {},
+ "source": [
+ "## Exa 14.4 : page 566"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 4,
+ "metadata": {
+ "collapsed": false
+ },
+ "outputs": [
+ {
+ "name": "stdout",
+ "output_type": "stream",
+ "text": [
+ "constant = 28.37 \n",
+ "Tool life when cutting speed increased by 20 = 14.76 min.\n",
+ "Tool life when feed rate increased by 20 = 20.38 min.\n",
+ "Tool life when depth of cut increased by 20 = 35.71 min.\n",
+ "Tool life when all taken together after increasing by 20 = 2.98 min.\n"
+ ]
+ }
+ ],
+ "source": [
+ "v = 30 # cutting speed in m/min\n",
+ "feed = 0.3 # feed rate in mm/rev.\n",
+ "d = 2.5 # depth of cut in mm\n",
+ "t = 60 # tool life in min.\n",
+ "c = v*t**0.13*feed**0.77*d**0.37 # constant\n",
+ "print \"constant = %0.2f \"%(c)\n",
+ "v2 = v*1.2 # cutting speed in m/min \n",
+ "t2 = (c/(v2*feed**0.77*d**0.37)) # tool life when cutting speed increased by 20% in min.\n",
+ "t2 = t2**(1/0.13)\n",
+ "f2 = feed*1.2 # feed rate in mm/rev.\n",
+ "t3 = (c/(v*d**0.37*f2**0.77)) # tool life when feed rate increased by 20% in min.\n",
+ "t3 = t3**(1/0.13)\n",
+ "d2 = d*1.2 # depth of cut in mm\n",
+ "t4 = (c/(v*feed**0.77*d2**0.37)) # tool life when depth of cut increased by 20% in min.\n",
+ "t4 = t4**(1/0.13)\n",
+ "t5 = (c/(v2*d2**0.37*f2**0.77)) # tool lfe in min.\n",
+ "t5 = t5**(1/0.13)\n",
+ "print \"Tool life when cutting speed increased by 20 = %0.2f min.\"%(t2)\n",
+ "print \"Tool life when feed rate increased by 20 = %0.2f min.\"%(t3)\n",
+ "print \"Tool life when depth of cut increased by 20 = %0.2f min.\"%(t4)\n",
+ "print \"Tool life when all taken together after increasing by 20 = %0.2f min.\"%(t5)\n",
+ "# 'Answers vary due to round off error'"
+ ]
+ },
+ {
+ "cell_type": "markdown",
+ "metadata": {},
+ "source": [
+ "## Exa 14.5 : page 567"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 5,
+ "metadata": {
+ "collapsed": false
+ },
+ "outputs": [
+ {
+ "name": "stdout",
+ "output_type": "stream",
+ "text": [
+ "Force of shear at shear plane = 813.80 N\n",
+ "Friction angle = 0.430 degree\n"
+ ]
+ }
+ ],
+ "source": [
+ "from math import atan, cos, sin, pi\n",
+ "t = 0.25 # uncut chip thickness in mm\n",
+ "b = 2.5 # width of cut in mm\n",
+ "v = 2.5 # cutting speed in m/s\n",
+ "alpha = 10 # rake angle in degrees\n",
+ "fc = 1130 # cutting force in N\n",
+ "ft = 295 # thrust force in N\n",
+ "tc = 0.45 # chip thickness in mm\n",
+ "r = t/tc # chip thickness ratio\n",
+ "alpha = alpha*pi/180 # rake angle in radians\n",
+ "phi = atan((r*cos(alpha))/(1-r*sin(alpha))) # shear angle \n",
+ "phi2 = phi*180/pi # shear angle\n",
+ "fs = fc*cos(phi) - ft*sin(phi) #shear force in N\n",
+ "print \"Force of shear at shear plane = %0.2f N\"%(fs)\n",
+ "mu = atan((fc*sin(alpha)+ft*cos(alpha))/(fc*cos(alpha)-ft*sin(alpha))) #friction anglele\n",
+ "print \"Friction angle = %0.3f degree\"%(mu )\n",
+ "# 'Answers vary due to round off error'"
+ ]
+ },
+ {
+ "cell_type": "markdown",
+ "metadata": {},
+ "source": [
+ "## Exa 14.6 : page 568"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 6,
+ "metadata": {
+ "collapsed": false
+ },
+ "outputs": [
+ {
+ "name": "stdout",
+ "output_type": "stream",
+ "text": [
+ "Cutting ratio = 0.323\n",
+ "Chip reduction co-efficient = 3.1\n",
+ "Shear angle = 18.78 degree\n",
+ "shear strain = 3.276\n"
+ ]
+ }
+ ],
+ "source": [
+ "from math import cos, atan, pi, tan\n",
+ "t = 0.2 # uncut chip thickness in mm\n",
+ "alpha = 15 # rake angle in degrees\n",
+ "tc = 0.62 # chip thickness in mm\n",
+ "r = t/tc # chip thickness ratio\n",
+ "crc = 1/r # chip reduction coefficient\n",
+ "print \"Cutting ratio = %0.3f\\nChip reduction co-efficient = %0.1f\"%(r , crc)\n",
+ "alpha = alpha*pi/180 # rake angle in radians\n",
+ "phi = atan(r*cos(alpha)/(1-r*sin(alpha))) # shear angle \n",
+ "phi = phi*180/pi # shear angle\n",
+ "print \"Shear angle = %0.2f degree\"%(phi) \n",
+ "ss = 1/tan(phi*pi/180) + tan((phi*pi)/180-(alpha*pi)/180) # shear strain\n",
+ "print \"shear strain = %0.3f\"%(ss)\n",
+ "# 'Answers vary due to round off error'"
+ ]
+ },
+ {
+ "cell_type": "markdown",
+ "metadata": {},
+ "source": [
+ "## Exa 14.7 : page 568"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 7,
+ "metadata": {
+ "collapsed": false
+ },
+ "outputs": [
+ {
+ "name": "stdout",
+ "output_type": "stream",
+ "text": [
+ " n = 0.224\n",
+ " C = 68.4\n",
+ " Cutting speed = 27.37 m/min.\n"
+ ]
+ }
+ ],
+ "source": [
+ "from math import log\n",
+ "v1 = 25 # cutting speed in m/min\n",
+ "t1 = 90 # tool life in min.\n",
+ "v2 = 35 # cutting speed in m/min\n",
+ "t2 = 20 # tool life in min\n",
+ "n = log(v2/v1)/log(t1/t2) # exponent\n",
+ "C = v1*(t1)**n # constant\n",
+ "t = 60 # tool life in min.\n",
+ "v = C/(t)**n # cutting speed in m/min.\n",
+ "print \" n = %0.3f\\n C = %0.1f\\n Cutting speed = %0.2f m/min.\"%(n , C,v)\n",
+ "# 'Answers vary due to round off error'"
+ ]
+ },
+ {
+ "cell_type": "markdown",
+ "metadata": {},
+ "source": [
+ "## Exa 14.8 : page 569"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 8,
+ "metadata": {
+ "collapsed": false
+ },
+ "outputs": [
+ {
+ "name": "stdout",
+ "output_type": "stream",
+ "text": [
+ " Tangential force on tool face = 858 N\n",
+ " normal force on tool face = 1225.0 N\n"
+ ]
+ }
+ ],
+ "source": [
+ "from math import ceil, cos, sin\n",
+ "t = 0.5 # uncut chip thickness in mm\n",
+ "b = 3 # width of cut in mm\n",
+ "alpha = 15 # rake angle in degrees\n",
+ "alpha = alpha*pi/180 # rake angle in radians\n",
+ "r = 0.383 # chip thickness ratio\n",
+ "mu = 0.7 # average coefficient of friction on tool face\n",
+ "bita = atan(mu) # friction angle\n",
+ "tau = 280 # yield stress in N/mm**2\n",
+ "phi = atan((r*cos(alpha))/(1-r*sin(alpha))) # shear angle \n",
+ "fc = (tau*b*t)/(1/cos(bita-alpha)*cos(phi+bita-alpha)*sin(phi)) # cutting force in N\n",
+ "ft = (fc*(mu-tan(alpha)))/(1+mu*tan(alpha)) # thrust force in N\n",
+ "F = fc*sin(alpha)+ft*cos(alpha) # tangential force on tool face in N\n",
+ "F = ceil(F)\n",
+ "N = fc*cos(alpha)-ft*sin(alpha) # normal force on tool face in N\n",
+ "print \" Tangential force on tool face = %d N\\n normal force on tool face = %0.1f N\"%(F,N)\n",
+ "# 'Answers vary due to round off error'"
+ ]
+ },
+ {
+ "cell_type": "markdown",
+ "metadata": {},
+ "source": [
+ "## Exa 14.9 : page 570"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 9,
+ "metadata": {
+ "collapsed": false
+ },
+ "outputs": [
+ {
+ "name": "stdout",
+ "output_type": "stream",
+ "text": [
+ " Cutting force= 2034.3 N\n",
+ " Thrust force = 524.3 N\n"
+ ]
+ }
+ ],
+ "source": [
+ "from math import sqrt, cos, sin, sqrt\n",
+ "t = 0.25 # uncut chip thickness in mm\n",
+ "b = 0.5 # width of cut in cm\n",
+ "v = 8.2 # cutting speed in m/min.\n",
+ "alpha = 20 # rake angle in degrees\n",
+ "alpha2 = alpha*pi/180 # rake angle in radians\n",
+ "r = 0.351 # cutting ratio\n",
+ "phi = atan(r*cos(alpha2)/(1-r*sin(alpha2))) # shear angle in radians\n",
+ "phi2 = phi*180/pi # shear angle in degrees\n",
+ "alpha2 = alpha*pi/180 # rake angle in radians\n",
+ "bita = 35+alpha-phi2 # degrees\n",
+ "s = 1/tan(phi) + tan(phi-alpha2) # shear strain\n",
+ "e = s/sqrt(3) # natural strain\n",
+ "sigma = 784*(e)**0.15 # tensile property in N/mm**2\n",
+ "tau = sigma/sqrt(3) # yield shear stress in N/mm**2\n",
+ "As = (b*10*t)/sin(phi) # shear plane area in mm**2\n",
+ "Fs = tau*As # shear gorce in N\n",
+ "R = Fs/cos(phi+(bita*pi/180)-alpha2)\n",
+ "Fc = R*cos((bita*pi/180)-alpha2) # cutting force in N\n",
+ "Ft = R*sin((bita*pi/180)-alpha2) # thrust force in N\n",
+ "print \" Cutting force= %0.1f N\\n Thrust force = %0.1f N\"%(Fc , Ft)\n",
+ "# 'Answers vary due to round off error'"
+ ]
+ },
+ {
+ "cell_type": "markdown",
+ "metadata": {},
+ "source": [
+ "## Exa 14.10 : page 571"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 10,
+ "metadata": {
+ "collapsed": false
+ },
+ "outputs": [
+ {
+ "name": "stdout",
+ "output_type": "stream",
+ "text": [
+ " Shear force = 987 N\n",
+ " Normal force = 1519.2 N\n",
+ " Friction force = 1114.9 N\n",
+ " Kinetic coefficient of friction = 0.781\n",
+ " Specific cutting energy = 4000 N/mm**2\n"
+ ]
+ }
+ ],
+ "source": [
+ "from math import pi, atan, cos, sin, tan\n",
+ "f = 0.2 # feed in mm/rev.\n",
+ "t = 0.2 # uncut chip thickness in mm\n",
+ "alpha = 10 # rake angle in degrees\n",
+ "fc = 1600 # cutting force in N\n",
+ "ft = 850 # thrust force in N\n",
+ "tc = 0.39 # chip thickness in mm\n",
+ "r = t/tc # chip thickness ratio\n",
+ "d = 2 # depth of cut in mm\n",
+ "b = 2 # mm\n",
+ "alpha2 = alpha*pi/180 # rake angle in radians\n",
+ "phi = atan(r*cos(alpha2)/(1-r*sin(alpha2))) # shear angle in radians\n",
+ "phi2 = phi*180/pi # shear angle in degree\n",
+ "fs = fc*cos(phi)-ft*sin(phi) #shear force in N\n",
+ "fn = fc*sin(phi)+ft*cos(phi) # normal force in N\n",
+ "f = fc*sin(alpha2)+ft*cos(alpha2) # friction force in N\n",
+ "mu =((fc*tan(alpha2)+ft)/(fc-ft*tan(alpha2))) #kinetic coefficient of friction\n",
+ "s = fc/(b*t) # specific cutting energy in N/mm**2\n",
+ "print \" Shear force = %d N\\n Normal force = %0.1f N\\n Friction force = %0.1f N\\n Kinetic coefficient of friction = %0.3f\"%(fs , fn ,f , mu)\n",
+ "print \" Specific cutting energy = %d N/mm**2\"%(s)\n",
+ "# 'Answers vary due to round off error'"
+ ]
+ },
+ {
+ "cell_type": "markdown",
+ "metadata": {},
+ "source": [
+ "## Exa 14.11 : page 572"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 11,
+ "metadata": {
+ "collapsed": false
+ },
+ "outputs": [
+ {
+ "name": "stdout",
+ "output_type": "stream",
+ "text": [
+ "Centre line average roughness = 43.13*10**-6m\n"
+ ]
+ }
+ ],
+ "source": [
+ "from math import sqrt, pi, sin, cos\n",
+ "cs = 20 # side cutting edge angle in degree\n",
+ "ce = 30 # end cutting edge angle in degree\n",
+ "f = 0.1 # feed in mm/rev.\n",
+ "r = 3 # nose radius in mm\n",
+ "cs2 = cs*pi/180 # side cutting edge angle in radians\n",
+ "ce2 = ce*pi/180 # end cutting edge angle in radians\n",
+ "h = (1-cos(ce2))*r + f*sin(ce2)*cos(ce2) - sqrt((2*f*r*(sin(ce2))**3)-((f**2)*(sin(ce2))**4))\n",
+ "Ra = h/4 # Centre line average roughness in mm\n",
+ "print \"Centre line average roughness = %0.2f*10**-6m\"%(Ra*10**3)\n",
+ "# 'Answers vary due to round off error'"
+ ]
+ },
+ {
+ "cell_type": "markdown",
+ "metadata": {},
+ "source": [
+ "## Exa 14.12 : page 572"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 12,
+ "metadata": {
+ "collapsed": false
+ },
+ "outputs": [
+ {
+ "name": "stdout",
+ "output_type": "stream",
+ "text": [
+ " Back rake angle = 2.61 degree\n",
+ " Side rake angle = 9.67 degree\n"
+ ]
+ }
+ ],
+ "source": [
+ "from math import atan, cos, tan, pi, sqrt\n",
+ "i = 0 # inclination angle in degree\n",
+ "alpha = 10 # orthogonal rake angle in degree\n",
+ "lemda = 75 # principal cutting edge angle in degree\n",
+ "alpha = alpha*pi/180 # orthogonal rake angle in radian\n",
+ "lemda = lemda*pi/180 # principal cutting edge angle in radian\n",
+ "alpha_b = atan(cos(lemda)*tan(alpha)+sin(lemda)*tan(i)) #back rake angle in radians\n",
+ "alpha_b = alpha_b*180/pi # back rake angle in degree\n",
+ "alpha_s = atan(sin(lemda)*tan(alpha)-cos(lemda)*tan(i)) # side rake angle in radians\n",
+ "alpha_s = alpha_s*180/pi # side rake angle in degree\n",
+ "print \" Back rake angle = %0.2f degree\\n Side rake angle = %0.2f degree\"%(alpha_b,alpha_s)"
+ ]
+ },
+ {
+ "cell_type": "markdown",
+ "metadata": {},
+ "source": [
+ "## Exa 14.13 : page 572"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 13,
+ "metadata": {
+ "collapsed": false
+ },
+ "outputs": [
+ {
+ "name": "stdout",
+ "output_type": "stream",
+ "text": [
+ " Othogonal rake angle = 5.93 degree\n",
+ " Inclination angle = 6.7 degree\n"
+ ]
+ }
+ ],
+ "source": [
+ "from math import sqrt, pi, atan, sin\n",
+ "alphab = 8 # back rake in degree\n",
+ "alphas = 4 # side rake in degree\n",
+ "cs = 15 # side cutting edge angle in degree\n",
+ "lemda = 90 - cs # approach angle in degree\n",
+ "alphab = alphab*pi/180 # back rake in radian\n",
+ "alphas = alphas*pi/180 # side rake in radian\n",
+ "cs = cs*pi/180 # side cutting edge angle in radian\n",
+ "lemda = lemda*pi/180 # approach angle in radian\n",
+ "alpha = atan(tan(alphas)*sin(lemda)+tan(alphab)*cos(lemda)) # orthogonal rake angle in radian\n",
+ "alpha = alpha*180/pi # orthogonal rake angle in degree\n",
+ "i = atan(sin(lemda)*tan(alphab)-cos(lemda)*tan(alphas)) # inclnation angle in radian\n",
+ "i = i*180/pi # inclnation angle in degree\n",
+ "print \" Othogonal rake angle = %0.2f degree\\n Inclination angle = %0.1f degree\"%(alpha , i)"
+ ]
+ },
+ {
+ "cell_type": "markdown",
+ "metadata": {},
+ "source": [
+ "## Exa 14.14 : page 573"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 14,
+ "metadata": {
+ "collapsed": false
+ },
+ "outputs": [
+ {
+ "name": "stdout",
+ "output_type": "stream",
+ "text": [
+ " Cutting power = 0.553 kw\n",
+ " Motor power = 0.65 kw\n",
+ " Specific cutting resistance = 1726.90 N/mm**2\n",
+ " Unit power = 1.727 W/(mm**3)*s\n"
+ ]
+ }
+ ],
+ "source": [
+ "cs = 15 # side cutting edge angle in degree\n",
+ "v = 0.2 # cutting speed in m/s\n",
+ "f = 0.5 # feed rate in mm/rev.\n",
+ "d = 3.2 # depth of cut in mm\n",
+ "fc = 1593*(f)**0.85*(d)**0.98 # cutting force in N\n",
+ "pc = fc*v/1000 # cutting power in kw\n",
+ "ita_mt = 0.85 # efficiency of lathe\n",
+ "pm = pc/ita_mt # motor power in kw\n",
+ "a = f*d # area of uncut chio in mm**2\n",
+ "r = fc/a # specific cutting resistance in N/mm**2\n",
+ "p = pc/(a*v)# unit power in W/(mm**3)*s\n",
+ "print \" Cutting power = %0.3f kw\\n Motor power = %0.2f kw\\n Specific cutting resistance = %0.2f N/mm**2\\n Unit power = %0.3f W/(mm**3)*s\"%(pc,pm,r,p)\n",
+ "# 'Answers vary due to round off error'"
+ ]
+ },
+ {
+ "cell_type": "markdown",
+ "metadata": {},
+ "source": [
+ "## Exa 14.15 : page 574"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 15,
+ "metadata": {
+ "collapsed": false
+ },
+ "outputs": [
+ {
+ "name": "stdout",
+ "output_type": "stream",
+ "text": [
+ "Percentage increase = 300 percent\n"
+ ]
+ }
+ ],
+ "source": [
+ "C = 400\n",
+ "n=0.5\n",
+ "a=2 # (T1/T2)**n\n",
+ "b=2**(1/n) # T2\n",
+ "i = (b-1)*100 # percentage increase\n",
+ "print \"Percentage increase = %d percent\"%(i)"
+ ]
+ },
+ {
+ "cell_type": "markdown",
+ "metadata": {},
+ "source": [
+ "## Exa 14.16 : page 574"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 16,
+ "metadata": {
+ "collapsed": false
+ },
+ "outputs": [
+ {
+ "name": "stdout",
+ "output_type": "stream",
+ "text": [
+ "The percentage of total energy that goes into overcoming friction at tool chip interface = 31.48 percent\n"
+ ]
+ }
+ ],
+ "source": [
+ "from math import acos, sin, pi\n",
+ "t = 0.127 # uncut chip thickness in mm\n",
+ "b = 6.35 # width of cut in mm\n",
+ "v = 1.20 # cutting speed in m/min.\n",
+ "alpha = 10 # rake angle in degrees\n",
+ "fc = 556.25 # cutting force in N\n",
+ "ft = 222.50 # thrust force in N\n",
+ "tc = 0.229 # chip thickness in mm\n",
+ "r = t/tc # chip thickness ratio\n",
+ "R = sqrt((fc**2)+(ft**2))\n",
+ "bita = (acos(fc/R)) + alpha*pi/180 #\n",
+ "f = R*sin(bita) # \n",
+ "fe = f*r # friction energy\n",
+ "p = (f*r*100)/fc # percentage of fricton enrgy and total energy \n",
+ "print \"The percentage of total energy that goes into overcoming friction at tool chip interface = %0.2f percent\"%(p)\n",
+ "# 'Answers vary due to round off error'"
+ ]
+ },
+ {
+ "cell_type": "markdown",
+ "metadata": {},
+ "source": [
+ "## Exa 14.17 : page 575"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 17,
+ "metadata": {
+ "collapsed": false
+ },
+ "outputs": [
+ {
+ "name": "stdout",
+ "output_type": "stream",
+ "text": [
+ " Power consumption = 1.31 W\n",
+ " Specific cutting energy = 3.08 W*s/mm**3\n",
+ " Energy consumed = 2.141 kWh\n"
+ ]
+ }
+ ],
+ "source": [
+ "from math import pi\n",
+ "D = 300 # diameter in mm\n",
+ "r = 45 # rev/min.\n",
+ "d = 2 # depth of cut in mm\n",
+ "f = 0.3 # feed in mm/rev\n",
+ "fc = 1850 # cutting force in N\n",
+ "ff = 450 # feed force in N\n",
+ "V = 2.5*10**6 # metal removed in mm\n",
+ "v = (pi*D*r)/(60*1000) # cutting velocity in m/s\n",
+ "pc = fc*v/1000 # cutting power in kW\n",
+ "fv = f*r/60*1000 # feed velocity in m/s\n",
+ "fp = fv*ff # feed power in W\n",
+ "mrr = d*f*v*60*1000 # mm**3/min.\n",
+ "ce = pc*1000*60/mrr # specific cutting energy in W*s/mm**2\n",
+ "E = ce*V/(3600*1000) # energy consumed\n",
+ "print \" Power consumption = %0.2f W\\n Specific cutting energy = %0.2f W*s/mm**3\\n Energy consumed = %0.3f kWh\"%(pc,ce,E)\n",
+ "# 'Answers vary due to round off error'"
+ ]
+ },
+ {
+ "cell_type": "markdown",
+ "metadata": {},
+ "source": [
+ "## Exa 14.18 : page 576"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 18,
+ "metadata": {
+ "collapsed": false
+ },
+ "outputs": [
+ {
+ "name": "stdout",
+ "output_type": "stream",
+ "text": [
+ " Cutting force = 247 N\n",
+ " Thrust force = -2.546 N\n",
+ " Feed force = -2.2 N\n",
+ " Radial force = -1.273 N\n",
+ " Cutting power = 388 watts\n"
+ ]
+ }
+ ],
+ "source": [
+ "from math import atan, degrees, sin, cos\n",
+ "D = 100 # diameter in mm\n",
+ "cs = 30 # side cutting edge angle in degree\n",
+ "lemda = 90 - cs # approach angle in degree\n",
+ "d = 2.5 # depth of cut in mm\n",
+ "f = 0.125 # feed in mm/rev.\n",
+ "N = 300 # turning speed of job in rev./min.\n",
+ "mu = 0.6 # coefficient of friction\n",
+ "tau = 400 # ultimate shear stress in Mpa\n",
+ "bita = degrees(atan(mu)) # friction angle in radian\n",
+ "alphas = 10 # side rake angle\n",
+ "alphab = 6 # back rake angle\n",
+ "alpha = degrees(atan(tan(alphas))*sin(lemda*pi/180)+tan(alphab*pi/180)*cos(lemda*pi/180)) # orthogonal rake angle in degree\n",
+ "phi = 45 - ( bita - alpha) # shear angle\n",
+ "Fc = tau*d*f/(1/cos((bita-alpha)*pi/180)*cos((phi+bita-alpha)*pi/180)*sin(phi*pi/180)) # cutting force in N\n",
+ "Ft = Fc*tan((bita-alpha)*pi/180) # thrust component in N\n",
+ "Ff = Ft*sin(lemda*pi/180) # feed force along axis of job in N\n",
+ "Rf = Ft*cos(lemda*pi/180) # radial force normal to axis of job in N\n",
+ "v = pi*D*N/(1000*60) # velocity in m/s\n",
+ "p = Fc*v # power in watts\n",
+ "print \" Cutting force = %d N\\n Thrust force = %0.3f N\\n Feed force = %0.1f N\\n Radial force = %0.3f N\\n Cutting power = %d watts\"%(Fc,Ft,Ff,Rf,p)\n",
+ "# 'Answers vary due to round off error'"
+ ]
+ }
+ ],
+ "metadata": {
+ "kernelspec": {
+ "display_name": "Python 2",
+ "language": "python",
+ "name": "python2"
+ },
+ "language_info": {
+ "codemirror_mode": {
+ "name": "ipython",
+ "version": 2
+ },
+ "file_extension": ".py",
+ "mimetype": "text/x-python",
+ "name": "python",
+ "nbconvert_exporter": "python",
+ "pygments_lexer": "ipython2",
+ "version": "2.7.9"
+ }
+ },
+ "nbformat": 4,
+ "nbformat_minor": 0
+}
diff --git a/A_Textbook_of_Production_Engineering_by_P._C._Sharma/Chapter15_1.ipynb b/A_Textbook_of_Production_Engineering_by_P._C._Sharma/Chapter15_1.ipynb
new file mode 100644
index 00000000..771df52c
--- /dev/null
+++ b/A_Textbook_of_Production_Engineering_by_P._C._Sharma/Chapter15_1.ipynb
@@ -0,0 +1,408 @@
+{
+ "cells": [
+ {
+ "cell_type": "markdown",
+ "metadata": {},
+ "source": [
+ "# Chapter 15 : Design & Manufacture of Cutting Tools"
+ ]
+ },
+ {
+ "cell_type": "markdown",
+ "metadata": {},
+ "source": [
+ "## Exa 15.1 : page 597"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 3,
+ "metadata": {
+ "collapsed": false
+ },
+ "outputs": [
+ {
+ "name": "stdout",
+ "output_type": "stream",
+ "text": [
+ " Horsepower at cutter = 20.60\n",
+ " Horsepower at motor = 34.34\n"
+ ]
+ }
+ ],
+ "source": [
+ "from __future__ import division\n",
+ "w = 10 # width of cut in cm\n",
+ "h = 0.32 # depth of cut in cm\n",
+ "n = 8 # number of teeth in cutter\n",
+ "ft = 0.033 # feed rate per tooth\n",
+ "N = 200 # cutter speed in rpm\n",
+ "ita = 60/100 # efficiency\n",
+ "f = n*ft*N # feed rate in cm/min.\n",
+ "mrr = w*h*f # metal removal rate in cm**3/min.\n",
+ "k = 8.2 # machinibility factor from table 15.3\n",
+ "hpc = mrr/k # horsepower at cutter\n",
+ "hpm = hpc/ita # horsepower at motor\n",
+ "print \" Horsepower at cutter = %0.2f\\n Horsepower at motor = %0.2f\"%(hpc , hpm)\n",
+ "# 'Answers vary due to round off error'"
+ ]
+ },
+ {
+ "cell_type": "markdown",
+ "metadata": {},
+ "source": [
+ "## Exa 15.2 : page 603"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 4,
+ "metadata": {
+ "collapsed": false
+ },
+ "outputs": [
+ {
+ "name": "stdout",
+ "output_type": "stream",
+ "text": [
+ " MRR = 2666.67 mm**3/s\n",
+ " Cutting power = 16000 watts\n",
+ " Torque = 1527.89 N.m\n",
+ " Cutting time = 37.5s\n"
+ ]
+ }
+ ],
+ "source": [
+ "from math import pi, sqrt\n",
+ "l = 300 # length in mm\n",
+ "w = 100 # width in mm\n",
+ "f = 0.25 # feed in mm/tooth\n",
+ "d = 3.2 # depth of cut in mm\n",
+ "D = 50 # cutter diameter in mm\n",
+ "n = 20 # number of cutter teeth\n",
+ "N = 100 # cutter speed in rev./min.\n",
+ "tf = f*n*N # table feed in mm/min.\n",
+ "mrr = w*d*tf # metal removal rate in mm**3/min.\n",
+ "mrr = mrr/60 # mm**3/s\n",
+ "p = 6*mrr # cutting power from table 14.2 in watts\n",
+ "omega = 2*pi*N/60 # rpm\n",
+ "T = p/omega # torque in N.m\n",
+ "att = sqrt((D*d)-(d**2)) # added table travel in mm\n",
+ "t = (l+att)/tf # cutting time in min.\n",
+ "t = t*60 # s\n",
+ "print \" MRR = %0.2f mm**3/s\\n Cutting power = %d watts\\n Torque = %0.2f N.m\\n Cutting time = %0.1fs\"%(mrr,p,T,t)"
+ ]
+ },
+ {
+ "cell_type": "markdown",
+ "metadata": {},
+ "source": [
+ "## Exa 15.3 : page 610"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 5,
+ "metadata": {
+ "collapsed": false
+ },
+ "outputs": [
+ {
+ "name": "stdout",
+ "output_type": "stream",
+ "text": [
+ "(i)Broaching power = 0.1355 kW\n",
+ "(ii) Broach Design\n",
+ "(a) Pitch diameter = 10.35mm\n",
+ " (b) width of land = 3.11 mm \n",
+ " depth of cutting teeth = 4.14 mm\n",
+ " Tooth fillet radius= 3.11 mm\n",
+ "(c) Length of toothed portion of broach = 124 mm\n"
+ ]
+ }
+ ],
+ "source": [
+ "from math import pi, sqrt\n",
+ "l = 35 # length of bore in mm\n",
+ "v = 0.15 # cutting speed in m/s\n",
+ "t1 = 0.01 # upper limit in mm\n",
+ "t2 = 0.05 # upper limit in mm\n",
+ "D = 32.25 # finished broach in mm\n",
+ "D1 = 32.25+t2 # mm\n",
+ "d = 32.75 # finish diameter in mm\n",
+ "d1 = 32.75 + t1 #finish diameter of hole in mm\n",
+ "s = 0.05 # mm\n",
+ "B = 1.30 # blunt broach factor\n",
+ "c = 45 # specific cutting force in N/mm**2\n",
+ "n = 3 # number of teeth cutting at a time\n",
+ "F = n*pi*d1*s*c*B # force needed for broaching in N\n",
+ "bp = F*v/1000 # Broaching power in kw\n",
+ "# broach design\n",
+ "p = 1.75*sqrt(l) # pitch in mm\n",
+ "theta = 10 # face angle in degree\n",
+ "alha1 = 1.5 # relief angle for roughing in degree\n",
+ "alha2 = 1.0 # relief angle for finishing in degree\n",
+ "w = 0.3*p # width of land in mm\n",
+ "h = 0.4*p # depth of cutting teeth in mm\n",
+ "r = 0.3*p # tooth fillet radius in mm\n",
+ "T = (d1-D1)/2 # mm\n",
+ "n = T/s # number of cutting teeth\n",
+ "n = round(n)\n",
+ "l = (n+7)*p #length of toothed portion of broach in mm\n",
+ "print \"(i)Broaching power = %0.4f kW\"%bp\n",
+ "print \"(ii) Broach Design\"\n",
+ "print \"(a) Pitch diameter = %0.2fmm\\n (b) width of land = %0.2f mm \\n depth of cutting teeth = %0.2f mm\\n Tooth fillet radius= %0.2f mm\"%(p,w,h,r)\n",
+ "print \"(c) Length of toothed portion of broach = %d mm\"%(l)\n",
+ "# 'Answers vary due to round off error'"
+ ]
+ },
+ {
+ "cell_type": "markdown",
+ "metadata": {},
+ "source": [
+ "## Exa 15.4 : page 616"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 6,
+ "metadata": {
+ "collapsed": false
+ },
+ "outputs": [
+ {
+ "name": "stdout",
+ "output_type": "stream",
+ "text": [
+ " Moment = 1024.2 kgf-mm\n",
+ " Power = 0.097 hp\n",
+ " Average force = 284 kgf\n",
+ " Thrust force = 253.4 kgf\n"
+ ]
+ }
+ ],
+ "source": [
+ "Hb = 200 # brinell hardness\n",
+ "d = 12.7 # diameter in mm\n",
+ "f = 0.254 # feed in mm/rev.\n",
+ "N = 100 # rpm\n",
+ "M = (Hb*(d)**2*f)/8 #moment in kgf-mm\n",
+ "k = 1.1 #material factor\n",
+ "p = (1.25*(d)**2*k*N*(0.056+1.5*f))/(10)**5 # power in kW\n",
+ "T1a = (1.7*M)/d # thrust force kgf\n",
+ "T1b = (3.5*M)/d # kgf\n",
+ "T1 = (T1a+T1b)/2 # average\n",
+ "w = 0.14*d # thickness in mm\n",
+ "T2a = (0.1*pi*(w)**2*Hb)/4 # thrust force kgf\n",
+ "T2b = (0.2*pi*(w)**2*Hb)/4 # thrust force kgf\n",
+ "T2 = (T2a+T2b)/2 # average\n",
+ "avg = T1+T2 # kgf\n",
+ "thrust = 1.16*k*d*(100*f)**0.85 # kgf\n",
+ "print \" Moment = %0.1f kgf-mm\\n Power = %0.3f hp\\n Average force = %d kgf\\n Thrust force = %0.1f kgf\"%(M, p ,avg , thrust)\n",
+ "# Error in textbook"
+ ]
+ },
+ {
+ "cell_type": "markdown",
+ "metadata": {},
+ "source": [
+ "## Exa 15.5 : page 617"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 7,
+ "metadata": {
+ "collapsed": false
+ },
+ "outputs": [
+ {
+ "name": "stdout",
+ "output_type": "stream",
+ "text": [
+ "1 Diameter of reamer \n",
+ " Maximum diameter of reamer = 55.030 mm \n",
+ " Minimum diameter of reamer = 55.017 mm \n",
+ " 2 Back taper = 0.05 mm \n",
+ " 3 Values of various angles \n",
+ " Rake angle = 5 degree \n",
+ " Plan approach angle = 45 degree \n",
+ " Circular land = 0.25 to 0.50 mm \n",
+ " Secondary clearance angle = 10 degree \n",
+ " 4 Length of reamer \n",
+ " Length of fluted portion = 82.5 mm \n",
+ " Length of reaming allowance = 0.18 mm \n",
+ " Length of cutting section = 2.25 mm \n",
+ " Length of guiding section = 16 mm \n",
+ " 5 Number of teeth = 14\n"
+ ]
+ }
+ ],
+ "source": [
+ "from math import ceil, sqrt\n",
+ "d = 55 # diameter in mm\n",
+ "ul = 0.035 # upper limit in mm\n",
+ "ll = 0.000 # lower limit in mm\n",
+ "Dmax = d+ul # maximum diameter of hole in mm\n",
+ "Dmin = d+ll # minimum diameter of hole in mm\n",
+ "IT = 0.035 # hole tolerence in mm\n",
+ "dmax = Dmax-0.15*IT # maximum diameter of reamer in mm\n",
+ "dmin = dmax-0.35*IT # minimum diameter of reamer in mm\n",
+ "l = ((d/4)+(d/3))/2 # length of guiding section in mm\n",
+ "Z = 1.5*sqrt(d)+2 # number of teeth\n",
+ "Z = ceil(Z)\n",
+ "print \"1 Diameter of reamer \\n Maximum diameter of reamer = %0.3f mm \\n Minimum diameter of reamer = %0.3f mm \\n 2 Back taper = 0.05 mm \\n 3 Values of various angles \\n Rake angle = 5 degree \\n Plan approach angle = 45 degree \\n Circular land = 0.25 to 0.50 mm \\n Secondary clearance angle = 10 degree \\n 4 Length of reamer \\n Length of fluted portion = 82.5 mm \\n Length of reaming allowance = 0.18 mm \\n Length of cutting section = 2.25 mm \\n Length of guiding section = %d mm \\n 5 Number of teeth = %d\"%(dmax,dmin,l,Z) \n",
+ "# Answer vary due to round off error"
+ ]
+ },
+ {
+ "cell_type": "markdown",
+ "metadata": {},
+ "source": [
+ "## Exa 15.8 : page 629"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 8,
+ "metadata": {
+ "collapsed": false
+ },
+ "outputs": [
+ {
+ "name": "stdout",
+ "output_type": "stream",
+ "text": [
+ " The width of shank = 14.0 mm\n",
+ " Height of shank = 22.45 mm\n",
+ " Shank overhang = 28.1 mm\n"
+ ]
+ }
+ ],
+ "source": [
+ "from math import pi, sqrt\n",
+ "Pm = 10 # power of motor in kw\n",
+ "v = 40 # cutting speed in m/min.\n",
+ "ita = 70 # efficiency\n",
+ "ita = ita/100\n",
+ "Pc = Pm*ita \n",
+ "Fc = (Pc*1000*60)/v # cutting force\n",
+ "sigmab = 250 # stress in Mpa\n",
+ "B = sqrt((Fc*1.25*6)/(sigmab*1.6)) # width of shank in mm\n",
+ "h = 1.6*B # hieght of shank in mm\n",
+ "l = 1.25*h # shank overang in mm\n",
+ "print \" The width of shank = %0.1f mm\\n Height of shank = %0.2f mm\\n Shank overhang = %0.1f mm\"%(B,h,l)\n",
+ "# 'Answers vary due to round off error'"
+ ]
+ },
+ {
+ "cell_type": "markdown",
+ "metadata": {},
+ "source": [
+ "## Exa 15.9 : page 630"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 9,
+ "metadata": {
+ "collapsed": false
+ },
+ "outputs": [
+ {
+ "name": "stdout",
+ "output_type": "stream",
+ "text": [
+ " Cutting speed = 0.27 m/s\n",
+ " MRR = 2025 mm**3/min.\n",
+ " Time to cut = 0.74 min.\n",
+ " Power = 115.8 watts\n",
+ " Cutting force = 444 N\n"
+ ]
+ }
+ ],
+ "source": [
+ "from math import pi, sqrt\n",
+ "l = 150 # length in mm\n",
+ "D = 12.70 # diameter in mm\n",
+ "dia = 12.19 # diameter on centre lathe in mm \n",
+ "N = 400 # spindle speed in rev./min\n",
+ "s = 203.20 # axial speed in mm/min.*####\n",
+ "v = (pi*D*N)/(1000*60) # cutting velocity in m/s\n",
+ "d = (D-dia)/2 # depth of cut in mm\n",
+ "f = s/N # feed in mm/rev.\n",
+ "Dave = (D+dia)/2 # average diameter in mm\n",
+ "V = pi*Dave*N\n",
+ "a = d*f # area of cut in mm**2\n",
+ "mrr = a*V # metal removal rate in mm**3/min.\n",
+ "T = l/(f*N) # machine timing in min.\n",
+ "c = 56 # constant from table \n",
+ "p = d*f*v*60*c # power in watts\n",
+ "omega = (2*pi*N)/60 # rpm\n",
+ "t = p/omega # torque in Nm\n",
+ "Fc = (2*t*1000)/Dave # cutting force in N\n",
+ "print \" Cutting speed = %0.2f m/s\\n MRR = %d mm**3/min.\\n Time to cut = %0.2f min.\\n Power = %0.1f watts\\n Cutting force = %d N\"%(v , mrr , T ,p ,Fc)\n",
+ "# Answers are given wrong in book"
+ ]
+ },
+ {
+ "cell_type": "markdown",
+ "metadata": {},
+ "source": [
+ "## Exa 15.10 : page 630"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 10,
+ "metadata": {
+ "collapsed": false
+ },
+ "outputs": [
+ {
+ "name": "stdout",
+ "output_type": "stream",
+ "text": [
+ " MRR = 209.44 mm**3/s\n",
+ " Cutting power = 104.720 watts\n",
+ " Torque = 1.25 N.m\n"
+ ]
+ }
+ ],
+ "source": [
+ "from math import pi, sqrt\n",
+ "f = 0.2 # feed in mm/rev.\n",
+ "N = 800 # spindle speed in rev./min.\n",
+ "d = 10 # doameter of hole in mm\n",
+ "mrr = pi*(d**2)*f*N/4 # metal removal rate in mm**3/min.\n",
+ "mrr = mrr/60 # mm**3/s\n",
+ "p = 0.5*mrr # cutting power from table 14.2 in watts\n",
+ "omega = 2*pi*N/60 # rpm\n",
+ "T = p/omega # torque in N.m\n",
+ "print \" MRR = %0.2f mm**3/s\\n Cutting power = %0.3f watts\\n Torque = %0.2f N.m\"%(mrr,p,T\n",
+ " )"
+ ]
+ }
+ ],
+ "metadata": {
+ "kernelspec": {
+ "display_name": "Python 2",
+ "language": "python",
+ "name": "python2"
+ },
+ "language_info": {
+ "codemirror_mode": {
+ "name": "ipython",
+ "version": 2
+ },
+ "file_extension": ".py",
+ "mimetype": "text/x-python",
+ "name": "python",
+ "nbconvert_exporter": "python",
+ "pygments_lexer": "ipython2",
+ "version": "2.7.9"
+ }
+ },
+ "nbformat": 4,
+ "nbformat_minor": 0
+}
diff --git a/A_Textbook_of_Production_Engineering_by_P._C._Sharma/Chapter16_1.ipynb b/A_Textbook_of_Production_Engineering_by_P._C._Sharma/Chapter16_1.ipynb
new file mode 100644
index 00000000..dfe026ea
--- /dev/null
+++ b/A_Textbook_of_Production_Engineering_by_P._C._Sharma/Chapter16_1.ipynb
@@ -0,0 +1,65 @@
+{
+ "cells": [
+ {
+ "cell_type": "markdown",
+ "metadata": {},
+ "source": [
+ "# Chapter 16 : Gear Manufacturing"
+ ]
+ },
+ {
+ "cell_type": "markdown",
+ "metadata": {},
+ "source": [
+ "## Exa 16.1 : Page 648"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 1,
+ "metadata": {
+ "collapsed": false
+ },
+ "outputs": [
+ {
+ "name": "stdout",
+ "output_type": "stream",
+ "text": [
+ " Tooth thickness = 7.851 mm\n",
+ " Chordal addendum = 5.091 mm\n"
+ ]
+ }
+ ],
+ "source": [
+ "from math import sin, pi, cos\n",
+ "n = 34 # number of teeths\n",
+ "m = 5 # module in mm\n",
+ "w = m*n*sin (pi/(n*2)) #tooth thickness in mm\n",
+ "h = m*(1+(n*(1 - cos(pi/(n*2)))/2)) # chordal addendum in mm\n",
+ "print \" Tooth thickness = %0.3f mm\\n Chordal addendum = %0.3f mm\"%(w ,h)\n",
+ "# Answers vary due to round off error"
+ ]
+ }
+ ],
+ "metadata": {
+ "kernelspec": {
+ "display_name": "Python 2",
+ "language": "python",
+ "name": "python2"
+ },
+ "language_info": {
+ "codemirror_mode": {
+ "name": "ipython",
+ "version": 2
+ },
+ "file_extension": ".py",
+ "mimetype": "text/x-python",
+ "name": "python",
+ "nbconvert_exporter": "python",
+ "pygments_lexer": "ipython2",
+ "version": "2.7.9"
+ }
+ },
+ "nbformat": 4,
+ "nbformat_minor": 0
+}
diff --git a/A_Textbook_of_Production_Engineering_by_P._C._Sharma/Chapter17_1.ipynb b/A_Textbook_of_Production_Engineering_by_P._C._Sharma/Chapter17_1.ipynb
new file mode 100644
index 00000000..ea15fdfe
--- /dev/null
+++ b/A_Textbook_of_Production_Engineering_by_P._C._Sharma/Chapter17_1.ipynb
@@ -0,0 +1,93 @@
+{
+ "cells": [
+ {
+ "cell_type": "markdown",
+ "metadata": {},
+ "source": [
+ "# Chapter 17 : Thread Manufacturing"
+ ]
+ },
+ {
+ "cell_type": "markdown",
+ "metadata": {},
+ "source": [
+ "## Exa 17.1 : Page 670"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 1,
+ "metadata": {
+ "collapsed": false
+ },
+ "outputs": [
+ {
+ "name": "stdout",
+ "output_type": "stream",
+ "text": [
+ "Best wire size = 3.464 mm\n"
+ ]
+ }
+ ],
+ "source": [
+ "d = 80 # outside diameter in mm\n",
+ "p = 6 # pitch diameter in mm\n",
+ "d = 0.5774*p # best wire size in mm\n",
+ "print \"Best wire size = %0.3f mm\"%d"
+ ]
+ },
+ {
+ "cell_type": "markdown",
+ "metadata": {},
+ "source": [
+ "## Exa 17.2 : Page 670"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 2,
+ "metadata": {
+ "collapsed": false
+ },
+ "outputs": [
+ {
+ "name": "stdout",
+ "output_type": "stream",
+ "text": [
+ " Best wire size = 1.444 mm\n",
+ " Distance over wires = 20.541 mm\n"
+ ]
+ }
+ ],
+ "source": [
+ "D = 20 # diameter in mm\n",
+ "p = 2.5 # pitch diameter in mm\n",
+ "d = 0.5774*p # mm\n",
+ "W = D+3*d-1.5156*p# best wire size in mm\n",
+ "print \" Best wire size = %0.3f mm\\n Distance over wires = %0.3f mm\"%(d, W)\n",
+ "# Answer vary due to round off error"
+ ]
+ }
+ ],
+ "metadata": {
+ "kernelspec": {
+ "display_name": "Python 2",
+ "language": "python",
+ "name": "python2"
+ },
+ "language_info": {
+ "codemirror_mode": {
+ "name": "ipython",
+ "version": 2
+ },
+ "file_extension": ".py",
+ "mimetype": "text/x-python",
+ "name": "python",
+ "nbconvert_exporter": "python",
+ "pygments_lexer": "ipython2",
+ "version": "2.7.9"
+ }
+ },
+ "nbformat": 4,
+ "nbformat_minor": 0
+}
diff --git a/A_Textbook_of_Production_Engineering_by_P._C._Sharma/Chapter21_1.ipynb b/A_Textbook_of_Production_Engineering_by_P._C._Sharma/Chapter21_1.ipynb
new file mode 100644
index 00000000..4440e2e4
--- /dev/null
+++ b/A_Textbook_of_Production_Engineering_by_P._C._Sharma/Chapter21_1.ipynb
@@ -0,0 +1,661 @@
+{
+ "cells": [
+ {
+ "cell_type": "markdown",
+ "metadata": {},
+ "source": [
+ "# Chapter 21 : Statistical Quality Control"
+ ]
+ },
+ {
+ "cell_type": "markdown",
+ "metadata": {},
+ "source": [
+ "## Exa 21.1 : page 740"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 3,
+ "metadata": {
+ "collapsed": false
+ },
+ "outputs": [
+ {
+ "name": "stdout",
+ "output_type": "stream",
+ "text": [
+ "control limits \n",
+ "For X charts \n",
+ " UCL = 11.40 cm \n",
+ " LCL = 11.10 cm\n",
+ " For R charts \n",
+ " UCl = 0.554 \n",
+ " LCL = 0.000\n"
+ ]
+ },
+ {
+ "data": {
+ "image/png": "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\nYII=\n",
+ "text/plain": [
+ "<matplotlib.figure.Figure at 0x7f9638ec0e90>"
+ ]
+ },
+ "metadata": {},
+ "output_type": "display_data"
+ }
+ ],
+ "source": [
+ "%matplotlib inline\n",
+ "from matplotlib.pyplot import plot, subplot, title, show, xlabel, ylabel\n",
+ "n = 10 # number of samples\n",
+ "A2 = 0.577\n",
+ "D3 = 0\n",
+ "D4 = 2.115\n",
+ "# number of defectives\n",
+ "x1 = 11.274\n",
+ "x2 = 11.246\n",
+ "x3 = 11.204\n",
+ "x4 = 11.294\n",
+ "x5 = 11.252\n",
+ "x6 = 11.238\n",
+ "x7 = 11.230\n",
+ "x8 = 11.276\n",
+ "x9 = 11.208\n",
+ "x10 = 11.266\n",
+ "r1 = 0.15\n",
+ "r2 = 0.20\n",
+ "r3 = 0.33\n",
+ "r4 = 0.46\n",
+ "r5 = 0.10\n",
+ "r6 = 0.15\n",
+ "r7 = 0.20\n",
+ "r8 = 0.23\n",
+ "r9 = 0.50\n",
+ "r10 = 0.30\n",
+ "x = x1+x2+x3+x4+x5+x6+x7+x8+x9+x10\n",
+ "r = r1+r2+r3+r4+r5+r6+r7+r8+r9+r10\n",
+ "Xavg = x/n\n",
+ "Ravg = r/n\n",
+ "# for X chart\n",
+ "ucl1 = Xavg + A2*Ravg\n",
+ "lcl1 = Xavg - A2*Ravg\n",
+ "# for R chart\n",
+ "ucl2 = D4*Ravg\n",
+ "lcl2 = D3*Ravg\n",
+ "print \"control limits \\nFor X charts \\n UCL = %0.2f cm \\n LCL = %0.2f cm\\n For R charts \\n UCl = %0.3f \\n LCL = %0.3f\"%(ucl1,lcl1,ucl2,lcl2)\n",
+ "# X chart\n",
+ "x=[1,2,3,4,5,6,7,8,9,10] \n",
+ "y=[11.274,11.246,11.204,11.294,11.252,11.238,11.230,11.276,11.208,11.266]\n",
+ "subplot(211)\n",
+ "plot(x,y)\n",
+ "title(\"X chart\")\n",
+ "xlabel(\"Sample No.\")\n",
+ "ylabel(\"X\")\n",
+ "# R chart\n",
+ "z = [0.15,0.20,0.33,0.46,0.10,0.15,0.20,0.23,0.50,0.30]\n",
+ "subplot(212)\n",
+ "plot(x,z)\n",
+ "title(\"R chart\")\n",
+ "xlabel(\"Sample no.\")\n",
+ "ylabel( \"R\")\n",
+ "show()"
+ ]
+ },
+ {
+ "cell_type": "markdown",
+ "metadata": {},
+ "source": [
+ "## Exa 21.2 : page 741"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 4,
+ "metadata": {
+ "collapsed": false
+ },
+ "outputs": [
+ {
+ "name": "stdout",
+ "output_type": "stream",
+ "text": [
+ " Control limits \n",
+ " Fraction defectives \n",
+ " UCL = 0.081\n",
+ " LCL = -0.0212 = 0 (-ve fraction defective is meaningless)\n",
+ " Percent defectives \n",
+ " UCL = 8.1 \n",
+ " LCL = -2.1 = 0 (-ve fraction defective is meaningless)\n"
+ ]
+ },
+ {
+ "data": {
+ "image/png": "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\n",
+ "text/plain": [
+ "<matplotlib.figure.Figure at 0x7f96388e8250>"
+ ]
+ },
+ "metadata": {},
+ "output_type": "display_data"
+ },
+ {
+ "data": {
+ "image/png": "iVBORw0KGgoAAAANSUhEUgAAAXoAAACfCAYAAAD3XhIVAAAABHNCSVQICAgIfAhkiAAAAAlwSFlz\nAAALEgAACxIB0t1+/AAAG8hJREFUeJzt3XmcXFWZ//HPNwlbCLKFLZAYZEcWwybKFlkCDgjujqgQ\nXBhlFAYElUVgQPHnAArOICrIJosyCDowDCQiqwgECPui7GFLCHuCrP38/jin0jdFdXVVd9+u6urv\n+/WqV1fd9dxbXU+deu655ygiMDOzzjWi1QUwM7NyOdCbmXU4B3ozsw7nQG9m1uEc6M3MOpwDvZlZ\nh3Ogtz6R9JikHZpcZ6KkLkmD+n8n6QeSnpP09GDud6hp5j2V9AlJsyS9Kmnjsstm/eNA38Yk7Snp\n1vxhelrS5ZK2GoDtniXp2H5uJvKjpfIXx/vqzJ8AHASsGxHjBq9krSXpGklfaXK1Zt7TE4D9ImKp\niLizyf0s0Nv7ZwPDgb5NSToI+CnwA2BFYDxwCrD7IOx7VNn76K+qMqrOohOA5yPi+X7uY8CVvP3S\nvoQliXRe7xuoTQ7QdqwnEeFHmz2ApYFXgU/VWWYx4CTgqfz4KbBonjcZeJJUk50NPA1MzfP2Bd4E\n3sj7+GOe/hjwHeAu4B/ASNKXyr3Ai8DVpFpxZf+PAtv3ULYlgBPzNl8Crs/lnQh0AXsBjwPPAYcV\n1tsC+Gve39PAfwKLFOZ3AfsBfwMeAa7N0+blY/lMVTl2BF4D3snzz8jT6x1X9XkYUeP4uoBvAQ/n\nY/gPQIX5XyYFwReAK4AJNY7h78DDedoewB3Ay8BDwM6F/4Nf53PxJHBspTzAVOAG4Pi8n0eAXfK8\nHwJv5/K/Cvysh/fpS/l9mAscVnxPScH3e7k8c4HfAcvm93Fe4bz/PS8/Dvg9MCeX5VuF/YzI238I\neAWYAawGXFf9/gFjgcvye/N8Xka1yu9HEzGl1QXwo8abArsAb9UKMoVljgFuzB+MscBfgGPyvMl5\n/aNJAfujwHxg6Tz/zMqyhe09BtwOrJo/zGvnD+AOeRuH5OA0Ki9fL9CfAvwZWCV/yLcEFqU70P8y\n72Mj4HVgnbzeJqRgPwJ4LylYHlDYbhdwJbAMsFhh2vvqnKftgFmF170d10LnoYdtdgFX5XKMBx4E\nvpLn7ZG3t04+jsOBv/R0DPl4XwJ2yPPHFc7HJcCppC/OFYCbgX3zvKmkL+yvkILy14GnCvu5Gvhy\nnfOyPim4bp3fmxPz/0wl0B9A+v8aBywC/AI4v+o43pefjwBuA44ARgGrk74Ep+T5h5C+ONfKrzcC\nlqv1/gE/ysc8Mj+2avXnsRMeLS+AHzXeFPgC8EwvyzxErsHl11OAR/PzyaSa7IjC/NnAFvn5mcCx\nVdt7lFzrz6+/D/y28FqkWuW2heXfFejzh/41YMMa8ybmD/a4wrSbgc/1cIz/BlxceN0FTK5aprdA\nP5mFA30jxzW1p+0V9jml8PobwJ/y8/8rBth8PuYD42sdA+lL78Qa+1iJ9CW4eGHa54E/5+dTybXp\n/Hp03vaK+fXV5C+fHo7hSBYO3KNJv/Iqgf6+4vtL+tJ+k+5fFMVA/0Hg8artH0r3L6gHgY/VOZfF\nQP/vwB+ANQbr8zYcHm2fix2mngfGShoREV09LDOO9LO74ok8bcE2qtZ9DRjTy35nFZ6vkrcJQESE\npFmkmm49Y4HFSTW6njxbVa4lASStDfwE2JQUeEYBt9YpY180clyN7KO4TPHcvxc4WdKJVcuvWlin\nuO5qwP/W2P57STXpZ1JKHEhfGk8UlllwHiPitbzcGFL6BOrn6VchfcEV1y9ex5gIXCKp+D/0NukL\n6JkaZR0n6cXCtJGktAukY6z3/1B0POmX6LR8PL+KiB83uK71wBdj29NfSbWrT9RZ5mnSh7FiQp7W\niJ4CQHH606QPMLDgAtx40vWAeuaSaqJrNliWolNJNck1I2JpUtqj+n+0vxcZGzmuRvYxoep5Zf0n\nSOmVZQuPJSPiph62P4va52oW6X9g+cJ2lo6IDRsoWyPH8AzpuAGQNBpYvjD/CdIvxuJxjI6I6iBf\nWfbRqmXfExG79XKM7y50xLyIODgi1iBdSzlI0vaNrGs9c6BvQxHxMumn9SmS9pA0WtIikj4qqVK7\nuQA4QtJYSWPz8r9pcBezgd6atF0I7Cppe0mLAN8mBfAbeyl7F3AG8BNJq0gaKelDkhZtoFxjSHnj\n1yStS0qJ9GY2sEYDy1X06bhqOFjSMpLGA/uTLlZCymUfJml9AElLS/pMne38Gtgnl2eEpFUlrZMD\n6jTSeVwqz1tD0rYNlq+383IRsJukrfJ7cwwLx4NfAMfl5qlIWkFSTy2+bgFelfQdSUvk93wDSZvl\n+acDx0paU8lGkparVU5Ju1aWI124fSc/rD9anTvyo+cHsCephcI8Ug3sUmDLPG8x4GRSDfVpUguc\nYqubJ6q2VWxRsSYwk9Sy4eLq+YV1Pk5qnfISKee7Xq3t1Sj34qRWQE/mda+hu9XNOyx87WDBRUNg\nG+B+UrC/jpSvva6w7DtU5eOBf8nH/yLw6RplqXUu+nRchWW6gG+S0hFzSemG4jF9kXTx8WVSbff0\nXo7h48CdpMD2d2CnPP09wM9JNeKXSBeJP5vn7V08N9XbJl0Af5DUIuekHo6j0vqp0urmERZudXMg\n8EAu10PAD3o6DlIq6HzS/+kLpC/OyrYqF6Ufydu6mXydpur9+wzpusyjpP/5WcDhrf4cdsJD+WSX\nQtIBwFfzP81pEXFyaTszGyQ5b71mRDzS6rKYNaK01I2kDUhBfnNgY9LPxGZ+YpuZ2QAoM0e/LnBz\nRLweEe+Qbm75ZIn7Mxss5f0MNitBmYH+HmAbScvlK/q7kppZmQ1pETHSaRsbSkprRx8RD+QWItNI\nN4zMJF3EWkCSa0ZmZn0QEQ33EVRq88qIOCMiNouI7UitBh6ssYwfERx11FEtL0O7PHwufC58LhZ+\nvPpqcNllwf77B+uu23z9uNRAL2nF/HcC6eaf88vcn5lZJ+jqgltvheOOg498BFZZBU48Mf0999zm\nt1d2FwgXSVqe1FnSfhHxSsn7MzMbkmbNgunTYdo0+NOfYKWVYKed4JBDYLvtYMkl+77tUgN9RDR6\nF9+wN3ny5FYXoW34XHTzuejWaedi3jy49toU2KdNg7lzYccdYeed4YQTYLUBbLpS6g1Tve5cilbu\n38xssHR1we23p6A+fXpKzWy+OUyZkmrukybBiAaT6ZKIJi7GOtCbmZWkOh2z4oopsE+Z0r90TFsF\nekmHkvr96ALuBvaJiDcK8x3ozaxjVKdjnnsu1dYrtfaBSse0TaCXNJE0ytB6EfGGpN8Bl0fE2YVl\nHOjNbMjqKR1TCe7NpGOa0WygL/Ni7Cuk1jajJb1DGkiit77MzczaWk/pmEMOgW23hTG9De/TAmWn\nbvYljUX5D+DKiPhS1XzX6M2srQ1WOqYZ7ZS6WYPUf/o2pH65/xu4KCLOKyzjQG9mbaVWOmazzbov\nopaVjmlGO6VuNgNujIjnASRdDHwYOK+40NFHH73g+eTJkzuurayZtb92T8dcc801XHPNNX1ev8wa\n/cakoL45aai2s4BbIuKUwjKu0ZvZoOspHVN5jB/f+zZaacBTN5KOB44l5dmvIA0icmBE9Do+qaTv\nkIY86yINg/bViHirMN+B3sxKV52OmTGj+2aldknHNKOMQH9nRGws6RPAbsBBwPURsVH/iupAb2bl\nqXezUjukY/qjjBx9ZZndSBdTX3Y/8mbWbuq1jjn++PZPx5SpkUB/qaQHSHn2b+Suh18vt1hmZvXV\nS8ece+7QS8eUqZHUzeLAksDLEfG2pCWBpSLi2X7v3KkbM2tCJ6djmlFGjv72iNikt2k9rLsO8NvC\npPcB34+In+X5DvRm1qOh3jqmLAOWo5e0CjCO1IXBJoCAAN5D6s6gVxHxIDApb28EqQuESxotnJkN\nL07HlKNejn4KMBVYldSNQcWrwGF92NeOwMMRMasP65pZh2r3m5U6QSOpm09FxO/7vSPpDODWiPh5\nYZpTN2bDTK10zI47dvcdM1zTMc0oo3nlZpKuioiX8g6WBb4dEUc0UahFgY8B362e5y4QzDpbJR1T\nqbU7HdO80rtAkHRHRHygatrMiJjU8E6kPYBvRMQuVdNdozfrQG4dU64yavQjJC0eEa/nHSwBLNpk\nuT4PXNDkOmY2RPhmpfbWSKA/D7gq59gF7AOc0+gOcrv7HYGv9amEZtZ2nI4ZWhrqvVLSR4Ed8svp\nEXHlgOzcqRuzIcPpmPZRysAjefzXtSJiuqTRwMiIeLXPpezergO9WZuqTsfMnbtw65hWjKxkSRl3\nxu5LSrssFxFrSFobODUidqi7YiM7d6A3axvV6Zh2HFnJklK6KQa2AG6qtLSRdHdEbNhAYZYBTgfe\nT7qr9ssRcVNhvgO9WQs5HTM0ldHq5o2IeENSZQejSEG7EScDl0fEp/N6SzZaMDMbeMV0zPTp3Tcr\n7bwznHCC0zGdqpFAf62kw0l93uwE7Eca9LsuSUsD20TE3gAR8TZpkHAzGyQ9pWN22gl+8xunY4aL\nRlI3I4Cvkvq+AbgSOL23nIukDwC/BO4jDT94G3BARLxWWMapG7MB5nRM5xvI3iuvyhdcfxQR3wV+\n1WRZRgGbAN+MiBmSTgK+BxxZXMhdIJj1T0+tY5yO6RyldYEg6T5STf4MYM/q+RFxe90NSysDf42I\n1fPrrYHvRcRuhWVcozdrklvH2EBejD2KVPuu7qa44iP1NhwRz0qaJWntiPgb6e7YexstmJl1c1e+\n1h+N5OiPjIhj+rRxaWNS88pFgYeBfSLi5cJ81+jNavDNSlZPGe3oRwBfAFaPiGMkTQBWjohb+ldU\nB3qzCqdjrBllBPpfAF3A9hGxrqTlgGkRsVn/iupAb8ObW8dYX5Vxw9QHI2KSpJkAEfGCpEX6XEKz\nYcqtY6xVGgn0b0oaWXkhaQVSDb8hkh4DXgHeAd6KiC2aLaTZUFQvHeOufG0wNRLo/xO4BFhR0nHA\np4GGhxEkdZcwOSJe6EP5zIaUWumYnXZy6xhrrUa7KV6P7v7or4qI+xvegfQosFlEPF9jnnP0NqRV\n0jGV4D5nTgrslYdHVrIyDNjF2HzRdaFJ+W9AytU3WKBHSH3cvAP8MiJOK8xzoLchpasLZs7szrO7\ndYy1wkBejL2dFNQFTABezNOXBR4HVm9wH1tFxDM5tz9d0gMRcX1lprtAsHZXScdMn57SMSuskIL6\nwQfDdts5HWPlK60LhAULSKcBl0TE5fn1R4FPRMS+Te9MOgqYFxEn5teu0VvbmT9/4dYxc+YsfLOS\n0zHWamW0o78nIjbobVoP6y4YdjAPEj4N+PeImJbnO9BbyzkdY0NNGe3on5Z0BHAuKY2zJ/BUg9tf\nCbgkD1oyCjivEuTNWunJJxduHTN2rNMx1rkaqdEvT+rgbJs86TpSrbzfzSVdo7fB4nSMdZIBT92U\nyYHeylJJx1Rq7TNmdI+sVEnHjBzZ+3bM2pEDvQ1bPaVjpkxxOsY6iwO9DRvFdMz06TB7NuywQ3c6\nZsKEVpfQrBxltLrZOiJuqJq2VUT8pcECjQRuBZ6MiI9VzXOgt4Z1dcEdd3Tn2WfMgE03Xbh1jNMx\nNhyUEehnRsSk3qbVWf8gYFNgqYjYvWqeA73V5XSM2bsN5ODgHwI+DKyQg3Vlo0sBDbUqlrQa8E/A\nD4GDGi2UDV/10jE//rHTMWZ9Ua8d/aKkoD4y/614hdSDZSN+ChwCvKdPpbOOVy8dc/bZTseYDYQe\nA31EXAtcK+msiHis2Q1L2g2YExEzJU3uaTn3dTP89JSO+fa3nY4xq2Uw+rpZBzgYmEj3F0NExPa9\nrHcc8CXgbWBxUq3+9xGxV2EZ5+iHgVo3K7l1jFnflXEx9i7gVFJvlu/kyRERtzVRqO2Ag93qZnio\nvlnpllve3XeM0zFmfVdGXzdvRcSp/ShThSN6B3M6xqx9NVKjPxp4DrgYeKMy3X3dDG++WcmsdcpI\n3TxGjdp4RDQ68Ei9bTvQDxG10jGbbgo77+x0jNlgcxcINmB8s5JZeyqjRr8k6WanCRHxNUlrAetE\nxGUNFGZx4FpgMVK7/D9GxKGF+Q70bcStY8yGhjIC/YXAbcBeEfH+HPhvjIiNGyzQ6Ih4TdIo4AZS\n65sb8jwH+hZy6xizoamMVjdrRMRnJf0zQETMzyNGNSQiXstPFyXdZdvvi7jWd24dYzb8NBLo35C0\nROWFpDUotL7pjaQRpDb4awCnRsR9TZfS+qynkZV22sl9x5gNF40E+qOBK4DVJJ0PbAVMbXQHEdEF\nfEDS0sCVkiZHxDULNu4uEAZUvXTMOec4HWM2FJXeBQKApLHAlvnlTRExt087k74P/CMiTsivnaMf\nAG4dYza8lHEx9pPAnyPipfx6GWByRPyhgcKMBd6OiJdy+udK0sDiV+X5DvR9UC8d49YxZp2vjEB/\nZ3ULG0l3RMQHGijMhsDZpP7rRwC/iYjjC/Md6Bvg1jFmVlRGq5taG2sorETE3cAmjRbGulWnY5Zf\nPt2F6tYxZtasRmr0ZwIvAqeQgv6/AstGxNR+79w1+gVq9R3jdIyZ1VLWnbFHAjvkSdOBH0TE/D6X\nsnvbwzbQe6BrM+urAQ30+W7W6RHxkT4WZjxwDrAiqWO0X0XEzwrzh1Wgd+sYMxsIZdTorwI+VWl1\n02RhVgZWjog7JI0hdaXw8Yi4P8/v6EDvdIyZlaGMi7HzgbslTc/PIY0wtX9vK0bEs8Cz+fk8SfcD\n44D7Gy3gUOKBrs2sHTVSo5+an1YWFCnQn93UjqSJpJ4s3x8R8/K0IV+jdzrGzAbbgNfoI+IsSaNJ\n3RQ/0MdCjQEuAg6oBPmKodYFQr10jPuOMbMylN4FgqTdgeOBxSJioqRJpLtbd29oB9IiwGXA/0XE\nSVXz2r5G79YxZtZuyrgYezuwPXB1REzK0+6JiA0aKIxId8Y+HxEH1pjfloHe6Rgza2dlXIx9K/dV\nU5zW1eD2twK+CNwlaWaedmhEXNFoAQdDJR1TCe5Ox5hZJ2kk0N8r6QvAqDyM4P7AjY1sPI8kNaIf\n5StFvXTMWWfBJps4HWNmnaOR1M1o4AhgSp50JXBsRLze750PYurG6Rgz6xQDlqPP3Qp/HVgTuAs4\nIyLeGpBSdu+jtEBfKx3jga7NrBMMZKC/EHiTNKD3LsDjEXFAk4U5A9gVmBMRG9aYP2CB3q1jzGy4\nGMhAf3clOOc+b2ZUWt00UZhtgHnAOWUEeqdjzGw4GshWN29XnkTE21WtbhoSEdfnO2IHxPz5cN11\n3bX2YjrGrWPMzGqrF+g3kvRq4fUShdcREe8psVyA+44xMxsIPQb6iGhJCO0pHXPQQSkds9RSrSiV\nmdnQ1Ug7+lIddtjRPP44PPwwPPvsZObNm+x0jJlZQel93fRXztFf2tPF2DFjwq1jzMyaMOB93fSz\nMBcA2wHLA3OAIyPizML8eOWVcDrGzKwJbRXoe915m3ZqZmbWzpoN9G3XD42ZmQ0sB3ozsw7nQG9m\n1uFKDfSSdpH0gKS/S/pumfsa6vrTdKrT+Fx087no5nPRd6UFekkjgf8idYi2PvB5SeuVtb+hzv/E\n3XwuuvlcdPO56Lsya/RbAA9FxGO5e+PfAnuUuD8zM6uhzEC/KjCr8PrJPM3MzAZRae3oJX0K2CUi\nvpZffxH4YER8q7CMG9GbmfXBQA8O3ldPAeMLr8eTavULNFNQMzPrmzJTN7cCa0maKGlR4HPA/5S4\nPzMzq6G0Gn0erOSbpMHERwK/joj7y9qfmZnV1tK+bszMrHwtuzPWN1MlksZLulrSvZLukbR/q8vU\napJGSpop6dJWl6WVJC0j6SJJ90u6T9KWrS5Tq0g6NH9G7pZ0vqTFWl2mwSLpDEmzJd1dmLacpOmS\n/iZpmqRl6m2jJYHeN1Mt5C3gwIh4P7Al8K/D+FxUHADcBwz3n5snA5dHxHrARsCwTH3mMS2+BmyS\nx7UYCfxzK8s0yM4kxcqi7wHTI2Jt4Kr8uketqtH7ZqosIp6NiDvy83mkD/O41paqdSStBvwTcDow\nbFtlSVoa2CYizoB0zSsiXm5xsVrlFVKFaLSkUcBoUqu+YSEirgderJq8O3B2fn428PF622hVoPfN\nVDXkmssk4ObWlqSlfgocAnS1uiAttjrwnKQzJd0u6TRJo1tdqFaIiBeAE4EngKeBlyLiT60tVcut\nFBGz8/PZwEr1Fm5VoB/uP8nfRdIY4CLggFyzH3Yk7QbMiYiZDOPafDYK2AT4eURsAsynl5/nnUrS\nGsC/ARNJv3bHSPpCSwvVRvLoTXVjaqsCfa83Uw0nkhYBfg+cGxF/aHV5WujDwO6SHgUuALaXdE6L\ny9QqTwJPRsSM/PoiUuAfjjYDboyI5yPibeBi0v/KcDZb0soAklYhDdXao1YFet9MlUkS8Gvgvog4\nqdXlaaWIOCwixkfE6qSLbX+OiL1aXa5WiIhngVmS1s6TdgTubWGRWukBYEtJS+TPy46ki/XD2f8A\ne+fnewN1K4hldoHQI99MtZCtgC8Cd0mamacdGhFXtLBM7WK4p/i+BZyXK0MPA/u0uDwtERF35l92\nt5Ku3dwO/Kq1pRo8ki4AtgPGSpoFHAn8P+BCSV8BHgM+W3cbvmHKzKyzeShBM7MO50BvZtbhHOjN\nzDqcA72ZWYdzoDcz63AO9GZmHc6B3oYUSYfn7pzvzF0Zb1Hy/q6RtGkTy58l6cnc9h1JY/OdvmYt\n05Ibpsz6QtKHgF2BSRHxlqTlgLL7Je+1H5Ea3ga+DPxi4Itj1jzX6G0oWRmYm7u2JiJeiIhnACR9\nX9IteWCKX1ZWyDXyn0iakQfw2FzSJXnAhmPzMhPzIDjn5gE+/lvSEtU7lzRF0o2SbpN0oaQla5Qx\nSP3IHyhpRNX6knR8LuNdkurezWg2UBzobSiZBoyX9KCkUyRtW5j3XxGxRR6YYoncEyakwPtGRGwO\nnAr8Efg6sAEwVdKyebm1gVMiYn1S/+f7FXcsaSxwOLBDRGwK3AYc1EM5nwBuAPZi4V8DnwQ2Jg0i\nsiNwfKVjKrMyOdDbkBER84FNgX2B54DfSap07LS9pJsk3QVsTxq5rKLSYd49wD0RMTsi3gQeobsX\n1VkR8df8/Fxg68L6Io3+tT5wY+6TaC9gQk9FBX5E6le/+BnbGjg/kjnAtcDmDZ8Asz5yjt6GlIjo\nIgXIa/MYmntL+i3wc9JQc09JOgpYvLDaG/lvV+F55XXlM1CseYvaefnpEbFng+V8SNIdpJ5ZF0zm\n3f3su7MpK51r9DZkSFpb0lqFSZNIPfctTgqYz+cBXD7Th81PKAy+vSdwfWFeADcBW+VBMJC0ZFVZ\nFipq/vtD4GC6g/n1wOckjZC0ArAtcEsfymrWFAd6G0rGAGdJulfSncC6wNF5LNXTSKmZK+h5KMZ6\nLWgeJA3Mfh+wNCmf371ixFxgKnBB3veNwDp19kNE3EfK5Ve2cQlwF3AnaUDnQyJijqRxkv633oGb\n9Ye7KbZhL4/Ve2m+kGvWcVyjN0tc47GO5Rq9mVmHc43ezKzDOdCbmXU4B3ozsw7nQG9m1uEc6M3M\nOtz/Bw0zxXUEgApzAAAAAElFTkSuQmCC\n",
+ "text/plain": [
+ "<matplotlib.figure.Figure at 0x7f963889ec50>"
+ ]
+ },
+ "metadata": {},
+ "output_type": "display_data"
+ }
+ ],
+ "source": [
+ "from __future__ import division\n",
+ "from math import sqrt\n",
+ "%matplotlib inline\n",
+ "from matplotlib.pyplot import plot, subplot, xlabel, ylabel, show, title\n",
+ "from numpy import arange\n",
+ "n = 100 # total number of sub groups\n",
+ "s = 10 # number of samples\n",
+ "# number of defectives\n",
+ "d = [3,2,3,5,3,3,2,4,3,2]\n",
+ "p = sum(d) # total number of defectives\n",
+ "pbar = p/(n*s) # average fraction of defectives\n",
+ "sigmapbar = sqrt(pbar*(1-pbar)/n)\n",
+ "ucl1 = pbar + 3*sigmapbar\n",
+ "lcl1 = pbar - 3*sigmapbar\n",
+ "# percent defective (mean)\n",
+ "pbar = pbar*100\n",
+ "sigmap2 = sqrt(pbar*(100-pbar)/n)\n",
+ "ucl2 = pbar + 3*sigmap2\n",
+ "lcl2 = pbar - 3*sigmap2\n",
+ "print \" Control limits \\n Fraction defectives \\n UCL = %0.3f\\n LCL = %0.4f = %d (-ve fraction defective is meaningless)\\n Percent defectives \\n UCL = %0.1f \\n LCL = %0.1f = %d (-ve fraction defective is meaningless)\"%( ucl1,lcl1,lcl1,ucl2,lcl2,0)\n",
+ "\n",
+ "# control chart for fraction defectives\n",
+ "x = arange(0,10.2,1.111)\n",
+ "y = arange(0,0.081,0.009)\n",
+ "subplot(211)\n",
+ "plot(x, y)\n",
+ "title(\"Control chart for fraction defectives\")\n",
+ "xlabel(\"Samples\")\n",
+ "ylabel(\"Fraction defectives\")\n",
+ "show()\n",
+ "# control chart for percent defect\n",
+ "#z = linspace(0,8.1,10)\n",
+ "z = arange(0.8,9,0.9)\n",
+ "\n",
+ "subplot(212)\n",
+ "plot(x,z)\n",
+ "title(\"Control chart for percent defects\")\n",
+ "xlabel(\"Sample No.\")\n",
+ "ylabel(\"Percent defects\")\n",
+ "show()\n",
+ "\n"
+ ]
+ },
+ {
+ "cell_type": "markdown",
+ "metadata": {},
+ "source": [
+ "## Exa 21.4 : page 742"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 5,
+ "metadata": {
+ "collapsed": false
+ },
+ "outputs": [
+ {
+ "name": "stdout",
+ "output_type": "stream",
+ "text": [
+ "Proabilities for 0,1,2 and 3 defectives are : 0.819 ,0.1637, 0.0164, 0.00109\n"
+ ]
+ }
+ ],
+ "source": [
+ "from math import exp, factorial\n",
+ "n = 1000 # number of units\n",
+ "s = 4 # random sample\n",
+ "d = 50 # defectives\n",
+ "z = d*s/n\n",
+ "pp0 = exp(-0.2)*1 # poisson probabilities for 0 defectives\n",
+ "pp1 = exp(-0.2)*(z) # poisson probabilities for 1 defectives\n",
+ "pp2 = exp(-0.2)*(z**2/factorial(2)) # poisson probabilities for 2 defectives\n",
+ "pp3 = exp(-0.2)*(z**3/factorial(3))# poisson probabilities for 3 defectives\n",
+ "print \"Proabilities for 0,1,2 and 3 defectives are : %0.3f ,%0.4f, %0.4f, %0.5f\"%(pp0,pp1,pp2,pp3)"
+ ]
+ },
+ {
+ "cell_type": "markdown",
+ "metadata": {},
+ "source": [
+ "## Exa 21.5 : page 744"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 6,
+ "metadata": {
+ "collapsed": false
+ },
+ "outputs": [
+ {
+ "name": "stdout",
+ "output_type": "stream",
+ "text": [
+ " Proabilities for 0,1,2 and 3 defectives are : 0.8145 0.1715 0.0135 0.000475\n"
+ ]
+ }
+ ],
+ "source": [
+ "from __future__ import division\n",
+ "d = 50 # defectives\n",
+ "l = 1000 # lot of pieces\n",
+ "p = d/l # proability of an event happening\n",
+ "q = 1-p # proability of an event not happening\n",
+ "n = 4 # sample size\n",
+ "p0 = q**n #probabilities for 0 defectives\n",
+ "p1 = 4*(q)**3*p # probabilities for 1 defectives\n",
+ "p2 = 6*(q)**2*p**2 # probabilities for 2 defectives\n",
+ "p3 = 4*q*(p)**3 # probabilities for 3 defectives\n",
+ "print \" Proabilities for 0,1,2 and 3 defectives are : %0.4f %0.4f %0.4f %0.6f\"%(p0,p1,p2,p3)"
+ ]
+ },
+ {
+ "cell_type": "markdown",
+ "metadata": {},
+ "source": [
+ "## Exa 21.6 : page 747"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 7,
+ "metadata": {
+ "collapsed": false
+ },
+ "outputs": [
+ {
+ "name": "stdout",
+ "output_type": "stream",
+ "text": [
+ " Producers risk = 5 percent\n",
+ " Consumers risk = 13.07 percent\n"
+ ]
+ }
+ ],
+ "source": [
+ "from math import ceil\n",
+ "# producer's risk\n",
+ "n = 71 # sample size\n",
+ "AQL = 0.005\n",
+ "LTPD = 0.05\n",
+ "l_s = 500 # lot size\n",
+ "z1 = n*AQL # mean number of defects\n",
+ "pp1 = exp(-z1)+z1*exp(-z1) # poisson proability for 1 or less defective\n",
+ "alpha = (1-pp1)*100 # producer's risk\n",
+ "alpha = ceil(alpha)\n",
+ "# consumer's risk\n",
+ "z2 = n*LTPD # mean number of defects\n",
+ "pp2 = exp(-z2)+z2*exp(-z2) # poisson proability for 1 or less defective\n",
+ "bita = pp2*100 # consumer's risk\n",
+ "print \" Producers risk = %d percent\\n Consumers risk = %0.2f percent\"%( alpha,bita)"
+ ]
+ },
+ {
+ "cell_type": "markdown",
+ "metadata": {},
+ "source": [
+ "## Exa 21.7 : page 748"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 8,
+ "metadata": {
+ "collapsed": false
+ },
+ "outputs": [
+ {
+ "name": "stdout",
+ "output_type": "stream",
+ "text": [
+ " Preliminary control limits \n",
+ " UCL = 0.118 \n",
+ " LCL = 0.013 \n",
+ " Revised control limits \n",
+ " UCL = 0.109 \n",
+ " LCL = 0.009\n"
+ ]
+ }
+ ],
+ "source": [
+ "from math import sqrt\n",
+ "td1= 20 # total number of days\n",
+ "n1 = 200 # sample size \n",
+ "# number of defectives\n",
+ "d1 = 10 \n",
+ "d2 = 15\n",
+ "d3 = 10\n",
+ "d4 = 12\n",
+ "d5 = 11\n",
+ "d6 = 9\n",
+ "d7 = 22\n",
+ "d8 = 4\n",
+ "d9 = 12\n",
+ "d10 = 24\n",
+ "d11 = 21\n",
+ "d12 = 15\n",
+ "d13 = 8\n",
+ "d14 = 14\n",
+ "d15 = 4\n",
+ "d16 = 10\n",
+ "d17 = 11\n",
+ "d18 = 11\n",
+ "d19 = 26 \n",
+ "d20 = 13\n",
+ "d = d1+d2+d3+d4+d5+d6+d7+d8+d9+d10+d11+d12+d13+d14+d15+d16+d17+d18+d19+d20 # total number of defectives\n",
+ "p1 = d/(n1*td1) # average fraction of defectives\n",
+ "sigmap1 = sqrt(p1*(1-p1)/n1)\n",
+ "ucl1 = p1 + 3*sigmap1\n",
+ "lcl1 = p1 - 3*sigmap1\n",
+ "# revised control limits\n",
+ "td2 = 18 # total number of days\n",
+ "D = d - (d10+d19) # number of defects\n",
+ "p2 = D/(n1*td2)\n",
+ "sigmap2 = sqrt(p2*(1-p2)/n1)\n",
+ "ucl2 = p2 + 3*sigmap2\n",
+ "lcl2 = p2 - 3*sigmap2\n",
+ "print \" Preliminary control limits \\n UCL = %0.3f \\n LCL = %0.3f \\n Revised control limits \\n UCL = %0.3f \\n LCL = %0.3f\"%(ucl1,lcl1,ucl2,lcl2)"
+ ]
+ },
+ {
+ "cell_type": "markdown",
+ "metadata": {},
+ "source": [
+ "## Exa 21.8 : page 750"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 9,
+ "metadata": {
+ "collapsed": false
+ },
+ "outputs": [
+ {
+ "name": "stdout",
+ "output_type": "stream",
+ "text": [
+ " Preliminary control limits \n",
+ " UCL = 89.58 \n",
+ " LCL = 41.08 \n",
+ " Revised control limits \n",
+ " UCL = 86.713 \n",
+ " LCL = 39.121\n"
+ ]
+ }
+ ],
+ "source": [
+ "from math import sqrt, exp\n",
+ "n1 = 15 # total number of sub groups\n",
+ "# number of defectives\n",
+ "d1 = 77\n",
+ "d2 = 64\n",
+ "d3 = 75\n",
+ "d4 = 93\n",
+ "d5 = 45\n",
+ "d6 = 61\n",
+ "d7 = 49\n",
+ "d8 = 65\n",
+ "d9 = 45\n",
+ "d10 = 77\n",
+ "d11 = 59\n",
+ "d12 = 54\n",
+ "d13 = 84\n",
+ "d14 = 40\n",
+ "d15 = 92\n",
+ "d = d1+d2+d3+d4+d5+d6+d7+d8+d9+d10+d11+d12+d13+d14+d15 # total number of defectives\n",
+ "c1 = d/n1\n",
+ "ucl1 = c1 + 3*sqrt(c1)\n",
+ "lcl1 = c1 - 3*sqrt(c1)\n",
+ "# revised control limits\n",
+ "n2 = 12 # total number of sub groups\n",
+ "D = d - (d4+d14+d15) # number of defects\n",
+ "c2 = D/n2\n",
+ "ucl2 = c2 + 3*sqrt(c2)\n",
+ "lcl2 = c2 - 3*sqrt(c2)\n",
+ "print \" Preliminary control limits \\n UCL = %0.2f \\n LCL = %0.2f \\n Revised control limits \\n UCL = %0.3f \\n LCL = %0.3f\"%(ucl1,lcl1,ucl2,lcl2)"
+ ]
+ },
+ {
+ "cell_type": "markdown",
+ "metadata": {},
+ "source": [
+ "## Exa 21.9 : page 750"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 10,
+ "metadata": {
+ "collapsed": false
+ },
+ "outputs": [
+ {
+ "name": "stdout",
+ "output_type": "stream",
+ "text": [
+ " Preliminary control limits \n",
+ " For X charts \n",
+ " UCL = 3754.85 \n",
+ " LCL = 3165.15\n",
+ " For R charts \n",
+ " UCl = 1080.765 \n",
+ " LCL = 0.000 \n",
+ " Revised control limits \n",
+ " For X chart \n",
+ " UCL = 3673.686 \n",
+ " LCL = 3673.686\n",
+ " For R charts \n",
+ " UCl = 1012.974 \n",
+ " LCL = 0.000\n"
+ ]
+ }
+ ],
+ "source": [
+ "n = 20 # number of samples\n",
+ "A = 1.342\n",
+ "A1 = 1.596\n",
+ "A2 = 0.577\n",
+ "d2 = 2.326\n",
+ "d3 = 0.864\n",
+ "D1 = 0\n",
+ "D2 = 4.918\n",
+ "D3 = 0\n",
+ "D4 = 2.115\n",
+ "# number of defectives\n",
+ "x1 = 3290\n",
+ "x2 = 3180\n",
+ "x3 = 3350\n",
+ "x4 = 3470\n",
+ "x5 = 3080\n",
+ "x6 = 3240\n",
+ "x7 = 3260\n",
+ "x8 = 3310\n",
+ "x9 = 3640\n",
+ "x10 = 4110\n",
+ "x11 = 3220\n",
+ "x12 = 3590\n",
+ "x13 = 4270\n",
+ "x14 = 4040\n",
+ "x15 = 3580\n",
+ "x16 = 3500\n",
+ "x17 = 3570\n",
+ "x18 = 3560\n",
+ "x19 = 2740\n",
+ "x20 = 3200\n",
+ "r1 = 560\n",
+ "r2 = 410\n",
+ "r3 = 200\n",
+ "r4 = 300\n",
+ "r5 = 90\n",
+ "r6 = 650\n",
+ "r7 = 890\n",
+ "r8 = 410\n",
+ "r9 = 1120\n",
+ "r10 = 520\n",
+ "r11 = 580\n",
+ "r12 = 670\n",
+ "r13 = 480\n",
+ "r14 = 250\n",
+ "r15 = 170\n",
+ "r16 = 670\n",
+ "r17 = 440\n",
+ "r18 = 660\n",
+ "r19 = 560\n",
+ "r20 = 590\n",
+ "x = x1+x2+x3+x4+x5+x6+x7+x8+x9+x10+x11+x12+x13+x14+x15+x16+x17+x18+x19+x20\n",
+ "r = r1+r2+r3+r4+r5+r6+r7+r8+r9+r10+r11+r12+r13+r14+r15+r16+r17+r18+r19+r20\n",
+ "Xavg = x/n\n",
+ "Ravg = r/n\n",
+ "# for X chart\n",
+ "ucl1 = Xavg + A2*Ravg\n",
+ "lcl1 = Xavg - A2*Ravg\n",
+ "# for R chart\n",
+ "ucl2 = D4*Ravg\n",
+ "lcl2 = D3*Ravg\n",
+ "# Revised control limits\n",
+ "n1 = 15\n",
+ "n2 = 19\n",
+ "X = (x - (x5+x10+x13+x14+x19))/n1\n",
+ "R = (r - (r9))/n2\n",
+ "# for X chart\n",
+ "ucl3 = X + A2*R\n",
+ "lcl3 = X - A2*R\n",
+ "# for R chart\n",
+ "ucl4 = D4*R\n",
+ "lcl4 = D3*R\n",
+ "print \" Preliminary control limits \\n For X charts \\n UCL = %0.2f \\n LCL = %0.2f\\n For R charts \\n UCl = %0.3f \\n LCL = %0.3f \\n Revised control limits \\n For X chart \\n UCL = %0.3f \\n LCL = %0.3f\\n For R charts \\n UCl = %0.3f \\n LCL = %0.3f\"%(ucl1,lcl1,ucl2,lcl2,ucl3,ucl3,ucl4,lcl4)\n",
+ "# 'Answers vary due to round off error'"
+ ]
+ },
+ {
+ "cell_type": "markdown",
+ "metadata": {},
+ "source": [
+ "## Exa 21.10 : page 752"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 11,
+ "metadata": {
+ "collapsed": false
+ },
+ "outputs": [
+ {
+ "name": "stdout",
+ "output_type": "stream",
+ "text": [
+ " Producers risk = 26.42 percent\n",
+ " Consumers risk = 9.158 percent\n"
+ ]
+ },
+ {
+ "data": {
+ "image/png": "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\n",
+ "text/plain": [
+ "<matplotlib.figure.Figure at 0x7f9638ae2950>"
+ ]
+ },
+ "metadata": {},
+ "output_type": "display_data"
+ }
+ ],
+ "source": [
+ "from math import exp\n",
+ "%matplotlib inline\n",
+ "from matplotlib import pyplot as plt\n",
+ "\n",
+ "n = 50 # sample size\n",
+ "rn = 2 # rejection number\n",
+ "AQL = 0.02\n",
+ "LTPD = 0.08\n",
+ "# Producer's risk\n",
+ "z1 = n*AQL # mean number of defectives\n",
+ "pp1 = exp(-z1)+z1*exp(-z1) # poisson proability for 1 or less defective\n",
+ "alpha = (1-pp1)*100 # producer's risk\n",
+ "# consumer's risk\n",
+ "z2 = n*LTPD # mean number of defectives\n",
+ "bita = (exp(-z2)+z2*exp(-z2))*100 # consumer's risk\n",
+ "d1 = 1 # incoming defective in percent\n",
+ "z3 = n*d1/100 # average number of defective\n",
+ "ppa1 = exp(-z3)+z3*exp(-z3) # proability of acceptance\n",
+ "ppa1 = ppa1*100\n",
+ "ppr1 = 100-ppa1 # proability of rejection\n",
+ "AOQ1 = ppr1*0 + ppa1*d1/100\n",
+ "d2 = 2 # incoming defective in percent\n",
+ "z4 = n*d2/100 # average number of defective\n",
+ "ppa2 = exp(-z4)+z4*exp(-z4) # proability of acceptance\n",
+ "ppa2 = ppa2*100\n",
+ "ppr2 = 100-ppa2 # proability of rejection\n",
+ "AOQ2 = ppr2*0 + ppa2*d2/100\n",
+ "d3 = 4 # incoming defective in percent\n",
+ "z5 = n*d3/100 # average number of defective\n",
+ "ppa3 = exp(-z5)+z5*exp(-z5) # proability of acceptance\n",
+ "ppa3 = ppa3*100\n",
+ "ppr3 = 100-ppa3 # proability of rejection\n",
+ "AOQ3 = ppr3*0 + ppa3*d3/100\n",
+ "d4 = 6 # incoming defective in percent\n",
+ "z6 = n*d4/100 # average number of defective\n",
+ "ppa4 = exp(-z6)+z6*exp(-z6) # proability of acceptance\n",
+ "ppa4 = ppa4*100\n",
+ "ppr4 = 100-ppa4 # proability of rejection\n",
+ "AOQ4 = ppr4*0 + ppa4*d4/100\n",
+ "d5 = 8 # incoming defective in percent\n",
+ "z7 = n*d5/100 # average number of defective\n",
+ "ppa5 = exp(-z7)+z7*exp(-z7) # proability of acceptance\n",
+ "ppa5 = ppa5*100\n",
+ "ppr5 = 100-ppa5 # proability of rejection\n",
+ "AOQ5 = ppr5*0 + ppa5*d5/100\n",
+ "print \" Producers risk = %0.2f percent\\n Consumers risk = %0.3f percent\"%( alpha,bita)\n",
+ "x = [1,2,4,6,8]\n",
+ "y = [0.91,1.4716,1.624,1.194,0.733]\n",
+ "plt.plot(x,y)\n",
+ "plt.title(\"AOQ curve\")\n",
+ "plt.xlabel(\"Percent dectives\")\n",
+ "plt.ylabel(\"AOQ of lot\")\n",
+ "plt.show()\n",
+ "\n",
+ "\n",
+ " "
+ ]
+ }
+ ],
+ "metadata": {
+ "kernelspec": {
+ "display_name": "Python 2",
+ "language": "python",
+ "name": "python2"
+ },
+ "language_info": {
+ "codemirror_mode": {
+ "name": "ipython",
+ "version": 2
+ },
+ "file_extension": ".py",
+ "mimetype": "text/x-python",
+ "name": "python",
+ "nbconvert_exporter": "python",
+ "pygments_lexer": "ipython2",
+ "version": "2.7.9"
+ }
+ },
+ "nbformat": 4,
+ "nbformat_minor": 0
+}
diff --git a/A_Textbook_of_Production_Engineering_by_P._C._Sharma/Chapter22_1.ipynb b/A_Textbook_of_Production_Engineering_by_P._C._Sharma/Chapter22_1.ipynb
new file mode 100644
index 00000000..0b492269
--- /dev/null
+++ b/A_Textbook_of_Production_Engineering_by_P._C._Sharma/Chapter22_1.ipynb
@@ -0,0 +1,365 @@
+{
+ "cells": [
+ {
+ "cell_type": "markdown",
+ "metadata": {},
+ "source": [
+ "# Chapter 22 : Kinematics of Machine Tools"
+ ]
+ },
+ {
+ "cell_type": "markdown",
+ "metadata": {},
+ "source": [
+ "## Exa 22.2 : page 778"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 1,
+ "metadata": {
+ "collapsed": false
+ },
+ "outputs": [
+ {
+ "name": "stdout",
+ "output_type": "stream",
+ "text": [
+ "Spindle Speeds are :\n",
+ "159\t227\t325\t466\t667\t954\t"
+ ]
+ },
+ {
+ "data": {
+ "image/png": "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\nAABJRU5ErkJggg==\n",
+ "text/plain": [
+ "<matplotlib.figure.Figure at 0x7f69f0f20e90>"
+ ]
+ },
+ "metadata": {},
+ "output_type": "display_data"
+ },
+ {
+ "name": "stdout",
+ "output_type": "stream",
+ "text": [
+ " Range of cutting speed for 12 mm diameter = 11.5 m/min.\n",
+ " Range of cutting speed for 36 mm diameter = 10.5 m/min.\n"
+ ]
+ }
+ ],
+ "source": [
+ "from __future__ import division\n",
+ "import numpy as np\n",
+ "from math import pi\n",
+ "%matplotlib inline\n",
+ "from matplotlib.pyplot import plot, show, title, text, xlabel, ylabel\n",
+ "\n",
+ "d1 = 10 # min. dia of cutter in mm\n",
+ "d2 = 60 # max. dia of cutter in mm\n",
+ "v = 30e3 # operating speed in mm/min\n",
+ "z= 6 # required speeds\n",
+ "nmin = v / (pi * d2) # n_min in rpm\n",
+ "nmax = v / (pi * d1) # n_max in rpm\n",
+ "phi = (nmax / nmin)**(1/(z-1))\n",
+ "spindle_speeds = [1]*6 # initializing\n",
+ "print \"Spindle Speeds are :\" \n",
+ "for i in range(0,6):\n",
+ " spindle_speeds[i] = (phi**i)*nmin\n",
+ " print '%d\\t'%spindle_speeds[i],\n",
+ " \n",
+ "\n",
+ "cutter_dia = [1]*6 # initializing\n",
+ "for i in range(0,6):\n",
+ " cutter_dia[i] = (v/pi)/spindle_speeds[i]\n",
+ "y = [0,v/1e3]\n",
+ "plot([0,cutter_dia[0]], y, [0,cutter_dia[1]], y, [0,cutter_dia[2]], y, [0,cutter_dia[3]], y, [0,cutter_dia[4]], y, [0,cutter_dia[5]], y)\n",
+ "title(\"cutting velocity Vs Cutter diameter\")\n",
+ "xlabel('Cutter Diameter(mm)')\n",
+ "ylabel('Cutting velocity(m/min)')\n",
+ "text(5,28,'%d'%spindle_speeds[5])\n",
+ "text(9,25,'%d'%spindle_speeds[4])\n",
+ "text(12,22,'%d'%spindle_speeds[3])\n",
+ "text(15,18,'%d'%spindle_speeds[2])\n",
+ "text(18,15,'%d'%spindle_speeds[1])\n",
+ "text(20,11,'%d'%spindle_speeds[0])\n",
+ "show()\n",
+ "# from graph\n",
+ "vmax1 = 36 # m/min\n",
+ "vmin1 = 24.5 # m/min\n",
+ "r1 = vmax1 - vmin1 # Range of cutting speed for 12 mm diameter in m/min\n",
+ "vmax2 = 36.5 # m/min.\n",
+ "vmin2 = 26 # m/min.\n",
+ "r2 = vmax2 - vmin2 # Range of cutting speed for 36 mm diameter in m/min\n",
+ "print \" Range of cutting speed for 12 mm diameter = %0.1f m/min.\\n Range of cutting speed for 36 mm diameter = %0.1f m/min.\"%(r1 , r2)"
+ ]
+ },
+ {
+ "cell_type": "markdown",
+ "metadata": {},
+ "source": [
+ "## Exa 22.2 : page 790"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 2,
+ "metadata": {
+ "collapsed": false
+ },
+ "outputs": [
+ {
+ "name": "stdout",
+ "output_type": "stream",
+ "text": [
+ "Number of teeth on driver and driven are :- \n",
+ " t1 = 25 ,T1 = 55\n",
+ " t2 = 29 ,T2 = 51 \n",
+ " t3 = 32 ,T3 = 48 \n",
+ " t4 = 36 ,T4 = 44 \n",
+ "The actual running speed of driven shaft will be : \n",
+ " n1 = 68.18 rev/min\n",
+ " n2 = 85.29 rev/min \n",
+ " n3 = 100.00 rev/min \n",
+ " n4 = 122.73 rev/min\n"
+ ]
+ }
+ ],
+ "source": [
+ "from math import floor, ceil\n",
+ "from sympy import solve, symbols\n",
+ "m = 2.5 # module in mm\n",
+ "phi = 1.2 # common ratio\n",
+ "n = 150 # speed in rev/min. of driving shaft\n",
+ "n1 = 70 # speed in rev/min. of driven shaft\n",
+ "n2 = (phi)**1*n1 # speed in rev/min. of driven shaft\n",
+ "n3 = (phi)**2*n1 # speed in rev/min. of driven shaft\n",
+ "n4 = (phi)**3*n1 # speed in rev/min. of driven shaft\n",
+ "T1=symbols('T1')\n",
+ "t1=n1/n*T1\n",
+ "expr = t1+T1-80\n",
+ "T1=solve(expr,T1)[0]\n",
+ "t1=n1/n*T1\n",
+ "T2=symbols('T2')\n",
+ "t2=n2/n*T2\n",
+ "expr = t2+T2-80\n",
+ "T2=solve(expr, T2)[0]\n",
+ "t2=n2/n*T2\n",
+ "\n",
+ "T3=symbols('T3')\n",
+ "t3=n3/n*T3\n",
+ "expr=t3+T3-80\n",
+ "T3=solve(expr, T3)[0]\n",
+ "t3=n3/n*T3\n",
+ "T4=symbols('T4')\n",
+ "t4=n4/n*T4\n",
+ "expr=t4+T4-80\n",
+ "T4=solve(expr, T4)[0]\n",
+ "t4=n4/n*T4\n",
+ "t1 = floor(t1) # number of teeth on driving shaft\n",
+ "T1 = ceil(T1) # number of teeth on driven shaft\n",
+ "t2 = ceil(t2) # number of teeth on driving shaft\n",
+ "T2 = floor(T2) # number of teeth on driven shaft\n",
+ "t3 = floor(t3) # number of teeth on driving shaft\n",
+ "T3 = ceil(T3) # number of teeth on driven shaft\n",
+ "t4 = ceil(t4) # number of teeth on driving shaft\n",
+ "T4 = floor(T4) # number of teeth on driven shaft\n",
+ "# running speeds\n",
+ "n1 = n*t1/T1\n",
+ "n2 = n*t2/T2\n",
+ "n3 = n*t3/T3\n",
+ "n4 = n*t4/T4\n",
+ "print \"Number of teeth on driver and driven are :- \\n t1 = %d ,T1 = %d\\n t2 = %d ,T2 = %d \\n t3 = %d ,T3 = %d \\n t4 = %d ,T4 = %d \"%(t1,T1,t2,T2,t3,T3,t4,T4)\n",
+ "print \"The actual running speed of driven shaft will be : \\n n1 = %0.2f rev/min\\n n2 = %0.2f rev/min \\n n3 = %0.2f rev/min \\n n4 = %0.2f rev/min\"%(n1,n2,n3,n4)\n",
+ "# Answer of n3 is given wrong in book\n",
+ "# Answer vary due to round off error"
+ ]
+ },
+ {
+ "cell_type": "markdown",
+ "metadata": {},
+ "source": [
+ "## Exa 22.3 : page 791"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 3,
+ "metadata": {
+ "collapsed": false
+ },
+ "outputs": [
+ {
+ "name": "stdout",
+ "output_type": "stream",
+ "text": [
+ " Ta = 20 Tb = 32 \n",
+ " Tc = 22 Td = 30 \n",
+ " Te = 23 tf = 29 \n",
+ " Th = 19 Tj = 28 \n",
+ " Ti = 23 Tg = 23\n"
+ ]
+ }
+ ],
+ "source": [
+ "from sympy import symbols, solve\n",
+ "z = 6 # number of steps\n",
+ "n1 = 180 # rev/min\n",
+ "n2 = 100 # rev/min\n",
+ "Rn = n1/n2 \n",
+ "phi = (Rn)**(1/(z-1)) # common ratio\n",
+ "n3 = phi*n2 # rev/min\n",
+ "n4 = (phi)**2*n2 # rev/min\n",
+ "n5 = (phi)**3*n2 # rev/min\n",
+ "n6 = (phi)**4*n2 # rev/min\n",
+ "n7 = 225 # speed of input shaft in rev/min\n",
+ "Ta=symbols('Ta')\n",
+ "tb=n7/n5*Ta\n",
+ "Ta=solve(tb+Ta-52, Ta)[0]\n",
+ "tb=n7/n5*Ta\n",
+ "tb = ceil(tb)\n",
+ "Tc=symbols('Tc')\n",
+ "td=n7/n6*Tc\n",
+ "Tc=solve(td+Tc-52, Tc)[0]\n",
+ "td=n7/n6*Tc\n",
+ "Tc = ceil(Tc)\n",
+ "Te=symbols('Te') \n",
+ "tf=n7/n1*Te\n",
+ "Te=solve(tf+Te-52, Te)[0]\n",
+ "tf=n7/n1*Te\n",
+ "tf = ceil(tf)\n",
+ "Th=symbols('Th')\n",
+ "tj=n2/n5*Th\n",
+ "Th=solve(tj+Th-46, Th)[0]\n",
+ "Th = ceil(Th)\n",
+ "tj=n2/n5*Th\n",
+ "tj = floor(tj)\n",
+ "Ti=symbols('Ti')\n",
+ "tg=n5/n5*Ti\n",
+ "Ti=solve(tg+Ti-46, Ti)[0]\n",
+ "tg=n5/n5*Ti\n",
+ "print \" Ta = %d Tb = %d \\n Tc = %d Td = %d \\n Te = %d tf = %d \\n Th = %d Tj = %d \\n Ti = %d Tg = %d\"%(Ta,tb,Tc,td,Te,tf,tj,Th,Ti,tg)\n",
+ "# 'Answers vary due to round off error'"
+ ]
+ },
+ {
+ "cell_type": "markdown",
+ "metadata": {},
+ "source": [
+ "## Exa 22.4 : page 793"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 4,
+ "metadata": {
+ "collapsed": false
+ },
+ "outputs": [
+ {
+ "name": "stdout",
+ "output_type": "stream",
+ "text": [
+ " Common ratio = 1.32 \n",
+ " Spindle speeds are : 334.23 , 441.0 , 581.92 , 767.85 ,1013.18 and 1336.9 rev/min.\n"
+ ]
+ }
+ ],
+ "source": [
+ "from math import sqrt, pi\n",
+ "v = 21 # cutting speed in rev/min.\n",
+ "z = 6\n",
+ "dmin = 5 # daimeter in mm\n",
+ "dmax = 20 # daimeter in mm\n",
+ "nmax = 1000*v/(pi*dmin) # spindle speed in rev/min.\n",
+ "nmin = 1000*v/(pi*dmax) # spindle speed in rev/min.\n",
+ "phi = (nmax/nmin)**(1/(z-1)) # common ratio\n",
+ "n1 = nmin # rev/min.\n",
+ "n2 = phi*n1 # rev/min.\n",
+ "n3 = (phi)**2*n1 # rev/min.\n",
+ "n4 = (phi)**3*n1 # rev/min.\n",
+ "n5 = (phi)**4*n1 # rev/min.\n",
+ "n6 = (phi)**5*n1 # rev/min.\n",
+ "print \" Common ratio = %0.2f \\n Spindle speeds are : %0.2f , %0.1f , %0.2f , %0.2f ,%0.2f and %0.1f rev/min.\"%(phi,n1,n2,n3,n4,n5,n6)\n",
+ "# 'Answers vary due to round off error'"
+ ]
+ },
+ {
+ "cell_type": "markdown",
+ "metadata": {},
+ "source": [
+ "## Exa 22.5 : page 793"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 5,
+ "metadata": {
+ "collapsed": false
+ },
+ "outputs": [
+ {
+ "name": "stdout",
+ "output_type": "stream",
+ "text": [
+ " Three gear ratios between input and intermediate shaft i1 = 1 i2 = 0.79 i3 = 0.630 \n",
+ " The two ratios between intermediate and output shaft i4 = 1 i5 = 0.500 \n",
+ " number of teeth for each pair between input and intermediate shaft t1 = 27/27 ,t2 = 24/30 , t3 = 21/33 \n",
+ " number of teeth for each pair between output and intermediate shaft = t4 = 34/34 ,t5 = 20/48 \n",
+ " Output speeds \n",
+ " n1 = 371 rev/min , n2 = 466 rev/min , n3 = 583 rev/min \n",
+ " n4 = 890 rev/min, n5 = 1120 rev/min , n6 = 1400 rev/min\n"
+ ]
+ }
+ ],
+ "source": [
+ "# from fig. 22.18A\n",
+ "# Three gear ratios between input and intermediate shaft\n",
+ "nmax = 1400 # maximum speed in rev/min.\n",
+ "i1 = 1/1\n",
+ "i2 = 1/1.26\n",
+ "i3 = 1/(1.26)**2\n",
+ "# The two ratios between intermediate and output shaft\n",
+ "i4 = 1/1\n",
+ "i5 = 1/(1.26)**3\n",
+ "# number of teeth for input and intermediate shaft\n",
+ "t1 = 27/27\n",
+ "t2 = 24/30\n",
+ "t3 = 21/33\n",
+ "# number of teeth for output and intermediate shaft\n",
+ "t4 = 34/34\n",
+ "t5 = 20/48\n",
+ "# output speeds in rev./min\n",
+ "n1 = t3*t5*nmax\n",
+ "n2 = t2*t5*nmax\n",
+ "n3 = t1*t5*nmax\n",
+ "n4 = t3*t4*nmax\n",
+ "n5 = t2*t4*nmax\n",
+ "n6 = t1*t4*nmax\n",
+ "print \" Three gear ratios between input and intermediate shaft i1 = %d i2 = %0.2f i3 = %0.3f \\n The two ratios between intermediate and output shaft i4 = %d i5 = %0.3f \\n number of teeth for each pair between input and intermediate shaft t1 = 27/27 ,t2 = 24/30 , t3 = 21/33 \\n number of teeth for each pair between output and intermediate shaft = t4 = 34/34 ,t5 = 20/48 \\n Output speeds \\n n1 = %d rev/min , n2 = %d rev/min , n3 = %d rev/min \\n n4 = %d rev/min, n5 = %d rev/min , n6 = %d rev/min\"%(i1 , i2 , i3 , i4 , i5 , n1 , n2, n3,n4,n5,n6)\n",
+ "# Answer vary due to round off error"
+ ]
+ }
+ ],
+ "metadata": {
+ "kernelspec": {
+ "display_name": "Python 2",
+ "language": "python",
+ "name": "python2"
+ },
+ "language_info": {
+ "codemirror_mode": {
+ "name": "ipython",
+ "version": 2
+ },
+ "file_extension": ".py",
+ "mimetype": "text/x-python",
+ "name": "python",
+ "nbconvert_exporter": "python",
+ "pygments_lexer": "ipython2",
+ "version": "2.7.9"
+ }
+ },
+ "nbformat": 4,
+ "nbformat_minor": 0
+}
diff --git a/A_Textbook_of_Production_Engineering_by_P._C._Sharma/Chapter23_1.ipynb b/A_Textbook_of_Production_Engineering_by_P._C._Sharma/Chapter23_1.ipynb
new file mode 100644
index 00000000..fd58642f
--- /dev/null
+++ b/A_Textbook_of_Production_Engineering_by_P._C._Sharma/Chapter23_1.ipynb
@@ -0,0 +1,396 @@
+{
+ "cells": [
+ {
+ "cell_type": "markdown",
+ "metadata": {},
+ "source": [
+ "# Chapter 23 : Production Planning & Control"
+ ]
+ },
+ {
+ "cell_type": "markdown",
+ "metadata": {},
+ "source": [
+ "## Exa 23.1 : page 812"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 1,
+ "metadata": {
+ "collapsed": false
+ },
+ "outputs": [
+ {
+ "name": "stdout",
+ "output_type": "stream",
+ "text": [
+ "Forecast = 90\n"
+ ]
+ }
+ ],
+ "source": [
+ "d1 = 90 # demand for first quarter\n",
+ "d2 = 100 # demand for second quarter\n",
+ "d3 = 80 # demand for third quarter\n",
+ "sa = (d1+d2+d3)/3 # simple average\n",
+ "print \"Forecast = %d\"%(sa)"
+ ]
+ },
+ {
+ "cell_type": "markdown",
+ "metadata": {},
+ "source": [
+ "## Exa 23.2 : page 812"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 2,
+ "metadata": {
+ "collapsed": false
+ },
+ "outputs": [
+ {
+ "name": "stdout",
+ "output_type": "stream",
+ "text": [
+ "Forecast = 600\n"
+ ]
+ }
+ ],
+ "source": [
+ "d1 = 300 # demand for july\n",
+ "d2 = 350 # demand for august\n",
+ "d3 = 400 # demand for september\n",
+ "d4 = 500 # demand for october\n",
+ "d5 = 600 # demand for november\n",
+ "d6 = 700 # demand for december\n",
+ "# assuming n = 3 , where n is number of time period\n",
+ "forecast = (d6+d5+d4)/3 # forecast\n",
+ "print \"Forecast = %d\"%(forecast)"
+ ]
+ },
+ {
+ "cell_type": "markdown",
+ "metadata": {},
+ "source": [
+ "## Exa 23.3 : page 813"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 3,
+ "metadata": {
+ "collapsed": false
+ },
+ "outputs": [
+ {
+ "name": "stdout",
+ "output_type": "stream",
+ "text": [
+ "Forecast by weighted moving average = 625\n"
+ ]
+ }
+ ],
+ "source": [
+ "d1 = 500 # demand for october\n",
+ "d2 = 600 # demand for november\n",
+ "d3 = 700 # demand for december\n",
+ "w1 = 0.25 # relative weight with december\n",
+ "w2 = 0.25 # relative weight with november\n",
+ "w3 = 0.5 # relative weight with october\n",
+ "f = w1*d1 + w2*d2 + w3*d3 # forecast\n",
+ "print \"Forecast by weighted moving average = %d\"%(f)"
+ ]
+ },
+ {
+ "cell_type": "markdown",
+ "metadata": {},
+ "source": [
+ "## Exa 23.4 : page 814"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 4,
+ "metadata": {
+ "collapsed": false
+ },
+ "outputs": [
+ {
+ "name": "stdout",
+ "output_type": "stream",
+ "text": [
+ "Forecast for january = 281 units\n"
+ ]
+ }
+ ],
+ "source": [
+ "from math import ceil\n",
+ "alpha = 0.7 # smoothing coefficient\n",
+ "d1 = 250 # demand for november\n",
+ "d2 = 300 # demand for december\n",
+ "f1 = 200 # forecast for november\n",
+ "f2 = alpha*d1 + (1-alpha)*f1 # forecast for december\n",
+ "f3 = alpha*d2 + (1-alpha)*f2 # forecast for january\n",
+ "f3 = ceil(f3)\n",
+ "print \"Forecast for january = %d units\"%(f3)"
+ ]
+ },
+ {
+ "cell_type": "markdown",
+ "metadata": {},
+ "source": [
+ "## Exa 23.5 : page 817"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 5,
+ "metadata": {
+ "collapsed": false
+ },
+ "outputs": [
+ {
+ "name": "stdout",
+ "output_type": "stream",
+ "text": [
+ "Total cost = Rs 613416.41\n"
+ ]
+ }
+ ],
+ "source": [
+ "from __future__ import division\n",
+ "from math import sqrt\n",
+ "s = 600 # set up cost per lot in Rs\n",
+ "c = 6 # unit cost of item in Rs\n",
+ "a = 100000 # annual demand for item\n",
+ "i = 25 # annual carrying charges of average inventory\n",
+ "i = 25/100 \n",
+ "k = c*i # carrying cost factor in unit/year\n",
+ "n = sqrt(2*s*a/k) # most economic lot size\n",
+ "tc = a*c + s*a/n + k*n/2 # total cost in Rs\n",
+ "print \"Total cost = Rs %0.2f\"%(tc)\n",
+ "# 'Answers vary due to round off error'"
+ ]
+ },
+ {
+ "cell_type": "markdown",
+ "metadata": {},
+ "source": [
+ "## Exa 23.6 : page 835"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 6,
+ "metadata": {
+ "collapsed": false
+ },
+ "outputs": [
+ {
+ "name": "stdout",
+ "output_type": "stream",
+ "text": [
+ "Most economical ordering quantity = 365 units\n"
+ ]
+ }
+ ],
+ "source": [
+ "from math import sqrt\n",
+ "a = 8000 # annual requirement of parts\n",
+ "c = 60 # unit cost of part in Rs\n",
+ "r = 150 # ordering cost per lot in Rs\n",
+ "i = 30 # annual carrying charges of average inventory\n",
+ "i = 30/100 \n",
+ "k = i*c # carrying cost per unit per year\n",
+ "n = sqrt(2*r*a/k) # most economical order quantity\n",
+ "print \"Most economical ordering quantity = %d units\"%(n)"
+ ]
+ },
+ {
+ "cell_type": "markdown",
+ "metadata": {},
+ "source": [
+ "## Exa 23.7 : page 841"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 7,
+ "metadata": {
+ "collapsed": false
+ },
+ "outputs": [
+ {
+ "name": "stdout",
+ "output_type": "stream",
+ "text": [
+ "Most economic lot size = 2000 parts\n"
+ ]
+ }
+ ],
+ "source": [
+ "from math import sqrt\n",
+ "a = 12000 # annual requirement\n",
+ "c = 5 # unit cost of part\n",
+ "s = 60 # set up cost per lot\n",
+ "p = 18750 # production rate per year\n",
+ "i = 20 # inventory carrying cost\n",
+ "i = 20/100 \n",
+ "k = i*c # carrying cost per unit per year\n",
+ "n = sqrt(2*s/(1/a-1/p)*k) # Most economic lot size\n",
+ "print \"Most economic lot size = %d parts\"%(n)"
+ ]
+ },
+ {
+ "cell_type": "markdown",
+ "metadata": {},
+ "source": [
+ "## Exa 23.8 : page 841"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 8,
+ "metadata": {
+ "collapsed": false
+ },
+ "outputs": [
+ {
+ "name": "stdout",
+ "output_type": "stream",
+ "text": [
+ " Economical order quantity = 1250 units\n",
+ " order cost = Rs 750\n",
+ " carrying cost = Rs 750\n",
+ " Total inventory cost = Rs 1500\n"
+ ]
+ }
+ ],
+ "source": [
+ "from math import sqrt\n",
+ "a = 15625 # annual requirement of parts\n",
+ "c = 12 # unit cost of part in Rs\n",
+ "r = 60 # ordering cost per lot in Rs\n",
+ "k = 1.2 # inventory carrying cost per unit \n",
+ "n = sqrt(2*r*a/k) # economical order quantity\n",
+ "oc = r*a/n # ordering cost in Rs\n",
+ "cc = k*n/2 # carrying cost in Rs\n",
+ "tc = oc + cc # total inventory cost in Rs\n",
+ "print \" Economical order quantity = %d units\\n order cost = Rs %d\\n carrying cost = Rs %d\\n Total inventory cost = Rs %d\"%(n , oc , cc , tc)"
+ ]
+ },
+ {
+ "cell_type": "markdown",
+ "metadata": {},
+ "source": [
+ "## Exa 23.9 : page 842"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 9,
+ "metadata": {
+ "collapsed": false
+ },
+ "outputs": [
+ {
+ "name": "stdout",
+ "output_type": "stream",
+ "text": [
+ " Increase in inventory cost = Rs 450\n",
+ " Discount offered = Rs500\n",
+ " offer is worth accepting\n"
+ ]
+ }
+ ],
+ "source": [
+ "from math import sqrt\n",
+ "# case a\n",
+ "a = 50 # annual requirement of parts in tonnes\n",
+ "c = 500 # unit cost of part in Rs\n",
+ "r = 100 # ordering cost per order in Rs\n",
+ "i = 20 # inventory carrying cost \n",
+ "i = i/100\n",
+ "d = 2 # discount of purchase cost in percent\n",
+ "k = i*c # inventory carrying cost per unit \n",
+ "n1 = sqrt(2*r*a/k) # economical order quantity\n",
+ "oc1 = r*a/n1 # ordering cost in Rs\n",
+ "cc1 = k*n1/2 # carrying cost in Rs\n",
+ "tc1 = oc1 + cc1 # total inventory cost in Rs\n",
+ "# case b\n",
+ "n2 = 25 # order per lot\n",
+ "oc2 = r*a/n2 # ordering cost in Rs\n",
+ "cc2 = k*n2/2 # carrying cost in Rs\n",
+ "tc2 = oc2 + cc2 # total inventory cost in Rs\n",
+ "i = tc2-tc1 # increase in cost in Rs\n",
+ "d_o = d*c*a/100 # discount offered\n",
+ "print \" Increase in inventory cost = Rs %d\\n Discount offered = Rs%d\"%(i,d_o)\n",
+ "print \" offer is worth accepting\""
+ ]
+ },
+ {
+ "cell_type": "markdown",
+ "metadata": {},
+ "source": [
+ "## Exa 23.10 : page 843"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 10,
+ "metadata": {
+ "collapsed": false
+ },
+ "outputs": [
+ {
+ "name": "stdout",
+ "output_type": "stream",
+ "text": [
+ " Economic order qunantity = 4000 components\n",
+ " Re-order point = 24000 components\n"
+ ]
+ }
+ ],
+ "source": [
+ "from math import sqrt\n",
+ "a = 1000000 # annual requirement of parts\n",
+ "r = 32 # ordering cost per lot in Rs\n",
+ "k = 4 # inventory carrying cost per unit \n",
+ "d1 = 250 # number of working days\n",
+ "d2 = 2 # days for safety stock\n",
+ "d3 = 4 # lead time in days\n",
+ "eoq = sqrt(2*r*a/k) # economical order quantity\n",
+ "oc = r*a/eoq # ordering cost in Rs\n",
+ "cc = k*eoq/2 # carrying cost in Rs\n",
+ "tc = oc + cc # total inventory cost in Rs\n",
+ "ss = a*d2/d1 # safety stock\n",
+ "ro_p = ss+eoq*d3 # reorder point\n",
+ "print \" Economic order qunantity = %d components\\n Re-order point = %d components\"%(eoq ,ro_p)"
+ ]
+ }
+ ],
+ "metadata": {
+ "kernelspec": {
+ "display_name": "Python 2",
+ "language": "python",
+ "name": "python2"
+ },
+ "language_info": {
+ "codemirror_mode": {
+ "name": "ipython",
+ "version": 2
+ },
+ "file_extension": ".py",
+ "mimetype": "text/x-python",
+ "name": "python",
+ "nbconvert_exporter": "python",
+ "pygments_lexer": "ipython2",
+ "version": "2.7.9"
+ }
+ },
+ "nbformat": 4,
+ "nbformat_minor": 0
+}
diff --git a/A_Textbook_of_Production_Engineering_by_P._C._Sharma/Chapter26_1.ipynb b/A_Textbook_of_Production_Engineering_by_P._C._Sharma/Chapter26_1.ipynb
new file mode 100644
index 00000000..b7473fc2
--- /dev/null
+++ b/A_Textbook_of_Production_Engineering_by_P._C._Sharma/Chapter26_1.ipynb
@@ -0,0 +1,69 @@
+{
+ "cells": [
+ {
+ "cell_type": "markdown",
+ "metadata": {},
+ "source": [
+ "# Chapter 26 : Plant Layout"
+ ]
+ },
+ {
+ "cell_type": "markdown",
+ "metadata": {},
+ "source": [
+ "## Exa 26.1 : Page 901"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 1,
+ "metadata": {
+ "collapsed": false
+ },
+ "outputs": [
+ {
+ "name": "stdout",
+ "output_type": "stream",
+ "text": [
+ "Number of machines required = 1.62\n",
+ "If machine is to be used exclusively for part considered two machines required\n"
+ ]
+ }
+ ],
+ "source": [
+ "from __future__ import division\n",
+ "N = 100000 # annual output of parts\n",
+ "s = 2 # expected scrap\n",
+ "t = 105 # estimated time per part in s\n",
+ "ita = 80 # production efficiency of machine\n",
+ "a = 2300 # number of working hours\n",
+ "output = (3600*ita)/(t*100) # parts required per hour\n",
+ "pr = N*(100+s)/(a*100) # output from one machine per hour\n",
+ "mr = pr/output # machines required\n",
+ "print \"Number of machines required = %0.2f\"%mr\n",
+ "print \"If machine is to be used exclusively for part considered two machines required\""
+ ]
+ }
+ ],
+ "metadata": {
+ "kernelspec": {
+ "display_name": "Python 2",
+ "language": "python",
+ "name": "python2"
+ },
+ "language_info": {
+ "codemirror_mode": {
+ "name": "ipython",
+ "version": 2
+ },
+ "file_extension": ".py",
+ "mimetype": "text/x-python",
+ "name": "python",
+ "nbconvert_exporter": "python",
+ "pygments_lexer": "ipython2",
+ "version": "2.7.9"
+ }
+ },
+ "nbformat": 4,
+ "nbformat_minor": 0
+}
diff --git a/A_Textbook_of_Production_Engineering_by_P._C._Sharma/Chapter2_1.ipynb b/A_Textbook_of_Production_Engineering_by_P._C._Sharma/Chapter2_1.ipynb
new file mode 100644
index 00000000..252c5ac6
--- /dev/null
+++ b/A_Textbook_of_Production_Engineering_by_P._C._Sharma/Chapter2_1.ipynb
@@ -0,0 +1,743 @@
+{
+ "cells": [
+ {
+ "cell_type": "markdown",
+ "metadata": {},
+ "source": [
+ "# Chapter 2 - Press Tool Design"
+ ]
+ },
+ {
+ "cell_type": "markdown",
+ "metadata": {},
+ "source": [
+ "## Exa 2.1 : page 132"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 1,
+ "metadata": {
+ "collapsed": false
+ },
+ "outputs": [
+ {
+ "name": "stdout",
+ "output_type": "stream",
+ "text": [
+ " Blanking pressure = 226 kN\n",
+ " Piercing pressure = 108.573 KN\n",
+ " Total pressure required = 334.8 KN\n",
+ " piercing punch diameter = 2.44 cm\n",
+ " blanking punch diametre = 4.96 cm \n",
+ " press capacity = 267.81 KN\n",
+ "\n"
+ ]
+ }
+ ],
+ "source": [
+ "from __future__ import division\n",
+ "from math import pi, sqrt\n",
+ "D = 50 # Diameter of washer in mm\n",
+ "t = 4 # thickness of material in mm\n",
+ "d = 24 # diameter of hole in mm\n",
+ "p = 360 # shear strength of material in N/mm**2\n",
+ "F1 = pi*D*t*p # blanking pressure in N\n",
+ "F2 = pi*d*t*p # piercing pressure in N\n",
+ "F = F1 + F2 # total pressure in N\n",
+ "d1 = d + 0.4 # piercing die diameter in mm\n",
+ "d2 = D - 0.4 # blank punch diameter in mm\n",
+ "c = 0.8*F # press capacity in N\n",
+ "print \" Blanking pressure = %d kN\\n Piercing pressure = %0.3f KN\\n Total pressure required = %0.1f KN\"%(F1/1000,F2/1000,F/1000)\n",
+ "print \" piercing punch diameter = %0.2f cm\\n blanking punch diametre = %0.2f cm \\n press capacity = %0.2f KN\\n\"%(d1/10 , d2/10 , c/1000)\n",
+ "# Answers vary due to round off error"
+ ]
+ },
+ {
+ "cell_type": "markdown",
+ "metadata": {},
+ "source": [
+ "## Exa 2.2 : page 133"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 2,
+ "metadata": {
+ "collapsed": false
+ },
+ "outputs": [
+ {
+ "name": "stdout",
+ "output_type": "stream",
+ "text": [
+ " Diameter at first draw = 8.25 cm\n",
+ " Diameter at second draw = 6.19 cm\n",
+ " Diameter at third draw =4.950 cm\n"
+ ]
+ }
+ ],
+ "source": [
+ "from math import sqrt, pi\n",
+ "h = 10 # height of cup in cm\n",
+ "d = 5 # diameter of cup in cm\n",
+ "D = sqrt(d**2 + 4*d*h) # blank diameter in cm\n",
+ "# height daimeter ratio is 2 . Therefore from table 2.9 total reductions are 3\n",
+ "r1 = 0.45*D # first reduction is 45% \n",
+ "d1 = D - r1 # diameter at first draw in cm\n",
+ "r2 = d1*0.25 # second reduction is 25% \n",
+ "d2 = d1 - r2 # diameter at second draw in cm\n",
+ "r3 = d2*0.2 # third reduction is 20% \n",
+ "d3 = d2 - r3 # diameter at third draw in cm\n",
+ "print \" Diameter at first draw = %0.2f cm\\n Diameter at second draw = %0.2f cm\\n Diameter at third draw =%0.3f cm\"%( d1 , d2 , d3)\n",
+ " "
+ ]
+ },
+ {
+ "cell_type": "markdown",
+ "metadata": {},
+ "source": [
+ "## Exa 2.3 : page 133"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 3,
+ "metadata": {
+ "collapsed": false
+ },
+ "outputs": [
+ {
+ "name": "stdout",
+ "output_type": "stream",
+ "text": [
+ "bending force = 44.3 KN\n"
+ ]
+ }
+ ],
+ "source": [
+ "K = 1.20 # die-opening factor\n",
+ "L = 37.5 # Length of strip in cm\n",
+ "T = 2.5 # thickness of strip in mm\n",
+ "sigma_ut = 630 # tensile strength in N/mm**2\n",
+ "W = 16*T # width of die opening in mm\n",
+ "F = (K*L*10*sigma_ut*T**2)/W # bending force in N\n",
+ "print \"bending force = %0.1f KN\"%( F/1000)"
+ ]
+ },
+ {
+ "cell_type": "markdown",
+ "metadata": {},
+ "source": [
+ "## Exa 2.4 : page 134"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 4,
+ "metadata": {
+ "collapsed": false
+ },
+ "outputs": [
+ {
+ "name": "stdout",
+ "output_type": "stream",
+ "text": [
+ " blanking force = 74.25 KN\n",
+ " work done = 27.84 Nm\n"
+ ]
+ }
+ ],
+ "source": [
+ "b = 25 # width of blank in mm\n",
+ "l = 30 # length of blank in mm\n",
+ "tau = 450 # ultimate shear stress of material in N/mm**2\n",
+ "t = 1.5 # thickness of metal strip in mm\n",
+ "p = 2*(l + b) # perimeter of blank in mm\n",
+ "f = p*t*tau # blanking force in N\n",
+ "Pt = 0.25*t # punch travel in mm\n",
+ "w = f*Pt # work done in Nmm\n",
+ "print \" blanking force = %0.2f KN\\n work done = %0.2f Nm\"%(f/1000,w/1000)"
+ ]
+ },
+ {
+ "cell_type": "markdown",
+ "metadata": {},
+ "source": [
+ "## Exa 2.5 : page 134"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 5,
+ "metadata": {
+ "collapsed": false
+ },
+ "outputs": [
+ {
+ "name": "stdout",
+ "output_type": "stream",
+ "text": [
+ " clearance = 0.075 mm\n",
+ " blank die opening size = 25.35 mm \n",
+ " blanking punch size = 25.20 mm\n",
+ " piercing punch size = 12.75 mm\n",
+ " piercing die size = 12.90 mm\n"
+ ]
+ }
+ ],
+ "source": [
+ "t = 1.5 # thickness in mm\n",
+ "c = 0.05*t # clearance in mm\n",
+ "D = 25.4 # outside diameter in mm \n",
+ "D_o = D - 0.05 # blank die opening in mm\n",
+ "B_s = D_o - 2*c # blanking punch size in mm\n",
+ "d = 12.7 # internal diameter in mm \n",
+ "P_s = d + 0.05 # piercing punch size in mm\n",
+ "D_s = P_s + 2*c # piercing die size in mm\n",
+ "print \" clearance = %0.3f mm\\n blank die opening size = %0.2f mm \"%(c ,D_o)\n",
+ "print \" blanking punch size = %0.2f mm\\n piercing punch size = %0.2f mm\\n piercing die size = %0.2f mm\"%(B_s,P_s,D_s )"
+ ]
+ },
+ {
+ "cell_type": "markdown",
+ "metadata": {},
+ "source": [
+ "## Exa 2.6 : page 135"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 6,
+ "metadata": {
+ "collapsed": false
+ },
+ "outputs": [
+ {
+ "name": "stdout",
+ "output_type": "stream",
+ "text": [
+ "shear force when both punch act at same time and no shear is applied = 50.27 kN\n",
+ "cutting force when punches are staggered = 33.5 kN\n",
+ "cutting force when there is penetration and shear on punch = 23.8 kN\n"
+ ]
+ }
+ ],
+ "source": [
+ "D = 25.4 # outside diameter in mm \n",
+ "d = 12.7 # internal diameter in mm\n",
+ "t = 1.5 # thickness in mm\n",
+ "tau = 280 # ultimate shearing strength in N/mm**2\n",
+ "F = pi*(D + d)*t*tau # total cutting force in N\n",
+ "F_s = pi*D*t*tau # cutting force when punches are staggered in N\n",
+ "k = 0.6 # penetration\n",
+ "i = 1 # shear of punch in mm\n",
+ "F_p = (t*k*F)/(k*t +i)# cutting force when both punches act together in N \n",
+ "print \"shear force when both punch act at same time and no shear is applied = %0.2f kN\"%( F/1000)\n",
+ "print \"cutting force when punches are staggered = %0.1f kN\"%(F_s/1000)\n",
+ "print \"cutting force when there is penetration and shear on punch = %0.1f kN\"%(F_p/1000)"
+ ]
+ },
+ {
+ "cell_type": "markdown",
+ "metadata": {},
+ "source": [
+ "## Exa 2.7 : page 135"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 7,
+ "metadata": {
+ "collapsed": false
+ },
+ "outputs": [
+ {
+ "name": "stdout",
+ "output_type": "stream",
+ "text": [
+ "Amount of shear on punch = 1 mm\n"
+ ]
+ }
+ ],
+ "source": [
+ "D = 60 # hole diameter in mm\n",
+ "tau = 450 # ultimate shear strength in N/mm**2\n",
+ "t = 2.5 # thickness in mm\n",
+ "F = pi*D*t*tau # maximum punch force in N\n",
+ "w = F*0.4*t # work done in Nm\n",
+ "f = F/2 # punching force in N\n",
+ "k = 0.4 # penetration percentage\n",
+ "i = k*t*(F-f)/f # shear on punch in mm\n",
+ "print \"Amount of shear on punch = %d mm\"%( i)"
+ ]
+ },
+ {
+ "cell_type": "markdown",
+ "metadata": {},
+ "source": [
+ "## Exa 2.8 : page 136"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 8,
+ "metadata": {
+ "collapsed": false
+ },
+ "outputs": [
+ {
+ "name": "stdout",
+ "output_type": "stream",
+ "text": [
+ " Value of back scrap = 4.7 mm\n",
+ " Value of scrap bridge = 3.2 mm \n",
+ " Width of strip = 11.00 cm\n",
+ " Length of one piece of stock needed to produce one part = 2.82 cm\n",
+ " Number of parts = 84.0 blanks\n",
+ " Scrap remaining at the end = 2.88 mm\n"
+ ]
+ }
+ ],
+ "source": [
+ "from math import ceil\n",
+ "# from fig 2.27\n",
+ "w = 2.5 # cm\n",
+ "t = 3.2 # strip thickness in mm\n",
+ "h = 10 # cm\n",
+ "a = t + 0.015*h*10 # back scrap and front scrap in mm\n",
+ "b = t # scrap bridge in mm\n",
+ "W = h + (2*a)/10 # width of strip in cm\n",
+ "W = ceil(W) # cm\n",
+ "s = w + b/10 # length of one piece of stock in cm\n",
+ "L = 240 # length of strip in cm\n",
+ "N = (L-b)/s # number of parts\n",
+ "y = L - (N*s + b/10) # scrap remaining at the end in mm\n",
+ "print \" Value of back scrap = %0.1f mm\\n Value of scrap bridge = %0.1f mm \"%( a , b )\n",
+ "print \" Width of strip = %0.2f cm\\n Length of one piece of stock needed to produce one part = %0.2f cm\"%( W , s)\n",
+ "print \" Number of parts = %0.1f blanks\\n Scrap remaining at the end = %0.2f mm\"%( N , y)\n",
+ "# Answers vary due to round off error"
+ ]
+ },
+ {
+ "cell_type": "markdown",
+ "metadata": {},
+ "source": [
+ "## Exa 2.9 : page 137"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 9,
+ "metadata": {
+ "collapsed": false
+ },
+ "outputs": [
+ {
+ "name": "stdout",
+ "output_type": "stream",
+ "text": [
+ "(i) size of blank = 118.20 mm \n",
+ "(ii) Percentage reduction = 57.7 percent \n",
+ "(iii) Number of draws = 2 \n",
+ "(iv) Radius on punch = 4 mm \n",
+ " Die Radius = 6 mm \n",
+ "(v) Die clearance for first draw = 0.87 mm \n",
+ " die clearance for second draw = 0.88 mm\n",
+ " Punch diameter for second draw = 48.4 mm \n",
+ " Die opening diameter for second draw = 50.16 mm \n",
+ " Punch diameter for first draw = 63.412 mm \n",
+ " Die opening diameter for first draw = 66.752 mm\n",
+ "(vi) Drawing pressure = 91.97 mm \n",
+ "(vii) Blank holding pressure = 30 kN \n",
+ "(viii) Press capacity = 150 kN\n"
+ ]
+ }
+ ],
+ "source": [
+ "from math import pi, sqrt\n",
+ "# from figure 2.73\n",
+ "t = 0.8 # thickness in mm\n",
+ "d = 50 # shell diameter in mm\n",
+ "r = 1.6 # radius of bottom corner in mm\n",
+ "h = 50 # height in mm\n",
+ "D = sqrt(d**2 + 4*d*h) # shell blank size in mm\n",
+ "el = 6.4 # extra length required to add in shell blank size\n",
+ "D = D + el # mm\n",
+ "pr = 100*(1-(d/D)) # percentage reduction\n",
+ "ratio = h/d \n",
+ "n = 2 # number of draws\n",
+ "R1 = 45 # first reduction\n",
+ "D1 = D - R1*D/100 # diameter at first reduction in mm\n",
+ "R2 = 100*(1-(d/D1)) # second reduction \n",
+ "PR = 4*t # punch radius in mm\n",
+ "PR = ceil(PR)\n",
+ "DR = 6 # die radius in mm\n",
+ "DC1 = 0.87 # die clearance for first draw in mm\n",
+ "DC2 = 0.88 # die clearance for second draw in mm\n",
+ "PD2 = d - 2*t # punch diameter for second draw in mm\n",
+ "DD2 = PD2 + 2*DC2 # Die opening diameter for second draw in mm\n",
+ "PD1 = D1 - 2*t # punch diameter for first draw in mm\n",
+ "DD1 = D1 + 2*DC1 # Die opening diameter for first draw in mm\n",
+ "# Drawing pressure\n",
+ "c = 0.65 # constant\n",
+ "sigma = 427 # N/mm**2\n",
+ "F = pi*d*t*sigma*(D/d-c) # Drawing pressure in mm\n",
+ "Bhp = 30.8 # blanking holding pressure in kN\n",
+ "pc = 150 # press capacity in kN\n",
+ "print \"(i) size of blank = %0.2f mm \\n(ii) Percentage reduction = %0.1f percent \\n(iii) Number of draws = %d \\n(iv) Radius on punch = %d mm \\n Die Radius = %d mm \\n(v) Die clearance for first draw = %0.2f mm \\n die clearance for second draw = %0.2f mm\"%( D , pr,n,PR,DR,DC1,DC2)\n",
+ "print \" Punch diameter for second draw = %0.1f mm \\n Die opening diameter for second draw = %0.2f mm \\n Punch diameter for first draw = %0.3f mm \\n Die opening diameter for first draw = %0.3f mm\\n(vi) Drawing pressure = %0.2f mm \\n(vii) Blank holding pressure = %d kN \\n(viii) Press capacity = %d kN\"%( PD2 , DD2 ,PD1 ,DD1 , F/1000 ,Bhp , pc) \n",
+ "# Answers vary due to round off error"
+ ]
+ },
+ {
+ "cell_type": "markdown",
+ "metadata": {},
+ "source": [
+ "## Exa 2.10 : page 138"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 10,
+ "metadata": {
+ "collapsed": false
+ },
+ "outputs": [
+ {
+ "name": "stdout",
+ "output_type": "stream",
+ "text": [
+ "Developed length = 187.22 mm\n"
+ ]
+ }
+ ],
+ "source": [
+ "from math import pi\n",
+ "# from figure 2.74\n",
+ "l1 = 76 - ( 2.3 + 0.90) # length1 in mm\n",
+ "l2 = 115 - (2.3 + 0.90) # length2 in mm\n",
+ "t = 2.3 # mm\n",
+ "r = 0.90 # inner radius in mm\n",
+ "k = t/3 # mm\n",
+ "B = 0.5*pi*(r + k) # bending allowance in mm\n",
+ "d = l1 + l2 + B # developed length in mm\n",
+ "print \"Developed length = %0.2f mm\"%( d)\n",
+ "# Answers vary due to round off error"
+ ]
+ },
+ {
+ "cell_type": "markdown",
+ "metadata": {},
+ "source": [
+ "## Exa 2.11 : page 139"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 11,
+ "metadata": {
+ "collapsed": false
+ },
+ "outputs": [
+ {
+ "name": "stdout",
+ "output_type": "stream",
+ "text": [
+ "bending force = 111.25 kN\n"
+ ]
+ }
+ ],
+ "source": [
+ "from math import floor\n",
+ "t = 3.2 # thickness of blank in mm\n",
+ "l = 900 # bending length in mm\n",
+ "sigma = 400 # ultimate tensile strength in N/mm**2\n",
+ "k = 0.67 # die opening factor\n",
+ "r1 = 9.5 # punch radius in mm\n",
+ "r2 = 9.5 # die edge radius in mm\n",
+ "c = 3.2 # clearance in mm\n",
+ "w = r1 + r2 + c # width between contact points batween die and punch in mm\n",
+ "F= (k*l*sigma*t**2)/w # bending force in N\n",
+ "F=floor(F/10)*10 # N\n",
+ "print \"bending force = %0.2f kN\"%(F/1000)"
+ ]
+ },
+ {
+ "cell_type": "markdown",
+ "metadata": {},
+ "source": [
+ "## Exa 2.12 : page 139"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 12,
+ "metadata": {
+ "collapsed": false
+ },
+ "outputs": [
+ {
+ "name": "stdout",
+ "output_type": "stream",
+ "text": [
+ "bending force = 145.24 kN\n"
+ ]
+ }
+ ],
+ "source": [
+ "k = 1.33 # die opening factor\n",
+ "l = 1200 # bend length in mm\n",
+ "sigma = 455 # ultimate tensile strength in N/mm**2\n",
+ "t = 1.6 # blank thickness in mm\n",
+ "w = 8*t # width of die opening in mm\n",
+ "F = k*l*sigma*t**2/w # bending force in N \n",
+ "print \"bending force = %0.2f kN\"%(F/1000)"
+ ]
+ },
+ {
+ "cell_type": "markdown",
+ "metadata": {},
+ "source": [
+ "## Exa 2.13 : page 140"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 13,
+ "metadata": {
+ "collapsed": false
+ },
+ "outputs": [
+ {
+ "name": "stdout",
+ "output_type": "stream",
+ "text": [
+ "Force required when bottoming is used = 18.2 tonnes\n",
+ "Force required when bottoming is not used = 1.263 tonnes\n"
+ ]
+ }
+ ],
+ "source": [
+ "c = 1.25 # clearance in mm\n",
+ "r1 = 3 # die radius in mm\n",
+ "r2 = 1.5 # punch radius in mm\n",
+ "sigma = 315 # ultimate tensile strength in MPa\n",
+ "t = 1 # thickness in mm\n",
+ "l = 50 # width at bend in mm\n",
+ "w = r1 + r2 +c # width between contact points on die and punch in mm\n",
+ "F = 0.67*l*sigma*t**2/w # bending force in N\n",
+ "F_p = 0.67*sigma*l*t # pad force in N\n",
+ "sigma_c = 560 # setting pressure in MPa\n",
+ "b1 = 2 # beads on punch\n",
+ "b = b1*r1 # mm\n",
+ "F_b = sigma_c*l*b # bottoming force in N\n",
+ "F_o = F_p + F_b # Force required when bottoming is used in N\n",
+ "F_n = F +F_p # Force required when bottoming is not used in N\n",
+ "print \"Force required when bottoming is used = %0.1f tonnes\"%(F_o/(9.81*1000))\n",
+ "print \"Force required when bottoming is not used = %0.3f tonnes\"%( F_n/(9.81*1000))"
+ ]
+ },
+ {
+ "cell_type": "markdown",
+ "metadata": {},
+ "source": [
+ "## Exa 2.14 : page 140"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 14,
+ "metadata": {
+ "collapsed": false
+ },
+ "outputs": [
+ {
+ "name": "stdout",
+ "output_type": "stream",
+ "text": [
+ "cutting force with parallel cutting edges = 3.825 MN\n",
+ "cutting force when shear is considered = 91.48 kN \n"
+ ]
+ }
+ ],
+ "source": [
+ "from math import sin, pi\n",
+ "w = 2 # width in mm\n",
+ "t = 5 # thickness in mm\n",
+ "theta=6 # shear in degrees\n",
+ "tau = 382.5 # ultimate shear stress in MPa\n",
+ "F = w*t*tau*1000 # cutting force in N\n",
+ "l = t/sin(theta*pi/180) # length to be cut in mm\n",
+ "F_i = l*t*tau # cutting force in N\n",
+ "print \"cutting force with parallel cutting edges = %0.3f MN\\ncutting force when shear is considered = %0.2f kN \"%(F/10**6 ,F_i/1000)"
+ ]
+ },
+ {
+ "cell_type": "markdown",
+ "metadata": {},
+ "source": [
+ "## Exa 2.15 : page 141"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 15,
+ "metadata": {
+ "collapsed": false
+ },
+ "outputs": [
+ {
+ "name": "stdout",
+ "output_type": "stream",
+ "text": [
+ " Blank diameter = 220 mm \n",
+ " Thickness ratio = 0.453 \n",
+ " Diameter for first draw = 121 mm \n",
+ " Depth of first draw = 61.39 mm \n",
+ " Press capacity = 177.92 kN\n"
+ ]
+ }
+ ],
+ "source": [
+ "from math import pi, sqrt\n",
+ "d1 = 105 # inside diameter in mm\n",
+ "h = 90 # depth in mm\n",
+ "t = 1 # thickness in mm\n",
+ "D = sqrt(d1**2+4*d1*h) # blank diameter in mm\n",
+ "tr = t*100/D # thickness ratio\n",
+ "# from table safe drawing ratio is 1.82\n",
+ "r = 1.82 # draw ratio\n",
+ "d2 = D/r # diameter for first draw in mm\n",
+ "d = 130 # Let diameter for first draw in mm\n",
+ "ratio1 = D/d # D/d for first draw \n",
+ "ratio2 = d/d1 # D/d for second draw\n",
+ "h1 =((D)**2-(d)**2)/(4*d) # Depth of first draw in mm\n",
+ "sigma = 415 # N/mm**2\n",
+ "c = 0.65 # constant\n",
+ "pc = pi*d*t*sigma*(D/d - c) # press capacity in kN\n",
+ "print \" Blank diameter = %d mm \\n Thickness ratio = %0.3f \\n Diameter for first draw = %d mm \\n Depth of first draw = %0.2f mm \\n Press capacity = %0.2f kN\"%(D,tr,d2,h1,pc/1000)\n",
+ "# Answers vary due to round off error"
+ ]
+ },
+ {
+ "cell_type": "markdown",
+ "metadata": {},
+ "source": [
+ "## Exa 2.16 : page 142"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 16,
+ "metadata": {
+ "collapsed": false
+ },
+ "outputs": [
+ {
+ "name": "stdout",
+ "output_type": "stream",
+ "text": [
+ " Diameter after first draw = 14.7 \n",
+ " Diameter after second draw = 8.82 \n",
+ " Percentage reduction after third draw = 9 percent\n",
+ " Height of cup after first draw = 11.02 cm\n",
+ " Height of cup after second draw = 22.29 cm\n",
+ " Height of cup after third draw = 25.00 cm\n",
+ " Drawing force = 56.817 kN\n"
+ ]
+ }
+ ],
+ "source": [
+ "from math import pi, sqrt\n",
+ "d = 80 # diameter in mm\n",
+ "h = 250 # height in mm\n",
+ "D = sqrt((d**2+4*d*h))/10 # blank diameter in cm\n",
+ "D1 = 0.5*D # diameter after first draw in cm\n",
+ "# let reduction be 40% in second draw\n",
+ "D2 = D1-0.4*D1 # diameter after scond draw in cm\n",
+ "R = (1 - (d/(10*D2)))*100 # percentage reduction for third draw\n",
+ "l1 = ((D)**2-(D1)**2)/(4*D1) # height of cup after first draw in cm\n",
+ "l2 = ((D)**2-(D2)**2)/(4*D2) # height of cup after first draw in cm\n",
+ "l3 = ((D)**2-(d/10)**2)/(4*d/10) # height of cup after first draw in cm\n",
+ "t = 3 # mm\n",
+ "sigma = 250 # N/mm**2\n",
+ "C = 0.66\n",
+ "F = pi*d/10*t*sigma*((D*10/d)-C) # drawing force in kN\n",
+ "print \" Diameter after first draw = %0.1f \\n Diameter after second draw = %0.2f \\n Percentage reduction after third draw = %d percent\"%(D1,D2,R)\n",
+ "print \" Height of cup after first draw = %0.2f cm\\n Height of cup after second draw = %0.2f cm\\n Height of cup after third draw = %0.2f cm\"%(l1,l2,l3)\n",
+ "print \" Drawing force = %0.3f kN\"%(F/1000)\n",
+ "# Answers vary due to round off error"
+ ]
+ },
+ {
+ "cell_type": "markdown",
+ "metadata": {},
+ "source": [
+ "## Exa 2.17 : page 143"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 17,
+ "metadata": {
+ "collapsed": false
+ },
+ "outputs": [
+ {
+ "name": "stdout",
+ "output_type": "stream",
+ "text": [
+ "Total developed length = 1003.39 mm\n"
+ ]
+ }
+ ],
+ "source": [
+ "from math import pi\n",
+ "# from figure 2.75 (a)\n",
+ "r1 = 30 # radius in mm\n",
+ "t = 10 # thickness in mm\n",
+ "h1 = 300 # height in mm\n",
+ "ir1 = r1-t # inner radius of bends in mm\n",
+ "L1 = h1-(ir1+t) # mm\n",
+ "alpha1 = 90 # degree\n",
+ "r2 = 2*t # mm\n",
+ "k = 0.33*t # mm\n",
+ "L2 = alpha1*2*pi*(r2+k)/360 # mm\n",
+ "w = 200 # mm\n",
+ "L3 = w-2*(t+ir1)# mm\n",
+ "L4 = L2 #mm\n",
+ "h2 = 100 # mm\n",
+ "L5 = h2 -(t+ir1) # mm\n",
+ "r3 = 150 #mm \n",
+ "ir2 = r3 - t # inner radius in mm\n",
+ "alpha2 = 180 # degree\n",
+ "L6 = alpha2*2*pi*(ir2+k)/360 # mm\n",
+ "dl = L1+L2+L3+L4+L5+L6 # Total developed length in mm\n",
+ "print \"Total developed length = %0.2f mm\"%( dl)\n",
+ "# Answers vary due to round off error"
+ ]
+ }
+ ],
+ "metadata": {
+ "kernelspec": {
+ "display_name": "Python 2",
+ "language": "python",
+ "name": "python2"
+ },
+ "language_info": {
+ "codemirror_mode": {
+ "name": "ipython",
+ "version": 2
+ },
+ "file_extension": ".py",
+ "mimetype": "text/x-python",
+ "name": "python",
+ "nbconvert_exporter": "python",
+ "pygments_lexer": "ipython2",
+ "version": "2.7.9"
+ }
+ },
+ "nbformat": 4,
+ "nbformat_minor": 0
+}
diff --git a/A_Textbook_of_Production_Engineering_by_P._C._Sharma/Chapter4_1.ipynb b/A_Textbook_of_Production_Engineering_by_P._C._Sharma/Chapter4_1.ipynb
new file mode 100644
index 00000000..cfbc5330
--- /dev/null
+++ b/A_Textbook_of_Production_Engineering_by_P._C._Sharma/Chapter4_1.ipynb
@@ -0,0 +1,863 @@
+{
+ "cells": [
+ {
+ "cell_type": "markdown",
+ "metadata": {},
+ "source": [
+ "# Chapter 4 : Cost Estimating"
+ ]
+ },
+ {
+ "cell_type": "markdown",
+ "metadata": {},
+ "source": [
+ "## Exa 4.1 : page 206"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 1,
+ "metadata": {
+ "collapsed": false
+ },
+ "outputs": [
+ {
+ "name": "stdout",
+ "output_type": "stream",
+ "text": [
+ " Total cost = Rs 13225\n",
+ " Selling price = Rs 14812\n"
+ ]
+ }
+ ],
+ "source": [
+ "from __future__ import division\n",
+ "d_m = 5500 # cost of direct material in Rs\n",
+ "d_l = 3000 # manufacturing wages in Rs\n",
+ "# factory overhead is 100% 0f manufacturing wages\n",
+ "f_o = (100*d_l)/100 # factory overheads in Rs\n",
+ "FC = d_m + d_l + f_o # factory cost in Rs\n",
+ "nm_o = 15*FC/100 # non-manufacturing overheads in Rs\n",
+ "tc = FC+nm_o # total cost in Rs\n",
+ "p = 12*tc/100 # profit in Rs\n",
+ "sp = tc+p # selling price in Rs\n",
+ "print \" Total cost = Rs %d\\n Selling price = Rs %d\"%(tc,sp)"
+ ]
+ },
+ {
+ "cell_type": "markdown",
+ "metadata": {},
+ "source": [
+ "## Exa 4.2 : page 207"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 2,
+ "metadata": {
+ "collapsed": false
+ },
+ "outputs": [
+ {
+ "name": "stdout",
+ "output_type": "stream",
+ "text": [
+ "Selling price = Rs 99000\n"
+ ]
+ }
+ ],
+ "source": [
+ "# given\n",
+ "OS_RM = 20000 # opening stock of raw materials in Rs\n",
+ "CS_RM = 30000 # closing stock of raw materials in Rs\n",
+ "TP_RM = 170000 # total purchase in year in Rs\n",
+ "OS_FG = 10000 # opening stock of finished goods in Rs\n",
+ "CS_FG = 15000 # closing stock of finished goods in Rs\n",
+ "sales = 489500 # sales of finished goods in Rs\n",
+ "D_W = 120000 # direct wages in Rs\n",
+ "F_E1 = 120000 # factory expenses in Rs\n",
+ "NM_E = 50000 # non-manufacturing expenses in Rs\n",
+ "DMC = OS_RM + TP_RM - CS_RM # direct material cost\n",
+ "FC = DMC + D_W + F_E1 # factory cost\n",
+ "TC = FC + NM_E # total cost\n",
+ "FG_S = OS_FG + TC - CS_FG # cost of finished goods sold in Rs\n",
+ "P = sales - FG_S # profit in Rs\n",
+ "F_E2 = (F_E1)/D_W*100 # factory expenses in percent\n",
+ "NM_C = (NM_E)/FC*100 # non-manufacturing expenses to factory cost\n",
+ "P_C = (P/FG_S)*100 # profit to cost of sales\n",
+ "dm = 20000 # direct material in Rs\n",
+ "dw = 30000 # direct wages in Rs\n",
+ "fe = dw # factory expenses\n",
+ "fc = dm+dw+fe # factory cost in Rs\n",
+ "nme = NM_C*fc/100 # non-manufacturing expenses in Rs\n",
+ "tc = fc+nme # total cost in Rs\n",
+ "p = (P_C*tc)/100 # profit in Rs\n",
+ "sp = tc+p # selling price in Rs\n",
+ "print \"Selling price = Rs %d\"%(sp) "
+ ]
+ },
+ {
+ "cell_type": "markdown",
+ "metadata": {},
+ "source": [
+ "## Exa 4.3 : page 208"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 3,
+ "metadata": {
+ "collapsed": false
+ },
+ "outputs": [
+ {
+ "name": "stdout",
+ "output_type": "stream",
+ "text": [
+ "factory cost = Rs 8.39 \n"
+ ]
+ }
+ ],
+ "source": [
+ "from math import pi\n",
+ "d = 38 # diameter of bar in mm\n",
+ "l = 25 # length of bar in mm\n",
+ "p = 8.6 # density gm/cm**3\n",
+ "g = 9.81 # acceleration due to gravity in m/s**2\n",
+ "w = (pi*d**2*l*p*g)/(4*10**6) # weight of material in N\n",
+ "mc = w*1.625 # material cost in Rs\n",
+ "lc = (2*90)/60 # labour cost in Rs\n",
+ "fo = 0.5*lc # factory overheads in Rs\n",
+ "fc = mc + lc + fo # factory cost in Rs\n",
+ "print \"factory cost = Rs %0.2f \"%fc\n",
+ "# Answers vary due to round off error"
+ ]
+ },
+ {
+ "cell_type": "markdown",
+ "metadata": {},
+ "source": [
+ "## Exa 4.4 : page 208"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 4,
+ "metadata": {
+ "collapsed": false
+ },
+ "outputs": [
+ {
+ "name": "stdout",
+ "output_type": "stream",
+ "text": [
+ "Time taken = 7.908 Hours\n"
+ ]
+ }
+ ],
+ "source": [
+ "sp = 65 # selling price in Rs\n",
+ "profit = 0.2*sp # profit in Rs\n",
+ "tc = sp - profit # total cost in Rs \n",
+ "P = (sp - profit)/1.4 # production cost in Rs\n",
+ "DM = 15 # cost of direct material in Rs\n",
+ "W = (P - DM)/ 1.4 # direct labour cost in Rs\n",
+ "tt = W/2 # time taken in hours\n",
+ "print \"Time taken = %0.3f Hours\"%(tt )\n",
+ "# Answers vary due to round off error"
+ ]
+ },
+ {
+ "cell_type": "markdown",
+ "metadata": {},
+ "source": [
+ "## Exa 4.5 : page 209"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 5,
+ "metadata": {
+ "collapsed": false
+ },
+ "outputs": [
+ {
+ "name": "stdout",
+ "output_type": "stream",
+ "text": [
+ "profit = Rs 600\n"
+ ]
+ }
+ ],
+ "source": [
+ "mp = 6000 # market price of machine in Rs\n",
+ "d = 0.2*mp # discount in Rs\n",
+ "sp = mp - d # selling price of factory in Rs\n",
+ "mc = 400 # material cost in Rs\n",
+ "lc = 1600 # labour cost in Rs\n",
+ "fo = 800 # factory overheads in Rs\n",
+ "F = mc + lc + fo # factory cost in Rs\n",
+ "se = 0.5*F # selling expenses in Rs\n",
+ "profit = sp - (F + se ) # Rs\n",
+ "print \"profit = Rs %d\"%(profit)"
+ ]
+ },
+ {
+ "cell_type": "markdown",
+ "metadata": {},
+ "source": [
+ "## Exa 4.6 : page 209"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 6,
+ "metadata": {
+ "collapsed": false
+ },
+ "outputs": [
+ {
+ "name": "stdout",
+ "output_type": "stream",
+ "text": [
+ "Economic lot size = 1060 pieces\n",
+ "Time for each set up = 21.21 hours\n"
+ ]
+ }
+ ],
+ "source": [
+ "from math import sqrt\n",
+ "a = 1500 # requirements of components\n",
+ "s = 30 # cost of each set up in Rs\n",
+ "k = 0.2 # charge factor\n",
+ "c = 5 # cost of each part in Rs\n",
+ "N = 5*sqrt(a*s)/(k*c) # economic lot size\n",
+ "print \"Economic lot size = %d pieces\"%(N)\n",
+ "S = (N*s)/a # time for each set up in hours\n",
+ "print \"Time for each set up = %0.2f hours\"%(S )\n",
+ "# Answers vary due to round off error"
+ ]
+ },
+ {
+ "cell_type": "markdown",
+ "metadata": {},
+ "source": [
+ "## Exa 4.7 : page 209"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 7,
+ "metadata": {
+ "collapsed": false
+ },
+ "outputs": [
+ {
+ "name": "stdout",
+ "output_type": "stream",
+ "text": [
+ "Unit time to change the cutter = 0.083 min\n"
+ ]
+ }
+ ],
+ "source": [
+ "Tc = 2 # time taken by cutter per cycle in minutes\n",
+ "Tk = 10 # time taken to change cutter in minutes\n",
+ "T = 240 # tool life in minutes\n",
+ "t = (Tc*Tk)/T # time to change the cutter in min.\n",
+ "print \"Unit time to change the cutter = %0.3f min\"%(t )\n",
+ "# Error in textbook"
+ ]
+ },
+ {
+ "cell_type": "markdown",
+ "metadata": {},
+ "source": [
+ "## Exa 4.8 : page 209"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 8,
+ "metadata": {
+ "collapsed": false
+ },
+ "outputs": [
+ {
+ "name": "stdout",
+ "output_type": "stream",
+ "text": [
+ "Unit tool change time per cycle = 1.67 min\n"
+ ]
+ }
+ ],
+ "source": [
+ "Tk = 360 # time taken by tool to cut before sharpening in min.\n",
+ "Tc = 20 # time taken to change the tool in min.\n",
+ "T = 4320 # time taken before it is discarded in min.\n",
+ "t = (Tc*Tk)/T # tool change time per cycle in min.\n",
+ "print \"Unit tool change time per cycle = %0.2f min\"%(t )"
+ ]
+ },
+ {
+ "cell_type": "markdown",
+ "metadata": {},
+ "source": [
+ "## Exa 4.9 : page 209"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 9,
+ "metadata": {
+ "collapsed": false
+ },
+ "outputs": [
+ {
+ "name": "stdout",
+ "output_type": "stream",
+ "text": [
+ "Total time taken to check dimensions = 67 min\n"
+ ]
+ }
+ ],
+ "source": [
+ "Tc = 10 # time taken to check hole in secs\n",
+ "F = 2 # frequency of checking dimension\n",
+ "tc = Tc*F # time taken to check one piece in secs\n",
+ "N = 200 # number of pieces\n",
+ "Tc = tc*(N + 1) # Total time in sec\n",
+ "print \"Total time taken to check dimensions = %d min\"%(Tc/60)"
+ ]
+ },
+ {
+ "cell_type": "markdown",
+ "metadata": {},
+ "source": [
+ "## Exa 4.10 : page 209"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 10,
+ "metadata": {
+ "collapsed": false
+ },
+ "outputs": [
+ {
+ "name": "stdout",
+ "output_type": "stream",
+ "text": [
+ "Direct labour cost = Rs 220.5\n"
+ ]
+ }
+ ],
+ "source": [
+ "forgings = 40\n",
+ "setup = 4 \n",
+ "Tc = 12 # machining time in min. per forging\n",
+ "nmt = 21 # non-machining in min. per forging\n",
+ "st = 45 # set up time per set up\n",
+ "ts = 5 # total sharpening in min. per forging\n",
+ "f = 20 # fatigue in percent\n",
+ "f = f/100\n",
+ "pn = 5 # personal needs in percent\n",
+ "pn = pn/100\n",
+ "Tk = 10 # tool chanhe time in min.\n",
+ "T = 8 # tool life in hours\n",
+ "ct = 15 # checking time with 5 checks in 15 secs\n",
+ "R = 1.4 # performance factor\n",
+ "dlc = 5 # direct labour cost in Rs per hour\n",
+ "tt = Tc+nmt # machining and non-machining time in min.\n",
+ "ft = f*tt # fatigue time in min.\n",
+ "pnt = pn*tt # personal needs in min.\n",
+ "t = (Tc*Tk)/(T*60) # total sharpening time in min. per forging\n",
+ "mct = (ts*ct)/60 # measuring and checking time in min.per forging\n",
+ "su = Tc + nmt+ pnt + ft + t + mct # sum of times in min.\n",
+ "tf = su*forgings # time for 40 forgings in min.\n",
+ "tst = st*setup # total set up time in min.\n",
+ "Te = tf+tst # total estimated time in min.\n",
+ "Ta = Te*R # total actual time in min.\n",
+ "lc = (Ta*dlc)/60 # direct labour cost in Rs\n",
+ "print \"Direct labour cost = Rs %0.1f\"%(lc)"
+ ]
+ },
+ {
+ "cell_type": "markdown",
+ "metadata": {},
+ "source": [
+ "## Exa 4.11 : page 216"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 11,
+ "metadata": {
+ "collapsed": false
+ },
+ "outputs": [
+ {
+ "name": "stdout",
+ "output_type": "stream",
+ "text": [
+ "Total time = 0.22 min.\n"
+ ]
+ }
+ ],
+ "source": [
+ "# from figure 4.4\n",
+ "v = 100 # cutting speed in m/min\n",
+ "D = 50 # mm\n",
+ "l1 = 76 # mm\n",
+ "f = 7.5 # feed in mm/rev.\n",
+ "# Case 1 , time to turn 38 mm diameter by 76 mm length of cut\n",
+ "N1 = (1000*v)/(pi*D)# r.p.m\n",
+ "tm1 = l1*10/(f*N1) # min.\n",
+ "# Case 2 , time to turn 25 mm by 38 mm length\n",
+ "N2 = (1000*v)/(pi*38) # r.p.m\n",
+ "l2 = 38 # mm\n",
+ "tm2 = l2*10/(f*N2) # min\n",
+ "tt = tm1 + tm2 # total time in min\n",
+ "print \"Total time = %0.2f min.\"%(tt)"
+ ]
+ },
+ {
+ "cell_type": "markdown",
+ "metadata": {},
+ "source": [
+ "## Exa 4.12 : page 218"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 12,
+ "metadata": {
+ "collapsed": false
+ },
+ "outputs": [
+ {
+ "name": "stdout",
+ "output_type": "stream",
+ "text": [
+ "Time to turn external relief = 0.17 min.\n"
+ ]
+ }
+ ],
+ "source": [
+ "# from figure 4.5\n",
+ "v = 60 # cutting speed m/min.\n",
+ "f = 0.375 # feed in mm/rev\n",
+ "D = 38 # mm\n",
+ "N = (1000*60)/(pi*D) # rev/min\n",
+ "l = 32 # mm\n",
+ "Tm = l/(f*N) # min\n",
+ "print \"Time to turn external relief = %0.2f min.\"%(Tm )"
+ ]
+ },
+ {
+ "cell_type": "markdown",
+ "metadata": {},
+ "source": [
+ "## Exa 4.13 : page 220"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 13,
+ "metadata": {
+ "collapsed": false
+ },
+ "outputs": [
+ {
+ "name": "stdout",
+ "output_type": "stream",
+ "text": [
+ "The machining time to face on lathe = 1.91 min.\n"
+ ]
+ }
+ ],
+ "source": [
+ "from math import pi\n",
+ "# from figure 4.11\n",
+ "l = 7.5 # cm\n",
+ "Dave = (25+ 10)/2 # average diameter in cm\n",
+ "v = 27 # cutting speed in m/min\n",
+ "f = 0.8 # feed in mm/rev\n",
+ "N = (1000*v)/(pi*Dave*10) # r.p.m.\n",
+ "tm = l*10/(f*N) # min.\n",
+ "print \"The machining time to face on lathe = %0.2f min.\"%(tm)"
+ ]
+ },
+ {
+ "cell_type": "markdown",
+ "metadata": {},
+ "source": [
+ "## Exa 4.14 : page 221"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 14,
+ "metadata": {
+ "collapsed": false
+ },
+ "outputs": [
+ {
+ "name": "stdout",
+ "output_type": "stream",
+ "text": [
+ "Time taken to drill hole = 0.174 min.\n"
+ ]
+ }
+ ],
+ "source": [
+ "from math import pi\n",
+ "D = 12.7 # diameter in mm\n",
+ "d = 50 # depth in mm\n",
+ "v = 75 # cutting speed in m/min.\n",
+ "f = 0.175 # feed in mm/rev\n",
+ "l = d + 2*0.29*D # lemgth of drill travel in mm\n",
+ "N = (1000*v)/(pi*D) # r.p.m.\n",
+ "tm = l/(f*N) # min\n",
+ "print \"Time taken to drill hole = %0.3f min.\"%(tm)"
+ ]
+ },
+ {
+ "cell_type": "markdown",
+ "metadata": {},
+ "source": [
+ "## Exa 4.15 : page 223"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 15,
+ "metadata": {
+ "collapsed": false
+ },
+ "outputs": [
+ {
+ "name": "stdout",
+ "output_type": "stream",
+ "text": [
+ "Time required for shaper to complete one cut = 60 min\n"
+ ]
+ }
+ ],
+ "source": [
+ "k = 1/4 # return time to cutting ratio\n",
+ "l = 900 + 2*75 # length of stroke in mm\n",
+ "v = 6 # cutting stroke in m/min\n",
+ "f = 2 # feed mm/stroke\n",
+ "w = 600 # breadth in mm\n",
+ "N = (v*1000)/(l*1.25) # r.p.m\n",
+ "N = round(N)\n",
+ "time = w/(f*N) # min\n",
+ "print \"Time required for shaper to complete one cut = %d min\"%(time )"
+ ]
+ },
+ {
+ "cell_type": "markdown",
+ "metadata": {},
+ "source": [
+ "## Exa 4.16 : page 223"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 16,
+ "metadata": {
+ "collapsed": false
+ },
+ "outputs": [
+ {
+ "name": "stdout",
+ "output_type": "stream",
+ "text": [
+ "Time taken to broach a four spline brass = 0.0928 min\n"
+ ]
+ }
+ ],
+ "source": [
+ "l = 70 # length of stroke in cm\n",
+ "cs = 11 # cutting speed in m/min\n",
+ "rs = 24 # return speed in m/min\n",
+ "tm = (l/(100*cs)) + (l/(100*rs)) # min\n",
+ "print \"Time taken to broach a four spline brass = %0.4f min\"%(tm)\n",
+ "# Answers vary due to round off error"
+ ]
+ },
+ {
+ "cell_type": "markdown",
+ "metadata": {},
+ "source": [
+ "## Exa 4.17 : page 228"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 17,
+ "metadata": {
+ "collapsed": false
+ },
+ "outputs": [
+ {
+ "name": "stdout",
+ "output_type": "stream",
+ "text": [
+ " Table feed = 265 mm/min. \n",
+ " Total cutter travel = 255.9 mm\n",
+ " Time required to machine the slot = 0.965 min.\n"
+ ]
+ }
+ ],
+ "source": [
+ "from math import sqrt\n",
+ "v = 50 # cutting speed in m/min\n",
+ "D = 150 # diameter of face cutter in mm\n",
+ "N = (1000*v)/(pi*D) # r.p.m.\n",
+ "f = 0.25 # feed mm/tooth\n",
+ "n = 10 #number of tooth\n",
+ "tf = N*f*n # table feed in mm/min\n",
+ "l = 200 # length of work piece in mm\n",
+ "d = 25 # depth of slot in mm\n",
+ "tot = sqrt(D*d - d**2) # total overtravel in mm\n",
+ "tct = l + tot # total cutter travel in mm\n",
+ "time = tct/tf # min.\n",
+ "print \" Table feed = %d mm/min. \\n Total cutter travel = %0.1f mm\\n Time required to machine the slot = %0.3f min.\"%(tf , tct ,time )"
+ ]
+ },
+ {
+ "cell_type": "markdown",
+ "metadata": {},
+ "source": [
+ "## Exa 4.18 : page 228"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 18,
+ "metadata": {
+ "collapsed": false
+ },
+ "outputs": [
+ {
+ "name": "stdout",
+ "output_type": "stream",
+ "text": [
+ " Cutting time = 0.163 min.\n"
+ ]
+ }
+ ],
+ "source": [
+ "from math import sqrt\n",
+ "D = 63.5 # diameter of plain milling cutter in mm\n",
+ "w = 30 # width of block in mm\n",
+ "l = 180 # length of block in mm\n",
+ "f = 0.125 # feed in mm/tooth\n",
+ "n = 6 # no. of teeth\n",
+ "N = 1500 # spindle speed in r.p.m\n",
+ "tot = (D - sqrt(D**2 - w**2))/2 # total over travel in mm\n",
+ "tct = l + tot # total cutter travel in mm\n",
+ "Tm = tct/(f*n*N) # cutting time in min\n",
+ "print \" Cutting time = %0.3f min.\"%(Tm)\n",
+ "# Answers vary due to round off error"
+ ]
+ },
+ {
+ "cell_type": "markdown",
+ "metadata": {},
+ "source": [
+ "## Exa 4.19 : page 229"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 19,
+ "metadata": {
+ "collapsed": false
+ },
+ "outputs": [
+ {
+ "name": "stdout",
+ "output_type": "stream",
+ "text": [
+ "The milling time = 0.29 min.\n"
+ ]
+ }
+ ],
+ "source": [
+ "from math import sqrt\n",
+ "# from figure 4.17\n",
+ "d = 19 # depth of cut in mm\n",
+ "D1 = 5 # diameter of round bar in cm\n",
+ "v = 50 # cutting speed in m/min\n",
+ "n = 8 # number of teeth\n",
+ "f = 0.2 # feed in mm/tooth\n",
+ "l = 2*sqrt(d*D1*10 - d**2) # length of chord in mm\n",
+ "D2 = 10 # daimeter of cutter in cm\n",
+ "overrun = sqrt(D2*10*d+D1*10*d-d**2) - sqrt(D1*10*d-d**2)# mm\n",
+ "tt = l + overrun # table travel in mm\n",
+ "N = (1000*v)/(pi*D2*10) # r.p.m\n",
+ "tm = tt/(f*n*N) # time in min.\n",
+ "print \"The milling time = %0.2f min.\"%(tm )"
+ ]
+ },
+ {
+ "cell_type": "markdown",
+ "metadata": {},
+ "source": [
+ "## Exa 4.20 : page 230"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 20,
+ "metadata": {
+ "collapsed": false
+ },
+ "outputs": [
+ {
+ "name": "stdout",
+ "output_type": "stream",
+ "text": [
+ "Time required to grind the shaft = 0.64 min.\n"
+ ]
+ }
+ ],
+ "source": [
+ "from math import pi\n",
+ "w = 50 # width of grinding wheep in mm\n",
+ "f = w/2 # feed in mm\n",
+ "t = 0.25 # toatal stock in mm\n",
+ "d = 0.025 # depth of cut in mm\n",
+ "n = t/d # number of cuts \n",
+ "v = 15 # cutting speed in m/min\n",
+ "D = 38 # diameter in mm\n",
+ "N = (1000*v)/(pi*D) # r.p.m.\n",
+ "l = 200 # length of part in mm\n",
+ "Tm = (l*10)/(f*N) # min.\n",
+ "print \"Time required to grind the shaft = %0.2f min.\"%(Tm)"
+ ]
+ },
+ {
+ "cell_type": "markdown",
+ "metadata": {},
+ "source": [
+ "## Exa 4.21 : page 231"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 21,
+ "metadata": {
+ "collapsed": false
+ },
+ "outputs": [
+ {
+ "name": "stdout",
+ "output_type": "stream",
+ "text": [
+ "Time to cut the threads = 2.05 min\n"
+ ]
+ }
+ ],
+ "source": [
+ "v = 6 # cutting speed in m/min\n",
+ "n = 5 # number of cuts\n",
+ "D = 44 # diameter in mm\n",
+ "N = (1000*v)/(pi*D) # r.p.m\n",
+ "f = 0.5 # feed in cm\n",
+ "l = 8.9 # length of cut in cm\n",
+ "Tm = (l*n)/(f*N) # time in min\n",
+ "print \"Time to cut the threads = %0.2f min\"%(Tm)\n",
+ "# Answers vary due to round off error"
+ ]
+ },
+ {
+ "cell_type": "markdown",
+ "metadata": {},
+ "source": [
+ "## Exa 4.22 : page 232"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 22,
+ "metadata": {
+ "collapsed": false
+ },
+ "outputs": [
+ {
+ "name": "stdout",
+ "output_type": "stream",
+ "text": [
+ "Total production timr per piece = 3.01 min\n"
+ ]
+ }
+ ],
+ "source": [
+ "from math import pi\n",
+ "vt = 40 # cutting speed for turning in m/min\n",
+ "vs = 8 # cutting speed for cutting and knurling in m/min\n",
+ "ft = 0.4 # feed for turning in mm/rev.\n",
+ "ff = 0.2 # feed for forming in mm/rev\n",
+ "d1 = 25 # diameter in mm\n",
+ "l1 = 50 # mm\n",
+ "N1 = 1000*vt/(pi*d1) # spindle speed in rev./min.\n",
+ "time1 = l1/(ft*N1) # min.\n",
+ "tt = 2*time1 # total time in min.\n",
+ "d2 = 15 # mm\n",
+ "N2 = 1000*vt/(pi*d2)# rev/min.\n",
+ "l2 = 30 # mm\n",
+ "time2 = l2/(ft*N2) # min.\n",
+ "eft = 0.15 # end forming time in min.\n",
+ "d3 = 10 # mm\n",
+ "N3 = 1000*vs/(pi*d3) # rev./min.\n",
+ "l3 = 15 # mm\n",
+ "f = 1.5 # feed in min.\n",
+ "time3 = l3/(f*N3) # min.\n",
+ "N4 = 1000*vs/(pi*d1) # rev./min.\n",
+ "l4 = 10 # mm\n",
+ "time4 = l4/(ft*N4) # min.\n",
+ "time5 = 0.15 # time for chamfering in min.\n",
+ "Dave = d1/2 # mm\n",
+ "N5 = 1000*vt/(pi*Dave) # r.p.m.\n",
+ "time6 = Dave/(N5*ff) # min,\n",
+ "tmt = tt+time2+time3+time4+time5+time6+eft # total machining time in min.\n",
+ "t = 0.05 # min.\n",
+ "ht = time5+6*time6+4*t+3*t # handling time in min.\n",
+ "tot = ht+tmt # total handling time in min.\n",
+ "ct = 15*tot/100 # contingency in min.\n",
+ "tct = tot+ct # total cycle time in min.\n",
+ "st = 60 # set up time for turret lathe\n",
+ "p = 100 # total pieces\n",
+ "stp = st/p # set up time per piece in min.\n",
+ "tpt = tct+stp # Total production timr per piece in min.\n",
+ "print \"Total production timr per piece = %0.2f min\"%(tpt)\n",
+ "#Answers vary due to round off error"
+ ]
+ }
+ ],
+ "metadata": {
+ "kernelspec": {
+ "display_name": "Python 2",
+ "language": "python",
+ "name": "python2"
+ },
+ "language_info": {
+ "codemirror_mode": {
+ "name": "ipython",
+ "version": 2
+ },
+ "file_extension": ".py",
+ "mimetype": "text/x-python",
+ "name": "python",
+ "nbconvert_exporter": "python",
+ "pygments_lexer": "ipython2",
+ "version": "2.7.9"
+ }
+ },
+ "nbformat": 4,
+ "nbformat_minor": 0
+}
diff --git a/A_Textbook_of_Production_Engineering_by_P._C._Sharma/Chapter5_1.ipynb b/A_Textbook_of_Production_Engineering_by_P._C._Sharma/Chapter5_1.ipynb
new file mode 100644
index 00000000..8c47225e
--- /dev/null
+++ b/A_Textbook_of_Production_Engineering_by_P._C._Sharma/Chapter5_1.ipynb
@@ -0,0 +1,1707 @@
+{
+ "cells": [
+ {
+ "cell_type": "markdown",
+ "metadata": {},
+ "source": [
+ "# Chapter 5 : Economics of Tooling"
+ ]
+ },
+ {
+ "cell_type": "markdown",
+ "metadata": {},
+ "source": [
+ "## Exa 5.1 : page 238"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 1,
+ "metadata": {
+ "collapsed": false
+ },
+ "outputs": [
+ {
+ "name": "stdout",
+ "output_type": "stream",
+ "text": [
+ "Value of machine at the end of 10 years through straight line depreciation method = Rs 137500\n",
+ "Value of machine at the end of 10 years through sinking fund method = Rs 178773\n"
+ ]
+ }
+ ],
+ "source": [
+ "from __future__ import division\n",
+ "Co = 250000 # original value of machine tool in Rs\n",
+ "Cs = 25000 # salvage value in Rs\n",
+ "n = 20 #useful life in years\n",
+ "d = (Co-Cs)/n # depreciation per year in Rs\n",
+ "v1 = Co - 10*d # value of machine tool at the end of 10 years in Rs\n",
+ "s = Co - Cs # sum at the end of useful life in Rs\n",
+ "i = 8/100 # annual interst rate \n",
+ "D = (s*i)/((1 + i)**n-1) # annual deposit\n",
+ "a = D*((1+i)**10-1)/i #amount at the end of 10 years in Rs\n",
+ "v2 = Co - a # value at the end of 10 years\n",
+ "print \"Value of machine at the end of 10 years through straight line depreciation method = Rs %d\"%(v1)\n",
+ "print \"Value of machine at the end of 10 years through sinking fund method = Rs %d\"%(v2)\n",
+ "# Answers vary due to round off error"
+ ]
+ },
+ {
+ "cell_type": "markdown",
+ "metadata": {},
+ "source": [
+ "## Exa 5.2 : page 249"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 2,
+ "metadata": {
+ "collapsed": false
+ },
+ "outputs": [
+ {
+ "name": "stdout",
+ "output_type": "stream",
+ "text": [
+ "Annual investment using sinking fund factor = Rs 3491 /- per year\n",
+ "Annual investment using capital recovery factor = Rs 23491 /- per year\n"
+ ]
+ }
+ ],
+ "source": [
+ "p = 200000 # present worth in Rs\n",
+ "i = 10 # annual interest rate\n",
+ "i = 10/100\n",
+ "n = 20 # number of years\n",
+ "a1 = (p*i)/((1+i)**n-1) # annual investment using sinking fund factor in Rs\n",
+ "a2 = (p*i*(i+1)**n)/((i+1)**n-1)# annual investment using capital recovery factor in Rs\n",
+ "print \"Annual investment using sinking fund factor = Rs %d /- per year\"%(a1)\n",
+ "print \"Annual investment using capital recovery factor = Rs %d /- per year\"%(a2)\n",
+ "# Answers vary due to round off error"
+ ]
+ },
+ {
+ "cell_type": "markdown",
+ "metadata": {},
+ "source": [
+ "## Exa 5.3 : page 252"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 3,
+ "metadata": {
+ "collapsed": false
+ },
+ "outputs": [
+ {
+ "name": "stdout",
+ "output_type": "stream",
+ "text": [
+ "Total cash in flows = Rs 85483.68\n",
+ "Total cash out flows = Rs 85489.44\n",
+ "Since cash out flows are more than cash in flows therefore project is not economical\n"
+ ]
+ }
+ ],
+ "source": [
+ "# cash in flows\n",
+ "a = 21240 # annual revenue in Rs\n",
+ "i = 10 # annual interest rate\n",
+ "i = 10/100\n",
+ "n = 5 # perod in years\n",
+ "f1 = 8000 # salvage value in Rs\n",
+ "p1 = (a*((i+1)**n-1))/(i*(i+1)**5)# annual revenue in Rs\n",
+ "p2 = f1/(i+1)**5 #present worth in Rs\n",
+ "t1 = p1 + p2 # total cash in flows in Rs\n",
+ "# cash out flows\n",
+ "I = 40000 # investment in Rs\n",
+ "f2 = 12000 # annual payment in Rs\n",
+ "p3 = (f2*((1+i)**5-1))/(i*(1+i)**5) # annual payments in Rs\n",
+ "t2 = I + p3 # total cash out flows in Rs\n",
+ "print \"Total cash in flows = Rs %0.2f\\nTotal cash out flows = Rs %0.2f\"%(t1 ,t2) \n",
+ "print \"Since cash out flows are more than cash in flows therefore project is not economical\"\n",
+ "# Answers vary due to round off error"
+ ]
+ },
+ {
+ "cell_type": "markdown",
+ "metadata": {},
+ "source": [
+ "## Exa 5.4 : page 252"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 4,
+ "metadata": {
+ "collapsed": false
+ },
+ "outputs": [
+ {
+ "name": "stdout",
+ "output_type": "stream",
+ "text": [
+ " Net P.W.of Machine A= Rs -115293.66\n",
+ " Net P.W.of Machine B = Rs-129345.49\n",
+ " It is clear that Net P.W of Machine A is less nagative as compared to that of Machine B , therefore Machine A is economcal.\n"
+ ]
+ }
+ ],
+ "source": [
+ "#Machine A\n",
+ "f1 = 2000 # annual benefit from better production quality in Rs\n",
+ "i = 10 # interest rate\n",
+ "i = 10/100\n",
+ "f2 = 12000 # salvage value in Rs\n",
+ "f3 = 8000 # operating and maintenance cost in Rs\n",
+ "I1 = 100000 # initial cost in Rs\n",
+ "n = 5 # years\n",
+ "p1 = (f1*((1+i)**n-1))/(i*(i+1)**n)\n",
+ "p2 = f2/(1+i)**n\n",
+ "c1 = p1 + p2 # cash in flows in Rs\n",
+ "p3 = (f3*((1+i)**n-1))/(i*(i+1)**n)\n",
+ "c2 = I1 + p3 # cash out flows in Rs\n",
+ "Pa = c1 - c2 # net P.W.in Rs\n",
+ "#Machine B\n",
+ "I2 = 60000 # initial cost in Rs\n",
+ "f4 = 16000 # operating and maintenance cost in Rs\n",
+ "f5 = 14000 # reconditioning at the end of third year in Rs\n",
+ "p4 = (16000*((1+i)**5-1))/(i*(1+i)**5)\n",
+ "p5 = f5/(1+i)**5\n",
+ "Pb = -I2 - p4 - p5 # net P.W.in Rs\n",
+ "print \" Net P.W.of Machine A= Rs %0.2f\\n Net P.W.of Machine B = Rs%0.2f\"%(Pa ,Pb)\n",
+ "print \" It is clear that Net P.W of Machine A is less nagative as compared to that of Machine B , therefore Machine A is economcal.\"\n",
+ "# Answers vary due to round off erro"
+ ]
+ },
+ {
+ "cell_type": "markdown",
+ "metadata": {},
+ "source": [
+ "## Exa 5.5 : page 254"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 5,
+ "metadata": {
+ "collapsed": false
+ },
+ "outputs": [
+ {
+ "name": "stdout",
+ "output_type": "stream",
+ "text": [
+ " P.W. of expenses for A = Rs 89421\n",
+ " P.W. of expenses for B = Rs 79441.68\n",
+ " As the expenses of machine B are less , so this is economical\n"
+ ]
+ }
+ ],
+ "source": [
+ "#machine A\n",
+ "c1 = 20000 # manual cost in Rs\n",
+ "c2 = 40000 # operating cost in Rs\n",
+ "n1 = 2 # machine life in years\n",
+ "i = 10 # interest rate \n",
+ "i = 10/100\n",
+ "crf1 = ((1+i)**n1-1)/(i*(i+1)**n1) # capital recovery factor\n",
+ "pw1 = c1+c2*crf1 # present worth in Rs\n",
+ "# machine B\n",
+ "c3 = 50000 # manual cost in Rs\n",
+ "c4 = 30000 # operating cost in Rs\n",
+ "n2 = 4 # machine life in years\n",
+ "i = 10/100 # interest rate \n",
+ "crf2 = ((1+i)**n2-1)/(i*(i+1)**n2) # capital recovery factor\n",
+ "pw2 = c3+c4*crf2 # present worth in Rs for 4 years\n",
+ "pw3 = (pw2*crf1)/crf2 # present worth in Rs for 2 years\n",
+ "print \" P.W. of expenses for A = Rs %d\\n P.W. of expenses for B = Rs %0.2f\" %(pw1,pw3)\n",
+ "print \" As the expenses of machine B are less , so this is economical\"\n",
+ "# Answers vary due to round off error"
+ ]
+ },
+ {
+ "cell_type": "markdown",
+ "metadata": {},
+ "source": [
+ "## Exa 5.6 : page 255"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 6,
+ "metadata": {
+ "collapsed": false
+ },
+ "outputs": [
+ {
+ "name": "stdout",
+ "output_type": "stream",
+ "text": [
+ " Annual cost of machine A = Rs 16303.12\n",
+ " Annual cost of Machine B = Rs 15841.48\n",
+ " Machine B will be economical\n"
+ ]
+ }
+ ],
+ "source": [
+ "#Machine A\n",
+ "i = 8 # # interest rate\n",
+ "i = i/100 # interest rate\n",
+ "n1 = 10 # economic life in years\n",
+ "CRF1 = i*(1+0.08)**n1/((1+i)**n1-1) # capital recovery factor\n",
+ "p1 = 46000 # first cost in Rs\n",
+ "s1 = 8000 # salvage value in Rs\n",
+ "o1 = 10000 # operating charges in Rs\n",
+ "AC1 = (p1-s1)*CRF1 + s1*i + o1 # annual cost in Rs\n",
+ "#Machine B\n",
+ "n2 = 15 # economic life in years\n",
+ "CRF2 = i*(1+0.08)**n2/((1+i)**n2-1) # capital recovery factor\n",
+ "p2 = 60000 # first cost in Rs\n",
+ "s2 = 10000 # salvage value in Rs\n",
+ "o2 = 9200 # operating charges in Rs\n",
+ "AC2 = (p2-s2)*CRF2 + s2*i + o2 # annual cost in Rs\n",
+ "print \" Annual cost of machine A = Rs %0.2f\\n Annual cost of Machine B = Rs %0.2f\" %(AC1, AC2 )\n",
+ "print \" Machine B will be economical\"\n",
+ "# Error in textbook"
+ ]
+ },
+ {
+ "cell_type": "markdown",
+ "metadata": {},
+ "source": [
+ "## Exa 5.7 : page 257"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 7,
+ "metadata": {
+ "collapsed": false
+ },
+ "outputs": [
+ {
+ "name": "stdout",
+ "output_type": "stream",
+ "text": [
+ " ERR = 2.5813\n",
+ " Internal rate of return = 20.88 percent\n",
+ " Since Internal rate of return is > M.A.R.R , therefore project is feasible\n"
+ ]
+ }
+ ],
+ "source": [
+ "a = 100000 # Ej(p/f,e%,j) in Rs\n",
+ "n = 5 # life in years\n",
+ "e = 20 # M.A.R.R.\n",
+ "e = e/100 # M.A.R.R.\n",
+ "i = e\n",
+ "A = 32000 # savings in Rs\n",
+ "s = 20000 # salvage value in Rs\n",
+ "b = ((A*(((i+1)**n)-1)/i)+s)/a # (F/p,I,5)\n",
+ "i2 = (b)**(1/n)-1 # internal rate of return\n",
+ "print \" ERR = %0.4f\\n Internal rate of return = %0.2f percent\"%(b , i2*100)\n",
+ "print \" Since Internal rate of return is > M.A.R.R , therefore project is feasible\""
+ ]
+ },
+ {
+ "cell_type": "markdown",
+ "metadata": {},
+ "source": [
+ "## Exa 5.9 : page 259"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 8,
+ "metadata": {
+ "collapsed": false
+ },
+ "outputs": [
+ {
+ "name": "stdout",
+ "output_type": "stream",
+ "text": [
+ "ERRR = 21.25 percent\n",
+ "Since E.R.R.R is > M.A.R.R. therefore project is feasible.\n"
+ ]
+ }
+ ],
+ "source": [
+ "e = 20 # M,A.R.R.\n",
+ "i = e # interest rste\n",
+ "i = i/100 \n",
+ "n = 5 # life in years\n",
+ "s = 32000 # annual net savings in Rs\n",
+ "p = 100000 # present worth in Rs\n",
+ "S = 20000 # salvage value in Rs\n",
+ "a = (p-S)*(i/((1+i)**n-1)) # (p-s)(A/F,e%,n)\n",
+ "E = (s-a)/p # E.R.R.R\n",
+ "print \"ERRR = %0.2f percent\"%(E*100)\n",
+ "print \"Since E.R.R.R is > M.A.R.R. therefore project is feasible.\""
+ ]
+ },
+ {
+ "cell_type": "markdown",
+ "metadata": {},
+ "source": [
+ "## Exa 5.10 : page 259"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 9,
+ "metadata": {
+ "collapsed": false
+ },
+ "outputs": [
+ {
+ "name": "stdout",
+ "output_type": "stream",
+ "text": [
+ " ERRR1 = 7.24 percent \n",
+ " ERRR2 = 8.87 percent\n",
+ " Only machine B is accepteble\n"
+ ]
+ }
+ ],
+ "source": [
+ "# machine A\n",
+ "r_e1 = 9600 #cash flow in Rs\n",
+ "p1 = 46000 # intial cost in Rs\n",
+ "s = 0 # salvage value\n",
+ "e = 8 # M.A.R.R\n",
+ "e = e/100\n",
+ "i = 8 # investment rate\n",
+ "i = i/100\n",
+ "n = 6 # life in years\n",
+ "x = i/((1+i)**n-1) \n",
+ "ERRR1 = (r_e1 - (p1-s)*x)/p1\n",
+ "#machine B\n",
+ "r_e2 = 7200 #cash flow in Rs\n",
+ "p2 = 32000 # intial cost in Rs \n",
+ "ERRR2 = (r_e2 - (p2-s)*x)/p2\n",
+ "print \" ERRR1 = %0.2f percent \\n ERRR2 = %0.2f percent\"%(ERRR1*100 ,ERRR2*100)\n",
+ "print \" Only machine B is accepteble\""
+ ]
+ },
+ {
+ "cell_type": "markdown",
+ "metadata": {},
+ "source": [
+ "## Exa 5.11 : page 261"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 10,
+ "metadata": {
+ "collapsed": false
+ },
+ "outputs": [
+ {
+ "name": "stdout",
+ "output_type": "stream",
+ "text": [
+ " Investment cost = Rs 21000\n",
+ " Unamortized investment = Rs 15000\n"
+ ]
+ }
+ ],
+ "source": [
+ "pmv = 15000 # present market value in Rs\n",
+ "ss = 6000 # sum needed to make it serviceable in Rs\n",
+ "ic = ss + pmv # investment cost in Rs\n",
+ "pbv = 30000 # present book value in Rs\n",
+ "sv = 15000 # salvage value in Rs\n",
+ "ui = pbv - sv # unamortized investment in Rs\n",
+ "print \" Investment cost = Rs %d\\n Unamortized investment = Rs %d\"%(ic , ui)"
+ ]
+ },
+ {
+ "cell_type": "markdown",
+ "metadata": {},
+ "source": [
+ "## Exa 5.13 : page 262"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 11,
+ "metadata": {
+ "collapsed": false
+ },
+ "outputs": [
+ {
+ "name": "stdout",
+ "output_type": "stream",
+ "text": [
+ " Existing machine = Rs 87931.647 \n",
+ " Proposed machine = Rs 72549.08\n",
+ " Since the equivalent annual cost of proposed machine is less than that of the existing machine , therefore, the replacement is justified.\n"
+ ]
+ }
+ ],
+ "source": [
+ "# Existing machine\n",
+ "pmp = 100000 # present market price in Rs\n",
+ "io = 50000 # immediate overhauling in Rs\n",
+ "asl = 5 # additional service life in years\n",
+ "aoc = 50000 # annual operating cost in Rs\n",
+ "svo = 10000 # salvage value after overhauling in Rs\n",
+ "pc = io + pmp # present cost in Rs\n",
+ "i = 10 # interest rate\n",
+ "i = 10/100\n",
+ "crf1 = (i*(1+i)**asl)/((1+i)**asl - 1) # capital recovery factor\n",
+ "AC1 = (pc - svo)*crf1 + svo*i + aoc # average cost in Rs\n",
+ "# proposed machine\n",
+ "n = 10 # expected economic life in years\n",
+ "ic = 300000 # initial cost in Rs\n",
+ "sv = 100000 # salvage value in Rs\n",
+ "o = 30000 # annual operating cost in Rs\n",
+ "crf2 = (i*(1+i)**10)/((1+i)**10 - 1)\n",
+ "AC2 = (ic - sv)*crf2 + sv*i + o # average cost in Rs\n",
+ "print \" Existing machine = Rs %0.3f \\n Proposed machine = Rs %0.2f\"%(AC1 , AC2)\n",
+ "print \" Since the equivalent annual cost of proposed machine is less than that of the existing machine , therefore, the replacement is justified.\"\n",
+ "# Answers vary due to round off error"
+ ]
+ },
+ {
+ "cell_type": "markdown",
+ "metadata": {},
+ "source": [
+ "## Exa 5.15 : page 265"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 12,
+ "metadata": {
+ "collapsed": false
+ },
+ "outputs": [
+ {
+ "name": "stdout",
+ "output_type": "stream",
+ "text": [
+ "Number of years of economic repair life = 14.53 years\n"
+ ]
+ }
+ ],
+ "source": [
+ "from math import sqrt\n",
+ "c = 20000 # first cost of machine in Rs\n",
+ "s = 1000 # scrap value in machine in Rs\n",
+ "b = 180 # annual increase in cost of repairs in Rs\n",
+ "n = sqrt(2*(c-s)/b) # years\n",
+ "print \"Number of years of economic repair life = %0.2f years\"%(n)"
+ ]
+ },
+ {
+ "cell_type": "markdown",
+ "metadata": {},
+ "source": [
+ "## Exa 5.16 : page 266"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 13,
+ "metadata": {
+ "collapsed": false
+ },
+ "outputs": [
+ {
+ "name": "stdout",
+ "output_type": "stream",
+ "text": [
+ "The number of years in which the new machine will pay for itself = 3.945 years\n"
+ ]
+ }
+ ],
+ "source": [
+ "Cn = 72000 # cost of new machine installed and tooled in Rs\n",
+ "Co = 28000 # cost of new machime installed and tooled in Rs\n",
+ "p = 16 # hourly pieces\n",
+ "Nn = 2200*p # estimated annual production on new machine \n",
+ "Ko = 17200 # present book value of old machine in Rs\n",
+ "So = 6400 # scrap value of old machine in Rs\n",
+ "Sn = 8000 # probable scrap value of old machine in at the end of its useful life Rs\n",
+ "oco = 2.5 # opreator cost per hour \n",
+ "mco= 48 # machine cost\n",
+ "ro = 10 # production rate per hour\n",
+ "ocn = 2 # opreator cost per hour \n",
+ "mcn= 62 # machine cost\n",
+ "rn = 16 # production rate per hour\n",
+ "Po = (oco+mco)/ro # labour and machine cost per unit on old machine in Rs\n",
+ "Pn = (ocn+mcn)/rn # labour and machine cost per unit on new machine in Rs\n",
+ "i = 6 # interest on investment\n",
+ "i = i/100\n",
+ "t = 6 # annual taxes\n",
+ "t = t/100\n",
+ "d = 10 # annual allowance for depreciation \n",
+ "d = d/100\n",
+ "m = 3 # annual allowance for maintenance\n",
+ "m = m/100\n",
+ "n = ((Cn-Sn)+(Ko-So))/((Nn*(Po-Pn)) - Cn*(i+t+d+m))\n",
+ "print \"The number of years in which the new machine will pay for itself = %0.3f years\"%(n)"
+ ]
+ },
+ {
+ "cell_type": "markdown",
+ "metadata": {},
+ "source": [
+ "## Exa 5.17 : page 267"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 14,
+ "metadata": {
+ "collapsed": false
+ },
+ "outputs": [
+ {
+ "name": "stdout",
+ "output_type": "stream",
+ "text": [
+ " Unit production cost on turret lathe = Rs 9.18 per piece\n",
+ " Unit production cost on engine lathe = Rs 14.55 per piece\n",
+ " Turret lathe will be more economical than two engine lathe\n"
+ ]
+ }
+ ],
+ "source": [
+ "C = 80000 # cost of new machine installed and tooled in Rs\n",
+ "nel = 2 # number of engine lathes\n",
+ "c = 32000*nel # first cost of engine lathe\n",
+ "N = 4000 # annual production of turret lathe\n",
+ "n = 3800 # annual production in engine lathe\n",
+ "nhp1 = 4 # hp motor\n",
+ "L = 2256*nhp1 # annual labour cost of turret lathe\n",
+ "w = 5 # wage in per hour\n",
+ "time = 2300 # hours\n",
+ "l = time*nel*w # labour cost of engine lathe\n",
+ "nhp2 = 2.5 # hp motor\n",
+ "pr = 0.35 # power rate in kwh\n",
+ "p = (nel*nhp2*746*time*pr)/1000 # power cost\n",
+ "P = (nhp1*746*time*pr)/1000 # power cost\n",
+ "F = 480 #saving\n",
+ "I = 6/100 # interest rate\n",
+ "T = 4/100 # tax rate\n",
+ "D = 10/100 # allowance for depreciation in engine lathe\n",
+ "M = 6/100 # allowance for maintenance in engine lathe\n",
+ "B = 55/100 # labour burden in engine lathe\n",
+ "i = 6/100 # interest rate\n",
+ "t = 4/100 # tax rate\n",
+ "d = 10/100 # allowance for depreciation in turret lathe\n",
+ "m = 6/100 # allowance for maintenance in turret lathe\n",
+ "X = (L + B*L + P +C*(I+T+D+M) - F)/N\n",
+ "x = (l+l*B + p + c*(i+t+d+m))/n\n",
+ "print \" Unit production cost on turret lathe = Rs %0.2f per piece\\n Unit production cost on engine lathe = Rs %0.2f per piece\"%(X , x)\n",
+ "print \" Turret lathe will be more economical than two engine lathe\"\n",
+ "# Answers vary due to round off error"
+ ]
+ },
+ {
+ "cell_type": "markdown",
+ "metadata": {},
+ "source": [
+ "## Exa 5.18 : page 268"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 15,
+ "metadata": {
+ "collapsed": false
+ },
+ "outputs": [
+ {
+ "name": "stdout",
+ "output_type": "stream",
+ "text": [
+ "Amount invested in turret lathe over the cost of engine lathe = Rs 79562\n"
+ ]
+ }
+ ],
+ "source": [
+ "X = 9.16 # production cost on turret lathe\n",
+ "N = 4000 # annual requirement\n",
+ "c = X*N # cost for 4000 pieces on turret lathe\n",
+ "n = 3800 # production of engine lathe\n",
+ "l = 23000 # labour cost\n",
+ "p = 3002 # power cost\n",
+ "i = 6 # interest rate\n",
+ "i = i/100\n",
+ "t = 4 # tax rate\n",
+ "t = t/100\n",
+ "d = 10 # allowance for depreciation in turret lathe\n",
+ "d = d/100\n",
+ "m = 6 # allowance for maintenance in turret lathe\n",
+ "m = m/100\n",
+ "b = 55/100 #labour burden\n",
+ "a = i+t+d+m \n",
+ "tc = 64000 # first cost of engine lathe\n",
+ "c1 =(N*(l*(1+b)+p))/n+(tc*a) # cost for engine lathe\n",
+ "s = c1-c # savings \n",
+ "amt = s/a # amount invested in turret lathe over the cost of engine lathe\n",
+ "print \"Amount invested in turret lathe over the cost of engine lathe = Rs %d\"%(amt)\n",
+ "# Answers vary due to round off error"
+ ]
+ },
+ {
+ "cell_type": "markdown",
+ "metadata": {},
+ "source": [
+ "## Exa 5.19 : page 268"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 16,
+ "metadata": {
+ "collapsed": false
+ },
+ "outputs": [
+ {
+ "name": "stdout",
+ "output_type": "stream",
+ "text": [
+ "Years in which new machine will pay for itself = 1.40 years\n"
+ ]
+ }
+ ],
+ "source": [
+ "Cn = 60000 # cost of new machine\n",
+ "Sn = 5000 # scrap value of new machine\n",
+ "So = 1000 # scrap value of old machine\n",
+ "Nn = 200000 #annual production\n",
+ "I = 10 # interest rate\n",
+ "I = I/100\n",
+ "M = 7 # allowance for maintenane\n",
+ "M = M/100\n",
+ "T = 6 # annual taxes\n",
+ "T = T/100\n",
+ "D = 1/10 # allowance for depreciation\n",
+ "lco = 300 # labour charges for old machine\n",
+ "m = 12 # months\n",
+ "rco = 15000 # running charges for old machine\n",
+ "pro = 50000 # production rate for old machine\n",
+ "lcn = 500 # labour charges for new machine\n",
+ "rcn = 10000 # running charges for old machine\n",
+ "prn = 200000# production rate f\n",
+ "Po = (lco*m + rco)/pro # labour and machine cost on old machine\n",
+ "Pn = (lcn*m + rcn)/prn # labour and machine cost on new machine\n",
+ "n =((Cn-Sn)-So)/((Nn*(Po-Pn))-Cn*(I+T+D+M)) #years\n",
+ "print \"Years in which new machine will pay for itself = %0.2f years\"%(n)"
+ ]
+ },
+ {
+ "cell_type": "markdown",
+ "metadata": {},
+ "source": [
+ "## Exa 5.20 : page 270"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 17,
+ "metadata": {
+ "collapsed": false
+ },
+ "outputs": [
+ {
+ "name": "stdout",
+ "output_type": "stream",
+ "text": [
+ "Number of pieces when one run is made and cost is Rs 3000 = 886 pieces\n",
+ "Annual production when 5 runs are made per year = 972 pieces\n",
+ "Annual production when fixture pay for itself = 1531 pieces\n",
+ "Economical investment when 1530 pieces for single run with savings Rs 1.50 per piece = Rs 2997\n",
+ "Annual profit when 950 pieces made per year in 6 runs and saving in labour cost Rs 2 per piece = Rs 635 per year\n"
+ ]
+ }
+ ],
+ "source": [
+ "a = 1.50 #saving in labour\n",
+ "b=55/100 # burden applied on labour\n",
+ "T = 4/100 # allowance for taxes\n",
+ "M = 5/100 # allowance for maintenance\n",
+ "I = 8/100 # interest rate\n",
+ "D = 50/100 # allowance for depreciation\n",
+ "H = 2 # years to amortize the investment\n",
+ "S = 50 # yearly cost for set up\n",
+ "C = 3000 # first cost\n",
+ "N1 = (C*(I+T+M+D)+S)/(a*(1+b)) # annual production when 1 run is made\n",
+ "r = 5 # number of runs\n",
+ "N2 = (C*(I+T+M+D)+S*r)/(a*(1+b)) # annual production when 1 run is made\n",
+ "D1 = 100/100 # allowance for depreciation\n",
+ "N3 = (C*(I+T+M+D1)+S)/(a*(1+b)) # production when D = 100\n",
+ "n1 = 1530 # pieces\n",
+ "C1 = (n1*(a*(1+b))-S)/(I+T+M+D1) # economical investment\n",
+ "n2 = 950 # pieces\n",
+ "a1 = 2 # labour cost\n",
+ "r1 = 6 # number of runs\n",
+ "S1 = r1*S # yearly cost\n",
+ "V = n2*a1*(1+b)-C*(I+T+M+D)-S1 #profit\n",
+ "print \"Number of pieces when one run is made and cost is Rs 3000 = %d pieces\"%(N1)\n",
+ "print \"Annual production when 5 runs are made per year = %d pieces\"%(N2)\n",
+ "print \"Annual production when fixture pay for itself = %d pieces\"%(N3)\n",
+ "print \"Economical investment when 1530 pieces for single run with savings Rs 1.50 per piece = Rs %d\"%(C1)\n",
+ "print \"Annual profit when 950 pieces made per year in 6 runs and saving in labour cost Rs 2 per piece = Rs %d per year\"%(V)\n",
+ "# 'Answers vary due to round off error'\n",
+ " "
+ ]
+ },
+ {
+ "cell_type": "markdown",
+ "metadata": {},
+ "source": [
+ "## Exa 5.21 : page 271"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 18,
+ "metadata": {
+ "collapsed": false
+ },
+ "outputs": [
+ {
+ "name": "stdout",
+ "output_type": "stream",
+ "text": [
+ "Total number of pieces produced = 20114\n"
+ ]
+ }
+ ],
+ "source": [
+ "a = 0.125 #saving in labour cost per unit\n",
+ "b = 0.4 # overhead applied on direct labour saved\n",
+ "D = 1/2 # allowance for depreciation\n",
+ "C = 2400 # first cost\n",
+ "I = 6/100 # interest rate\n",
+ "T = 4/100 # allowance for taxes\n",
+ "M = 10/100 # allowance for maintenance\n",
+ "S = 80 # cost of set up\n",
+ "N = (C*(I+T+D+M)+S)/(a*(1+b)) # pieces per year\n",
+ "t = N*2 # total number of pieces\n",
+ "print \"Total number of pieces produced = %d\"%(t)\n",
+ "# Answers vary due to round off error"
+ ]
+ },
+ {
+ "cell_type": "markdown",
+ "metadata": {},
+ "source": [
+ "## Exa 5.22 : page 271"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 19,
+ "metadata": {
+ "collapsed": false
+ },
+ "outputs": [
+ {
+ "name": "stdout",
+ "output_type": "stream",
+ "text": [
+ "Total number of pieces produced = 24685\n"
+ ]
+ }
+ ],
+ "source": [
+ "a = 0.125 # saving in labour cost per unit\n",
+ "b = 0.4 # overhead applied on direct labour saved\n",
+ "D = 1/2 # allowance for depreciation\n",
+ "C = 2400 # first cost\n",
+ "I = 6/100 # interst rate\n",
+ "T = 4/100 # allowance for taxes\n",
+ "M = 10/100 # allowance for maintenance\n",
+ "n = 6 # number of baches\n",
+ "S = 80 # cost of set up\n",
+ "s1 = S*n # total set up cost\n",
+ "N = (C*(I+T+D+M)+s1)/(a*(1+b)) # pieces\n",
+ "t = N*2 # total number of pieces\n",
+ "print \"Total number of pieces produced = %d\"%(t)\n",
+ "# Answers vary due to round off error"
+ ]
+ },
+ {
+ "cell_type": "markdown",
+ "metadata": {},
+ "source": [
+ "## Exa 5.23 : page 271"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 20,
+ "metadata": {
+ "collapsed": false
+ },
+ "outputs": [
+ {
+ "name": "stdout",
+ "output_type": "stream",
+ "text": [
+ " Number of years taken by fixture of Rs 2000 = 5.33 years\n",
+ " profit made when fixture of Rs 1600 = Rs 175\n"
+ ]
+ }
+ ],
+ "source": [
+ "C1 = 2000 # first cost small tool in Rs\n",
+ "N = 5000 # parts per year\n",
+ "n = 5 # number of batches\n",
+ "S = 50*n # cost of set up\n",
+ "a = 0.15 # saving in labour cost per unit\n",
+ "b = 50/100 # burden applied on direct labour saved\n",
+ "I = 10/100 # interest rate\n",
+ "T = 5/100 # allowance for tax\n",
+ "M = 10/100 # allowance for maintenance\n",
+ "H = C1/((N*a*(1+b))-(C1*(I+T+M))-S) # years\n",
+ "C2 = 1600 # cost of fixture\n",
+ "D = 1/H # allowance for depreciation\n",
+ "V = N*a*(1+b)-C2*(I+T+D+M)-S # profit\n",
+ "print \" Number of years taken by fixture of Rs 2000 = %0.2f years\\n profit made when fixture of Rs 1600 = Rs %d\"%(H ,V)"
+ ]
+ },
+ {
+ "cell_type": "markdown",
+ "metadata": {},
+ "source": [
+ "## Exa 5.24 : page 272"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 21,
+ "metadata": {
+ "collapsed": false
+ },
+ "outputs": [
+ {
+ "name": "stdout",
+ "output_type": "stream",
+ "text": [
+ "Minimum number of components to be produced if cost of fixture to be recovered = 500\n"
+ ]
+ }
+ ],
+ "source": [
+ "c1 = 3 # machine cost per component using existing euipment in Rs\n",
+ "c2 = 1 # machine cost using fixture in Rs\n",
+ "s = c1 - c2 # saving in machine cost per piece\n",
+ "f= 1000 # cost of fixture in Rs\n",
+ "N = f/2 # components\n",
+ "print \"Minimum number of components to be produced if cost of fixture to be recovered = %d\"%(N) "
+ ]
+ },
+ {
+ "cell_type": "markdown",
+ "metadata": {},
+ "source": [
+ "## Exa 5.25 : page 272"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 22,
+ "metadata": {
+ "collapsed": false
+ },
+ "outputs": [
+ {
+ "name": "stdout",
+ "output_type": "stream",
+ "text": [
+ "Number of pieces which must be produced to break even so that fixture may pay for itself = 7174 pieces per year\n"
+ ]
+ }
+ ],
+ "source": [
+ "C = 1000 # cost of fixture\n",
+ "Co = 700 # cost of old fixture\n",
+ "Cs = 250 # scrap value\n",
+ "a = 10 #saving per piece in paisa\n",
+ "a = a/100\n",
+ "b = 30 # overhead applied on direct labour saved\n",
+ "b = b/100\n",
+ "I = 8 # interest rate\n",
+ "I = I/100\n",
+ "M = 3 # allowance for maintenance\n",
+ "M = M/100\n",
+ "T = 12 # allowance for tax\n",
+ "T = T/100\n",
+ "H = 3/2 # amortization\n",
+ "D = 1/H # allowance for depreciation\n",
+ "N = (C*(I+T+D+M)+(Co-Cs)*I)/(a*(1+b)) # pieces per year\n",
+ "print \"Number of pieces which must be produced to break even so that fixture may pay for itself = %d pieces per year\"%(N)\n",
+ "# Answers vary due to round off error"
+ ]
+ },
+ {
+ "cell_type": "markdown",
+ "metadata": {},
+ "source": [
+ "## Exa 5.26 : page 273"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 23,
+ "metadata": {
+ "collapsed": false
+ },
+ "outputs": [
+ {
+ "name": "stdout",
+ "output_type": "stream",
+ "text": [
+ "Cost for new fixture = Rs 1264\n"
+ ]
+ }
+ ],
+ "source": [
+ "N = 9000 # number of pieces\n",
+ "Co = 700 # cost of old fixture\n",
+ "Cs = 250 # scrap value\n",
+ "a = 10 #saving per piece in paisa\n",
+ "a = a/100\n",
+ "b = 30 # overhead applied on direct labour saved\n",
+ "b = b/100\n",
+ "I = 8 # interest rate\n",
+ "I = I/100\n",
+ "M = 3 # allowance for maintenance\n",
+ "M = M/100\n",
+ "T = 12 # allowance for tax\n",
+ "T = T/100\n",
+ "H = 3/2 # amortization\n",
+ "D = 1/H # allowance for depreciation\n",
+ "C = (N*a*(1+b)-(Co-Cs)*I)/(I+T+D+M) # cost in Rs\n",
+ "print \"Cost for new fixture = Rs %d\"%(C)\n",
+ "# Answers vary due to round off error"
+ ]
+ },
+ {
+ "cell_type": "markdown",
+ "metadata": {},
+ "source": [
+ "## Exa 5.27 : page 273"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 24,
+ "metadata": {
+ "collapsed": false
+ },
+ "outputs": [
+ {
+ "name": "stdout",
+ "output_type": "stream",
+ "text": [
+ "Time taken to amortize the fixture = 2.7 years\n"
+ ]
+ }
+ ],
+ "source": [
+ "n = 6500 # yearly production\n",
+ "c = 1350 # cost of fixture\n",
+ "a = 10 #saving per piece in paisa\n",
+ "a = a/100\n",
+ "b = 30 # overhead applied on direct labour saved\n",
+ "b = b/100\n",
+ "I = 8 # interest rate\n",
+ "I = I/100\n",
+ "M = 3 # allowance for maintenance\n",
+ "M = M/100\n",
+ "T = 12 # allowance for tax\n",
+ "T = T/100\n",
+ "co = 700 # cost of old fixture\n",
+ "cs = 250 # scrap value\n",
+ "H = (c)/((n*a*(1+b))-I*(co-cs)-c*(I+T+M)) # amotization in years\n",
+ "print \"Time taken to amortize the fixture = %0.1f years\"%(H)"
+ ]
+ },
+ {
+ "cell_type": "markdown",
+ "metadata": {},
+ "source": [
+ "## Exa 5.28 : page 273"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 25,
+ "metadata": {
+ "collapsed": false
+ },
+ "outputs": [
+ {
+ "name": "stdout",
+ "output_type": "stream",
+ "text": [
+ "profit = Rs 237 \n"
+ ]
+ }
+ ],
+ "source": [
+ "n = 9000 # production of pieces per year\n",
+ "c = 1000 # fixture costs\n",
+ "Co = 700 # cost of old fixture\n",
+ "Cs = 250 # scrap value\n",
+ "a = 10 #saving per piece in paisa\n",
+ "a = a/100\n",
+ "b = 30 # overhead applied on direct labour saved\n",
+ "b = b/100\n",
+ "I = 8 # interest rate\n",
+ "I = I/100\n",
+ "M = 3 # allowance for maintenance\n",
+ "M = M/100\n",
+ "T = 12 # allowance for tax\n",
+ "T = T/100\n",
+ "h = 1.5 # amortization\n",
+ "D = 1/h # allowance for depreciation\n",
+ "V = (n*a*(1+b))-(c*(I+T+D+M))-((Co-Cs)*I) # profit\n",
+ "print \"profit = Rs %d \"%(V) \n",
+ "# Answers vary due to round off error"
+ ]
+ },
+ {
+ "cell_type": "markdown",
+ "metadata": {},
+ "source": [
+ "## Exa 5.29 : page 274"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 26,
+ "metadata": {
+ "collapsed": false
+ },
+ "outputs": [
+ {
+ "name": "stdout",
+ "output_type": "stream",
+ "text": [
+ " Break even point = 1000 pieces \n",
+ " If fixed cost is 125000 and variable cost is Rs 90 per unit then break even point = 1136 pieces\n",
+ " Number of components to get profit of Rs 20000 = 1200 pieces\n"
+ ]
+ }
+ ],
+ "source": [
+ "fc1 = 100000 # fixed cost in Rs\n",
+ "vc1 = 100 # variable cost in Rs per unit\n",
+ "sp = 200 # selling price in Rs per unit\n",
+ "q1 = fc1/(sp-vc1) # quantity of production at break even point\n",
+ "fc2 = 125000 # fixed cost in Rs\n",
+ "vc2 = 90 # variable cost in Rs per unit\n",
+ "q2 = fc2/(sp-vc2) # quantity of production at break even point\n",
+ "p = 20000 # profit in Rs\n",
+ "q3 = (fc1 + p)/(sp-vc1) # quantity of production at profit of Rs 20000\n",
+ "print \" Break even point = %d pieces \\n If fixed cost is 125000 and variable cost is Rs 90 per unit then break even point = %d pieces\\n Number of components to get profit of Rs 20000 = %d pieces\"%(q1 , q2 ,q3)"
+ ]
+ },
+ {
+ "cell_type": "markdown",
+ "metadata": {},
+ "source": [
+ "## Exa 5.30 : page 275"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 27,
+ "metadata": {
+ "collapsed": false
+ },
+ "outputs": [
+ {
+ "name": "stdout",
+ "output_type": "stream",
+ "text": [
+ "Break even point = 7500 pieces\n"
+ ]
+ }
+ ],
+ "source": [
+ "fc1 = 12000 # fixed cost for machine A in Rs\n",
+ "fc2 = 48000 # fixed cost for machine B in Rs\n",
+ "n1 = 6 # unit production cost in Rs per piece for machine A\n",
+ "n2 = 1.2 # unit production cost in Rs per piece for machine B\n",
+ "q = (fc2-fc1)/(n1-n2) # break even point\n",
+ "print \"Break even point = %d pieces\"%(q)"
+ ]
+ },
+ {
+ "cell_type": "markdown",
+ "metadata": {},
+ "source": [
+ "## Exa 5.31 : page 275"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 28,
+ "metadata": {
+ "collapsed": false
+ },
+ "outputs": [
+ {
+ "name": "stdout",
+ "output_type": "stream",
+ "text": [
+ " Break even quantity for a component which can be produced on either the capstan lathe or single spindle automatic = 1373 pieces\n"
+ ]
+ }
+ ],
+ "source": [
+ "# capstan lathe\n",
+ "tc1 = 300 # total cost in Rs\n",
+ "mc1 = 2.5 # material cost per piece in Rs\n",
+ "olc1 = 5 # operation labour cost per hour in Rs\n",
+ "ct1 = 5 # cycle time per piece in min.\n",
+ "slc1 = 20 # setting up labour cost in Rs per hour\n",
+ "st1 = 1 # setting up time in hour\n",
+ "mo1 = 300/100 # machine over heads of operation labour cost\n",
+ "o1 = mo1*olc1 # overheads of capstan lathe in Rs per hour\n",
+ "fc1 = tc1 + slc1*st1 + o1*st1 # fixed cost of capstan lathe in Rs\n",
+ "vc1 = mc1 + (olc1*ct1)/60 + (o1*ct1)/60 # variable cost in Rs\n",
+ "# Automatic (single spindle) \n",
+ "tc2 = 300 # total cost in Rs\n",
+ "cc2 = 1500 # cost of cams in Rs\n",
+ "mc2 = 2.5 # material cost per piece in Rs\n",
+ "olc2 = 2 # operation labour cost per hour in Rs\n",
+ "ct2 = 1 # cycle time per piece in min.\n",
+ "slc2 = 20 # setting up labour cost in Rs per hour\n",
+ "st2 = 8 # setting up time in hour\n",
+ "mo2 = 1000/100 # machine over heads of operation labour cost\n",
+ "o2 = mo2*olc2 # overheads of single spindle in Rs per hour\n",
+ "fc2 = tc2 + cc2 + slc2*st2 + o2*st2 # fixed cost of single spindle in Rs\n",
+ "vc2 = mc2 + (olc2*ct2)/60 + (slc2)/60 # variable cost in Rs\n",
+ "q = (fc2-fc1)/(vc1-vc2) # break even quantity\n",
+ "print \" Break even quantity for a component which can be produced on either the capstan lathe or single spindle automatic = %d pieces\"%(q)"
+ ]
+ },
+ {
+ "cell_type": "markdown",
+ "metadata": {},
+ "source": [
+ "## Exa 5.32 : page 277"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 29,
+ "metadata": {
+ "collapsed": false
+ },
+ "outputs": [
+ {
+ "name": "stdout",
+ "output_type": "stream",
+ "text": [
+ "Break even point = 43 pieces\n"
+ ]
+ }
+ ],
+ "source": [
+ "# Engine lathe\n",
+ "t = 12 # time/piece in min.\n",
+ "l = 7 # overhead cost/hr\n",
+ "o = 4 # direct labour cost/hr\n",
+ "s = 2 # set up time in hour\n",
+ "sr = 8 # set up rate per \n",
+ "# turret lathe\n",
+ "T = 5 # time/piece in min.\n",
+ "L = 5 # overhead cost/hr\n",
+ "O = 8 # direct labour cost/hr\n",
+ "S = 8 # set up time in hour\n",
+ "SR = 8 # set up rate per \n",
+ "q = 60*(S*SR-s*sr)/(t*(l+o)-T*(L+O)) # break even point\n",
+ "q = round(q)\n",
+ "print \"Break even point = %d pieces\"%(q)"
+ ]
+ },
+ {
+ "cell_type": "markdown",
+ "metadata": {},
+ "source": [
+ "## Exa 5.33 : page 277"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 30,
+ "metadata": {
+ "collapsed": false
+ },
+ "outputs": [
+ {
+ "name": "stdout",
+ "output_type": "stream",
+ "text": [
+ "Break even point = 384000 pieces\n"
+ ]
+ }
+ ],
+ "source": [
+ "from sympy import symbols, solve\n",
+ "fc1 = 80000 # fixed cost for turret lathe in Rs\n",
+ "fc2 = 32000 # fixed cost for engine lathe in Rs\n",
+ "n1 = 16 # production of pieces per year in turret lathe\n",
+ "n2 = 10 # production of pieces per year in engine lathe\n",
+ "vc1 = 2 #operators cost in turret lathe\n",
+ "vc2 = 2.5 # operators cost in engine lathe\n",
+ "Q=symbols('Q')\n",
+ "expr = (fc1+1/n1*vc1*Q)-(fc2+2.5*Q/10)\n",
+ "Q=solve(expr,Q)[0]\n",
+ "print \"Break even point = %d pieces\"%(Q)"
+ ]
+ },
+ {
+ "cell_type": "markdown",
+ "metadata": {},
+ "source": [
+ "## Exa 5.34 : page 277"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 31,
+ "metadata": {
+ "collapsed": false
+ },
+ "outputs": [
+ {
+ "name": "stdout",
+ "output_type": "stream",
+ "text": [
+ "The point at which the automatic lathe will be justified = 5.56 \n"
+ ]
+ }
+ ],
+ "source": [
+ "st1 = 15 # set up time for engine lathe in min.\n",
+ "ut1 = 15 # unit time for engine lathe in min.\n",
+ "st2 = 90 # set up time for automatic lathe in min.\n",
+ "ut2 = 1.5 # unit time for engine lathe in min.\n",
+ "q = (st2-st1)/(ut1-ut2) # quantity of production\n",
+ "print \"The point at which the automatic lathe will be justified = %0.2f \"%(q)\n",
+ "# Answers vary due to round off error"
+ ]
+ },
+ {
+ "cell_type": "markdown",
+ "metadata": {},
+ "source": [
+ "## Exa 5.35 : page 278"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 32,
+ "metadata": {
+ "collapsed": false
+ },
+ "outputs": [
+ {
+ "name": "stdout",
+ "output_type": "stream",
+ "text": [
+ "Quantity of pieces at Break even point = 86 pieces\n"
+ ]
+ }
+ ],
+ "source": [
+ "# Automatic lathe\n",
+ "p = 30 # number of pieces produced per hour \n",
+ "l = 4 # labour rate per hour in Rs\n",
+ "d = 4.50 # hourly depreciation rate per machine in hour\n",
+ "s = 4 # set up time in hour\n",
+ "# turret lathe\n",
+ "P = 10 # number of pieces produced per hour \n",
+ "L = 4 # labour rate per hour in Rs\n",
+ "D = 1.50 # hourly depreciation rate per machine in hour\n",
+ "S = 2 # set up time in hour\n",
+ "q = (P*p*(S*L+S*D-s*l-s*d))/(P*(l+d)-p*(L+D)) # quantity of pieces at break even point\n",
+ "print \"Quantity of pieces at Break even point = %d pieces\"%(q)"
+ ]
+ },
+ {
+ "cell_type": "markdown",
+ "metadata": {},
+ "source": [
+ "## Exa 5.36 : page 279"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 33,
+ "metadata": {
+ "collapsed": false
+ },
+ "outputs": [
+ {
+ "name": "stdout",
+ "output_type": "stream",
+ "text": [
+ "Quantity of production at break even point = 760 pieces\n"
+ ]
+ }
+ ],
+ "source": [
+ "Pa = 8.4 # unit tool process cost for method A in Rs\n",
+ "Pb = 14.8 # unit tool process cost for method B in Rs\n",
+ "Ta = 6480 #total tool cost for method A in Rs \n",
+ "Tb = 1616 #total tool cost for method B in Rs\n",
+ "q = (Ta-Tb)/(Pb-Pa) # break even point\n",
+ "print \"Quantity of production at break even point = %d pieces\"%(q) "
+ ]
+ },
+ {
+ "cell_type": "markdown",
+ "metadata": {},
+ "source": [
+ "## Exa 5.37 : page 283"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 34,
+ "metadata": {
+ "collapsed": false
+ },
+ "outputs": [
+ {
+ "name": "stdout",
+ "output_type": "stream",
+ "text": [
+ "(i) Cost per unit for machine A = Rs 2.75\n",
+ " Cost per unit machine B = Rs 1.75\n",
+ "machine B will be preferred\n",
+ "(ii) Cost per unit for machine A = Rs 3.88\n",
+ " Cost per unit machine B = Rs 4.00\n",
+ "machine A will be preferred\n",
+ "(iii) Annual production to make cost per piece equal for two machines = 4500 pieces\n"
+ ]
+ }
+ ],
+ "source": [
+ "# machine A\n",
+ "ic1 = 50000 # initial cost\n",
+ "hoc1 = 10 # hourly operating charges\n",
+ "pp1= 5 # pieces produced per hour\n",
+ "i = 15 # interest rate\n",
+ "i = i/100\n",
+ "oh = 2000 # operating hours\n",
+ "fc1 = ic1*i # fixed cost\n",
+ "vc1 = oh*hoc1 # variable cost\n",
+ "tc1 = fc1+vc1 # total charges\n",
+ "ao1 = oh*pp1 # annual output\n",
+ "c1 = tc1/ao1 # cost per unit\n",
+ "# machine B\n",
+ "ic2 = 80000 # initial cost\n",
+ "hoc2 = 8 # hourly operating charges\n",
+ "pp2= 8 # pieces produced per hour\n",
+ "fc2 = ic2*i # fixed cost\n",
+ "vc2 = oh*hoc2 # variable cost\n",
+ "tc2 = fc2+vc2 # total charges\n",
+ "ao2 = oh*pp2 # annual output\n",
+ "c2 = tc2/ao2 # cost per unit\n",
+ "print \"(i) Cost per unit for machine A = Rs %0.2f\\n Cost per unit machine B = Rs %0.2f\"%(c1,c2)\n",
+ "print \"machine B will be preferred\"\n",
+ "# machine A\n",
+ "ao3 = 4000 # annual output\n",
+ "oc3 = ao3*hoc1/pp1 # operating charges \n",
+ "tc3 = oc3+fc1 # total annual charge\n",
+ "c3 = tc3/ao3 # cost/piece \n",
+ "# machine B\n",
+ "ao4 = 4000 # annual output\n",
+ "oc4 = ao4*hoc2/pp2 # operating charges \n",
+ "tc4 = oc4+fc2 # total annual charge\n",
+ "c4 = tc4/ao4# cost/piece\n",
+ "print \"(ii) Cost per unit for machine A = Rs %0.2f\\n Cost per unit machine B = Rs %0.2f\"%(c3,c4)\n",
+ "print \"machine A will be preferred\"\n",
+ "A = hoc1/pp1 # operating cost per piece on machine A\n",
+ "B = hoc2/pp2 # operating cost per piece on machine B\n",
+ "Q = fc2 - fc1 # annual production\n",
+ "print \"(iii) Annual production to make cost per piece equal for two machines = %d pieces\"%(Q )"
+ ]
+ },
+ {
+ "cell_type": "markdown",
+ "metadata": {},
+ "source": [
+ "## Exa 5.38 : page 284"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 35,
+ "metadata": {
+ "collapsed": false
+ },
+ "outputs": [
+ {
+ "name": "stdout",
+ "output_type": "stream",
+ "text": [
+ " Sales at break even point = 88000 units\n",
+ " Sales at net income of Rs9000 and corporate tax rate being 5.5 = Rs 102645.50\n",
+ " Sales per unit if B.E.P brought down to 10000 units = Rs 8.80 per unit\n"
+ ]
+ }
+ ],
+ "source": [
+ "As = 80000 # annual sales in Rs\n",
+ "vc = 64000 # variable expenses in Rs\n",
+ "c = 16000 # contribution in Rs\n",
+ "fc = 24000 # fixed expenses in Rs\n",
+ "l = 8000 # losses in Rs\n",
+ "p = 9000 # profit in Rs\n",
+ "s1 = fc + vc # sales at B.E.P in Rs\n",
+ "s2 = (fc + vc + p)/0.945 # sales at net income of Rs9000 and corporate tax rate being 5.5%\n",
+ "q = 10000 # quantity of units\n",
+ "sp = (fc+vc)/q # selling price per unit in Rs\n",
+ "print \" Sales at break even point = %d units\"%(s1 )\n",
+ "print \" Sales at net income of Rs9000 and corporate tax rate being 5.5 = Rs %0.2f\\n Sales per unit if B.E.P brought down to 10000 units = Rs %0.2f per unit\" %(s2 , sp)"
+ ]
+ },
+ {
+ "cell_type": "markdown",
+ "metadata": {},
+ "source": [
+ "## Exa 5.39 : page 285"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 36,
+ "metadata": {
+ "collapsed": false
+ },
+ "outputs": [
+ {
+ "name": "stdout",
+ "output_type": "stream",
+ "text": [
+ "Break even point = 1000 pieces\n"
+ ]
+ }
+ ],
+ "source": [
+ "fc = 55000 # fixed cost in Rs\n",
+ "vc = 45 # variable cost per piece in Rs\n",
+ "sp = 100 # selling price per piece in Rs\n",
+ "p = (vc/sp)*100 # percentage of variable cost to \n",
+ "pm = 100 - p # profit margin\n",
+ "bep = ((55000/55)*100)/100 # Break even point\n",
+ "print \"Break even point = %d pieces\"%(bep)"
+ ]
+ },
+ {
+ "cell_type": "markdown",
+ "metadata": {},
+ "source": [
+ "## Exa 5.40 : page 288"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 37,
+ "metadata": {
+ "collapsed": false
+ },
+ "outputs": [
+ {
+ "name": "stdout",
+ "output_type": "stream",
+ "text": [
+ " Total cost per piece for capstan lathe = Rs 5.99\n",
+ " Total cost per piece for turret lathe = Rs 7.47\n"
+ ]
+ }
+ ],
+ "source": [
+ "from math import sqrt\n",
+ "f1 = 335 # fixed cost in Rs for capstan lathe\n",
+ "k = 0.25 # stock carrying factor in paise per piece\n",
+ "k = k/100\n",
+ "N1 = sqrt(f1/k) # pieces for capstan lathe\n",
+ "a1 = 4.16 # variable cost per piece for capstan lathe\n",
+ "tc1 = a1+f1/N1+k*N1 # total cost for capstan lathe\n",
+ "f2 = 2120 # fixed cost in Rs for turret lathe\n",
+ "N2 = sqrt(f2/k) # pieces for turret lathe \n",
+ "a2 = 2.863 # variable cost per piece for turret lathe\n",
+ "tc2 = a2+f2/N2+k*N2 # total cost for turret lathe\n",
+ "print \" Total cost per piece for capstan lathe = Rs %0.2f\\n Total cost per piece for turret lathe = Rs %0.2f\"%(tc1 , tc2)\n",
+ "# Answers vary due to round off error"
+ ]
+ },
+ {
+ "cell_type": "markdown",
+ "metadata": {},
+ "source": [
+ "## Exa 5.41 : page 289"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 38,
+ "metadata": {
+ "collapsed": false
+ },
+ "outputs": [
+ {
+ "name": "stdout",
+ "output_type": "stream",
+ "text": [
+ " Economic order quantity = 2390 or 2400 units\n",
+ " Totl cost = Rs 41020 per year\n",
+ " I = 0.6944\n",
+ " It is clear that inventory cost will get increased very greatly\n"
+ ]
+ }
+ ],
+ "source": [
+ "from sympy import symbols, diff, solve\n",
+ "R=500 # cost of ordering in Rs per order \n",
+ "A=12000 #annual consumption units\n",
+ "C=3.00 # unit cost of item\n",
+ "K=1.5 # unit storage cost\n",
+ "I1=0.2 # interest rate\n",
+ "N = symbols('N')\n",
+ "G =C*A+I1*C*N/2+K*N/2+A*R/N # total cost per year\n",
+ "expr=G.diff(N)\n",
+ "N=solve(expr, N)[1]\n",
+ "O = A/N # number of orders\n",
+ "N1 = 2400 # units\n",
+ "tc = C*A + I1*C*N1/2 + K*N1/2 + A*R/N1 # total cost in Rs\n",
+ "I2 = (2*R*A)/(C*N1**2) \n",
+ "print \" Economic order quantity = %d or %d units\\n Totl cost = Rs %d per year\\n I = %0.4f\"%(N,N1,tc,I2)\n",
+ "print \" It is clear that inventory cost will get increased very greatly\""
+ ]
+ },
+ {
+ "cell_type": "markdown",
+ "metadata": {},
+ "source": [
+ "## Exa 5.42 : page 291"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 39,
+ "metadata": {
+ "collapsed": false
+ },
+ "outputs": [
+ {
+ "name": "stdout",
+ "output_type": "stream",
+ "text": [
+ " Total cost for lowest cost curve = Rs 300062.50\n",
+ " Total cost for next higher curve = Rs 306123.72\n",
+ " Total cost for highest curve = Rs 10320001.00 \n",
+ " Comparing all total cost lowest is Rs 300,062.50 for an order quantity of 10,000.\n",
+ " N = 10,000 and No. of orders = 4\n"
+ ]
+ }
+ ],
+ "source": [
+ "from math import sqrt\n",
+ "A = 40000 # number of units per year\n",
+ "I = 25 # carrying cost in percent\n",
+ "I = I/100\n",
+ "C1 = 8 # cost for 0 < N < 1000 per unit in Rs\n",
+ "C2 = 7.5 # cost for 1000 < N < 10000 per unit in Rs\n",
+ "C3 = 7.25 # cost for N >= 10000 per unit in Rs\n",
+ "R = 250 # ordering cost per order in Rs\n",
+ "N = 10000 # units\n",
+ "N1 = sqrt(2*R*A/(I*C3)) # optimal quantity for lowest curve\n",
+ "G1= C3*A+(A*R)/N+I*C3*N/2 # total cost in Rs\n",
+ "N2 = sqrt(2*R*A/(I*C2)) # optimal quantity for higher curve\n",
+ "G2= C2*A+(A*R)/N2+I*C2*N2/2 # total cost in Rs\n",
+ "N3 = sqrt(2*R*A/(I*C1)) # optimal quantity for highest curve\n",
+ "G3 = C1*A+(A*R)+1 # total cost in Rs\n",
+ "print \" Total cost for lowest cost curve = Rs %0.2f\\n Total cost for next higher curve = Rs %0.2f\\n Total cost for highest curve = Rs %0.2f \"%(G1,G2,G3)\n",
+ "print \" Comparing all total cost lowest is Rs 300,062.50 for an order quantity of 10,000.\"\n",
+ "print \" N = 10,000 and No. of orders = 4\""
+ ]
+ },
+ {
+ "cell_type": "markdown",
+ "metadata": {},
+ "source": [
+ "## Exa 5.43 : page 291"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 40,
+ "metadata": {
+ "collapsed": false
+ },
+ "outputs": [
+ {
+ "name": "stdout",
+ "output_type": "stream",
+ "text": [
+ "The lot size = 8333 components\n"
+ ]
+ }
+ ],
+ "source": [
+ "from math import ceil\n",
+ "from sympy import symbols, diff, solve\n",
+ "c = 50000 # components\n",
+ "R=500 # cost of ordering in Rs per order \n",
+ "A=12000 #annual consumption units\n",
+ "C=3.00 # unit cost of item\n",
+ "K=1.50 # unit storage cost\n",
+ "I=0.2 # interest rate\n",
+ "\n",
+ "N = symbols('N')\n",
+ "G=0.02*N+1500000/N\n",
+ "y=G.diff(N)\n",
+ "N=solve(y, N)[1]\n",
+ "l = c/N # number of lots\n",
+ "l = ceil(l)\n",
+ "ls = c/l # lot size\n",
+ "print \"The lot size = %d components\"%ls"
+ ]
+ }
+ ],
+ "metadata": {
+ "kernelspec": {
+ "display_name": "Python 2",
+ "language": "python",
+ "name": "python2"
+ },
+ "language_info": {
+ "codemirror_mode": {
+ "name": "ipython",
+ "version": 2
+ },
+ "file_extension": ".py",
+ "mimetype": "text/x-python",
+ "name": "python",
+ "nbconvert_exporter": "python",
+ "pygments_lexer": "ipython2",
+ "version": "2.7.9"
+ }
+ },
+ "nbformat": 4,
+ "nbformat_minor": 0
+}
diff --git a/A_Textbook_of_Production_Engineering_by_P._C._Sharma/Chapter9_1.ipynb b/A_Textbook_of_Production_Engineering_by_P._C._Sharma/Chapter9_1.ipynb
new file mode 100644
index 00000000..549b20dd
--- /dev/null
+++ b/A_Textbook_of_Production_Engineering_by_P._C._Sharma/Chapter9_1.ipynb
@@ -0,0 +1,476 @@
+{
+ "cells": [
+ {
+ "cell_type": "markdown",
+ "metadata": {},
+ "source": [
+ "# Chapter 9 : Limits, Tolerances & Fits"
+ ]
+ },
+ {
+ "cell_type": "markdown",
+ "metadata": {},
+ "source": [
+ "## Exa 9.1 : Page 376"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 1,
+ "metadata": {
+ "collapsed": false
+ },
+ "outputs": [
+ {
+ "name": "stdout",
+ "output_type": "stream",
+ "text": [
+ " Hole tolerence = 0.02 mm\n",
+ " Shaft tolerence = 0.02 mm\n",
+ " Allowance = 0.03 mm\n"
+ ]
+ }
+ ],
+ "source": [
+ "h1 = 37.52 # high limit of hole in mm\n",
+ "h2 = 37.50 # low limit of hole in mm\n",
+ "s1 = 37.47 # high limit of shaft in mm\n",
+ "s2 = 37.45 # low limit of shaft in mm\n",
+ "ht = h1-h2 # hole tolerence in mm\n",
+ "st = s1-s2 # shaft tolerence in mm\n",
+ "a = h2-s1 # allowance in mm\n",
+ "print \" Hole tolerence = %0.2f mm\\n Shaft tolerence = %0.2f mm\\n Allowance = %0.2f mm\"%(ht ,st ,a)"
+ ]
+ },
+ {
+ "cell_type": "markdown",
+ "metadata": {},
+ "source": [
+ "## Exa 9.2 : Page 377"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 2,
+ "metadata": {
+ "collapsed": false
+ },
+ "outputs": [
+ {
+ "name": "stdout",
+ "output_type": "stream",
+ "text": [
+ " High limit of hole = 75.075 mm\n",
+ " High limit of shaft = 74.90 mm\n",
+ " Low limit of shaft = 74.825 mm\n"
+ ]
+ }
+ ],
+ "source": [
+ "t = 0.075 # tolerence in mm\n",
+ "h2 = 75 # low limit of hole in mm\n",
+ "a = 0.10 # allowance in mm\n",
+ "h1 = h2+t # high limit of hole in mm\n",
+ "s1 = h2-a # high limit of shaft in mm\n",
+ "s2 = s1-t # low limit of shaft in mm\n",
+ "print \" High limit of hole = %0.3f mm\\n High limit of shaft = %0.2f mm\\n Low limit of shaft = %0.3f mm\"%(h1 ,s1 , s2)"
+ ]
+ },
+ {
+ "cell_type": "markdown",
+ "metadata": {},
+ "source": [
+ "## Exa 9.3 : Page 377"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 3,
+ "metadata": {
+ "collapsed": false
+ },
+ "outputs": [
+ {
+ "name": "stdout",
+ "output_type": "stream",
+ "text": [
+ " High limit of hole = 75.225 mm\n",
+ " Low limit of shaft = 75.2625 mm\n",
+ " High limit of shaft = 75.4875 mm\n"
+ ]
+ }
+ ],
+ "source": [
+ "t = 0.225 # tolerence in mm\n",
+ "h2 = 75 # low limit of hole in mm\n",
+ "a = 0.0375 # interference in mm\n",
+ "h1 = h2+t # high limit of hole in mm\n",
+ "s2 = h1+a # low limit of shaft in mm\n",
+ "s1 = s2+t # high limit of shaft in mm\n",
+ "print \" High limit of hole = %0.3f mm\\n Low limit of shaft = %0.4f mm\\n High limit of shaft = %0.4f mm\"%(h1 ,s2 , s1)"
+ ]
+ },
+ {
+ "cell_type": "markdown",
+ "metadata": {},
+ "source": [
+ "## Exa 9.4 : Page 378"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 4,
+ "metadata": {
+ "collapsed": false
+ },
+ "outputs": [
+ {
+ "name": "stdout",
+ "output_type": "stream",
+ "text": [
+ " Tolerence for hole = 0.011 mm\n",
+ " Tolerence for shaft = 0.007 mm\n",
+ " Fundamental deviation for hole = 0.00 mm\n",
+ " Fundamental deviation for shaft = 0.001 mm\n",
+ " Low limit of hole = 60 mm\n",
+ " High limit of hole = 60.011 mm\n",
+ " High limit of shaft = 59.99 mm\n",
+ " Low limit of hole = 59.99 mm\n"
+ ]
+ }
+ ],
+ "source": [
+ "s1 = 50 # diameter of step1 in mm\n",
+ "s2 = 80 # diameter of step2 in mm\n",
+ "d = (s1*s2)**(1/2) # mm\n",
+ "i = (0.45*(d)**(1/3)+0.001*d)/10**3 # mm\n",
+ "t1 = 25*i # tolerence for hole in mm\n",
+ "t2 = 16*i # tolerence for shaft in mm\n",
+ "a1 = 0 # fundamental deviation for hole in mm\n",
+ "a2 = 5.5*(d)**0.41 # fundamental deviation for shaft in microns\n",
+ "a2 = a2/10**4 # mm\n",
+ "h1 = 60 # low limit of hole in mm\n",
+ "h2 = h1+t1 # high limit of tolerence in mm\n",
+ "s1 = h1 - t2 # high limit of shaft in mm\n",
+ "s2 = s1-t2 # low limit of shaft in mm\n",
+ "print \" Tolerence for hole = %0.3f mm\\n Tolerence for shaft = %0.3f mm\"%(t1 ,t2)\n",
+ "print \" Fundamental deviation for hole = %0.2f mm\\n Fundamental deviation for shaft = %0.3f mm\"%(a1 , a2 )\n",
+ "print \" Low limit of hole = %d mm\\n High limit of hole = %0.3f mm\\n High limit of shaft = %0.2f mm\\n Low limit of hole = %0.2f mm\"%(h1 ,h2 , s1 , s2)\n",
+ "# Answers vary due to round off error"
+ ]
+ },
+ {
+ "cell_type": "markdown",
+ "metadata": {},
+ "source": [
+ "## Exa 9.5 : Page 379"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 5,
+ "metadata": {
+ "collapsed": false
+ },
+ "outputs": [
+ {
+ "name": "stdout",
+ "output_type": "stream",
+ "text": [
+ " Basic size = 30 mm\n",
+ " Shaft tolerence = 0.013 mm\n",
+ " Hole tolerence = 0.020 mm\n",
+ " High limit of shaft = 29.995 mm\n",
+ " Low limit of shaft = 29.982 mm\n",
+ " High limit of hole = 30.020 mm \n",
+ " Low limit of hole = 30.000 mm\n",
+ " Maximum clearance = 0.038 mm\n",
+ " Minimum clearance = 0.005 mm\n"
+ ]
+ }
+ ],
+ "source": [
+ "b = 30 # basic size in mm\n",
+ "s1 = 0.005 # maximum limit of shaft in mm\n",
+ "s2 = 0.018 # minimum limit of shaft in mm\n",
+ "h1 = 0.020 # maximum limit of hole in mm\n",
+ "h2 = 0.0 # minimum limit of hole in mm\n",
+ "t1 = s2-s1 # shaft tolerence in mm\n",
+ "t2 = h1-h2 # hole tolerence in mm\n",
+ "Sh = b-s1 # high limit of shaft in mm\n",
+ "Sl = b-s2 # low limit of shaft in mm\n",
+ "Hh = b+h1 # high limit of hole in mm\n",
+ "Hl = b+h2 # low limit of hole in mm\n",
+ "c1 = Hh-Sl # maximum clearance in mm\n",
+ "c2 = Hl-Sh # minimum clearance in mm\n",
+ "print \" Basic size = %d mm\\n Shaft tolerence = %0.3f mm\\n Hole tolerence = %0.3f mm\"%(b,t1,t2)\n",
+ "print \" High limit of shaft = %0.3f mm\\n Low limit of shaft = %0.3f mm\\n High limit of hole = %0.3f mm \\n Low limit of hole = %0.3f mm\"%(Sh,Sl,Hh,Hl)\n",
+ "print \" Maximum clearance = %0.3f mm\\n Minimum clearance = %0.3f mm\"%(c1,c2)"
+ ]
+ },
+ {
+ "cell_type": "markdown",
+ "metadata": {},
+ "source": [
+ "## Exa 9.6 : Page 379"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 6,
+ "metadata": {
+ "collapsed": false
+ },
+ "outputs": [
+ {
+ "name": "stdout",
+ "output_type": "stream",
+ "text": [
+ " Hole basis system \n",
+ " Lower limit of hole = 25 mm\n",
+ " Higher limit of hole = 25.006 mm\n",
+ " Higher limit of shaft = 24.990 mm \n",
+ " Lower limit of shaft = 24.986 mm\n",
+ " Shaft basis system \n",
+ " high limit of shaft = 25.000 mm\n",
+ " lower limit of shaft = 24.996 mm\n",
+ " lower limit of hole = 25.010 mm\n",
+ " upper limit of hole = 25.016 mm\n"
+ ]
+ }
+ ],
+ "source": [
+ "from sympy import symbols, solve\n",
+ "minc = 0.01 # minimum clearance in mm\n",
+ "bs = 25 # basic size in mm\n",
+ "maxc = 0.02 # maximum clearance in mm\n",
+ "x=symbols('x')\n",
+ "y=1.5*x\n",
+ "expr = y+0.01+x-0.02\n",
+ "x=solve(expr, x)[0]\n",
+ "y=1.5*x\n",
+ "# hole basis system\n",
+ "low_h1 = bs # low limit of hole in mm\n",
+ "high_h1 = bs+y # high limit of hole in mm\n",
+ "u_s = low_h1-minc # upper limit of shaft in mm\n",
+ "low_s1 = u_s-x # lower limit of shaft in mm\n",
+ "# shaft basis system\n",
+ "high_s = bs # high limit of shaft in mm\n",
+ "low_s2 = bs-x # low limit of shaft in mm\n",
+ "low_h2 = bs+minc # low limit of hole in mm\n",
+ "high_h2 = low_h2+y # high limit of hole in mm\n",
+ "print \" Hole basis system \\n Lower limit of hole = %d mm\\n Higher limit of hole = %0.3f mm\\n Higher limit of shaft = %0.3f mm \\n Lower limit of shaft = %0.3f mm\"%(low_h1,high_h1,u_s,low_s1)\n",
+ "print \" Shaft basis system \\n high limit of shaft = %0.3f mm\\n lower limit of shaft = %0.3f mm\\n lower limit of hole = %0.3f mm\\n upper limit of hole = %0.3f mm\"%(high_s,low_s2,low_h2,high_h2)"
+ ]
+ },
+ {
+ "cell_type": "markdown",
+ "metadata": {},
+ "source": [
+ "## Exa 9.7 : Page 380"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 7,
+ "metadata": {
+ "collapsed": false
+ },
+ "outputs": [
+ {
+ "name": "stdout",
+ "output_type": "stream",
+ "text": [
+ " lower limit of hole = 100.002 mm\n",
+ " higher limit of hole = 100.010 mm\n",
+ " upper limit of shaft = 99.989 mm\n",
+ " lower limit of shaft = 99.978 mm\n"
+ ]
+ }
+ ],
+ "source": [
+ "from math import ceil\n",
+ "bs = 100 # basic size in mm\n",
+ "s1 = 120# diameter of step1 in mm\n",
+ "s2 = 80 # diameter of step2 in mm\n",
+ "d = (s1*s2)**(1/2) # mm\n",
+ "d = ceil(d)\n",
+ "i = (0.45*(d)**(1/3)+0.001*d)/10**3 # mm\n",
+ "t1 = 16*i # tolerence for hole in mm\n",
+ "t2 = 25*i # tolerence for shaft in mm\n",
+ "G = (2.5*(d)**0.34)/10**3 # fundamental deviation for hole in mm\n",
+ "e = (11*(d)**0.11)/10**3 # fundamental deviation for shaft in microns\n",
+ "# Hole\n",
+ "LLh = bs+G # lower limit of hole in mm\n",
+ "HLh = LLh+t1 # higher limit of hole in mm\n",
+ "# shaft\n",
+ "ULs = bs-e # upper limit of shaft in mm\n",
+ "LLs = ULs-t2 # lower limit of shaft in mm\n",
+ "print \" lower limit of hole = %0.3f mm\\n higher limit of hole = %0.3f mm\\n upper limit of shaft = %0.3f mm\\n lower limit of shaft = %0.3f mm\"%(LLh,HLh,ULs,LLs)\n",
+ "# Error in textbook"
+ ]
+ },
+ {
+ "cell_type": "markdown",
+ "metadata": {},
+ "source": [
+ "## Exa 9.8 : Page 381"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 8,
+ "metadata": {
+ "collapsed": false
+ },
+ "outputs": [
+ {
+ "name": "stdout",
+ "output_type": "stream",
+ "text": [
+ "Hole basis system \n",
+ " Lower limit of journal = 100 mm\n",
+ " Higher limit of bearing = 100.005 mm\n",
+ " Higher limit of journal = 99.998 mm \n",
+ " Lower limit of journal = 99.994 mm\n",
+ "shaft basis system \n",
+ " upper limit of journal = 100.000 mm\n",
+ " lower limit of journal = 99.996 mm\n",
+ " lower limit of bearing = 100.002 mm\n",
+ " upper limit of bearing = 100.007 mm\n"
+ ]
+ }
+ ],
+ "source": [
+ "tb = 0.005 # tolerence on bearing in mm\n",
+ "tj = 0.004 # tolerence on journal in mm\n",
+ "a = 0.002 # allowance in mm\n",
+ "#hole-basis system\n",
+ "b = 100 # basic size in mm\n",
+ "Bl = b # lower limit of bearing in mm\n",
+ "Bh = Bl+tb # higher limit of bearing in mm\n",
+ "Jh = Bl-a # higher limit of journal in mm\n",
+ "Jl1 = Jh - tj # lower limit of journal in \n",
+ "# shaft-basis system\n",
+ "Ju = b # upper limit of journal in mm\n",
+ "Jl2 = Ju-tj # lower limit of journal in mm\n",
+ "Bl = Ju+a # lower limit of bearing in mm\n",
+ "Bu = Bl+tb # upper limit of bearing in mm\n",
+ "print \"Hole basis system \\n Lower limit of journal = %d mm\\n Higher limit of bearing = %0.3f mm\\n Higher limit of journal = %0.3f mm \\n Lower limit of journal = %0.3f mm\"%(Bl,Bh,Jh,Jl1)\n",
+ "print \"shaft basis system \\n upper limit of journal = %0.3f mm\\n lower limit of journal = %0.3f mm\\n lower limit of bearing = %0.3f mm\\n upper limit of bearing = %0.3f mm\"%(Ju,Jl2,Bl,Bu)"
+ ]
+ },
+ {
+ "cell_type": "markdown",
+ "metadata": {},
+ "source": [
+ "## Exa 9.9 : Page 381"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 9,
+ "metadata": {
+ "collapsed": false
+ },
+ "outputs": [
+ {
+ "name": "stdout",
+ "output_type": "stream",
+ "text": [
+ " Hole basis system \n",
+ " upper limit of shaft = 100.120 mm\n",
+ " lower limit of hole = 100.000 mm\n",
+ " higher limit of hole = 100.035 mm\n",
+ " lower limit of shaft = 100.085 mm\n",
+ " Shaft basis system \n",
+ " upper limit of shaft = 100.000 mm\n",
+ " lower limit of shaft = 99.965 mm\n",
+ " lower limit of hole = 99.880 mm\n",
+ " upper limit of hole = 99.915 mm\n"
+ ]
+ }
+ ],
+ "source": [
+ "# Hole-basis system\n",
+ "b = 100 # basic size in mm\n",
+ "i1 = 0.12 # maximum interference in mm\n",
+ "i2 = 0.05 # minimum interfernce in mm\n",
+ "t = (i1-i2)/2 # tolerence in mm\n",
+ "Sh = b+i1 # upper limit of shaft in mm\n",
+ "Hl = b # lower limit of hole in mm\n",
+ "Hh = b+t # higher limit of hole in mm\n",
+ "Sl1 = Sh-t #lower limit of shaft in mm \n",
+ "# shaft-basis system\n",
+ "Su = b # upper limit of shaft in mm\n",
+ "Sl2 = b-t # lower limit of shaft in mm\n",
+ "Hl1 = b-i1 # lower limit of hole in mm\n",
+ "Hu = Hl1+t # higher limit of hole in mm\n",
+ "print \" Hole basis system \\n upper limit of shaft = %0.3f mm\\n lower limit of hole = %0.3f mm\\n higher limit of hole = %0.3f mm\\n lower limit of shaft = %0.3f mm\"%(Sh,Hl,Hh,Sl1)\n",
+ "print \" Shaft basis system \\n upper limit of shaft = %0.3f mm\\n lower limit of shaft = %0.3f mm\\n lower limit of hole = %0.3f mm\\n upper limit of hole = %0.3f mm\"%(Su,Sl2,Hl1,Hu)"
+ ]
+ },
+ {
+ "cell_type": "markdown",
+ "metadata": {},
+ "source": [
+ "## Exa 9.10 : Page 382"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 10,
+ "metadata": {
+ "collapsed": false
+ },
+ "outputs": [
+ {
+ "name": "stdout",
+ "output_type": "stream",
+ "text": [
+ " lower limit of hole = 100 mm\n",
+ " upper limit of hole = 100.016 mm\n",
+ " upper limit of shaft = 99.972 mm\n",
+ " lower limit of shaft = 99.964 mm\n"
+ ]
+ }
+ ],
+ "source": [
+ "aa = 0.04 # average allowance in mm\n",
+ "a = 0.012 # allowance in mm\n",
+ "Max = aa+a # maximum allowance in mm\n",
+ "Min = aa-a # minimum allowance in mm\n",
+ "t = (Max-Min)/3 # tolerence in mm\n",
+ "ts = t # tolerence in shat in mm\n",
+ "th = 2*t # tolerence in hole in mm\n",
+ "b = 100 # basic size in mm\n",
+ "Hl = b # lower limit of hole in mm\n",
+ "Hu = b+th # upper limit of hole in mm\n",
+ "Su = b-0.028 # upper limit of shaft in mm\n",
+ "Sl = Su-ts # lower limit of shaft in mm\n",
+ "print \" lower limit of hole = %d mm\\n upper limit of hole = %0.3f mm\\n upper limit of shaft = %0.3f mm\\n lower limit of shaft = %0.3f mm\"%(Hl,Hu,Su,Sl)"
+ ]
+ }
+ ],
+ "metadata": {
+ "kernelspec": {
+ "display_name": "Python 2",
+ "language": "python",
+ "name": "python2"
+ },
+ "language_info": {
+ "codemirror_mode": {
+ "name": "ipython",
+ "version": 2
+ },
+ "file_extension": ".py",
+ "mimetype": "text/x-python",
+ "name": "python",
+ "nbconvert_exporter": "python",
+ "pygments_lexer": "ipython2",
+ "version": "2.7.9"
+ }
+ },
+ "nbformat": 4,
+ "nbformat_minor": 0
+}
diff --git a/A_Textbook_of_Production_Engineering_by_P._C._Sharma/screenshots/21AOQCurve_1.png b/A_Textbook_of_Production_Engineering_by_P._C._Sharma/screenshots/21AOQCurve_1.png
new file mode 100644
index 00000000..0716fa4f
--- /dev/null
+++ b/A_Textbook_of_Production_Engineering_by_P._C._Sharma/screenshots/21AOQCurve_1.png
Binary files differ
diff --git a/A_Textbook_of_Production_Engineering_by_P._C._Sharma/screenshots/21X&RChart_1.png b/A_Textbook_of_Production_Engineering_by_P._C._Sharma/screenshots/21X&RChart_1.png
new file mode 100644
index 00000000..c09406c5
--- /dev/null
+++ b/A_Textbook_of_Production_Engineering_by_P._C._Sharma/screenshots/21X&RChart_1.png
Binary files differ
diff --git a/A_Textbook_of_Production_Engineering_by_P._C._Sharma/screenshots/22CuttingVvsCutterDia_1.png b/A_Textbook_of_Production_Engineering_by_P._C._Sharma/screenshots/22CuttingVvsCutterDia_1.png
new file mode 100644
index 00000000..9ecdd1d0
--- /dev/null
+++ b/A_Textbook_of_Production_Engineering_by_P._C._Sharma/screenshots/22CuttingVvsCutterDia_1.png
Binary files differ
diff --git a/Heat_And_Mass_Transfer_by_Vijay_K._Dwivedi/chapter_1.ipynb b/Heat_And_Mass_Transfer_by_Vijay_K._Dwivedi/chapter_1.ipynb
new file mode 100644
index 00000000..63c6e5ec
--- /dev/null
+++ b/Heat_And_Mass_Transfer_by_Vijay_K._Dwivedi/chapter_1.ipynb
@@ -0,0 +1,644 @@
+{
+ "metadata": {
+ "name": ""
+ },
+ "nbformat": 3,
+ "nbformat_minor": 0,
+ "worksheets": [
+ {
+ "cells": [
+ {
+ "cell_type": "heading",
+ "level": 1,
+ "metadata": {},
+ "source": [
+ "Chapter 01 - Introduction To Heat Transfer"
+ ]
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example No : 1.1 - Page : 8"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "from __future__ import division\n",
+ "# given data\n",
+ "t1=38 # in degree C\n",
+ "t2=21 # in degree C\n",
+ "k=0.19 # unit less\n",
+ "x=4 #in cm\n",
+ "x=x*10**-2 # in meter\n",
+ "# Formula q=k*A*(t1-t2)/x\n",
+ "q_by_A=k*(t1-t2)/x \n",
+ "print \"The rate of heat transfer is :\",round(q_by_A,3),\"W/m**2\""
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "The rate of heat transfer is : 80.75 W/m**2\n"
+ ]
+ }
+ ],
+ "prompt_number": 15
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example No : 1.2 - Page : 8"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "# given data\n",
+ "t_i=120 # in degree C\n",
+ "t_o=40 # in degree C\n",
+ "K=0.04 # unit less\n",
+ "x=0.06 #in m\n",
+ "Q=50 # in W\n",
+ "print \"Assuming steady state heat transfer in the wall\"\n",
+ "# Rate of heat transfer across the wall = Rate of electrical energy dissipation in the furnance\n",
+ "# Formula Q= K*A*(t_i-t_o)/x \n",
+ "A=Q*x/(K*(t_i-t_o)) \n",
+ "print \"Area of wall = %0.4f square meter\" %A"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Assuming steady state heat transfer in the wall\n",
+ "Area of wall = 0.9375 square meter\n"
+ ]
+ }
+ ],
+ "prompt_number": 16
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example No : 1.3 - Page : 10"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "from numpy import pi\n",
+ "# given data\n",
+ "t_f=30 # in degree C\n",
+ "t_s=400 # in degree C\n",
+ "d=0.04 #in m\n",
+ "h=20 # in W/m**2K\n",
+ "l=1 #in meter\n",
+ "A=pi*d*l#\n",
+ "q=h*A*(t_s-t_f) # in W\n",
+ "print \"Rate of heat loss = %0.3f watt\" %q"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Rate of heat loss = 929.911 watt\n"
+ ]
+ }
+ ],
+ "prompt_number": 17
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example No : 1.4 - Page : 10"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "from numpy import pi\n",
+ "# given data\n",
+ "t_s=100 # in degree C\n",
+ "t_w=80 # in degree C\n",
+ "d=2*10**-3 #in m\n",
+ "h=3000 # in W/m**2 degree C\n",
+ "L=100 #in mm\n",
+ "L=L*10**-3 # in meter\n",
+ "A=pi*d*L#\n",
+ "# Heat loss by convection = Electric power supplied\n",
+ "# Formula h*A*(t_s-t_w) = Q\n",
+ "Q= h*A*(t_s-t_w)#\n",
+ "print \"Electric power supplied = %0.1f watt\" %Q"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Electric power supplied = 37.7 watt\n"
+ ]
+ }
+ ],
+ "prompt_number": 18
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example No : 1.5 - Page : 13"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "# given data\n",
+ "A=0.6*0.9 # in square meter\n",
+ "x=.025 # in meter\n",
+ "t_s=310 # in degree C\n",
+ "t_f=15 # in degree C\n",
+ "h=22 # in W/m**2 degree C\n",
+ "K=45 # in W/m degree C\n",
+ "Q_rad=250 # in W\n",
+ "# Heat transfer through the plate = Convection heat loss + radiation heat loss\n",
+ "# Formula Q_cond = Q_conv + Q_rad\n",
+ "# -K*A*dt/dx = h*A*(t_s-t_f)+ Fg12*sigmaA(Ts**4-Ta64)\n",
+ "t_i=x*(h*A*(t_s-t_f)+Q_rad)/(K*A)+t_s \n",
+ "print \"The inside plate temperature = %0.2f degree C\" %t_i"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "The inside plate temperature = 313.86 degree C\n"
+ ]
+ }
+ ],
+ "prompt_number": 19
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example No : 1.6 - Page : 13"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "from numpy import pi\n",
+ "# given data\n",
+ "T1=50 # in degree C\n",
+ "T1=T1+273 # in K\n",
+ "T2=20 # in degree C\n",
+ "T2=T2+273 # in K\n",
+ "d=5*10**-2 #in m\n",
+ "h=6.5 # in W/m**2K\n",
+ "l=1 #in meter\n",
+ "epsilon=0.8#\n",
+ "sigma=5.67*10**-8#\n",
+ "A=pi*d*l # in Square meter\n",
+ "q_conv = h*A*(T1-T2) # in W/m\n",
+ "print \"The heat loss by convection = %0.1f W/m\" %q_conv\n",
+ "# formula q= sigma*A*F_g12*(T1**4-T2**4) = sigma*A*epsilon*(T1**4-T2**4) (since A1<<A2, so F_g12=epsilon)\n",
+ "q_rad = sigma*A*epsilon*(T1**4-T2**4) # in W/m\n",
+ "print \"Heat loss by radiation = %0.0f W/m\" %q_rad\n",
+ "q_total= q_conv+q_rad#\n",
+ "print \"Total heat loss = %0.3f W/m\" %q_total"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "The heat loss by convection = 30.6 W/m\n",
+ "Heat loss by radiation = 25 W/m\n",
+ "Total heat loss = 55.672 W/m\n"
+ ]
+ }
+ ],
+ "prompt_number": 20
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example No : 1.7 - Page : 19"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "from scipy.integrate import quad\n",
+ "# given data\n",
+ "T1=1350 # in degree C\n",
+ "T2=50 # in degree C\n",
+ "L=25*10**-2 #in meter\n",
+ "# Formula q= -k*A*dT/dx\n",
+ "# or q/A= -k*dT/dx\n",
+ "# let q/A = q_by_A\n",
+ "def integrand(T):\n",
+ " return -0.838*(1+0.0007*T)\n",
+ "ans, err = quad(integrand, T1, T2)\n",
+ "def integrand(x):\n",
+ " return 1\n",
+ "ans2, err2 = quad(integrand, 0, L)\n",
+ "q_by_A=ans/ans2#\n",
+ "print \"Heat transfer rate per square meter through the cylinder = %0.0f watt\" %q_by_A\n",
+ "\n",
+ "# Note : Answer in the book is incorrect"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Heat transfer rate per square meter through the cylinder = 6493 watt\n"
+ ]
+ }
+ ],
+ "prompt_number": 21
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example No : 1.9 - Page : 21"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "# given data\n",
+ "K_A=0.5 # in W/m degree C\n",
+ "K_B=0.8 # in W/m degree C\n",
+ "Ti_A=600 # inside temp. of slab A in degree C\n",
+ "To_B=100 # outside temp. of slab B in degree C\n",
+ "t_A=4*10**-2 # thickness of slab A\n",
+ "t_B=6*10**-2 # thickness of slab B\n",
+ "# Heat transfer rate per square meter through the slab A\n",
+ "# q/A = +K_A * ( Ti_A - T) / t_A (1)\n",
+ "# Heat transfer rate through slab B\n",
+ "# q/A = +K_B * ( T - To_B) / t_B (2)\n",
+ "# Equating Eqns (1) and (2)\n",
+ "# K_A*(Ti_A - T)/t_A = K_B*(T - To_B)/t_B\n",
+ "T=t_A*t_B/(K_A*t_B+K_B*t_A)*(K_A*Ti_A/t_A + K_B*To_B/t_B)\n",
+ "print \"T, intermediate temperature of slab A and B is :\",round(T,3),\"degree C\"\n",
+ "#Putting the value of T in Eq(1), we get\n",
+ "q_by_A= K_A*( Ti_A - T) / t_A#\n",
+ "print \"Steady state heat transfer rate per square meter is :\",round(q_by_A,3),\"W/m**2\"\n",
+ "#Note : Answer in the book is wrong"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "T, intermediate temperature of slab A and B is : 341.935 degree C\n",
+ "Steady state heat transfer rate per square meter is : 3225.806 W/m**2\n"
+ ]
+ }
+ ],
+ "prompt_number": 22
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example No : 1.10 - Page : 22"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "# given data\n",
+ "La=3*10**-2 # in meter\n",
+ "Aa=1 # in m**2\n",
+ "ka=150 # in W/m-K\n",
+ "\n",
+ "Lb=8*10**-2 # in meter\n",
+ "Ab=0.5 # in m**2\n",
+ "kb=30 # in W/m-K\n",
+ "\n",
+ "Lc=8*10**-2 # in meter\n",
+ "Ac=0.5 # in m**2\n",
+ "kc=65 # in W/m-K\n",
+ "\n",
+ "Ld=5*10**-2 # in meter\n",
+ "Ad=1 # in m**2\n",
+ "kd=50 # in W/m-K\n",
+ "\n",
+ "T1=400 # in degree C\n",
+ "T2=60 # in degree C\n",
+ "\n",
+ "Ra=La/(ka*Aa)#\n",
+ "Rb=Lb/(kb*Ab)#\n",
+ "Rc=Lc/(kc*Ac)#\n",
+ "Rd=Ld/(kd*Ad)#\n",
+ "#The equivalent resistance for Rb and Rc\n",
+ "Re=Rb*Rc/(Rb+Rc)#\n",
+ "#Total Resistance\n",
+ "sigmaR=Ra+Re+Rd#\n",
+ "# heat transfer rate per square meter\n",
+ "q=(T1-T2)/sigmaR#\n",
+ "print \"Heat transfer rate per square meter = %0.2e Watt\" %q"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Heat transfer rate per square meter = 1.18e+05 Watt\n"
+ ]
+ }
+ ],
+ "prompt_number": 23
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example No : 1.11 - Page : 23"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "# given data\n",
+ "k_Al=202 # in W/mK\n",
+ "x_Al=0.005 # in m\n",
+ "del_T=80 # in degree C\n",
+ "R_contact=0.88*10**-4 # in m**2K/W\n",
+ "sigmaR=x_Al/k_Al+R_contact+x_Al/k_Al # in m**2K/W\n",
+ "q=del_T/sigmaR # in W/m**2\n",
+ "#Temperature drop across the rough surface\n",
+ "del_T=q*R_contact #in degree C\n",
+ "print \"Temperature drop across the rough surface = %0.3f degree C\" %del_T"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Temperature drop across the rough surface = 51.198 degree C\n"
+ ]
+ }
+ ],
+ "prompt_number": 24
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example No : 1.12 - Page : 24"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "# given data\n",
+ "T1=100 # in degree C\n",
+ "T2=10 # in degree C\n",
+ "A=3*5 #in square meter\n",
+ "x=40*10**-2 # thickness in m**2\n",
+ "k=1.6 # in W/mk\n",
+ "h=10 # in W/m**2k\n",
+ "# Total resistance in heat flow path\n",
+ "sigmaR=x/(k*A)+1/(h*A)#\n",
+ "# so heat transfer rate\n",
+ "q=(T1-T2)/sigmaR # in Watt\n",
+ "q=q*10**-3 #in kW\n",
+ "print \"Heat transfer rate = %0.3f kW\" %q\n",
+ "\n",
+ "# Note: Answer in the book is wrong"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Heat transfer rate = 3.857 kW\n"
+ ]
+ }
+ ],
+ "prompt_number": 25
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example No : 1.13 - Page : 25"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "from scipy.integrate import quad\n",
+ "# given data\n",
+ "k='2.0+0.0005*T' # in W/m-k\n",
+ "A=3*5 #in square meter\n",
+ "T1=150 # in degree C\n",
+ "T2=50 # in degree C\n",
+ "L=20*10**-2 # thickness in m**2\n",
+ "# Formula q= -k*A*dt/dx\n",
+ "def integrand(T):\n",
+ " return 2.0+0.0005*T\n",
+ "ans, err = quad(integrand, T1, T2)\n",
+ "def integrand(x):\n",
+ " return 1\n",
+ "ans2, err2 = quad(integrand, 0, L)\n",
+ "\n",
+ "q=-A*ans/ans2 # in Watt\n",
+ "q=q*10**-3 #in kW\n",
+ "print \"Rate of heat transfer = %0.3f kW\" %q"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Rate of heat transfer = 15.375 kW\n"
+ ]
+ }
+ ],
+ "prompt_number": 26
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example No : 1.14 - Page : 26"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "# given data\n",
+ "T1=300 #in degree C\n",
+ "T2=50 #in degree C\n",
+ "x2=2*10**-2 # thickness of boiler wall in m\n",
+ "tc2=58 # thermal conductivity of wall in W/mk\n",
+ "x3=0.5*10**-2 # thickness of outer surface of the wall in m\n",
+ "tc3=116*10**-3 # thermal conductivity of outer surface of the wall in W/mk\n",
+ "R1=2.3*10**-3 # in k/W\n",
+ "R2=x2/tc2#\n",
+ "R3=x3/tc3#\n",
+ "sigmaR=R1+R2+R3 # Total Resistance\n",
+ "q=(T1-T2)/sigmaR#\n",
+ "print \"Heat transfer rate per unit area = %0.3f W/m**2\" %q\n",
+ "# Note: Answer in the book is wrong"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Heat transfer rate per unit area = 5464.687 W/m**2\n"
+ ]
+ }
+ ],
+ "prompt_number": 27
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example No : 1.15 - Page : 26"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "from numpy import pi\n",
+ "# given data\n",
+ "Tf=80 # in degree C\n",
+ "I=200 # in amp\n",
+ "h=4000 # in W/m**2degree C\n",
+ "rho=70*10**-6#\n",
+ "L=100 # in cm\n",
+ "R=0.1 # in ohm\n",
+ "d=3 # in mm\n",
+ "d=d*10**-3#\n",
+ "As= pi*d#\n",
+ "#Formula I**2*R= h*As*(Tw-Tf)\n",
+ "Tw= I**2*R/(h*As)+Tf#\n",
+ "print \"Central temperature of the wire = %0.f \u00b0C\" %Tw"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Central temperature of the wire = 186 \u00b0C\n"
+ ]
+ }
+ ],
+ "prompt_number": 28
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example No : 1.16 - Page : 27"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "from __future__ import division\n",
+ "# given data\n",
+ "E=500 #Absorb solar energy in W/m**2\n",
+ "epsilon= 0.9#\n",
+ "T_s= 280 # in K\n",
+ "T_infinite=300 # in K\n",
+ "h_c=20 # in W/m**2degree C\n",
+ "T_sky=280 # in K\n",
+ "sigma=5.67*10**-8#\n",
+ "# Formula E= h_c*(T_p-T_infinite)+epsilon*sigma*(T_P**4-T_s**4)\n",
+ "# On simplication T_P= 340.6-0.255*T-p**4\n",
+ "T_p= 315.5 # in K\n",
+ "print \"Equilibrium Temperature of the plate = %0.1f K\" %T_p"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Equilibrium Temperature of the plate = 315.5 K\n"
+ ]
+ }
+ ],
+ "prompt_number": 29
+ }
+ ],
+ "metadata": {}
+ }
+ ]
+} \ No newline at end of file
diff --git a/Heat_And_Mass_Transfer_by_Vijay_K._Dwivedi/chapter_10.ipynb b/Heat_And_Mass_Transfer_by_Vijay_K._Dwivedi/chapter_10.ipynb
new file mode 100644
index 00000000..119f2bce
--- /dev/null
+++ b/Heat_And_Mass_Transfer_by_Vijay_K._Dwivedi/chapter_10.ipynb
@@ -0,0 +1,426 @@
+{
+ "metadata": {
+ "name": ""
+ },
+ "nbformat": 3,
+ "nbformat_minor": 0,
+ "worksheets": [
+ {
+ "cells": [
+ {
+ "cell_type": "heading",
+ "level": 1,
+ "metadata": {},
+ "source": [
+ "Chapter 10 - Mass Transfer"
+ ]
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example No : 10.1 - Page : 291"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "from __future__ import division\n",
+ "# given data\n",
+ "P1=4 # in bar\n",
+ "P2=2 # in bar\n",
+ "T=25 # in degree C\n",
+ "Dhp=9*10**-8 # in m**2/s\n",
+ "S=3*10**-3 # in kg mole/m**3 bar\n",
+ "del_x=0.5*10**-3 # thickness in m\n",
+ "#(a) The molar concentration of a gas in terms of solubility\n",
+ "CH1=S*P1 # in kg mole/m**3\n",
+ "CH2=S*P2 # in kg mole/m**3\n",
+ "#(b) Molar diffusion flux of hydrogen through plastic memberence is given by Fick's law of diffision\n",
+ "#N_H= N_h/A = Dhp*(CH1-CH2)/del_x#\n",
+ "N_H= Dhp*(CH1-CH2)/del_x # in kg mole/s-m**2\n",
+ "print \"Molar diffusion flux of hydrogen through the membrane = %0.3e kg mole/s-m**2\" %N_H\n",
+ "#Mass_d_Flux= N_H*Molecular_Weight \n",
+ "Molecular_Weight=2#\n",
+ "Mass_d_Flux= N_H*Molecular_Weight \n",
+ "print \"Molar diffusion flux = %0.3e kg/s-m**2\" %Mass_d_Flux"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Molar diffusion flux of hydrogen through the membrane = 1.080e-06 kg mole/s-m**2\n",
+ "Molar diffusion flux = 2.160e-06 kg/s-m**2\n"
+ ]
+ }
+ ],
+ "prompt_number": 1
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example No : 10.2 - Page : 292"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "# given data\n",
+ "T=25 # in degree C\n",
+ "T=T+273 # in K\n",
+ "P=1#\n",
+ "V1=12 #Molecular volume of H2 in cm**3/gm mole\n",
+ "V2=30 #Molecular volume of Air in cm**3/gm mole\n",
+ "M1=2 # Molecular weight of H2\n",
+ "M2=29 # Molecular weight of Air\n",
+ "#The diffusion coefficient for gases in terms of molecular volumes may be express as\n",
+ "D_AB= .0043*T**(3/2)/(P*(V1**(1/3)+V2**(1/3)))*(1/M1+1/M2)**(1/2)#\n",
+ "print \"The diffusion coefficient for gases in terms of molecular volumes = %0.3f cm**2/sec\" %D_AB"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "The diffusion coefficient for gases in terms of molecular volumes = 2.997 cm**2/sec\n"
+ ]
+ }
+ ],
+ "prompt_number": 2
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example No : 10.3 - Page : 292"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "# given data\n",
+ "T=300 # temp of gas mixture in K\n",
+ "D_HN2=18*10**-6 # in m**2/s at 300 K, 1 bar\n",
+ "T1=300 # in K\n",
+ "D_HO2=16*10**-6 # in m**2/s at 273 K, 1 bar\n",
+ "T2=273 # in K\n",
+ "O_2=0.2#\n",
+ "N_2=0.7#\n",
+ "H_2=0.1#\n",
+ "#The diffusivity at the mixture temperature and pressure are calculated as \n",
+ "# D1/D2 = (T1/T2)**(3/2)*(P2/P1)\n",
+ "D_HO2= (T/T2)**(3/2)*1/4*D_HO2#\n",
+ "D_HN2= (T/T1)**(3/2)*1/4*D_HN2#\n",
+ "#The composition of oxygen and nitrogen on a H2 free basis is \n",
+ "x_O= O_2/(1-H_2)#\n",
+ "x_N= N_2/(1-H_2)#\n",
+ "# The effective diffusivity for the gas mixture at given temperature and pressure is\n",
+ "D= 1/(x_O/D_HO2+x_N/D_HN2) # in m**2/s\n",
+ "print \"Effective diffusivity = %0.3e m**2/s\" %D"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Effective diffusivity = 4.524e-06 m**2/s\n"
+ ]
+ }
+ ],
+ "prompt_number": 3
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example No : 10.4 - Page : 293"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "from numpy import pi\n",
+ "# given data\n",
+ "d=3 # in mm\n",
+ "d=d*10**-3 # in meter\n",
+ "T=25 # in \u00b0C\n",
+ "T=T+273 # in K\n",
+ "D= 0.4*10**-4 # in m**2/s\n",
+ "R= 8314#\n",
+ "P_A1=1 # in atm\n",
+ "P_A1=P_A1*10**5 # in w/m**2\n",
+ "P_A2=0#\n",
+ "C_A2=0#\n",
+ "x2= 15 # in meter\n",
+ "x1= 0#\n",
+ "A= pi/4*d**2#\n",
+ "M_A= D*A/(R*T)*(P_A1-P_A2)/(x2-x1) # in kg mole/sec\n",
+ "N_B= M_A#\n",
+ "M_B= M_A*29 # in kg/sec\n",
+ "print \"Value of N_B = %0.3e kg mole/sec\" %N_B\n",
+ "print \"Value of M_B = %0.3e kg/sec\" %M_B\n",
+ "# Note : The value of M_B in the book is wrong"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Value of N_B = 7.608e-13 kg mole/sec\n",
+ "Value of M_B = 2.206e-11 kg/sec\n"
+ ]
+ }
+ ],
+ "prompt_number": 12
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example No : 10.5 - Page : 294"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "from math import log\n",
+ "# given data\n",
+ "P=3 # in atm\n",
+ "P=P*10**5 # in N/m**2\n",
+ "r1=10 # in mm\n",
+ "r1=r1*10**-3 # in m\n",
+ "r2=20 # in mm\n",
+ "r2=r2*10**-3 # in m\n",
+ "R=4160 # in J/kg-K\n",
+ "T=303 # in K\n",
+ "D=3*10**-8 # in m**2/s\n",
+ "S=3*0.05# # Solubility of hydrogen at a pressure of 3 atm in m**3/m**3 of rubber tubing\n",
+ "del_x=r2-r1 # in m\n",
+ "L=1 # in m\n",
+ "Am=2*pi*L*del_x/log(r2/r1)#\n",
+ "#Formula P*V= m*R*T\n",
+ "V=S#\n",
+ "m=P*V/(R*T) # in kg/m**3 of rubber tubing at the inner surface of the pipe\n",
+ "C_A1=m#\n",
+ "C_A2=0#\n",
+ "#Diffusion flux through the cylinder is given\n",
+ "M=D*(C_A1-C_A2)*Am/del_x#\n",
+ "print \"Diffusion flux through the cylinder = %0.1e kg/sm\" %M"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Diffusion flux through the cylinder = 9.7e-09 kg/sm\n"
+ ]
+ }
+ ],
+ "prompt_number": 15
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example No : 10.6 - Page : 295"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "from numpy import pi\n",
+ "# given data\n",
+ "R=4160 # in J/kg-K\n",
+ "M=2#\n",
+ "D_AB=1.944*10**-8 # in m**2/s\n",
+ "R_H2=R/M#\n",
+ "S=2*0.0532# # Solubility of hydrogen at a pressure of 2 atm in cm**3/cm**3 of pipe\n",
+ "P=2 # in atm\n",
+ "P=P*1.03*10**5 # N/m**2\n",
+ "T=25 # in degree C\n",
+ "T=T+273 # in K\n",
+ "r1=2.5 # in mm\n",
+ "r1=r1*10**-3 # in m\n",
+ "r2=5 # in mm\n",
+ "r2=r2*10**-3 # in m\n",
+ "del_x=r2-r1 # in m\n",
+ "L=1 # in m\n",
+ "#Formula P*V= m*R*T\n",
+ "V=S#\n",
+ "m=P*V/(R*T) # in kg/m**3 of pipe\n",
+ "# So, Concentration of H2 at inner surface of the pipe\n",
+ "C_A1=0.0176 # in kg/m**3\n",
+ "# The resistance of diffusion of H2 away from the outer surface is negligible i.e.\n",
+ "C_A2=0#\n",
+ "Am=2*pi*L*del_x/log(r2/r1)#\n",
+ "# Loss of H2 by diffusion \n",
+ "M_A= D_AB*(C_A1-C_A2)*Am/del_x#\n",
+ "print \"Loss of H2 by diffusion = %0.3e kg/s\" %M_A\n",
+ "\n",
+ "\n",
+ "#Note: In the book , they put wrong value of C_A1 to calculate M_A, so the answer in the book is wrong"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Loss of H2 by diffusion = 3.101e-09 kg/s\n"
+ ]
+ }
+ ],
+ "prompt_number": 9
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example No : 10.7 - Page : 296"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "from numpy import pi\n",
+ "from math import log\n",
+ "# given data\n",
+ "Px1= 0.14 # in bar\n",
+ "Px2= 0#\n",
+ "P=1.013 # in bar\n",
+ "Py1=P-Px1# # in bar\n",
+ "Py2=P-Px2# # in bar\n",
+ "D=8.5*10**-6 # in m**2/s\n",
+ "d=5 # diameter in meter\n",
+ "L=1 # in mm\n",
+ "L=L*10**-3 #in meter\n",
+ "M=78 # molecular weight\n",
+ "Am_x= 1/4*pi*d**2*M#\n",
+ "R=8314#\n",
+ "del_x=3 # thickness in mm\n",
+ "del_x=del_x*10**-3 # in m\n",
+ "T=20 # in degree C\n",
+ "T=T+273 # in K\n",
+ "P=P*10**5 # in N/m**2\n",
+ "m_x= D*Am_x*P*log(Py2/Py1)/(R*T*del_x)#\n",
+ "# The mass of the benzene to be evaporated\n",
+ "mass= 1/4*pi*d**2*L#\n",
+ "density=880 # in kg/m**3\n",
+ "m_b= mass*density#\n",
+ "toh=m_b/m_x # in sec\n",
+ "print \"Time taken for the entire organic compound to evaporate = %0.3f seconds\" %toh\n",
+ "\n",
+ "\n",
+ "# Note: Answer in the book is wrong"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Time taken for the entire organic compound to evaporate = 643.788 seconds\n"
+ ]
+ }
+ ],
+ "prompt_number": 8
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example No : 10.8 - Page : 297"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "# given data\n",
+ "A=0.5 # in m**2\n",
+ "Pi=2.2 # in bar\n",
+ "Pi=Pi*10**5 # in N/m**2\n",
+ "Pf=2.18 # in bar\n",
+ "Pf=Pf*10**5 # in N/m**2\n",
+ "T=300 # in K\n",
+ "S=0.072 # in m**3\n",
+ "V=0.028 # in m**3\n",
+ "L=10 # in mm\n",
+ "L=L*10**-3 # in meter\n",
+ "R=287#\n",
+ "# Diffusivity of air in rubber D\n",
+ "# Initial mass of air in the tube\n",
+ "mi= Pi*V/(R*T) # in kg\n",
+ "#final mass of air in the tube\n",
+ "mf= Pf*V/(R*T) # in kg\n",
+ "# Mass of air escaped\n",
+ "ma = mi-mf #in kg\n",
+ "# Formula Na = ma/A = mass of air escaped / Time elapsed * area\n",
+ "A=6*24*3600*0.5#\n",
+ "Na = ma/A #in kg/sm**2\n",
+ "# Solubility of air should be calculated at mean temperature\n",
+ "S_meanTemperature=(2.2+2.18)/2 # in bar\n",
+ "#Solubility of air at the mean inside Pressure is \n",
+ "S=S*S_meanTemperature # in m**3/m**3 of rubber\n",
+ "V1=S#\n",
+ "V2=0.072#\n",
+ "T1=T#\n",
+ "T2=T#\n",
+ "P1=2.19*10**5 # in N/m**2\n",
+ "P2=1*10**5 # in N/m**2\n",
+ "# The corresponding mass concentration at the inner and outer surface of the tube, from gas equation are calculated as\n",
+ "Ca1= P1*V1/(R*T1) # in kg/m**3\n",
+ "Ca2= P2*V2/(R*T2) # in kg/m**3\n",
+ "# The diffusion flux rate of air through the rubber is given by\n",
+ "# Na = ma/A = D*(Ca1-Ca2)/del_x, here\n",
+ "del_x=L#\n",
+ "D=Na*del_x/(Ca1-Ca2)#\n",
+ "print \"Diffusivity of air in rubber = %0.3e m**2/s\" %D"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Diffusivity of air in rubber = 7.905e-11 m**2/s\n"
+ ]
+ }
+ ],
+ "prompt_number": 6
+ }
+ ],
+ "metadata": {}
+ }
+ ]
+} \ No newline at end of file
diff --git a/Heat_And_Mass_Transfer_by_Vijay_K._Dwivedi/chapter_2.ipynb b/Heat_And_Mass_Transfer_by_Vijay_K._Dwivedi/chapter_2.ipynb
new file mode 100644
index 00000000..b5e164ff
--- /dev/null
+++ b/Heat_And_Mass_Transfer_by_Vijay_K._Dwivedi/chapter_2.ipynb
@@ -0,0 +1,515 @@
+{
+ "metadata": {
+ "name": ""
+ },
+ "nbformat": 3,
+ "nbformat_minor": 0,
+ "worksheets": [
+ {
+ "cells": [
+ {
+ "cell_type": "heading",
+ "level": 1,
+ "metadata": {},
+ "source": [
+ "Chapter 02 - General Heat Conduction Equation"
+ ]
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example No : 2.5 - Page : 51"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "from __future__ import division\n",
+ "from math import log, pi\n",
+ "# given data\n",
+ "r1=5 # in cm\n",
+ "r2=5+4 # in cm\n",
+ "r3= 9+2.5 # in cm\n",
+ "k1=0.0701 # in W/mK\n",
+ "k2=0.1 # in W/mK\n",
+ "L=20 # in m\n",
+ "T1=234.36 # in degree C\n",
+ "T3=24 # in degree C\n",
+ "sigmaR= (log(r2/r1)/(2*pi*k1*L) + log(r3/r2)/(2*pi*k2*L))#\n",
+ "\n",
+ "# Part (i)\n",
+ "q=(T1-T3)/sigmaR # in watt\n",
+ "print \"Heat transfer rate = %0.3f watt\" %q\n",
+ "\n",
+ "# Part(ii)\n",
+ "# Formula q= (T1-T2)/(log(r2/r1)/(2*pi*k1*L))\n",
+ "T2 =T1- (q*(log(r2/r1)/(2*pi*k1*L)))#\n",
+ "print \"Interface temperature of insulation = %0.3f degree\" %T2"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Heat transfer rate = 2439.473 watt\n",
+ "Interface temperature of insulation = 71.585 degree\n"
+ ]
+ }
+ ],
+ "prompt_number": 16
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example No : 2.6 - Page : 52"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "from numpy import pi\n",
+ "# given data\n",
+ "k_brick=0.93 # in W/mK\n",
+ "k_insulation=0.12 # in W/mK\n",
+ "k_wood=0.175 # in W/mK\n",
+ "k_Al=204 # in W/mK\n",
+ "k1=k_brick#\n",
+ "k2=k_insulation#\n",
+ "k3=k_wood#\n",
+ "T1=200 # in degree C\n",
+ "T4=10 # in degree C\n",
+ "x1=10*10**-2 # in m\n",
+ "x2=25*10**-2 # in m\n",
+ "x3=1*10**-2 # in m\n",
+ "A=0.1 # in m**2\n",
+ "sigmaR= x1/(k1*A)+x2/(k2*A)+x3/(k3*A)#\n",
+ "q1=(T1-T4)/sigmaR#\n",
+ "print \"Heat transfer rate without rivet = %0.2f Watt\" %q1\n",
+ "\n",
+ "# Heat transfer rate with rivet\n",
+ "d=3*10**-2 # in meter\n",
+ "x=x1+x2+x3#\n",
+ "k_rivet=k_Al#\n",
+ "A_rivet=pi*d**2/4 # in m**2\n",
+ "R_rivet= x/(k_rivet*A_rivet)#\n",
+ "A_eff=A-A_rivet # in m**2\n",
+ "sigmaRw= 1/A_eff*(x1/k1+x2/k2+x3/k3) # in k/W\n",
+ "R_eq= R_rivet*sigmaRw/(R_rivet+sigmaRw) # in k/W\n",
+ "q2=(T1-T4)/R_eq # in watt\n",
+ "print \"Heat transfer rate with rivet = %0.3f Watt\" %q2\n",
+ "percentIncrease=(q2-q1)*100/q1 # percent increase in heat flow due to rivet\n",
+ "print \"Percentage increase in heat flow due to rivet = %0.f %%\" %math.ceil(percentIncrease)"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Heat transfer rate without rivet = 8.45 Watt\n",
+ "Heat transfer rate with rivet = 84.497 Watt\n",
+ "Percentage increase in heat flow due to rivet = 900 %\n"
+ ]
+ }
+ ],
+ "prompt_number": 18
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example No : 2.7 - Page : 54"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "from numpy import pi\n",
+ "# given data\n",
+ "k_cu=384 # in W/mK\n",
+ "k_s=1.75 # in W/mK\n",
+ "k1=k_cu#\n",
+ "k2=k_s#\n",
+ "hi=221 # in W/m**2K\n",
+ "ho=3605 # in W/m**2K\n",
+ "Ti=100 # in degree C\n",
+ "To=125 # in degree C\n",
+ "r1=0.2 # in m\n",
+ "r2=0.02+0.006 # in m\n",
+ "r3=0.026+0.003 # in m\n",
+ "ri=0.02 # in m\n",
+ "L=1 # in m\n",
+ "# Part(i)\n",
+ "Ao= 2*pi*r3*L#\n",
+ "Ai= 2*pi*r1*L#\n",
+ "# Formula Uo= 1/Ao*sigmaR\n",
+ "Uo= 1/(r3/(ri*hi) + r3/k1*log(r2/r1) + r3/k2*log(r3/r2) + 1/ho) # in w/m**2K\n",
+ "print \"Overall heat transfer coefficient based on outer area = %0.3f W/m**2K\" %Uo\n",
+ "\n",
+ "#Part(ii)\n",
+ "del_T= To-Ti#\n",
+ "q=Uo*Ao*del_T#\n",
+ "print \"Water to air heat transfer rate = %0.3f W/m\" %q\n",
+ "\n",
+ "#Part (iii)\n",
+ "# Formula q= T/(log(r3/r2)/(2*pi*k*L)) , where T=T2-T3 and k=k_s\n",
+ "k=k_s#\n",
+ "T= q*log(r3/r2)/(2*pi*k*L)#\n",
+ "print \"Temperature drop across the scale deposited = %.3f degree C\" %T\n",
+ "\n",
+ "# Note: In Part (i), they put wrong value of r2 and r1 in log(r2/r1) to calculate the value of Uo. So there is some difference in answer of coding and book"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Overall heat transfer coefficient based on outer area = 117.730 W/m**2K\n",
+ "Water to air heat transfer rate = 536.298 W/m\n",
+ "Temperature drop across the scale deposited = 5.326 degree C\n"
+ ]
+ }
+ ],
+ "prompt_number": 16
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example No : 2.8 - Page : 58"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "from math import sqrt\n",
+ "# given data\n",
+ "k=0.175 # in W/mK\n",
+ "h_infinite=9.3 # in W/m**2K\n",
+ "T_infinite=30 # in degree C\n",
+ "T_s=70 # in degree C\n",
+ "d=10*10**-3 # in m\n",
+ "r=d/2#\n",
+ "L=1 # in m\n",
+ "rc=k/h_infinite # in m\n",
+ "CriticalThickness = rc-r # in meter\n",
+ "CriticalThickness=CriticalThickness*10**3#\n",
+ "print \"Critical thickness = %0.1f mm\" %CriticalThickness\n",
+ "\n",
+ "q1=2*pi*r*L*h_infinite*(T_s-T_infinite) # in W/m\n",
+ "q2= (T_s-T_infinite)/(log(rc/r)/(2*pi*k*L)+1/(2*pi*rc*h_infinite)) # in W/m\n",
+ "PerIncHeatDiss= (q2-q1)*100/q1#\n",
+ "print \"Percentage increase in heat dissipation rate = %0.3f %%\" %PerIncHeatDiss\n",
+ "#Also q1=I1**2*R with bare cable\n",
+ "# q2=I2**2*R with insulated cable\n",
+ "I2_by_I1 = sqrt(q2/q1)#\n",
+ "# ( I2-I1 ) / I1 = (I2_by_I1 -1) / 1\n",
+ "# Percentage increase in current carrying capacity\n",
+ "PerIncCurrent = (I2_by_I1 -1) / 1 *100#\n",
+ "print \"Increase in current carrying capacity = %0.f %%\" %math.floor(PerIncCurrent)"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Critical thickness = 13.8 mm\n",
+ "Percentage increase in heat dissipation rate = 61.845 %\n",
+ "Increase in current carrying capacity = 27 %\n"
+ ]
+ }
+ ],
+ "prompt_number": 21
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example No : 2.9 - Page : 59"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "# given data\n",
+ "k_in=0.3 # in W/mK\n",
+ "k_gw=0.038 # in W/mK\n",
+ "ro=1.5 # in cm\n",
+ "ho=12 # in W/m**2 degree C\n",
+ "rc=k_in/ho # in m\n",
+ "rc=rc*10**2 # in cm\n",
+ "print \"Critical radius = %0.1f cm\" %rc\n",
+ "if ro<rc:\n",
+ " print \"Since radius of insulation (\",round(ro,3),\"cm) is less than critical radius of insulation (\",round(rc,3),\"cm)\"\n",
+ " print \"so heat transfer rate will increase by adding thsi insulation and hence it is not effective\"\n",
+ "ro=ro*10**-2 # in meter\n",
+ "# For effective insulation\n",
+ "# ro>=rc\n",
+ "# Kin/ho<= ro\n",
+ "roho=ro*ho # in W/mK\n",
+ "# Kin<= ro*ho\n",
+ "print \"Maximum value of thermal conductivity = %0.2f W/mK\" %roho"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Critical radius = 2.5 cm\n",
+ "Since radius of insulation ( 1.5 cm) is less than critical radius of insulation ( 2.5 cm)\n",
+ "so heat transfer rate will increase by adding thsi insulation and hence it is not effective\n",
+ "Maximum value of thermal conductivity = 0.18 W/mK\n"
+ ]
+ }
+ ],
+ "prompt_number": 4
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example No : 2.10 - Page : 60"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "from math import log\n",
+ "# given data\n",
+ "d=1.2*10**-3 # in m\n",
+ "r=d/2 # in m\n",
+ "rc=1.8*10**-3 # in m\n",
+ "T1=100 # in degree C\n",
+ "T_infinite=30 # in degree C\n",
+ "k=0.3 # in W/mK\n",
+ "h=10 # in W/m**2K\n",
+ "L=1 # in m\n",
+ "ke=5.1*10**7#\n",
+ "q=(T1-T_infinite)/(log(rc/r)/(2*pi*k)+1/(2*pi*rc*h)) # in W/m\n",
+ "# Volume of wire for one meter length\n",
+ "vol= pi*r**2*L # in m**3\n",
+ "print \"In steady state heat transfer process, the heat produced by the wire is dissipated to surrounding.\" \n",
+ "# Heat produced per unit volume of the wire\n",
+ "HeatProduced= q/vol # in w/m**2\n",
+ "# Formula HeatProduced= I**2*R = I**2/ke\n",
+ "I=sqrt(HeatProduced*ke) # in amp/m**2\n",
+ "# Area of wire\n",
+ "A= pi*r**2#\n",
+ "# so current carrying capacity of the given wire\n",
+ "Current= I*A#\n",
+ "print \"The current carried by the copper wire = %0.3f amphere\" %Current"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "In steady state heat transfer process, the heat produced by the wire is dissipated to surrounding.\n",
+ "The current carried by the copper wire = 20.698 amphere\n"
+ ]
+ }
+ ],
+ "prompt_number": 15
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example No : 2.11 - Page : 61"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "from math import log\n",
+ "# given data\n",
+ "d_i=.1 # inner dia in m\n",
+ "r_i=d_i/2 # in m\n",
+ "Ti=473 # in K\n",
+ "T_infinite=293 # in K\n",
+ "k=1 # in W/mK\n",
+ "h=8 # in W/m**2K\n",
+ "rc=k/h # in m\n",
+ "print \"Critical radius = %0.3f meter\" %rc\n",
+ "#when\n",
+ "ro=rc#\n",
+ "q_by_L= (Ti-T_infinite)/(log(rc/r_i)/(2*pi*k)+1/(2*pi*rc*h)) # in W/m\n",
+ "print \"Heat loss per meter length of pipe = %0.3f W/m\" %q_by_L\n",
+ "\n",
+ "# Note: To calculate the value of q_by_L the calculation is wrong in the book so answer in the book is wrong"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Critical radius = 0.125 meter\n",
+ "Heat loss per meter length of pipe = 590.189 W/m\n"
+ ]
+ }
+ ],
+ "prompt_number": 14
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example No : 2.12 - Page : 62"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "from numpy import pi\n",
+ "# given data\n",
+ "r1=100*10**-3 # in m\n",
+ "r2=200*10**-3 # in m\n",
+ "q1=1.16*10**5 # in W/m**2\n",
+ "t2=30 # in degree C\n",
+ "k=50 # in W/mK\n",
+ "L=1 # in m\n",
+ "# Total heat passing through the cylinder q\n",
+ "#q=q1*2*pi*r1*L (1)\n",
+ "# and heat conducted through the cylinder\n",
+ "# q= 2*pi*k*L(t1-t2)/log(r2/r1) (2)\n",
+ "# From (1) and (2)\n",
+ "t1= t2+ q1*2*pi*r1*L*log(r2/r1)/(2*pi*k*L) # in degree C\n",
+ "print \"Temperature of inner surface = %0.2f degree C\" %t1"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Temperature of inner surface = 190.81 degree C\n"
+ ]
+ }
+ ],
+ "prompt_number": 13
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example No : 2.13 - Page : 62"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "from math import log\n",
+ "# given data\n",
+ "d1=1*10**-3 # in m\n",
+ "d2=3*10**-3 # in m\n",
+ "r1=d1/2#\n",
+ "r2=d2/2#\n",
+ "kp=384 # in W/mK\n",
+ "kw=0.35 # in W/mK\n",
+ "rho=1.96*10**-8 # in Wm\n",
+ "t_s=95 # in degree C\n",
+ "t_infinite=40 # in degree C\n",
+ "h=8.75 # in W/m**2K\n",
+ "q_by_L= (t_s-t_infinite)/(log(r2/r1)/(2*pi*kp)+1/(2*pi*r2*h))#\n",
+ "# Also q_by_L = I**2*R/L = I**2*rho/(pi/4*d**2)\n",
+ "I= sqrt(q_by_L*(pi/4*d1**2)/rho) # in amp\n",
+ "print \"The maximum steady state current = %0.3f amphere\" %I"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "The maximum steady state current = 13.481 amphere\n"
+ ]
+ }
+ ],
+ "prompt_number": 12
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example No : 2.16 - Page : 66"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "from math import log, sqrt\n",
+ "from math import pi\n",
+ "from __future__ import division\n",
+ "# given data\n",
+ "d1=10*10**-3 # in mm\n",
+ "r1=d1/2#\n",
+ "K=0.2 # in W/mK\n",
+ "T_max=177 # in degree C\n",
+ "T_infinite=27 # in degree C\n",
+ "ho=10 # in W/m**2K\n",
+ "R=10# # in W/m\n",
+ "rc=K/ho # in m\n",
+ "x=rc-r1 # in m\n",
+ "q_by_L= (T_max-T_infinite)/(log(rc/r1)/(2*pi*K)+1/(2*pi*ho*rc))#\n",
+ "# Also q_by_L = I**2*R\n",
+ "I= sqrt(q_by_L/R) # in amp\n",
+ "print \"The maximum possible current = %0.3f amphere\" %I\n",
+ "\n",
+ "# Note: Answer in the book is wrong"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "The maximum possible current = 2.811 amphere\n"
+ ]
+ }
+ ],
+ "prompt_number": 11
+ }
+ ],
+ "metadata": {}
+ }
+ ]
+} \ No newline at end of file
diff --git a/Heat_And_Mass_Transfer_by_Vijay_K._Dwivedi/chapter_3.ipynb b/Heat_And_Mass_Transfer_by_Vijay_K._Dwivedi/chapter_3.ipynb
new file mode 100644
index 00000000..870158aa
--- /dev/null
+++ b/Heat_And_Mass_Transfer_by_Vijay_K._Dwivedi/chapter_3.ipynb
@@ -0,0 +1,632 @@
+{
+ "metadata": {
+ "name": ""
+ },
+ "nbformat": 3,
+ "nbformat_minor": 0,
+ "worksheets": [
+ {
+ "cells": [
+ {
+ "cell_type": "heading",
+ "level": 1,
+ "metadata": {},
+ "source": [
+ "Chapter 3 - Fins Heat Transfer From Extended Surface"
+ ]
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example No : 3.1 - Page : 84"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "from __future__ import division\n",
+ "from numpy import pi\n",
+ "from math import sqrt\n",
+ "# given data\n",
+ "d=20 # in mm\n",
+ "d=d*10**-3 #in m\n",
+ "h=5 # in W/m**2K\n",
+ "T_0=100 # in degree C\n",
+ "T_infinite=20 # in degree C\n",
+ "K=15 # in W/m-K\n",
+ "#(i)Temperature distribution equation\n",
+ "rho=pi*d # in m\n",
+ "A=pi*d**2/4 #in square meter\n",
+ "m=sqrt(h*rho/(K*A))#\n",
+ "print \"(i) Temperature distribution equation is = theta/theta_0 = (T-T_infinite)/(T_0-T_infinite) = e**- %0.2f*x\" %m\n",
+ "#(ii)Heat loss from the rod\n",
+ "t_0=100 # in degree C\n",
+ "t_infinite=20 # in degree C\n",
+ "q=sqrt(K*A*h*rho)*(t_0-t_infinite)#\n",
+ "print \"(ii) Heat loss from the road is :\",round(q,3),\"watt\""
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "(i) Temperature distribution equation is = theta/theta_0 = (T-T_infinite)/(T_0-T_infinite) = e**- 8.16*x\n",
+ "(ii) Heat loss from the road is : 3.078 watt\n"
+ ]
+ }
+ ],
+ "prompt_number": 1
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example No : 3.2 - Page : 85"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "from math import log, pi\n",
+ "from __future__ import division\n",
+ "# given data\n",
+ "d=3 # in cm\n",
+ "d=d*10**-2 #in m\n",
+ "h=20 # in W/m**2K\n",
+ "T1=140 # in degree C\n",
+ "T2=100 # in degree C\n",
+ "L=15*10**-2 # in meter\n",
+ "T_infinite=30 # in degree C\n",
+ "T_0=140 # in degree C\n",
+ "# Let at\n",
+ "x=0#T_0=T1#\n",
+ "x=15 #in cm\n",
+ "x=x*10**-2 # in m\n",
+ "T=100 # in degree C\n",
+ "rho=pi*d#\n",
+ "A=pi*d**2/4#\n",
+ "# Formula (T-T_infinite)/(T_0-T_infinite) = %e**-m*x\n",
+ "m=log((T_0-T_infinite)/(T-T_infinite))/x#\n",
+ "# Formula m=sqrt(h*rho/(k*A))\n",
+ "k=h*rho/(m**2*A)#\n",
+ "print \"Thermal conductivity of the rod material = %0.3f W/m-k\" %k"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Thermal conductivity of the rod material = 293.699 W/m-k\n"
+ ]
+ }
+ ],
+ "prompt_number": 2
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example No : 3.3 - Page : 86"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "from math import tanh\n",
+ "# given data\n",
+ "t=1 # in mm\n",
+ "t=t*10**-3 # in meter\n",
+ "L= 10 # in mm\n",
+ "L= L*10**-3 # in meter\n",
+ "k= 380 # W/mK\n",
+ "To= 230 # in \u00b0C\n",
+ "T_inf= 30 # in \u00b0C\n",
+ "h= 40 # in W/m**2K\n",
+ "B= 1 # in meter\n",
+ "Ac= B*t # in m**2\n",
+ "rho= 2*(B+t)#\n",
+ "m= sqrt(h*rho/(k*Ac))#\n",
+ "# Part(a)\n",
+ "nita= tanh(m*L)/(m*L)*100 # fin efficiency in %\n",
+ "print \"Fin efficiency = %0.3f %%\" %nita\n",
+ "\n",
+ "# Part(b)\n",
+ "N=1000/9+1 # number of fin\n",
+ "Af= N*rho*L # in square meter\n",
+ "A1= 1 # plate area in m**2\n",
+ "A2= N*1*1*10**-3 # Area where fins are attached in square meter\n",
+ "Au= A1-A2 # in square meter\n",
+ "q_T= N*sqrt(h*rho*k*Ac)*(To-T_inf)*tanh(m*L)+Au*h*(To-T_inf) # in W/m**2\n",
+ "print \"Total heat transfer per square meter of plane wall surface = %0.3f kW/m**2\" %(q_T*10**-3)\n",
+ "\n",
+ "# Part(c)\n",
+ "A=1*1 # in m**2\n",
+ "q= h*A*(To-T_inf) # in W/m**2\n",
+ "print \"Heat transfer if there were no fins attached = %0.0f kW/m**2\" %(q*10**-3)\n",
+ "\n",
+ "# Note : Answer of part(b) in the book is wrong"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Fin efficiency = 99.303 %\n",
+ "Total heat transfer per square meter of plane wall surface = 24.934 kW/m**2\n",
+ "Heat transfer if there were no fins attached = 8 kW/m**2\n"
+ ]
+ }
+ ],
+ "prompt_number": 4
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example No : 3.4 - Page : 87"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "from math import sqrt, tanh\n",
+ "# given data\n",
+ "w=5*10**-2 # in meter\n",
+ "L=1 # in meter\n",
+ "t=2.5*10**-2 # in meter\n",
+ "h=47 # in W/m**2K\n",
+ "k=16.3 # in W/mK (for 18.8 steel)\n",
+ "T_0=100 # in degree C\n",
+ "T_infinite=20 # in degree C\n",
+ "Ac=w*t # in square meter\n",
+ "rho=2*(w+t)#\n",
+ "m=sqrt(h*rho/(k*Ac))#\n",
+ "q_fin=k*Ac*m*(T_0-T_infinite)*((tanh(m*L)+h/(k*m) )/(1+h/(m*k)*tanh(m*L)))\n",
+ "print \"The heat lost by the fin of one meter length is :\",round(q_fin,3),\"W\""
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "The heat lost by the fin of one meter length is : 30.32 W\n"
+ ]
+ }
+ ],
+ "prompt_number": 7
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example No : 3.5 - Page : 88"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "from math import floor\n",
+ "# given data\n",
+ "w=1 # in meter\n",
+ "L=2.5*10**-2 # in meter\n",
+ "t=0.8*10**-3 # in meter\n",
+ "l=1 # in meter\n",
+ "T_0=150 # in degree C\n",
+ "T_infinite=40 # in degree C\n",
+ "h=20 # in W/m**2K\n",
+ "k=65 # in W/mK (for 18.8 steel)\n",
+ "Ac=w*t#\n",
+ "d=5*10**-2 # Cylinder dia in meter\n",
+ "rho=2*(w+t)#\n",
+ "rho=floor(rho)#\n",
+ "\n",
+ "m=sqrt(h*rho/(k*Ac))#\n",
+ "mL=m*L#\n",
+ "# heat transfer rate from 12 fins\n",
+ "q_fin=12*k*Ac*m*(T_0-T_infinite)*((tanh(m*L)+h/(k*m) )/(1+h/(m*k)*tanh(m*L)))#\n",
+ "print \"Heat transfer rate from 12 fins is :\",round(q_fin,3),\"watt\"\n",
+ "Au=pi*d*l-12*w*t#\n",
+ "qu=h*Au*(T_0-T_infinite)#\n",
+ "print \"Now heat transfer from unfinned surface area is :\",round(qu,3),\"watt\"\n",
+ "q=q_fin+qu#\n",
+ "print \"Total head transfer rate from the cylinder is :\",round(q,3),\"watt\""
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Heat transfer rate from 12 fins is : 1155.94 watt\n",
+ "Now heat transfer from unfinned surface area is : 324.455 watt\n",
+ "Total head transfer rate from the cylinder is : 1480.395 watt\n"
+ ]
+ }
+ ],
+ "prompt_number": 6
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example No : 3.6 - Page : 89"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "from math import sinh\n",
+ "# given data\n",
+ "T_0=100 # in degree C\n",
+ "T_infinite=30 # in degree C\n",
+ "T_L=100 # in degree C\n",
+ "d=6*10**-3 # copper rod dia in meter\n",
+ "L=50*10**-2 # developed length in meter\n",
+ "Ac=pi*d**2/4 # in square meter\n",
+ "rho=pi*d # in meter\n",
+ "h=30 # in W/m**2K\n",
+ "k=330 # in W/mK \n",
+ "m=sqrt(h*rho/(k*Ac))#\n",
+ "#(i) Temperature distribution equation for the fin\n",
+ "# (T-T_infinite)/(T_0-T_infinite)=([(T_L-T_infinite)/(T_0-T_infinite)]*sinh(m*x)+sinh(m*(L-x)))/sinh(m*L)\n",
+ "#Temperature at\n",
+ "x=0.25 # in m\n",
+ "T= (((T_L-T_infinite)/(T_0-T_infinite))*sinh(m*x)+sinh(m*(L-x)))/sinh(m*L)*(T_0-T_infinite)+T_infinite#\n",
+ "print \"(i) Temperature at the centre of the rod is :\",round(T,1),\"degree C\"\n",
+ "print \"(ii) Heat transfer rate from the fin- This is equivalent to two fins of length 25 cm long with insulated tip\"\n",
+ "L=25*10**-2 # in meter\n",
+ "q=2*sqrt(h*rho*k*Ac)*(T_0-T_infinite)*tanh(m*L)#\n",
+ "print \"Heat transfer by the rod is :\",round(q,2),\"watt\""
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "(i) Temperature at the centre of the rod is : 49.6 degree C\n",
+ "(ii) Heat transfer rate from the fin- This is equivalent to two fins of length 25 cm long with insulated tip\n",
+ "Heat transfer by the rod is : 9.76 watt\n"
+ ]
+ }
+ ],
+ "prompt_number": 9
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example No : 3.7 - Page : 91"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "from math import cosh\n",
+ "# given data\n",
+ "T_0=100 # in degree C\n",
+ "T_infinite=25 # in degree C\n",
+ "d=5*10**-2 # in meter\n",
+ "L=15*10**-2 # in meter\n",
+ "h=8 # in W/m**2K\n",
+ "k=20 # in W/mK \n",
+ "rho=pi*d # in meter\n",
+ "Ac=pi*d**2/4 # in square meter\n",
+ "m=sqrt(h*rho/(k*Ac))#\n",
+ "#(ii) Temperature at free end i.e. at \n",
+ "x=L\n",
+ "# Formula (T_L-T_infinite)/(T_0-T_infinite)= 1/(cosh(m*L)+h/(k*m)*sinh(m*L) )\n",
+ "T_L=(1/(cosh(m*L)+h/(k*m)*sinh(m*L) ))*(T_0-T_infinite)+T_infinite#\n",
+ "print \"(ii) Temperature at free end is :\",round(T_L,3),\"degree C\"\n",
+ "\n",
+ "#(iii) Heat flow out the source means heat transfer from the fin\n",
+ "q_f=sqrt(h*rho*k*Ac)*(T_0-T_infinite)*((h/(k*m)+tanh(m*L))/(1+h*tanh(m*L)/(k*m)))\n",
+ "print \"(iii) Heat flow out the source :\",round(q_f,3),\"watt\"\n",
+ "\n",
+ "# (iv) Heat flow rate at free end\n",
+ "q_L=h*Ac*(T_L-T_infinite)\n",
+ "print \"(iv) Heat flow rate at free end is :\",round(q_L,3),\"watt\""
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "(ii) Temperature at free end is : 76.739 degree C\n",
+ "(iii) Heat flow out the source : 12.089 watt\n",
+ "(iv) Heat flow rate at free end is : 0.813 watt\n"
+ ]
+ }
+ ],
+ "prompt_number": 11
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example No : 3.8 - Page : 92"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "from numpy import pi\n",
+ "import math\n",
+ "from math import sqrt, tanh\n",
+ "# given data\n",
+ "T_0=150 # in degree C\n",
+ "T_infinite=40 # in degree C\n",
+ "w=1 # in m\n",
+ "t=0.75*10**-3 # in m\n",
+ "d=5*10**-2 # in meter\n",
+ "L=25*10**-3 # in meter\n",
+ "k=75 # in W/mK \n",
+ "h=23.3 # in W/m**2K\n",
+ "N=12 # numbers of fins\n",
+ "Ac=w*t #in square meter\n",
+ "rho=2*(w+t) # in meter\n",
+ "delta=Ac/rho#\n",
+ "L_c=L+delta#\n",
+ "ML_c=L_c*sqrt(h*rho/(k*Ac))\n",
+ "q_fin= N*sqrt(h*rho*k*Ac)*(T_0-T_infinite)*tanh(ML_c)#\n",
+ "q_fin=math.floor(q_fin)#\n",
+ "A_0=pi*d*w-12*Ac\n",
+ "q_unfin= h*A_0*(T_0-T_infinite)#\n",
+ "q_total=q_fin+q_unfin#\n",
+ "print \"Rate of heat transfer is :\",round(q_total,1),\"watt\""
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Rate of heat transfer is : 1711.5 watt\n"
+ ]
+ }
+ ],
+ "prompt_number": 11
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example No : 3.9 - Page : 95"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "from math import sqrt\n",
+ "# given data\n",
+ "L=0.06 # in meter\n",
+ "A=4.64*10**-4 # in m**2\n",
+ "rho=0.12 # in m\n",
+ "h=442 # in W/m**2\n",
+ "T_0=773 # in K\n",
+ "T_infinite=1143 # in K\n",
+ "K=23.2 # in W/mK\n",
+ "m=sqrt(h*rho/(K*A))#\n",
+ "q=sqrt(h*rho*K*A)*(T_0-T_infinite)*tanh(m*L)#\n",
+ "print \"Heat transfer rate is :\",round(q,3),\"watt\"\n",
+ "\n",
+ "# Note: Answer in the book is wrong"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Heat transfer rate is : -279.457 watt\n"
+ ]
+ }
+ ],
+ "prompt_number": 12
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example No : 3.10 - Page : 95"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "from math import cosh\n",
+ "# given data\n",
+ "L=0.12 # in meter\n",
+ "t=.15*10**-2 # thickness in m\n",
+ "K=55.5 # in W/mK\n",
+ "h=23.5 # in W/mK\n",
+ "T_L=357 # in K\n",
+ "T_0=313 # in K\n",
+ "\n",
+ "# Formula m=sqrt(h*rho/(K*A)) and rho=pi*d and A=pi*d*t, putting value of rho and A\n",
+ "m=sqrt(h/(K*t))#\n",
+ "mL=m*L#\n",
+ "mL=math.floor(mL)#\n",
+ "# Formula (T_L-T_infinite)/(T_0-T_infinite)= 1/cosh(m*L)\n",
+ "T_infinite=(T_L-T_0/cosh(mL))/(1-1/cosh(mL))#\n",
+ "T_infinite=math.ceil(T_infinite)#\n",
+ "measurement_error=T_infinite-T_L#\n",
+ "print \"Measurement Error is :\",round(measurement_error,0),\"K\"\n",
+ "\n",
+ "# Note: In the book, Unit of answer is wrong"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Measurement Error is : 16.0 K\n"
+ ]
+ }
+ ],
+ "prompt_number": 15
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example No : 3.11 - Page : 96"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "from math import sqrt\n",
+ "# given data\n",
+ "k=20 # in W/mK\n",
+ "T_L=150 # in degree C\n",
+ "T_0=70 # in degree C\n",
+ "L=12*10**-2 # in meter\n",
+ "h=80 # in W/m**2K\n",
+ "t=3*10**-3 # in m\n",
+ "# Formula m=sqrt(h*rho/(K*A)) and rho=pi*d and A=pi*d*t, putting value of rho and A\n",
+ "m=sqrt(h/(k*t))#\n",
+ "# Formula (T_L-T_infinite)/(T_0-T_infinite)= 1/cosh(m*L)\n",
+ "T_infinite=(T_L-T_0/cosh(m*L))/(1-1/cosh(m*L))#\n",
+ "PercentageError=(T_infinite-T_L)*100/T_infinite#\n",
+ "print \"Percentage Error is :\",round(PercentageError,2),\"%\""
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Percentage Error is : 1.35 %\n"
+ ]
+ }
+ ],
+ "prompt_number": 16
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example No : 3.12 - Page : 97"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "from math import acosh\n",
+ "# given data\n",
+ "k=30 # in W/mK\n",
+ "h=100 # in W/m**2K\n",
+ "T_infinite=300 # in degree C\n",
+ "d=2*10**-2 # in m\n",
+ "t=1*10**-3 # in m\n",
+ "err=1 # in % of applied temperature difference\n",
+ "# Formula m=sqrt(h*rho/(K*A)) and rho=pi*d and A=pi*d*t, putting value of rho and A\n",
+ "m=sqrt(h/(k*t))#\n",
+ "\n",
+ "# From (T_L-T_infinite)/(T_0-T_infinite)= 1/100 = 1/cosh(m*L)\n",
+ "L=acosh(100)/m # in meter\n",
+ "L=L*10**3 # in mm\n",
+ "print \"Minimum length os pocket is :\",round(L,2),\"mm\""
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Minimum length os pocket is : 91.77 mm\n"
+ ]
+ }
+ ],
+ "prompt_number": 17
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example No : 3.13 - Page : 97"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "from numpy import pi\n",
+ "# given data\n",
+ "k=32 # in W/m**2 degree C\n",
+ "h=14.8 # in W/m**2 degree C\n",
+ "t_o=480 # in degree C\n",
+ "t_i=55 # in degree C\n",
+ "t_a=20 # in degree C\n",
+ "d=2.5*10**-2 # in m\n",
+ "rho=pi*d # in m\n",
+ "Ac=pi*d**2/4 # in m**2\n",
+ "m=sqrt(h*rho/(k*Ac))#\n",
+ "# From (t-t_a)/(t_o-t_a) = cosh(m(L-x))/cosh(m*L)\n",
+ "L=acosh((t_o-t_a)/(t_i-t_a))/m# # at x=L,t=t_i\n",
+ "print \"Length of shaft specified between the motor and the pump is :\",round(L,4),\"meter\""
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Length of shaft specified between the motor and the pump is : 0.3798 meter\n"
+ ]
+ }
+ ],
+ "prompt_number": 18
+ }
+ ],
+ "metadata": {}
+ }
+ ]
+} \ No newline at end of file
diff --git a/Heat_And_Mass_Transfer_by_Vijay_K._Dwivedi/chapter_4.ipynb b/Heat_And_Mass_Transfer_by_Vijay_K._Dwivedi/chapter_4.ipynb
new file mode 100644
index 00000000..9a0797ed
--- /dev/null
+++ b/Heat_And_Mass_Transfer_by_Vijay_K._Dwivedi/chapter_4.ipynb
@@ -0,0 +1,760 @@
+{
+ "metadata": {
+ "name": ""
+ },
+ "nbformat": 3,
+ "nbformat_minor": 0,
+ "worksheets": [
+ {
+ "cells": [
+ {
+ "cell_type": "heading",
+ "level": 1,
+ "metadata": {},
+ "source": [
+ "Chapter 4 - Transient (Unsteady State) Heat Conduction"
+ ]
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example No : 4.1 - Page : 102"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "from __future__ import division\n",
+ "# given data\n",
+ "L=1 # in m\n",
+ "rho=1600 # in kg/m**3\n",
+ "k=40 # in w/mK\n",
+ "Cp=4*10**3 # in J/kgK\n",
+ "a=900 # in degree C\n",
+ "b=-300 # in degree C/m\n",
+ "c=-50 # in degree C/m**2\n",
+ "Qg=1*10**3 # in kW/m**2\n",
+ "A=10 # area in m**2\n",
+ "#t=a+b*x+c*x**2 at any instant, so\n",
+ "# dtBYdx= b+2*c*x\n",
+ "# d2tBYdx2 = 2*c, then\n",
+ "\n",
+ "# Part(a)\n",
+ "#q1= -k*A*dtBYdx , at\n",
+ "x=0#\n",
+ "q1= -k*A*(b+2*c*x) # in w\n",
+ "#q2= -k*A*dtBYdx , at\n",
+ "x=L#\n",
+ "q2= -k*A*(b+2*c*x) # in w\n",
+ "E_stored= (q1-q2)+Qg*A*L # in watt\n",
+ "print \"The rate of change of energy storage = %0.1e watt\" %E_stored\n",
+ "\n",
+ "# Part(b)\n",
+ "alpha= k/(rho*Cp) # in m**2s\n",
+ "d2tBYdx2 = 2*c#\n",
+ "dtBYdtoh= alpha*(d2tBYdx2+Qg/k ) # in degree C/sec\n",
+ "print \"Rate of change of temperature = %0.3e degree C/sec\" %dtBYdtoh\n",
+ "print \"Since dt by dx is independent of x. Hence time rate of charge of temperature throughout wall will remain same.\""
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "The rate of change of energy storage = -3.0e+04 watt\n",
+ "Rate of change of temperature = -4.688e-04 degree C/sec\n",
+ "Since dt by dx is independent of x. Hence time rate of charge of temperature throughout wall will remain same.\n"
+ ]
+ }
+ ],
+ "prompt_number": 1
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example No : 4.2 - Page : 109"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "from math import exp\n",
+ "from numpy import log, pi\n",
+ "# given data\n",
+ "k=40 # in W/mK\n",
+ "rho=7800 # in kg/m**3\n",
+ "C=450 # in J/kgK\n",
+ "d=20*10**-3 # in m\n",
+ "r=d/2#\n",
+ "t_i=400 # in degree C\n",
+ "t=85 # in degree C\n",
+ "t_infinite=25 # in degree C\n",
+ "h=80 # in W/m**2K\n",
+ "#l_s=V/A = (4/3*pi*r**3)/(4*pi*r**2) = r/3\n",
+ "l_s=r/3 # in m\n",
+ "Bi= h*l_s/k#\n",
+ "# since Biot number is less than 0.1, hence lumped heat capacity system analysis can be applied\n",
+ "\n",
+ "# Part(a)\n",
+ "# Formula (t-t_infinite)/(t_i-t_infinite)= %e**(-h*A*toh/(rho*V*C)) = %e**(-h*toh/(rho*l_s*C))\n",
+ "toh= -log((t-t_infinite)/(t_i-t_infinite))*(rho*l_s*C)/h # in sec\n",
+ "print \"The time require to cool the sphere = %0.3f sec\" %toh\n",
+ "\n",
+ "# Part(b)\n",
+ "# dtBYdtoh = h*A*(t_i-t_infinite)/(rho*V*C) = h*(t_i-t_infinite)/(rho*l_s*C)\n",
+ "dtBYdtoh = h*(t_i-t_infinite)/(rho*l_s*C) # in degree C/sec\n",
+ "print \"Initial rate of cooling = %0.3f degree C/sec\" %dtBYdtoh\n",
+ "\n",
+ "# Part(c)\n",
+ "A=4*pi*r**2#\n",
+ "toh=60#\n",
+ "q_in= h*A*(t_i-t_infinite)*exp(-h*toh/(rho*l_s*C)) # in watt\n",
+ "print \"Instantaneous heat transfer rate = %0.3f watt\" %q_in\n",
+ "\n",
+ "# Part(d) Total energy transferred during first one minute\n",
+ "V=4/3*pi*r**3#\n",
+ "TotalEnergy = rho*C*V*(t_i-t_infinite)*(1-exp(-h*toh/(rho*C*l_s)))#\n",
+ "print \"Total energy transferred during first one minute = %0.3f watt\" %TotalEnergy\n",
+ "\n",
+ "# Note: Answer of first and last part in the book is wrong"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "The time require to cool the sphere = 268.015 sec\n",
+ "Initial rate of cooling = 2.564 degree C/sec\n",
+ "Instantaneous heat transfer rate = 25.013 watt\n",
+ "Total energy transferred during first one minute = 1855.401 watt\n"
+ ]
+ }
+ ],
+ "prompt_number": 5
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example No : 4.3 - Page : 111"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "from math import exp\n",
+ "# given data\n",
+ "k=40 # in W/mK\n",
+ "rho=8200 # in kg/m**3\n",
+ "C=400 # in J/kgK\n",
+ "D=6*10**-3 # in m\n",
+ "R=D/2#\n",
+ "t_i=30 # in degree C\n",
+ "t_infinite1=400 # for 10 sec in degree C\n",
+ "t_infinite2=20 # for 10 sec in degree C\n",
+ "h=50 # in W/m**2K\n",
+ "\n",
+ "# Part(a)\n",
+ "#l_s= V/A = R/3\n",
+ "l_s= R/3 # in m\n",
+ "#toh= rho*V*C/(h*A) = rho*C*l_s/h\n",
+ "toh= rho*C*l_s/h # in sec\n",
+ "print \"Time constance = %0.1f sec\" %toh\n",
+ "\n",
+ "# Part (b)\n",
+ "Bi= h*l_s/k#\n",
+ "# since Bi < 0.1 , hence lumped heat capacity analysis is valid. Now , temperature attained by junction in 10 seconds when exposed to hot air at 400 degree C\n",
+ "toh=10 # in sec\n",
+ "# (t-t_infinite1)/(t_i-t_infinite1)= %e**(-h*A*toh/(rho*V*C)) = %e**(-h*toh/(rho*l_s*C))\n",
+ "t= exp(-h*toh/(rho*l_s*C))*(t_i-t_infinite1)+t_infinite1 # in degree C\n",
+ "\n",
+ "print \"The junction is taken out from hot air stream and placed in stream of still air 20 degree C.\"\n",
+ "print \"The initial temperature in this case = \",round(t,3)\n",
+ "t_i=t#\n",
+ "toh=20 # in sec\n",
+ "t= exp(-h*toh/(rho*l_s*C))*(t_i-t_infinite2)+t_infinite2 # in degree C\n",
+ "print \"The temperature attained by junction = %0.3f degree C\" %t\n",
+ "\n",
+ "# Note: In the last, calculation to find the value of t is wrong so Answer in the book is wrong"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Time constance = 65.6 sec\n",
+ "The junction is taken out from hot air stream and placed in stream of still air 20 degree C.\n",
+ "The initial temperature in this case = 82.314\n",
+ "The temperature attained by junction = 65.939 degree C\n"
+ ]
+ }
+ ],
+ "prompt_number": 13
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example No : 4.4 - Page : 112"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "from math import log\n",
+ "# given data\n",
+ "k=8 # in W/mK\n",
+ "alpha=4*10**-6 # in m**2/s\n",
+ "h=50 # in W/m**2K\n",
+ "D=6*10**-3 # in m\n",
+ "R=D/2#\n",
+ "T=0.5 # where T = (t-t_infinite)/(t_i-t_infinite)\n",
+ "#l_s= V/A = R/3\n",
+ "l_s= R/2 # in m\n",
+ "Bi= h*l_s/k#\n",
+ "# since Bi < 0.1 , hence lumped heat capacity analysis can be applied\n",
+ "# toh= rho*V*C/(h*A) = rho*C*l_s/h = k*l_s/(h*alpha)\n",
+ "toh= k*l_s/(h*alpha) # in seconds\n",
+ "print \"Time constant = %0.f seconds\" %toh\n",
+ "# It is given that (t-t_infinite)/(t_i-t_infinite) = 0.5 = %e**(-h*A*c /(rho*V*C)) = %e**(-h*c/(rho*l_s*C)) = %e**(-h*alpha*c/(l_s))\n",
+ "# or (t-t_infinite)/(t_i-t_infinite) = %e**(-h*alpha*c/(l_s)#\n",
+ "c= -log(T)*l_s/(h*alpha) # in sec\n",
+ "print \"The time required to temperature change to reach half of its initial value = %0.1f seconds\" %c"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Time constant = 60 seconds\n",
+ "The time required to temperature change to reach half of its initial value = 5.2 seconds\n"
+ ]
+ }
+ ],
+ "prompt_number": 14
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example No : 4.5 - Page : 113"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "# given data\n",
+ "#t=450-500*x+100*x**2+150*x**3 at any instant, so\n",
+ "# dtBYdx= -500+200*x+450*x**2\n",
+ "L=0.5 # thickness of the wall in meter\n",
+ "k=10 # in W/mK\n",
+ "# Rate of heating entering in the wall per unit area, at\n",
+ "x=0#\n",
+ "#q1= -k*dtBYdx\n",
+ "q1= -k*(-500+200*x+450*x**2) # in W/m**2\n",
+ "# Rate of heat going out of the wall per unit area , at\n",
+ "x=L#\n",
+ "q2= -k*(-500+200*x+450*x**2) # in W/m**2\n",
+ "E=q1-q2 # in W/m**2\n",
+ "print \"Heat energy stored per unit area = %0.0f W/m**2\" %E"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Heat energy stored per unit area = 2125 W/m**2\n"
+ ]
+ }
+ ],
+ "prompt_number": 2
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example No : 4.6 - Page : 114"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "from __future__ import division\n",
+ "# given data\n",
+ "k=385 # in W/mK\n",
+ "h=100 # in W/m**2K\n",
+ "delta =2*10**-3 # thickness of plate in meter\n",
+ "A=25*25 # area of plate in square meter\n",
+ "rho=8800 # kg/m**3\n",
+ "C=400 # J/kg-K\n",
+ "# l_s= V/A= L*B*delta/(2*L*B) = delta/2\n",
+ "l_s= delta/2 # in meter\n",
+ "Bi= h*l_s/k#\n",
+ "# since Bi < 0.1 , hence lumped heat capacity analysis can be applied\n",
+ "\n",
+ "# Part(i)\n",
+ "# toh= rho*V*C/(h*A) = rho*C*l_s/h\n",
+ "toh= rho*C*l_s/h # in second\n",
+ "print \"Time constant = %0.1f seconds\" %toh\n",
+ "\n",
+ "# Part(ii)\n",
+ "t_i=400 # in degree C\n",
+ "t=40 # in degree C\n",
+ "t_infinite=25 # in degree C\n",
+ "# (t-t_infinite)/(t_i-t_infinite) = %e**(-h*A*toh /(rho*V*C)) = %e**(-h*toh/(rho*l_s*C)) \n",
+ "toh= -log((t-t_infinite)/(t_i-t_infinite))*rho*C*l_s/h # in sec\n",
+ "print \"The time required for the plate to reach the temperature of 40 degree C = %0.1f seconds\" %toh"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Time constant = 35.2 seconds\n",
+ "The time required for the plate to reach the temperature of 40 degree C = 113.3 seconds\n"
+ ]
+ }
+ ],
+ "prompt_number": 14
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example No : 4.7 - Page : 114"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "from math import log\n",
+ "# given data\n",
+ "k=380 # in W/mK\n",
+ "delta =6*10**-2 # thickness of plate in meter\n",
+ "rho=8800 # kg/m**3\n",
+ "C=400 # J/kg-K\n",
+ "# l_s= V/A = delta/2\n",
+ "l_s= delta/2 # in meter\n",
+ "t=80 # in degree C\n",
+ "t_i=200 # in degree C\n",
+ "t_inf=30 # in degree C\n",
+ "hw= 75 # in W/m**2K\n",
+ "ha= 10 # in W/m**2K\n",
+ "\n",
+ "# Part(i)\n",
+ "# ha*A*(t-t_inf_a)+ hw*A*(t-t_inf_w) = -rho*V*C*dtBYdtho, since t_ini_a = t_inf_w = t_inf = 30 degree C\n",
+ "# (ha+hw)*A*(t-t_inf)= -rho*V*C*dtBYdtho\n",
+ "# (ha+hw)/(rho*C*V)*A*dtoh = -dt/(t-t_inf)\n",
+ "# integrate('(ha+hw)/(rho*V*C)*A','toh',0,toh) = integrate('1/(t-t_inf)','t',t_i,t)\n",
+ "toh= -rho*l_s*C/(ha+hw)*log((t-t_inf)/(t_i-t_inf))#\n",
+ "print \"Time required to cool plate to 80 degree C is :\",round(toh,1),\"seconds =\",round(toh/60,2),\"minutes\"\n",
+ "\n",
+ "# Part (ii)\n",
+ "t= -rho*l_s*C/(2*ha)*log((t-t_inf)/(t_i-t_inf))#\n",
+ "print \"Time required to cool plate in only air is :\",round(t,1),\"seconds =\",round(t/60,2),\"minutes\""
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Time required to cool plate to 80 degree C is : 1520.4 seconds = 25.34 minutes\n",
+ "Time required to cool plate in only air is : 6461.5 seconds = 107.69 minutes\n"
+ ]
+ }
+ ],
+ "prompt_number": 15
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example No : 4.8 - Page : 116"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "from numpy import pi\n",
+ "# given data\n",
+ "k=45 # in W/m degree C\n",
+ "d =0.1 # in meter\n",
+ "l =0.30 # in meter\n",
+ "t=800 # in degree C\n",
+ "t_i=100 # in degree C\n",
+ "t_infinite=1200 # in degree C\n",
+ "h= 120 # in W/m**2 degree C\n",
+ "alpha=1.2*10**-5 # in meter\n",
+ "rhoC= k/alpha#\n",
+ "V=pi/4*d**2*l # in m**3\n",
+ "A= pi*d*l + 2*pi/4*d**2 # in m**2\n",
+ "# l_s= V/A = (pi/4*d**2*l)/(pi*d*l + 2*pi/4*d**2) = d*l/(4*l+2*d**2)\n",
+ "l_s = d*l/(4*l+2*d**2)#\n",
+ "Bi= h*l_s/k#\n",
+ "# since Bi < 0.1 , hence lumped heat capacity analysis can be applied\n",
+ "# (t-t_infinite)/(t_i-t_infinite) = %e**(-h*A*toh /(rho*V*C)) = %e**(-h*toh/(rho*l_s*C)) = %e**(-h*toh/(rhoC*l_s))\n",
+ "toh = -log((t-t_infinite)/(t_i-t_infinite))*rhoC*l_s/h # in sec\n",
+ "\n",
+ "# So, the velocity of ingot passing through the furnace\n",
+ "FurnaceLength = 8*100 # in cm\n",
+ "time = toh#\n",
+ "Velocity = FurnaceLength/time # in cm/sec\n",
+ "print \"Maximum speed = %0.4f cm/sec\" %Velocity"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Maximum speed = 1.0291 cm/sec\n"
+ ]
+ }
+ ],
+ "prompt_number": 16
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example No : 4.9 - Page : 117"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "from math import log\n",
+ "# given data\n",
+ "rho=8500 # in kg/m**3\n",
+ "C=400 # J/kgK\n",
+ "toh=1 # in sec\n",
+ "h= 400 # in W/m**2 degree C\n",
+ "t=198 # in degree C\n",
+ "t_i=25 # in degree C\n",
+ "t_infinite=200 # in degree C\n",
+ "\n",
+ "# Part (1)\n",
+ "# toh =rho*V*C/(h*A) = rho*C*l_s/h\n",
+ "l_s= toh*h/(rho*C)#\n",
+ "# l_s = V/A = r/3 \n",
+ "r=3*l_s # in m\n",
+ "r=r*10**3 # in mm\n",
+ "d=2*r # in m\n",
+ "print \"Junction diameter needed for the thermocouple = %0.3f mili miter\" %d\n",
+ "\n",
+ "# Part(ii)\n",
+ "# toh= -rho*V*C/(h*A)*log((t-t_infinite)/(t_i-t_infinite)) \n",
+ "toh = -toh*log((t-t_infinite)/(t_i-t_infinite))#\n",
+ "print \"Time required for the thermocouple junction to reach 198 degree C = %0.3f seconds\" %toh"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Junction diameter needed for the thermocouple = 0.706 mili miter\n",
+ "Time required for the thermocouple junction to reach 198 degree C = 4.472 seconds\n"
+ ]
+ }
+ ],
+ "prompt_number": 17
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example No : 4.10 - Page : 118"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "# given data\n",
+ "L=40*10**-2 # in m\n",
+ "k=1.5 # in W/mK\n",
+ "A=4 # in square meter\n",
+ "alpha=1.65*10**-3 # in m**2/h\n",
+ "#T = 50-40*x+10*x**2+20*x**3-15*x**4 , so\n",
+ "# dtBYdx= -40+20*x+60*x**2-60*x**3\n",
+ "# d2tBYdx2 = 20+120*x-180*x**2\n",
+ "\n",
+ "# Part (a) Heat entering the slab\n",
+ "#q1= -k*A*dtBYdx , at\n",
+ "x=0#\n",
+ "qi= -k*A*(-40+20*x+60*x**2-60*x**3) # in w\n",
+ "print \"Heat entering the slab = %0.0f watt\" %qi\n",
+ "# Heat leaving the slab\n",
+ "#ql= -k*A*dtBYdx , at\n",
+ "x=L#\n",
+ "ql= -k*A*(-40+20*x+60*x**2-60*x**3) # in w\n",
+ "print \"Heat leaving the slab = %0.2f watt\" %ql\n",
+ "\n",
+ "# Part (b) Rate of heat storage\n",
+ "RateOfHeatStorage = qi-ql # in watt\n",
+ "print \"Rate of heat storage = %0.2f watt\" %RateOfHeatStorage\n",
+ "\n",
+ "# Part (c) Rate of temperature change\n",
+ "# d2tBYdx2 = 1/alpha*dtBYdtoh\n",
+ "# dtBYdtoh= alpha*d2tBYdx2, at\n",
+ "x=0#\n",
+ "dtBYdtoh = alpha*(20+120*x-180*x**2) # in degree C/h\n",
+ "print \"The rate of temperature change at entering the slab = %0.3f degree C/h\" %dtBYdtoh\n",
+ "# dtBYdtoh= alpha*d2tBYdx2, at\n",
+ "x=L\n",
+ "dtBYdtoh = alpha*(20+120*x-180*x**2) # in degree C/h\n",
+ "print \"The rate of temperature change at leaving the slab = %0.3f degree C/h\" %dtBYdtoh\n",
+ "\n",
+ "# Part (d) for the rate of heating or cooling to be maximum\n",
+ "# dBYdx of dtBYdtoh = 0\n",
+ "# dBYdx of (alpha*d2tBYdx2) =0\n",
+ "# d3tBYdx3 = 0\n",
+ "x=120/360 # in meter\n",
+ "print \"The point where rate of heating or cooling is maximum = %0.3f meter\" %x"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Heat entering the slab = 240 watt\n",
+ "Heat leaving the slab = 157.44 watt\n",
+ "Rate of heat storage = 82.56 watt\n",
+ "The rate of temperature change at entering the slab = 0.033 degree C/h\n",
+ "The rate of temperature change at leaving the slab = 0.065 degree C/h\n",
+ "The point where rate of heating or cooling is maximum = 0.333 meter\n"
+ ]
+ }
+ ],
+ "prompt_number": 3
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example No : 4.11 - Page : 119"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "from math import log\n",
+ "# given data\n",
+ "k=40 # in W/m degree C\n",
+ "d =12*10**-3 # in meter\n",
+ "t=127 # in degree C\n",
+ "t_i=877 # in degree C\n",
+ "t_infinite=52 # in degree C\n",
+ "h= 20 # in W/m**2 degree C\n",
+ "rho=7800 # in W/m**2K\n",
+ "C=600 # in J/kg K\n",
+ "r=d/2 # in meter\n",
+ "#l_s = V/A = r/3\n",
+ "l_s = r/3#\n",
+ "Bi= h*l_s/k#\n",
+ "# since Bi < 0.1 , hence lumped heat capacity analysis can be applied\n",
+ "# (t-t_infinite)/(t_i-t_infinite) = %e**(-h*A*toh /(rho*V*C)) = %e**(-h*toh/(rho*l_s*C)) = %e**(-h*toh/(rho*C*l_s))\n",
+ "toh = -log((t-t_infinite)/(t_i-t_infinite))*rho*C*l_s/h # in sec\n",
+ "print \"Time required for cooling process =\",round(toh,3),\"seconds =\",round(toh/60,2),\"minutes\""
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Time required for cooling process = 1122.215 seconds = 18.7 minutes\n"
+ ]
+ }
+ ],
+ "prompt_number": 18
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example No : 4.12 - Page : 127"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "# given data\n",
+ "D=10*10**-2 # in m\n",
+ "b=D/2#\n",
+ "h= 100 # in W/m**2 degree C\n",
+ "T_o=418 # in degree C\n",
+ "T_i=30 # in degree C\n",
+ "T_infinite=1000 # in degree C\n",
+ "\n",
+ "print \" (A) For copper cylinder \"\n",
+ "k=350 # in W/mK\n",
+ "alpha=114*10**-7 # in m**2/s\n",
+ "Bi= h*b/k#\n",
+ "theta_0_t = (T_o-T_infinite)/(T_i-T_infinite)#\n",
+ "Fo=18.8#\n",
+ "# Formula Fo= alpha*t/b**2\n",
+ "t=Fo*b**2/alpha#\n",
+ "print \"Time required to reach for the cylinder centreline temperature 418 degree C =\",round(t,3),\"seconds =\",round(t/3600,3),\"hours\"\n",
+ "\n",
+ "# (2) Temperature at the radius of 4 cm\n",
+ "theta_0_t = 0.985#\n",
+ "# Formula theta_0_t = (T-T_infinite)/(T_o-T_infinite)\n",
+ "T= theta_0_t*(T_o-T_infinite)+T_infinite # in degree C\n",
+ "print \"Temperature at the radius of 4 cm = %0.2f degree C\" %T \n",
+ "print \"It has very less temperature gradients over 4 cm radius\"\n",
+ "\n",
+ "print \" (B) For asbestos cylinder \"\n",
+ "k=0.11 # in W/mK\n",
+ "alpha=0.28*10**-7 # in m**2/s\n",
+ "Bi= h*b/k#\n",
+ "theta_0_t = (T_o-T_infinite)/(T_i-T_infinite)#\n",
+ "Fo=0.21#\n",
+ "# Formula Fo= alpha*t/b**2\n",
+ "t=Fo*b**2/alpha#\n",
+ "print \"Time required to reach for the cylinder centreline temperature 418 degree C =\",round(t,3),\"seconds =\",round(t/3600,1),\"hours\"\n",
+ "\n",
+ "# (2) Temperature at the radius of 4 cm\n",
+ "theta_x_t = 0.286#\n",
+ "# Formula theta_x_t = (T-T_infinite)/(T_o-T_infinite)\n",
+ "T= theta_x_t*(T_o-T_infinite)+T_infinite # in degree C\n",
+ "print \"Temperature at the radius of 4 cm = %0.3f degree C\" %T \n",
+ "print \"It has large temperature gradients\""
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ " (A) For copper cylinder \n",
+ "Time required to reach for the cylinder centreline temperature 418 degree C = 4122.807 seconds = 1.145 hours\n",
+ "Temperature at the radius of 4 cm = 426.73 degree C\n",
+ "It has very less temperature gradients over 4 cm radius\n",
+ " (B) For asbestos cylinder \n",
+ "Time required to reach for the cylinder centreline temperature 418 degree C = 18750.0 seconds = 5.2 hours\n",
+ "Temperature at the radius of 4 cm = 833.548 degree C\n",
+ "It has large temperature gradients\n"
+ ]
+ }
+ ],
+ "prompt_number": 4
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example No : 4.13 - Page : 133"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "from numpy import pi\n",
+ "# given data\n",
+ "D=5*10**-2 # in m\n",
+ "b=D/2#\n",
+ "h= 500 # in W/m**2 degree C\n",
+ "k=60 # in W/m**2K\n",
+ "rho=7850 # in kg/m**3\n",
+ "C=460 # in J/kg\n",
+ "alpha=1.6*10**-5 # in m**2/s\n",
+ "T_i=225 # in degree C\n",
+ "T_infinite=25 # in degree C\n",
+ "t=2 # in minute\n",
+ "\n",
+ "# Part(i)\n",
+ "Bi= h*b/k#\n",
+ "Fo= alpha*t/b**2#\n",
+ "theta_0_t = 0.18#\n",
+ "# Formula theta_0_t = (T_o-T_infinite)/(T_i-T_infinite)\n",
+ "T_o= theta_0_t*(T_i-T_infinite)+T_infinite # in degree C\n",
+ "print \"Centreline Temperature of the sphere after 2 minutes of exposure = %0.f degree C \" %T_o\n",
+ "\n",
+ "# Part(2)\n",
+ "depth= 10*10**-3 # in meter\n",
+ "r=b-depth # in meter\n",
+ "rBYb=r/b#\n",
+ "theta_x_t = 0.95#\n",
+ "# Formula theta_x_t = (T-T_infinite)/(T_o-T_infinite)\n",
+ "T= theta_x_t*(T_o-T_infinite)+T_infinite # in degree C\n",
+ "print \"The Temperature at the depth of 1 cm from the surface after 2 minutes = %0.1f degree C\" %T\n",
+ "\n",
+ "# Part (3)\n",
+ "BiSquareFo= Bi**2*Fo#\n",
+ "QbyQo= 0.8 # in kJ\n",
+ "A=4/3*pi*b**3#\n",
+ "Qo= rho*A*C*(T_i-T_infinite) # in J\n",
+ "Qo=Qo*10**-3 # in kJ\n",
+ "# The heat transffered during 2 minute, \n",
+ "Q= Qo*QbyQo # in kJ\n",
+ "print \"The heat transffered during 2 minutes = %0.3f kJ\" %Q"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Centreline Temperature of the sphere after 2 minutes of exposure = 61 degree C \n",
+ "The Temperature at the depth of 1 cm from the surface after 2 minutes = 59.2 degree C\n",
+ "The heat transffered during 2 minutes = 37.814 kJ\n"
+ ]
+ }
+ ],
+ "prompt_number": 19
+ }
+ ],
+ "metadata": {}
+ }
+ ]
+} \ No newline at end of file
diff --git a/Heat_And_Mass_Transfer_by_Vijay_K._Dwivedi/chapter_5.ipynb b/Heat_And_Mass_Transfer_by_Vijay_K._Dwivedi/chapter_5.ipynb
new file mode 100644
index 00000000..d27ae294
--- /dev/null
+++ b/Heat_And_Mass_Transfer_by_Vijay_K._Dwivedi/chapter_5.ipynb
@@ -0,0 +1,802 @@
+{
+ "metadata": {
+ "name": ""
+ },
+ "nbformat": 3,
+ "nbformat_minor": 0,
+ "worksheets": [
+ {
+ "cells": [
+ {
+ "cell_type": "heading",
+ "level": 1,
+ "metadata": {},
+ "source": [
+ "Chapter 5 - Forced Convection Heat Transfer"
+ ]
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example No : 5.1 - Page : 152"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "from __future__ import division\n",
+ "from math import sqrt\n",
+ "# given data\n",
+ "rho=1.14 # in kg/m**3\n",
+ "k=2.73*10**-2 # in W/mK\n",
+ "Cp=1.005 # in kg/kgK\n",
+ "v= 16*10**-6 # in m**2/s\n",
+ "Pr=0.67#\n",
+ "# Other data given in the problem are\n",
+ "V=2 # in m/s\n",
+ "w=20*10**-2 # in m\n",
+ "t_infinite= 10 # in degree C\n",
+ "t_s=65 # in degree C\n",
+ "x=0.25 # in m from leading edge\n",
+ "# Re= rho*Vx/miu = V*x/v\n",
+ "Re= V*x/v#\n",
+ "#Since Re<5*10**5 , hence the flow is a laminar flow\n",
+ "#(a) Boundary layer thickness\n",
+ "delta= 5*x/(sqrt(Re)) # in m\n",
+ "delta=delta*10**2 # in cm\n",
+ "print \"Boundary layer thickness = %0.3f cm\" %delta\n",
+ "\n",
+ "#(b) Thermal boundary layer thickness\n",
+ "delta_t= delta/Pr**(1/3) # in cm\n",
+ "print \"Thermal boundary layer thickness = %0.3f cm\" %delta_t\n",
+ "\n",
+ "#(c) Local friction coefficient\n",
+ "Cfx= 0.664/sqrt(Re)#\n",
+ "print \"Local friction coefficient = %0.3f\" %Cfx\n",
+ "Cf=2*Cfx#\n",
+ "print \"Average friction coefficient %0.3f\" %Cf\n",
+ "\n",
+ "#(d) Total drag force\n",
+ "A=.25*.2 # in m**2\n",
+ "toh_o=Cf*(rho*V**2/2)#\n",
+ "F=toh_o*A#\n",
+ "print \"Total drag force = %0.3f N\" %F\n",
+ "\n",
+ "#(e) \n",
+ "# Formula Nux= hx*x/k = 0.332*Re**(1/2)*Pr**(1/3)\n",
+ "hx= 0.332*k/x*Re**(1/2)*Pr**(1/3) # in W/m**2K\n",
+ "print \"Local heat transfer coefficient = %0.3f W/m**2K\" %hx\n",
+ "h=2*hx#\n",
+ "print \"Average heat transfer coefficient = %0.3f W/m**2K\" %h\n",
+ "#(f)\n",
+ "q=h*A*(t_s-t_infinite)#\n",
+ "print \"Rate of heat transfer = %0.3f W/m**2K\" %q\n",
+ "\n",
+ "#Note: In the book, they calculated wrong value of Re so all the answer in the book is wrong"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Boundary layer thickness = 0.707 cm\n",
+ "Thermal boundary layer thickness = 0.808 cm\n",
+ "Local friction coefficient = 0.004\n",
+ "Average friction coefficient 0.008\n",
+ "Total drag force = 0.001 N\n",
+ "Local heat transfer coefficient = 5.608 W/m**2K\n",
+ "Average heat transfer coefficient = 11.216 W/m**2K\n",
+ "Rate of heat transfer = 30.844 W/m**2K\n"
+ ]
+ }
+ ],
+ "prompt_number": 3
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example No : 5.2 - Page : 153"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "from __future__ import division\n",
+ "# given data\n",
+ "rho=998 # in kg/m**3\n",
+ "k=.648 # in W/mK\n",
+ "v= 0.556*10**-6 # in m**2/s\n",
+ "Pr=3.54#\n",
+ "V=2 # in m/s\n",
+ "t_infinite= 10 # in degree C\n",
+ "t_s=90 # in degree C\n",
+ "Re=5*10**5#\n",
+ "A=1*1 # in m**2\n",
+ "# Re= rho*Vx/miu = V*x/v\n",
+ "x=Re*v/V # in m\n",
+ "print \"Length of the plate = %0.3f m\" %x\n",
+ "# Nu = h*x/k =Pr**(1/3)*(0.037*Re**0.8-872)\n",
+ "x=1#\n",
+ "Re= V*x/v#\n",
+ "h= Pr**(1/3)*(0.037*Re**0.8-873)*k/x # in W/m**2\n",
+ "q=h*A*(t_s-t_infinite)#\n",
+ "print \"Heat transfer from entire plate = %0.f kW\" %int(q*10**-3)"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Length of the plate = 0.139 m\n",
+ "Heat transfer from entire plate = 444 kW\n"
+ ]
+ }
+ ],
+ "prompt_number": 2
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example No : 5.3 - Page : 154"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "# given data\n",
+ "rho=1.06 # in kg/m**3\n",
+ "K=.0289#\n",
+ "v= 18.97*10**-6 # in m**2/s\n",
+ "Pr=0.696#\n",
+ "V=2.2 # in m/s\n",
+ "L=0.9 # in m\n",
+ "B=0.45 # in m\n",
+ "t_infinite= 30 # in degree C\n",
+ "t_s=90 # in degree C\n",
+ "#(a) For first half of the plate\n",
+ "x=L/2 # in m\n",
+ "Re=V*x/v#\n",
+ "# Nu = h*x/K = 0.664*Re**(1/2)*Pr**(1/3)\n",
+ "h= 0.664*Re**(1/2)*Pr**(1/3)*K/x # in W/m**2 degree C\n",
+ "A=x*B#\n",
+ "Q1=h*A*(t_s-t_infinite) # in watt\n",
+ "print \"Heat transfer rate from first half of the plate = %0.f watt\" %Q1\n",
+ "\n",
+ "#(b) Heat transfer from entire plate\n",
+ "x=L # in m\n",
+ "Re=V*x/v#\n",
+ "# Nu = h*x/K = 0.664*Re**(1/2)*Pr**(1/3)\n",
+ "h= 0.664*Re**(1/2)*Pr**(1/3)*K/x # in W/m**2 degree C\n",
+ "A=L*B#\n",
+ "Q2=h*A*(t_s-t_infinite) # in watt\n",
+ "print \"Heat transfer rate from entire plate = %0.3f watt\" %Q2\n",
+ "\n",
+ "#(c) From next half of the plate\n",
+ "Q3= Q2-Q1#\n",
+ "print \"Heat transfer rate from next half of the plate %0.3f\" %Q3"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Heat transfer rate from first half of the plate = 105 watt\n",
+ "Heat transfer rate from entire plate = 148.342 watt\n",
+ "Heat transfer rate from next half of the plate 43.448\n"
+ ]
+ }
+ ],
+ "prompt_number": 3
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example No : 5.4 - Page : 155"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "from math import log\n",
+ "from numpy import pi\n",
+ "# given data\n",
+ "rho=985 # in kg/m**3\n",
+ "k=.654 # in W/mK\n",
+ "Cp=4.18 # in kgJ/kgK\n",
+ "Cp=Cp*10**3 # in J/kgK\n",
+ "v= 0.517*10**-6 # in m**2/s\n",
+ "Pr=3.26#\n",
+ "V=1.2 # in m/s\n",
+ "t_s=85 # in degree C\n",
+ "t_i=40 # in degree C\n",
+ "t_o=70 # in degree C\n",
+ "Ax=15*35 # in mm\n",
+ "P=15+35#\n",
+ "de=4*Ax/(2*P) # in mm\n",
+ "de=de*10**-3 # in m\n",
+ "Re=V*de/v#\n",
+ "# Formula Nu= h*de/k = 0.023Re**0.8*Pr**0.4\n",
+ "h=0.023*Re**0.8*Pr**0.4*k/de # in W/m**2K\n",
+ "m=pi*de**2*V*rho/4#\n",
+ "d=de#\n",
+ "L=m*Cp*log((t_s-t_i)/(t_s-t_o))/(pi*d*h)#\n",
+ "print \"The length of tube = %0.3f meter\" %L"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "The length of tube = 4.407 meter\n"
+ ]
+ }
+ ],
+ "prompt_number": 12
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example No : 5.5 - Page : 156"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "# given data\n",
+ "k=.026 # in W/mK\n",
+ "v= 16.8*10**-6 # in m**2/s\n",
+ "miu=2*10**-5 # in kg/ms\n",
+ "Pr=0.708#\n",
+ "V=15 # in m/s\n",
+ "x=2 # in m\n",
+ "A=2*1 # in m**2\n",
+ "Re=V*x/v#\n",
+ "del_t=40-10 # in degree C\n",
+ "# since Re > 3 *10**5, hence turbulent flow at x=2 m length of laminar flow region is x_L then\n",
+ "Re_1=3*10**5#\n",
+ "# Re_1 = 3*10**5 = V*x_L/v\n",
+ "x_L= Re_1*v/V#\n",
+ "\n",
+ "# Part (a)\n",
+ "#Nu= h*x_L/k = 0.664*Re_1**(1/2)*Pr**(1/3)#\n",
+ "h= 0.664*Re_1**(1/2)*Pr**(1/3)*k/x_L # in W/m**2\n",
+ "print \"The average heat transfer coefficient over the laminar boundary layer = %0.3f W/m**2 \" %h\n",
+ "\n",
+ "# Part(b)\n",
+ "#Nu= h*x/k = (0.037*Re**0.8-872)*Pr**(1/3)#\n",
+ "h= (0.037*Re**0.8-872)*Pr**(1/3)*k/x # in W/m**2\n",
+ "print \"The average heat transfer coefficient over entire plate = %0.3f W/m**2\" %h\n",
+ "\n",
+ "# Part (c)\n",
+ "q=h*A*del_t#\n",
+ "print \"Total heat transfer rate = %0.3f watt\" %q\n",
+ "\n",
+ "# Note: Calculation of the part(a) in this book is wrong, so answer of the part(a) in the book is wrong"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "The average heat transfer coefficient over the laminar boundary layer = 25.083 W/m**2 \n",
+ "The average heat transfer coefficient over entire plate = 32.910 W/m**2\n",
+ "Total heat transfer rate = 1974.607 watt\n"
+ ]
+ }
+ ],
+ "prompt_number": 4
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example No : 5.6 - Page : 158"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "from numpy import pi\n",
+ "# given data\n",
+ "rho=997 # in kg/m**3\n",
+ "k=0.608 # in W/mK\n",
+ "Cp= 4180 # in J/kg K\n",
+ "miu=910*10**-6 # in Ns/m**2\n",
+ "d=30*10**-3 # in m\n",
+ "m=0.02 # in kg/s\n",
+ "t_o=30 # in degree C\n",
+ "t_i=20 # in degree C\n",
+ "Re= 4*m/(pi*d*miu)#\n",
+ "q_desh=12*10**3 # in W/m**2\n",
+ "# since Re < 2300, flow is laminar one\n",
+ "\n",
+ "# Part(a)\n",
+ "# Nu = h*d/k = 4.36\n",
+ "h=4.36*k/d#\n",
+ "print \"Heat transfer coefficient = %0.3f W/m**2K\" %h\n",
+ "\n",
+ "# Part (b)\n",
+ "L=m*Cp*(t_o-t_i)/(q_desh*pi*d)#\n",
+ "print \"Length of pipe = %0.3f meter\" %L\n",
+ "\n",
+ "# Part(c)\n",
+ "# q_desh= h*(t_infinite-t_o)\n",
+ "t_infinite = q_desh/h+t_o#\n",
+ "print \"The inner tube surface temperature at the outlet = %0.3f degree C\" %t_infinite\n",
+ "\n",
+ "# Part(d)\n",
+ "f=64/Re#\n",
+ "print \"Friction Factor = %0.3f \" %f\n",
+ "\n",
+ "# Part(e)\n",
+ "V=4*m/(pi*d**2*rho) # in m/s ( because m= rho*V*A , m= rho*V*pi*d**2/4 )\n",
+ "del_P= f*L*rho*V**2/(d*2) # in N/m**2\n",
+ "print \"The pressure drop in the pipe = %0.3f N/m**2\" %del_P\n",
+ "\n",
+ "# Note: In part(b) value of L is miss printed actual value is .739 m"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Heat transfer coefficient = 88.363 W/m**2K\n",
+ "Length of pipe = 0.739 meter\n",
+ "The inner tube surface temperature at the outlet = 165.804 degree C\n",
+ "Friction Factor = 0.069 \n",
+ "The pressure drop in the pipe = 0.679 N/m**2\n"
+ ]
+ }
+ ],
+ "prompt_number": 14
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example No : 5.7 - Page : 159"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "from numpy import pi\n",
+ "from math import log\n",
+ "# given data\n",
+ "rho=977.3 # in kg/m**3\n",
+ "kf=0.665 # in W/mK\n",
+ "Cp= 4186 # in J/kg K\n",
+ "miu=4.01*10**-4 # in kg/m-s\n",
+ "Pr=2.524#\n",
+ "d=0.02 # in m\n",
+ "m=0.5 # in kg/s\n",
+ "t_o=70 # in degree C\n",
+ "t_i=20 # in degree C\n",
+ "t_s=100 # in degree C\n",
+ "Re= 4*m/(pi*d*miu)#\n",
+ "\n",
+ "# Since Re > 2300, flow is turbulent flow. Then Nusselt Number\n",
+ "# Nu = h*d/k = 0.023*Re**0.8*Pr**0.4\n",
+ "h=0.023*Re**0.8*Pr**0.4*kf/d # in W/m**2\n",
+ "print \"Average heat transfer coefficient = %0.3f W/m**2\" %h\n",
+ "L=m*Cp*log((t_s-t_i)/(t_s-t_o))/(pi*d*h) # in meter\n",
+ "print \"Length of tube = %0.3f meter\" %L\n",
+ "# Note: Calculation of Re is wrong so the answer in the book is wrong"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Average heat transfer coefficient = 9207.036 W/m**2\n",
+ "Length of tube = 3.549 meter\n"
+ ]
+ }
+ ],
+ "prompt_number": 16
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example No : 5.8 - Page : 160"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "from numpy import pi\n",
+ "# given data\n",
+ "rho=977 # in kg/m**3\n",
+ "k=0.608 # in W/mK\n",
+ "Cp= 4180 # in J/kg K\n",
+ "miu=910*10**-6 # in poise\n",
+ "d=0.02 # in m\n",
+ "m=0.02 # in kg/s\n",
+ "t_o=40 # in degree C\n",
+ "t_i=10 # in degree C\n",
+ "q_desh= 20*10**3 # in W/m**2\n",
+ "\n",
+ "# Part (a)\n",
+ "Re= 4*m/(pi*d*miu)#\n",
+ "print \"Reynold number = %0.3f\" %Re\n",
+ "\n",
+ "# Part(b)\n",
+ "# Nu = h*d/k = 4.364\n",
+ "h=4.364*k/d#\n",
+ "print \"Heat transfer coefficient = %0.2f W/m**2K\" %h\n",
+ "\n",
+ "# Part (c)\n",
+ "# q= q_desh*A = m*Cp*(t_o-t_i)\n",
+ "# q_desh *( pi*d*l) = m*Cp*(t_o-t_i)\n",
+ "l=m*Cp*(t_o-t_i)/(q_desh*pi*d)#\n",
+ "print \"Length of pipe = %0.3f meter\" %l"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Reynold number = 1399.164\n",
+ "Heat transfer coefficient = 132.67 W/m**2K\n",
+ "Length of pipe = 1.996 meter\n"
+ ]
+ }
+ ],
+ "prompt_number": 17
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example No : 5.9 - Page : 161"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "from numpy import pi\n",
+ "# given data\n",
+ "rho=7.7*10**3 # in kg/m**3\n",
+ "k=12 # in W/mK\n",
+ "Cp= 130 # in J/kg degree C\n",
+ "Pr=0.011#\n",
+ "delta=8*10**-8 # in m**2/s\n",
+ "d=0.06 # in m\n",
+ "m=4 # in kg/s\n",
+ "t_i=200 # in degree C\n",
+ "del_t=25 # in degree C\n",
+ "miu=rho*delta#\n",
+ "Re= 4*m/(pi*d*miu)#\n",
+ "# From correlation Nu =h*d/k = 4.82+0.0185*Pe**0.827\n",
+ "Pe=Re*Pr#\n",
+ "h=(4.82+0.0185*Pe**0.827)*k/d # in W/m**2K\n",
+ "# Length of tube required by doing every balance\n",
+ "# m*Cp*del_t = h*A*(t_s-t_b) = h*(pi*d*l)*(t_s-t_b) # its given (t_s-t_b) = 40 degree C\n",
+ "l= m*Cp*del_t/(h*(pi*d)*40) # in meter\n",
+ "print \"Length of tube = %0.3f meter\" %l"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Length of tube = 0.678 meter\n"
+ ]
+ }
+ ],
+ "prompt_number": 18
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example No : 5.10 - Page : 162"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "from numpy import pi\n",
+ "# given data\n",
+ "d=0.058 # in m\n",
+ "t_infinite=30 # in degree C\n",
+ "t_s=155 # in degree C\n",
+ "V=52 # in m/s\n",
+ "T_f=(t_s+t_infinite)/2 # in degree C\n",
+ "T_f=T_f+273 # in K\n",
+ "# Fluid properties at 92.5 degree C and 1 atm\n",
+ "miu= 2.145*10**-5 # in kg/ms\n",
+ "Pr=0.696#\n",
+ "P=1.0132*10**5#\n",
+ "R=287#\n",
+ "k=0.0312 # in W/mK\n",
+ "rho=P/(R*T_f) # in kg/m**3\n",
+ "Re=rho*V*d/miu#\n",
+ "C=0.0266#\n",
+ "n=0.805#\n",
+ "# Nu = h*d/k = C*(Re)**n*Pr**(1/3)\n",
+ "h=C*(Re)**n*Pr**(1/3)*k/d # in W/m**2K\n",
+ "#So, heat transfer rate per unit length from cylinder\n",
+ "q_by_L= h*(pi*d)*(t_s-t_infinite) # in W/m\n",
+ "print \"Heat transfer rate per unit length from cylinder = %0.3f W/m\" %q_by_L\n",
+ "# Note: Calculation of q_by_L in the book is wrong , so the answer in the book is wrong"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Heat transfer rate per unit length from cylinder = 3914.183 W/m\n"
+ ]
+ }
+ ],
+ "prompt_number": 19
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example No : 5.11 - Page : 163"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "from numpy import pi\n",
+ "# given data\n",
+ "delta=15.68*10**-6 # in m**2/s\n",
+ "t_infinite=25+273 # in K\n",
+ "t_s=80+273 # in K\n",
+ "t_infinite=25+273 # in K\n",
+ "k=0.02625 # in W/m degree C\n",
+ "Pr=0.708#\n",
+ "miu_infinite=1.846*10**-5 #in kg/ms\n",
+ "miu_s= 2.076*10**-5 # in kg/ms\n",
+ "d=10*10**-3 # in m\n",
+ "V=5 # in m/s\n",
+ "A=4*pi*(d/2)**2#\n",
+ "Re=V*d/delta#\n",
+ "Nu= 2+ (0.4*Re**(1/2)+0.06*Re**(2/3))*Pr**0.4*(miu_infinite/miu_s)**(1/4)#\n",
+ "# Nu = h*d/k\n",
+ "h=Nu*k/d # in W/m**2K\n",
+ "# heat transfer rate\n",
+ "q=h*A*(t_s-t_infinite) # in watt\n",
+ "print \"Heat transfer rate = %0.3f watt\" %q"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Heat transfer rate = 1.456 watt\n"
+ ]
+ }
+ ],
+ "prompt_number": 20
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example No : 5.12 - Page : 164"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "# given data\n",
+ "Cp=4179 # in J/kg-K\n",
+ "rho= 997 # in kg/m**3\n",
+ "V=2 # in m/s\n",
+ "miu= 855*10**-6 # in Ns/m**2\n",
+ "Pr=5.83#\n",
+ "k=0.613#\n",
+ "Do=6 #outer dia in cm\n",
+ "Di=4 #inner dia in cm\n",
+ "# de= 4*A/P = 4*pi/4*(Do**2-Di**2)/(pi*(Do+Di))\n",
+ "# or\n",
+ "de= Do-Di # in cm\n",
+ "de=de*10**-2 # in m\n",
+ "Re= rho*V*de/miu#\n",
+ "# Since Re > 2300, hence flow is turbulent. Hence using Dittus Boelter equation\n",
+ "# Nu= 0.023*Re**0.8*Pr**0.4 =h*de/k\n",
+ "h= 0.023*Re**0.8*Pr**0.4*k/de # in W/m**2K\n",
+ "print \"Heat transfer coefficient = %0.f W/m**2K\" %math.floor(h)"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Heat transfer coefficient = 7752 W/m**2K\n"
+ ]
+ }
+ ],
+ "prompt_number": 21
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example No : 5.13 - Page : 165"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "from numpy import pi\n",
+ "# given data\n",
+ "Cp=0.138 # in KJ/kg-K\n",
+ "m=8.33 # in kg/sec\n",
+ "Pr=0.0238#\n",
+ "k=8.7 # in W/mk\n",
+ "d=1.5*10**-2 # in m\n",
+ "miu=1.5*10**-3 # in kg/ms\n",
+ "Re=4*m/(pi*miu*d)#\n",
+ "Pe=Re*Pr#\n",
+ "# Nu = h*d/k = 7+0.025*Pe**0.8\n",
+ "h= (7+0.025*Pe**0.8)*k/d # in W/m**2 degree C\n",
+ "print \"Heat transfer coefficient = %0.3f W/m**2 degree C\" %h"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Heat transfer coefficient = 29255.771 W/m**2 degree C\n"
+ ]
+ }
+ ],
+ "prompt_number": 22
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example No : 5.14 - Page : 166"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "# given data\n",
+ "rho=887 # in kg/m**3\n",
+ "Pr=0.026#\n",
+ "k=25.6 # in W/mk\n",
+ "d=2.5*10**-2 # in m\n",
+ "miu=0.58*10**-3 # in kg/ms\n",
+ "V=3 # in m/s\n",
+ "Re=rho*V*d/(miu)#\n",
+ "Pe=Re*Pr#\n",
+ "Nu = 4.8+0.015*Pe**0.85*Pr**0.08\n",
+ "h= Nu*k/d # in W/m**2 degree C\n",
+ "print \"Heat transfer coefficient = %0.3f W/m**2 degree C\" %h\n",
+ "#Note: There is some difference in coding and book answer because they did not take aqurate calculation"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Heat transfer coefficient = 15217.633 W/m**2 degree C\n"
+ ]
+ }
+ ],
+ "prompt_number": 23
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example No : 5.15 - Page : 166"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "from numpy import pi\n",
+ "# given data\n",
+ "delta=38.1*10**-6 # in m**2/s\n",
+ "Pr=501#\n",
+ "Prs=98#\n",
+ "K=0.138 # in W/mk\n",
+ "T_infinite=353 # in K\n",
+ "T_s=423 # in K\n",
+ "V=2 # in m/s\n",
+ "d=12.5*2*10**-3 # in m\n",
+ "Re=V*d/delta#\n",
+ "n=0.36# for Pr >= 10\n",
+ "C=0.26 # for Re between 10**3 and 2*10**5\n",
+ "m=0.6 # for Re between 10**3 and 2*10**5\n",
+ "Nu= C*Re**m*Pr**n*(Pr/Prs)**(1/4)#\n",
+ "h= Nu*K/d # in W/m**2 degree C\n",
+ "A=pi*25*10**-3#\n",
+ "del_t=T_s-T_infinite#\n",
+ "# Formula q=h*A*del_t\n",
+ "q_by_L = h*A*del_t#\n",
+ "print \"Initial rate of heat loss per meter length of cylinder = %0.3f\" %q_by_L\n",
+ "# Note: calculation in the book is wrong so answer in the book is wrong"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Initial rate of heat loss per meter length of cylinder = 8260.795\n"
+ ]
+ }
+ ],
+ "prompt_number": 24
+ }
+ ],
+ "metadata": {}
+ }
+ ]
+} \ No newline at end of file
diff --git a/Heat_And_Mass_Transfer_by_Vijay_K._Dwivedi/chapter_6.ipynb b/Heat_And_Mass_Transfer_by_Vijay_K._Dwivedi/chapter_6.ipynb
new file mode 100644
index 00000000..e5eca739
--- /dev/null
+++ b/Heat_And_Mass_Transfer_by_Vijay_K._Dwivedi/chapter_6.ipynb
@@ -0,0 +1,543 @@
+{
+ "metadata": {
+ "name": ""
+ },
+ "nbformat": 3,
+ "nbformat_minor": 0,
+ "worksheets": [
+ {
+ "cells": [
+ {
+ "cell_type": "heading",
+ "level": 1,
+ "metadata": {},
+ "source": [
+ "Chapter 6 - Free Convection"
+ ]
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example No : 6.1 - Page : 177"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "from __future__ import division\n",
+ "# given data\n",
+ "# (i) when\n",
+ "x=.3 # in m\n",
+ "T_s=100 # in degree C\n",
+ "T_infinite=30 # in degree C\n",
+ "T_f=(T_s+T_infinite)/2 # in degree C\n",
+ "T_f=T_f+273 # in K\n",
+ "Bita=1/T_f#\n",
+ "# Other fluid properties at film temperature\n",
+ "Pr=0.703#\n",
+ "K=0.0301 # in W/mK\n",
+ "T=1.8*10**-5 # in m**2/s\n",
+ "g=9.81#\n",
+ "del_T=T_s-T_infinite#\n",
+ "Gr=(g*Bita*del_T*x**3)/T**2#\n",
+ "Ra=Gr*Pr#\n",
+ "print \"Rayleigh Number is = %0.2e\" %Ra\n",
+ "#Since Ra<10**9, hence flow is laminar, then correlation for vertical plate in laminar flow\n",
+ "# Formula Nu=0.59*Ra**(1/4)=h*x/K\n",
+ "h=0.59*Ra**(1/4)*K/x # in W/m**2K\n",
+ "A=2*.3*.5#\n",
+ "q1=h*A*(T_s-T_infinite)#\n",
+ "print \"Heat transfer rate from the plate, when the vertical height is 0.3 m :\",round(q1,3),\"W\"\n",
+ "\n",
+ "#(ii) when\n",
+ "x=0.5 # in m\n",
+ "Gr=(g*Bita*del_T*x**3)/T**2#\n",
+ "Ra=Gr*Pr#\n",
+ "# Formula Nu=0.59*Ra**(1/4)=h*x/K\n",
+ "h=0.59*Ra**(1/4)*K/x # in W/m**2K\n",
+ "q2=h*A*(T_s-T_infinite)#\n",
+ "print \"Heat transfer rate from the plate, when the vertical height is 0.5 m :\",round(q2,3),\"W\"\n",
+ "PercentageDecrease=(q1-q2)/q1*100#\n",
+ "print \"Percentage decreases in heat transfer rate when x=0.5 m as compared to when x=0.3 m is :\",round(PercentageDecrease,3),\"%\"\n",
+ "\n",
+ "#Note : In the book ,In part (b), calculation of getting the value of h is wrong "
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Rayleigh Number is = 1.19e+08\n",
+ "Heat transfer rate from the plate, when the vertical height is 0.3 m : 129.844 W\n",
+ "Heat transfer rate from the plate, when the vertical height is 0.5 m : 114.277 W\n",
+ "Percentage decreases in heat transfer rate when x=0.5 m as compared to when x=0.3 m is : 11.989 %\n"
+ ]
+ }
+ ],
+ "prompt_number": 10
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example No : 6.2 - Page : 178"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "# given data\n",
+ "Pr=0.694#\n",
+ "K=0.0296 # in W/mK\n",
+ "rho=1.029 # in kg/m**3\n",
+ "miu=20.6*10**-6 # in poise\n",
+ "x=.2 # in m\n",
+ "T_s=110 # in degree C\n",
+ "T_infinite=30 # in degree C\n",
+ "T_f=(T_s+T_infinite)/2 # in degree C\n",
+ "T_f=T_f+273 # in K\n",
+ "Bita=1/T_f#\n",
+ "g=9.81#\n",
+ "del_T=T_s-T_infinite#\n",
+ "Gr=(rho**2*g*Bita*del_T*x**3)/miu**2#\n",
+ "Ra=Gr*Pr#\n",
+ "#since Rayleigh number is less than 10**10, hence\n",
+ "Nu=0.68*Pr**(1/2)*Gr**(1/4)/((.952+Pr)**(1/4))#\n",
+ "h=Nu*K/x#\n",
+ "A=2*0.2*1#\n",
+ "q=h*A*(T_s-T_infinite)#\n",
+ "print \"Heat transfer rate is :\",round(q,1),\"W\""
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Heat transfer rate is : 194.7 W\n"
+ ]
+ }
+ ],
+ "prompt_number": 11
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example No : 6.3 - Page : 179"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "from numpy import pi\n",
+ "# given data\n",
+ "d=7.5*10**-2 # in m\n",
+ "x=2 # in m\n",
+ "T_s=70 # in degree C\n",
+ "T_infinite=10 # in degree C\n",
+ "del_T=T_s-T_infinite#\n",
+ "g=9.81#\n",
+ "calculation=4.5*10**10# # value of g*Bita*rho**2*C_p/(miu*k)\n",
+ "K=2.75*10**-2 # in W/mK\n",
+ "# g*Bita*rho**2*C_p/(miu*k) = g*Bita*rho**2/miu**2 * miu*C_p/k = (g*Bita*del_T*x**3/T**2 * miu*C_p/k)/(del_T*x**3)\n",
+ "GrxPr= calculation*del_T*x**3# # value of Gr*Pr\n",
+ "Nu= 0.13*(GrxPr)**(1/3)#\n",
+ "# Formula Nu = h*x/k\n",
+ "h= Nu*K/x # in W/m**2K\n",
+ "A=2*pi*d#\n",
+ "q=h*A*(del_T) # in W\n",
+ "q=q*60*60 # in J/h\n",
+ "print \"Heat transfer rate = %0.3e J/h\" %q"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Heat transfer rate = 5.067e+06 J/h\n"
+ ]
+ }
+ ],
+ "prompt_number": 12
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example No : 6.4 - Page : 180"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "from math import log\n",
+ "# given data\n",
+ "m=15 # in kg\n",
+ "C_p=420 # in J/kg K\n",
+ "T_s=200 # in degree C\n",
+ "T_infinite=30 # in degree C\n",
+ "T_f=(T_s+T_infinite)/2 # in degree C\n",
+ "T_f=T_f+273 # in K\n",
+ "Pr=0.688#\n",
+ "K=0.0321 # in W/mK\n",
+ "delta=23.18*10**-6 # in m**2/s\n",
+ "Bita=1/T_f#\n",
+ "g=9.81#\n",
+ "x=0.3 # in m\n",
+ "del_T=T_s-T_infinite#\n",
+ "Gr=(g*Bita*del_T*x**3)/delta**2#\n",
+ "Ra=Gr*Pr#\n",
+ "#Since Ra<10**9, hence it is laminar flow using the relation\n",
+ "# Formula Nu=0.59*Ra**(1/4)=h*x/K\n",
+ "h=0.59*Ra**(1/4)*K/x # in W/m**2K\n",
+ "print \"(i) Heat transfer coefficient is :\",round(h,3),\"W/m**2K\"\n",
+ "\n",
+ "# (b) Initial rate of cooling\n",
+ "# Formula h*A*(T_s-T_infinite) = m*C_p*dt_by_toh\n",
+ "A=2*0.3*0.5#\n",
+ "dt_by_toh = h*A*(T_s-T_infinite)/(m*C_p) # in degree C/sec\n",
+ "dt_by_toh=dt_by_toh*60 # in degree C /min\n",
+ "print \"(ii) Initial rate of cooling of the plate is :\",round(dt_by_toh,3),\"degreeC per min\"\n",
+ "\n",
+ "#(c) Time taken by plate to cool from 200 degree C to 50 degree C\n",
+ "T_i=200 # in degree C\n",
+ "T=50 # in degree C\n",
+ "# Formula (T-T_infinite)/(T_i-T_infinite)= %e**(-h*A*toh/(m*C_p))#\n",
+ "toh= -log((T-T_infinite)/(T_i-T_infinite))*m*C_p/(h*A) # in sec\n",
+ "toh=toh/60 # in min\n",
+ "print \"(iii) Time required to cool plate from 200 degree C to 50 degree C is :\",round(toh,2),\"minutes\""
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "(i) Heat transfer coefficient is : 6.97 W/m**2K\n",
+ "(ii) Initial rate of cooling of the plate is : 3.385 degreeC per min\n",
+ "(iii) Time required to cool plate from 200 degree C to 50 degree C is : 107.46 minutes\n"
+ ]
+ }
+ ],
+ "prompt_number": 13
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example No : 6.5 - Page : 182"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "from numpy import pi\n",
+ "# given data\n",
+ "rho=0.8 # in kg/m**3#\n",
+ "C_p=1.01 # in KJ/kg K\n",
+ "Pr=0.684#\n",
+ "d=15*10**-2 # diameter in meter\n",
+ "K=0.035 # in W/mK\n",
+ "delta=2.78*10**-5 # in m**2/s\n",
+ "g=9.81#\n",
+ "x=2 # in m\n",
+ "T_s=250 # in degree C\n",
+ "T_infinite=30 # in degree C\n",
+ "T_f=(T_s+T_infinite)/2 # in degree C\n",
+ "T_f=T_f+273 # in K\n",
+ "Bita=1/T_f#\n",
+ "del_T=T_s-T_infinite#\n",
+ "#Heat loss from vertical part by free convection\n",
+ "Gr=(g*Bita*del_T*x**3)/delta**2#\n",
+ "Ra=Gr*Pr#\n",
+ "#Since Ra>10**9, hence turbulent flow\n",
+ "# Formula Nu= h*x/K =0.13*Ra**(1/3)\n",
+ "h=0.13*Ra**(1/3)*K/x # in W/m**2K\n",
+ "A=2*pi*d#\n",
+ "q1=h*A*del_T # w\n",
+ "q1=q1*10**-3 # in kW\n",
+ "print \"Heat loss from vertical part is :\",round(q1,3),\"kW\"\n",
+ "#Heat loss for Horizontal part\n",
+ "# here\n",
+ "x=d#\n",
+ "Gr=(g*Bita*del_T*x**3)/delta**2#\n",
+ "Ra=Gr*Pr#\n",
+ "#Since Ra<10**9, hence laminar fluid flow\n",
+ "# Formula Nu= h*x/K =0.53*Ra**(1/4)\n",
+ "h=0.53*Ra**(1/4)*K/x # in W/m**2K\n",
+ "A=pi*d*8#\n",
+ "q2=h*A*del_T # w\n",
+ "q2=q2*10**-3 # in kW\n",
+ "print \"Heat loss for horizontal part is :\",round(q2,3),\"kW\"\n",
+ "\n",
+ "#Heat loss by radiation\n",
+ "sigma=5.67*10**-8#\n",
+ "epsilon=0.65 # emissivity of steel\n",
+ "A=pi*d*10#\n",
+ "T_s=T_s+273 # in K\n",
+ "T_infinite=T_infinite+273 # in K\n",
+ "q3=sigma*A*epsilon*(T_s**4-T_infinite**4) # in w\n",
+ "q3=q3*10**-3 # in kW\n",
+ "print \"Heat loss by radiation is :\",round(q3,3),\"kW\"\n",
+ "#Total heat loss\n",
+ "theta=q1+q2+q3#\n",
+ "print \"Total heat loss is :\",round(theta,3),\"kW\"\n",
+ "\n",
+ "\n",
+ "#Note : value of q3 and theta in the book is wrong so answer in the book is wrong"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Heat loss from vertical part is : 1.572 kW\n",
+ "Heat loss for horizontal part is : 6.447 kW\n",
+ "Heat loss by radiation is : 11.53 kW\n",
+ "Total heat loss is : 19.549 kW\n"
+ ]
+ }
+ ],
+ "prompt_number": 14
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example No : 6.6 - Page : 183"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "# given data\n",
+ "rho=1.205 # in kg/m**3#\n",
+ "C_p=1006 # in J/kg K\n",
+ "Pr=0.71#\n",
+ "K=0.0256 # in W/mK\n",
+ "delta=1.506*10**-5 # in m**2/s\n",
+ "T_s=35 # in degree C\n",
+ "T_infinite=5 # in degree C\n",
+ "T_f=(T_s+T_infinite)/2 # in degree C\n",
+ "T_f=T_f+273 # in K\n",
+ "Bita=1/T_f#\n",
+ "del_T=T_s-T_infinite#\n",
+ "g=9.81#\n",
+ "# Formula 1/x= 1/Lh + 1/Lv\n",
+ "Lh=50 # in cm\n",
+ "Lv=50 # in cm\n",
+ "x=Lh*Lv/(Lh+Lv) # in cm\n",
+ "x=x*10**-2 # in m\n",
+ "# Formula Gr=(g*Bita*del_T*x**3)/delta**2#\n",
+ "Gr=(g*Bita*del_T*x**3)/delta**2#\n",
+ "Ra=Gr*Pr#\n",
+ "# Formula Nu= h*x/K =0.53*Ra**(1/4)\n",
+ "h=0.53*Ra**(1/4)*K/x # in W/m**2K\n",
+ "A=2*(0.5+0.5)#\n",
+ "q=h*A*del_T # w\n",
+ "print \"Heat loss per meter length of pipe is :\",round(q,3),\"watt\"\n",
+ "\n",
+ "# Note: In the book, value of h is wrong due to place miss value of x, so the answer in the book is wrong"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Heat loss per meter length of pipe is : 272.624 watt\n"
+ ]
+ }
+ ],
+ "prompt_number": 15
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example No : 6.7 - Page : 184"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "from scipy.integrate import quad\n",
+ "# given data\n",
+ "L=3 # in m\n",
+ "delta=0#\n",
+ "hx='10*x**(-1/4)'\n",
+ "# (a) Average heat transfer coefficient\n",
+ "def integrand(x):\n",
+ " return 10*x**(-1/4)\n",
+ "\n",
+ "ans, err = quad(integrand, delta, L)\n",
+ "\n",
+ "h=1/L*ans\n",
+ "print \"(a) Average heat transfer coefficient is :\",round(h,2),\"W/m**2K\"\n",
+ "\n",
+ "# (b) Heat transfer rate\n",
+ "A=3*.3 # in m**2\n",
+ "Tp=170 # plate temp. in degree C\n",
+ "Tg=30 # gas temp. in degree C\n",
+ "del_T=Tp-Tg#\n",
+ "q=h*A*del_T # in W\n",
+ "print \"(b) Heat transfer rate is :\",round(q,3),\"W\"\n",
+ "\n",
+ "# (c) \n",
+ "x=2 # in m\n",
+ "qx_by_A= 10*x**(-1/4)*(Tp-Tg)#\n",
+ "print \"Local heat flux 2 m from the leading edge is :\",round(qx_by_A,1),\"W/m**2\""
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "(a) Average heat transfer coefficient is : 10.13 W/m**2K\n",
+ "(b) Heat transfer rate is : 1276.524 W\n",
+ "Local heat flux 2 m from the leading edge is : 1177.3 W/m**2\n"
+ ]
+ }
+ ],
+ "prompt_number": 16
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example No : 6.8 - Page : 185"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "from numpy import pi\n",
+ "# given data\n",
+ "Pr=0.712#\n",
+ "K=0.026 # in W/mK\n",
+ "delta=1.57*10**-5 # in m**2/s\n",
+ "T_s=320 # in K\n",
+ "T_infinite=280 # in K\n",
+ "del_T=T_s-T_infinite#\n",
+ "T_f=(T_s+T_infinite)/2 # in K\n",
+ "Bita=1/T_f#\n",
+ "d1=20 # in cm\n",
+ "d2=30 # in cm\n",
+ "x=(d2-d1)/2 # in cm\n",
+ "x=x*10**-2 # in m\n",
+ "g=9.81#\n",
+ "Gr=(g*Bita*del_T*x**3)/delta**2#\n",
+ "Ra=Gr*Pr#\n",
+ "# Formula Nu= h*x/K =0.228*Ra**(0.226)\n",
+ "h=0.228*Ra**(0.226)*K/x # in W/m**2K\n",
+ "A=pi*(d1*10**-2)**2#\n",
+ "q=h*A*del_T # w\n",
+ "print \"Heat transfer rate is :\",round(q,1),\"watt\""
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Heat transfer rate is : 11.4 watt\n"
+ ]
+ }
+ ],
+ "prompt_number": 17
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example No : 6.9 - Page : 186"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "from numpy import pi\n",
+ "# given data\n",
+ "K=0.0278 # in W/mK\n",
+ "rho=1.092 # in kg/m**3\n",
+ "miu=19.57*10**-6 # in kg/ms\n",
+ "Cp=1007 # in kg/kg degree C\n",
+ "epsilon=0.9#\n",
+ "sigma=5.67*10**-8#\n",
+ "d=75+2*25 # in mm\n",
+ "d=d*10**-3 # in meter\n",
+ "T_s=80 # in degree C\n",
+ "T_infinite=20 # in degree C\n",
+ "T_f=(T_s+T_infinite)/2 # in degree C\n",
+ "T_f=T_f+273 # in K\n",
+ "Bita=1/T_f#\n",
+ "g=9.81#\n",
+ "del_T=T_s-T_infinite#\n",
+ "Pr=miu*Cp/K#\n",
+ "Gr=(rho**2*g*Bita*del_T*d**3)/miu**2#\n",
+ "# Formula Nu= h*d/K = 0.53*(Gr*Pr)**(1/4)#\n",
+ "h= 0.53*(Gr*Pr)**(1/4)*K/d#\n",
+ "#(a) Heat loss from 6 m length of pipe\n",
+ "A=pi*d*6#\n",
+ "Q_conv=h*A*del_T#\n",
+ "Q_rad=epsilon*sigma*A*((T_s+273)**4-(T_infinite+273)**4)#\n",
+ "#total heat transfer rate\n",
+ "Q=Q_conv+Q_rad#\n",
+ "print \"Total heat transfer rate = %0.f W\" %Q\n",
+ "\n",
+ "# (b) Overall heat transfer coefficient\n",
+ "# Formula Q=U*A*del_T\n",
+ "U=Q/(A*del_T)#\n",
+ "print \"Overall heat transfer coefficient is :\",round(U,3),\"W/m**2 degree C\""
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Total heat transfer rate = 1863 W\n",
+ "Overall heat transfer coefficient is : 13.178 W/m**2 degree C\n"
+ ]
+ }
+ ],
+ "prompt_number": 18
+ }
+ ],
+ "metadata": {}
+ }
+ ]
+} \ No newline at end of file
diff --git a/Heat_And_Mass_Transfer_by_Vijay_K._Dwivedi/chapter_7.ipynb b/Heat_And_Mass_Transfer_by_Vijay_K._Dwivedi/chapter_7.ipynb
new file mode 100644
index 00000000..1a92384e
--- /dev/null
+++ b/Heat_And_Mass_Transfer_by_Vijay_K._Dwivedi/chapter_7.ipynb
@@ -0,0 +1,610 @@
+{
+ "metadata": {
+ "name": ""
+ },
+ "nbformat": 3,
+ "nbformat_minor": 0,
+ "worksheets": [
+ {
+ "cells": [
+ {
+ "cell_type": "heading",
+ "level": 1,
+ "metadata": {},
+ "source": [
+ "Chapter 7 - Radiation Heat Transfer"
+ ]
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example No : 7.1 - Page : 212"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "from __future__ import division\n",
+ "from math import exp\n",
+ "# given data\n",
+ "lamda=2*10**-6 # in m\n",
+ "C1=0.374*10**-15#\n",
+ "T=2000+273 # in K'\n",
+ "C2=1.4388*10**-2#\n",
+ "\n",
+ "#(a)\n",
+ "# Formula Eb_lamda= (C1*lamda**-5)/(exp(C2/(lamda*T))-1)\n",
+ "Eb_lamda= (C1*lamda**-5)/(exp(C2/(lamda*T))-1)#\n",
+ "print \"Monochromatic emissive power at 2 micro wavelength = %0.2e W/m**2\" %Eb_lamda\n",
+ "\n",
+ "#(b)\n",
+ "# Formula lamda_max * T =2898 # in micro m K\n",
+ "lamda_max= 2898/T # in micro m\n",
+ "print \"Wave-length at which the emission is maximum = %0.3f micro m\" %lamda_max\n",
+ "\n",
+ "#(c)\n",
+ "Elamdab_max=1.285*10**-5*T**5 # in W/m**2-m\n",
+ "print \"Maximum emissive power = %0.4e W/m**2-m\" %Elamdab_max\n",
+ "\n",
+ "#(d)\n",
+ "sigma=5.67*10**-8#\n",
+ "E=sigma*T**4#\n",
+ "print \"Total emissive power = %0.3e W/m**2\" %E\n",
+ "\n",
+ "#Note: Answer of part (a) in the book is wrong"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Monochromatic emissive power at 2 micro wavelength = 5.15e+11 W/m**2\n",
+ "Wave-length at which the emission is maximum = 1.275 micro m\n",
+ "Maximum emissive power = 7.7965e+11 W/m**2-m\n",
+ "Total emissive power = 1.513e+06 W/m**2\n"
+ ]
+ }
+ ],
+ "prompt_number": 20
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example No : 7.2 - Page : 213"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "from numpy import pi\n",
+ "# given data\n",
+ "lamda=2*10**-6 # in m\n",
+ "C1=0.374*10**-15#\n",
+ "T=2000+273 # in K'\n",
+ "C2=1.4388*10**-2#\n",
+ "\n",
+ "epsilon=0.3#\n",
+ "sigma=5.67*10**-8#\n",
+ "T1=300 # in K\n",
+ "T2=200 # in K\n",
+ "del_T=T1-T2#\n",
+ "h=12 # in W/m**2 degree C\n",
+ "d=4*10**-2 # diameter in m\n",
+ "l=1 # in m\n",
+ "A=pi*d*l#\n",
+ "# Heat transfer rate by radiation,\n",
+ "q_r= epsilon*sigma*A*(T1**4-T2**4) # in W\n",
+ "# Heat transfer rate by convection,\n",
+ "q_c=h*A*del_T # in W\n",
+ "# Total heat transfer,\n",
+ "q=q_r+q_c#\n",
+ "# Formula q=U*A*del_T\n",
+ "U=q/(A*del_T) # Overall heat tranfer coefficient\n",
+ "print \"Overall heat tranfer coefficient = %0.3f W/m**2 degree C\" %U\n",
+ "#Note: Value of q_c is wrong in the book, so the answer in the book is wrong"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Overall heat tranfer coefficient = 13.106 W/m**2 degree C\n"
+ ]
+ }
+ ],
+ "prompt_number": 21
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example No : 7.3 - Page : 214"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "# given data\n",
+ "epsilon=0.5#\n",
+ "T1=1200 # in K\n",
+ "T2=300 # in K\n",
+ "#(a) Heat transfer rate between the two plates is \n",
+ "# Formula Fg12=1/((1/epsilon1+(1/epsilon2-1)*A1/A2))\n",
+ "epsilon1=epsilon#\n",
+ "epsilon2=epsilon#\n",
+ "A1byA2=1#\n",
+ "Fg12=1/(1/epsilon1+(1/epsilon2-1)*A1byA2)#\n",
+ "# Formula q12= sigma*A*Fg12*(T1**4-T2**4) \n",
+ "sigma=5.67*10**-8#\n",
+ "q12byA=sigma*Fg12*(T1**4-T2**4) # in W/m**2\n",
+ "print \"Heat transfer rate between the two plates = %0.4e W/m**2\" %q12byA\n",
+ "\n",
+ "#(b)\n",
+ "epsilon3=.05#\n",
+ "Fg13=1/(1/epsilon1+(1/epsilon3-1)*A1byA2)#\n",
+ "Fg32=1/(1/epsilon3+(1/epsilon2-1)*A1byA2)#\n",
+ "# q13=q32\n",
+ "# sigma*A*Fg13*(T1**4-T3**4) = sigma*A*Fg32*(T3**4-T2**4) \n",
+ "T3= ((T1**4+T2**4)/2)**(1/4)#\n",
+ "T3=math.floor(T3)#\n",
+ "q13byA=sigma*Fg13*(T1**4-T3**4) # in W/m**2\n",
+ "print \"Heat transfer rate if a radiation shield with an emissivity of 0.05 on both sides is placed \"\n",
+ "print \"between the two plates = %0.3e W/m**2 \" %q13byA"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Heat transfer rate between the two plates = 3.9038e+04 W/m**2\n",
+ "Heat transfer rate if a radiation shield with an emissivity of 0.05 on both sides is placed \n",
+ "between the two plates = 2.789e+03 W/m**2 \n"
+ ]
+ }
+ ],
+ "prompt_number": 22
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example No : 7.4 - Page : 215"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "# given data\n",
+ "T1=800+273 # in K\n",
+ "A= 5*6 # in square meter\n",
+ "epsilon=0.45#\n",
+ "sigma=5.67*10**-8#\n",
+ "q=epsilon*sigma*A*T1**4 #in watt\n",
+ "print \"Energy emitted by a grey surface = %0.5e watt\" %q"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Energy emitted by a grey surface = 1.01465e+06 watt\n"
+ ]
+ }
+ ],
+ "prompt_number": 23
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example No : 7.5 - Page : 215"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "from __future__ import division\n",
+ "# given data\n",
+ "A=5 # in m**2\n",
+ "intensity=660 # in W/m**2\n",
+ "alpha=6/11#\n",
+ "rho=6/22#\n",
+ "toh=6/33#\n",
+ "energy_absorbed= intensity*alpha*A # in watt\n",
+ "print \"Energy absorbed = %0.f watt\" %energy_absorbed\n",
+ "energy_transmitted=intensity*rho*A #in watt\n",
+ "print \"Energy transmitted = %0.f watt\" %energy_transmitted\n",
+ "energy_emitted= intensity*toh*A # in watt\n",
+ "print \"Energy emitted = %0.f watt\" %energy_emitted"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Energy absorbed = 1800 watt\n",
+ "Energy transmitted = 900 watt\n",
+ "Energy emitted = 600 watt\n"
+ ]
+ }
+ ],
+ "prompt_number": 24
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example No : 7.5 - Page : 216"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "# given data\n",
+ "T1=200+273 # in K\n",
+ "T2=100+273 # in K\n",
+ "A= 1*2 # in square meter\n",
+ "sigma=5.67*10**-8#\n",
+ "x_D= 1/4#\n",
+ "y_D= 1/2#\n",
+ "Fg12= 0.033#\n",
+ "q12= Fg12*sigma*A*(T1**4-T2**4) # in watt\n",
+ "print \"The net heat exchange between two surfaces = %0.2f watt\" %q12"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "The net heat exchange between two surfaces = 114.88 watt\n"
+ ]
+ }
+ ],
+ "prompt_number": 25
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example No : 7.6 - Page : 216"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "from numpy import pi\n",
+ "# given data\n",
+ "d=20*10**-2 #diameter of pipe in m\n",
+ "l=1 # length of pipe in m\n",
+ "s=30*10**-2 # side of duct in m\n",
+ "A1=pi*d*l # area of pipe in m**2\n",
+ "A2=4*s*s # area of duct in m**2\n",
+ "epsilon1=0.8#\n",
+ "epsilon2=0.9#\n",
+ "T1=200+273 # in K\n",
+ "T2=20+273 # in K\n",
+ "# Formula Fg12=1/((1/epsilon1+(1/epsilon2-1)*A1/A2))\n",
+ "Fg12=1/((1/epsilon1+(1/epsilon2-1)*A1/A2))#\n",
+ "# Heat transfer rate between pipe and duct\n",
+ "sigma=5.67*10**-8#\n",
+ "q12=sigma*Fg12*A1*(T1**4-T2**4) # in W\n",
+ "print \"Heat transfer rate between pipe and duct = %0.3f W\" %q12\n",
+ "#Note: Answer in the book is wrong"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Heat transfer rate between pipe and duct = 1053.148 W\n"
+ ]
+ }
+ ],
+ "prompt_number": 26
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example No : 7.10 - Page : 220"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "from numpy import pi\n",
+ "# given data\n",
+ "D=150*10**-3 # in m\n",
+ "H=400*10**-3 # in m\n",
+ "T1=500 # in K\n",
+ "epsilon=0.7#\n",
+ "# Formula F11=(4*H)/(4*H+D)\n",
+ "F11=(4*H)/(4*H+D)#\n",
+ "sigma=5.67*10**-8#\n",
+ "A1=pi*D*H#\n",
+ "q=sigma*A1*epsilon*T1**4*((1-F11)/(1-F11*(1-epsilon)))#\n",
+ "print \"Heat Heat loss for cavity = %0.3f W\" %q\n",
+ "#Note: Answer in the book is not accutate"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Heat Heat loss for cavity = 55.227 W\n"
+ ]
+ }
+ ],
+ "prompt_number": 27
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example No : 7.11 - Page : 221"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "from numpy import pi\n",
+ "# given data\n",
+ "epsilon1=.04#\n",
+ "epsilon2=epsilon1#\n",
+ "T1=-153+273 # in K\n",
+ "T2=27+273 # in K\n",
+ "h_fg=209 # in kJ/kg\n",
+ "h_fg=h_fg*10**3 # in J/kg\n",
+ "d1=20*10**-2 # in m\n",
+ "d2=30*10**-2 # in m\n",
+ "A1=d1**2 # in square meter\n",
+ "A2=d2**2 # in square meter\n",
+ "A=4*pi*(d2-d1)**2#\n",
+ "Fg12=1/((1/epsilon1+(1/epsilon2-1)*A1/A2))#\n",
+ "sigma=5.67*10**-8# \n",
+ "q12=sigma*A*Fg12*(T1**4-T2**4) # in W\n",
+ "print \"Net radiant heat transfer rate = %0.3f watt\" %q12\n",
+ "print \"Negative sign indicates that heat flows into the sphere\"\n",
+ "q12=-q12 #\n",
+ "m=q12*60/h_fg #\n",
+ "print \"Rate of evaporation per minutes = %0.3e kg/min\" %m"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Net radiant heat transfer rate = -1.577 watt\n",
+ "Negative sign indicates that heat flows into the sphere\n",
+ "Rate of evaporation per minutes = 4.526e-04 kg/min\n"
+ ]
+ }
+ ],
+ "prompt_number": 28
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example No : 7.12 - Page : 221"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "# given data\n",
+ "T1=500 # in K\n",
+ "T2=300 # in K\n",
+ "sigma=5.67*10**-8#\n",
+ "A=2 # surface area of each plate in m**2\n",
+ "#(a) If the plates are perfectly black\n",
+ "F12=1#\n",
+ "q12=sigma*A*F12*(T1**4-T2**4)#\n",
+ "print \"Radiation heat transfer between two black parellel plates = %0.4e watt\" %q12\n",
+ "\n",
+ "#(b) If the plates are gray surface\n",
+ "#in this case\n",
+ "F12=1#\n",
+ "#A1=A2, so\n",
+ "A1byA2=1\n",
+ "epsilon1=.4#\n",
+ "epsilon2=epsilon1#\n",
+ "#Fg12=1/(1/epsilon1+(1/epsilon2-1)*A1byA2)#\n",
+ "Fg12=1/((1-epsilon1)/epsilon1 + 1/F12 + ((1-epsilon2)/epsilon2)*A1byA2)#\n",
+ "q12=sigma*A*Fg12*(T1**4-T2**4) # in W\n",
+ "print \"Heat transfer rate = %0.3e watt\" %q12"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Radiation heat transfer between two black parellel plates = 6.1690e+03 watt\n",
+ "Heat transfer rate = 1.542e+03 watt\n"
+ ]
+ }
+ ],
+ "prompt_number": 29
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example No : 7.13 Page No - 222"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "from numpy import pi\n",
+ "# given data\n",
+ "T1=800 # in K\n",
+ "T3=200 # in K\n",
+ "sigma=5.67*10**-8#\n",
+ "d1=20*10**-2 # in m\n",
+ "d2=30*10**-2 # in m\n",
+ "d3=40*10**-2 # in m\n",
+ "A1=4*pi*(d1/2)**2 # in m**2\n",
+ "A2=4*pi*(d2/2)**2 # in m**2\n",
+ "A3=4*pi*(d3/2)**2 # in m**2\n",
+ "epsilon1=0.2#\n",
+ "epsilon2=epsilon1\n",
+ "epsilon3=epsilon1\n",
+ "Fg12=1/(1/epsilon1+(1/epsilon2-1)*A1/A2)#\n",
+ "Fg23=1/(1/epsilon2+(1/epsilon3-1)*A2/A3)#\n",
+ "# Under steady state condition \n",
+ "# q12 = q23\n",
+ "# A1*Fg12*sigma*(T1**4-T2**4) = A2*Fg23*sigma*(T2**4-T3**4)\n",
+ "T2 = ((A2*Fg23*T3**4/(A1*Fg12)+T1**4)/(A2*Fg23/(A1*Fg12) + 1))**(1/4)\n",
+ "print \"Steady state temperature of the intermediate sphere = %0.f K\" %T2"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Steady state temperature of the intermediate sphere = 604 K\n"
+ ]
+ }
+ ],
+ "prompt_number": 30
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example No : 7.14 Page No : 223"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "# given data\n",
+ "T1=400 # in K\n",
+ "T2=500 # in K\n",
+ "T3=1200 # in K\n",
+ "alpha1=0.70#\n",
+ "alpha2=0.6#\n",
+ "alpha3=0.4#\n",
+ "# First part\n",
+ "sigma=5.67*10**-8#\n",
+ "qa=alpha3*sigma*T3**4#\n",
+ "print \"The rate of energy absorption = %0.2e W/m**2\" %qa\n",
+ "# Second part\n",
+ "qa=alpha1*sigma*T1**4#\n",
+ "print \"The rate of emission of radiation energy = %0.2f W/m**2\" %qa\n",
+ "# Note : Answer of the first part in the book is wrong"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "The rate of energy absorption = 4.70e+04 W/m**2\n",
+ "The rate of emission of radiation energy = 1016.06 W/m**2\n"
+ ]
+ }
+ ],
+ "prompt_number": 31
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example No : 7.15 Page No : 223"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "from numpy import pi\n",
+ "# given data\n",
+ "d1=100 # in mm\n",
+ "d1=d1*10**-3 # in m\n",
+ "d2=100+10*2 # in mm\n",
+ "d2=d2*10**-3 # in m\n",
+ "l=1 # in m\n",
+ "A1byA2=d1**2/d2**2#\n",
+ "A1=pi*d1*l # in m**2\n",
+ "sigma=5.67*10**-8#\n",
+ "T1=120+273 # in K\n",
+ "T2=35+273 # in K\n",
+ "epsilon1=.8#\n",
+ "epsilon2=.1#\n",
+ "Fg12=1/(1/epsilon1+(1/epsilon2-1)*A1byA2)#\n",
+ "# Radiant heat transfer from the tube\n",
+ "q=A1*Fg12*sigma*(T1**4-T2**4)\n",
+ "print \" Radiant heat transfer from the tube = %0.3f W/m\" %q\n",
+ "#Note: Answer in the book is wrong"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ " Radiant heat transfer from the tube = 35.282 W/m\n"
+ ]
+ }
+ ],
+ "prompt_number": 32
+ }
+ ],
+ "metadata": {}
+ }
+ ]
+} \ No newline at end of file
diff --git a/Heat_And_Mass_Transfer_by_Vijay_K._Dwivedi/chapter_8.ipynb b/Heat_And_Mass_Transfer_by_Vijay_K._Dwivedi/chapter_8.ipynb
new file mode 100644
index 00000000..dbf7d5a0
--- /dev/null
+++ b/Heat_And_Mass_Transfer_by_Vijay_K._Dwivedi/chapter_8.ipynb
@@ -0,0 +1,903 @@
+{
+ "metadata": {
+ "name": ""
+ },
+ "nbformat": 3,
+ "nbformat_minor": 0,
+ "worksheets": [
+ {
+ "cells": [
+ {
+ "cell_type": "heading",
+ "level": 1,
+ "metadata": {},
+ "source": [
+ "Chapter 8 - Heat Exchanger"
+ ]
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example No : 8.1 - Page : 248"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "from __future__ import division\n",
+ "from math import log\n",
+ "# given data\n",
+ "t_hi=80 # in degree C\n",
+ "t_ci=30 # in degree C\n",
+ "t_ho=40 # in degree C\n",
+ "Mh=0.278 # in kg/s\n",
+ "Mc=0.278 # in kg/s\n",
+ "Cph=2.09# # in kJ/kg degree C\n",
+ "Cpc=4.18 # in kJ/kg degree C\n",
+ "U=24 # in W/m**2 degree C\n",
+ "# Energy balance Mh*Cph*(t_hi-t_ho) = Mc*Cpc*(t_co-t_ci)\n",
+ "t_co= Mh*Cph*(t_hi-t_ho)/(Mc*Cpc)+t_ci # in degree C\n",
+ "del_t1=t_hi-t_co #in degree C\n",
+ "del_t2=t_ho-t_ci #in degree C\n",
+ "del_tm= (del_t1-del_t2)/log(del_t1/del_t2)#\n",
+ "Cph=Cph*10**3 # in J/kg degree C\n",
+ "q=Mh*Cph*(t_hi-t_ho)#\n",
+ "#Formula q=U*A*del_tm\n",
+ "A=q/(U*del_tm) # in m**2\n",
+ "print \"Surface area of heat exchange = %0.1f square meter\" %A"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Surface area of heat exchange = 53.2 square meter\n"
+ ]
+ }
+ ],
+ "prompt_number": 16
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example No : 8.2 - Page : 249"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "from numpy import pi\n",
+ "# given data\n",
+ "t_hi=160 # in degree C\n",
+ "t_ci=25 # in degree C\n",
+ "t_ho=60 # in degree C\n",
+ "Mh=2 # in kg/s\n",
+ "Mc=2 # in kg/s\n",
+ "Cph=2.035# # in kJ/kg degree C\n",
+ "Cpc=4.187 # in kJ/kg degree C\n",
+ "U=250 # in W/m**2 K\n",
+ "d=0.5 # in m\n",
+ "# Energy balance Mh*Cph*(t_hi-t_ho) = Mc*Cpc*(t_co-t_ci)\n",
+ "t_co= Mh*Cph*(t_hi-t_ho)/(Mc*Cpc)+t_ci # in degree C\n",
+ "del_t1=t_hi-t_co #in degree C\n",
+ "del_t2=t_ho-t_ci #in degree C\n",
+ "del_tm= (del_t1-del_t2)/log(del_t1/del_t2)#\n",
+ "Cph=Cph*10**3 # in J/kg degree C\n",
+ "q=Mh*Cph*(t_hi-t_ho)#\n",
+ "#Formula q=U*pi*d*l*del_tm\n",
+ "l=q/(U*pi*d*del_tm)#\n",
+ "print \"Length of the heat exchanger = %0.2f meter\" %l"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Length of the heat exchanger = 18.22 meter\n"
+ ]
+ }
+ ],
+ "prompt_number": 17
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example No : 8.3 - Page : 251"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "from math import log\n",
+ "from __future__ import division\n",
+ "# given data\n",
+ "t_hi=110 # in degree C\n",
+ "t_ci=35 # in degree C\n",
+ "t_co=75 # in degree C\n",
+ "Mh=2.5 # in kg/s\n",
+ "Mc=1 # in kg/s\n",
+ "Cph=1.9# # in kJ/kg K\n",
+ "Cpc=4.18 # in kJ/kg K\n",
+ "U=300 # in W/m**2 K\n",
+ "\n",
+ "# Energy balance Mc*Cpc*(t_co-t_ci) = Mh*Cph*(t_hi-t_ho)\n",
+ "t_ho=t_hi- Mc*Cpc*(t_co-t_ci)/(Mh*Cph) # in degree C\n",
+ "del_t1=t_hi-t_co #in degree C\n",
+ "del_t2=t_ho-t_ci #in degree C\n",
+ "del_tm= (del_t1-del_t2)/log(del_t1/del_t2)#\n",
+ "Cph=Cph*10**3 # in J/kg degree C\n",
+ "q=Mh*Cph*(t_hi-t_ho)#\n",
+ "#Formula q=U*A*del_tm\n",
+ "A=q/(U*del_tm)#\n",
+ "print \"Area of the heat exchanger = %0.2f square meter\" %A"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Area of the heat exchanger = 14.92 square meter\n"
+ ]
+ }
+ ],
+ "prompt_number": 18
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example No : 8.4 - Page : 252"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "from math import log\n",
+ "# given data\n",
+ "Fi=0.00014 # in m**2 degree C/W\n",
+ "hi=2000 # in W/m**2degree C\n",
+ "Fo=0.00015 # in m**2 degree C/W\n",
+ "ho=1000 # in W/m**2degree C\n",
+ "di=3*10**-2 # in m\n",
+ "do=4*10**-2 #in m\n",
+ "ro=do/2#\n",
+ "ri=di/2#\n",
+ "k=53 # in W/m degree C\n",
+ "Uo=1/(do/di*1/hi+ do/(2*k)*log(ro/ri) + 1/ho + do*Fi/di + Fo)#\n",
+ "print \"The overall heat transfer coefficient = %0.3f W/m**2 degree C\" %Uo\n",
+ "# Note : Answer in the book is not accurate"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "The overall heat transfer coefficient = 473.509 W/m**2 degree C\n"
+ ]
+ }
+ ],
+ "prompt_number": 19
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example No : 8.5 - Page : 252"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "# given data\n",
+ "V=0.15 # in m/s\n",
+ "di=2.5*10**-2 # in m\n",
+ "\n",
+ "delta=0.364*10**-6 # in m**2/s\n",
+ "k=0.668 # in W/m degree C\n",
+ "Pr=2.22#\n",
+ "\n",
+ "Re=V*di/delta#\n",
+ "# Formula Nu= hi*di/k = 0.023*Re**0.8*Pr**0.3\n",
+ "hi=0.023*Re**0.8*Pr**0.3*k/di # in W/m**2 degree C\n",
+ "\n",
+ "# Now, Reynold number for flow of air across the tube\n",
+ "delta=18.22*10**-6 # in m**2/s\n",
+ "k=0.0281 # in W/m degree C\n",
+ "Pr=0.703#\n",
+ "d=2.5*10**-2 # in m\n",
+ "u=10 # in m/s\n",
+ "Re=u*d/delta#\n",
+ "Re=math.floor(Re)#\n",
+ "#The Nusselt number for this case\n",
+ "Nu=(0.04*Re**0.5+ 0.006*Re**(2/3))*Pr**0.4\n",
+ "# Formula Nu= ho*do/k\n",
+ "do=di#\n",
+ "ho=Nu*k/do # in W/m**2 degree C\n",
+ "print \"Heat transfer coefficient = %0.3f W/m**2 degree C\" %ho\n",
+ "U=1/(1/hi+1/ho)#\n",
+ "print \"The overall heat transfer coefficient neglecting the wall resistance = %0.3f W/m**2 degree C\" %U\n",
+ "l=1 # in m\n",
+ "Ti=90 # in degree C\n",
+ "To=10 # in degree C\n",
+ "q=U*pi*d*l*(Ti-To) #\n",
+ "print \"Heat loss per meter length of the tube = %0.3f W/m\" %q\n",
+ "# Note: Answer in the book is wrong"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Heat transfer coefficient = 7.931 W/m**2 degree C\n",
+ "The overall heat transfer coefficient neglecting the wall resistance = 7.882 W/m**2 degree C\n",
+ "Heat loss per meter length of the tube = 49.523 W/m\n"
+ ]
+ }
+ ],
+ "prompt_number": 20
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example No : 8.6 - Page : 253"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "# given data\n",
+ "t_hi=83 # in degree C\n",
+ "t_ho=45 # in degree C\n",
+ "t_ci=25 # in degree C\n",
+ "Mh=5 # in kg/min\n",
+ "Mc=9 # in kg/min\n",
+ "Cph=4.18# # in kJ/kg K\n",
+ "Cpc=2.85 # in kJ/kg K\n",
+ "# Energy balance Mh*Cph*(t_hi-t_ho) = Mc*Cpc*(t_co-t_ci) \n",
+ "t_co= Mh*Cph*(t_hi-t_ho)/(Mc*Cpc)+t_ci # in degree C\n",
+ "print \"t_co = %0.2f degree C\" %t_co\n",
+ "if(t_co>t_ho) :\n",
+ " print \"since t_co > t_ho, hence counter flow arrangment will be suitable\""
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "t_co = 55.96 degree C\n",
+ "since t_co > t_ho, hence counter flow arrangment will be suitable\n"
+ ]
+ }
+ ],
+ "prompt_number": 21
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example No : 8.7 - Page : 254"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "from math import log\n",
+ "# given data\n",
+ "# (a) For parallel flow arrangment\n",
+ "del_t1=60-10 # in degree C\n",
+ "del_t2=40-30 # in degree C\n",
+ "del_tm=(del_t1-del_t2)/log(del_t1/del_t2) # in degree C\n",
+ "q=100*10**3 # in W\n",
+ "U=75 # in W/m**2 degree C\n",
+ "# Formula q=U*A*del_tm#\n",
+ "A=q/(U*del_tm)#\n",
+ "print \"Area for paraller flow arrangment = %0.1f square meter\" %A\n",
+ "# (b) For counter flow heat exchange\n",
+ "del_t1=60-30 # in degree C\n",
+ "del_t2=40-10 # in degree C\n",
+ "# In this case\n",
+ "del_tm=(del_t1+del_t2)/2 # in degree C\n",
+ "A=q/(U*del_tm)#\n",
+ "print \"Area For counter flow heat exchange = %0.2f square meter\" %A"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Area for paraller flow arrangment = 53.6 square meter\n",
+ "Area For counter flow heat exchange = 44.44 square meter\n"
+ ]
+ }
+ ],
+ "prompt_number": 22
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example No : 8.8 - Page : 255"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "from numpy import pi\n",
+ "# given data\n",
+ "Cp=4180 # in J/kg degree C\n",
+ "miu=0.86*10**-3 # in kg/m-s\n",
+ "Pr=60#\n",
+ "k=0.60 # in W/m degree C\n",
+ "h_fg=2372400 # in W\n",
+ "ho=6000 # in W/m**2 degree C\n",
+ "di=2*10**-2 # in m\n",
+ "d_o=3*10**-2 # in m\n",
+ "t_co=35 # in degree C\n",
+ "t_ci=15 # in degree C\n",
+ "M=0.9#\n",
+ "Re=4*M/(pi*di*miu)#\n",
+ "# since Re > 2300, hence flow inside tube is a turbulent flow.\n",
+ "# Hence Nu= hi*di/k = 0.023*Re**0.8*Pr**0.4\n",
+ "hi= 0.023*Re**0.8*Pr**0.4*k/di#\n",
+ "Uo= 1/(1/10213.6*(d_o/di)+1/ho)#\n",
+ "del_t1=50-15 # in degree C\n",
+ "del_t2=50-35 # in degree C\n",
+ "del_tm=(del_t1-del_t2)/log(del_t1/del_t2) # in degree C\n",
+ "# Formula q= Uo*pi*d_i*L*del_tm = M*Cp*(t_co-t_ci)\n",
+ "L= M*Cp*(t_co-t_ci)/(Uo*pi*d_o*del_tm)#\n",
+ "print \"Length of tube = %0.3f meter\" %L\n",
+ "q=M*Cp*(t_co-t_ci) # in watt\n",
+ "m=q/h_fg#\n",
+ "print \"Rate of condensation = %0.3f kg/sec\" %m"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Length of tube = 10.604 meter\n",
+ "Rate of condensation = 0.032 kg/sec\n"
+ ]
+ }
+ ],
+ "prompt_number": 23
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example No : 8.9 - Page : 257"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "from math import log\n",
+ "# given data\n",
+ "Cph=3850# # in J/kg degree C\n",
+ "t_hi=100 # in degree C\n",
+ "t_ci=20 # in degree C\n",
+ "t_ho=50 # in degree C\n",
+ "Mh=8 # in kg/s\n",
+ "Mc=10 # in kg/s\n",
+ "Cpc=4.18*10**3 # in J/kg degree C\n",
+ "U=400 # in W/m**2 degree C\n",
+ "# Energy balance Mh*Cph*(t_hi-t_ho) = Mc*Cpc*(t_co-t_ci)\n",
+ "t_co= Mh*Cph*(t_hi-t_ho)/(Mc*Cpc)+t_ci # in degree C\n",
+ "# Heat load\n",
+ "q=Mh*Cph*(t_hi-t_ho) # in W\n",
+ "# (a) Parallel flow\n",
+ "del_t1=90 # in degree C\n",
+ "del_t2=3.16 # in degree C\n",
+ "del_tm= (del_t1-del_t2)/log(del_t1/del_t2)#\n",
+ "A=q/(U*del_tm)#\n",
+ "print \"Surface area for parallel flow = %0.3f meter square\" %A\n",
+ "# (b) Counter flow heat exchanger\n",
+ "del_t1=53.16 # in degree C\n",
+ "del_t2=40 # in degree C\n",
+ "del_tm_counter= (del_t1-del_t2)/log(del_t1/del_t2)#\n",
+ "A=q/(U*del_tm_counter)#\n",
+ "print \"Surface area for counter flow heat exchanger = %0.1f meter square\" %A\n",
+ "#(c) One shell pass and two tube pass.\n",
+ "#here\n",
+ "t1=10 # in degree C\n",
+ "t2=46.84 # in degree C\n",
+ "T1=100 # in degree C\n",
+ "T2=50 # in degree C\n",
+ "P=(t2-t1)/(T1-t1)#\n",
+ "R=(T1-T2)/(t2-t1)#\n",
+ "F=0.88#\n",
+ "del_tm=F*del_tm_counter # in degree C\n",
+ "A=q/(U*del_tm)#\n",
+ "print \"Surface area for one shell pass and two tube pass = %0.2f meter square\" %A\n",
+ "# (d) For cross flow, correction factor \n",
+ "F=0.9#\n",
+ "del_tm=F*del_tm_counter#\n",
+ "A=q/(U*del_tm)#\n",
+ "print \"Surface area for cross flow = %0.3f meter square\" %A"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Surface area for parallel flow = 148.486 meter square\n",
+ "Surface area for counter flow heat exchanger = 83.2 meter square\n",
+ "Surface area for one shell pass and two tube pass = 94.56 meter square\n",
+ "Surface area for cross flow = 92.456 meter square\n"
+ ]
+ }
+ ],
+ "prompt_number": 24
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example No : 8.10 Page No : 258"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "from math import exp\n",
+ "# given data\n",
+ "Cpc=4.18*10**3 # in J/kg degree C\n",
+ "Mc=1 # in kg/s\n",
+ "Mh=2.4 # in kg/s\n",
+ "Cph=2050# # in J/kg degree C\n",
+ "t_hi=100 # in degree C\n",
+ "t_ci=20 # in degree C\n",
+ "C_c=Mc*Cpc # in W/degree C\n",
+ "C_h=Mh*Cph # in W/degree C\n",
+ "U=300 # in W/m**2 degree C\n",
+ "A=10 # in m**2\n",
+ "C_min=C_c#\n",
+ "C_max=C_h#\n",
+ "N= A*U/C_min#\n",
+ "C=C_min/C_max#\n",
+ "# Effectiveness for counter flow heat exchanger\n",
+ "epsilon= (1-exp(-N*(1-C)))/(1-C*exp(-N*(1-C)))#\n",
+ "# Total heat transfer\n",
+ "q=epsilon*C_min*(t_hi-t_ci) # in watt\n",
+ "print \"Total heat transfer = %0.3f kW\" %(q*10**-3) \n",
+ "t_co=t_ci+epsilon*C*(t_hi-t_ci) #\n",
+ "print \"Exit temperature of water = %0.3f degree C\" %t_co"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Total heat transfer = 144.170 kW\n",
+ "Exit temperature of water = 49.303 degree C\n"
+ ]
+ }
+ ],
+ "prompt_number": 25
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example No : 8.11 Page No : 259"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "from math import log\n",
+ "# given data\n",
+ "t_hi=135 # in degree C\n",
+ "t_ci=20 # in degree C\n",
+ "t_ho=65 # in degree C\n",
+ "t_co=50 # in degree C\n",
+ "# Energy balance Mh*Cph*(t_hi-t_ho) = Mc*Cpc*(t_co-t_ci)\n",
+ "# C =C_min/C_max = Mh*Cph/( Mc*Cpc)\n",
+ "C= (t_co-t_ci)/(t_hi-t_ho)#\n",
+ "epsilon=(t_hi-t_ho)/(t_hi-t_ci)#\n",
+ "# Also epsilon = epsilon_parallel = (1-exp(-NTU*(1+C)))/(1+C)\n",
+ "NTU= -log(1-epsilon*(1+C))/(1+C)#\n",
+ "# if the existing heat exchanger is to be used as counter flow mode, its NTU will not change, i.e.\n",
+ "epsilon_c= (1-exp(-NTU*(1-C)))/((1-C*exp(-NTU*(1-C))))#\n",
+ "# Exit temperature\n",
+ "# (i) Hot fluid\n",
+ "t_ho=t_hi-epsilon_c*(t_hi-t_ci) # in degree C\n",
+ "print \"Exit temperature for hot fluid = %0.3f degree C\" %t_ho\n",
+ "\n",
+ "#(ii) Cold fluid\n",
+ "t_co= t_ci+epsilon_c*C*(t_hi-t_ci)#\n",
+ "print \"Exit temperature for cold fluid = %0.1f degree C\" %t_co\n",
+ "\n",
+ "# (iii) # If the parallel flow heat exchanger is too long, then body fluid will have common outlet temperature (t)\n",
+ "# From MCp_h*(t_hi-t) = MCp_c*(t-t_ci)\n",
+ "\n",
+ "t=(C*t_hi+t_ci)/(1+C)#\n",
+ "print \"The minimum temperature to which the oil may be cooled by increasing the tube length with parallel flow operation,\"\n",
+ "print \"in degree C = %0.1f\" %t"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Exit temperature for hot fluid = 55.909 degree C\n",
+ "Exit temperature for cold fluid = 53.9 degree C\n",
+ "The minimum temperature to which the oil may be cooled by increasing the tube length with parallel flow operation,\n",
+ "in degree C = 54.5\n"
+ ]
+ }
+ ],
+ "prompt_number": 26
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example No : 8.12 - Page : 261"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "from math import log\n",
+ "# given data\n",
+ "t_hi=78 # in degree C\n",
+ "t_ci=23 # in degree C\n",
+ "t_ho=65 # in degree C\n",
+ "t_co=36 # in degree C\n",
+ "# Energy balance Mh*Cph*(t_hi-t_ho) = Mc*Cpc*(t_co-t_ci)\n",
+ "# C =C_min/C_max = Mh*Cph/( Mc*Cpc)\n",
+ "C= (t_co-t_ci)/(t_hi-t_ho)#\n",
+ "epsilon=(t_hi-t_ho)/(t_hi-t_ci)#\n",
+ "# Formula epsilon = (1-exp(-N*(1+C)))/(1+C)\n",
+ "N= -log(1-epsilon*(1+C))/(1+C)#\n",
+ "# When flow rates of both fluids are doubled , the deat capacity ratio will not change, i.e.\n",
+ "# C=1\n",
+ "# MCp_new =2* MCp_old\n",
+ "# N=U*A/C_min=N/2\n",
+ "N=N/2#\n",
+ "epsilon=(1-exp(-N*(1+C)))/(1+C)#\n",
+ "# exit temperature\n",
+ "t_ho=t_hi-epsilon*(t_hi-t_ci) # in degree C\n",
+ "t_co= t_ci+epsilon*(t_hi-t_ci)#\n",
+ "print \"Exit temperature in degree C is : \",round(t_ho,2),\"and\",round(t_co,2)\n",
+ "# Note: Answer in the book is wrong due to put wrong value of t_ci in second last line"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Exit temperature in degree C is : 70.47 and 30.53\n"
+ ]
+ }
+ ],
+ "prompt_number": 27
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example No : 8.13 - Page : 262"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "from numpy import pi\n",
+ "# given data\n",
+ "t_hi=125 # in degree C\n",
+ "t_ci=22 # in degree C\n",
+ "Mh=21 # in kg/s\n",
+ "Mc=5 # in kg/s\n",
+ "C_ph=2100 # in J/kg K\n",
+ "C_pc=4100 # in J/kg K\n",
+ "Ch=Mh*C_ph # in Js/kg\n",
+ "Cc=Mc*C_pc # in Js/kg\n",
+ "C_min=Cc # in Js/kg\n",
+ "C_max=Ch # in Js/kg\n",
+ "U=325 # in W/m**2 K\n",
+ "d=2.2*10**-2 # in m\n",
+ "l=5 # in m\n",
+ "total_tube=195 # number of total tubes\n",
+ "A=pi*d*l*total_tube\n",
+ "NTU=U*A/C_min#\n",
+ "C=C_min/C_max#\n",
+ "epsilon = (1-exp(-NTU*(1-C)))/(1-C*exp(-NTU*(1-C)))#\n",
+ "t_co= t_ci+epsilon*(t_hi-t_ci)#\n",
+ "t_ho= t_hi-epsilon*Cc/Ch*(t_hi-t_ci)#\n",
+ "print \"Exit temperature in degree C :\",round(t_co,1),\"and\",round(t_ho,2)\n",
+ "# Total heat transfer\n",
+ "q=epsilon*C_min*(t_hi-t_ci)#\n",
+ "print \"Total heat transfer = %0.3f kW\" %(q*10**-3)"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Exit temperature in degree C : 82.8 and 96.73\n",
+ "Total heat transfer = 1246.589 kW\n"
+ ]
+ }
+ ],
+ "prompt_number": 28
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example No : 8.14 - Page : 263"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "from math import exp\n",
+ "# given data\n",
+ "t_hi=94 # in degree C\n",
+ "t_ci=15 # in degree C\n",
+ "Mw=0.36 # in kg/s\n",
+ "Mo=0.153 # in kg/s\n",
+ "C_po=2*10**3 # in J/kg K\n",
+ "C_pw=4.186*10**3 # in J/kg K\n",
+ "U=10.75*10**2 # in W/m**2 K\n",
+ "A=1 # in m**2\n",
+ "Ch=Mo*C_po # in kW/K\n",
+ "Cc=Mw*C_pw # in kW/K\n",
+ "C_min=Ch # in W/K\n",
+ "C_max=Cc # in W/K\n",
+ "C=C_min/C_max#\n",
+ "NTU=U*A/C_min#\n",
+ "# Effectiveness\n",
+ "N=NTU#\n",
+ "epsilon = (1-exp(-N*(1-C)))/(1-C*exp(-N*(1-C)))#\n",
+ "mCp_min=C_min#\n",
+ "q_max= mCp_min*(t_hi-t_ci) # in W\n",
+ "q_actual= epsilon*q_max # in W\n",
+ "print \"Total heat transfer = %0.3f watt\" %q_actual\n",
+ "# Outlet temp. of water\n",
+ "t_co= q_actual/Cc+t_ci # in degree C\n",
+ "print \"Outlet temperature of water = %0.3f degree C\" %t_co\n",
+ "# Outlet temp. of oil\n",
+ "t_ho=t_hi-q_actual/Ch #in degree C\n",
+ "print \"Outlet temperature of oil = %0.3f degree C\" %t_ho\n",
+ "#Note: Evaluation of Cc and Ch in the book is wrong so the Answer in the book is wrong"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Total heat transfer = 22987.488 watt\n",
+ "Outlet temperature of water = 30.254 degree C\n",
+ "Outlet temperature of oil = 18.877 degree C\n"
+ ]
+ }
+ ],
+ "prompt_number": 29
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example No : 8.15 - Page : 265"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "from math import log\n",
+ "# given data\n",
+ "U=1800 # in W/m**2 degree C\n",
+ "h_fg=2200*10**3 # in J/kg\n",
+ "t_ci=20 # in degree C\n",
+ "t_co=90 # in degree C\n",
+ "del_t1=120-20 # in degree C\n",
+ "del_t2=120-90 # in degree C\n",
+ "del_tm=(del_t1-del_t2)/log(del_t1/del_t2) # in degree C\n",
+ "Mc=1000/3600 # in kg/s\n",
+ "Cc=4180 # in kg/s\n",
+ "# Rate of heat transfer\n",
+ "q=Mc*Cc*(t_co-t_ci) # in watt\n",
+ "# Formula q=U*A*del_tm\n",
+ "A=q/(U*del_tm)#\n",
+ "print \"Surface area = %0.3f square meter\" %A\n",
+ "#Rate of condensation of steam\n",
+ "ms=q/h_fg # in kg/sec\n",
+ "print \"Rate of condensation of steam = %0.4f kg/sec\" %ms"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Surface area = 0.777 square meter\n",
+ "Rate of condensation of steam = 0.0369 kg/sec\n"
+ ]
+ }
+ ],
+ "prompt_number": 30
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example No : 8.16 - Page : 265"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "from math import log\n",
+ "# given data\n",
+ "Mh=10000/3600 # in kg/sec\n",
+ "Mc=8000/3600 # in kg/sec\n",
+ "Cph=2095 # in J/kg K\n",
+ "Cpc=4180 # in J/kg K\n",
+ "t_hi=80 # in degree C\n",
+ "t_ci=25 # in degree C\n",
+ "t_ho=50 # in degree C\n",
+ "U=300 # in W/m**2 K\n",
+ "# Energy balance Mh*Cph*(t_hi-t_ho) = Mc*Cpc*(t_co-t_ci)\n",
+ "t_co= Mh*Cph*(t_hi-t_ho)/(Mc*Cpc)+t_ci # in degree C\n",
+ "del_t1=t_hi-t_co #in degree C\n",
+ "del_t2=t_ho-t_ci #in degree C\n",
+ "del_tm= (del_t1-del_t2)/log(del_t1/del_t2)#\n",
+ "q=Mh*Cph*(t_hi-t_ho)#\n",
+ "#Formula q=U*A*del_tm\n",
+ "A=q/(U*del_tm) # in m**2\n",
+ "print \"Surface area of heat exchange = %0.2f square meter\" %A"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Surface area of heat exchange = 19.23 square meter\n"
+ ]
+ }
+ ],
+ "prompt_number": 31
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example No : 8.17 - Page : 266"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "from math import log\n",
+ "from numpy import pi\n",
+ "# given data\n",
+ "ho=5000 # in W/m**2 degree C\n",
+ "rho=988.1 # in kg/m**3\n",
+ "K=0.6474#\n",
+ "D=555*10**-9 # in m**2/s\n",
+ "Pr=3.54#\n",
+ "n=100#\n",
+ "d_i=2.5*10**-2 # in m\n",
+ "ri=d_i/2#\n",
+ "d_o=2.9*10**-2 # in m\n",
+ "ro=d_o/2#\n",
+ "Cp=4174 # in J/kg degree C\n",
+ "Mc=8.333 # in kg/s\n",
+ "Mw=Mc#\n",
+ "t_c1=30 # in degree C\n",
+ "t_c2=70 # in degree C\n",
+ "t_n1=100 # in degree C\n",
+ "t_n2=t_n1 # in degree C\n",
+ "R_fi=0.0002 # in m**2 degree C/W (In the book, there is miss print in this line,they took here R_fi = .002)\n",
+ "# Heat gain by water\n",
+ "Q=Mc*Cp*(t_c2-t_c1)#\n",
+ "# Also Q= U*A*del_tm\n",
+ "del_t1=t_n1-t_c1 #in degree C\n",
+ "del_t2=t_n2-t_c2 #in degree C\n",
+ "del_tm= (del_t1-del_t2)/log(del_t1/del_t2)# \n",
+ "# Mw= 1/4*pi*d_i**2*V*rho*N, here\n",
+ "N=n#\n",
+ "V=4*Mw/(pi*d_i**2*rho*N)#\n",
+ "# Formula Re=V*d_i/v, here\n",
+ "v=D#\n",
+ "Re=V*d_i/v#\n",
+ "# Formula Nu= hi*d_i/K = 0.023*Re**0.8*Pr**0.33\n",
+ "hi= 0.023*Re**0.8*Pr**0.33*K/d_i#\n",
+ "# Formula 1/Vi= 1/hi + R_fi + ri/ro*1/ho\n",
+ "Vi= 1/(1/hi + R_fi + ri/ro*1/ho) # in W/m**2 degree C\n",
+ "#Formula Q = Vi*(N*pi*d_i*L)*del_tm\n",
+ "L= Q/(Vi*(N*pi*d_i)*del_tm)#\n",
+ "print \"Length of the tube bundle = %0.1f m\" %L"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Length of the tube bundle = 4.6 m\n"
+ ]
+ }
+ ],
+ "prompt_number": 32
+ }
+ ],
+ "metadata": {}
+ }
+ ]
+} \ No newline at end of file
diff --git a/Heat_And_Mass_Transfer_by_Vijay_K._Dwivedi/chapter_9.ipynb b/Heat_And_Mass_Transfer_by_Vijay_K._Dwivedi/chapter_9.ipynb
new file mode 100644
index 00000000..a03c60e2
--- /dev/null
+++ b/Heat_And_Mass_Transfer_by_Vijay_K._Dwivedi/chapter_9.ipynb
@@ -0,0 +1,280 @@
+{
+ "metadata": {
+ "name": ""
+ },
+ "nbformat": 3,
+ "nbformat_minor": 0,
+ "worksheets": [
+ {
+ "cells": [
+ {
+ "cell_type": "heading",
+ "level": 1,
+ "metadata": {},
+ "source": [
+ "Chapter 9 - Condensation And Boiling"
+ ]
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example No : 9.1 Page No : 277"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "from numpy import pi\n",
+ "from __future__ import division\n",
+ "# given data\n",
+ "h_fg=2256*10**3 # in J/kg\n",
+ "rho=970 # in kg/m**3\n",
+ "rho_v=0.596 # in kg/m**3\n",
+ "k=0.66 # in W/mK\n",
+ "miu=3.7*10**-4 # in kg/m-s\n",
+ "T_sat=100 # in degree C\n",
+ "T_s=40 # in degree C\n",
+ "L=1.5 # in m\n",
+ "d=0.09 # in m\n",
+ "g=9.81#\n",
+ "# heat transfer coefficient\n",
+ "#h_bar = 1.13*[ rho*g*(rho-rho_v)*h_fg*k**3/(miu*L*(T_sat-T_s))]**(1/4) # in W/m**2k\n",
+ "h_bar= 1.13*(rho*g*(rho-rho_v)*h_fg*k**3/(miu*L*(T_sat-T_s)))**(1/4)#\n",
+ "# heat transfer rate\n",
+ "q=h_bar*pi*d*L*(T_sat-T_s) # in watt\n",
+ "print \"Heat transfer rate = %0.3f kW\" %(q*10**-3)\n",
+ "#rate of condensation\n",
+ "m=q/h_fg # in kg/s\n",
+ "print \"Rate of condenstion = %0.4f kg/s\" %m"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Heat transfer rate = 105.276 kW\n",
+ "Rate of condenstion = 0.0467 kg/s\n"
+ ]
+ }
+ ],
+ "prompt_number": 6
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example No : 9.2 Page No : 278"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "from numpy import pi\n",
+ "from __future__ import division\n",
+ "# given data\n",
+ "h_fg=2310*10**3 # in J/kg\n",
+ "rho=980 # in kg/m**3\n",
+ "k=0.67 # in W/mK\n",
+ "Cp=4.18#\n",
+ "delta=.41*10**-6 # in m**2/s\n",
+ "miu=rho*delta#\n",
+ "T_sat=70 # in degree C\n",
+ "T_s=55 # in degree C\n",
+ "L=1 # in m\n",
+ "d=0.03 # in m\n",
+ "g=9.81#\n",
+ "N=5#\n",
+ "# (a) for Horizontal tube\n",
+ "h_bar = 0.725*(rho**2*g*h_fg*k**3/(N*miu*d*(T_sat-T_s)))**(1/4) # in W/m**2k\n",
+ "# heat transfer rate\n",
+ "q=h_bar*pi*d*L*N**2*(T_sat-T_s) # in watt\n",
+ "print \"Heat transfer rate for horizontal tube = %0.3f kW\" %(q*10**-3)\n",
+ "#rate of condensation\n",
+ "m=q/h_fg # in kg/s\n",
+ "print \"Rate of condenstion = %0.3f kg/s\" %m\n",
+ "\n",
+ "# (b) For Vertical tube\n",
+ "h_bar = 1.13*(rho**2*g*h_fg*k**3/(miu*L*(T_sat-T_s)))**(1/4) # in W/m**2k\n",
+ "# heat transfer rate\n",
+ "q=h_bar*pi*d*L*N**2*(T_sat-T_s) # in watt\n",
+ "print \"Heat transfer rate for vertical tube = %0.3f kW\" %(q*10**-3)\n",
+ "#rate of condensation\n",
+ "m=q/h_fg # in kg/s\n",
+ "print \"Rate of condenstion = %0.3f kg/s\" %m"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Heat transfer rate for horizontal tube = 236.364 kW\n",
+ "Rate of condenstion = 0.102 kg/s\n",
+ "Heat transfer rate for vertical tube = 229.269 kW\n",
+ "Rate of condenstion = 0.099 kg/s\n"
+ ]
+ }
+ ],
+ "prompt_number": 5
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example No : 9.3 Page No : 280"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "from numpy import pi\n",
+ "# given data\n",
+ "h_fg=2392*10**3 # in J/kg\n",
+ "rho=993 # in kg/m**3\n",
+ "k=0.63 # in W/mK\n",
+ "miu=728*10**-6 # in kJ/m-s\n",
+ "N=10#\n",
+ "T_sat=45.7 # in degree C\n",
+ "T_s=25 # in degree C\n",
+ "d=4*10**-3 # in m\n",
+ "g=9.81#\n",
+ "h_bar = 0.725*(rho**2*g*h_fg*k**3/(N*miu*d*(T_sat-T_s)))**(1/4) # in W/m**2k\n",
+ "m=300/(60*60)#\n",
+ "# Formula m=q/h_fg\n",
+ "q=m*h_fg#\n",
+ "print \"Heat transfer rate = %0.3f kW\" %(q*10**-3)\n",
+ "# Formula q=h_bar*pi*d*L*N**2*(T_sat-T_s)\n",
+ "L=q/(h_bar*pi*d*N**2*(T_sat-T_s))#\n",
+ "print \"Length of tube = %0.3f m\" %L\n",
+ "\n",
+ "# Note: Answer in the book is wrong"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Heat transfer rate = 199.333 kW\n",
+ "Length of tube = 1.068 m\n"
+ ]
+ }
+ ],
+ "prompt_number": 4
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example No : 9.4 Page No : 280"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "from math import sin\n",
+ "from numpy import pi\n",
+ "# given data\n",
+ "h_fg=2400*10**3 # in J/kg\n",
+ "rho=993 # in kg/m**3\n",
+ "rho_v=0.0563 # in kg/m**3\n",
+ "t_mf=(40+30)/2 # in degree C\n",
+ "k=0.625 # in W/mK\n",
+ "miu=728*10**-6 # in kJ/m-s\n",
+ "x=0.25#\n",
+ "T_sat=40 # in degree C\n",
+ "T_s=30 # in degree C\n",
+ "g=9.81#\n",
+ "\n",
+ "# (a) Thickness of condensate film\n",
+ "delta=(4*k*(T_sat-T_s)*miu*x/(rho*(rho-rho_v)*g*h_fg))**(1/4) # in meter\n",
+ "print \"Thickness of condensate film = %0.5f mm\" %(delta*10**3)\n",
+ "\n",
+ "#(b) Local value of heat transfer coefficient\n",
+ "hx=k/delta # in W/m**2\n",
+ "L=0.5 # in m\n",
+ "hm=4/3*(L/x)**(1/4)*hx#\n",
+ "print \"Average heat transfer coefficient = %0.1f W/m**2\" %hm\n",
+ "# The heat transfer rate\n",
+ "A=0.5*0.5 # in m**2\n",
+ "q=hm*A*(T_sat-T_s) # in watt\n",
+ "print \"The heat transfer rate = %0.2f kW\" %(q*10**-3)\n",
+ "\n",
+ "# (c) \n",
+ "theta=45 # in degree\n",
+ "h_vertical=hm#\n",
+ "h_inclined=h_vertical*(sin(theta*pi/180))**(1/4)#\n",
+ "print \"Average heat transfer coefficient when plate is inclined at 45 degree = %0.1f W/m**2K\" %h_inclined"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Thickness of condensate film = 0.11832 mm\n",
+ "Average heat transfer coefficient = 8375.5 W/m**2\n",
+ "The heat transfer rate = 20.94 kW\n",
+ "Average heat transfer coefficient when plate is inclined at 45 degree = 7680.4 W/m**2K\n"
+ ]
+ }
+ ],
+ "prompt_number": 14
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example No : 9.5 Page No : 282"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#given correlataion\n",
+ "#h_A=5.56*(det_T)**3\n",
+ "#h_P=h_A*(rho/rho_a)**0.4\n",
+ "del_T=25 # in degree C\n",
+ "h_A=5.56*(del_T)**3 # in W/m**2K\n",
+ "print \"The heat transfer coefficient = %0.3f kW/m**2K\" %(h_A*10**-3)\n",
+ "# and at 20 bar\n",
+ "rho=20#\n",
+ "rho_a=1#\n",
+ "h_P=h_A*(rho/rho_a)**0.4 # in W/m**2\n",
+ "print \"Value of h_P = %0.1f kW/m**2\" %(h_P*10**-3)"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "The heat transfer coefficient = 86.875 kW/m**2K\n",
+ "Value of h_P = 287.9 kW/m**2\n"
+ ]
+ }
+ ],
+ "prompt_number": 3
+ }
+ ],
+ "metadata": {}
+ }
+ ]
+} \ No newline at end of file
diff --git a/Heat_And_Mass_Transfer_by_Vijay_K._Dwivedi/screenshots/1.png b/Heat_And_Mass_Transfer_by_Vijay_K._Dwivedi/screenshots/1.png
new file mode 100644
index 00000000..52d1ad2a
--- /dev/null
+++ b/Heat_And_Mass_Transfer_by_Vijay_K._Dwivedi/screenshots/1.png
Binary files differ
diff --git a/Heat_And_Mass_Transfer_by_Vijay_K._Dwivedi/screenshots/2.png b/Heat_And_Mass_Transfer_by_Vijay_K._Dwivedi/screenshots/2.png
new file mode 100644
index 00000000..e212cfb1
--- /dev/null
+++ b/Heat_And_Mass_Transfer_by_Vijay_K._Dwivedi/screenshots/2.png
Binary files differ
diff --git a/Heat_And_Mass_Transfer_by_Vijay_K._Dwivedi/screenshots/3.png b/Heat_And_Mass_Transfer_by_Vijay_K._Dwivedi/screenshots/3.png
new file mode 100644
index 00000000..d1284fe6
--- /dev/null
+++ b/Heat_And_Mass_Transfer_by_Vijay_K._Dwivedi/screenshots/3.png
Binary files differ
diff --git a/Modern_Electronic_Instrumentation_And_Measurement_Techniques_by_A._D._Helfrick_And_W._D._Cooper/README.txt b/Modern_Electronic_Instrumentation_And_Measurement_Techniques_by_A._D._Helfrick_And_W._D._Cooper/README.txt
new file mode 100644
index 00000000..832a4ac3
--- /dev/null
+++ b/Modern_Electronic_Instrumentation_And_Measurement_Techniques_by_A._D._Helfrick_And_W._D._Cooper/README.txt
@@ -0,0 +1,10 @@
+Contributed By: Aviral Yadav
+Course: btech
+College/Institute/Organization: ABES Engineering College
+Department/Designation: Mechanical Engineering
+Book Title: Modern Electronic Instrumentation And Measurement Techniques
+Author: A. D. Helfrick And W. D. Cooper
+Publisher: Dorling Kindersly Pvt. Ltd. India
+Year of publication: 2009
+Isbn: 9788131708880
+Edition: 1 \ No newline at end of file
diff --git a/Strength_Of_Materials_by_S_S_Bhavikatti/chapter_no.10_1.ipynb b/Strength_Of_Materials_by_S_S_Bhavikatti/chapter_no.10_1.ipynb
new file mode 100644
index 00000000..c10821ba
--- /dev/null
+++ b/Strength_Of_Materials_by_S_S_Bhavikatti/chapter_no.10_1.ipynb
@@ -0,0 +1,277 @@
+{
+ "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",
+ "\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",
+ "\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",
+ "\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.1_1.ipynb b/Strength_Of_Materials_by_S_S_Bhavikatti/chapter_no.1_1.ipynb
new file mode 100644
index 00000000..89760142
--- /dev/null
+++ b/Strength_Of_Materials_by_S_S_Bhavikatti/chapter_no.1_1.ipynb
@@ -0,0 +1,22 @@
+{
+ "metadata": {
+ "name": "chapter no.1.ipynb"
+ },
+ "nbformat": 3,
+ "nbformat_minor": 0,
+ "worksheets": [
+ {
+ "cells": [
+ {
+ "cell_type": "heading",
+ "level": 1,
+ "metadata": {},
+ "source": [
+ "Chapter No.1:Introduction"
+ ]
+ }
+ ],
+ "metadata": {}
+ }
+ ]
+} \ No newline at end of file
diff --git a/Strength_Of_Materials_by_S_S_Bhavikatti/chapter_no.2_1.ipynb b/Strength_Of_Materials_by_S_S_Bhavikatti/chapter_no.2_1.ipynb
new file mode 100644
index 00000000..da0bc7fc
--- /dev/null
+++ b/Strength_Of_Materials_by_S_S_Bhavikatti/chapter_no.2_1.ipynb
@@ -0,0 +1,2700 @@
+{
+ "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",
+ "\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": 2
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 2.2.2,Page No.15"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\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": 6
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 2.2.3,Page No.15"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\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": 23
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 2.2.4,Page No.16"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "\n",
+ "#Initilization of Variables\n",
+ "\n",
+ "d=25 #mm #diameter of steel\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",
+ "E=P*L*(A*dell_l)**-1\n",
+ "\n",
+ "#result\n",
+ "print E"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "203718.327158\n"
+ ]
+ }
+ ],
+ "prompt_number": 24
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 2.2.5,Page No.16"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\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 0x55dab30>"
+ ]
+ },
+ {
+ "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": 5
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 2.2.6,Page No.19"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\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": 10
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 2.2.7,Page No.19"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\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",
+ "\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": 24
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 2.2.11,Page No.23"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\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": 9
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 2.2.12,Page No.23"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\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": []
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 2.2.14,Page No.25"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\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",
+ "\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": 19
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 2.2.19,Page No.29"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\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": 1
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 2.2.20,Page No.31"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\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": 16
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 2.2.21,Page No.32"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\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": 22
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 2.2.22,Page No.34"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\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": 9
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 2.2.23,Page No.35"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\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": 2
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 2.2.24,Page No.36"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\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": 3
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 2.2.25,Page No.36"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\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": [
+ "78.0487804878\n",
+ "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": 19
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 2.2.26,Page No.37"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\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": 8
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 2.2.27,Page No.39"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\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",
+ "p=3 #mm #Pitch\n",
+ "theta=30 #degree\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*"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": []
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 2.2.28,Page No.40"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\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": 9
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 2.2.29,Page No.41"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\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": 15
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 2.2.30,Page No.44"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\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": 23
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 2.2.31,Page No.45"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\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": 26
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 2.2.33,Page No.48"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\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": 14
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 2.2.34,Page No.49"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\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": 24
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 2.2.35,Page No.50"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\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",
+ "\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",
+ "\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",
+ "\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",
+ "\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",
+ "\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",
+ "\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",
+ "\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",
+ "\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",
+ "\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",
+ "\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",
+ "\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",
+ "\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",
+ "\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_1.ipynb b/Strength_Of_Materials_by_S_S_Bhavikatti/chapter_no.3_1.ipynb
new file mode 100644
index 00000000..f136c4ad
--- /dev/null
+++ b/Strength_Of_Materials_by_S_S_Bhavikatti/chapter_no.3_1.ipynb
@@ -0,0 +1,1588 @@
+{
+ "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",
+ "%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 0x5dde2d0>"
+ ]
+ },
+ {
+ "metadata": {},
+ "output_type": "display_data",
+ "png": "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\n",
+ "text": [
+ "<matplotlib.figure.Figure at 0x5df0ab0>"
+ ]
+ }
+ ],
+ "prompt_number": 15
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 3.3.2,Page No.101"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\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 0x5be93d0>"
+ ]
+ },
+ {
+ "metadata": {},
+ "output_type": "display_data",
+ "png": "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\nsrBgEBGRLP8PAOBgfwTG6goAAAAASUVORK5CYII=\n",
+ "text": [
+ "<matplotlib.figure.Figure at 0x5de54f0>"
+ ]
+ }
+ ],
+ "prompt_number": 16
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 3.3.3,Page No.102"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\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": "iVBORw0KGgoAAAANSUhEUgAAAYUAAAEPCAYAAACtCNj2AAAABHNCSVQICAgIfAhkiAAAAAlwSFlz\nAAALEgAACxIB0t1+/AAAH7dJREFUeJzt3X9UVGX+B/D3RUZbUTNSoRy24QsiDKYgKv5YcxAHTYNI\nkRO4SSjZiWObtWW222lpzcB17Wia267HlLRNTXaDrEiJRsVCLdjjtqSggvE7VyJFNGR4vn+w3EQY\nBmNm7vx4v86Z48yde7mfUc+8uc/n3udKQggBIiIiAG5KF0BERPaDoUBERDKGAhERyRgKREQkYygQ\nEZGMoUBERDJFQyE9PR3BwcG49957kZiYiB9//BENDQ3Q6/UICAhAVFQUGhsblSyRiMilKBYKFRUV\n2Lp1K4qKivDvf/8bRqMRu3fvRkZGBvR6PUpLSxEZGYmMjAylSiQicjmKhcKQIUOgUqnQ3NyM1tZW\nNDc34+6770ZOTg6SkpIAAElJSXj//feVKpGIyOUoFgqenp747W9/i1/+8pe4++67MXToUOj1etTX\n18PLywsA4OXlhfr6eqVKJCJyOYqFwtmzZ7FhwwZUVFSgpqYGTU1N2LVrV6d1JEmCJEkKVUhE5Hrc\nldrxl19+ialTp+LOO+8EAMyfPx9ffPEFvL29UVdXB29vb9TW1mLEiBFdtpUkfwBnbVwxEZFj8/Pz\nw5kzZ3pcR7EjhcDAQBQWFuLq1asQQiAvLw9arRbR0dHIzMwEAGRmZiI2Nrabrc9CCOG0jz/84Q82\n29eePQILFzrv53P2fz9+Pn62W3mcPWv+l2nFjhTGjRuHxYsXY8KECXBzc8P48eOxbNkyXL58GfHx\n8di2bRs0Gg327t2rVIlERC5HsVAAgJUrV2LlypWdlnl6eiIvL0+hioiIXBuvaLZDOp1O6RKsip/P\nsTnz53Pmz9ZbkhDC4W6yI0kSHLBsu7R3L7BvX/ufROTcevPdySMFIiKSMRSIiEjGUCAiIhlDgYiI\nZAwFIiKSMRSIiEjGUCAiIhlDgYiIZAwFIiKSMRSIiEjGUCAiIhlDgYiIZAwFIiKSMRSIiEjGUCAi\nIhlDgYiIZAwFIiKSMRSIiEjGUCAiIhlDgYiIZAwFIiKSKRoKjY2NiIuLQ1BQELRaLY4dO4aGhgbo\n9XoEBAQgKioKjY2NSpZIRORSFA2Fp556CnPnzsU333yDkydPIjAwEBkZGdDr9SgtLUVkZCQyMjKU\nLJGIyKVIQgihxI5/+OEHhIaG4ty5c52WBwYG4tChQ/Dy8kJdXR10Oh1OnTrVaR1JkqBQ2U5n715g\n3772P4nIufXmu1OxI4Xy8nIMHz4cycnJGD9+PB577DFcuXIF9fX18PLyAgB4eXmhvr5eqRKJiFyO\nu1I7bm1tRVFRETZv3oyJEydixYoVXYaKJEmCJEndbp+WliY/1+l00Ol0VqyWiMjxGAwGGAyGW9pG\nseGjuro6TJkyBeXl5QCAgoICpKen49y5c/jss8/g7e2N2tpaREREcPjIijh8ROQ67Hr4yNvbGz4+\nPigtLQUA5OXlITg4GNHR0cjMzAQAZGZmIjY2VqkSiYhcjmLDRwCwadMmLFq0CC0tLfDz88P27dth\nNBoRHx+Pbdu2QaPRYC9/hSUishlFQ2HcuHE4ceJEl+V5eXkKVENERLyimYiIZAwFIiKSMRSIiEjG\nUCAiIhlDgYiIZAwFIiKSMRSIiEjGUCAiIhlDgYiIZAwFIiKSMRSIiEjGUCAiIhlDgYiIZAwFIiKS\nMRSIiEjGUCAiIhlDgYiIZAwFIiKSMRSIiEjGUCAiIhlDgYiIZAwFIiKSMRSIiEimeCgYjUaEhoYi\nOjoaANDQ0AC9Xo+AgABERUWhsbFR4QqJiFyH4qGwceNGaLVaSJIEAMjIyIBer0dpaSkiIyORkZGh\ncIVERK5D0VCoqqrCRx99hJSUFAghAAA5OTlISkoCACQlJeH9999XskQiIpeiaCg8/fTTWLduHdzc\nfiqjvr4eXl5eAAAvLy/U19crVR4RkctxV2rH+/fvx4gRIxAaGgqDwdDtOpIkycNKN0tLS5Of63Q6\n6HQ6yxdJROTADAaDye9XUyTRMW5jY7/73e+wc+dOuLu749q1a7h06RLmz5+PEydOwGAwwNvbG7W1\ntYiIiMCpU6c6Fy1JUKhsp7N3L7BvX/ufROTcevPdqdjw0auvvorKykqUl5dj9+7dmDlzJnbu3ImY\nmBhkZmYCADIzMxEbG6tUiURELkfxs486dAwTrVq1CgcPHkRAQADy8/OxatUqhSsjInIdig0f9QWH\njyyHw0dErsOuh4+IiMj+mDz7KCIiotvlHcM8+fn51qmIiIgUYzIU1q1bJz/vCILCwkKsXbsWI0aM\nsH5lRERkcyZDYcKECfJzg8GAV155BVevXsVf//pX3H///TYpjoiIbKvHi9dyc3OxZs0a9O/fHy++\n+KLJISUiInIOJkNh4sSJuHDhAp599llMmTIFAFBUVCS/P378eOtXR0RENmUyFDw8PODh4YGsrCxk\nZWV1ef+zzz6zamFERGR7JkOhY76Mtra2ThPWAcC1a9esWhQRESnD7HUKKSkpnV43NTVh7ty5ViuI\niIiUYzYURo4cidTUVADA999/j6ioKDzyyCNWL4yIiGzPbCisXr0aHh4eePzxx6HX6/HMM88gOTnZ\nFrUREZGNmewpdDSXJUnC5MmTsXr1akycOBGSJOEf//gH5s+fb7MiiYjINkyGwgcffNDpBjchISFo\nbW3F/v37AYChQETkhEyGwo4dO2xYBhER2QPOkkpERDKGAhERyRgKREQk63FCPKD96uWsrCxUVFSg\ntbUVQPsZSS+99JLViyMiItsyGwoPPvgghg4dirCwMNx22222qImIiBRiNhSqq6vxySef2KIWIiJS\nmNmewtSpU3Hy5Elb1EJERAoze6Rw5MgRbN++Hb6+vhgwYACA9p4Cg4KIyPmYDYWPP/7YFnUQEZEd\nMDl8dOnSJQDAkCFDun30VWVlJSIiIhAcHIwxY8bg9ddfBwA0NDRAr9cjICAAUVFRaGxs7PO+iIio\ndyQhhOjujXnz5uHDDz+ERqPpNAcS0D58dO7cuT7tuK6uDnV1dQgJCUFTUxPCwsLw/vvvY/v27Rg2\nbBhWrlyJtWvX4vvvv0dGRkaX/Zsom27R3r3Avn3tfxKRc+vNd6fJ4aMPP/wQAFBRUWHRojp4e3vD\n29sbADBo0CAEBQWhuroaOTk5OHToEAAgKSkJOp2uSygQEZF12MUVzRUVFSguLkZ4eDjq6+vh5eUF\nAPDy8kJ9fb3C1RERuQ6zjWZra2pqwoIFC7Bx40YMHjy403uSJHUZuuqQlpYmP9fpdNDpdFaskojI\n8RgMBhgMhlvaxmRPwRauX7+OBx54APfffz9WrFgBAAgMDITBYIC3tzdqa2sRERGBU6dOddqOPQXL\nYU+ByHX05ruzV8NHHdcqAMCFCxdQXl7e5+KEEFi6dCm0Wq0cCAAQExODzMxMAEBmZiZiY2P7vC8i\nIuods0cKaWlp+Oqrr3D69GmUlpaiuroa8fHxOHr0aJ92XFBQgPvuuw9jx46Vh4jS09MxadIkxMfH\n49tvv4VGo8HevXsxdOjQzkXzSMFieKRA5Dr6dPZRh3/+858oLi5GWFgYAGDkyJG4fPlyn4v71a9+\nhba2tm7fy8vL6/PPJyKiW2d2+GjAgAFwc/tptStXrli1ICIiUo7ZUFi4cCEef/xxNDY24m9/+xsi\nIyORkpJii9qIiMjGzA4fPffcczhw4AAGDx6M0tJSrF69Gnq93ha1ERGRjZkNhfLyckyfPh1RUVEA\ngKtXr6KiogIajcbatRERkY2ZHT6Ki4tDv379ftrAzQ1xcXFWLYqIiJRhNhSMRiP69+8vvx4wYACu\nX79u1aKIiEgZZkNh2LBhyM7Oll9nZ2dj2LBhVi2KiIiUYban8Oabb2LRokVYvnw5AECtVmPnzp1W\nL4yIiGyvx1AwGo148803cezYMfmCtZsnrSMiIufRYyj069cPBQUFEEIwDIiIXIDZ4aOQkBA8+OCD\nWLhwIQYOHAigff6M+fPnW704IiKyLbOhcO3aNXh6eiI/P7/TcoYCEZHzMRsKO3bssEEZRERkD8ye\nklpZWYmHHnoIw4cPx/Dhw7FgwQJUVVXZojYiIrIxs6GQnJyMmJgY1NTUoKamBtHR0UhOTrZFbURE\nZGNmQ+HChQtITk6GSqWCSqXCo48+iu+++84WtRERkY2ZDYU777wTO3fuhNFoRGtrK3bt2sUrmomI\nnJTZUHjrrbewd+9eeHt746677sJ7770n36+ZiIici8mzjwoLCzF58mRoNBp88MEHtqyJiIgUYvJI\n4YknnpCfT5kyxSbFEBGRsswOHwHtF7AREZHzMzl8ZDQa0dDQACGE/PxGnp6eVi+OiIhsy2QoXLp0\nCWFhYQAAIYT8HGif++jcuXPWr46IiGzKZChUVFTYsIzOcnNzsWLFChiNRqSkpOD5559XrBYiIlfS\nq56CLRmNRixfvhy5ubkoKSnBu+++i2+++UbpsoiIXILdhcLx48fh7+8PjUYDlUqFhx9+uNPtQImI\nyHrMzpJqa9XV1fDx8ZFfq9VqHDt2TMGKnN/588A77yhdhfO47z7ghv/CRHaht7MT9RgKra2tCA4O\nxunTpy1RU69IktS79XQ3rKcB4GuVclzDXODXZ5Quwonw75LsRTmAilvbpMdQcHd3R2BgIM6fP497\n7rnn5xd2C0aOHInKykr5dWVlJdRqdZf1hEHYpB6iW3X+PLBqFVBQAKSnA4mJgJvdDdSSqykoAKZP\nN/9LtySE6PHbdfr06SguLsakSZPg4eHRvpEkIScnxzKV3qS1tRWjR4/Gp59+irvvvhuTJk3Cu+++\ni6CgoJ+KliSYKZtIcUePAitWAP36ARs2AJMnK10RubKOUDD33Wm2p7B69WqLFdUb7u7u2Lx5M2bP\nng2j0YilS5d2CgQiRzFtGnDsGLBrFxAXB8yYAWRksN9A9s3skYI94pECOZqmJmDtWmDLFmD5cmDl\nSuB/B95ENtHbIwWzI51ffPEFJk6ciEGDBkGlUsHNzQ1DhgyxWKFErmDQIGD1aqCoCCgtBQID248g\n2tqUroyoM7OhsHz5cvz973/HqFGjcO3aNWzbtg2pqam2qI3I6dxzD/Duu8Du3cDGjcDUqUBhodJV\nEf2kV+dEjBo1CkajEf369UNycjJyc3OtXReRU+voN6SmtvcbFi0CbjjpjkgxZkPBw8MDP/74I8aN\nG4eVK1fitdde43g+kQW4uQGLFwOnTgH/939ASAjwhz8AV64oXRm5MrOh8Pbbb6OtrQ2bN2/GwIED\nUVVVhaysLFvURuQS2G8ge9Krs4+am5tRWVmJ0aNH26Ims3j2ETkzXt9A1mCxs49ycnIQGhqK2bNn\nAwCKi4sRExNjmSqJqAv2G0hJZkMhLS0Nx44dwx133AEACA0N5Q12iKyM/QZSitlQUKlUGDp0aOeN\nOJELkU2w30C2ZvbbPTg4GO+88w5aW1tRVlaGJ598ElOnTrVFbUT0P7y+gWzFbChs2rQJ//nPfzBg\nwAAkJCRgyJAh2LBhgy1qI6KbsN9A1sa5j4gcFOdTolvR27OPzIbC6dOn8ec//xkVFRVobW1t30iS\nkJ+fb7lqbxFDgegnvH8D9YbFQmHs2LF44oknMH78ePTr1699I0lCWFiY5aq9RQwFoq54fQP1xGL3\nU1CpVHjiiScsVhgRWQfv30CWYPIgs6GhARcvXkR0dDTeeOMN1NbWoqGhQX4Qkf3h9Q3UVyaHjzQa\nDSSp+/t5SpKk6AVsHD4i6h32G6iDxXoK9oihQHRr2G+gPs99dOLECdTW1sqvMzMzERMTg9/85jcc\nPiJyMLy+gXrLZCgsW7YMAwYMAAAcPnwYq1atQlJSEoYMGYJly5bZrEAisgz2G6g3TIZCW1sbPD09\nAQB79uzB448/jgULFuCVV15BWVmZzQokIsvifErUE5OhYDQacf36dQBAXl4eIiIi5Pc6LmIjIsfF\n+ZSoOyavU0hISMCMGTMwbNgwDBw4ENOnTwcAlJWVdZk1lYgcF69voBuZPFL4/e9/j/Xr1yM5ORkF\nBQXydNlCCGzatKlPO33uuecQFBSEcePGYf78+fjhhx/k99LT0zFq1CgEBgbiwIEDfdoPEfUO+w3U\nQZFTUg8ePIjIyEi4ublh1apVAICMjAyUlJQgMTERJ06cQHV1NWbNmoXS0tIu92/gKalE1sXrG5yP\nxW7HaQ16vV7+og8PD0dVVRUAIDs7GwkJCVCpVNBoNPD398fx48eVKJHIpbHf4LoUz/633noLc+fO\nBQDU1NRArVbL76nValRXVytVGpHL4/UNrsfshHg/l16vR11dXZflr776KqKjowEAa9asQf/+/ZGY\nmGjy55iaaiMtLU1+rtPpoNPp+lQvEXWvo98wf377/RtCQnj/BkdhMBhgMBgAAN9+27ttFJvmYseO\nHdi6dSs+/fRT3HbbbQDa+woA5D7DnDlz8PLLLyM8PLzTtuwpECmH/QbHZNc9hdzcXKxbtw7Z2dly\nIABATEwMdu/ejZaWFpSXl6OsrAyTJk1SokQiMoH9BudmteGjnjz55JNoaWmBXq8HAEyZMgVbtmyB\nVqtFfHw8tFot3N3dsWXLFpPDR0SkLF7f4Jw4SyoR9RnvF23/7Hr4iIicC+dTch4MBSKyGPYbHB9D\ngYgsjtc3OC6GAhFZBedTckwMBSKyKvYbHAtDgYhsgv0Gx8BQICKbYr/BvjEUiMjm2G+wXwwFIlIM\n+w32h6FARIpjv8F+MBSIyG6w36A8hgIR2RX2G5TFUCAiu8R+gzIYCkRk19hvsC2GAhE5BPYbbIOh\nQEQOg/0G62MoEJHDYb/BehgKROSw2G+wPIYCETk89hssh6FARE6B/QbLYCgQkVNhv6FvGApE5JTY\nb/h5GApE5NTYb7g1iobC+vXr4ebmhoaGBnlZeno6Ro0ahcDAQBw4cEDB6ojIWbDf0HuKhUJlZSUO\nHjyIe+65R15WUlKCPXv2oKSkBLm5uUhNTUUbBwKJyELYbzBPsVB45pln8Kc//anTsuzsbCQkJECl\nUkGj0cDf3x/Hjx9XqEIiclbsN5imSChkZ2dDrVZj7NixnZbX1NRArVbLr9VqNaqrq21dHhG5CPYb\nunK31g/W6/Woq6vrsnzNmjVIT0/v1C8QQpj8OZIkdbs8LS1Nfq7T6aDT6X52rUTkujr6DfPnA2vX\ntvcbli8HVq4EPDyUrq5vDAYDDAYDAODbb3u3jSR6+ka2gq+//hqRkZEYOHAgAKCqqgojR47EsWPH\nsH37dgDAqlWrAABz5szByy+/jPDw8M5FS1KPQUJE9HOdPw+sWgUUFADp6UBiYntwOLqCAmD6dPPf\nnTYPhZv5+vriq6++gqenJ0pKSpCYmIjjx4+juroas2bNwpkzZ7ocLTAUiMjajh4FVqwA+vUDNmwA\nJk9WuqK+6W0oWG34qLdu/MLXarWIj4+HVquFu7s7tmzZYnL4iIjImjr6Dbt2tfcbZswAMjIAHx+l\nK7MuxY8Ufg4eKRCRLTU1tfcbtmxx3H5Db48UnGCkjIjIulzp+gaGAhFRL7nC9Q0MBSKiW+TM1zcw\nFIiIfgZnnU+JoUBE1AfO1m9gKBARWYCz9BsYCkREFuTo/QaGAhGRhTlyv4GhQERkJY7Yb2AoEBFZ\nmSP1GxgKREQ24gj9BoYCEZEN2Xu/gaFARKQAe+03MBSIiBRkb/0GhgIRkR2wl34DQ4GIyE7YQ7+B\noUBEZGeU7DcwFIiI7JQS/QaGAhGRnbNlv4GhQETkAGzVb2AoEBE5EGv3GxgKREQOyFr9BsVCYdOm\nTQgKCsKYMWPw/PPPy8vT09MxatQoBAYG4sCBA0qVR0TkECzdb1AkFD777DPk5OTg5MmT+Prrr/Hs\ns88CAEpKSrBnzx6UlJQgNzcXqampaFP6mm8FGAwGpUuwKn4+x+bMn89RP5sl+w2KhMJf/vIXvPDC\nC1CpVACA4cOHAwCys7ORkJAAlUoFjUYDf39/HD9+XIkSFeWo/zF7i5/PsTnz53P0z2aJfoMioVBW\nVobDhw9j8uTJ0Ol0+PLLLwEANTU1UKvV8npqtRrV1dVKlEhE5LD60m9wt1ZRer0edXV1XZavWbMG\nra2t+P7771FYWIgTJ04gPj4e586d6/bnSJJkrRKJiJxaR79h1y7ghRd6uZFQwJw5c4TBYJBf+/n5\niQsXLoj09HSRnp4uL589e7YoLCzssr2fn58AwAcffPDBxy08/Pz8zH4/W+1IoSexsbHIz8/HjBkz\nUFpaipaWFgwbNgwxMTFITEzEM888g+rqapSVlWHSpEldtj9z5owCVRMROT9FQmHJkiVYsmQJ7r33\nXvTv3x9vv/02AECr1SI+Ph5arRbu7u7YsmULh4+IiGxIEkIIpYsgIiL74HBXNOfm5iIwMBCjRo3C\n2rVrlS7HopYsWQIvLy/ce++9SpdiFZWVlYiIiEBwcDDGjBmD119/XemSLObatWsIDw9HSEgItFot\nXuh1V8+xGI1GhIaGIjo6WulSLE6j0WDs2LEIDQ3tdtja0TU2NiIuLg5BQUHQarUoNHU6kiUax7bS\n2toq/Pz8RHl5uWhpaRHjxo0TJSUlSpdlMYcPHxZFRUVizJgxSpdiFbW1taK4uFgIIcTly5dFQECA\nU/37XblyRQghxPXr10V4eLg4cuSIwhVZ3vr160ViYqKIjo5WuhSL02g04uLFi0qXYTWLFy8W27Zt\nE0K0/x9tbGzsdj2HOlI4fvw4/P39odFooFKp8PDDDyM7O1vpsixm+vTpuOOOO5Quw2q8vb0REhIC\nABg0aBCCgoJQU1OjcFWWM3DgQABAS0sLjEYjPD09Fa7IsqqqqvDRRx8hJSUFwklHnZ31c/3www84\ncuQIlixZAgBwd3fH7bff3u26DhUK1dXV8PHxkV/z4jbHVVFRgeLiYoSHhytdisW0tbUhJCQEXl5e\niIiIgFarVboki3r66aexbt06uLk51NdGr0mShFmzZmHChAnYunWr0uVYVHl5OYYPH47k5GSMHz8e\njz32GJqbm7td16H+dXkmknNoampCXFwcNm7ciEGDBildjsW4ubnhX//6F6qqqnD48GGHnzLhRvv3\n78eIESMQGhrqtL9NHz16FMXFxfj444/xxhtv4MiRI0qXZDGtra0oKipCamoqioqK4OHhgYyMjG7X\ndahQGDlyJCpvmP6vsrKy07QYZP+uX7+OBQsW4Ne//jViY2OVLscqbr/9dsybN0+evsUZfP7558jJ\nyYGvry8SEhKQn5+PxYsXK12WRd11110A2udie+ihh5xq3jW1Wg21Wo2JEycCAOLi4lBUVNTtug4V\nChMmTEBZWRkqKirQ0tKCPXv2ICYmRumyqJeEEFi6dCm0Wi1WrFihdDkW9d///heNjY0AgKtXr+Lg\nwYMIDQ1VuCrLefXVV1FZWYny8nLs3r0bM2fOlK8vcgbNzc24fPkyAODKlSs4cOCAU50F6O3tDR8f\nH5SWlgIA8vLyEBwc3O26ily89nO5u7tj8+bNmD17NoxGI5YuXYqgoCCly7KYhIQEHDp0CBcvXoSP\njw/++Mc/Ijk5WemyLObo0aPYtWuXfNof0H7/jDlz5ihcWd/V1tYiKSkJbW1taGtrwyOPPILIyEil\ny7IaZxvKra+vx0MPPQSgfahl0aJFiIqKUrgqy9q0aRMWLVqElpYW+Pn5Yfv27d2ux4vXiIhI5lDD\nR0REZF0MBSIikjEUiIhIxlAgIiIZQ4GIiGQMBSIikjEUyKlYe9qMDRs24OrVqxbf3wcffOB0U8GT\nY+J1CuRUBg8eLF+Zag2+vr748ssvceedd9pkf0S2xiMFcnpnz57F/fffjwkTJuC+++7D6dOnAQCP\nPvoonnrqKUybNg1+fn7IysoC0D7baWpqKoKCghAVFYV58+YhKysLmzZtQk1NDSIiIjpdrfziiy8i\nJCQEU6ZMwXfffddl/ytWrMDq1asBAJ988glmzJjRZZ0dO3bgySef7LGuG1VUVCAwMBDJyckYPXo0\nFi1ahAMHDmDatGkICAjAiRMn+v4XR67JFjd3ILKVQYMGdVk2c+ZMUVZWJoQQorCwUMycOVMIIURS\nUpKIj48XQghRUlIi/P39hRBCvPfee2Lu3LlCCCHq6urEHXfcIbKysoQQXW/EIkmS2L9/vxBCiJUr\nV4pXXnmly/6bm5tFcHCwyM/PF6NHjxbnzp3rss6OHTvE8uXLe6zrRuXl5cLd3V18/fXXoq2tTYSF\nhYklS5YIIYTIzs4WsbGxZv+uiLrjUHMfEd2qpqYmfPHFF1i4cKG8rKWlBUD7/D0dM7UGBQWhvr4e\nAFBQUID4+HgAkO+NYEr//v0xb948AEBYWBgOHjzYZZ1f/OIX2Lp1K6ZPn46NGzfC19e3x5pN1XUz\nX19feVKz4OBgzJo1CwAwZswYVFRU9LgPIlMYCuTU2traMHToUBQXF3f7fv/+/eXn4n/tNUmSOt0z\nQPTQdlOpVPJzNzc3tLa2drveyZMnMXz48F7fFKq7um42YMCATvvu2KanOojMYU+BnNqQIUPg6+uL\nffv2AWj/gj158mSP20ybNg1ZWVkQQqC+vh6HDh2S3xs8eDAuXbp0SzWcP38er732mnwDl+7m6e8p\neIhsiaFATqW5uRk+Pj7yY8OGDXjnnXewbds2hISEYMyYMcjJyZHXv3EK6I7nCxYsgFqthlarxSOP\nPILx48fL97NdtmwZ5syZIzeab97+5imlhRBISUnB+vXr4e3tjW3btiElJUUewjK1rannN29j6rWz\nTW1NtsNTUom6ceXKFXh4eODixYsIDw/H559/jhEjRihdFpHVsadA1I0HHngAjY2NaGlpwUsvvcRA\nIJfBIwUiIpKxp0BERDKGAhERyRgKREQkYygQEZGMoUBERDKGAhERyf4fYbq4IcfF0QUAAAAASUVO\nRK5CYII=\n",
+ "text": [
+ "<matplotlib.figure.Figure at 0x58f0c10>"
+ ]
+ },
+ {
+ "metadata": {},
+ "output_type": "display_data",
+ "png": "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\ngg==\n",
+ "text": [
+ "<matplotlib.figure.Figure at 0x562f910>"
+ ]
+ }
+ ],
+ "prompt_number": 14
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 3.3.4,Page No.104"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "%matplotlib inline\n",
+ "\n",
+ "#Initilization of Variables\n",
+ "\n",
+ "M_D=120 #KN.m #B.M at Pt D\n",
+ "F_C=40 #KN #Force at Pt C\n",
+ "w1=20 #KN.m\n",
+ "L_DB=1.5 #m #Length of DB\n",
+ "L_CD=1.5 #m #Length of CD\n",
+ "L_AC=3 #m #Length of AC\n",
+ "L=6 #m #Length of Beam\n",
+ "\n",
+ "#Calculations\n",
+ "\n",
+ "#Let R_A And R_B be the Reactions at pt A and B \n",
+ "#R_A+R_B=100\n",
+ "#Now Taking Moment At Pt B We get,M_B\n",
+ "R_A=-(M_D-F_C*(L_CD+L_DB)-w1*L_AC*(L_AC*2**-1+L_CD+L_DB))*L**-1\n",
+ "R_B=100-R_A\n",
+ "\n",
+ "#Shear Force Calculations\n",
+ "\n",
+ "#S.F At Pt B\n",
+ "V_B1=0\n",
+ "V_B2=R_B\n",
+ "\n",
+ "#S.F at Pt D\n",
+ "V_D=V_B2 #KN\n",
+ "\n",
+ "#S.F At Pt C\n",
+ "V_C1=V_D #KN\n",
+ "V_C2=V_C1-F_C\n",
+ "\n",
+ "#S.F At Pt A\n",
+ "V_A1=V_C2-w1*L_AC #KN\n",
+ "V_A2=V_A1+R_A\n",
+ "\n",
+ "#Bending Moment Calculations\n",
+ "\n",
+ "#B.M At Pt B\n",
+ "M_B=0 #KN.m\n",
+ "\n",
+ "#B.M At Pt D\n",
+ "M_D1=M_B-R_B*L_DB #KN.m\n",
+ "M_D2=M_B+M_D-R_B*L_DB\n",
+ "\n",
+ "#B.M At Pt C\n",
+ "M_C=M_D-R_B*(L_CD+L_DB)\n",
+ "\n",
+ "#B.M At Pt A\n",
+ "M_A=M_D-R_B*L+F_C*L_AC+w1*L_AC*L_AC*2**-1\n",
+ "\n",
+ "#Result\n",
+ "print \"The Shear Force and Bending Moment Diagrams are the results\"\n",
+ "\n",
+ "#Plotting the Shear Force Diagram\n",
+ "\n",
+ "X1=[0,0,L_DB,L_DB+L_CD,L_DB+L_CD,L_DB+L_CD+L_AC,L_DB+L_CD+L_AC]\n",
+ "Y1=[V_B1,V_B2,V_D,V_C1,V_C2,V_A1,V_A2]\n",
+ "Z1=[0,0,0,0,0,0,0]\n",
+ "plt.plot(X1,Y1,X1,Z1)\n",
+ "plt.xlabel(\"Length x in m\")\n",
+ "plt.ylabel(\"Shear Force in kN\")\n",
+ "plt.show()\n",
+ "\n",
+ "#Plotting the Bendimg Moment Diagram\n",
+ "\n",
+ "Y2=[M_B,M_D1,M_D2,M_C,M_A]\n",
+ "X2=[0,L_DB,L_DB,L_CD+L_DB,L_AC+L_CD+L_DB]\n",
+ "Z2=[0,0,0,0,0]\n",
+ "plt.plot(X2,Y2,X2,Z2)\n",
+ "plt.xlabel(\"Length in m\")\n",
+ "plt.ylabel(\"Bending Moment in kN.m\")\n",
+ "plt.show()"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "The Shear Force and Bending Moment Diagrams are the results\n"
+ ]
+ },
+ {
+ "metadata": {},
+ "output_type": "display_data",
+ "png": "iVBORw0KGgoAAAANSUhEUgAAAYUAAAEPCAYAAACtCNj2AAAABHNCSVQICAgIfAhkiAAAAAlwSFlz\nAAALEgAACxIB0t1+/AAAHfFJREFUeJzt3X1UlHX+//HXIGiJmpUIHfEsHLyBwRK8SavjCireBlkS\nha66Grm/3CzrW0rndFr3ayat2cm12nO2Y2o3u1myG+S2rrqEt3lTWH5dtsCElvtciQxvFoHr9wfr\nVQg4IDNzMTPPxzlznLnmurjeo57rxfv6fK5rbIZhGAIAQJKf1QUAALoOQgEAYCIUAAAmQgEAYCIU\nAAAmQgEAYLI0FGpqapScnKyoqCjZ7XYdOnRI1dXVSkhI0JAhQzR58mTV1NRYWSIA+BRLQ+HRRx/V\n9OnT9c9//lPHjh1TZGSkMjIylJCQoIKCAk2cOFEZGRlWlggAPsVm1cVr3333nWJjY3Xy5MlmyyMj\nI7V7924FBwersrJScXFx+uKLL6woEQB8jmWdQlFRkYKCgrRgwQKNGDFCDz74oM6ePauqqioFBwdL\nkoKDg1VVVWVViQDgcywLhfr6euXl5Wnx4sXKy8tTYGBgi1NFNptNNpvNogoBwAcZFqmoqDDCwsLM\n13v37jWmT59uREZGGhUVFYZhGEZ5ebkxdOjQFttGREQYknjw4MGDRwceERERDo/NlnUKISEhGjhw\noAoKCiRJu3btUnR0tBITE7V582ZJ0ubNmzVz5swW23711VcyDMNrH7/61a8sr4HPx+fzxc/nzZ/N\nMAx99dVXDo/N/s491HfM+vXrNWfOHNXV1SkiIkIbN25UQ0ODUlJStGHDBoWFhendd9+1skQA8CmW\nhsLw4cN15MiRFst37dplQTUAAK5o7oLi4uKsLsGl+HyezZs/nzd/tvay7DqFzrDZbPLAsgHAUu05\ndtIpAABMhAIAwGTpQHNnLFpkdQVA6/7nf6ShQ62uArg6HhsKo0ZZXQHQ0uuvS4cOEQrwXB4bCnQK\n6Ir27bO6AqBzGFMAAJgIBQCAiVAAAJgIBQCAiVAAAJgIBQCAiVAAAJgIBQCAiVAAAJgIBQCAiVAA\nAJgIBQCAiVAAAJgIBQCAiVAAAJgIBQCAiVAAAJgIBQCAiVAAAJgIBQCAiVAAAJgsD4WGhgbFxsYq\nMTFRklRdXa2EhAQNGTJEkydPVk1NjcUVAoDvsDwU1q1bJ7vdLpvNJknKyMhQQkKCCgoKNHHiRGVk\nZFhcIQD4DktDobS0VB9++KHS0tJkGIYkKTs7W/Pnz5ckzZ8/X++//76VJQKAT7E0FB577DGtWbNG\nfn4/lFFVVaXg4GBJUnBwsKqqqqwqDwB8jmWhsG3bNvXv31+xsbFml3A5m81mnlYCALiev1U7PnDg\ngLKzs/Xhhx/qwoULOnPmjObOnavg4GBVVlYqJCREFRUV6t+/f6vbr1ixwnweFxenuLg49xQOAB4i\nNzdXubm5HdrGZrT1a7ob7d69Wy+88II++OADLVu2TDfeeKOWL1+ujIwM1dTUtBhsttlsbXYXgJXm\nzZMmTWr6E+hq2nPstHz20SWXThOlp6dr586dGjJkiHJycpSenm5xZQDgO7pEp9BRdAroqugU0JV5\nVKcAALAeoQAAMBEKAAAToQAAMBEKAAAToQAAMBEKAAAToQAAMBEKAAAToQAAMBEKAAAToQAAMBEK\nAAAToQAAMBEKAAAToQAAMBEKAAAToQAAMBEKAAAToQAAMBEKAAAToQAAMBEKAAAToQAAMBEKAAAT\noQAAMBEKAAAToQAAMPm39UZ8fHyry202myQpJyfHNRUBACzTZiisWbPGfH4pCA4ePKjnn39e/fv3\n7/SOS0pKNG/ePH3zzTey2WxatGiRHnnkEVVXV+u+++7T119/rbCwML377rvq27dvp/cHAHDMZhiG\n4Wil3NxcPfvsszp//ryefvppTZs2rdM7rqysVGVlpWJiYlRbW6uRI0fq/fff18aNG9WvXz8tW7ZM\nzz//vL799ltlZGQ0L9pmUzvKBtxu3jxp0qSmP4Gupj3HzjY7BUnavn27Vq1ape7du+vpp59u85TS\n1QgJCVFISIgkqVevXoqKilJZWZmys7O1e/duSdL8+fMVFxfXIhQAAK7RZiiMHj1ap06d0hNPPKHb\nbrtNkpSXl2e+P2LECKcVUVxcrKNHj2rMmDGqqqpScHCwJCk4OFhVVVVO2w8A4MraDIXAwEAFBgYq\nMzNTmZmZLd7/6KOPnFJAbW2tZs2apXXr1ql3797N3rPZbOZ4xuVWrFhhPo+Li1NcXJxT6gEAb5Gb\nm6vc3NwObeNwTKGxsVF+fs1nrl64cEHXXHNNhwu83MWLF3XnnXdq2rRpWrp0qSQpMjJSubm5CgkJ\nUUVFheLj4/XFF180L5oxBXRRjCmgK2vPsdPhdQppaWnNXtfW1mr69Omdq0ySYRh64IEHZLfbzUCQ\npKSkJG3evFmStHnzZs2cObPT+wIAtI/DUBgwYIAWL14sSfr22281efJkzZ07t9M73r9/v9566y19\n9NFHio2NVWxsrLZv36709HTt3LlTQ4YMUU5OjtLT0zu9LwBA+7RrSuqTTz6pM2fO6NNPP1V6erqS\nk5PdUVubOH2ErorTR+jKOjUl9dLgss1m09ixY7Vy5UqNHj1aNptNf/rTn3TPPfc4t1oAgOXaDIUP\nPvig2cyfmJgY1dfXa9u2bZJEKACAF2ozFDZt2uTGMgAAXQF3SQUAmAgFwImio6VVq6QDB6yuBLg6\n7Zp91NUw+whdWWam9PDD0pw50sqV0rXXWl0R0KQ9x06HoXDhwgVlZmaquLhY9fX15g9+5plnnFdp\nBxEK6Or+/e+mYDh6VNq4Ubr9dqsrApxwl1RJuuuuu9S3b1+NHDnSKbe2AHxBv37SO+80dQ2zZtE1\nwHM47BSGDRum48ePu6uedqFTgCeha0BX4ZR7H91+++06duyY04oCfM2lruG555q6hieekM6ft7oq\noHUOO4WoqCidOHFC4eHh6tGjR9NGNpulQUGnAE9F1wArOWWgubi4uNXlYWFhV1tXpxEK8HTMUIIV\nOnX66MyZM5KkPn36tPoAcPVmzZL+7/+k0lIpJobrGtB1tNkpzJgxQ3/5y18UFhbW4tvPbDabTp48\n6ZYCW0OnAG9C1wB3ccrpo66IUIC3YawB7kAoAB6GrgGu5JQpqQDch7EGWI1OAeii6BrgbE7rFPbu\n3auNGzdKkk6dOqWioqLOVwfgiugaYAWHncKKFSv06aef6ssvv1RBQYHKysqUkpKi/fv3u6vGFugU\n4GvoGuAMTukU/vznPysrK0uBgYGSpAEDBuj77793ToUA2oWuAe7iMBR69OghP78fVjt79qxLCwLQ\nOu6hBHdwGAr33nuvfvGLX6impka///3vNXHiRKWlpbmjNgCtoGuAK7Vr9tGOHTu0Y8cOSdKUKVOU\nkJDg8sKuhDEFoAljDegIp1y8VlRUpJCQEF373/9t58+fV1VVFTfEA7oIroZGezlloDk5OVndunX7\nYQM/PyUnJ3e+OgBOwVgDnMlhKDQ0NKh79+7m6x49eujixYsuLQpAxzHWAGdwGAr9+vVTVlaW+Tor\nK0v9+vVzaVEArg5dAzrL4ZjCiRMnNGfOHJWXl0uSQkND9eabb2rQoEEuK2r79u1aunSpGhoalJaW\npuXLlzcvmjEFwCHGGnC5Tg80NzQ0aPny5XrhhRfMC9Z69+7t3Cpb2efQoUO1a9cuDRgwQKNHj9Yf\n//hHRUVF/VA0oQC0GzOUcEmnB5q7deumffv2yTAM9e7d2+WBIEmHDx/WoEGDFBYWpoCAAN1///3N\nTl8B6BjGGtAR/o5WiImJ0V133aV7771XPXv2lNSUNvfcc49LCiorK9PAgQPN16GhoTp06JBL9gX4\niktjDZmZTSFB1+B7Tp9u33oOQ+HChQu64YYblJOT02y5q0Lh8q/+bHO9uB+tFyYp3CXlAN7n/0lr\nJa39jdWFwOWKJBV3bBOHobBp06arquVqDRgwQCUlJebrkpIShYaGtljPyGVMAegMxhp8y7590rhx\njn/pdjgltaSkRHfffbeCgoIUFBSkWbNmqbS01ClFtmbUqFEqLCxUcXGx6urqtGXLFiUlJblsf4Cv\nYqwBrXEYCgsWLFBSUpLKy8tVXl6uxMRELViwwGUF+fv76+WXX9aUKVNkt9t13333NZt5BMB5uK4B\nl3N4ncLw4cP1+eefO1zmTkxJBZyP6xq826XTR52+99GNN96oN998Uw0NDaqvr9dbb73FFc2AF6Jr\ngNSOUHj99df17rvvKiQkRDfddJPee+898/uaAXgfxhp8W5unjw4ePKixY8e6u5524fQR4B7MUPIe\nnT599NBDD5nPb7vtNudVBsBj0DX4Hoenj6SmC9gA+CbGGnxLm6HQ0NCg6upqnT592nz+4wcA30LX\n4BvaHFMICwszbzlhGEaz20/YbDadPHnSPRW2gjEFwFqMNXie9o4pOLxOoSsiFADrcV2DZ3HadQoA\n0BrGGrwToQCgUxhr8C6EAoBOo2vwHlcMhfr6eg0dOtRdtQDwcHQNnu+KoeDv76/IyEh9/fXX7qoH\ngIeja/BsDr9kp7q6WtHR0br11lsVGBgoqWn2T3Z2tsuLA+C5Zs2Sxo9vmqEUE8MMJU/hMBRWrlzp\njjoAeCG+G9rzcJ0CALfgugZrOe06hY8//lijR49Wr169FBAQID8/P/Xp08dphQLwDYw1eAaHofDw\nww/rD3/4gwYPHqwLFy5ow4YNWrx4sTtqA+CFmKHUtbXrOoXBgweroaFB3bp104IFC7R9+3ZX1wXA\ni9E1dF0OQyEwMFD/+c9/NHz4cC1btkwvvvgi5/MBOAVdQ9fjMBTeeOMNNTY26uWXX1bPnj1VWlqq\nzMxMd9QGwAfQNXQt7Zp9dO7cOZWUlHSZq5uZfQR4J2YouY7TZh9lZ2crNjZWU6ZMkSQdPXpUSUlJ\nzqkSAH6ErsF6DkNhxYoVOnTokK6//npJUmxsrKVfsAPA+zHWYB2HoRAQEKC+ffs238iPm6sCcK1L\nXcOqVXQN7uTw6B4dHa23335b9fX1Kiws1JIlS3Q7J/oAuElysnTsmFRSQtfgDg5DYf369frHP/6h\nHj16KDU1VX369NFLL73kjtoAQJIUFCRt2ULX4A7c+wiARzl1qmmG0mefMUOpI5w2++jLL7/Ugw8+\nqISEBMXHxys+Pl4TJkzoVHFPPvmkoqKiNHz4cN1zzz367rvvzPdWr16twYMHKzIyUjt27OjUfgB4\nH7oG13LYKdxyyy166KGHNGLECHXr1q1pI5tNI0eOvOqd7ty5UxMnTpSfn5/S09MlSRkZGcrPz9fs\n2bN15MgRlZWVadKkSSooKGgxsE2nAECia+iI9nYKDr9PISAgQA899JDTCpOkhIQE8/mYMWPMK6Sz\nsrKUmpqqgIAAhYWFadCgQTp8+LDGjh3r1P0D8A6XuoatW/m+Bmdp8/RRdXW1Tp8+rcTERL3yyiuq\nqKhQdXW1+XCW119/XdOnT5cklZeXKzQ01HwvNDRUZWVlTtsXAO/EDCXnabNTGDFihGw2m/n6hRde\nMJ/bbDaHF7AlJCSosrKyxfLnnntOiYmJkqRVq1ape/fumj17dps/58c1/NiKFSvM53FxcYqLi7ti\nPQC8G11DS7m5ucrNzZUk/etf7dvGstlHmzZt0muvvaa///3vuuaaayQ1jStIMscZpk6dql//+tca\nM2ZMs20ZUwBwJYw1tNTp2UdHjhxRRUWF+Xrz5s1KSkrSI4880unTR9u3b9eaNWuUlZVlBoIkJSUl\n6Z133lFdXZ2KiopUWFioW2+9tVP7AuB7mKF09doMhUWLFqlHjx6SpD179ig9PV3z589Xnz59tGjR\nok7tdMmSJaqtrVVCQoJiY2PNb3Kz2+1KSUmR3W7XtGnT9Oqrr7Z5+ggAHGGsoePaPH00fPhwff75\n55KkX/7ylwoKCjLP4//4PStw+ghAR23dKi1Z4rtjDZ0+fdTQ0KCLFy9Kknbt2qX4+Hjzvfr6eieV\nCQDuQdfQPm3OPkpNTdX48ePVr18/9ezZU+PGjZMkFRYWtrhrKgB4AmYoOXbF2Ucff/yxKisrNXny\nZAUGBkqSCgoKVFtbqxEjRrityMtx+ghAZ/naDKX2nj7ihngAfJqvjDU47YZ4AODNGGtojlAA4PO4\nruEHhAIA/BddA6EAAM34etdAKABAK3y1ayAUAKANvtg1EAoA4IAvdQ2EAgC0g690DYQCAHSAt3cN\nhAIAdJA3dw2EAgBcJW/sGggFAOgEb+saCAUAcAJv6RoIBQBwEm/oGggFAHAyT+4aCAUAcAFP7RoI\nBQBwIU/rGggFAHAxT+oaCAUAcBNP6BoIBQBwo67eNRAKAGCBrto1EAoAYJGu2DUQCgBgsa7UNRAK\nANAFdJWuwdJQWLt2rfz8/FRdXW0uW716tQYPHqzIyEjt2LHDwuoAwP2s7hr83bu7H5SUlGjnzp36\nyU9+Yi7Lz8/Xli1blJ+fr7KyMk2aNEkFBQXy86OhAeA7LnUNW7c2dQ1z5kgrV0rXXuv6fVt2tH38\n8cf1m9/8ptmyrKwspaamKiAgQGFhYRo0aJAOHz5sUYUAYC0rugZLQiErK0uhoaG65ZZbmi0vLy9X\naGio+To0NFRlZWXuLg8Augx3jzW47PRRQkKCKisrWyxftWqVVq9e3Wy8wDCMNn+OzWZzSX0A4EmS\nk6Xx46WHH27qGjZulG6/3fn7cVko7Ny5s9Xlx48fV1FRkYYPHy5JKi0t1ciRI3Xo0CENGDBAJSUl\n5rqlpaUaMGBAqz9nxYoV5vO4uDjFxcU5rXYA6Io6OtaQm5ur3NxcSdK//tW+fdiMK/2a7gbh4eH6\n9NNPdcMNNyg/P1+zZ8/W4cOHzYHmEydOtOgWbDbbFbsLAPB2p041dQ2ffda+rmHfPmncOMfHTstm\nH13y4wO+3W5XSkqK7Ha7/P399eqrr3L6CABa4aoZSpZ3CleDTgEAftCerqG9nQIXAACAh3PmDCVC\nAQC8hDOuayAUAMCLdLZrIBQAwAtdbdfAQDMAeLmtW6XFi6VTpxwfOwkFAPABp05J/fsTCgCA/2rP\nsZMxBQCAiVAAAJgIBQCAiVAAAJgIBQCAiVAAAJgIBQCAiVAAAJgIBQCAiVAAAJgIBQCAiVAAAJgI\nBQCAiVAAAJgIBQCAiVAAAJgIBQCAiVAAAJgIBQCAiVAAAJgIBQCAybJQWL9+vaKiojRs2DAtX77c\nXL569WoNHjxYkZGR2rFjh1XlAYBPsiQUPvroI2VnZ+vYsWM6fvy4nnjiCUlSfn6+tmzZovz8fG3f\nvl2LFy9WY2OjFSVaKjc31+oSXIrP59m8+fN582drL0tC4Xe/+52eeuopBQQESJKCgoIkSVlZWUpN\nTVVAQIDCwsI0aNAgHT582IoSLeXt/zH5fJ7Nmz+fN3+29rIkFAoLC7Vnzx6NHTtWcXFx+uSTTyRJ\n5eXlCg0NNdcLDQ1VWVmZFSUCgE/yd9UPTkhIUGVlZYvlq1atUn19vb799lsdPHhQR44cUUpKik6e\nPNnqz7HZbK4qEQBwOcMCU6dONXJzc83XERERxqlTp4zVq1cbq1evNpdPmTLFOHjwYIvtIyIiDEk8\nePDgwaMDj4iICIfHZ5d1Clcyc+ZM5eTkaPz48SooKFBdXZ369eunpKQkzZ49W48//rjKyspUWFio\nW2+9tcX2J06csKBqAPB+loTCwoULtXDhQt18883q3r273njjDUmS3W5XSkqK7Ha7/P399eqrr3L6\nCADcyGYYhmF1EQCArsHjrmjevn27IiMjNXjwYD3//PNWl+NUCxcuVHBwsG6++WarS3GJkpISxcfH\nKzo6WsOGDdNvf/tbq0tymgsXLmjMmDGKiYmR3W7XU089ZXVJLtHQ0KDY2FglJiZaXYrThYWF6ZZb\nblFsbGyrp609XU1NjZKTkxUVFSW73a6DBw+2vqIzBo7dpb6+3oiIiDCKioqMuro6Y/jw4UZ+fr7V\nZTnNnj17jLy8PGPYsGFWl+ISFRUVxtGjRw3DMIzvv//eGDJkiFf9+509e9YwDMO4ePGiMWbMGGPv\n3r0WV+R8a9euNWbPnm0kJiZaXYrThYWFGadPn7a6DJeZN2+esWHDBsMwmv6P1tTUtLqeR3UKhw8f\n1qBBgxQWFqaAgADdf//9ysrKsrospxk3bpyuv/56q8twmZCQEMXExEiSevXqpaioKJWXl1tclfP0\n7NlTklRXV6eGhgbdcMMNFlfkXKWlpfrwww+VlpYmw0vPOnvr5/ruu++0d+9eLVy4UJLk7++v6667\nrtV1PSoUysrKNHDgQPM1F7d5ruLiYh09elRjxoyxuhSnaWxsVExMjIKDgxUfHy+73W51SU712GOP\nac2aNfLz86jDRrvZbDZNmjRJo0aN0muvvWZ1OU5VVFSkoKAgLViwQCNGjNCDDz6oc+fOtbquR/3r\nMhPJO9TW1io5OVnr1q1Tr169rC7Hafz8/PTZZ5+ptLRUe/bs8apbJmzbtk39+/dXbGys1/42vX//\nfh09elR//etf9corr2jv3r1Wl+Q09fX1ysvL0+LFi5WXl6fAwEBlZGS0uq5HhcKAAQNUUlJivi4p\nKWl2Wwx0fRcvXtSsWbP0s5/9TDNnzrS6HJe47rrrNGPGDPP2Ld7gwIEDys7OVnh4uFJTU5WTk6N5\n8+ZZXZZT3XTTTZKa7sV29913e9V910JDQxUaGqrRo0dLkpKTk5WXl9fquh4VCqNGjVJhYaGKi4tV\nV1enLVu2KCkpyeqy0E6GYeiBBx6Q3W7X0qVLrS7Hqf7973+rpqZGknT+/Hnt3LlTsbGxFlflPM89\n95xKSkpUVFSkd955RxMmTDCvL/IG586d0/fffy9JOnv2rHbs2OFVswBDQkI0cOBAFRQUSJJ27dql\n6OjoVte15OK1q+Xv76+XX35ZU6ZMUUNDgx544AFFRUVZXZbTpKamavfu3Tp9+rQGDhyo//3f/9WC\nBQusLstp9u/fr7feesuc9ic1fX/G1KlTLa6s8yoqKjR//nw1NjaqsbFRc+fO1cSJE60uy2W87VRu\nVVWV7r77bklNp1rmzJmjyZMnW1yVc61fv15z5sxRXV2dIiIitHHjxlbX4+I1AIDJo04fAQBci1AA\nAJgIBQCAiVAAAJgIBQCAiVAAAJgIBXgVV98246WXXtL58+edvr8PPvjA624FD8/EdQrwKr179zav\nTHWF8PBwffLJJ7rxxhvdsj/A3egU4PW++uorTZs2TaNGjdJPf/pTffnll5Kkn//853r00Ud1xx13\nKCIiQpmZmZKa7na6ePFiRUVFafLkyZoxY4YyMzO1fv16lZeXKz4+vtnVyk8//bRiYmJ022236Ztv\nvmmx/6VLl2rlypWSpL/97W8aP358i3U2bdqkJUuWXLGuHysuLlZkZKQWLFigoUOHas6cOdqxY4fu\nuOMODRkyREeOHOn8Xxx8kzu+3AFwl169erVYNmHCBKOwsNAwDMM4ePCgMWHCBMMwDGP+/PlGSkqK\nYRiGkZ+fbwwaNMgwDMN47733jOnTpxuGYRiVlZXG9ddfb2RmZhqG0fKLWGw2m7Ft2zbDMAxj2bJl\nxrPPPtti/+fOnTOio6ONnJwcY+jQocbJkydbrLNp0ybj4YcfvmJdP1ZUVGT4+/sbx48fNxobG42R\nI0caCxcuNAzDMLKysoyZM2c6/LsCWuNR9z4COqq2tlYff/yx7r33XnNZXV2dpKb791y6U2tUVJSq\nqqokSfv27VNKSookmd+N0Jbu3btrxowZkqSRI0dq586dLda59tpr9dprr2ncuHFat26dwsPDr1hz\nW3VdLjw83LypWXR0tCZNmiRJGjZsmIqLi6+4D6AthAK8WmNjo/r27aujR4+2+n737t3N58Z/h9ds\nNluz7wwwrjDsFhAQYD738/NTfX19q+sdO3ZMQUFB7f5SqNbqulyPHj2a7fvSNleqA3CEMQV4tT59\n+ig8PFxbt26V1HSAPXbs2BW3ueOOO5SZmSnDMFRVVaXdu3eb7/Xu3VtnzpzpUA1ff/21XnzxRfML\nXFq7T/+VggdwJ0IBXuXcuXMaOHCg+XjppZf09ttva8OGDYqJidGwYcOUnZ1trv/jW0Bfej5r1iyF\nhobKbrdr7ty5GjFihPl9tosWLdLUqVPNgebLt7/8ltKGYSgtLU1r165VSEiINmzYoLS0NPMUVlvb\ntvX88m3aeu1tt7aG+zAlFWjF2bNnFRgYqNOnT2vMmDE6cOCA+vfvb3VZgMsxpgC04s4771RNTY3q\n6ur0zDPPEAjwGXQKAAATYwoAABOhAAAwEQoAABOhAAAwEQoAABOhAAAw/X/endCY0sA2EwAAAABJ\nRU5ErkJggg==\n",
+ "text": [
+ "<matplotlib.figure.Figure at 0x55dcbf0>"
+ ]
+ },
+ {
+ "metadata": {},
+ "output_type": "display_data",
+ "png": "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\n",
+ "text": [
+ "<matplotlib.figure.Figure at 0x55ca4b0>"
+ ]
+ }
+ ],
+ "prompt_number": 1
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 3.3.5,Page No.105"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\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 0x5d9c6f0>"
+ ]
+ },
+ {
+ "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 0x5c1ead0>"
+ ]
+ }
+ ],
+ "prompt_number": 13
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 3.3.6,Page No.107"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\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 0x58a6f70>"
+ ]
+ },
+ {
+ "metadata": {},
+ "output_type": "display_data",
+ "png": "iVBORw0KGgoAAAANSUhEUgAAAYUAAAEPCAYAAACtCNj2AAAABHNCSVQICAgIfAhkiAAAAAlwSFlz\nAAALEgAACxIB0t1+/AAAIABJREFUeJzt3XtUVPXaB/DvcNNjoKUEnuNIsECTWzHqEUurMbl4w7so\nlJVmZa4uvtZJrKNhvQqUWmLZMRPtttLTMQUzSUuwRBO8lYr3nEIQLxkJoi8C8/4xZ+9kYJhhZs/s\nPTPfz1qsmM3M7CeWax72/u7nt1V6vV4PIiIiAB5yF0BERMrBpkBERCI2BSIiErEpEBGRiE2BiIhE\nbApERCSSrSmUlZVh0KBBiIyMRFRUFLKzswEAly9fRnx8PHr27ImEhARUVVXJVSIRkdtRyTWnUFlZ\nicrKSsTExKCmpgZ9+vTBxo0bsXr1avj7++Oll15CVlYWfv/9d2RmZspRIhGR25HtSKFr166IiYkB\nAPj6+iI8PBzl5eXIy8vDo48+CgB49NFHsXHjRrlKJCJyO7IdKdxMp9PhgQcewOHDhxEUFITff/8d\nAKDX69G5c2fxMRER2ZfsQXNNTQ3GjRuHpUuXws/Pr8nPVCoVVCqVTJUREbkfLzl3fuPGDYwbNw6T\nJ0/G6NGjAQCBgYGorKxE165dce7cOQQEBDR7XVhYGE6fPu3ocomInFpoaChOnTrV6nNkO1LQ6/V4\n/PHHERERgZkzZ4rbR44ciQ8//BAA8OGHH4rN4manT5+GXq93y6/r1/WYMkWPu+/W45df9HjxxVfh\n76/HoUPy1yb316uvvip7DUr54u+Cv4uWviz5Y1q2plBUVIRPPvkEBQUF0Gg00Gg0yM/PR1paGrZt\n24aePXti+/btSEtLk6tExbl4EYiLA37/Hdi5EwgKAm65BXj1VeCZZwC97OkQETk72U4fDRw4EI2N\njS3+7JtvvnFwNcp3+DAwciSQkgK8/jrgcVM7nz4dWLUKWLvW8HMiImvJHjSTeZs3Aw8+CLz2GrBg\nQdOGoNVq4eUFvPsu8OKLwJUr8tUpN61WK3cJisHfxZ/4u2gbRVyS2lYqlQpOWHab6fXA4sXAkiXA\n+vXAPfe0/vwpU4AuXYBFixxTHxE5F0s+O9kUFOr//g94+mlg/34gL8+QH5hz4QIQGQkUFABRUfav\nkYiciyWfnTx9pEAtBcqWCAhg6ExEtmFTUJjDh4HYWOD++w2njHx92/b66dOBP/4whM5ERG3F00cK\nsnmzIRdYsgR4+GHr32fXLmDCBODoUaBjR+nqIyLnxkzBSbQ1ULYEQ2ciMsam4ASsCZQtwdCZiIwx\naFY4awNlSzB0JiJrsCnIxNZA2RIMnYmorXj6SAZSBcqWYOhMRAJmCgpjj0DZEgydiQhgU1AUewXK\nlmDoTEQAg2bFsGegbAmGzkRkKTYFO3NEoGwJhs5EZAmePrIjRwbKlmDoTOTemCnIRK5A2RIMnYnc\nF5uCDOQMlC3B0JnIfTFodjC5A2VLMHQmotbI2hSmTp2KwMBAREdHi9suX76M+Ph49OzZEwkJCaiq\nqpKxQsspJVC2BENnIjJF1qYwZcoU5OfnN9mWmZmJ+Ph4nDhxAoMHD0ZmZqZM1VmutXsoKxHv6UxE\npsieKeh0OiQlJeHQoUMAgF69emHHjh0IDAxEZWUltFotjh071uQ1SskUlBwoW4KhM5F7seSz08tB\ntVjs/PnzCAwMBAAEBgbi/PnzMlfUspsD5R9+UGZ+YE5WliF0fuwxhs5EZKDoEx0qlQoqlUruMppx\nhkDZEgydiciY4o4UhNNGXbt2xblz5xAQENDi89LT08XvtVottFqtQ+o7fBgYORJISQFef135+YE5\n06cDq1YZQueUFLmrISIpFRYWorCwsE2vUVym8NJLL6FLly6YPXs2MjMzUVVV1SxslitTUNqEslQ4\n6UzkHhQ/vJaSkoIdO3bg0qVLCAwMxGuvvYZRo0YhOTkZv/76K4KDg/Hvf/8bt956a5PXObopOHug\nbAmGzkSuT/FNwVqObApKn1CWijDpXFho+C8RuR5ONNvIVQJlSzB0JiKATcEkZ5pQlsr06UBVFSed\nidwZTx+1wFUDZUswdCZyXcwU2sgdAmVLMHQmck1sCm3gLoGyJRg6E7kmBs0WcqdA2RIMnYncl9s3\nBXcMlC3B0JnIPbn16SN3DpQtwdCZyLUwUzCBgbLlGDoTuQ42hRYwUG4bhs5EroNBsxEGym3H0JnI\nvbhNU2CgbD2GzkTuwy1OHzFQth1DZyLn5/aZAgNlaTF0JnJubt0UGChLj6EzkXNz26CZgbJ9MHQm\ncn0u1xQYKNsXQ2ci1+ZSp48YKDsGQ2ci5yTJ6aNNmzZBo9Hgtttug5+fH/z8/NBRYZ8Eer0h/Hzi\nCSA3lw3B3u69F0hIAF57Te5KiEhqZo8UQkNDsWHDBkRFRcHDwzFnm/Lz8zFz5kw0NDRg2rRpmD17\ndpOf39ztGCjLg6EzkfOR5EhBrVYjMjLSYQ2hoaEBzzzzDPLz81FaWorPPvsMR48ebfG5DJTlw9CZ\nyDV5mXtCVlYWhg4dikGDBsHHxweAodvMmjXLLgUVFxcjLCwMwcHBAIBJkyYhNzcX4eHhTZ53+DAw\nciSQkgK8/jrgoJ5FN5k+HVi1yhA6p6TIXQ0RScFsU5g7dy78/Pxw/fp11NXV2b2g8vJydO/eXXys\nVquxZ8+eZs978EEGynLz8gLefdcQOg8fztCZSMnq6y17ntmmcO7cOWzbts3WeiymUqkset7FCBUm\nfwBM/gBAMIAQe1ZFrXoS6PSW3EUQUTNnAOja9hKzTWHYsGH4+uuvkZiYaF1RbdStWzeUlZWJj8vK\nyqBWq5s9T1/IE9lKwdCZSPmGDgXyYf6PbrNXH/n6+qK2thY+Pj7w9vY2vEilwpUrV6Sp1Eh9fT3u\nvPNOfPvtt/jb3/6Gfv364bPPPmuSKUh15zWSzjvvGIYFt28HLDzYIyIH0emAvn2B336T4Oqjmpoa\nNDY24vr166iurkZ1dbXdGgIAeHl54Z133kFiYiIiIiIwceLEZiEzKQ8nnYmU64MPLM9fXWqimeS1\naxeQnGyYdPbzk7saIgKAGzeAO+4AvvkGiIy004J4Go3GquLItd17LxAfD8yfL3clRCTYvBkIDQUi\nIix7Po8USFIMnYmUZehQIDUVmDzZze+nQPJh6EykDELAXFYG/OUvNjaFkBDTF/6rVCr8/PPPNhVr\nCzYFZauvB/7+d+CllzjpTCSnf/4TqKkB3n7b8NimpnDp0qU/n6RSobGxEevWrcOiRYvQp08frF+/\nXrrK24hNQfkYOhPJ6+aAWcgTbFoQz9/fH/7+/ujcuTM2bdoErVaL3bt346uvvpK1IZBzYOhMJK+2\nBswCk0cKdXV1yMnJwVtvvYWBAwdizpw5CAsLk6JWm/FIwTkwdCaSz80Bs8Cm00dqtRpeXl54/vnn\nERQUJK5JpNfroVKpMHbsWOmqbyM2BefB0JnI8YwDZoFNTeGxxx4T36Qlq1evtqpYKbApOA+GzkSO\nZxwwCyS5JPX69eto3759k22//fYbunTpYl21EmBTcC4MnYkcp6WAWSDJndfGjh2LGzduiI/PnTuH\n+Ph466olt8TQmchxrA2YBWabwpgxY5CcnIyGhgbodDokJiYiMzPTur2R28rKAj78EDhyRO5KiFzb\nihXAk09a/3qLJprfeecd5Ofn45dffsG//vUvDBgwwPo9SoCnj5wTQ2ci+zIVMAtsyhQWL17c5E0+\n+ugjREdHQ6PR2PUezZZgU3BODJ2J7MtUwCyw5LPT5J3Xqqurm1x5NGbMGKhUKtTU1FhXLbk94Z7O\nycnAiBEMnYmkdOMGkJNjCJhtwQXxyOGmTAG6dAEWLZK7EiLXsXEjsHgx8P33pp/DVVJJkTjpTCS9\nliaYjbEpkGIxdCaSjrmAWSDJnAKRPfCezkTSEe7B3FpDsJTZI4ULFy5g5cqV0Ol0qK+vN7xIpUJO\nTo7VO/3888+Rnp6OY8eOoaSkBL179xZ/lpGRgZycHHh6eiI7OxsJCQnNi+aRgkvgpDOR7VqbYDZm\n09VHglGjRuH+++9HfHw8PDw8xDe2RXR0NDZs2ICnnnqqyfbS0lKsW7cOpaWlKC8vR1xcHE6cOCHu\nl1zLzZPODJ2JrGPrBLMxs03h2rVryMrKkmZv/9WrV68Wt+fm5iIlJQXe3t4IDg5GWFgYiouL0b9/\nf0n3T8qRlWUIm6dMYehMZA1bJ5iNmf0TfMSIEdi8ebN0e2xFRUUF1Gq1+FitVqO8vNwh+yZ5BAQA\nr74KPPMMwDOCRG2j0wElJcD48dK9p9kjhbfffhsLFy6Ej48PvL29ARhOH125cqXV18XHx6OysrLZ\n9oULFyIpKcniAk2dqkpPTxe/12q10Gq1Fr8nKcv06cCqVYbQmZPORJYzFzAXFhaisLCwTe9ptilY\nO8G8bdu2Nr+mW7duKCsrEx+fPXsW3bp1a/G5NzcFcm6cdCZqO0smmI3/YJ5vwVLFJk8fHT16FACw\nf//+Fr+kcnMSPnLkSKxduxZ1dXU4c+YMTp48iX79+km2L1IuLq9N1DZSB8wCk5ekPvHEE1i5ciW0\nWm2Lp3AKCgqs3umGDRvw3HPP4dKlS+jUqRM0Gg22bNkCwHB6KScnB15eXli6dCkSExObF81LUl3S\nhQtAVBRQUMDQmcgcSyaYjXGimZwOJ52JzLN0gtkYJ5rJ6XDSmcg8KSeYjfFIgRSHk85EprVlgtkY\njxTIKTF0JjLNXgGzwGxTGDx4sEXbiKSUlQV89BHv6UxkTOoJZmMm5xSuXbuG2tpaXLx4EZcvXxa3\nX7lyhVPGZHcBAcC8eYZJZ4bORAbCBPMXX9hvHyabwooVK7B06VJUVFSgT58+4nY/Pz8888wz9quI\n6L846UzUlD0DZoHZoDk7OxvPPfec/SqwAoNm98HQmcjAloBZINmcwq5du5rcTwEAHnnkEeuqkgCb\ngnvhPZ2JLLsHszmSNIWHH34YP//8M2JiYuDp6SluX7ZsmfWV2YhNwb1w0pnIuglmY5I0hfDwcJSW\nltp8Yx0psSm4H046kzuzdoLZmCRzClFRUTh37pz1VRBJgJPO5M4cETALzB4paLVaHDx4EP369UO7\ndu0ML1KpkJeXZ//qTOCRgnti6EzuSIqAWSDJ6SPhBg03v5lKpcIDDzxgW3U2YFNwXwydyd1IETAL\nJLv6SKfT4dSpU4iLi0NtbS3q6+vRsWNH2yu0EpuC+2LoTO5GioBZIEmm8P7772PChAl46qmnABju\nhjZmzBjbqyOyws2Tzvy7gFydPe7BbI7ZpvDuu+9i586d4pFBz549ceHCBbsXRmQKQ2dyF44MmAVm\nm0K7du3EgBkA6uvrFXV5Krkf4Z7O//gHUF0tdzVE9iHcg9mei9+1xGxTeOCBB7BgwQLU1tZi27Zt\nmDBhApKSkhxRG5FJXF6bXJ29l8g2xWzQ3NDQgFWrVmHr1q0AgMTEREybNk3WowUGzQQwdCbXJmXA\nLFDsPZr/8Y9/4Msvv4SPjw9CQ0OxevVqdOrUCQCQkZGBnJwceHp6Ijs7GwkJCc2LZlOg/+KkM7ki\nqSaYjUly9dGmTZug0Whw2223wc/PD35+fjZfjpqQkIAjR47gxx9/RM+ePZGRkQEAKC0txbp161Ba\nWor8/HzMmDEDjY2NNu2LXBtDZ3JFcgTMArNNYebMmfjwww/x22+/obq6GtXV1bhy5YpNO42Pj4eH\nh2HXsbGxOHv2LAAgNzcXKSkp8Pb2RnBwMMLCwlBcXGzTvsi1MXQmVyNXwCww2xTUajUiIyPFD3Gp\n5eTkYNiwYQCAiooKqNXqJvvmXd7IHCF0fvVVuSshsp1cAbPA5J3XBFlZWRg6dCgGDRoEHx8fAIbz\nUrNmzWr1dfHx8aisrGy2feHCheLVSwsWLICPjw9SU1NNvo+pQDs9PV38XqvVQqvVmvk/IVeWlQX0\n72843H79dcBOf8MQ2Z2U92AuLCwUlyqylNmgOT4+Hn5+foiOjm5ytPCqjX+WrVmzBitXrsS3336L\n9u3bAwAyMzMBAGlpaQCAIUOGYP78+YiNjW1aNINmasHFi8C4cYC/P/DRR4Cvr9wVEbWNvQJmgSRX\nH0VFReHw4cOSFpafn48XXngBO3bsgL+/v7i9tLQUqampKC4uRnl5OeLi4nDq1KlmRwtsCmRKXZ0h\nfN6/H8jLA4KC5K6IyHL//CdQUwO8/bZ93l+Sq4+GDRuGr7/+WrKiAODZZ59FTU0N4uPjodFoMGPG\nDABAREQEkpOTERERgaFDh2L58uWcnqY28fEBVq0yXNvdvz+we7fcFRFZRu6AWWD2SMHX1xe1tbXw\n8fGBt7e34UUqlc1XINmCRwpkic2bDUttv/UW8NBDcldD1Dopl8g2RbHDa7ZiUyBLHTkCJCUBKSkM\noEnZ7DHBbEyyppCbm4vvvvtOvLmO3GsfsSlQWzCAJqWzd8AskCRTSEtLQ3Z2NiIjIxEeHo7s7GzM\nmTNHsiKJ7O322w23Mrz1VmDgQODXX+WuiKgpOSeYjZk9UoiOjsbBgwfh6ekJwLBAXkxMDA4dOuSQ\nAlvCIwWyhl4PLFliOG+7fj1wzz1yV0Qk7T2YzZHkSEGlUqGqqkp8XFVVxSuCyCmpVMALLwArVwKj\nRgGffip3RUTyTzAbMzvRPGfOHPTu3VucGN6xY4c4ZEbkjIYPNyy3nZQElJYygCZ5STnBLAWLguaK\nigqUlJRApVKhX79+6Nq1qyNqM4mnj0gKDKBJbo4KmAU2XX20f//+Jo+Fpwmnjnr37i1FjVZhUyCp\ncAKa5GTvCWZjNjUFDw8PREVFoUuXLi2+sKCgwPYKrcSmQFJiAE1ycGTALLDks9NkprBkyRJ8/vnn\n6NChAyZOnIgxY8bAz89P8iKJ5CYE0L16GQJoTkCTIygtYBaYzRROnz6NdevWYePGjbjjjjvwyiuv\nICYmxlH1tYhHCmQvnIAmR3HEBLMxSS5JDQ0NxahRo5CQkICSkhIcP35csgKJlCYyEtizx7D+zPjx\nhvO9RFLT6YCSEsO/MaUxeaRw+vRprF27Frm5uQgKCsLEiRMxYsQI/EUBI3c8UiB7YwBN9uTogFlg\nc9AcHR2N0aNHo2PHjk3e0JI7r9kTmwI5AgNosgc5AmaBTUHzvHnzxMtPa3gMTW6IATTZg1IDZgGX\nziayAANokoocAbOA91MgkhAnoMlWjp5gNibJ1UdEZMAluMlWSloi2xQ2BaI24D2gyVpKuQezOWZX\nSV28eHGTQw6VSoVOnTqhT58+Vg+xzZ07F3l5eVCpVOjSpQvWrFmD7t27AwAyMjKQk5MDT09PZGdn\nIyEhwap9ENkLA2iyhtIDZoHZTCE1NRV79+5FUlIS9Ho9Nm/ejOjoaPzyyy8YP348Zs+e3eadVldX\ni0tmLFu2DD/++CM++OADlJaWIjU1FSUlJSgvL0dcXBxOnDgBD6NUj5kCKQUDaLKUnAGzQJJMoays\nDPv378fixYuxZMkS7Nu3DxcuXMCOHTuwZs0aqwq7eQ2lmpoa+Pv7AzDcCzolJQXe3t4IDg5GWFgY\niouLrdoHkSNwAposoeQJZmNmm8LFixfh4+MjPvb29sb58+fRoUMHtG/f3uodv/LKKwgKCsKaNWvE\nez5XVFRArVaLz1Gr1SgvL7d6H0SOwACazHGGgFlgNlN46KGHEBsbi9GjR0Ov12PTpk1ITU3F1atX\nEdHKybH4+HhUVlY2275w4UIkJSVhwYIFWLBgATIzMzFz5kysXr26xfcxdevP9PR08XutViveGY5I\nDkIAvWSJIYDmBDQJhID5m28cv+/CwkIUFha26TUWzSmUlJSgqKgIKpUKAwYMQN++fa2tsZlff/0V\nw4YNw+HDh8XbfKalpQEAhgwZgvnz5yM2NrZp0cwUSME2bwamTGEATQYbNxqWSvn+e7krkXB4raGh\nAZWVlaivrxf/cg+yYYWwkydPokePHgAMQXNxcTE+/vhjMWguLi4Wg+ZTp041O1pgUyClYwBNAiUE\nzAJJmsKyZcswf/58BAQEwNPTU9x+6NAhqwsbP348jh8/Dk9PT4SGhuK9995DQEAAAMPppZycHHh5\neWHp0qVITExsXjSbAjkBTkCT3BPMxiRpCqGhoSguLjZ5W045sCmQs+AS3O5NriWyTZHkktSgoCBx\n6WwiahtOQLsvZ5lgNmb26qOQkBAMGjQIw4cPFy9Nlft+CkTOhBPQ7slZJpiNmW0KQUFBCAoKQl1d\nHerq6sSb7BBR2wwfDhQUGALo0lIG0K5uxQrnO0oAuHQ2kcMxgHZ9SguYBTYFzc8//zyWLl2KpKSk\nFt84Ly9PmiqtwKZAzo4BtGtTWsAssKkp7N27F3379jU5DSfnBDGbArkC3gPaNcl5D2ZzeOc1IifA\nCWjXoqQJZmOWfHaaDJqjo6NbfeOffvrJ+sqISMQA2rU4a8AsMHmkoNPpAADLly8HAEyePBl6vR6f\nfvopACArK8sxFbaARwrkihhAOz+lBswCSU4fxcTE4ODBg022aTQaHDhwwPYKrcSmQK6KAbRzU2rA\nLJBkolmv12Pnzp3i46KiIn4gE9kJJ6Cdl7NOMBszO7yWk5ODKVOm4I8//gAA3HrrrSbvfUBEtuME\ntHNy1glmYxZffSQ0hU6dOtm1IEvw9BG5Cy7B7TyUtES2KZJkCtevX8f69euh0+lQX18vvvG8efOk\nq7SN2BTInTCAVj6lB8wCSTKFUaNGIS8vD97e3vD19YWvry9uueUWyYokotbxHtDK50z3YDbH7JFC\nVFQUDh8+7Kh6LMIjBXJHnIBWJiVPMBuT5Ejh3nvv5aAakQIIAfTKlYYA+r8jQyQzVwmYBWaPFMLD\nw3Hq1CmEhISgXbt2hhfJPNHMIwVydwyglcMZAmaBJEGzMNlsLDg42Nq6bMamQMQAWgmcJWAWSHL6\nKDg4GGVlZSgoKEBwcDBuueUWyT6QFy9eDA8PD1y+fFnclpGRgR49eqBXr17YunWrJPshckUMoOXn\nSgGzwGxTSE9PxxtvvIGMjAwAQF1dHR5++GGbd1xWVoZt27bhjjvuELeVlpZi3bp1KC0tRX5+PmbM\nmIHGxkab90XkqjgBLR9XmWA2ZrYpbNiwAbm5ueJlqN26dUN1dbXNO541axbeeOONJttyc3ORkpIC\nb29vBAcHIywsDMXFxTbvi8iVMYCWh6sFzAKzTaFdu3bwuCnFunr1qs07zc3NhVqtxl133dVke0VF\nBdRqtfhYrVajvLzc5v0RuQNhCe65c4GXXwZ4kG1fzr5Etilm1z6aMGECnnrqKVRVVeH9999HTk4O\npk2bZvaN4+PjUVlZ2Wz7ggULkJGR0SQvaC2jUKlULW5PT08Xv9dqtbLeCY5IKSIjgT17DAH0uHHA\nxx8zgLYHnQ4oKQG++ELuSlpXWFho8u6Zpli09tHWrVvFD/HExETEx8dbVSAAHD58GIMHD0aHDh0A\nAGfPnkW3bt2wZ88ecaG9tLQ0AMCQIUMwf/58xMbGNi2aVx8RtYpLcNuX0pfINkXy23FevHgR/v7+\nJv96t0ZISAj27duHzp07o7S0FKmpqSguLkZ5eTni4uJw6tSpZvtjUyAyjxPQ9uFME8zGbLokdffu\n3dBqtRg7diwOHDiAqKgoREdHIzAwEFu2bJG0SEFERASSk5MRERGBoUOHYvny5ZI2ICJ3wgDaPlw1\nYBaYPFLo06cPMjIy8Mcff+CJJ55Afn4++vfvj2PHjmHSpEnN7sbmSDxSIGobYQJ60iTgf/+XE9C2\ncKYJZmM2nT66+Tac4eHhOHr0qPgz3o6TyPkIE9BdujCAtpazTTAbs+n00c2nbdq3by9dVUQkC2EC\n+rbbOAFtLVecYDZm8kjB09NTvELo2rVr+MtNv4Vr166JN9yRA48UiKzHANo6zhwwCyz57DQ5p9DQ\n0CB5QUQkP94D2jquHjALzA6vEZFrEiagk5IMQTQD6Na56gSzsTbNKSgFTx8RSYcBtHnOHjALJFk6\nm4hcGwNo89whYBawKRARl+BuhasukW0KmwIRAeAEtCnuEjALGDQTURMMoJtyl4BZwKCZiFrEANp1\nAmYBg2YishoDaPcKmAVsCkRkkjsH0O4WMAvYFIioVe4aQLtbwCxg0ExEFnG3ANrdAmYBg2YiahN3\nCKBdLWAWMGgmIskJAXTnzq4bQLtjwCxgUyCiNvPxMXxwPvKIYeltVwqg3TVgFrApEJFVVCpg1izg\n/fddK4B214BZIEtTSE9Ph1qthkajgUajwZYtW8SfZWRkoEePHujVqxe2bt0qR3lE1AZCAD13LvDy\ny0Bjo9wV2cZdA2aBLEHz/Pnz4efnh1mzZjXZXlpaitTUVJSUlKC8vBxxcXE4ceIEPIwucWDQTKQ8\nrhBAu2rALFB00NxSYbm5uUhJSYG3tzeCg4MRFhaG4uJiGaojorZyhQDanQNmgWxNYdmyZbj77rvx\n+OOPo6qqCgBQUVEBtVotPketVqO8vFyuEomojZw5gHb3gFlgt+G1+Ph4VFZWNtu+YMECPP3005g3\nbx4AYO7cuXjhhRewatWqFt9HpVK1uD09PV38XqvVQqvV2lwzEdlOCKDvvNO57gHtigFzYWEhCgsL\n2/Qa2YfXdDodkpKScOjQIWRmZgIA0tLSAABDhgzB/PnzERsb2+Q1zBSInMORI4YJ6EmTlD8BPXQo\nkJpqWOfJVSk2Uzh37pz4/YYNGxAdHQ0AGDlyJNauXYu6ujqcOXMGJ0+eRL9+/eQokYgkEBkJ7NkD\n7NxpCKFrauSuqGU6HVBSAowfL3cl8pNl7aPZs2fj4MGDUKlUCAkJwYoVKwAAERERSE5ORkREBLy8\nvLB8+XKTp4+IyDkIAfTTTxsC6Lw8IChI7qqaYsD8J9lPH1mDp4+InI9eb8gXFi8G/vMfQxCtBDdu\nAHfcYWhcrpQntESxp4+IyP0odQLaFQNmW3DpbCJyKKUtwe3uE8zGePqIiGShhAloV59gNsbTR0Sk\nWEqYgGbA3BybAhHJRs4JaE4wt4xNgYhkJVcAzYC5ZQyaiUgRHB1AM2BuGYNmIlIURwTQ7hYwCxg0\nE5HTcUSyPgBUAAAI10lEQVQAzYDZNDYFIlIcewbQDJhbx6ZARIpkrwCaAXPrGDQTkaJJHUAzYG4d\ng2YicgpSBNDuGjALGDQTkcuQIoBmwGwemwIROQ1bAmgGzJZhUyAip2JtAM2A2TIMmonIKbU1gGbA\nbBkGzUTk1CwJoN09YBYoOmhetmwZwsPDERUVhdmzZ4vbMzIy0KNHD/Tq1Qtbt26VqzwichKWBNAM\nmNtAL4Pt27fr4+Li9HV1dXq9Xq+/cOGCXq/X648cOaK/++679XV1dfozZ87oQ0ND9Q0NDc1eL1PZ\nilRQUCB3CYrB38Wf3PF30dio1y9erNf/7W96/a5df27ftq1A/9e/6vVHjshXm1JY8tkpy5HCe++9\nhzlz5sDb2xsAcPvttwMAcnNzkZKSAm9vbwQHByMsLAzFxcVylOg0CgsL5S5BMfi7+JM7/i5MBdAf\nfFDIgLkNZGkKJ0+exHfffYf+/ftDq9Vi7969AICKigqo1WrxeWq1GuXl5XKUSEROSgig584FXn4Z\n2LuXAXNb2O3qo/j4eFRWVjbbvmDBAtTX1+P333/HDz/8gJKSEiQnJ+Pnn39u8X1UKpW9SiQiFxUZ\nCezZYwigy8uB8ePlrsiJOOA0VjNDhgzRFxYWio9DQ0P1Fy9e1GdkZOgzMjLE7YmJifoffvih2etD\nQ0P1APjFL37xi19t+AoNDTX7+SzLnMLo0aOxfft2PPDAAzhx4gTq6urg7++PkSNHIjU1FbNmzUJ5\neTlOnjyJfv36NXv9qVOnZKiaiMj1ydIUpk6diqlTpyI6Oho+Pj746KOPAAARERFITk5GREQEvLy8\nsHz5cp4+IiJyIKccXiMiIvtwurWP8vPz0atXL/To0QNZWVlylyObqVOnIjAwENHR0XKXIruysjIM\nGjQIkZGRiIqKQnZ2ttwlyeb69euIjY1FTEwMIiIiMGfOHLlLkl1DQwM0Gg2SkpLkLkVWwcHBuOuu\nu6DRaFo8LS9wqiOFhoYG3Hnnnfjmm2/QrVs3/P3vf8dnn32G8PBwuUtzuO+//x6+vr545JFHcOjQ\nIbnLkVVlZSUqKysRExODmpoa9OnTBxs3bnTLfxcAUFtbiw4dOqC+vh4DBw7EokWLMHDgQLnLks2S\nJUuwb98+VFdXIy8vT+5yZBMSEoJ9+/ahc+fOrT7PqY4UiouLERYWhuDgYHh7e2PSpEnIzc2VuyxZ\n3HfffbjtttvkLkMRunbtipiYGACAr68vwsPDUVFRIXNV8unQoQMAoK6uDg0NDWY/BFzZ2bNn8dVX\nX2HatGlcLw2w6HfgVE2hvLwc3bt3Fx9zuI2M6XQ6HDhwALGxsXKXIpvGxkbExMQgMDAQgwYNQoQb\nj/L+z//8D95880142HL/ThehUqkQFxeHvn37YuXKlSaf51S/KV6JRK2pqanB+PHjsXTpUvhac69G\nF+Hh4YGDBw/i7Nmz+O6779xyyQsA+PLLLxEQEACNRsOjBABFRUU4cOAAtmzZgnfffRfff/99i89z\nqqbQrVs3lJWViY/LysqaLItB7uvGjRsYN24cHn74YYwePVruchShU6dOGD58uLiMjLvZtWsX8vLy\nEBISgpSUFGzfvh2PPPKI3GXJ5q9//SsAw1pzY8aMMbmunFM1hb59++LkyZPQ6XSoq6vDunXrMHLk\nSLnLIpnp9Xo8/vjjiIiIwMyZM+UuR1aXLl1CVVUVAODatWvYtm0bNBqNzFXJY+HChSgrK8OZM2ew\ndu1aPPjgg+JMlLupra1FdXU1AODq1avYunWrySsXnaopeHl54Z133kFiYiIiIiIwceJEt73CJCUl\nBffeey9OnDiB7t27Y/Xq1XKXJJuioiJ88sknKCgogEajgUajQX5+vtxlyeLcuXN48MEHERMTg9jY\nWCQlJWHw4MFyl6UI7nz6+fz587jvvvvEfxcjRoxAQkJCi891qktSiYjIvpzqSIGIiOyLTYGIiERs\nCkREJGJTICIiEZsCERGJ2BSIiEjEpkAuzd7LXQQHB+Py5cvNtu/YsQO7d+9u8TWbNm1y62XfSdlk\nufMakaPYe2BJpVK1uK5OQUEB/Pz8cM899zT7WVJSktuv7U/KxSMFcjunT5/G0KFD0bdvX9x///04\nfvw4AOCxxx7D888/jwEDBiA0NBTr168HYFh1dMaMGQgPD0dCQgKGDx8u/gwAli1bhj59+uCuu+7C\n8ePHodPpsGLFCrz11lvQaDTYuXNnk/2vWbMGzz77bKv7vJlOp0OvXr0wZcoU3HnnnXjooYewdetW\nDBgwAD179kRJSYm9flXkhtgUyO08+eSTWLZsGfbu3Ys333wTM2bMEH9WWVmJoqIifPnll0hLSwMA\nfPHFF/jll19w9OhRfPzxx9i9e3eTI5Dbb78d+/btw9NPP41FixYhODgY06dPx6xZs3DgwIFmN7gx\nPnppaZ/GTp8+jRdffBHHjh3D8ePHsW7dOhQVFWHRokVYuHChVL8aIp4+IvdSU1OD3bt3Y8KECeK2\nuro6AIYPa2GF1fDwcJw/fx4AsHPnTiQnJwOAeI+Cm40dOxYA0Lt3b3zxxRfidktWkDG1T2MhISGI\njIwEAERGRiIuLg4AEBUVBZ1OZ3Y/RJZiUyC30tjYiFtvvRUHDhxo8ec+Pj7i98KHunFuYPxh365d\nOwCAp6cn6uvr21xTS/s0JuwDMNwvQXiNh4eHVfskMoWnj8itdOzYESEhIfjPf/4DwPAh/NNPP7X6\nmgEDBmD9+vXQ6/U4f/48duzYYXY/fn5+4lLFxrgGJSkZmwK5tNraWnTv3l38evvtt/Hpp59i1apV\niImJQVRUVJObud98vl/4fty4cVCr1YiIiMDkyZPRu3dvdOrUqdm+VCqV+JqkpCRs2LABGo0GRUVF\nJp9nap8tvbepx+68JDRJj0tnE1ng6tWruOWWW/Dbb78hNjYWu3btQkBAgNxlEUmOmQKRBUaMGIGq\nqirU1dVh3rx5bAjksnikQEREImYKREQkYlMgIiIRmwIREYnYFIiISMSmQEREIjYFIiIS/T+6l7ug\nkeDZfAAAAABJRU5ErkJggg==\n",
+ "text": [
+ "<matplotlib.figure.Figure at 0x567bcf0>"
+ ]
+ }
+ ],
+ "prompt_number": 28
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 3.3.7,Page No.109"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\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\nXWqXt4j8g8YwRL4WEwN5efDee5CeDhcumE4k4l1UGCJXCQmB7dvhBz+AQYOgpMR0IhHvocIQ+ZaA\nAMjJgQcegAED4OBB04lEvIMKQ+QGHA6YMweefRYyMmD9etOJRMzToLdIHVJTYe9eSEuDv/8dHn0U\n/PRrlrRQ+qcv4kJ8POTnw759kJkJFRWmE4mYocIQcUNoKLz5JrRpA0OGQFmZ6UQinqfCEHFTYCCs\nXQsTJkD//nDkiOlEIp6lwhCpB4cD5s6F5cth1CjYtMl0IhHP0aC3SANkZECXLjBmjD0YPm+eXSYi\nzZmOMEQaKCnJHgzfsgWmTIHLl00nEmlaKgyRm9C5sz176quvYNgw+OQT04lEmo4KQ+QmtW4NGzbY\nhdGvH/ztb6YTiTQNrx3DiIqKIjg4GH9/fwICAjh8+DDnzp3jxz/+MR9//DFRUVG89NJLtGvXznRU\nEfz8YMEC6NEDhg61Z1ONHm06lUjj8tojDIfDQW5uLgUFBRw+fBiAxYsXM3z4cI4fP86wYcNYvHix\n4ZQi15o0CbZts9ehWrYMfHRrFpEb8trCAK7bzGPbtm1MnToVgKlTp7JlyxYTsUTqNGAAHDoEa9bA\nzJlw5YrpRCKNw2sLw+FwcNddd9GnTx9WrVoFwJkzZwgLCwMgLCyMM2fOmIwoUqsuXexVbsvLYeRI\nOHfOdCKRm+e1YxgHDx6kU6dOnD17luHDhxMbG3vN4w6HA0ctE9/nz5/vvJ2cnExycnITJhW5sbZt\n7Sm3jzxiXxn+2mvQvbvpVCK23NxccnNz6/Uan9jT+ze/+Q1BQUGsWrWK3NxcOnbsSHl5OSkpKfz9\n73+/5rm+vKd3fDy89JK2aG2O/vu/4T/+w96Cd+hQ02lErufOZ6dXnpK6dOkSFy9eBKCiooKdO3eS\nkJBAeno669atA2DdunWMHTvWZEwRt2Vn21Nvs7LgmWdMpxFpGK88JXXmzBkyMjIAqKqqYtKkSYwY\nMYI+ffqQmZnJ6tWrndNqRXxFSgocOAB33w2FhbB0Kfj7m04l4j6fOCVVHzolJd7u88/tFW8DA+1T\nVMHBphOJ+PApKZHmLCQEtm+HH/wABg2CkhLTiUTco8IQMSAgAHJy7Av8Bgywp+CKeDsVhoghDgfM\nmQPPPmsvl75+velEInXzykFvkZYkNRX27oW0NHtvjUcftdemEvE2+mcp4gXi4+29Nfbtg8xMqKgw\nnUjkeioMES8RGgpvvglt2sCQIVBWZjqRyLVUGCJeJDDQXhp9wgR7OZEjR0wnEvkHFYaIl3E4YO5c\nWL4cRo2CV14xnUjEpkFvES+VkWGvejtmDBw7BvPm2WUiYoqOMES8WFKSPRi+ZQtMmQKXL5tOJC2Z\nCkPEy3XubM+e+uore9/wTz4xnUhaKhWGiA9o3dpe7XbYMOjXD/72N9OJpCVSYYj4CD8/WLAAFi60\n99R4/XXTiaSlUWGI+JhJk2DbNnsdqmXLwEcXZxYfpMIQ8UEDBsChQ7BmDcycCVeumE4kLYEKQ8RH\ndelir3JbXg4jR8K5c6YTSXOnwhDxYW3b2lNuk5LsK8OPHzedSJozFYaIj/P3hyVL4OGHYfBg2LPH\ndCJprlQYIs1EdrY99TYrC555xnQaaY5UGCLNSEoKHDgAS5fCQw9BdbXpRNKc1LqWVEpKyg3vd3y9\nmM0eHfeKeKWYGMjLs1e8TU+HF1+E4GDTqaQ5qLUwfvvb3zpvf1MSeXl5PPHEE3To0KHpk4lIg4WE\nwPbt9hawgwbBq69CVJTpVOLrai2MPn36OG/n5uaycOFCvvzyS1auXElqaqpHwolIwwUEQE4OrFhh\nX7fxyit2eYg0VJ3Lm+/YsYPHHnuMW265hV/+8pe1nqYSEe/kcNhHGTEx9nLpS5fC5MmmU4mvqrUw\n7rzzTs6ePcu//du/MWDAAACOHj3qfDwpKanp04lIo0hNhb17IS0NPvjAXo/KT1NepJ4clnXjlWiS\nk5PtJ9SyY8vevXubLNTNcDgc1PJH8nrx8fDSS/b/ijSFs2ftI42wMHjuOXv/cBFw77Oz1sL4Rk1N\nDX7f+lXk8uXLfOc737n5hE1AhSFSt6++ghkz4L337EUMw8NNJxJv4M5np8uD0uzs7Gu+/+KLL/jR\nj350c8lExJjAQFi71p52278/HDliOpH4CpeFER4ezuzZswH4/PPPGTFiBJM1aibi0xwOmDsXli+H\nUaPsGVQirrg8JQXwi1/8ggsXLnDkyBHmzp3L+PHjPZGtQXRKSqR+CgrsC/z++Z9h3jy7TKTlualT\nUps2bWLTpk386U9/on///uTn55OYmIjD4eBPf/pTo4cVETMSEyE/3171dsoUuHzZdCLxVrUeYUyb\nNu2aGVKWZV3z/Zo1a5o+XQPoCEOkYS5dgmnToKwMNm8GLejQsjTKLClfo8IQabiaGpg/H9avt2dQ\nJSSYTiSe0iizpESk5fDzgwUL7Av7hg6F1183nUi8iQpDRK4zaZJ9hPHAA7BsGfjoQbs0Mp8rjB07\ndhAbG0tMTAxPPPGE6TgizdaAAXDoEKxZAzNnwpUrphOJaS7HMC5fvsymTZsoKSmhqqrKfpHDwa9+\n9SuPBLxadXU1PXr0YPfu3YSHh3PnnXfy4osv0rNnT+dzNIYh0rguXoSJE6Giwr5eo31704mkKTTK\nGMaYMWPYtm0bAQEBBAUFERQURBtDC9AcPnyY6OhooqKiCAgI4N5772Xr1q1Gsoi0FG3b2lNuk5Ls\nK8OPHzedSEypc3lzgLKyMv785z97IotLZWVlREZGOr+PiIggPz/fYCKRlsHfH5YsgdhYGDzY3sVv\n6FDTqcTTXB5hDBw4kHfffdcTWVyqbeVcEfGM7GzYsAGysuCZZ0ynkcbyyCPuPc/lEcb+/ftZs2YN\nXbt2JTAwELA/uE2USHh4OKWlpc7vS0tLiYiIuO55juSriiUK6Nr02RpFJtz2CqB1fcTbzYaZ5TDz\nN6aDSIMVAyX1e4nLQe+Skhv/xCgDGwRXVVXRo0cP3nzzTTp37kzfvn016C1iyOef2yve3nKLfdQR\nHGw6kTRUdDScOHETg94XLlwAIDg4+IZfJrRq1YqnnnqKkSNHEhcXx49//ONrykJEPCckBLZvhy5d\nYOBAKC42nUiaWq1HGKNHj+b1118nKirqurEDh8PBRx995JGA9aUjDBHPsixYsQIWLbKn3Q4aZDqR\n1Je7Rxi1jmG8/vWaALWdkhIRAXs59DlzICbG3v516VLQljnNk8tBbxERd6Smwt69kJYGH3xgr0fl\n53NrSUhd9H+niDSa+Hh7b4233rIHxCsqTCeSxqTCEJFGFRoKb74JQUEwZIi9v4Y0D24VxjfXYgCc\nPXuWYk2HEJE6BAbC2rX2UUb//nDkiOlE0hhcFsb8+fP5z//8TxYtWgRAZWUlP/nJT5o8mIj4NocD\n5s6F5cth1Ch7BpX4NpeD3ps3b6agoIDevXsD9tXWFy9ebPJgItI8ZGRAVBSkp8OxYzBvnl0m4ntc\nHmEEBgbid9VUhwqNYolIPSUm2oPhW7bAlClw+bLpRNIQLgtjwoQJzJw5k/Pnz/PMM88wbNgwsrOz\nPZFNRJqRzp1h3z746isYNgw++cR0Iqkvl2tJAezcuZOdO3cCMHLkSIYPH97kwRpKV3qLeLeaGpg/\nH9avt7eBTUgwnUhu+krvbxQXFzN48GBGjBgBwJdffklJSYmRxQdFxPf5+cGCBdCjh72nxtq1MHq0\n6VTiDpenpMaPH4+/v/8/XuDnx/jx45s0lIg0f5Mm2UcYDzwAy5bZa1KJd3NZGNXV1dxyyy3O7wMD\nA7mi3eBFpBEMGACHDsGaNTBzJuijxbu5LIzvf//71+ybvXXrVr7//e83aSgRaTm6dIGDB6G8HEaO\nhHPnTCeS2rgsjD/84Q88/vjjREZGEhkZyeLFi1m5cqUnsolIC9G2rT3lNinJvjL8+HHTieRG6hz0\nrq6u5g9/+AP5+fnOi/Xatm3rkWAi0rL4+8OSJRAbC4MHwwsv2NNvxXvUeYTh7+/PgQMHsCyLtm3b\nqixEpMllZ9tbvk6cCM88YzqNXM3ltNpevXoxZswYJkyYQOvWrQH7Wod77rmnycOJSMuUkgIHDsDd\nd0Nhob0p01WTNcUQl4Vx+fJl2rdvz549e665X4UhIk0pJgby8iAz096UacMGCA42naplc1kYa9eu\n9UAMEZHrhYTAG2/YW8AOHAivvgpdu5pO1XK5nCVVWlpKRkYGoaGhhIaGMm7cOE6ePOmJbCIiBARA\nTg7MmGGXxsGDphO1XC4LY/r06aSnp3Pq1ClOnTpFWloa06dP90Q2ERHAXg59zhx49ll7ufT1600n\naplcFsbZs2eZPn06AQEBBAQEMG3aND7RMpMiYkBqKuzdC7/+tb2vRk2N6UQti8vC+N73vsf69eup\nrq6mqqqK559/Xld6i4gx8fH23hpvvWVvAastejzHZWE8++yzvPTSS3Ts2JFOnTrx8ssvO/f3FhEx\nITQU3nwTgoJgyBAoKzOdqGWodZZUXl4e/fv3JyoqildffdWTmUREXAoMtJdGf+IJezmRLVvg652k\npYnUeoQxa9Ys5+0BAwZ4JIyISH04HDB3LixfDqNGwSuvmE7UvLm8DgPsi/dERLxVRgZERUF6Ohw7\nZg+IOxymUzU/tRZGdXU1586dw7Is5+2rtW/fvsnDNdSHH5pO0DBffWU6gYjvSky0B8PHjIG//x1W\nrYLvfMd0qual1j29o6KicHxd0ZZlOW+DvZbURx995JmE9eRwOOjWzTe37goIgD17oFMn00lEfNel\nSzBtmj0QvnkzdOhgOpH3c3dP71oLw1c5HK7/0CLSvNXUwPz59gV+27ZBQoLpRN7N3cJwOa1WRMTX\n+PnBggWwcCEMHQqvv246UfOgwhCRZmvSJPsI44EHYNky0MmHm6PCEJFmbcAAOHQI1qyBmTPhyhXT\niXxXnYVRVVVFjx49PJVFRKRJdOlir3JbXg4jR8K3Jn2Km+osjFatWhEbG8vHH3/sqTwiIk2ibVv7\navCkJPvK8OPHTSfyPS5PSZ07d474+HiGDh1KWloaaWlppKenN1mg+fPnExERQWJiIomJiWzfvt35\n2KJFi4iJiSE2NpadO3c2WQYRaZ78/WHJEnj4YRg82F6PStzn8krvRx991BM5nBwOBz//+c/5+c9/\nfs39hYWFbNy4kcLCQsrKyrjrrrs4fvw4fn4ahhGR+snOhm7d4N574dFH7c2ZxDWXhZGcnOyBGNe6\n0VzgrVu3kpWVRUBAAFFRUURHR3P48GH69+/v8Xwi4vtSUuDAAbj7bigshKVL7SMQqZ3LX88PHTrE\nnXfeSVBQEAEBAfj5+RHcxDuxr1ixgjvuuIP777+f8+fPA3Dq1CkiIiKcz4mIiKBMaxqLyE2IiYG8\nPHj/fUhLgwsXTCfybi4L46c//SkvvPACMTExXL58mdWrVzN79uybetPhw4eTkJBw3de2bduYNWsW\nxcXFvPPOO3Tq1Il//dd/rfXnOLS6mIjcpJAQeOMNeybVwIFQXGw6kfdya7XamJgYqqur8ff3Z/r0\n6fTq1YvFixc3+E137drl1vOys7NJS0sDIDw8nNLSUudjJ0+eJDw8/Iavmz9/vvN2cnKykdNqIuI7\nAgIgJwdWrLBL45VXYNAg06maVm5uLrm5uYD704xdriU1ZMgQdu3aRXZ2Np06daJjx46sW7eO//mf\n/7nZvDdUXl5Op69X31u2bBlvv/02L7zwAoWFhUycOJHDhw87B70//PDD644ytJaUiNyM7dth6lR7\nTGPyZNNpPMPdtaRcHmE899xz1NTU8NRTT7Fs2TJOnjzJpk2bGi3otz3yyCO88847OBwOunbtysqV\nKwGIi4sjMzOTuLg4WrVqRU5Ojk5JiUijS02FvXvtMY0PPrDXo9JkTJtbq9VeunSJ0tJSn7jqW0cY\nItIYzp61N2YKC4PnnoM2bUwnajqNtlrttm3bSExMZOTIkQAUFBQ06YV7IiLeIDTUvrAvKAiGDLH3\n12jpXBbG/Pnzyc/PJyQkBIDExESv3TxJRKQxBQbC2rUwYYK9nMiRI6YTmeWyMAICAmjXrt21L9IJ\nPRFpIRwOmDsXli+HUaPsGVQtlctB7/j4eP74xz9SVVVFUVERy5cvZ+DAgZ7IJiLiNTIyICoK0tPh\n2DGYN88uk5bE5aHCihUreP/99wkMDCQrK4vg4GCefPJJT2QTEfEqiYmQn2+vejt5Mly+bDqRZ2lP\nbxGRerp0CaZNswfCN2+GDh1MJ7o5jXYdxrFjx1iyZAklJSVUVVUB9ofynj17GiepiIiPad0aNmyA\n+fOhXz97G9iEBNOpmp7LI4zbb7+dWbNmkZSUhP/XSzk6HA569+7tkYD1pSMMEfGkF16Ahx6yt4Ad\nPdp0moZx9wjDZWH07t2bIz40l0yFISKedugQjBsHv/iFXR6+Nhh+04Vx7tw5LMtixYoVhIaGcs89\n9xAYGOh8vH379o2buJGoMETEhI8/tpcT6d8fnn7aXtDQV9x0YURFRdW6VpPD4fDai/dUGCJiysWL\nMHEiVFTY12t46e/V12m0U1K+RoUhIiZVV8Mjj9gD4a+9Bt27m07k2k2vJfX2229TXl7u/H7dunWk\np6czZ84czrm7eLqISAvj7w9LlsDDD8PgwfZ6VM1FrYUxY8YM55jFW2+9xdy5c5k6dSrBwcHM0I7p\nIiJ1ys62p95OnAjPPGM6TeOo9TqMmpoa58D2xo0bmTlzJuPGjWPcuHHccccdHgsoIuKrUlLgwAG4\n+24oLLQ3Zfr66gSfVOsRRnV1NVeuXAFg9+7dpKSkOB/75gI+ERGpW0wM5OXB++/bs6guXDCdqOFq\nLYysrCx++MMfkp6eTuvWrRk8eDAARUVF161eKyIitQsJgTfegC5d7D3Di4tNJ2qYOmdJHTp0iNOn\nTzNixAjafL3d1PHjx/niiy9ISkryWMj60CwpEfFWlgUrVsCiRfa020GDTCeyaVqtiIiX2r4dpk61\nxzQmTzadphEXHxQRkcaVmgp799pjGh98AAsXgi/sS+cDEUVEmp/4eHtvjf377S1gKypMJ3JNhSEi\nYkhoKOzeDUFBMGSIvb+GN1NhiIgYFBgIa9faRxn9+4M3Lw6uwhARMczhgLlzYflyGDXKnkHljTTo\nLSLiJTIyICoKxoyBY8dg3jzv2ltDRxgiIl4kMdG+MnzLFnvK7eXLphP9gwpDRMTLdO4M+/ZBZSUM\nGwaffGI6kU2FISLihVq3tle7HTYM+vWDv/3NdCIVhoiI1/LzgwUL4LHH7OJ4/XXDecy+vYiIuDJx\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 0x5d6f150>"
+ ]
+ },
+ {
+ "metadata": {},
+ "output_type": "display_data",
+ "png": "iVBORw0KGgoAAAANSUhEUgAAAYwAAAEPCAYAAABRHfM8AAAABHNCSVQICAgIfAhkiAAAAAlwSFlz\nAAALEgAACxIB0t1+/AAAIABJREFUeJzt3Xtcz3f/x/HHt8SuEWZz2FVcWQcpWcnKLkZG0WhjDhPD\nZjab7ZodjMwO7LpSNn4j5rIZdh6XGTlGRuacs1mI6FpS5rAmOaT6/P54872c0rf6fvt8D6/77eZG\nX32/36eNXr1Pr7dB0zQNIYQQogxOegcQQghhG6RgCCGEMIkUDCGEECaRgiGEEMIkUjCEEEKYRAqG\nEEIIk1htwSguLiYoKIioqCgAzp49S3h4OD4+PkRERJCXl6dzQiGEcCxWWzCmTp2Kn58fBoMBgPj4\neMLDw0lPT6dTp07Ex8frnFAIIRyLVRaM48ePs2LFCoYOHcq1c4VLlixh8ODBAAwePJjFixfrGVEI\nIRyOVRaM119/nY8++ggnp//FO3nyJA0bNgSgYcOGnDx5Uq94QgjhkKyuYCxbtowGDRoQFBREaV1L\nDAaDcapKCCFE1aimd4Cbbd68mSVLlrBixQouXbrEuXPnGDhwIA0bNiQ3N5dGjRqRk5NDgwYNbvt8\nLy8vMjIyqji1EELYNk9PT44cOXLnT9KsWEpKita9e3dN0zTtrbfe0uLj4zVN07S4uDht9OjRt32O\nlf+RyvT+++/rHaHCbDm7pkl+vUl+fZnytdPqpqRudm3qKSYmhuTkZHx8fFi7di0xMTE6JzO/tWuh\nqEjvFEIIcXtWNyV1vQ4dOtChQwcA6tWrx5o1a3ROZDmffw7PPw+RkXonEUKI27P6EYYjWLQI3nsP\nvv0WduwIo7BQ70QVExYWpneESpH8+pL81s9wde7KbhgMhlJ3V1mjlBTo2xeSkqBVK4iIgKeeguee\n0zuZEMKRmPK1UwqGjnbvhi5dYP586NhRPbZ+PQwdCgcOQDWrnjAUQtgTU752ypSUTo4cgW7dYObM\n/xULgPbtoWFDWLBAv2xCCHE7MsLQQU4OtGsHo0fDCy/c+vsrV8KoUbB3LzhJSRdCVAEZYVihvDy1\nE2rIkNsXC4CuXaF6dViypGqzCSHEncgIowpdvKjWLIKCYMoUuFN3kx9/hLg4SE298+cJIYQ5yAjD\nihQVQb9+4O4OH39cdhHo0QMuXIDk5KrJJ4QQZZGCUQU0TU0/Xb4MX3xh2rqEkxOMGQOxsRaPJ4QQ\nJpGCUQXGjIG0NFi4UK1NmKpfPzh+HDZutFw2IYQwlRQMC5s8WS1eL18ONWuW77nVqqmdVDLKEEJY\nAykYFvTVV5CQAKtWwb33Vuw1Bg+G/fthxw7zZhNCiPKSgmEhy5ersxRJSdC4ccVfp0YNGDkSJkww\nXzYhhKgI2VZrAZs2Qc+esGwZhIRU/vUuXIAHHoCffgJ//8q/nhBC3Ey21epg/3548kn45hvzFAuA\nu++GESPUuQwhhNCLjDDMKDMTHnkEPvwQoqPN+9p//gmenrBtm/pZCCHMSUYYVej331Vr8lGjzF8s\nAOrUgZdegvh487+2EEKYQkYYZpCfrzrOPvYYfPCB5d7n9Gnw8VFNCSuzkC6EEDeT+zCqwOXLqk25\nlxf8+9+W7/s0ciRcuQJTp1r2fYQQjsVmp6SysrLo2LEj/v7+tGjRgoSEBADOnj1LeHg4Pj4+RERE\nkJeXp2vO4mJ4+mmoWxc++aRqmgS++SZ8/bWaAhNCiKpklSOM3NxccnNzCQwM5Pz58wQHB7N48WLm\nzp3Lfffdx6hRo5g4cSJ//PEH8TdN6lfVCEPTYPhwSE+HFSvUeYmqMny4WtOQXVNCCHOxmympHj16\n8Morr/DKK6+wfv16GjZsSG5uLmFhYRw8ePCGz62qgjFuHCxdCuvWQe3aFn+7G2RmQnCwurXvnnuq\n9r2FEPbJZqekrpeZmcnu3bsJDQ3l5MmTNGzYEICGDRty8uRJXTJ98gl89526Ga+qiwWAhwc8/jhM\nm1b17y2EcFxWXTDOnz9Pr169mDp1Kq6urjf8nsFgwKDDzULz5qmpoFWroEGDKn97o5gYmD4dzp/X\nL4MQwrFU0ztAaa5cuUKvXr0YOHAgPXr0ADBORTVq1IicnBwalPIVe9y4ccZfh4WFERYWZpZMq1er\nE9dr1kDTpmZ5yQpr1kxt5Z05U+2cEkKI8khJSSElJaVcz7HKNQxN0xg8eDD33nsvH3/8sfHxUaNG\nce+99zJ69Gji4+PJy8urskXv1FTo3l1dndqundlfvkL27lX3gx89CnfdpXcaIYQts9lF740bN9K+\nfXtatmxpnHaKi4sjJCSEvn378ttvv+Hh4cF//vMf6tate8NzLVEwDh6EsDCYNQuiosz60pUWFaWK\nxvDheicRQtgymy0YlWHugnH8OLRtq05wDx5stpc1m61b4amn1I4pFxe90wghbJVd7JLS05kzqj/U\nP/5hncUCoE0b8PZW3XGFEMKSZIRRioIC6Nz5f91nrdm6dTBsGBw4AM7OeqcRQtgiGWFU0JUr0Ls3\n+PrCxIl6pylbWBjcdx/88IPeSYQQ9kxGGDcpKYFBg1QH2oULoZrVbjy+0fLlMGYM7NkDTvJtgBCi\nnGSEUU6aBm+8Af/9rzqgZyvFAlRrdWdndS2sEEJYghSM68THw9q1qkfUX/6id5ryMRhg7FiIjVWF\nTwghzE0KxlWff67OWaxapdqV26Inn4Rz5+Cnn/ROIoSwR1IwgEWL4L33VLG4/36901Sck5Nax4iN\n1TuJEMIeOXzBSElRW1KXLVPnGWxddLRqf75pk95JhBD2xqELxu7d0LcvzJ8PrVrpncY8XFxg9GgZ\nZQghzM9ht9UeOQLt26sW4U8+WQXBqtClS+DpqRbv7aUQCiEsS7bVliInB7p0Ubfm2VuxANW5duRI\nmDBB7yRCCHvicCOMvDzo0EFNRY0dW4XBqlhBATzwgFqjad5c7zRCCGsn3WpvcvGiGlkEBcGUKers\ngj2LjYVDh+Crr/ROIoSwdlIwrlNUBL16Qc2aqrOrI7TPyMsDLy91+dMDD+idRghhzWQN4ypNgxde\ngMuX4YsvHKNYgDqAOGyYbTRQFEJYP4cYYcTEqLn8n35SIwxHcuqUuv/7l1/AzU3vNEIIayUjDGDy\nZFiyRHVzdbRiAVC/PjzzDEyapHcSIYStK7NgLF26lKCgIO655x5cXV1xdXWldu3aVZGt0r76ChIS\nVMuPe+/VO41+Ro6EL79Uow0hhKioMgvGa6+9xpdffsmZM2fIz88nPz+fc+fOVUW220pKSsLX1xdv\nb28m3mFyfvlyGDUKkpKgceMqDGiF/vpXtY14yhS9kwghbFmZaxgdOnRg7dq1OFvB3Z/FxcU0a9aM\nNWvW4ObmxkMPPcT3339P8+sOGhgMBjZu1OjZU/WHCgnRMbAVOXYMWreGjAzb7cYrhLAcU9Ywyrwi\naOLEiURGRtKxY0eqV69ufOE33njDPCnLITU1FS8vLzw8PADo168fiYmJNxQMUKe3v/lGisX1mjaF\n7t1VK5R33tE7jRDCFpU5JfXuu+9Sq1YtLl26xPnz5zl//jz5+flVke0W2dnZNL5ufsnd3Z3s7Oxb\nPm/KFIiIqMpktmHMGLWmc/683kmEENYkN9e0zytzhJGTk0NycnJl85iFwcSj2f0/NdD/06sfeABN\nLZXIBr0MrpP1DiGE0N0xILN8TymzYDz22GOsWrWKLl26VCyUGbm5uZGVlWX8OCsrC3d391s+T0ux\nq6MlZrV7t5qayshQTQqFEI7n0iU1PT1xOfTuDe+/D/ffX/Y35GUueteqVYsLFy5QvXp1XFxc1JMM\nBl12ShUVFdGsWTN++ukn/vrXvxISEnLbRW87O4todt26qaLx0kt6JxFCVKWSEvjuO9V4tVUriIsD\nX1/1e2ZZ9D5vRRPe1apVY/r06XTp0oXi4mKee+65Wxa8RdneeUfdzDd0qLpwSQhh/9asgbfeUjML\n334L7dqV/zUcojWIuNWjj8LgweqHEMJ+7d2rbuHMyID4eLWL9HbLwRZrDRIUFFSRpwkrMnasGo4W\nF+udRAhhCVlZqi1Qly4QFQVpaapjd2WudahQwdi9e3fF31FYhUcfVQf4fvxR7yRCCHPKy1MNVwMD\nVZeL9HR4+WXzTD/bffNBcXsGgxplxMaq9u9CCNt2+bI6g+bjA2fOwL598M9/gjlb/5W6htG0aemH\nFwwGA0ePHjVfCjOSNQzTaZr6LiQ2Vu2aEkLYnpIS+M9/4O23wd9frVP4+5f/dSq1S2r79u03vFBJ\nSQnz589n0qRJtGrVqvxphNW5fpTRrZv9X1krhL1Zt041WQWYMwfCwiz7fqVOSd13333cd9991KtX\nj6VLlxIWFsaWLVtYsWIFCxcutGwqUWV69YI//lB/8YQQtmH/fjUr8Nxz6vqCbdssXyzgDgWjsLCQ\nmTNn0rx5czZs2EBiYiLffvstfn5+lk8lqoyzs1ogi43VO4kQoizZ2er8VKdOEB4OBw7AU09V3bXT\npa5huLu7U61aNUaMGEGTJk2MfZw0TcNgMPDkk09WTcJykjWM8rtyBby94fvv4eGH9U4jhLjZuXPw\n4Yfw73/DCy+ocxXmvqbAlK+dpRaMZ555xvgitzN37tzKpbMQKRgVM2MGrFih7hARQliHwkL47DP4\n178gMhI++MByF8JVqmBcc+nSJe66qUvdmTNnuNdK7zyVglExly7BAw+oohEYqHcaIRybpsHChepK\nAi8vmDgRWra07Hua5aT3k08+yZUrV4wf5+TkEB4eXvl0wqrcdRe8+SZMmKB3EiEc24YNamp4wgQ1\nBbVypeWLhanKLBg9e/akb9++FBcXk5mZSZcuXYiPj6+KbKKKDRsGKSlw8KDeSYRwPAcPQo8eMHAg\n/OMfsGMHdO6sd6obmdR8cPr06SQlJfHf//6XmTNn0rZt26rIViEyJVU5//ynalL2xRd6JxHCMeTk\nwPjxqk3P6NGqjYced9VU6uDe5MmTb3iRrKwsHnzwQbZu3cq2bdt0udNbWN4rr6g502PH1D3gQgjL\nyM+HSZPURUZDhqgRRr16eqe6s1ILRn5+/g07pHr27InBYLCq+zGE+d1zj9q2d20LnxDCvK5cgdmz\n1aiic2fYuRM8PPROZRq5D0Pc4vff1S1c+/fDX/+qdxoh7IOmQWKiOijr7q6+KbOmLktm2VZra6Rg\nmMdrr6lT4FdnJoUQlbBli7rt7tw5+OgjiIiwvt5tUjBEhR0/rrbypafDfffpnUYI25SerrrIpqaq\nDSVPP62+EbNGFrtxT9g/d3fo3Vv11xdClM/vv6sNJG3bwkMPwaFD6jpkay0WpipzhPH7778za9Ys\nMjMzKSoqUk8yGJgzZ45FAr311lssW7aM6tWr4+npydy5c6lTpw4AcXFxzJkzB2dnZxISEoiIiLjl\n+TLCMJ+MDAgNVT9f/V8ghLiDggL4+GP1jdbAger6AFsZoZtlSurhhx+mffv2BAcH43S1JaLBYKBX\nr17mS3qd5ORkOnXqhJOTEzExMQDEx8eTlpZG//792b59O9nZ2XTu3Jn09HRjJuMfSAqGWQ0cCM2b\nq2G1EOL2iopg7lwYNw7at1fdnx94QO9U5VOpcxjXXLx4kYkTJ5otVFmubzsSGhpqvHsjMTGR6Oho\nXFxc8PDwwMvLi9TUVNq0aVNl2RzRmDHQsSOMGAE1a+qdRgjrommqYefo0dCgASxerKag7FWZaxjd\nu3dn+fLlVZHlFnPmzOGxxx4D4MSJE7i7uxt/z93dnezsbF1yORI/P2jXDmbN0juJENYlNVV9MxUT\no3Y+rVtn38UCTBhhTJkyhQkTJlC9enVcXFwANXQ5d+5chd80PDyc3NzcWx6fMGECUVFRAMTGxlK9\nenX69+9f6uuU1np93Lhxxl+HhYURVhVXUdmxt9+GJ56Al16CGjX0TiOEvjIy1NrExo3q8N3gwVCt\nzK+k1iclJYWUlJRyPccqt9V+8cUXzJo1i59++snYWv1aw8Nr6xpdu3Zl/PjxhIaG3vBcWcOwjMhI\n1Rht2DC9kwihj9On1b0U33wDr7+uzirZ0zRtpRa9Dxw4QPPmzdm1a9dtn9jKQkcUk5KSePPNN1m/\nfj33Xbe94Nqid2pqqnHR+8iRI7eMMqRgWMamTWoBPD3dNr+bEqKiLl6EqVNV36foaHj3XbVeYW8q\nVTCef/55Zs2aRVhY2G2nftatW2eelDfx9vamsLCQele7cD388MPMmDEDUFNWc+bMoVq1akydOpUu\nXbrc8nwpGJYTFqYunR84UO8kQlhecTF8/bUqEG3aqPspvL31TmU5ctJbmFVystottX9/1V06L0RV\n0zRYtQpGjYLatdWCtiPcdS8nvYVZde4MtWrBokV6JxHCMnbtgvBwtT7xz3/+7/Y7oUjBECYzGNTu\nkNhY9V2YEPYiMxMGDIBu3aBPHzWKfuIJ62sQqDcpGKJcoqJUP/+VK/VOIkTlnT2r7rIPDgYfHzh8\nWO0ElI0dt1dmwejUqZNJjwnH4OQkowxh+y5dUruemjWDCxfg11/h/ffVlKsoXakF4+LFi5w5c4ZT\np05x9uxZ44/MzEw5Ye3g+vSBU6dg/Xq9kwhRPiUl6hxFs2Zqq/iGDepmyUaN9E5mG0odeH366adM\nnTqVEydOEBwcbHzc1dWVV155pUrCCevk7KzaIcTGqq22QtiCNWvUJUZ33QXffqta3ojyKXNbbUJC\nAq+++mpV5ak02VZbNQoL1Z70//xHtUAXwlrt3auaA2ZkQHw8PPmkLGbfjtnOYWzevPmG+zAABg0a\nVPmEFiAFo+pMnw6rV8OSJXonEeJWWVnq0F1Skvr5hRfgajs8cRtmKRhPP/00R48eJTAwEOfrroua\nNm2aeVKamRSMqnPxour5v2qVus5VCGuQlwdxcfD55zB8uJqGql1b71TWzywFo3nz5qSlpZXaGdba\nSMGoWh99BDt3wrx5eicRju7yZZgxQxWLJ55Qlxm5uemdynaY5aR3ixYtyMnJMVsoYV9efBF++kk1\nJRRCDyUl8P336mbItWvVvRSzZkmxsIQyj6ecOnUKPz8/QkJCqHH1MgSDwcASmbgWgKuruuw+Ph4s\ndM27EKVat05NORkM6u+f7NqzrDKnpK5dsHH9cMVgMNChQweLh6sImZKqemfPgpcX7N4Nf/ub3mmE\nI9i/X23tTktTU1B9+khDzMoy2y6pzMxMjhw5QufOnblw4QJFRUXUttJVJCkY+hg9Gs6fh08+0TuJ\nsGfZ2epE9tKl6ibIF1+UWyDNxSxrGJ999hl9+vRh2NWr1o4fP07Pnj3Nk1DYjTfeUPPIstwlLOHc\nOXjnHbUbr359OHRItdqXYlG1yiwYn3zyCRs3bjSOKHx8fPj9998tHkzYloYN4emn4f/+T+8kwp4U\nFqrzPj4+anSxZ4+agqpbV+9kjqnMglGjRg3jYjdAUVGRzWyxFVXrrbdg9mw4c0bvJMLWaRosWAD+\n/rB8uTogOncuNG6sdzLHVmbB6NChA7GxsVy4cIHk5GT69OlDVFRUVWQTNqZxY9V2YepUvZMIW3bt\n0qK4ONUYcOVKORhqLcpc9C4uLmb27NmsXr0agC5dujB06FCrHWXIore+jhxR9x8fPSqna0X5HDig\ndj7t3asaW0ZHy86nqmTTd3pPnjyZt956i9OnT1OvXj0A4uLimDNnDs7OziQkJBAREXHL86Rg6G/A\nAAgIUP/4hShLTo46lf3jj+rvzMsvq46yomqZZZfU0qVLCQoK4p577sHV1RVXV1eLb6nNysoiOTmZ\nv123qT8tLY358+eTlpZGUlISw4cPp6SkxKI5RMWMGQNTpqiLaYQoTX6+2iLbooUajR46pG6/k2Jh\nvcosGK+99hpffvklZ86cIT8/n/z8fM6dO2fRUG+88QYffvjhDY8lJiYSHR2Ni4sLHh4eeHl5kZqa\natEcomJatFBz0J9/rncSYY2uXIGZM9XOp6NHVS+yjz6CqxMJwoqVWTDc3d3x9/fHqYomExMTE3F3\nd6flTatcJ06cwN3d/YZccvOf9Ro7Fj78UDWEEwLUzqfFi9V05Q8/qN1PX38NHh56JxOmKrOX1MSJ\nE4mMjKRjx45Ur14dUHNdb7zxRoXfNDw8nNzc3Fsej42NJS4uzrjADtxxTq20hfdx48YZfx0WFkaY\nNJipcq1bqy2RX30Fzz+vdxqhty1b1Lbrc+fULrqICLnESG8pKSnG1k+mKnPROzw8HFdXVwICAm4Y\nZbz//vsVCnkn+/fvp1OnTtx9992AOlXu5ubGtm3bmDt3LgAxV1dSu3btyvjx4wm96bo3WfS2Hj//\nDM8+q+amq5X5rYmwR+npak1r+3b45z/V4c7rrtURVsQsu6RatGjB/v37zRrMVE2bNmXnzp3Uq1eP\ntLQ0+vfvT2pqKtnZ2XTu3JkjR47cMsqQgmFd2reHYcPUzinhOE6ehA8+gPnz1cji1VfhL3/RO5W4\nE7PsknrsscdYtWqV2UKVx/XFwM/Pj759++Ln50dkZCQzZsyw2rMg4n/GjoUJE9SdBcL+FRSokYSf\nH1SvDgcPqsaUUizsQ5kjjFq1anHhwgWqV6+Oy9ULcQ0Gg8V3SlWUjDCsi6bBQw+pwiE9K+1XUZFq\n3TFunBpVxsaq63uF7bDpg3sVJQXD+ixaBP/6F+zYIQud9kbTYNkyNYpo0EBtj33oIb1TiYowW8FI\nTEzk559/Nl6cZM29pKRgWJ+SEtULaNIk6NpV7zTCXFJTYdQoOHVKbaF+7DH5hsCWmWUNIyYmhoSE\nBPz9/WnevDkJCQmMGTPGbCGF/XNyUpfdxMbqnUSYQ0YG9OunGk0OHKh6P3XrJsXCEZQ5wggICGDP\nnj04X90LV1xcTGBgIL/88kuVBCwvGWFYp6Ii8PVV9y63b693GlERp0+rqcVvvoHXX4fXXoOaNfVO\nJczFLCMMg8FAXl6e8eO8vDzZnSTKrVo11VhORhm258IF1Wrc1xeKi9U92mPHSrFwRGUepxozZgyt\nWrUynpZev3498fHxls4l7NCgQTB+vDrEJQuj1q+4WJ3Uf+891bJ+yxbw9tY7ldCTSYveJ06cYPv2\n7RgMBkJCQmjUqFFVZKsQmZKybgkJsHat6ikkrJOmQVKSWtCuU0ftfHr4Yb1TCUur1C6pXbt23fDx\ntU+7Nh3VqlUrc2Q0OykY1u3CBbU/PzlZNaET1mXnTlUosrNh4kR4/HFZzHYUlSoYTk5OtGjRgnvv\nvfe2T1y3bl3lE1qAFAzrN3Gi2lnz3Xd6JxHXZGaqdYl169QdFc89J/2/HE2lCsaUKVNYsGABdevW\n5amnnqJnz564urpaJKg5ScGwfufOgacnbN4sc+J6O3tWbUT44gvV7+nNN6FWLb1TCT2Y5eBeRkYG\n8+fPZ/Hixfztb39j7NixBAYGmjWoOUnBsA3vvw/Hj8Ps2XoncUyXLsH06Wq017u3+v9hxUuTogqY\nZVutp6cnTzzxBBEREWzfvp1Dhw6ZLaBwXK++qlqG/Pab3kkcS0mJOkfRrBls2gQbNsC//y3FQpim\n1BFGRkYG8+bNIzExkSZNmvDUU0/RvXt3/mLlbSdlhGE73npLfac7bZreSRzDmjXqv/ldd6mdT+3a\n6Z1IWJNKL3oHBATQo0cPateufcMLVvbGPUuSgmE7cnNVG+wDB6BhQ73T2K+9e9XOp6NHIT5etfSQ\nnU/iZqZ87Sx1H8R7771n3EJ7/vx58yYTAjUN0r8//N//qbl0YV6//QbvvgurVqmfX3gBrt5QIESF\nSHtzoavffoOgIDh8GOrV0zuNfcjLU608Pv8chg9X01BXJwmEKJVZFr2FsKQmTeCJJ9QJcFE5ly/D\nxx+Dj4/aLrtvn7r9ToqFMBcZYQjdpadD27Zqjt0GjvpYnZISdXf22LHg76/WKfz99U4lbI3cuCds\nRnS0mpoaNUrvJLZl3To15WQwqJ1PV3uEClFuZikYkydPvuGFDAYDderUITg42GIH+KZNm8aMGTNw\ndnamW7duTLy6IhoXF8ecOXNwdnYmISGBiIiIW54rBcM2/fILRESoUYaV79y2Cvv3q3bxaWlqvaJP\nH3VRlRAVValdUtfs3LmTHTt2EBUVhaZpLF++nICAAGbOnEnv3r0ZPXq02QKD6lG1ZMkS9u3bh4uL\nC6dOnQIgLS2N+fPnk5aWRnZ2Np07dyY9PR0n+VdiFwICICREnfx+5RW901iv7Gx1KnvpUnWL4cKF\nUKOG3qmEw9DK0K5dOy0/P9/4cX5+vvbII49oBQUFmq+vb1lPL7c+ffpoP/300y2PT5gwQYuPjzd+\n3KVLF23Lli23fJ4JfyRhpbZt07TGjTXt8mW9k1ifvDxNe/ttTatXT9NiYjTtjz/0TiTsjSlfO8v8\n9vzUqVNUr17d+LGLiwsnT57k7rvv5q677jJ7ATt8+DA///wzbdq0ISwsjB07dgDqTg53d3fj57m7\nu5OdnW329xf6CQlRLSu+/lrvJNajsFCdhPfxgRMnYM8eNQVVt67eyYQjKnNKasCAAYSGhtKjRw80\nTWPp0qX079+fgoIC/Pz8KvSm4eHh5Obm3vJ4bGwsRUVF/PHHH2zdupXt27fTt29fjh49etvXKe2q\n2HHjxhl/HRYWZrwtUFi/sWPh+edh8GDHbq+tafDDDzBmjOrom5wMLVvqnUrYk5SUFFJSUsr1HJN2\nSW3fvp1NmzZhMBho27YtrVu3rmjGMkVGRhITE0OHDh0A8PLyYuvWrXz++ecAxMTEANC1a1fGjx9P\naGjoDc+XRW/bpmnwyCPw8stq55Qj2rBB7XwqLIQPP4TOnfVOJByB2bbVFhcXk5ubS1FRkfG7+iZN\nmpgn5U0+/fRTTpw4wfjx40lPT6dz58789ttvpKWl0b9/f1JTU42L3keOHLlllCEFw/atXKm21+7d\n61g7fw4cUDuf9u5Vd1RERzvWn1/oyyy7pKZNm8b48eNp0KABzs7Oxsd/+eWXyie8jSFDhjBkyBAC\nAgKoXr06X331FQB+fn707dsXPz8/qlWrxowZM0qdkhK2rWtXeOcdWLIEevTQO43l5eTAuHHw44+q\nYMyfrzqzGAUlAAAUTklEQVTKCmFtyhxheHp6kpqaWupVrdZGRhj2YeFCdWI5NdV+O6vm58OkSeoi\noyFD1HqF9NMSejFLL6kmTZoY25sLUVV69oSCArXYa2+uXIGZM9XOp6NHYedOdUpbioWwdmVOSTVt\n2pSOHTvSrVs34/Zaa74PQ9gHJyd1MC02Vp0AtweaBosXq2mnxo1h+XJo1UrvVEKYrsyC0aRJE5o0\naUJhYSGFhYXGC5SEsLR+/dSp5o0bbf92uM2b1c6n/HzVmTciwn6n2oT9kuaDwqp99pm6+3vlSr2T\nVEx6ulqbSE2Ff/0Lnn4arts7IoTVqNS22hEjRjB16lSioqJu+8JLliwxT0ozk4JhXy5fBk9PNZVj\nweM/ZnfyJHzwgdrx9NZb8Oqr0lRRWLdKbasdOHAgAG+++aZ5UwlRDjVqwMiRMGGC2nZq7QoK1JWz\nU6bAoEFw8CDcd5/eqYQwD5mSElavoAAeeADWrrXei4GKimDuXHWeon17tVj/wAN6pxLCdJWakgoI\nCLjjC+/bt69y6SxECoZ9iouDX3+Fb77RO8mNNA2WLYPRo6FBA7U99qGH9E4lRPlVakpq6dKlAMyY\nMQNQU1SapvHtt9+aMaIQphk+XK1lZGSon61BaqpqYXLqlCoUjz0mO5+EfStzSiowMJA9e/bc8FhQ\nUBC7d++2aLCKkhGG/Xr3XcjNhVmz9M2RkaHOiGzaBOPHS2ddYR/MctJb0zQ2btxo/HjTpk3yBVno\nYsQI1TIkK0uf9z99WmUIDVWtxg8dgueek2IhHEeZI4ydO3fy7LPP8ueffwJQt25d5s6dSysrPaIq\nIwz79uabaoF56tSqe88LF9T7TZ6sOsi++65arxDCnpitvTlgLBh16tSpfDILkoJh306cgBYt1HZV\nS3/RLi6Gr76C996DNm3U1l5vb8u+pxB6MUvBuHTpEgsXLiQzM5OioiLjC7/33nvmS2pGUjDs3/Dh\nUKeO2jllCZoGSUlqQbtOHbWg/fDDlnkvIayFWQpGly5dqFu3LsHBwTfch2GtB/qkYNi/zEwIDoYj\nR+Cee8z72jt3qkKRnQ0TJ8Ljj8vOJ+EYzFIwWrRowf79+80azJKkYDiGZ55RB+PMNdAtLFR3Uqxd\nqxoeymK2cDRm2SX197//3WoP6QnHNWYMTJsG58+b5/XS01VX3PR0GDZMioUQt1NmwdiwYQPBwcH4\n+PgQEBBAQEAALVu2rIpsQpSqWTN49FF1EZG51Kqlfgghbq/M76NW2mpfaWH33n4bIiPh5ZelE6wQ\nVaHMEYaHhwdZWVmsW7cODw8PatasadE1gtTUVEJCQggKCuKhhx5i+/btxt+Li4vD29sbX19fVq9e\nbbEMwjY8+KBa/J4zR+8kQjgIrQzvv/++1r17d83b21vTNE07fvy49ve//72sp1VYhw4dtKSkJE3T\nNG3FihVaWFiYpmma9uuvv2oPPvigVlhYqB07dkzz9PTUiouLb3m+CX8kYUe2bNG0Jk00rbCwcq/z\nyy+a5u9vnkxC2CJTvnaWOcJYtGgRiYmJ1KxZEwA3Nzfy8/MtVsDuv/9+4yHBvLw83NzcAEhMTCQ6\nOhoXFxc8PDzw8vIiNTXVYjmEbWjTBry8rK+LrRD2qMw1jBo1auDk9L+6UlBQYNFA8fHxtGvXjpEj\nR1JSUsKWLVsAOHHiBG3atDF+nru7O9nZ2RbNImzD2LHw4ovqwiK5/lQIyymzYPTp04dhw4aRl5fH\nZ599xpw5cxg6dGil3jQ8PJzc3NxbHo+NjSUhIYGEhAR69uzJggULGDJkCMnJybd9HUMpJ6rGjRtn\n/HVYWBhhYWGVyiusW8eO6la7H36Ap57SO40QtiElJYWUlJRyPcekXlKrV682LjJ36dKF8PDwCgU0\nRe3atTl37hygOuXWrVuXP//8k/j4eABiYmIA6Nq1K+PHjyc0NPSG58vBPce0fLk6m7FnDziVOdF6\nq/37oV8/9bMQjsgsB/cAIiIimDRpEqNHj6Zz585mCVcaLy8v1q9fD8DatWvx8fEB4PHHH2fevHkU\nFhZy7NgxDh8+TEhIiEWzCNvx2GNqOmrZMr2TCGG/Sp2S2rJlC2PGjKFevXq8++67DBw4kNOnT1NS\nUsKXX35JZGSkRQJ99tlnvPzyy1y+fJm//OUvfPbZZwD4+fnRt29f/Pz8qFatGjNmzCh1Sko4HoNB\nncuIjYWoKOn/JIQllDolFRwcTFxcHH/++SfPP/88SUlJtGnThoMHD9KvX79bbuGzFjIl5biKi8Hf\nH6ZPh/IOhGVKSji6Sk1JFRcXExERQZ8+fbj//vuNO5R8fX3lO3thlZyd/zfKEEKYX6kF4/qicNdd\nd1VJGCEqKzpatT/ftEnvJELYn1LXMPbt24erqysAFy9eNP762sdCWCMXFxg9Wo0yVqzQO40Q9uWO\nU1L5+fnk5+dTVFRk/PW1j4WwVs88A3v3wq5deicRwr5UYMe6ENbtrrvgzTfVHdxCCPORgiHs0rBh\nsGEDHDigdxIh7IcUDGGXataEV1+FuDi9kwhhP+QiSmG3Xn4ZPD3h6FF1/7cQonJkhCHsVt26qovt\nxIl6JxHCPkjBEHbttddgwQKQTvhCVJ4UDGHX6teHwYNh0iS9kwhh+6RgCLs3ciR8+SWcOqV3EiFs\nmxQMYffc3KBvX5gyRe8kQtg2KRjCIYweDTNnQl6e3kmEsF1SMIRDaNoUunVTrc+FEBUjBUM4jDFj\nICEBzp/XO4kQtkkKhnAYzZtDhw5w9RJHIUQ5ScEQDuXtt2HyZLh0Se8kQtgeKRjCoQQFQWAgzJ2r\ndxIhbI8uBWPBggX4+/vj7OzMrpsuLYiLi8Pb2xtfX19Wr15tfHznzp0EBATg7e3NiBEjqjqysCNj\nx6p2IVeu6J1ECNuiS8EICAhg0aJFtG/f/obH09LSmD9/PmlpaSQlJTF8+HDjpeQvvfQSs2fP5vDh\nwxw+fJikpCQ9ogs78Pe/q11T332ndxIhbIsuBcPX1xcfH59bHk9MTCQ6OhoXFxc8PDzw8vJi27Zt\n5OTkkJ+fT0hICACDBg1i8eLFVR1b2JGxY1Xr8+JivZMIYTusag3jxIkTuLu7Gz92d3cnOzv7lsfd\n3NzIlm5yohI6dVLdbH/8Ue8kQtgOi92HER4eTm5u7i2PT5gwgaioKEu9LQDjxo0z/josLIywsDCL\nvp+wPQaDGmW8+y707q13GiGqXkpKCikpKeV6jsUKRnJycrmf4+bmRlZWlvHj48eP4+7ujpubG8eP\nH7/hcTc3t1Jf5/qCIURpuneHd96B5cvBw0PvNEJUrZu/mR4/fnyZz9F9SuraojbA448/zrx58ygs\nLOTYsWMcPnyYkJAQGjVqRO3atdm2bRuapvH111/To0cPHVMLe2AwqHMZsbFw3V9DIUQpdCkYixYt\nonHjxmzdupVu3boRGRkJgJ+fH3379sXPz4/IyEhmzJiBwWAAYMaMGQwdOhRvb2+8vLzo2rWrHtGF\nnendG86ehXXr9E4ihPUzaJp9fW9lMBiwsz+SsLAvvlBrGXXqwP79eqcRQh+mfO3UfUpKCL0NGADO\nznqnEML6ScEQDs/FBUaNUmsaQojSyZSUEEBhIezZA1fPhgrhcEz52ikFQwghhKxhCCGEMB8pGEII\nIUwiBUMIIYRJpGAIIYQwiRQMIYQQJpGCIYQQwiRSMIQQQphECoYQQgiTSMEQQghhEikYQgghTCIF\nQwghhEmkYAghhDCJFAwhhBAmkYIhhBDCJLoUjAULFuDv74+zszM7d+40Pp6cnEzr1q1p2bIlrVu3\nZt11Fy3v3LmTgIAAvL29GTFihB6xhRDCoelSMAICAli0aBHt27fHcN01Z/Xr12fZsmXs27ePL7/8\nkoEDBxp/76WXXmL27NkcPnyYw4cPk5SUpEd0i0tJSdE7QoXZcnaQ/HqT/NZPl4Lh6+uLj4/PLY8H\nBgbSqFEjAPz8/Lh48SJXrlwhJyeH/Px8Qq5ehzZo0CAWL15cpZmrii3/pbPl7CD59Sb5rZ/VrmEs\nXLiQ4OBgXFxcyM7Oxt3d3fh7bm5uZGdn65hOCCEcTzVLvXB4eDi5ubm3PD5hwgSioqLu+Nxff/2V\nmJgYkpOTLRVPCCFEeWk6CgsL03bu3HnDY1lZWZqPj4+2efNm42MnTpzQfH19jR9/99132rBhw277\nmp6enhogP+SH/JAf8qMcPzw9Pcv8mm2xEYaptOsuHc/Ly6Nbt25MnDiRhx9+2Pj4/fffT+3atdm2\nbRshISF8/fXXvPrqq7d9vSNHjlg8sxBCOCJd1jAWLVpE48aN2bp1K926dSMyMhKA6dOnk5GRwfjx\n4wkKCiIoKIjTp08DMGPGDIYOHYq3tzdeXl507dpVj+hCCOGwDNr13+ILIYQQpbDaXVLllZSUhK+v\nL97e3kycOFHvOOU2ZMgQGjZsSEBAgN5Ryi0rK4uOHTvi7+9PixYtSEhI0DtSuVy6dInQ0FACAwPx\n8/NjzJgxekeqkOLiYoKCgsrcVGKNPDw8aNmyJUFBQcbt87YiLy+P3r1707x5c/z8/Ni6davekUx2\n6NAh42xOUFAQderUufO/34osVluboqIizdPTUzt27JhWWFioPfjgg1paWprescrl559/1nbt2qW1\naNFC7yjllpOTo+3evVvTNE3Lz8/XfHx8bO6/f0FBgaZpmnblyhUtNDRU27Bhg86Jym/y5Mla//79\ntaioKL2jlJuHh4d25swZvWNUyKBBg7TZs2drmqb+/uTl5emcqGKKi4u1Ro0aab/99lupn2MXI4zU\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 0x5d79470>"
+ ]
+ }
+ ],
+ "prompt_number": 12
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 3.3.8,Page No.110"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\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 0x5945590>"
+ ]
+ },
+ {
+ "metadata": {},
+ "output_type": "display_data",
+ "png": "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\nICIiWf4/U4J8H+TjvqoAAAAASUVORK5CYII=\n",
+ "text": [
+ "<matplotlib.figure.Figure at 0x58e1750>"
+ ]
+ }
+ ],
+ "prompt_number": 25
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 3.3.9,Page No.112"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "%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 0x5d75ab0>"
+ ]
+ },
+ {
+ "metadata": {},
+ "output_type": "display_data",
+ "png": "iVBORw0KGgoAAAANSUhEUgAAAYgAAAEPCAYAAABY9lNGAAAABHNCSVQICAgIfAhkiAAAAAlwSFlz\nAAALEgAACxIB0t1+/AAAIABJREFUeJzt3XtUlNX6B/DvoKCZeElzLNAfLBBhALmpWHYSjoIrDcUb\nKnnJsjr562J21Fyt7PJbCqSeUpMsl7dartIyRUtJPQh5TRNNi1I0J7l7RSW0Edi/P96YQGecgXln\n3ndmvp+1WMFcH207D3vv5322RgghQEREdBsPpQMgIiJ1YoIgIiKTmCCIiMgkJggiIjKJCYKIiExi\ngiAiIpMUSxA3b95EbGwsIiMjodPpMGfOHADA5cuXkZCQgKCgICQmJqKyslKpEImI3JpGyesgqqur\n0aZNG9TU1OCRRx7BwoULsWXLFnTu3BmzZs1CRkYGrly5gvT0dKVCJCJyW4ouMbVp0wYAYDAYUFtb\ni44dO2LLli2YPHkyAGDy5MnYvHmzkiESEbktRRNEXV0dIiMjodVqER8fj9DQUFRUVECr1QIAtFot\nKioqlAyRiMhttVTyzT08PHDs2DFcvXoVgwcPxu7duxvdr9FooNFoFIqOiMi9KZog6rVv3x5Dhw7F\nkSNHoNVqUV5ejq5du6KsrAxdunS54/GBgYE4c+aMApESETmvgIAAnD592urHK7bEdPHiRWOF0o0b\nN7Bz505ERUVh2LBhWLt2LQBg7dq1SE5OvuO5Z86cgRBCdV9vvvmm4jEwJsbkjnExJuu+mvqLtWIz\niLKyMkyePBl1dXWoq6vDxIkTMXDgQERFRSElJQUrV66En58fNmzYoFSIRERuTbEEER4ejvz8/Dtu\nv++++7Br1y4FIiIiooZ4JbWM4uLilA7hDozJOozJemqMizHZh6IXyjWXRqOBE4ZNRKSopn52cgZB\nREQmMUEQEZFJTBBERGQSEwQREZnEBEFERCYxQRARkUlMEEREZBITBBERmcQEQUREJjFBEBGRSUwQ\nRERkEhMEERGZxARBREQmMUEQEZFJTBBERGQSE4QL++IL4McflY6CyL6++QY4flzpKFwTDwxyUdu3\nAxMnAq1bA99/D/j4KB0RkfwMBuB//gdo0YLj3Bo8MIhQUABMngxs2QK88AIwfDhQXa10VETy27QJ\n6NkT+N//5Ti3B84gXMzFi0BsLPDmm8CkSYAQUrK4eRP4/HPAg78SkAt59FHgxReB0aOl8f7nnxzn\nd8MZhBszGIBRo4AxY6R/LACg0QAffwwUFwPvvKNsfERyOnECOH0aSE6WxvmKFUBREce5nJggXIQQ\n0jS7Qwdg/vzG97VuLU3F16wBNmxQJDwi2WVmAs8+C3h6Sj+3bg1s3gysXs1xLpeWSgdA8li8WNqk\n27fP9PRaqwWysoCEBMDfH+jTx/ExEsnl6lVpKennnxvfrtVKe28c5/LgDMIFbN8OvPsusHUr4O1t\n/nEREdJy04gRQEmJ4+IjktunnwKDBgEPPnjnfRzn8uEMwsnVVyxt3iyV+1mSnAz8+qtU8fHdd0Cb\nNvaPkUhOQkjLS5mZ5h+TnAz88gvHua1YxeTEbq9YshYrm8iZ5eRIlUs//SRtTpsjBCubbscqJjdh\nqmLJWqxsImeWmQlMm3b35ACwskkOiiWIoqIixMfHIzQ0FGFhYViyZAkA4PLly0hISEBQUBASExNR\nWVmpVIiqdbeKJWuxsomcUXGxNIOYONG6x7OyyTaKLTGVl5ejvLwckZGRqKqqQkxMDDZv3ozVq1ej\nc+fOmDVrFjIyMnDlyhWkp6c3DtrNl5jefx9YtUqqWLrbprQ1fvxRqvj45htWfJD6zZ0LXLoELFvW\ntOdxnEua/NkpVGL48OFi586domfPnqK8vFwIIURZWZno2bPnHY9VUdgOt22bEA88IIReL99rbtok\nhI+PEMXF8r0mkdz+/FOIrl2F+Omn5j2f47zpn52qqGLS6/U4evQoYmNjUVFRAa1WCwDQarWoqKhQ\nODr1aGrFkrVY2UTOoL7vUmho857PyqamU3yTuqqqCqNGjcLixYvhfdt6iUajgcbSTpSbuHgRSEoC\nFi4EHn5Y/tefPRvQ6YAnnwTq6uR/fSJbLVsm7b3Z4rXXgJAQjnNrKTqDuHXrFkaNGoWJEyciOTkZ\ngDRrKC8vR9euXVFWVoYuXbqYfO5bb71l/D4uLg5xcXEOiFgZtlQsWau+sik+Xqr4aPDXS6S4hn2X\nbFFf2eQu4zw3Nxe5ubnNfr5im9RCCEyePBmdOnXCe++9Z7x91qxZ6NSpE2bPno309HRUVla69Sa1\nEFK/mfPnpSm2vWu5KyqkayvefRdISbHvexFZ6/nnpTYacn2gV1QAffsCCxa41zhv6menYgli7969\nePTRR9GrVy/jMlJaWhr69u2LlJQUnDt3Dn5+ftiwYQM6dOjQOGg3ShByVixZixUfpCbXrkl7bj//\nbLq1RnO54zh3mgRhC3dJENu3A08/DRw4IO+mtDU2b5YOG+IpXaS0Dz4A8vKkI3Tl5m7jvKmfnaqo\nYqI72atiyVqsbCI1sKbvki1Y2XR3nEGoUHN7LMmNPZtIabt3S7/hW+q7ZAt36tnEXkxOzhEVS9aq\nr2xiLxtSyrJl1vVdsgV7NpnHGYSKOLpiyVqsbCIlFBcDvXoBej3Qrp39388dKpu4B+HELJ0KpxSe\nRkdKWLECGD/eMckB4Gl0pnAGoRJKVixZy90qPkg5BgPg5wfs3Nn81hrN5crjnDMIJ6R0xZK1WNlE\njrJpExAU5PjkALCyqSHOIBSmloola7GyiRxhwADpt/gxY5R5f1etbGIVkxNRU8WStVjZRPZ24gRQ\nWGh73yVbsLJJYjFBbN26FVFRUejYsSO8vb3h7e2Ndo7aNXJhcpwKp5T6U7p4Gh3ZQ2amVM3n6als\nHDyNzoolpoCAAGzatAlhYWHwUMk8yxWWmJTosSQ3d+xlQ/Zlr75LtnClcS77EpOvry9CQ0NVkxxc\nwfbt0jUFW7c6b3IAgIgIablpxAigpETpaMgVfPIJMGiQepID4N7j3OIM4uDBg5g7dy7i4+Ph5eUl\nPUmjwYwZMxwSoCnOPIMoKADi4qSpqz0O/lFCejrw5Zes+CDbCCFVLWVmSv9G1CYtDdi40bnHuewz\niDfeeANt27bFzZs3UVVVhaqqKly/ft2mIN2VvU+FUwpPoyM55OZKm8MDBigdiWnueBqdxRlEWFgY\nfvrpJ0fFYxVnnEEYDNI65kMPSb9xu5qbN6VTugYPdv1Tusg+Ro+WxpCtx4rak7OPc9lnEEOGDMG3\n335rU1DuzpkrlqzFyiayRXExkJMDTJyodCR3526VTRZnEG3btkV1dTW8vLzg+VfdmUajwbVr1xwS\noCnONoNwhYola7lSxQc5zptvSkuwy5YpHYl1nHWc80Q5lXGGHktyc+VeNiQ/Jfsu2cIZxzl7MamI\ns/RYkht7NlFTKNl3yRbu0LOpWRc3REVFyR2Hy3HViiVrsbKJrJWZqe6N6btx9comLjHZgatXLFnL\n2Ss+yP5OnJDGx++/K99ao7mcaZxziUlh7lCxZK36io++faXZhKue0kXNp5a+S7Zw5XFuNkH4+/ub\nfZJGo8Fvv/1ml4CcnVpPhVMKT+kic65dk1pp//yz0pHYzlXHudkEcfjwYeP3Go0GdXV1WL9+PRYu\nXIjo6GiHBOds6nssHTjg+uWsTdGwl40zVXyQfamx75ItXHGcm00QnTt3BgDU1dXhk08+wYIFCxAZ\nGYlt27ZBp9M5LEBn4a4VS9Zyh4oPsp4Q0vJSZqbSkcjL1ca52UUQg8GA5cuXIyQkBHv27EFWVhbW\nrVvH5GCCu1csWcvVKz7Iemrvu2QLVxrnZquYfH190bJlS7z88svo3r07NBoNAEAIAY1Gg5EjRzo0\n0IbUVMXEiqWmcaaKD7IfZ+i7ZAu1jnPZrqR+8sknjS9oyurVq5senUzUkiCEkCowzp+XLvbhprR1\nKiqkio8FC1yr4oOsU1wM9OoF6PWAKx9OqcZxLnurjZs3b6J169aNbrt06RI6derUvAhloJYE4U49\nluTmrL1syHbO1nfJFseOSeN82zZ1jHPZu7mOHDkSt27dMv5cVlaGhISE5kV3m6eeegparRbh4eHG\n2y5fvoyEhAQEBQUhMTERlZWVsryX3FzlVDiluPMpXe7MYABWrACmTVM6EseIjJT+vM46zi0miBEj\nRiAlJQW1tbXQ6/UYPHgw0mVabJ8yZQqys7Mb3Zaeno6EhAScOnUKAwcOlO295FRfsfTll6xYskVy\nsrQGPXw4UF2tdDTkCM7ad8kWzjzOrWq18cEHHyA7Oxu///47li9fjv79+8sWgF6vR1JSEk6cOAEA\nCA4ORl5eHrRaLcrLyxEXF4dff/21cdAKLjFdvAjExkrT5EmTFAnBpQgh/T3++ad00RT3cVzbgAFS\nB9QxY5SOxLHUMs5l24NYtGhRoxf85JNPEB4ejqioKFnPpL49QXTs2BFXrlwBIFVM3XfffcafjUEr\nlCBYsWQfaq34IHm5Qt8lW6hhnMvWi+n69euNKphGjBgBjUaDqqoq2yJsAo1GY7aK6q0Gf8NxcXGI\ns/Mp5+yxZD+u3MuG/uYKfZdsocQ4z83NRW5ubrOfr3g3V1NLTLm5uejatSvKysoQHx+viiUmVizZ\nHyubXNe1a9J+3c8/u05rjeZSsrJJ9iomRxs2bBjWrl0LAFi7di2Sk5MVjogVS47CyibX5Wp9l2zh\nTJVNis4gxo8fj7y8PFy8eBFarRbvvPMOhg8fjpSUFJw7dw5+fn7YsGEDOnTo0Oh5jpxBFBQAcXHS\n1JBtNBwjLQ3YuNE1etmQtDwbGiotMdl5JdipKDHOeSa1jFixpAy1VHyQPHbvliqXfvpJ6r9EEiXG\nuewJ4vz581ixYgX0ej1qamqMb7Jq1SrbIrWBIxIEK5aUpYaKD5KHq/ddsoWjx7nsCeKhhx7Co48+\nipiYGHj8leI0Gg1GjRplW6Q2sHeCYI8ldVBjLxtqmpISIDzc9fsu2cKR41z2I0dv3LiBjIwMm4Jy\nNjwVTh1c9ZQud/Lxx8D48UwOd6PVAllZ6hznFj/+Hn/8cXzzzTeOiEUVWLGkLqxscl7u1nfJFmqt\nbLK4xNS2bVtUV1fDy8sLnn9d4aLRaHDt2jWHBGiKvZaYWLGkXqxscj4bNkiVSzZcp+V27D3OWcXU\nTKxYUjdWNjkfd+27ZAt7j3PZEsQvv/yCkJAQ5Ofnm3xidHR08yKUgdwJghVLzoGVTc7D3fsu2cKe\n41y2BPHMM89gxYoViIuLM9kPaffu3c2P0kZyJghWLDkXVjY5h2nTgC5dmMiby17jnEtMTcQeS85H\nbad0UWPsuyQPe4xzp+/F5EisWHJOaq34IAn7LslDDePc4nUQrqr+VLjNm3kqnDNKTgZ++UU6pYuV\nTeohhFS5lJmpdCSuQelx7pZLTKxYcg2sbFIf9l2Sn5zjXPYlpoEDB1p1m7MwGIBRo6TSOyYH56bR\nSFPwoiLgnXeUjoYAYNkyaYOayUE+So5zs0tMN27cQHV1NS5cuIDLly8bb7927RpKnHThl6fCuR6e\nRqceJSVATo5U9EHyUmqcm00QH330ERYvXozS0lLExMQYb/f29sYLL7zgkODkxh5LrknNvWzcCfsu\n2ZcS49ziHsSSJUvw0ksv2T+SJmjOHsT27cDTTwMHDnBT2lVt3iytf3//PeDjo3Q07sVgAPz8gJ07\npcOByH5sGed2uQ5i//79jc6DAIBJCi7gN/UPyR5L7oM9m5TBvkuO1dxxLnuCmDBhAn777TdERkai\nRYsWxtuXLl1qfVQya8ofkhVL7oWVTcpg3yXHau44lz1BhISEoKCgwGS7DaVY+4dkjyX3xJ5NjsW+\nS8pozjiXvcw1LCwMZWVlVr+gWrBiyX3VV3ysXi0tfZB9ffih1M+MycGxHDHOLV5JfeHCBeh0OvTt\n2xetWrUCIGWhLVu22CcimbBiyb2xsskxrl0DPvtM6rtEjmfvcW5xiSn3r12nhlMTjUaDAQMGyBtJ\nE1iaJrFiieqxssm+PvgAyMsDvvhC6Ujcm7Xj3C5VTHq9HqdPn8agQYNQXV2NmpoatFOw2Pluf0hW\nLNHtWNlkH0JIJa2ZmdK/OVKWNeNc9j2Ijz/+GGPGjMFzzz0HACguLsaIESOsfgNHungRSEoCFi5k\ncqC/vfYaEBICPPkkUFendDSuIzdXagOh4GICNWCPcW4xQSxbtgx79+41zhiCgoJw/vx5ed5dRuyx\nROawZ5N9sO+SuthjnFtMEK1atTJuTgNATU2NqkpeAVYskWWsbJJXfd+liROVjoQaknucW6xiGjBg\nAObNm4fq6mrs3LkTmZmZSEpKsv2dZcSKJbIGK5vkw75L6iXnOLe4SV1bW4uVK1dix44dAIDBgwdj\n6tSpis4iGm60sGKJmoqVTbZh3yXnYGqcu8SZ1NnZ2Zg+fTpqa2sxdepUzJ49u9H99X9IVixRc7Gy\nqfnYd8l53D7OZU8QW7duxdy5cxs169NoNLh27ZptkZtRW1uLnj17YteuXfDx8UGfPn3w2WefISQk\n5O+gNRpcuCDYY4majT2bmo99l5zH7eO8RQuZy1ynT5+OtWvX4tKlS7h+/TquX79ut+QAAIcOHUJg\nYCD8/Pzg6emJcePGISsr647HsWKJbMHKpuY5cQIoLJTOSib1s3WcW9yk9vX1RWhoKDwc9CtWSUkJ\nunXr1uj9v//++zsex4olshVPo2u6zEz2XXI2Dcd5U1lMEBkZGXjssccQHx8PLy8vANISz4wZM5r+\nblawdvN7y1UNWvzzrx/8APjbJRxyB08BY38Bxr6tdCBOoKv0n7f5d+UczgLQ//W9P4BzTXu6xQTx\nxhtvwNvbGzdv3oTBYGhqeE3m4+ODoqIi489FRUXw9fW943EiV3V76+Sk9u6VrkLdu1fpSNSrsBB4\n5BFpHTs+XuloqLmaWn1qMUGUlZVh586dzQ6oqXr37o3CwkLo9Xo8+OCDWL9+PT777DOHvT8RNVZZ\nKbWweecdJgd3Y3FjYciQIfj2228dEQsAoGXLlvjggw8wePBg6HQ6jB07tlEFExE5Tk0NMHasdCjN\nX+3YyI1YLHNt27Ytqqur4eXlBc+/dqbsWeZqjabW8hLdDZeYzHvpJeDUKeDrr4GWFtcbSO2a+tlp\n8X95VVWVTQERkXNavly6WvrAASYHd2XV//asrCx89913xoOC1NaLiYjklZMjnXO8d69UUk7uyeIe\nxGuvvYYlS5YgNDQUISEhWLJkCebMmeOI2IhIAYWFUiO+zz4DAgOVjoaUZHEPIjw8HMeOHUOLFi0A\nSK0wIiMjceLECYcEaAr3IEhO3IP4W2Ul0K8f8Mor3JR2RbKfKKfRaFBZWWn8ubKyUnXnQRCR7Vix\nRLezuAcxZ84cREdHI+6vQ2fz8vKQnp5u77iIyMFmzJB69yxapHQkpBYWE8T48eMxYMAAHD58GBqN\nBhkZGejatasjYiMiB2HFEplidijk5+c3+rm+3UVpaSlKS0sRHR1t38iIyCFYsUTmmE0QvXv3RlhY\nGDp16mTy/t27d9stKCJyjPqKpc8/Z8US3clsgvjPf/6DL774Am3atMHYsWMxYsQIeHt7OzI2IrIj\n9lgiS8xWMU2fPh379u3DkiVLUFxcjIEDB2LMmDE4duyYI+MjIjtgxRJZw2KZa0BAAIYPH47ExEQc\nPnwYJ0+edERcRGRHrFgia5hdYjpz5gw+//xzZGVloXv37hg7dixef/113HPPPY6Mj4hkxoolspbZ\nK6k9PDwQHh6O5ORktGvXTnrwX1fh2fNEOWvwSmqSkztdSZ2TA6SmSn9Wbkq7H9m6uc6dO9d4xTQ7\nuhI5P1YsUVOZTRBvvfWWA8MgIntixRI1h8VNaiJybqxYouZigiBycaxYouZiDQORC2PFEtnC4pBZ\ntGhRo51vjUaD9u3bIyYmBpGRkXYPkIiahz2WyFYWl5iOHDmC5cuXo7S0FCUlJfjoo4+wfft2PPPM\nM8jIyHBEjETURDwVjuRgcQZRVFSE/Px8tG3bFgDwzjvvYMiQIcjLy0NMTAxmz55t9yCJyHqsWCK5\nWJxBXLhwAV5eXsafPT09UVFRgTZt2qB169Z2DY6ImoYVSyQnizOIJ554ArGxsUhOToYQAlu3bkVq\nair++OMP6HQ6R8RIRFZixRLJyWyrjYYOHz6Mffv2QaPRoH///ujdu7cjYjOLrTZITq7SamP5cmDx\nYqliiZvSZIpsrTYaio6OxoMPPoiamhpoNBqcO3cO3bt3b3aQRCQvViyRPVhMEEuXLsXbb7+NLl26\noEWLFsbbT5w4YdfAiMg67LFE9mIxQbz//vs4efKk2aNHiUg5rFgie7JYxdS9e3dju2+5fPHFFwgN\nDUWLFi2Qn5/f6L60tDT06NEDwcHB2LFjh6zvS+RKWLFE9mZxBuHv74/4+HgMHTrUWO5q63kQ4eHh\n2LRpE567bVQXFBRg/fr1KCgoQElJCQYNGoRTp07Bw4Mto4hux4olsjeLCaJ79+7o3r07DAYDDAaD\n8cAgWwQHB5u8PSsrC+PHj4enpyf8/PwQGBiIQ4cOoV+/fja9H5GrYY8lcgSLQ8uR50KUlpY2Sga+\nvr4oKSlx2PsTOQNWLJGjmE0QL7/8MhYvXoykpKQ77tNoNNiyZctdXzghIQHl5eV33D5//nyTr2mO\nudlKw8QVFxeHuLg4q1+TyFmxYomaIjc3F7m5uc1+vtkEMXHiRADAq6++2qwX3rlzZ5Of4+Pjg6Ki\nIuPPxcXF8PHxMflYnnhH7oYVS9RUt//y/Pbbbzfp+WYTRP3V0vb+zbzhVX3Dhg1DamoqZsyYgZKS\nEhQWFqJv3752fX8iZ8CKJVKC2QQRHh5u9kkajQbHjx9v9ptu2rQJL730Ei5evIihQ4ciKioK27dv\nh06nQ0pKCnQ6HVq2bInMzEybN8SJXAErlkgJZnsx6fV6AEBmZiYAaclJCIF169YBgKJnQbAXE8lJ\n7b2Y2GOJ5NLUz06LzfoiIyNx7NixRrdFRUXh6NGjzYtQBkwQJCc1J4icHCA1VYqNm9Jkq6Z+dlq8\nAk0Igb0N/uXs27ePH85EDsBT4UhpFq+DWLVqFaZMmYKrV68CADp06IDVq1fbPTAid8aKJVIDiwki\nJiYGx48fNyaI9u3b2z0oInfGiiVSC4sJ4ubNm9i4cSP0ej1qamoASOtYc+fOtXtwRO6IFUukFhYT\nxPDhw9GhQwfExMTwDGoiO6vvsXTwIHsskfIsDsGSkhJ8++23joiFyK017LHElVxSA4tVTA8//LBN\nF8URkWWsWCI1sjiD2LNnD1avXg1/f3+0atUKgO1XUhPR3+orlv7v/1ixROpiMUFs377dEXEQuaWG\nFUvPPqt0NESNWVxi8vPzQ1FREXbv3g0/Pz/ce++9vFCOSCasWCI1s+rAoCNHjuDkyZOYMmUKDAYD\nJkyYgH379jkiPiKXxYolUjuLw3LTpk04evQoYmJiAEhnNly/ft3ugRG5MlYskTOwmCBatWoFD4+/\nV6L++OMPuwZE5Op4Khw5C4t7EGPGjMFzzz2HyspKfPzxxxg4cCCmTp3qiNiIXA4rlsiZWGz3DQA7\nduzAjh07AACDBw9GQkKC3QO7G7b7Jjk5qt13TQ0wdCgQHCyd70DkaE397LRqaywxMRGJiYm4cOEC\nOnfu3OzgiNwZK5bI2ZhdYjpw4ADi4uIwcuRIHD16FGFhYQgPD4dWq+W1EURNVF+xtH49K5bIeZgd\nqi+88ALS0tJw9epVxMfHIzs7G/369cOvv/6KcePG4bHHHnNknEROixVL5KzMziBqa2uRmJiIMWPG\n4IEHHkC/fv0AAMHBwdBoNA4LkMiZsccSOTOzCaJhEmCbb6KmY8USOTuzS0zHjx+Ht7c3AODGjRvG\n7+t/JiLzamqAlBT2WCLnZjZB1NbWOjIOIpfyyiuAhwcrlsi5sZ6CSGbLlwO7drHHEjk/Dl8iGbFi\niVwJEwSRTNhjiVyNxV5MRGQZK5bIFTFBENmIFUvkqhRJEDNnzkRISAgiIiIwcuRIXL161XhfWloa\nevTogeDgYGODQCI1Y8USuSpFEkRiYiJ+/vln/PjjjwgKCkJaWhoAoKCgAOvXr0dBQQGys7Mxbdo0\n1NXVKREikVXqK5bYY4lckSIJIiEhwXgIUWxsLIqLiwEAWVlZGD9+PDw9PeHn54fAwEAcOnRIiRCJ\nLKqvWNq6lRVL5JoU34NYtWoVhgwZAgAoLS2Fr6+v8T5fX1+UlJQoFRqRWeyxRO7AbpPihIQElJeX\n33H7/PnzkZSUBACYN28evLy8kJqaavZ12BiQ1IYVS+Qu7JYgdu7cedf716xZg23btuG///2v8TYf\nHx8UFRUZfy4uLoaPj4/J57/11lvG7+Pi4hAXF2dTvETWYMUSOZPc3Fzk5uY2+/lWHTkqt+zsbLz6\n6qvIy8trdEJdQUEBUlNTcejQIZSUlGDQoEE4ffr0HbMIHjlKcmrKkaMvvigtL339NTelyfnY5chR\nub344oswGAzGs60feughZGZmQqfTISUlBTqdDi1btkRmZiaXmEg12GOJ3I0iMwhbcQZBcrJmBpGT\nA6SmSo/hpjQ5K6eYQRA5E/ZYIneleJkrkZqxYoncGRMEkRmsWCJ3xwRBZAZ7LJG74x4EkQmsWCJi\ngiC6A0+FI5IwQRA1wIolor9xD4LoL6xYImqMCYIIrFgiMoUJggjA99+zYonodkwQ5Pbuvx/o14+n\nwhHdjr2YiIjcRFM/OzmDICIik5ggiIjIJCYIIiIyiQmCiIhMYoIgIiKTmCCIiMgkJggiIjKJCYKI\niExigiAiIpOYIIiIyCQmCCIiMokJgoiITGKCICIik5ggiIjIJCYIIiIyiQmCiIhMUiRBvPHGG4iI\niEBkZCQGDhyIoqIi431paWno0aMHgoODsWPHDiXCIyIiKJQgZs2ahR9//BHHjh1DcnIy3n77bQBA\nQUEB1q9fj4KCAmRnZ2PatGmoq6tTIsRmyc3NVTqEOzAm6zAm66kxLsZkH4okCG9vb+P3VVVV6Ny5\nMwAgKyvgK/nsAAAKZklEQVQL48ePh6enJ/z8/BAYGIhDhw4pEWKzqHFAMCbrMCbrqTEuxmQfih3R\n/vrrr+PTTz/FPffcY0wCpaWl6Nevn/Exvr6+KCkpUSpEIiK3ZrcZREJCAsLDw+/42rp1KwBg3rx5\nOHfuHKZMmYLp06ebfR2NRmOvEImI6G6Ewn7//XcRGhoqhBAiLS1NpKWlGe8bPHiwOHjw4B3PCQgI\nEAD4xS9+8YtfTfgKCAho0uezIktMhYWF6NGjBwBp3yEqKgoAMGzYMKSmpmLGjBkoKSlBYWEh+vbt\ne8fzT58+7dB4iYjckSIJYs6cOTh58iRatGiBgIAAfPjhhwAAnU6HlJQU6HQ6tGzZEpmZmVxiIiJS\niEYIIZQOgoiI1MfprqTOzs5GcHAwevTogYyMDKXDQVFREeLj4xEaGoqwsDAsWbJE6ZCMamtrERUV\nhaSkJKVDMaqsrMTo0aMREhICnU6HgwcPKh0S0tLSEBoaivDwcKSmpuLPP/90eAxPPfUUtFotwsPD\njbddvnwZCQkJCAoKQmJiIiorKxWPaebMmQgJCUFERARGjhyJq1evKh5TvUWLFsHDwwOXL192aEx3\ni2vp0qUICQlBWFgYZs+erXhMhw4dQt++fREVFYU+ffrg8OHDd38RWzaYHa2mpkYEBASIs2fPCoPB\nICIiIkRBQYGiMZWVlYmjR48KIYS4fv26CAoKUjymeosWLRKpqakiKSlJ6VCMJk2aJFauXCmEEOLW\nrVuisrJS0XjOnj0r/P39xc2bN4UQQqSkpIg1a9Y4PI7vvvtO5Ofni7CwMONtM2fOFBkZGUIIIdLT\n08Xs2bMVj2nHjh2itrZWCCHE7NmzVRGTEEKcO3dODB48WPj5+YlLly45NCZzceXk5IhBgwYJg8Eg\nhBDi/Pnzisc0YMAAkZ2dLYQQYtu2bSIuLu6ur+FUM4hDhw4hMDAQfn5+8PT0xLhx45CVlaVoTF27\ndkVkZCQAoG3btggJCUFpaamiMQFAcXExtm3bhqlTp0KoZBXx6tWr2LNnD5566ikAQMuWLdG+fXtF\nY2rXrh08PT1RXV2NmpoaVFdXw8fHx+Fx/OMf/0DHjh0b3bZlyxZMnjwZADB58mRs3rxZ8ZgSEhLg\n4SF9bMTGxqK4uFjxmABgxowZePfddx0aS0Om4vrwww8xZ84ceHp6AgDuv/9+xWN64IEHjLO+yspK\ni2PdqRJESUkJunXrZvxZbRfS6fV6HD16FLGxsUqHgldeeQULFiww/mNWg7Nnz+L+++/HlClTEB0d\njWeeeQbV1dWKxnTffffh1VdfRffu3fHggw+iQ4cOGDRokKIx1auoqIBWqwUAaLVaVFRUKBxRY6tW\nrcKQIUOUDgNZWVnw9fVFr169lA6lkcLCQnz33Xfo168f4uLi8MMPPygdEtLT043jfebMmUhLS7vr\n49Xz6WEFNVc0VVVVYfTo0Vi8eDHatm2raCxff/01unTpgqioKNXMHgCgpqYG+fn5mDZtGvLz83Hv\nvfciPT1d0ZjOnDmD999/H3q9HqWlpaiqqsK6desUjckUjUajqvE/b948eHl5ITU1VdE4qqurMX/+\nfGM/NwCqGfM1NTW4cuUKDh48iAULFiAlJUXpkPD0009jyZIlOHfuHN577z3jbN4cp0oQPj4+jTq/\nFhUVwdfXV8GIJLdu3cKoUaMwYcIEJCcnKx0O9u/fjy1btsDf3x/jx49HTk4OJk2apHRY8PX1ha+v\nL/r06QMAGD16NPLz8xWN6YcffsDDDz+MTp06oWXLlhg5ciT279+vaEz1tFotysvLAQBlZWXo0qWL\nwhFJ1qxZg23btqkikZ45cwZ6vR4RERHw9/dHcXExYmJicP78eaVDg6+vL0aOHAkA6NOnDzw8PHDp\n0iVFYzp06BBGjBgBQPr3Z6nXnVMliN69e6OwsBB6vR4GgwHr16/HsGHDFI1JCIGnn34aOp3uri1D\nHGn+/PkoKirC2bNn8fnnn+Of//wnPvnkE6XDQteuXdGtWzecOnUKALBr1y6EhoYqGlNwcDAOHjyI\nGzduQAiBXbt2QafTKRpTvWHDhmHt2rUAgLVr16ril4/s7GwsWLAAWVlZaN26tdLhIDw8HBUVFTh7\n9izOnj0LX19f5OfnqyKZJicnIycnBwBw6tQpGAwGdOrUSdGYAgMDkZeXBwDIyclBUFDQ3Z9grx10\ne9m2bZsICgoSAQEBYv78+UqHI/bs2SM0Go2IiIgQkZGRIjIyUmzfvl3psIxyc3NVVcV07Ngx0bt3\nb9GrVy8xYsQIxauYhBAiIyND6HQ6ERYWJiZNmmSsOnGkcePGiQceeEB4enoKX19fsWrVKnHp0iUx\ncOBA0aNHD5GQkCCuXLmiaEwrV64UgYGBonv37sax/vzzzysSk5eXl/HvqSF/f39FqphMxWUwGMSE\nCRNEWFiYiI6OFrt371YkpoZj6vDhw6Jv374iIiJC9OvXT+Tn59/1NXihHBERmeRUS0xEROQ4TBBE\nRGQSEwQREZnEBEFERCYxQRARkUlMEEREZBITBLk0e7c98fPzM9leOi8vDwcOHDD5nK1bt6qiVT2R\nJYqcKEfkKPbuX6TRaEz2/tm9eze8vb3x0EMP3XFfUlKSqs7oIDKHMwhyO2fOnMFjjz2G3r1749FH\nH8XJkycBAE8++SRefvll9O/fHwEBAdi4cSMAoK6uDtOmTUNISAgSExMxdOhQ432AdChMTEwMevXq\nhZMnT0Kv1+Ojjz7Ce++9h6ioKOzdu7fR+69ZswYvvvjiXd+zIb1ej+DgYEyZMgU9e/bEE088gR07\ndqB///4ICgqyfOgLUTMxQZDbefbZZ7F06VL88MMPWLBgAaZNm2a8r7y8HPv27cPXX3+N1157DQDw\n1Vdf4ffff8cvv/yCTz/9FAcOHGg0M7n//vtx5MgRPP/881i4cCH8/Pzwr3/9CzNmzMDRo0fxyCOP\nNHr/22c1pt7zdmfOnMG///1v/Prrrzh58iTWr1+Pffv2YeHChZg/f75cfzVEjXCJidxKVVUVDhw4\ngDFjxhhvMxgMAKQP7vqGeCEhIcbzF/bu3Wts1azVahEfH9/oNes7dkZHR+Orr74y3m5NFxtz73k7\nf39/Y2PD0NBQ45kVYWFh0Ov1Ft+HqDmYIMit1NXVoUOHDjh69KjJ+728vIzf13/A377PcPsHf6tW\nrQAALVq0QE1NTZNjMvWet6t/DwDw8PAwPsfDw6NZ70lkDS4xkVtp164d/P398eWXXwKQPpCPHz9+\n1+f0798fGzduhBACFRUVxnbJd+Pt7Y3r16+bvI/9MclZMEGQS6uurka3bt2MX++//z7WrVuHlStX\nIjIyEmFhYdiyZYvx8Q33B+q/HzVqFHx9faHT6TBx4kRER0ebPEu74alvSUlJ2LRpE6KiorBv3z6z\njzP3nqZe29zPajppjlwL230TWeGPP/7Avffei0uXLiE2Nhb79+9XxaE0RPbEPQgiKzz++OOorKyE\nwWDA3LlzmRzILXAGQUREJnEPgoiITGKCICIik5ggiIjIJCYIIiIyiQmCiIhMYoIgIiKT/h/FhIMx\nfyRzHAAAAABJRU5ErkJggg==\n",
+ "text": [
+ "<matplotlib.figure.Figure at 0x5c44130>"
+ ]
+ }
+ ],
+ "prompt_number": 17
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 3.3.10,Page No.114"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\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 0x5738d10>"
+ ]
+ },
+ {
+ "metadata": {},
+ "output_type": "display_data",
+ "png": "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\nCwAAAABJRU5ErkJggg==\n",
+ "text": [
+ "<matplotlib.figure.Figure at 0x5788db0>"
+ ]
+ }
+ ],
+ "prompt_number": 12
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 3.3.11,Page No.115"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\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 0x5df5230>"
+ ]
+ },
+ {
+ "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\np3Dbbbc5tVFNeC6zWf0G5+1F8oq98gp88glcUClFaHbggBrSe/ddaRC8Rak9hdDQUDIyMmjatCnV\nz2+DdXZHs7Okp+A6p06pYxADA3UncY1Ro+DoUXXWr9DvoYfUiiNHSu4I93PJRHPxzuZLBWq8i0ij\nIOw5elSVv9iyRQ2NCX1WrIBnnlE7l2vU0J1GgIuGjwIDA9m/fz9r164lMDCQWrVqyQ1ZeKxrrlFz\nC1JEV6/Tp1VV3nfflQbB25TaU5g4cSLbtm0jLS2NvXv3kp2dTWxsLBs3bqyojJeRnoK4khMnIDhY\nLbUNC9OdpnIaO1aVxfaFBQy+xCU9haVLl5KcnGxbhhoQEOD0cZxCuFPduvDSS2qZqqh4v/6qlge/\n+abuJKI8Sm0UqlevTpULlqecPHnSrYGEcIVhw9S8wrZtupNULoahCt2NHQt2zscSHq7URqFv3748\n+eSTHDt2jPnz59OpUyeGDBlSEdmEKLeaNWHMGKmHVNG++AL++uvv0uzC+zhU+2jVqlWsWrUKgK5d\nuxITE+P2YFcicwrCEfn5cPPN8OmncMcdutP4vmPHwGKBpUuhQwfdaURJXFoQD+Dw4cNcd911Tp+G\n1r9/f9LS0gA4duwY9evXt53PkJCQwIIFC6hatSqzZ8+mS5cul4eWRkE46MMP4aOPICVFNk+527Bh\nUFgI772nO4mwx6mJ5s2bNxMdHU3v3r3ZsWMH4eHhRERE0LBhQ1asWOFUsEWLFrFjxw527NhBnz59\n6NOnDwBWq5WkpCSsVisrV64kPj6eoqIip64lKrdHH1X1kFav1p3Et23dCl9/DQkJupMIZ9ltFJ5+\n+mleeeUV4uLi6NixI//61784dOgQP/74I6NHj3bJxQ3D4MsvvyQuLg6A5ORk4uLi8Pf3JzAwkKCg\nIFJTU11yLVE5+fmp3bRjxqhJUOF6hYWqXMr06VK63BfYbRQKCwvp0qULffv2pVGjRtxyyy0AhISE\nOD18VGz9+vU0bNiQ5s2bA5CTk4PZbLZ932w2k52d7ZJricqrb184dw6Sk3Un8U1z50Lt2qpXJryf\nn71vXHjjr1GOLYkxMTEcOnTossenTp1Kjx49AFi4cCEDBgy44vvYa4AmXrBlNTo6mujo6DJnFJVD\nlSrq2M5XXlHnU1etqjuR7zh4UPXE1q2TORtPlJKSQkpKSpleY3eiuWrVqlx11VUAnD59mpo1a9q+\nd/r0aduBO+VVUFCA2Wxm+/bt3HjjjQBMmzYNgFGjRgFw7733MmnSJDpcspRBJppFWRmGOp3t2Weh\nlN9DRBkMGAA33SRzCd7CqYnmwsJCcnNzyc3NpaCgwPZ58dfOWrNmDaGhobYGAaBnz54sWrSI/Px8\nMjMzSU9Pp3379k5fSwiTCaZMgQkT1FCScN7q1bB5M4wbpzuJcCW7w0fulpSUZJtgLmaxWIiNjcVi\nseDn50diYqLL5i+E6NQJGjeGjz9Wx3eK8jtzRi1BnTMHzg8oCB9Rpn0KnkKGj0R5bd4M/fpBejqc\nPx5ElMPkybBjh9qoJryHyzeveQppFIQz7r8funZVtf5F2WVkwC23wPbt0KSJ7jSiLKRREKIEO3dC\n9+6qt3C++K9wkGFAt25qKO6ll3SnEWXlktLZQviaVq1ULaR33tGdxPt89RVkZ8Pw4bqTCHeRnoKo\nlH79Fe66S/UW6tXTncY7nDihCt4tWiQFBr2V9BSEsCMkRA0hvfGG7iTeY8IE6NJFGgRfJz0FUWn9\n9hu0awdpaXDddbrTeLadO9Xk/J498rPyZtJTEOIKmjWD2FhVyE3YV1SkCt5NmSINQmUgPQVRqWVn\nQ0QE7N4NF2yuFxeYP1+dSbFhg6ojJbyXLEkVwgEjRqgduu++qzuJ5/nzTwgPhzVroGVL3WmEs6RR\nEMIBhw+riedt2yAwUHcazzJoEDRoADNn6k4iXEEaBSEcNG4cHDigju8Uyrp16owEq1WdlyC8nzQK\nQjjo2DEIDob161WvobLLz1eb/F57DXr31p1GuIqsPhLCQfXrwwsvqLX4Qu3faNoUevXSnURUNOkp\nCHHeyZMQFAQrV0JkpO40+mRlQdu2kJqqlu0K3yE9BSHKoFYtGDVKDo159ll4/nlpECoraRSEuMCT\nT6rdu1u26E6iR3Iy7N0LL76oO4nQRUujkJqaSvv27YmKiqJdu3Zs3brV9r2EhASCg4MJCQlh1apV\nOuKJSqxGDdVTGDtWd5KKd/Kk6iUkJsoBRJWZljmF6OhoRo8eTdeuXVmxYgUzZsxg7dq1WK1WBgwY\nwNatW8nOzqZz587s3buXKpdso5Q5BeFO585BaCi8/z507Kg7TcUZOVLt8P7sM91JhLt47JxCo0aN\nOH78OADHjh0jICAAgOTkZOLi4vD39ycwMJCgoCBSU1N1RBSVmL8/TJwIY8aoQ2Uqg927YcECmDVL\ndxKhm5ZGYdq0aYwYMYImTZrw0ksvkZCQAEBOTg5ms9n2PLPZTHZ2to6IopKLi4Pjx+G773Qncb/i\ngneTJ0PDhrrTCN383PXGMTExHDp06LLHp0yZwuzZs5k9eza9evVi8eLFDB48mNWrV5f4PiaTqcTH\nJ06caPs8Ojqa6OhoV8QWAoCqVeHVV9XcQrduvl0I7uOP4exZ+Mc/dCcRrpaSkkJKSkqZXqNlTqFu\n3bqcOHECAMMwqF+/PsePH2fatGkAjBo1CoB7772XSZMm0aFDh4teL3MKoiIYhjpvYeRI6NtXdxr3\nOHIEwsJUj6h1a91phLt57JxCUFAQ69atA+CHH36gRYsWAPTs2ZNFixaRn59PZmYm6enptG/fXkdE\nITCZVJmH8eOhsFB3GvcYNUqdKSENgijmtuGjK5k/fz7Dhg3j7Nmz1KxZk/nz5wNgsViIjY3FYrHg\n5+dHYmKi3eEjISpC167qYJnPPlMVQ33Jpk2qh2C16k4iPImUuRCiFD/+qBqEtDSoVk13GtcoKIA2\nbWD0aOjfX3caUVE8dvhICG9y113QogV88IHuJK5hGDBjBlx/PfTrpzuN8DTSUxDCAVu3woMPQkYG\n1KypO0355OfDokWqAmp+PixbpgoAispDegpCuEi7dtC+PcydqztJ2R05AlOnqlPlPv0UEhLUZjVp\nEERJpKcghIN274bOnSE9HerU0Z2mdGlp8NZbqnfQqxcMHy7nLFd20lMQwoXCw6FTJ3j7bd1J7DMM\nWLsWevSAO+9U5yv/8osqYSENgnCE9BSEKIOMDLj1VlVe+uqrdaf524XzBWfPqlPkHnnEe+c/hHvI\nGc1CuMHQoeo38KlTdSdR8wXz5sE776idyS+8oPZW+HJZDlF+0igI4Qa//w5RUWrTl64CcjJfIMpD\n5hSEcIMmTeDhh9Uqnook8wWiIkhPQYhyOHQILBb4+Wdo3Ni918rPh6QkNV9w5ozMF4jyk+EjIdxo\n1Cg4ehTOl+5yOZkvEK4mjYIQbnT0qCp/sWWLazeC7d2r5gsWLpT5AuFaMqcghBtdc4066P6C857K\n7cL5gjvuUJVZZb5A6CA9BSGccOIEBAfD99+rzW1lJfMFoiLJ8JEQFWDmTHU2wddfO/4amS8QOnjs\n8NHPP//MrbfeSsuWLenZsye5ubm27yUkJBAcHExISAirVq3SEU+IMhk2DP7zH9i2rfTn7t0L8fFq\nDiIjA1auhNWrff8caOE9tPw1HDJkCDNmzGDXrl306tWL119/HQCr1UpSUhJWq5WVK1cSHx9PUVGR\njoguUdYDs3WRnM6pWRPGjIGxY9XXl+b01PkCT/15XsobcnpDRkdpaRTS09O58847AejcuTNLliwB\nIDk5mbi4OPz9/QkMDCQoKIjU1FQdEV3CW/6iSE7nDRkCv/4KGzb8nTM/X5Wqbt1a9Q569oT/+z+Y\nPBluuEFvXvDsn+eFvCGnN2R0lJZGISwsjOTkZAAWL17M/v37AcjJycFsNtueZzabyc7O1hFRiDKp\nVg0mTFA9hlOn/j6/4JNP1Od79qiaSTKBLDyd2xqFmJgYIiIiLvtYvnw5CxYsIDExkbZt25KXl0e1\nKxx8azKZ3BVRCJd65BH44w9VWlvmC4TXMjRLS0sz2rdvbxiGYSQkJBgJCQm273Xt2tXYsmXLZa9p\n3ry5AciHfMiHfMhHGT6aN29e6j1Zy5LUw4cP06BBA4qKinjssce45557eOyxx7BarQwYMIDU1FSy\ns7Pp3LkzGRkZ0lsQQogKoqVTu3DhQm6++WZCQ0Mxm8089thjAFgsFmJjY7FYLHTr1o3ExERpEIQQ\nogJ55eY1IYQQ7uF1018rV64kJCSE4OBgpk+frjtOiQYPHkzDhg2JiIjQHeWK9u/fT8eOHQkLCyM8\nPJzZs2frjlSiM2fO0KFDB1q1aoXFYmH06NG6I9lVWFhIVFQUPXr00B3FrsDAQFq2bElUVBTt27fX\nHceuY8eO8dBDDxEaGorFYmHLli26I10mLS2NqKgo20e9evU89t9RQkICYWFhREREMGDAAM6ePVvy\nE10zXVwxCgoKjObNmxuZmZlGfn6+ERkZaVitVt2xLvPjjz8a27dvN8LDw3VHuaKDBw8aO3bsMAzD\nMHJzc40WLVp45M/TMAzj5MmThmEYxrlz54wOHToY69ev15yoZLNmzTIGDBhg9OjRQ3cUuwIDA40j\nR47ojlGqgQMHGh988IFhGOrP/dixY5oTXVlhYaFxww03GL///rvuKJfJzMw0mjZtapw5c8YwDMOI\njY01PvrooxKf61U9hdTUVIKCgggMDMTf35/+/fvb9jt4kjvvvJOrPelUdztuuOEGWrVqBUDt2rUJ\nDQ0lJydHc6qSXXXVVQDk5+dTWFjINddcoznR5Q4cOMB3333HkCFDPL42l6fnO378OOvXr2fw4MEA\n+Pn5Ua9ePc2prmzNmjU0b96cxu4+dakc6tati7+/P6dOnaKgoIBTp04REBBQ4nO9qlHIzs6+6Acu\nm9tcJysrix07dtChQwfdUUpUVFREq1ataNiwIR07dsRiseiOdJnnn3+e119/nSoevinBZDLRuXNn\n2rZty/vvv687TokyMzNp0KABjz/+OK1bt2bo0KGcOnVKd6wrWrRoEQMGDNAdo0TXXHMNI0aMoEmT\nJtx4443Ur1+fzp07l/hcz/7bewlZieQeeXl5PPTQQ7z99tvUrl1bd5wSValShZ07d3LgwAF+/PFH\njysr8M0333D99dcTFRXl8b+Fb9y4kR07drBixQreffdd1q9frzvSZQoKCti+fTvx8fFs376dWrVq\nMW3aNN2x7MrPz2f58uX07dtXd5QS7du3j7feeousrCxycnLIy8vj888/L/G5XtUoBAQE2EpigJoo\nvbAshii7c+fO0adPHx555BEefPBB3XFKVa9ePe677z5++ukn3VEusmnTJpYtW0bTpk2Ji4vjhx9+\nYODAgbpjlahRo0YANGjQgF69enlkfTGz2YzZbKZdu3YAPPTQQ2zfvl1zKvtWrFhBmzZtaNCgge4o\nJfrpp5+47bbbuPbaa/Hz86N3795s2rSpxOd6VaPQtm1b0tPTycrKIj8/n6SkJHr27Kk7ltcyDIMn\nnngCi8XC8OHDdcex63//+x/Hjh0D4PTp06xevZqoqCjNqS42depU9u/fT2ZmJosWLeKee+7hk08+\n0R3rMqdOnbKVqj958iSrVq3yyFVyN9xwA40bN2bv3r2AGq8PCwvTnMq+hQsXEhcXpzuGXSEhIWzZ\nsoXTp09jGAZr1qyxPwRbQZPfLvPdd98ZLVq0MJo3b25MnTpVd5wS9e/f32jUqJFRrVo1w2w2GwsW\nLNAdqUTr1683TCaTERkZabRq1cpo1aqVsWLFCt2xLrNr1y4jKirKiIyMNCIiIowZM2bojnRFKSkp\nHrv66LfffjMiIyONyMhIIywszGP/DRmGYezcudNo27at0bJlS6NXr14eu/ooLy/PuPbaa40TJ07o\njnJF06dPNywWixEeHm4MHDjQyM/PL/F5snlNCCGEjVcNHwkhhHAvaRSEEELYSKMghBDCRhoFIYQQ\nNtIoCCGEsJFGQQghhI00CsKnubtsR2BgIEePHr3s8XXr1rF58+YSX7N8+XKPLfsuhJ/uAEK4k7vr\nZZlMphJrHa1du5Y6depw6623Xva9Hj16ePR5C6Jyk56CqHT27dtHt27daNu2LXfddRdpaWkAPPbY\nYzz33HPcfvvtNG/enCVLlgCqQmt8fDyhoaF06dKF++67z/Y9gDlz5tCmTRtatmxJWloaWVlZzJs3\njzfffJOoqCg2bNhw0fU/+ugjnnnmmSte80JZWVmEhITw+OOPc/PNN/Pwww+zatUqbr/9dlq0aMHW\nrVvd9aMSlZA0CqLS+cc//sGcOXP46aefeP3114mPj7d979ChQ2zcuJFvvvmGUaNGAfD111/zf//3\nf/zyyy98+umnbN68+aIeSIMGDdi2bRtPPfUUM2fOJDAwkH/+85+88MIL7NixgzvuuOOi61/aeynp\nmpfat28fL774Ir/++itpaWkkJSWxceNGZs6cydSpU131oxFCho9E5ZKXl8fmzZsvKnGcn58PqJt1\ncaXY0NBQ/vjjDwA2bNhAbGwsgO08hwv17t0bgNatW/P111/bHnekgoy9a16qadOmtoJwYWFhtlr4\n4eHhZGVllXodIRwljYKoVIqKiqhfvz47duwo8fvVqlWzfV58U7903uDSm3316tUBqFq1KgUFBWXO\nVNI1L1V8DVBnSxS/pkqVKuW6phD2yPCRqFTq1q1L06ZN+eqrrwB1E961a9cVX3P77bezZMkSDMPg\njz/+YN26daVep06dOrYS1ZeSGpTCk0mjIHzaqVOnaNy4se3jrbfe4vPPP+eDDz6gVatWhIeHs2zZ\nMtvzLxzvL/68T58+mM1mLBYLjz76KK1bty7xvGCTyWR7TY8ePVi6dClRUVFs3LjR7vPsXbOk97b3\ntZxIKFxJSmcL4YCTJ09Sq1Ytjhw5QocOHdi0aRPXX3+97lhCuJzMKQjhgPvvv59jx46Rn5/P+PHj\npUEQPkt6CkIIIWxkTkEIIYSNNApCCCFspFEQQghhI42CEEIIG2kUhBBC2EijIIQQwub/A4tFvTZr\nGhPHAAAAAElFTkSuQmCC\n",
+ "text": [
+ "<matplotlib.figure.Figure at 0x5dff130>"
+ ]
+ }
+ ],
+ "prompt_number": 14
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 3.3.12,Page No.116"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\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 0x57502f0>"
+ ]
+ },
+ {
+ "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 0x58b0ed0>"
+ ]
+ }
+ ],
+ "prompt_number": 5
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 3.3.13,Page No.117"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\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 0x5c2a7b0>"
+ ]
+ },
+ {
+ "metadata": {},
+ "output_type": "display_data",
+ "png": "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\nQmCC\n",
+ "text": [
+ "<matplotlib.figure.Figure at 0x1a108f0>"
+ ]
+ }
+ ],
+ "prompt_number": 18
+ }
+ ],
+ "metadata": {}
+ }
+ ]
+} \ No newline at end of file
diff --git a/Strength_Of_Materials_by_S_S_Bhavikatti/chapter_no.4_1.ipynb b/Strength_Of_Materials_by_S_S_Bhavikatti/chapter_no.4_1.ipynb
new file mode 100644
index 00000000..09aec3f9
--- /dev/null
+++ b/Strength_Of_Materials_by_S_S_Bhavikatti/chapter_no.4_1.ipynb
@@ -0,0 +1,1628 @@
+{
+ "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",
+ "\n",
+ "#Initilization of Variables\n",
+ "\n",
+ "L=5000 #mm #Length of Beam\n",
+ "a=2000 #mm #Length of start of beam to Pt Load\n",
+ "b=3000 #mm #Length of Pt load to end of beam\n",
+ "A=150*250 #m**2 #Area of beam\n",
+ "b=150 #mm #Width of beam\n",
+ "d=250 #mm #Depth of beam\n",
+ "sigma=10#N/mm**2 #stress\n",
+ "l=2000 #m #Load applied from one end\n",
+ "\n",
+ "#Calculations\n",
+ "\n",
+ "#Moment of Inertia\n",
+ "I=1*12**-1*b*d**3 #m**4\n",
+ "\n",
+ "#Distance from N.A to end\n",
+ "y_max=d*2**-1 #m\n",
+ "\n",
+ "#Section Modulus\n",
+ "Z=1*6**-1*b*d**2 #mm**3\n",
+ "\n",
+ "#Moment Carrying Capacity\n",
+ "M=sigma*Z #N-mm\n",
+ "\n",
+ "#Let w be the Intensity of the Load in N/m,then Max moment\n",
+ "#M_max=w*L**2*8**-1 #N-mm\n",
+ "#After substituting values and further simplifying we get\n",
+ "#M_max=w*25*100*8**-1\n",
+ "\n",
+ "#EQuating it to moment carrying capacity,we get max intensity load\n",
+ "w=M*(25*1000)**-1*8*10**-3\n",
+ "\n",
+ "#Part-2\n",
+ "\n",
+ "#Let P be the concentrated load,then max moment occurs under the load and its value\n",
+ "#M1=P*a*b*L**-1 #N-mm\n",
+ "\n",
+ "#Equting it to moment carrying capacity we get\n",
+ "P=M*1200**-1*10**-3 #N\n",
+ "\n",
+ "#Result\n",
+ "print\"Max Intensity of u.d.l it can carry\",round(w,3),\"KN-m\"\n",
+ "print\"MAx concentrated Load P apllied at 2 m from one end is\",round(P,3),\"KN\""
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Max Intensity of u.d.l it can carry 5.0 N-mm\n",
+ "MAx concentrated Load P apllied at 2 m from one end is 13.021 KN\n"
+ ]
+ }
+ ],
+ "prompt_number": 9
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 4.4.2,Page no.131"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "\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",
+ "\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",
+ "\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",
+ "from scipy.integrate import quad\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",
+ "\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",
+ "\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",
+ "\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",
+ "\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",
+ "\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",
+ "\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",
+ "\n",
+ "#Initilization of Variables\n",
+ "\n",
+ "#Timber size\n",
+ "b=150 #mm #Width\n",
+ "b2=120 #mm \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",
+ "#X=E_s*E_t**-1\n",
+ "X=20 \n",
+ "sigma_timber=8 #N/mm**2 #Stress in timber\n",
+ "sigma_steel=150 #N/mm**2 #Stress in steel plate\n",
+ "\n",
+ "#Calculations\n",
+ "\n",
+ "Y\n",
+ "\n",
+ "#Due to synnetry cenroid,the neutral axis is half the depth\n",
+ "I=1*12**-1*\n",
+ "\n",
+ "\n",
+ "#Result\n",
+ "print Z"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "153.0\n"
+ ]
+ }
+ ],
+ "prompt_number": 34
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 4.4.14,Page no.151"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\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=(2*W*L*(2*sigma*300)**-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",
+ " : 223.61 mm\n"
+ ]
+ }
+ ],
+ "prompt_number": 22
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 4.4.15,Page no.154"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\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",
+ "%matplotlib inline\n",
+ "\n",
+ "#Initilization of Variables\n",
+ "\n",
+ "F=20*10**3 #N #Shear Force\n",
+ "\n",
+ "#Tee section\n",
+ "\n",
+ "#Flange\n",
+ "b=100 #mm #Width\n",
+ "t=12 #mm #Thickness\n",
+ "\n",
+ "#Web\n",
+ "d=88 #mm #Depth\n",
+ "t2=12 #mm #Thicknes\n",
+ "\n",
+ "D=100 #mm #Overall Depth\n",
+ "\n",
+ "#Calculations\n",
+ "\n",
+ "#Distance of C.G from Top Fibre\n",
+ "y=(b*t*t*2**-1+t2*d*(d*2**-1+t))*(b*t+d*t2)**-1 #mm \n",
+ "\n",
+ "#Moment Of Inertia\n",
+ "I=1*12**-1*b*t**3+b*t*(y-t*2**-1)**2+1*12**-1*t2*d**3+t2*d*(t+d*2**-1-y)**2 #mm**4\n",
+ "\n",
+ "#shear stress at bottom Flange\n",
+ "\n",
+ "#Area above this level\n",
+ "A=b*t #mm**2\n",
+ "\n",
+ "#C.G of this area from N-A\n",
+ "y2=y-t*2**-1\n",
+ "\n",
+ "#Stress at bottom of flange\n",
+ "sigma=F*A*y2*(b*I)**-1 #N/mm**2 \n",
+ "\n",
+ "#sigma2 at same level but in web where width is 12 mm\n",
+ "sigma2=F*A*y2*(t2*I)**-1 #N/mm**2 \n",
+ "\n",
+ "#To find shear stress at N-A\n",
+ "X=t*b*(y-t*2**-1)+t2*(y-t2)*(y-t2)*2**-1 #mm**3\n",
+ "\n",
+ "sigma3=F*X*(t2*I)**-1 #N/mm**2\n",
+ "\n",
+ "#Shear stress at top and bottom fibre is zero\n",
+ "#sigma4 and sigma5 are top and bottom fibre shear stress\n",
+ "sigma4=sigma5=0\n",
+ "\n",
+ "#Result\n",
+ "print \"The Shear Force and Bending Moment Diagrams are the results\"\n",
+ "\n",
+ "#Plotting the Shear Force Diagram\n",
+ "\n",
+ "X1=[0,t,t,y,D]\n",
+ "Y1=[sigma4,sigma,sigma2,sigma3,sigma5]\n",
+ "Z1=[0,0,0,0,0]\n",
+ "plt.plot(X1,Y1,X1,Z1)\n",
+ "plt.xlabel(\"Length x in m\")\n",
+ "plt.ylabel(\"Shear Force in kN\")\n",
+ "plt.show()\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "The Shear Force and Bending Moment Diagrams are the results\n"
+ ]
+ },
+ {
+ "metadata": {},
+ "output_type": "display_data",
+ "png": "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\nnntYs2YN3bt3p3nz5nzxxRflv3Ail3JWibWIM/j5+V32Wq9evawDBw5YlmVZW7dutXr16mVZlmXd\nd9991tChQy3LsqxvvvnGuvXWWy3Lsqy3337b6tevn2VZlpWZmWndeOON1rJlyyzLsqygoCDr6NGj\nhcd2OBzWqlWrLMuyrCeeeMJ65plnLjv/qVOnrPDwcGvdunVWSEiI9d133132nvnz51sTJky4alwX\nS0lJsapWrWp9/fXXVkFBgdW+fXtr9OjRlmVZ1vLly62BAweWeK1ErlVVuxOSSHnk5OSwZcsWhgwZ\nUvhabm4uYJb6Pb/QV4sWLQrXid+4cSNDhw4FzEqRUVFRxR6/WrVq9O/fH4D27duzdu3ay95z/fXX\nM3fuXHr06MGsWbMIDg6+aszFxXWp4OBgwsPDAQgPD6d3794AtGzZktTU1KueQ6QslBDEoxUUFFCn\nTh127Nhxxd9Xq1at8Ll1brjM4XAU2WPBusowmq+vb+FzHx8f8vLyrvi+Xbt20aBBg1Jv6HSluC5V\nvXr1Iuc+/5mrxSFSHhpDEI9Wu3ZtgoODeeeddwBzc921a9dVP9O9e3eWLVuGZVlkZWWxfv36wt/V\nqlWLEydOXFMM33//PX/729/YsWMHH374Idu2bbvsPVdLOiLuQglBPMqpU6do0qRJ4ePFF1/kzTff\n5NVXX6Vt27a0bNmSFStWFL7/4h2izj9PTEwkMDCQsLAwhg8fTrt27bjhhhsAuP/+++nbt2/hoPKl\nn790xynLshg7diwvvPACAQEBvPrqq4wdO7aw26q4zxb3/NLPFPezt+4IJs6laafilU6ePEnNmjU5\nevQonTt3ZvPmzV61y5bIlWgMQbzSgAEDyM7OJjc3l6eeekrJQAS1EERE5ByNIYiICKCEICIi5ygh\niIgIoIQgIiLnKCGIiAighCAiIuf8f5wqyy9KzUKHAAAAAElFTkSuQmCC\n",
+ "text": [
+ "<matplotlib.figure.Figure at 0x56a6270>"
+ ]
+ }
+ ],
+ "prompt_number": 15
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 4.4.17,Page no.163"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "%matplotlib inline\n",
+ "\n",
+ "#Initilization of Variables\n",
+ "\n",
+ "F=40*10**3 #N #shear Force\n",
+ "\n",
+ "#I-section\n",
+ "\n",
+ "#Flanges\n",
+ "b=80 #mm #Width of flange\n",
+ "t=20 #mm #Thickness\n",
+ "\n",
+ "#Web\n",
+ "d=200 #mm #Depth\n",
+ "t2=20 #mm #Thickness\n",
+ "\n",
+ "#Flange-2\n",
+ "b2=160 #mm #Width\n",
+ "t3=20 #mm #Thickness\n",
+ "\n",
+ "D=240 #mm #Overall Depth\n",
+ "\n",
+ "#Calculations\n",
+ "\n",
+ "#Distance of N-A from Top Fibre \n",
+ "y=(b*t*t*2**-1+d*t2*(t+d*2**-1)+b2*t3*(t+d+t3*2**-1))*(b*t+d*t2+b2*t3)**-1 #mm\n",
+ "\n",
+ "#Moment of Inertia\n",
+ "I=1*12**-1*b*t**3+b*t*(y-(t*2**-1))**2+1*12**-1*t2*d**3+t2*d*(y-(t+d*2**-1))**2+1*12**-1*b2*t3**3+t3*b2*((d+t+t3*2**-1)-y)**2 #mm**4\n",
+ "\n",
+ "#Shear stress bottom of flange\n",
+ "sigma=F*b*t*(y-t*2**-1)*(b*I)**-1 #N/mm**2\n",
+ "\n",
+ "#At same Level but in web\n",
+ "sigma2=F*b*t*(y-t*2**-1)*(t2*I)**-1 #N/mm**2\n",
+ "\n",
+ "#for shear stress at N.A\n",
+ "X=b*t*(y-t*2**-1)+t2*(y-t)*(y-t)*2**-1 #mm**3\n",
+ "sigma3=F*X*(t2*I)**-1 #N/mm**2\n",
+ "\n",
+ "#Shear stress at bottom of web\n",
+ "\n",
+ "X=b2*t3*((D-y)-t3*2**-1) #mm**3\n",
+ "\n",
+ "#Stress at bottom of web\n",
+ "sigma4=F*X*(t2*I)**-1 #N/mm**2\n",
+ "\n",
+ "#Stress at Lower flange\n",
+ "sigma5=F*X*(b2*I)**-1 #N/mm**2\n",
+ "\n",
+ "#Result\n",
+ "print \"The Shear Force Diagram is the result\"\n",
+ "\n",
+ "#Plotting the Shear Force Diagram\n",
+ "\n",
+ "X1=[0,20,20,140,220,220,240]\n",
+ "Y1=[0,sigma,sigma2,sigma3,sigma4,sigma5,0]\n",
+ "Z1=[0,0,0,0,0,0,0]\n",
+ "plt.plot(X1,Y1,X1,Z1)\n",
+ "plt.xlabel(\"Length in mm\")\n",
+ "plt.ylabel(\"Shear Force in N\")\n",
+ "plt.show()\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "The Shear Force Diagram is the result\n"
+ ]
+ },
+ {
+ "metadata": {},
+ "output_type": "display_data",
+ "png": "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\n/w/qZz1xEBCKMwAAAABJRU5ErkJggg==\n",
+ "text": [
+ "<matplotlib.figure.Figure at 0x5614110>"
+ ]
+ }
+ ],
+ "prompt_number": 5
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 4.4.18,Page no.164"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\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",
+ "\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",
+ "\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",
+ "\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",
+ "\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",
+ "\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_1.ipynb b/Strength_Of_Materials_by_S_S_Bhavikatti/chapter_no.5_1.ipynb
new file mode 100644
index 00000000..9684e21b
--- /dev/null
+++ b/Strength_Of_Materials_by_S_S_Bhavikatti/chapter_no.5_1.ipynb
@@ -0,0 +1,1002 @@
+{
+ "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",
+ "\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",
+ "\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",
+ "\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",
+ "\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",
+ "\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",
+ "\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": 32
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 5.5.14,Page No.208"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\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",
+ "\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 0x5a29310>"
+ ]
+ }
+ ],
+ "prompt_number": 43
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 5.5.16,Page No.211"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\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",
+ "\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",
+ "\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_1.ipynb b/Strength_Of_Materials_by_S_S_Bhavikatti/chapter_no.6_1.ipynb
new file mode 100644
index 00000000..4657aa0b
--- /dev/null
+++ b/Strength_Of_Materials_by_S_S_Bhavikatti/chapter_no.6_1.ipynb
@@ -0,0 +1,1494 @@
+{
+ "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",
+ "\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",
+ "\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",
+ "\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",
+ "\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",
+ "\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",
+ "\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",
+ "\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",
+ "\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",
+ "\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",
+ "\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",
+ "\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",
+ "\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",
+ "\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",
+ "\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",
+ "\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",
+ "\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",
+ "\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",
+ "\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",
+ "\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",
+ "\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",
+ "\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",
+ "\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",
+ "\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",
+ "\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_1.ipynb b/Strength_Of_Materials_by_S_S_Bhavikatti/chapter_no.7_1.ipynb
new file mode 100644
index 00000000..d239a927
--- /dev/null
+++ b/Strength_Of_Materials_by_S_S_Bhavikatti/chapter_no.7_1.ipynb
@@ -0,0 +1,1309 @@
+{
+ "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",
+ "\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",
+ "\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",
+ "\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",
+ "\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",
+ "\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",
+ "\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",
+ "\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",
+ "\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",
+ "\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",
+ "\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",
+ "\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",
+ "\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",
+ "\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",
+ "\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",
+ "\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",
+ "\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",
+ "\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",
+ "\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",
+ "\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_1.ipynb b/Strength_Of_Materials_by_S_S_Bhavikatti/chapter_no.8_1.ipynb
new file mode 100644
index 00000000..c7043749
--- /dev/null
+++ b/Strength_Of_Materials_by_S_S_Bhavikatti/chapter_no.8_1.ipynb
@@ -0,0 +1,1512 @@
+{
+ "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": 2,
+ "metadata": {},
+ "source": [
+ "Example 8.8.1,Page No.322"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\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": 2
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 8.8.2,Page No.323"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\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": 2,
+ "metadata": {},
+ "source": [
+ "Example 8.8.3,Page No.324"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\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": 2,
+ "metadata": {},
+ "source": [
+ "Example 8.8.4,Page No.326"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\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": 2,
+ "metadata": {},
+ "source": [
+ "Example 8.8.5,Page No.326"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\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": 2,
+ "metadata": {},
+ "source": [
+ "Example 8.8.6,Page No.329"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\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": 2,
+ "metadata": {},
+ "source": [
+ "Example 8.8.7,Page No.332"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\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": 2,
+ "metadata": {},
+ "source": [
+ "Example 8.8.8,Page No.333"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\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": 2,
+ "metadata": {},
+ "source": [
+ "Example 8.8.9,Page No.333"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\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": 2,
+ "metadata": {},
+ "source": [
+ "Example 8.8.10,Page No.337"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\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 0x50e8310>"
+ ]
+ }
+ ],
+ "prompt_number": 13
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 8.8.11,Page No.338"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\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 0x58c2e30>"
+ ]
+ }
+ ],
+ "prompt_number": 11
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 8.8.12,Page No.339"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\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": 2,
+ "metadata": {},
+ "source": [
+ "Example 8.8.13,Page No.340"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\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": 2,
+ "metadata": {},
+ "source": [
+ "Example 8.8.14,Page No.341"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\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": 2,
+ "metadata": {},
+ "source": [
+ "Example 8.8.15,Page No.344"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "%matplotlib inline\n",
+ "\n",
+ "#Initilization of Variables\n",
+ "\n",
+ "r1=200 #mm #Inner Radius\n",
+ "r2=250 #mm #Radius at common surface\n",
+ "r3=300 #mm #Outer radius\n",
+ "p=6 #N/mm**2 #Inital pressure\n",
+ "p2=80 #N/mm**2 #Pressure\n",
+ "\n",
+ "#Calculations\n",
+ "\n",
+ "#Inner Cyclinder:\n",
+ "\n",
+ "#From Lame's Equation we have\n",
+ "#p_x=b*(x**2)**-1-a ..........................(1)\n",
+ "#F_x=b*(x**2)**-1+a ...........................(2)\n",
+ "\n",
+ "#At \n",
+ "x=r1=200 #mm\n",
+ "p_x=0\n",
+ "#0=b1*(250**2)**-1-a1 .................(3)\n",
+ "\n",
+ "#At x=r2=250 #mm\n",
+ "p_x2=6 #N/mm**2\n",
+ "#6=b1*(250**2)-a1 ...................(4)\n",
+ "\n",
+ "#From Equation 3 and 4 we get\n",
+ "b1=6*200**2*250**2*(200**2-250**2)**-1\n",
+ "\n",
+ "#From equation 3 we get\n",
+ "a1=b1*(200**2)**-1\n",
+ "\n",
+ "F_200=b1*(200**2)**-1+a1\n",
+ "F_250=b1*(250**2)**-1+a1\n",
+ "\n",
+ "#For outer cyclinder \n",
+ "#From Lame's Equation we have\n",
+ "#p_x2=b2*(x**2)**-1-a2 ..........................(5)\n",
+ "#F_x2=b2*(x**2)**-1+a2 ...........................(6)\n",
+ "\n",
+ "\n",
+ "#At \n",
+ "x2=r2=250 #mm\n",
+ "p_x2=6 #N/mm**2\n",
+ "#6=b2*(250**2)**-1-a2 ...........................(7) \n",
+ "\n",
+ "#At\n",
+ "x3=300 #mm\n",
+ "#p_x2=0\n",
+ "#0=b2**2*(300**2)**-1-a2 .................................(8)\n",
+ "\n",
+ "#from equation 7 and 8 we get\n",
+ "b2=6*250**2*300**2*(300**2-250**2)**-1\n",
+ "\n",
+ "#sub in equation 8 we get\n",
+ "a2=b2*(300**2)**-1\n",
+ "\n",
+ "F_250_2=b2*(250**2)**-1+a2\n",
+ "F_300_2=b2*(300**2)**-1+a2\n",
+ "\n",
+ "#When Fluid is admitted\n",
+ "#Let Lame's equation be\n",
+ "#p_x3=b3*(x**2)**-1-a3 ..........................(5)\n",
+ "#F_x3=b3*(x**2)**-1+a3 ...........................(6)\n",
+ "\n",
+ "\n",
+ "#At x=200\n",
+ "p_x3=80 #N/mm**2\n",
+ "#80=b3*(200**2)**-1-a3 ................................(7)\n",
+ "\n",
+ "#At x=300 #mm\n",
+ "#p_x=0\n",
+ "#0=b3*(300**2)**-1-a3 ..............................(8)\n",
+ "\n",
+ "#from Equation 7 and 8 we get\n",
+ "b3=80*200**2*300**2*(300**2-200**2)**-1\n",
+ "\n",
+ "#From Equation 8 we get\n",
+ "a3=b3*(300**2)**-1\n",
+ "\n",
+ "#Hoop stresses \n",
+ "F_200_3=b3*(200**2)**-1+a3 #N/mm**2\n",
+ "F_250_3=b3*(250**2)**-1+a3 #N/mm**2\n",
+ "F_300_3=b3*(300**2)**-1+a3 #N/mm**2\n",
+ "\n",
+ "#Pressure at common surface\n",
+ "p_250=b3*(250**2)**-1-a3 #N/mm**2\n",
+ "\n",
+ "#final stress\n",
+ "f_200=F_200+F_200_3 #N/mm**2\n",
+ "f_250=F_250+F_250_3 #N/mm**2\n",
+ "f_300=F_250_2+F_250_3 #N/mm**2\n",
+ "f_300_2=F_300_2+F_300_3 #N/mm**2\n",
+ "\n",
+ "#Result\n",
+ "print\"final Hoop stress are:f_200\",round(f_200,2),\"N/mm**2\"\n",
+ "print\" :f_250\",round(f_250,2),\"N/mm**2\"\n",
+ "print\" :f_300\",round(f_300,2),\"N/mm**2\"\n",
+ "print\" :f_300_2\",round(f_300_2,2),\"N/mm**2\"\n",
+ "print\"Variation of Hoop stress and Radial stress\"\n",
+ "\n",
+ "#Final stresses\n",
+ "#Variation of hoop stress \n",
+ " \n",
+ "X1=[x,x2,x3,x3]\n",
+ "Y1=[f_200,f_250,f_300,f_300_2]\n",
+ "Z1=[0,0,0,0]\n",
+ "plt.plot(X1,Y1,X1,Z1)\n",
+ "plt.xlabel(\"Length x in mm\")\n",
+ "plt.ylabel(\"Hoop Stress Distribution in N/mm**2\")\n",
+ "plt.show()\n",
+ "\n",
+ "#Due to Fluid\n",
+ "#Variation of hoop stress \n",
+ " \n",
+ "X1=[x,x2,x3]\n",
+ "Y1=[F_200_3,F_250_3,F_300_3]\n",
+ "Z1=[0,0,0]\n",
+ "plt.plot(X1,Y1,X1,Z1)\n",
+ "plt.xlabel(\"Length x in mm\")\n",
+ "plt.ylabel(\"Hoop Stress Distribution in N/mm**2\")\n",
+ "plt.show()\n",
+ "\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "final Hoop stress are:f_200 174.67 N/mm**2\n",
+ " :f_250 128.83 N/mm**2\n",
+ " :f_300 189.43 N/mm**2\n",
+ " :f_300_2 155.27 N/mm**2\n",
+ "Variation of Hoop stress and Radial stress\n"
+ ]
+ },
+ {
+ "metadata": {},
+ "output_type": "display_data",
+ "png": "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\n",
+ "text": [
+ "<matplotlib.figure.Figure at 0x5604510>"
+ ]
+ },
+ {
+ "metadata": {},
+ "output_type": "display_data",
+ "png": "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\n",
+ "text": [
+ "<matplotlib.figure.Figure at 0x56e5cb0>"
+ ]
+ }
+ ],
+ "prompt_number": 89
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 8.8.16,Page No.348"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\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": 2,
+ "metadata": {},
+ "source": [
+ "Example 8.8.17,Page No.350"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\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": 2,
+ "metadata": {},
+ "source": [
+ "Example 8.8.18,Page No.355"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\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 0x56b4bf0>"
+ ]
+ }
+ ],
+ "prompt_number": 25
+ }
+ ],
+ "metadata": {}
+ }
+ ]
+} \ No newline at end of file
diff --git a/Strength_Of_Materials_by_S_S_Bhavikatti/chapter_no.9_1.ipynb b/Strength_Of_Materials_by_S_S_Bhavikatti/chapter_no.9_1.ipynb
new file mode 100644
index 00000000..e6d444ca
--- /dev/null
+++ b/Strength_Of_Materials_by_S_S_Bhavikatti/chapter_no.9_1.ipynb
@@ -0,0 +1,768 @@
+{
+ "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",
+ "\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",
+ "\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",
+ "\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",
+ "\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",
+ "\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",
+ "\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",
+ "\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",
+ "\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",
+ "\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",
+ "\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",
+ "\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/B.M.D_1.JPG b/Strength_Of_Materials_by_S_S_Bhavikatti/screenshots/B.M.D_1.JPG
new file mode 100644
index 00000000..9bbe723e
--- /dev/null
+++ b/Strength_Of_Materials_by_S_S_Bhavikatti/screenshots/B.M.D_1.JPG
Binary files differ
diff --git a/Strength_Of_Materials_by_S_S_Bhavikatti/screenshots/S.F.D_1.jpg b/Strength_Of_Materials_by_S_S_Bhavikatti/screenshots/S.F.D_1.jpg
new file mode 100644
index 00000000..0ccd99c0
--- /dev/null
+++ b/Strength_Of_Materials_by_S_S_Bhavikatti/screenshots/S.F.D_1.jpg
Binary files differ
diff --git a/Strength_Of_Materials_by_S_S_Bhavikatti/screenshots/S.F.D_2.jpg b/Strength_Of_Materials_by_S_S_Bhavikatti/screenshots/S.F.D_2.jpg
new file mode 100644
index 00000000..3be9f649
--- /dev/null
+++ b/Strength_Of_Materials_by_S_S_Bhavikatti/screenshots/S.F.D_2.jpg
Binary files differ
diff --git a/sample_notebooks/DaudIbrahir Saifi/Chapter_07_1.ipynb b/sample_notebooks/DaudIbrahir Saifi/Chapter_07_1.ipynb
new file mode 100644
index 00000000..aefd1c71
--- /dev/null
+++ b/sample_notebooks/DaudIbrahir Saifi/Chapter_07_1.ipynb
@@ -0,0 +1,342 @@
+{
+ "metadata": {
+ "name": "",
+ "signature": "sha256:012ab8557afdcfdae2cdc3da17271647415fc17ab95dd187f4df0903472edf45"
+ },
+ "nbformat": 3,
+ "nbformat_minor": 0,
+ "worksheets": [
+ {
+ "cells": [
+ {
+ "cell_type": "heading",
+ "level": 1,
+ "metadata": {},
+ "source": [
+ "Chapter - 7 : Cathode Ray Oscilloscopes"
+ ]
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example : 7.1 - Page No : 244"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "from __future__ import division\n",
+ "l=2.5 # in cm\n",
+ "l=l*10**-2 # in meter\n",
+ "d=.5 # in cm\n",
+ "d=d*10**-2 # in meter\n",
+ "S= 20 # in cm\n",
+ "S= S*10**-2 # in meter\n",
+ "Va= 2500 # in volts\n",
+ "# Formula y = OC*AB/OB = (S*d/2)/(l/2)\n",
+ "y = (S*d/2)/(l/2) # in meter\n",
+ "print \"The value of deflection = %0.f cm\" %(y*10**2)"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "The value of deflection = 4 cm\n"
+ ]
+ }
+ ],
+ "prompt_number": 12
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example : 7.2 - Page No : 244"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ " #Given data\n",
+ "R_E1= 5.6 # in kohm\n",
+ "C1= 0.2 # in micro F\n",
+ "V_B1= 6.3 # in volt\n",
+ "V_BE= 0.7 # in volt\n",
+ "TL= 2.5 # trigger level for the Schmitt trigger (UTP,LTP) in volt\n",
+ "del_V1= 2*TL # in volt\n",
+ "I_C1= (V_B1-V_BE)/R_E1 # in mA\n",
+ "print \"Charging current = %0.f mA\" %I_C1 \n",
+ "toh= del_V1*C1/I_C1 # in ms\n",
+ "print \"Time period = %0.f ms\" %toh"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Charging current = 1 mA\n",
+ "Time period = 1 ms\n"
+ ]
+ }
+ ],
+ "prompt_number": 11
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example : 7.3 - Page No : 255"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "from math import sqrt \n",
+ "#Given data\n",
+ "L=10 # trace length in cm\n",
+ "DS= 5 # deflection sensitivity in V/cm\n",
+ "V_peakTOpeak= L*DS # in volt\n",
+ "V_peak= V_peakTOpeak/2 # in volt\n",
+ "RMS= V_peak/sqrt(2) # RMS value of unknown as voltage in volt\n",
+ "print \"The value of AC voltage = %0.3f volts\" %RMS "
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "The value of AC voltage = 17.678 volts\n"
+ ]
+ }
+ ],
+ "prompt_number": 10
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example : 7.4 - Page No : 255"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "from __future__ import division \n",
+ "#Given data\n",
+ "Y= 2+1/2 # Positive Y-peaks in pattern\n",
+ "X= 1/2+1/2 # Positive X-peaks in pattern\n",
+ "f_h= 3# frequency of horizontal voltage signal in kHz\n",
+ "f_yBYf_x= Y/X \n",
+ "# frequency of vertical voltage signal= f_yBYf_x * f_h\n",
+ "f_v= f_yBYf_x * f_h # frequency of vertical voltage signal in kHz\n",
+ "print \"frequency of vertical voltage signal = %0.1f kHz\" %f_v "
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "frequency of vertical voltage signal = 7.5 kHz\n"
+ ]
+ }
+ ],
+ "prompt_number": 9
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example : 7.5 - Page No : 256"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ " #Given data\n",
+ "f_x= 1000 # in Hz\n",
+ "Y= 2 # points of tangency to vertical line\n",
+ "X= 5 # points of tangency to horizontal line\n",
+ "f_y= f_x*X/Y # in Hz\n",
+ "print \"Frequency of vertical input = %0.f Hz\" %f_y"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Frequency of vertical input = 2500 Hz\n"
+ ]
+ }
+ ],
+ "prompt_number": 8
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example : 7.6 - Page No : 257"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ " #Given data\n",
+ "f=2000 # in Hz\n",
+ "T=1/f # in sec\n",
+ "D=0.2 \n",
+ "PulseDuration= D*T # in sec\n",
+ "print \"The value of pulse duration = %0.1f ms\" %(PulseDuration*10**3) "
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "The value of pulse duration = 0.1 ms\n"
+ ]
+ }
+ ],
+ "prompt_number": 7
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example : 7.7 - Page No : 258"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ " #Given data\n",
+ "vertical_attenuation= 0.5 # in V/Div\n",
+ "TPD= 2 # time/Div control in micro sec\n",
+ "P= 4*vertical_attenuation # peak-to-peak amplitude of the signal in V \n",
+ "print \"Peak-to-Peak amplitude of the signal = %0.f V\" %P\n",
+ "T= 4*TPD # in micro sec\n",
+ "T=T*10**-6 # in sec\n",
+ "f=1/T # in Hz\n",
+ "print \"The value of frequency = %0.f kHz\" %(f*10**-3)"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Peak-to-Peak amplitude of the signal = 2 V\n",
+ "The value of frequency = 125 kHz\n"
+ ]
+ }
+ ],
+ "prompt_number": 6
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example : 7.8 - Page No : 261"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "from numpy import pi \n",
+ "#Given data\n",
+ "C_1N= 36 # in pF\n",
+ "C_2= 150 # in pF\n",
+ "R_1N= 1 # in M ohm\n",
+ "R_1= 10 # in M ohm\n",
+ "R_source= 500 # in ohm\n",
+ "# R_1/(omega*(C_2+C_1N)) = R_1N/(omega*C_1)\n",
+ "C_1= R_1N*(C_2+C_1N)/R_1 # in pF\n",
+ "C_T= 1/(1/C_1+1/(C_2+C_1N)) # in pF\n",
+ "C_T= C_T*10**-12 # in F\n",
+ "f= 1/(2*pi*C_T*R_source) \n",
+ "print \"Signal Frequency = %0.2f MHz\" %(f*10**-6)"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Signal Frequency = 18.82 MHz\n"
+ ]
+ }
+ ],
+ "prompt_number": 5
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example : 7.9 - Page No : 263"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ " #Given data\n",
+ "f= 20 # in MHz\n",
+ "f=f*10**6 # in Hz\n",
+ "toh= 1/f # in sec\n",
+ "toh=toh*10**9 # in ns\n",
+ "# For one cycle occupying 4 horizontal divisions,\n",
+ "MTD= toh/4 # Minimum time/division in ns/division\n",
+ "# Using the 10 times magnifier to provide MTD\n",
+ "MTD_setting= 10*MTD # minimum time/division setting in ns/division\n",
+ "print \"Minimum time/division setting = %0.f ns/division\" %MTD_setting"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Minimum time/division setting = 125 ns/division\n"
+ ]
+ }
+ ],
+ "prompt_number": 4
+ }
+ ],
+ "metadata": {}
+ }
+ ]
+} \ No newline at end of file