summaryrefslogtreecommitdiff
path: root/Aircraft_Structures_for_Engineering_Students
diff options
context:
space:
mode:
authorhardythe12015-04-07 15:58:05 +0530
committerhardythe12015-04-07 15:58:05 +0530
commit92cca121f959c6616e3da431c1e2d23c4fa5e886 (patch)
tree205e68d0ce598ac5caca7de839a2934d746cce86 /Aircraft_Structures_for_Engineering_Students
parentb14c13fcc6bb6d01c468805d612acb353ec168ac (diff)
downloadPython-Textbook-Companions-92cca121f959c6616e3da431c1e2d23c4fa5e886.tar.gz
Python-Textbook-Companions-92cca121f959c6616e3da431c1e2d23c4fa5e886.tar.bz2
Python-Textbook-Companions-92cca121f959c6616e3da431c1e2d23c4fa5e886.zip
added books
Diffstat (limited to 'Aircraft_Structures_for_Engineering_Students')
-rwxr-xr-xAircraft_Structures_for_Engineering_Students/Chapter01.ipynb499
-rwxr-xr-xAircraft_Structures_for_Engineering_Students/Chapter04.ipynb95
-rwxr-xr-xAircraft_Structures_for_Engineering_Students/Chapter05.ipynb188
-rwxr-xr-xAircraft_Structures_for_Engineering_Students/Chapter06.ipynb112
-rwxr-xr-xAircraft_Structures_for_Engineering_Students/Chapter08.ipynb154
-rwxr-xr-xAircraft_Structures_for_Engineering_Students/Chapter09.ipynb97
-rwxr-xr-xAircraft_Structures_for_Engineering_Students/Chapter12.ipynb111
-rwxr-xr-xAircraft_Structures_for_Engineering_Students/Chapter14.ipynb226
-rwxr-xr-xAircraft_Structures_for_Engineering_Students/Chapter15.ipynb76
-rwxr-xr-xAircraft_Structures_for_Engineering_Students/Chapter16.ipynb280
-rwxr-xr-xAircraft_Structures_for_Engineering_Students/Chapter18.ipynb155
-rwxr-xr-xAircraft_Structures_for_Engineering_Students/Chapter19.ipynb160
-rwxr-xr-xAircraft_Structures_for_Engineering_Students/Chapter20.ipynb286
-rwxr-xr-xAircraft_Structures_for_Engineering_Students/Chapter21.ipynb256
-rwxr-xr-xAircraft_Structures_for_Engineering_Students/Chapter22.ipynb88
-rwxr-xr-xAircraft_Structures_for_Engineering_Students/Chapter23.ipynb390
-rwxr-xr-xAircraft_Structures_for_Engineering_Students/Chapter24.ipynb198
-rwxr-xr-xAircraft_Structures_for_Engineering_Students/Chapter25.ipynb490
-rwxr-xr-xAircraft_Structures_for_Engineering_Students/Chapter26.ipynb82
-rwxr-xr-xAircraft_Structures_for_Engineering_Students/Chapter27.ipynb109
-rwxr-xr-xAircraft_Structures_for_Engineering_Students/README.txt10
-rwxr-xr-xAircraft_Structures_for_Engineering_Students/screenshots/1.pngbin0 -> 36115 bytes
-rwxr-xr-xAircraft_Structures_for_Engineering_Students/screenshots/2.pngbin0 -> 55871 bytes
-rwxr-xr-xAircraft_Structures_for_Engineering_Students/screenshots/3.pngbin0 -> 33263 bytes
-rwxr-xr-xAircraft_Structures_for_Engineering_Students/screenshots/a.pngbin0 -> 212056 bytes
-rwxr-xr-xAircraft_Structures_for_Engineering_Students/screenshots/a_1.pngbin0 -> 212056 bytes
-rwxr-xr-xAircraft_Structures_for_Engineering_Students/screenshots/b.pngbin0 -> 221122 bytes
-rwxr-xr-xAircraft_Structures_for_Engineering_Students/screenshots/b_1.pngbin0 -> 221122 bytes
-rwxr-xr-xAircraft_Structures_for_Engineering_Students/screenshots/c.pngbin0 -> 227233 bytes
-rwxr-xr-xAircraft_Structures_for_Engineering_Students/screenshots/c_1.pngbin0 -> 227233 bytes
30 files changed, 4062 insertions, 0 deletions
diff --git a/Aircraft_Structures_for_Engineering_Students/Chapter01.ipynb b/Aircraft_Structures_for_Engineering_Students/Chapter01.ipynb
new file mode 100755
index 00000000..7760d8e3
--- /dev/null
+++ b/Aircraft_Structures_for_Engineering_Students/Chapter01.ipynb
@@ -0,0 +1,499 @@
+{
+ "metadata": {
+ "name": "",
+ "signature": "sha256:0f8515032ad257111ffef42eb71b2510ec7d92768034e754ca14b473e010b968"
+ },
+ "nbformat": 3,
+ "nbformat_minor": 0,
+ "worksheets": [
+ {
+ "cells": [
+ {
+ "cell_type": "heading",
+ "level": 1,
+ "metadata": {},
+ "source": [
+ "Chapter 1. Basic Elasticity"
+ ]
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 1.1, Pg. No.13"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "# variable declaration\n",
+ "p = 1.5; #pressure inside vessel (N/mm^2)\n",
+ "d = 2*10**3; #diameter of vessel (mm)\n",
+ "t = 20; #thickness of plate (mm)\n",
+ "theta = 60; #plane's inclination to axis of vessel (degree)\n",
+ "load = 2500*10**3; #axial tensile load (N)\n",
+ "\n",
+ "# Longitudinal stress\n",
+ "sigma_x=p*d/4/t;\n",
+ "print \"\\nLongitudinal stress due to internal pressure = %5.2f N/mm^2\" %(sigma_x)\n",
+ "\n",
+ "#circumferential stress\n",
+ "sigma_y=p*d/2/t;\n",
+ "print \"\\nCircumferential stress due to internal pressure = %5.2f N/mm^2\" %(sigma_y)\n",
+ "\n",
+ "#axial load\n",
+ "sigma_x_axial=load/(math.pi*d*t);\n",
+ "print \"\\ndirect stress due to axial load = %5.2f N/mm^2\"%(sigma_x_axial)\n",
+ "\n",
+ "sigma_x=sigma_x+sigma_x_axial; #total longitudinal stress\n",
+ "\n",
+ "#direct stress and shear stress on inclined plane AB\n",
+ "#reference Fig 1.9 pg no14, equation 1.8,1.9 pg no 13\n",
+ "\n",
+ "sigma_n=sigma_x*math.pow(math.cos(math.radians(90-theta)),2)+sigma_y*math.pow(math.sin(math.radians(90-theta)),2)\n",
+ "print \"\\ndirect stress on inclined plane AB = %5.2f N/mm^2\"%(sigma_n)\n",
+ "\n",
+ "tau=(sigma_x-sigma_y)/2*math.sin(math.radians(2*(90-theta)))\n",
+ "print \"\\nshear stress on plane AB = %5.2f N/mm^2\"%(tau)\n",
+ "\n",
+ "#maximumm shear stress (theta=45 degree)\n",
+ "theta=45\n",
+ "tau=(sigma_x-sigma_y)/2*math.sin(math.radians(2*(90-theta)))\n",
+ "print \"\\nmaximum shear stress on plane AB = %5.2f N/mm^2\"%(tau)"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "\n",
+ "Longitudinal stress due to internal pressure = 37.50 N/mm^2\n",
+ "\n",
+ "Circumferential stress due to internal pressure = 75.00 N/mm^2\n",
+ "\n",
+ "direct stress due to axial load = 19.89 N/mm^2\n",
+ "\n",
+ "direct stress on inclined plane AB = 61.80 N/mm^2\n",
+ "\n",
+ "shear stress on plane AB = -7.62 N/mm^2\n",
+ "\n",
+ "maximum shear stress on plane AB = -8.80 N/mm^2\n"
+ ]
+ }
+ ],
+ "prompt_number": 1
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 1.2, Pg. No.14"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "\n",
+ "#variable declaration\n",
+ "load=50*10**3 #axial load (N)\n",
+ "d=60 #diameter (mm)\n",
+ "t=1.5 #offset distance from center (mm)\n",
+ "T=1200*10**3 #torque applied on a point (N.mm)\n",
+ "theta=60 #angle made by plane wrt axis of cylinder(degree)\n",
+ "\n",
+ "#compressive stress due to axial load\n",
+ "area=math.pi*math.pow(d/2,2) #cross section area\n",
+ "sigma_x_a=load/area\n",
+ "print \"\\ncompressive stress due to axial load = %5.1f N/mm^2\"%sigma_x_a\n",
+ "\n",
+ "#compressive stress due to bending moment\n",
+ "#area moment of inertia\n",
+ "M=load*t\n",
+ "I=math.pi*d**4/64\n",
+ "\n",
+ "sigma_x_b=M*d/2*(1/I)\n",
+ "print \"\\ncompressive stress due to bending moment = %5.1f N/mm^2\" %sigma_x_b\n",
+ "\n",
+ "#total compressive stress\n",
+ "sigma_x=sigma_x_a+sigma_x_b\n",
+ "\n",
+ "#shear stress due to torque Ref example 3.1 equation (iv) pg no 73\n",
+ "# tau=Tr/J\n",
+ "J=math.pi*d**4/32 #torsion constant\n",
+ "tau_xy=T*d/2/J\n",
+ "print \"\\nshear stress due to torque = %5.1f N/mm^2\" %tau_xy\n",
+ "\n",
+ "#direct and shear on inclined plane, ref eq 1.8,1.9\n",
+ "sigma_y=0\n",
+ "sigma_n=-sigma_x*math.pow(math.cos(math.radians(90-theta)),2)-tau_xy*math.sin(math.radians(2*(90-theta)))\n",
+ "print \"\\ndirect stress on inclined plane = %3.1f N/mm^2\"%sigma_n\n",
+ "\n",
+ "tau=-sigma_x/2*math.sin(math.radians(2*(90-theta)))+tau_xy*math.cos(math.radians(2*(90-theta)))\n",
+ "print \"\\nshear stress on inclined plane = %3.1f N/mm^2\"%tau\n",
+ "\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "\n",
+ "compressive stress due to axial load = 17.7 N/mm^2\n",
+ "\n",
+ "compressive stress due to bending moment = 3.5 N/mm^2\n",
+ "\n",
+ "shear stress due to torque = 28.3 N/mm^2\n",
+ "\n",
+ "direct stress on inclined plane = -40.4 N/mm^2\n",
+ "\n",
+ "shear stress on inclined plane = 5.0 N/mm^2\n"
+ ]
+ }
+ ],
+ "prompt_number": 95
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 1.3, Pg. No.20"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#import numpy\n",
+ "import math\n",
+ "#import matplotlib\n",
+ "%pylab inline\n",
+ "#from pylab import * #change comment to above line to see undocked graph, all values will be visible as mouse-pointer moves\n",
+ "#variable declaration\n",
+ "sigma_x=160 #stress in x direction (N/mm^2)\n",
+ "sigma_y=-120 #stress in y direction (N/mm^2)\n",
+ "sigma=200 #stress on inclined plane (N/mm^2)\n",
+ "\n",
+ "tau_xy=((sigma-sigma_x)*(sigma-sigma_y))**0.5\n",
+ "print \"\\nallowable shear stress, tau_xy = %4.1f N/mm^2 \"%tau_xy\n",
+ "\n",
+ "coeff=[1,-(sigma_x+sigma_y),sigma_x*sigma_y-tau_xy**2]\n",
+ "sigma=numpy.roots(coeff)\n",
+ "print \"\\nprincipal stresses, sigma_I = %3.0f N/mm^2 sigma_II = %3.0f N/mm^2\"%(sigma[0],sigma[1])\n",
+ "\n",
+ "tau_max=(abs(sigma[0])+abs(sigma[1]))/2\n",
+ "print \"\\nmaximum shear stress, tau_max = %3.0f N/mm^2\"%tau_max\n",
+ "\n",
+ "#plotting Mohr circle\n",
+ "x_cent=(sigma_x+sigma_y)/2\n",
+ "y_cent=0\n",
+ "\n",
+ "X1=(sigma_x,tau_xy)\n",
+ "X2=(sigma_y,-tau_xy)\n",
+ "\n",
+ "radius=(math.hypot(X2[0]-X1[0], X2[1] - X1[1]))/2\n",
+ "\n",
+ "cir=linspace(0,2*pi,100)\n",
+ "plot(radius*cos(cir)+x_cent,radius*sin(cir)+y_cent,'r')\n",
+ "plot(sigma_x,tau_xy,'ro',sigma_y,-tau_xy,'ro',x_cent,y_cent,'b+',sigma[0],0,'bo',sigma[1],0,'bo',20,tau_max,'go')\n",
+ "text(sigma_x+10,tau_xy,'Q1')\n",
+ "text(sigma_y+10,-tau_xy,'Q2')\n",
+ "text(20,tau_max+10,r'$\\tau_{max}$')\n",
+ "text(-150,0,r'$\\sigma_2$')\n",
+ "text(200,10,r'$\\sigma_1$')\n",
+ "text(-20,+10,'O')\n",
+ "text(30,-20,'C')\n",
+ "#plot([sigma_y,tau_xy],[sigma_x,-tau_xy],'r-')\n",
+ "xlabel(r'$\\sigma$')\n",
+ "ylabel(r'$\\tau$')\n",
+ "title('Mohr Cirle')\n",
+ "axis('equal')\n",
+ "grid(True)\n",
+ "show()"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Populating the interactive namespace from numpy and matplotlib\n",
+ "\n",
+ "allowable shear stress, tau_xy = 113.1 N/mm^2 \n",
+ "\n",
+ "principal stresses, sigma_I = 200 N/mm^2 sigma_II = -160 N/mm^2\n",
+ "\n",
+ "maximum shear stress, tau_max = 180 N/mm^2\n"
+ ]
+ },
+ {
+ "metadata": {},
+ "output_type": "display_data",
+ "png": "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\nd2oJCQmm/T///LN29913a97e3tpLL72kR9gV5uPjo3l6emrBwcFacHCwNnLkSNN9Rsjvm2++0Tw8\nPLQ6deporq6uWs+ePU33GSG/661Zs0bz8/PTvL29tWnTpukdTqU9+eSTWosWLTQXFxfNw8NDmz9/\nvnbmzBmtW7dumq+vr9ajRw8tNzfX9PjyjqGt2rx5s+bk5KQFBQWZ3nNr1641TI579uzRQkJCtKCg\nIC0wMFB75513NE3TLJafDEgUQghhFrtt2hJCCGEbpJAIIYQwixQSIYQQZpFCIoQQwixSSIQQQphF\nCokQQgizSCERQghhFikkQgghzCKFRAghhFmkkAhhZd9++y19+vTBzc2NBx98kI8//ljvkISwKJue\n/VcIe3f06FFWrVrFqlWrWLFiBZqm8eijj+odlhAWJWckQljRokWLTOvLnzlzhkaNGukckRCWJ4VE\nCCvKzc3F09MTgK1btxIWFqZzREJYnsz+K4QVHThwgB9//BFN07j33nsJDAzUOyQhLE4KiRBCCLNI\n05YQQgizSCERQghhFikkQgghzCKFRAghhFmkkAghhDCLFBIhhBBmkUIihBDCLFJIhBBCmOX/A2IJ\nxZVZr61+AAAAAElFTkSuQmCC\n",
+ "text": [
+ "<matplotlib.figure.Figure at 0xa137240>"
+ ]
+ }
+ ],
+ "prompt_number": 141
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 1.4, Pg. No.33"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "#variable declaration\n",
+ "sigma_x=83 # stress in x direction (N/mm^2)\n",
+ "sigma_y=65 # stress in y direction (N/mm^2)\n",
+ "E=200000 # Young's Modulus (N/mm^2)\n",
+ "v=0.3 # poisson's ratio\n",
+ "\n",
+ "# strains in x,y and z directions\n",
+ "epsln_x=1.0/E*(sigma_x-v*sigma_y)\n",
+ "epsln_y=1.0/E*(sigma_y-v*sigma_x)\n",
+ "epsln_z=-v/E*(sigma_x+sigma_y)\n",
+ "print \"\\nstrain in x direction, epsln_x = %5.3e\"%epsln_x\n",
+ "print \"\\nstrain in y direction, epsln_y = %5.3e\"%epsln_y\n",
+ "print \"\\nstrain in z direction, epsln_z = %5.3e\"%epsln_z\n",
+ "\n",
+ "tau_max=(sigma_x-sigma_y)/2\n",
+ "print \"\\nmaximum shear stress, tau_max = %2.2f N/mm^2\"%tau_max\n",
+ "\n",
+ "gama_max=2*(1+v)*tau_max/E\n",
+ "print \"\\nmaximum shear strain, y_max = %2.2e \" %gama_max"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "\n",
+ "strain in x direction, epsln_x = 3.175e-04\n",
+ "\n",
+ "strain in y direction, epsln_y = 2.005e-04\n",
+ "\n",
+ "strain in z direction, epsln_z = -2.220e-04\n",
+ "\n",
+ "maximum shear stress, tau_max = 9.00 N/mm^2\n",
+ "\n",
+ "maximum shear strain, y_max = 1.17e-04 \n"
+ ]
+ }
+ ],
+ "prompt_number": 111
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 1.5, Pg. No.33"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "#import matplotlib.pyplot as plt\n",
+ "%pylab inline\n",
+ "#variable declaration\n",
+ "sigma_x=60 #stress in x direction (N/mm^2)\n",
+ "sigma_y=-40 #stress in y direction (N/mm^2)\n",
+ "tau_xy=50 #shear stress (N/mm^2)\n",
+ "E=2*10**5 #Young's Modulus (N/mm^2)\n",
+ "v=0.3 #poisson's ratio\n",
+ "\n",
+ "#strains in x and y direction\n",
+ "epsln_x=1.0/E*(sigma_x-v*sigma_y)\n",
+ "epsln_y=1.0/E*(sigma_y-v*sigma_x)\n",
+ "print \"\\nstrains in x and y directions, epsi_x =%4.1e epsi_y =%4.1e \"%(epsln_x,epsln_y) \n",
+ "\n",
+ "G=E/2/(1+v)\n",
+ "print \"\\nshear modulus, G = %6.1f\"%G\n",
+ "\n",
+ "gama_xy=tau_xy/G\n",
+ "print \"\\nshear strain, gama_xy = %4.1e\"%gama_xy\n",
+ "\n",
+ "#principal strains\n",
+ "epsln_I=(epsln_x+epsln_y)/2+1.0/2*((epsln_x-epsln_y)**2+gama_xy**2)**0.5\n",
+ "epsln_II=(epsln_x+epsln_y)/2-1.0/2*((epsln_x-epsln_y)**2+gama_xy**2)**0.5\n",
+ "print \"\\nprincipal strains, epsln_I = %4.2e epsln_II = %4.2e\"%(epsln_I,epsln_II)\n",
+ "\n",
+ "#inclination\n",
+ "theta=1.0/2*math.atan(gama_xy/(epsln_x-epsln_y))\n",
+ "print \"\\ninclination to the plane on which sigma_x acts, theta = %4.1f or %4.1f\"%(theta*180/math.pi,theta*180/math.pi+90)\n",
+ "\n",
+ "#plotting Mohr circle\n",
+ "x_cent=(epsln_x+epsln_y)/2\n",
+ "y_cent=0\n",
+ "\n",
+ "X1=(epsln_x,gama_xy/2)\n",
+ "X2=(epsln_y,-gama_xy/2)\n",
+ "\n",
+ "radius=(math.hypot(X2[0]-X1[0], X2[1] - X1[1]))/2\n",
+ "print radius\n",
+ "cir=linspace(0,2*pi,100)\n",
+ "plot(radius*cos(cir)+x_cent,radius*sin(cir),'r')\n",
+ "plot(epsln_x,gama_xy/2,'ro',epsln_y,-gama_xy/2,'ro',x_cent,y_cent,'b+',epsln_II,0,'go',epsln_I,0,'go')\n",
+ "text(epsln_x,gama_xy/2,'Q1')\n",
+ "text(epsln_y,-gama_xy/2,'Q2')\n",
+ "text(-0.00050,0,r'$\\epsilon_2$')\n",
+ "text(.00050,0,r'$\\epsilon_1$')\n",
+ "text(-.000060,0.00002,'O')\n",
+ "text(0,0,'C')\n",
+ "xlabel(r'$\\epsilon$')\n",
+ "ylabel(r'$\\gamma$')\n",
+ "title('Mohr Cirle')\n",
+ "axis('equal')\n",
+ "grid(True)\n",
+ "show()"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Populating the interactive namespace from numpy and matplotlib\n",
+ "\n",
+ "strains in x and y directions, epsi_x =3.6e-04 epsi_y =-2.9e-04 \n",
+ "\n",
+ "shear modulus, G = 76923.1\n",
+ "\n",
+ "shear strain, gama_xy = 6.5e-04\n",
+ "\n",
+ "principal strains, epsln_I = 4.95e-04 epsln_II = -4.25e-04\n",
+ "\n",
+ "inclination to the plane on which sigma_x acts, theta = 22.5 or 112.5\n",
+ "0.000459619407771\n"
+ ]
+ },
+ {
+ "metadata": {},
+ "output_type": "display_data",
+ "png": "iVBORw0KGgoAAAANSUhEUgAAAZoAAAEZCAYAAACuIuMVAAAABHNCSVQICAgIfAhkiAAAAAlwSFlz\nAAALEgAACxIB0t1+/AAAIABJREFUeJzt3XlcVWX+wPEPKBoqjZkJKSpy2dwAl2TMVJKQ1BkzW1x+\nGViTNWpmmWllr2xKgZaxsmlsM5dpzGlKIBfCSdGpREotU3BcAmU3BVTSZHt+fxy9iVz2e++5y/f9\net2XncM5937PNzjfe57nOc9xUUophBBCCAtx1TsAIYQQjk0KjRBCCIuSQiOEEMKipNAIIYSwKCk0\nQgghLEoKjRBCCIuSQiOEjlatWsXw4cMt+hmxsbE89NBDdf48OzsbV1dXqqurLRqHcF5SaIRoJh8f\nH9q2bcvp06drrB8wYACurq6cOHHCarH885//ZPDgwXh4eNC1a1fGjh3L119/DcDTTz/Ne++9Z7VY\nhLiaFBohmsnFxQVfX1/WrVtnXPfjjz9y4cIFXFxczP55SilM3V/917/+lccff5xFixZx8uRJcnJy\nmDVrFklJSQ2+Z2VlpdnjFOJqUmiEaIH77ruPNWvWGJdXr17N/fffX6MgnDlzhvvvv58uXbrg4+PD\nkiVLahWM+fPn06lTJ3x9fUlOTjauDw8PZ9GiRQwbNoz27duTlZVVY78zZ87w/PPP8/bbbzNhwgTc\n3d1p1aoV48aNIz4+HoDFixczbdo04LdmspUrV9KzZ09uu+22WkXxzJkzPPjgg3Tt2hVvb2+ee+45\naVYTLSKFRogW+P3vf8/Zs2c5dOgQVVVVrF+/nvvuu6/GNo8++ijnzp0jKyuLHTt2sGbNGj788EPj\nz3fv3k1QUBCnT5/mqaee4sEHH6yx/z/+8Q/ef/99ysrK6NGjR42f7dq1i19//ZU777yzzhhNXV3t\n3LmTQ4cO8cUXX9QqejExMbRp04Zjx46xb98+UlJSeP/99xudEyGuJoVGiBaaNm0aa9asYevWrfTp\n04du3boZf3a5+MTGxtK+fXt69uzJvHnzWLt2rXGbnj178uCDD+Li4sL9999PQUEBJ0+eBLQiERMT\nQ+/evXF1daV169Y1Pvv06dN07twZV9e6/5RNNbctXrwYd3d32rZtW2N9UVERW7ZsYdmyZbi7u3PD\nDTcwd+5cPv7442blRgiA1g1vIoSoi4uLC9OmTWP48OFkZWXVajY7deoUFRUV9OzZ07iuR48e5OXl\nGZe9vLyM/92uXTsAysrK6NKlCwDdu3ev8/Ovv/56Tp06RXV1db3F5mp1vefx48epqKjgxhtvNK6r\nrq6udSUlRFPIFY0QLdSjRw98fX3ZsmULEydOrPGzzp074+bmRnZ2tnHdiRMn8Pb2bvT71zewYOjQ\nobRt25YNGzY0af+63rN79+7GkXQlJSWUlJRw5swZfvzxx0bHK8TVpNAIYQYffPAB27Ztw93dvcb6\nVq1ace+99/Lss89SVlbG8ePHWbZsWa1+nPrU9ySP3/3ud/zlL39h1qxZJCYmcv78eSoqKtiyZQsL\nFixocP+r3XjjjYwePZonnniCc+fOUV1dzbFjx9i5c2ej30OIq0mhEcIMfH19GThwoHH5yiuG5cuX\n0759e3x9fRk+fDj/93//x/Tp043bXX110dDy1Z544gn++te/8tJLL9GlSxd69OjB22+/bRwgcPVn\nNHSFs2bNGsrLy+nTpw+dOnXinnvuobCwsKEUCFEnF70ffJacnMzcuXOpqqriT3/6k/Fb2JXmzJnD\nli1baNeuHatWrWLAgAH17ltcXMykSZM4fvw4Pj4+/Otf/6Jjx44A7N+/n4cffphz587h6urKt99+\nW6tDVAghhBkpHVVWViqDwaCysrJUeXm5CgkJURkZGTW22bRpkxozZoxSSqm0tDQVFhbW4L7z589X\n8fHxSiml4uLi1IIFC5RSSlVUVKjg4GC1f/9+pZRSxcXFqqqqyirHKoQQzkrXprP09HT8/Pzw8fHB\nzc2NyZMnk5iYWGObpKQkoqOjAQgLC6O0tJTCwsJ6971yn+joaBISEgBISUkhODiY/v37A3Ddddc1\naaSOEEKIptP1LJuXl1djmKW3t3eNYZ/1bZOfn1/nvkVFRXh6egLg6elJUVERAIcPH8bFxYXbb7+d\nQYMG8corr1js2IQQQmh0vY+msfNBqUZ0Iyml6uzkvLy+srKSr776iu+++w53d3ciIiIYNGgQo0aN\nalrgQgghGk3XQtOtWzdycnKMyzk5ObXuL7h6m9zcXLy9vamoqKi1/vId2Z6enhQWFuLl5UVBQUGN\nG99GjBhBp06dABg7dix79+6tVWj8/Pw4duyYeQ9WCCEcXEhICN9//33tH+jZQVRRUaF8fX1VVlaW\nunjxYoODAXbt2mUcDFDfvvPnz1dxcXFKKaViY2ONgwGKi4vVwIED1fnz51VFRYW67bbb1ObNm2vF\npXNa7Mbzzz+vdwhOR3JufZLzxqvr3KnrFU3r1q156623iIqKoqqqigcffJDevXvzzjvvAPDwww8z\nduxYNm/ejJ+fH+3btzdORljXvgALFy7k3nvv5YMPPjAObwat8/+JJ57gpptuwsXFhXHjxjFmzBh9\nDt4BXHm3u7AOybn1Sc5bTvf7aGyRi4tLk+6mdlYxMTGsWrVK7zCciuTc+iTnjVfXuVPG9opmi4mJ\n0TsEpyM5tz7JecvJFY0JckUjhBBNJ1c0wuxSU1P1DsHpSM6tT3LeclJohBBCWJQ0nZkgTWdCCNF0\n0nQmhBBCF1JoRLNJ27X1Sc6tT3LeclJohBBCWJT00ZggfTRCCNF00kcjhBBCF1JoRLNJ27X1Sc6t\nT3LeclJohBBCWJT00ZggfTRCCNF00kcjhBBCF1JoRLNJ27X1Sc6tT3LeclJohBBCWJT00ZggfTRC\nCNF00kcjhBBCF1JoRLNJ27X1Sc6tT3LeclJohBBCWJT00ZggfTRCCNF0dZ07W+sQixCiMcrLIT8f\ncnIgN1f79+efoays5uuXX8DVFdzcoHXr314dOsANN0DnztrrhhvA0xMMBujaFVxc9D5C4STkisYE\nuaJpnNTUVMLDw/UOw/5dvAiZmfDjj9pr/344cABOngQvL+jeHby9oXt3Us+dIzw0VCsil1/t2kF1\nNVRW/vaqqNCK0M8/w6lTv70KCuDoUTh3Dvz8tJe/P4SGwpAh0KuXFKCryO9548kVjRC2oqQEvv4a\ndu7UXvv3g68v9O+vvWbN0v7t3h1ataq5b2oqmOOkd/asVnCOHIHDh2H9epg3Tyt6N92kFZ1hw2D4\ncHB3b/nnCacmVzQmyBWNMKuqKkhLg8RESEmBY8fg97+HESO015AhtnMyz8+Hb7+F9HTYsUMrgjff\nDFFR2qt3b7niEXWq69wphcYEKTSixX79Fb78EhISIClJ6xu54w4YOxYGD9b6U+xBaSls2wZffKG9\nACZNgilTICREio6oQQpNE0ihaRxpu76KUrBnD6xcqTVF9e0Ld96pFRhfX7N8hK45V0rrQ/r4Y1i3\nDq65BiZPhqlTtX4eByW/540nfTRCWMqpU7B2LXz4oTYCbPp02LcPevTQOzLzcnGB4GDttWQJ7N6t\nFZ3hw6FfP61v6Y9/1Ea8CXEF3W/YTE5OJigoCH9/f+Lj401uM2fOHPz9/QkJCWHfvn0N7ltcXExk\nZCQBAQGMHj2a0tLSGu934sQJOnTowGuvvWaZg3ISTv8t78gR+POfISBAKyxvvqmtW7TIYkXGZnLu\n4qL1M73+Ohw/Dg88AK++ql25LVkCRUV6R2g2NpNzO6ZroamqqmL27NkkJyeTkZHBunXryMzMrLHN\n5s2bOXr0KEeOHOHdd9/lz3/+c4P7xsXFERkZyeHDh4mIiCAuLq7Gez7xxBOMGzfOOgcpHM+uXTBx\notZJ3rmzNjR5zRptNJir7t/drK9tW6357Ouvtf6o7Gxt0MCjj0Jent7RCRug619Feno6fn5++Pj4\n4ObmxuTJk0lMTKyxTVJSEtHR0QCEhYVRWlpKYWFhvfteuU90dDQJCQnG90tISMDX15c+ffpY6Sgd\nl9PNAbV7N9x6q3ZSvfVW7YT64otaR7+V2HzOQ0Phvfe04tu27W/DtXNy9I6s2Ww+53ZA10KTl5dH\n9+7djcve3t7kXfUNqK5t8vPz69y3qKgIz0t//J6enhRduowvKyvj5ZdfZvHixZY6JOGIDh2Cu+7S\nXv/3f1rz2KOPQvv2ekdmuzw9taa0Q4e0m0pDQ2H2bK0/SzgdXQuNSyOHRjZmBJhSyuT7ubi4GNcv\nXryYxx9/nHbt2smoMjNw+LbrggJ46CGtszssTCswf/qTrp3ddpfzLl0gPl4rOK6u0KcPvPGGNnOB\nnbC7nNsgXYeHdOvWjZwrLqlzcnLw9vaud5vc3Fy8vb2pqKiotb5bt26AdhVTWFiIl5cXBQUFdOnS\nBdCa6j799FOeeuopSktLcXV1xd3dnZkzZ9aKLSYmBh8fHwA6duxIaGio8Rfu8qW0LDvo8pdfQlIS\n4f/8J8TEkLpyJXh4EH7ppkrd47PX5TffhEceIfX+++G11wh/9124/XbbiU+Wm7ycmprKqlWrAIzn\nS5OUjioqKpSvr6/KyspSFy9eVCEhISojI6PGNps2bVJjxoxRSim1a9cuFRYW1uC+8+fPV3FxcUop\npWJjY9WCBQtqffbixYvVa6+9ZjIundNiN7Zv3653COa3b59SQ4YodcstSh04oHc0tThEzqurlUpK\nUsrPT6mJE5UqLNQ7ono5RM6tpK5zp65NZ61bt+att94iKiqKPn36MGnSJHr37s0777zDO++8A8DY\nsWPx9fXFz8+Phx9+mLfffrvefQEWLlzI1q1bCQgIYNu2bSxcuFC3YxR24sIFePJJbZqVhx/Wpl/p\n21fvqByTi4t2v82PP2pDw0NCtPtxpDnbYcnMACbIzABO5ocftJFk/fvD8uXadPrCer79FmJiIDAQ\n/v53q47iE+ZV17nTCQf9C3FJdTUsWwa33QYLF2rTqkiRsb6bboK9e7V7b0JCYMsWvSMSZiaFRjTb\n5U5Bu1RYCGPGwCefaPfHTJtmFxNE2nXO69O2rTajwCefwIwZ2uwKlZV6RwU4cM6tSAqNcD7ffvvb\nM1d27jTbhJfCDIYP1yYmTUuDyEjtC0E9cnNzueOOOwgICMDPz4+5c+dSUVHB6dOnufXWW/Hw8ODR\nRx+1UvCiLlJoRLNdHu5oV9au1abqX75cu6vfziaAtMucN1WXLtojCUaOhEGD4JtvTG6mlGLixIlM\nnDiRw4cPc/jwYcrKynj22Wdxd3fnpZde4tVXX21xOE6RcwuTQiOcQ2WlNqrshRe0p1ROmKB3RKI+\nrVrB4sXw/vva/6tPPqm1ybZt23B3dzdON+Xq6sqyZctYuXIlrq6uDBs2jLZt21o5cGGKFBrRbHbT\ndn3+vHay2r9fe3KkHQ9btpucm8uYMbB1KzzxBLz8co0h0AcPHmTQoEE1Nvfw8KBHjx4cO3YMaPzs\nI/VxupxbgBQa4dhKSmD0aLj+eti8GTp10jsi0VQhIdqM2R99BDNnGgcJ1FdEKuxoihtnYF8N1MKm\n2HzbdUGBdgNmRAS89ppDTOFv8zm3FG9v+O9/4Z572Dl8OCkdOnDi5El25OQwISKCEZce+3H27Fly\ncnLwN+MTP50252Zk/395Qphy7Bjccov2fPu//tUhiozTu/Zadj7yCF/s389L//kPa/bvp0tJCa8+\n8AA7N22iqqqKefPmMXXqVNpfmllbbry2DfLXJ5rNZtuus7Nh1Cit8//ZZ+3i/pjGstmcW0nKihUs\nOX/euLwBcDl5kjvvvZfOnTtz9uxZ40gzHx8f5s2bx6pVq+jRoweHDh1q1mc6e87NQQqNcCz5+VpT\n2bx52mOWhUNpffFijWVvIBF49Kab2Lx5MwcPHuTo0aMAZGdnc/r0ac6dO8eJEycICgqyfsACkD4a\n0QI213b988/adDJ/+hPMmaN3NBZhczm3sso6hitXtW3L0KFDOXDggNk/09lzbg5yRSMcQ2mpNrps\n4kR4+mm9oxEWMnrOHJ41GGqse+aaa4hs3Vpmf7ZhUmhEs9lM23VFBdx9Nwwbpt3t78BsJuc6GTFu\nHFFvvMFzUVEsHjmS56KiuH31akbk5kJcnEU+09lzbg7SdCbsm1Lw2GPQpo32iGAH6vgXpo0YN844\nnNnollvg5puha1e4NFOAsB3yPBoT5Hk0dmT5clixQruh79pr9Y5G6CkzU5sfLTERhg7VOxqnVNe5\nUwqNCVJo7ERyMkyfrk262KuX3tEIW7Bxozba8NtvwctL72icjjz4TJidrm3X2dlw//3aZItOVGSk\nv6ABf/gDPPCAdqOumaahkZy3nBQaYX8qKmDKFHjqKa1tXogrPf88dOig/X4ImyBNZyZI05mNe/pp\n+OEHrZlEppYRppSUwODB8OqrcOedekfjNKSPpgmk0NiwlBStaWTvXu0BWULU5ZtvtPuqfvgBPD31\njsYpSB+NMDurt12fOgUxMbBmjdMWGekvaIKbb9a+lDz0UItu5pSct5wUGmE/5s6FyZO1CTOFaIzF\ni+HECVi1Su9InJo0nZkgTWc2aMsW7aFXBw7ApSnghWiU/fu1iVa/+w569tQ7GocmfTRNIIXGxpw7\nB/37w7vvavOZCdFUL72kFZqEBL0jcWjSRyPMzmpt14sWQXi4FBmkv6DZ5s+Hgwe1K+Mmkpy3nMx1\nJmzb/v3w8ceQkaF3JMKetW0Lb76pPT7iwAFtWViNNJ2ZIE1nNiQqCv74R5g9W+9IhCO4807t/ppn\nn9U7EockfTRNIIXGRiQna99ADx4ENze9oxGOIDtbKzQ//ADduukdjcOx2T6a5ORkgoKC8Pf3Jz4+\n3uQ2c+bMwd/fn5CQEPbt29fgvsXFxURGRhIQEMDo0aMpLS0FYOvWrQwePJjg4GAGDx7M9u3bLXtw\nDs6ibdeVlfDkk/Dyy1JkriD9BS3k46PdW7NkSaN3kZybgdJRZWWlMhgMKisrS5WXl6uQkBCVkZFR\nY5tNmzapMWPGKKWUSktLU2FhYQ3uO3/+fBUfH6+UUiouLk4tWLBAKaXUvn37VEFBgVJKqQMHDqhu\n3bqZjEvntNiN7du3W+7N33tPqREjlKquttxn2CGL5txZ/PyzUp06KfXTT43aXHLeeHWdO3W9oklP\nT8fPzw8fHx/c3NyYPHkyiYmJNbZJSkoi+tKDjMLCwigtLaWwsLDefa/cJzo6moRLQxpDQ0PxujR1\neJ8+fbhw4QIVZprh1RlZ7FnqFRXacNS4OHmQ2VXk+fVm0LkzzJrV6KexSs5bTtdCk5eXR/fu3Y3L\n3t7e5OXlNWqb/Pz8OvctKirC89LcRp6enhQVFdX67E8//ZRBgwbhJs0ytmfdOvD1lYdXCct54gn4\n/HP43//0jsQp6Dq82aWR31ZVIzrmlVIm38/FxaXW+oMHD7Jw4UK2bt1a5/vFxMTg4+MDQMeOHQkN\nDTV+s7ncZuvsy5fXmfX9q6tJXbQIHnuM8EufYSvHawvLV+de73jsennuXFi6lNTp0+vd/vXXX5e/\n/zqWU1NTWXVpep/L50uTrNqAd5Vdu3apqKgo4/LSpUtVXFxcjW0efvhhtW7dOuNyYGCgKiwsrHff\nwMBAY19Mfn6+CgwMNG6Xk5OjAgIC1DfffFNnXDqnxW5YpO3600+Vuukm6Zupg/QXmNHp00p17KjU\npXNFXSTnjVfXuVPXprPBgwdz5MgRsrOzKS8vZ/369YwfP77GNuPHj2fNmjUApKWl0bFjRzw9Pevd\nd/z48axevRqA1atXM2HCBABKS0sZN24c8fHxDJVmmRa7/A3HbJSC2Fh45hnpm6mD2XPuzDp10iZp\n/fvf691Mcm4GVi54tWzevFkFBAQog8Ggli5dqpRSasWKFWrFihXGbWbNmqUMBoMKDg5We/bsqXdf\npZQ6ffq0ioiIUP7+/ioyMlKVlJQopZR68cUXVfv27VVoaKjx9fPPP9eKyQbS4pzS0pQyGJSqqtI7\nEuEsMjOV6tJFqQsX9I7EIdR17pQbNk2QGzYbJzU11bzf9h58EAICYMEC872ngzF7zgWMHQv33AOX\n+mquJjlvPJu9YVMIAM6cgc8+q/OPXQiLmTMH3npL7ygcmlzRmCBXNDr4299gxw7417/0jkQ4m6oq\n7Tk1KSnQp4/e0dg1uaIRtu3dd2HGDL2jEM6oVSuYOhXWrtU7EoclhUY025X3dLRIRgYUF8sjmhvB\nbDkXNU2bBh99BNXVtX4kOW85KTRCf//+N9x1F7jKr6PQSf/+2nDnHTv0jsQhSR+NCdJHY2XBwdq9\nDMOG6R2JcGavvQaHDsF77+kdid2S59E0gRQaK/rf/+DWWyE3V65ohL6OHoURIyAvT24YbiYZDCDM\nzixt159+Ks1mTSD9BRbk5wceHnDFM69Acm4O8tct9LVpE1w17ZAQuhk3DjZu1DsKhyNNZyZI05mV\nnDsHN94IP/8M7u56RyMEfPmlNtfe7t16R2KXpOlM2J7//hduukmKjLAdw4dr/YY//6x3JA5FCo1o\ntha3XW/bJvfONJH0F1hYmzbaA/e++ca4SnLeclJohH6+/BIiIvSOQoiario0ouWkj8YE6aOxgrNn\noWtXKCkBeZy2sCX/+Q+88ILWtCuaRPpohG35/nvtbmwpMsLWDBkCe/dCebnekTgMKTSi2VrUdr13\nLwwYYLZYnIX0F1jBtdeCv7/2O4rk3Byk0Ah97NsHAwfqHYUQpg0aBD/8oHcUDkP6aEyQPhor6N8f\nVq3S/qCFsDWvvqpNi/T663pHYlekj0bYjosXtXml+vXTOxIhTOvdGzIz9Y7CYUihEc3W7Lbr7Gzo\n1g3atjVnOE5B+gus5IpCIzlvOSk0wvqys8HHR+8ohKhbz55w6hSUlekdiUOQQiOaLTw8vHk7ZmVB\nr15mjcXe5ebmcscddxAQEICfnx9z586loqKi1nbNzrlomlatwGCAo0cl52YghUZYn1zR1KCUYuLE\niUycOJHDhw9z+PBhysrKePbZZ/UOzbl17QoFBXpH4RCk0Ihma3bbtVzR1LBt2zbc3d2Jjo4GwNXV\nlWXLlrFy5Up+/fXXGttKf4EV3XgjFBZKzs1ACo2wvsJC7duiAODgwYMMumqYt4eHBz169ODIkSM6\nRSXw8pIrGjORQiOardlt1yUlcN11Zo3FnrnU89jgq38WHh5OYWEhkydPxs/Pj8GDBzNu3DgpSJZw\n6YpG+mhaTgqNsL7SUujYUe8obEafPn3Ys2dPjXVnz57lxIkT+Pn51VivlOLOO+9k1KhRHD16lO++\n+47Y2FiKioqsGbJzuPFGuaIxEyk0otkut11v2LCBpUuXsnnz5sbtWFoqVzRXiIiI4Pz586xduxaA\nqqoq5s2bx/Tp07nmmmtqbLts2TLatGnDjBkzjOuCg4O55ZZbrBqzU/DwgLKy5v+eCyPdC01ycjJB\nQUH4+/sTHx9vcps5c+bg7+9PSEgI+/bta3Df4uJiIiMjCQgIYPTo0ZSWlhp/Fhsbi7+/P0FBQaSk\npFjuwJzE4cOHWb58Oc888wxjx45teIfKSjh/Hjp0sHxwdmTDhg188sknBAQEEBgYSLt27Vi6dGmt\n7bKysmr15wgLueYauDQYo8m/56ImpaPKykplMBhUVlaWKi8vVyEhISojI6PGNps2bVJjxoxRSimV\nlpamwsLCGtx3/vz5Kj4+XimlVFxcnFqwYIFSSqmDBw+qkJAQVV5errKyspTBYFBVVVW14tI5LXbl\njTfeUFOnTlWrVq1S2dnZ6ttvv1WpqanG/F9pY8pGNfq+W9VIg6saHTNabUzZqEPE9u3NN99Ujz/+\nuMmfbd9u3Vgc2caUjWr0nUPUyP4eanTMaDXjzzNq/J4rpVRCQoLKy8vTOVLbUte5U9crmvT0dPz8\n/PDx8cHNzY3JkyeTmJhYY5ukpCTjsM+wsDBKS0spLCysd98r94mOjiYhIQGAxMREpkyZgpubGz4+\nPvj5+ZGenm7FI3Y8HTt2ZNKkSURHR9OzZ0++++47wsLCOHXqFGVX3FW9aesmHvvbY6T4bWfHtGpS\nfFJ47G+PsWnrJh2jtz99+/at1Z9zmYzCNQ/j72pIOjvuOkeKTwoJaQkYAg3G3/PCwkJWr14tk+82\nUoOFJi0tzWIfnpeXR/fu3Y3L3t7e5OXlNWqb/Pz8OvctKirC09MTAE9PT2NHaX5+Pt7e3vV+nmi8\n1NRUJk2axKFDh0hMTGT//v088sgjuLm5UVlZSYcrmsfe/OebHBtwrMb+xwYcY/m65dYO2665urpy\n8eJF3nvvPeO6/fv389VXX+kYlWOp9buaBSfHnWT95+uNv+deXl6EhIToF6Sdad3QBr1792bbtm20\natUKPz8/unXrZrYPr29Y55Ua861BKWXy/VxcXJo0fPSymJgYfC7dvd6xY0dCQ0ONwxwvdw46+zJA\n27ZtGTJkCKB1SgM8//zzjBw5koqKCtzc3EhNTaWooAh8Lu2UdenfXvBr9a82czz2sjx//nzeeust\n4uPjqaq6hsrKa7npplls2KANCMjOTiU0FObOtY147W25qKAIFHD5nuJC7Z8b+97IHXfcQWpqao2/\nAb3j1XM5NTWVVatWARjPl6Y0+Dya3NxcNmzYgMFgoLi4mGuvvZaioiI8PDyYPHlyfbs2KC0tjcWL\nF5OcnAxoHfWurq4sWLDAuM0jjzxCeHi48bOCgoLYsWMHWVlZde4bFBREamoqXl5eFBQUcOutt3Lo\n0CHi4uIAWLhwIQC33347L7zwAmFhYTWTIs+jabbVq1ezc+dOXF1dWbFiBa1atQIganoUKT61B19E\nHY8ieWWytcN0SIsXay/RMo35XT158iRz585l7Nix3HfffdYO0WbVee5sqHOnX79+6vz58+brLbpC\nRUWF8vX1VVlZWerixYsNDgbYtWuXcTBAffvOnz9fxcXFKaWUio2NrTUY4OLFi+qnn35Svr6+qrq6\nulZcjUiLaKKNKRuV4Q6DYjHGl2G8QQYEmNHzz+sdgWOQ39Xmq+vc2eAZNSIiQp07d87sAV22efNm\nFRAQoAzF3oebAAAaXUlEQVQGg1q6dKlSSqkVK1aoFStWGLeZNWuWMhgMKjg4WO3Zs6fefZVS6vTp\n0yoiIkL5+/uryMhIVVJSYvzZkiVLlMFgUIGBgSo5OdlkTFJoGmd7E4c5bUzZqKKib1Mje7moqOlR\n8ofbDPXlXEadmc/GlI0qasIQNTL4WnXT7TfJ72oj1XXubLDprLi4mISEBO6//35at26wS8chSNNZ\n46SmphrbbRtNKe3+hDNntH9FkzQr56J5UlLg1VdJfeYZyXkj1XXubLDQOCMpNBbm6Qk//KBNWiiE\nrUpIgJUrISlJ70jsRl3nTt1nBhBO6LrrtIk1hbBlP/8MXbroHYVDkEIjmu3KIZ5N0rGjNt+ZaLJm\n51w0XUEBeHlJzs1ACo2wvuuv174tCmHLCgu1GZxFi0mhEc3W7A5SHx/tcc6iyaRT2oouXdFIzltO\nCo2wPik0wh4UFMgVjZlIoRHN1uy26169ICur4e1ELdJfYEVZWdCzp+TcDKTQCOuTKxph64qLtWfR\ndO2qdyQOQe6jMUHuo7Gw06fB11cbedbIiVWFsKqvv4YnnoDdu/WOxK7IfTTCdlx/PbRvDydO6B2J\nEKZlZkLv3npH4TCk0Ihma1Hb9YABcMVjuUXjSH+BlWRmQlAQIDk3Byk0Qh8DBsDevXpHIYRpP/4I\nffvqHYXDkD4aE6SPxgo++ww+/BA+/1zvSISoqaoKOnWCo0fhhhv0jsauSB+NsC1yRSNsVUaGNvGr\nFBmzkUIjmq1Fbdc+PlBZKcOcm0j6C6xg1y64+WbjouS85aTQCH24uMCoUbBtm96RCFHTN9/A0KF6\nR+FQpI/GBOmjsZL334fUVPjHP/SORIjf+PnBhg3Qv7/ekdgd6aMRtmfUKPjyS+2pm0LYgiNH4Px5\n6NdP70gcihQa0Wwtbrv29dUe53zokFnicQbSX2BhmzbB2LE1ZqyQnLecFBqhr8hI2LJF7yiE0Gza\nBH/4g95ROBzpozFB+mis6Isv4IUXtA5YIfR07hx06wb5+dChg97R2CXpoxG2adQo+N//IDdX70iE\ns9u6FX7/eykyFiCFRjSbWdqu3dzgj3/UZgoQDZL+Agtatw7uvrvWasl5y0mhEfq7+27497/1jkI4\ns9JSSEmBe+7ROxKHJH00JkgfjZVdvKg9YGrfPujRQ+9ohDN67z2tv1C+8LSI9NEI29W2LUydCh98\noHckwlmtXQvTpukdhcOSQiOazaxt1zNmaIWmstJ87+mApL/AArKytOfPjBlj8seS85aTQiNsQ//+\nWrPZ5s16RyKczYoVcN990KaN3pE4LF0LTXFxMZGRkQQEBDB69GhKS0tNbpecnExQUBD+/v7Ex8c3\nav/Y2Fj8/f0JCgoiJSUFgAsXLjBu3Dh69+5Nv379ePrppy17gA4uPDzcvG/48MPw7rvmfU8HY/ac\nO7uyMu1Kes6cOjeRnLecroUmLi6OyMhIDh8+TEREBHFxcbW2qaqqYvbs2SQnJ5ORkcG6devIzMys\nd/+MjAzWr19PRkYGycnJzJw509hB9dRTT5GZmcm+ffv4+uuvSU5Ott4Bi/rdcw+kpcGxY3pHIpzF\nmjUwYgT06qV3JA5N10KTlJREdHQ0ANHR0SQkJNTaJj09HT8/P3x8fHBzc2Py5MkkJibWu39iYiJT\npkzBzc0NHx8f/Pz82L17N+7u7owcORIANzc3Bg4cSF5enjUO1SGZve26XTuYORNeftm87+tApL/A\njKqr4Y03YO7cejeTnLecroWmqKgIT09PADw9PSkqKqq1TV5eHt27dzcue3t7G4tDXfvn5+fj7e1t\ncp/LSktL+fzzz4mIiDDvQYmWmTMHPvkE5AuAsLQtW6B9exg+XO9IHF5rS39AZGQkhYWFtdYvWbKk\nxrKLiwsuV8yYeuX6Kyml6tzO1HpT71NZWcmUKVN47LHH8PHxMbl9TEyM8WcdO3YkNDTU2FZ7+RuO\nLFtguXNnUkeNgscfJ/xf/9I/HhtbDg8Pt6l47HZZKcJfeAGeeorUHTvq3f7yOpuK30aWU1NTWbVq\nFUCd51IAlI4CAwNVQUGBUkqp/Px8FRgYWGubXbt2qaioKOPy0qVLVVxcXL37x8bGqtjYWOM+UVFR\nKi0tzbg8ffp09dhjj9UZl85pETk5Sl13nVKnTukdiXBUSUlK9e+vVFWV3pE4lLrOnbo2nY0fP57V\nq1cDsHr1aiZMmFBrm8GDB3PkyBGys7MpLy9n/fr1jB8/vt79x48fz8cff0x5eTlZWVkcOXKEIUOG\nALBo0SLOnj3LsmXLrHGIDu3yNxuz8/bWpqWRvppaLJZzZ1JdDc89By++CK4NnwIl52Zg5YJXw+nT\np1VERITy9/dXkZGRqqSkRCmlVF5enho7dqxxu82bN6uAgABlMBjU0qVLG9xfKaWWLFmiDAaDCgwM\nVMnJyUoppXJycpSLi4vq06ePCg0NVaGhoeqDDz6oFZfOabEb27dvt9yb5+Up1amTUllZlvsMO2TR\nnDuLf/1LqcGDlaqubtTmkvPGq+vcKXOdmSBzndmIxYu1R+t+9JHekQhHUVEBwcHw+usQFaV3NA5H\n5joT9ufJJ2H7dkhP1zsS4SiWL4eePWH0aL0jcSpSaESzWbztukMH+MtfYN48kCtMQPoLWiQ/H5Yu\nhTffhHpGqF5Nct5yUmiEbZs+HX75RbuDW4iWmD9fm7w1IEDvSJyO9NGYIH00NmbvXrj9dvjxR7h0\ng64QTbJjh/YYgMxM7SZNYRHSRyPs18CBEBPT4FQhQph04QI88ggsWyZFRidSaESzWbXtevFi+PZb\n2LjRep9pg6S/oBmefhpCQ+Guu5q1u+S85Sw+BY0QZtGunfYIgehouPlm6NRJ74iEPdi2TXs88/79\nekfi1KSPxgTpo7Fhjz8O2dnw2WdNGjkknNCZM9o9M++8o/XxCYur69wphcYEKTQ27OJFGDZM67OZ\nPVvvaIStUkq7+m3fHv7+d72jcRoyGECYnS5t123bwscfwwsvwPffW//zdSb9BY307rvaaMVXX23x\nW0nOW04KjbA/fn7aTXeTJsG5c3pHI2xNWpo2aeaGDTLKzEZI05kJ0nRmJ/78Z8jJgcREaNWq1o9z\nc3OZNWsWmZmZVFdX84c//IFXXnmF1NRUnn76acrLy2nTpg2vvPIKt956qw4HIMyuqAgGD4a//Q0u\nzfIurEf6aJpACo2dqKjQOnkHDKjVRKKUIiwsjFmzZhEdHU11dTUzZsygU6dOTJ06FS8vL7y8vDh4\n8CBRUVHk5ubqdBDCbCoqIDJSe2Lmiy/qHY1Tkj4aYXa6t127uWmPfU5Kgg8+qPGjbdu24e7uTnR0\nNACurq4sW7aMlStXEhQUhJeXFwB9+vThwoULVFRUWD385tA957ZKKXjoIW1+vMWLzfrWkvOWk0Ij\n7FunTtpNnM88A1ecEA4ePMigQYNqbOrh4UGPHj04evSocd2nn37KoEGDcHNzs1bEwhIWLdKml1m/\n3mQzqtCXFBrRbFc+U11XAQGwbh3cey/s2QNol/B1qaysBLRitHDhQt555x2rhGkONpNzW/L229qV\n7caNFun8l5y3nPTRmCB9NHYqIYGdMTGk9O3LibIyduTksHbtWkaMGwfA2bNnMRgMZGdnU1JSQkRE\nBKtWrWLo0KE6By6abcMG7X6q//4XfH31jsbpSR+NMDtba7ve6ebGF9dcw0vffMOa/fvpUlLCqw88\nwM5Nm6iqqmLevHlMnTqViooKxo0bR3x8vN0VGVvLua6SkrTJMj//3KJFRnLeclJohMNIefNNlhQV\nGZc3AC4nT3LnvffSuXNnzp49yyuvvMJbb73FsWPHeOGFFxgwYAADBgzg1KlT+gUumm7DBq3zf9Mm\nbXZvYdOk6cwEaTqzT4vDw1m8Y0ft9SNHEhUby0MPPcQnn3xC7969dYhOmM0nn8Cjj8KWLdrQdmEz\n6jp3yuzNwmFUtm1rcn3VxYsMHTqUAwcOWDkiYXb//Kf2aO8vvoCQEL2jEY0kTWei2Wyt7Xr0nDk8\nazDUWPeMlxeRGRnw5Zc6RWVetpZzq1EK4uJg4ULYutWqRcZpc25GckUjHMbl0WXPLV9Oq19/peqa\na7j90UcZ4eEBd98Nb7wBU6boHKVosooKmDVLe/Ddrl3QrZveEYkmkj4aE6SPxgHt3w933AGTJ8NL\nL8lNffbi7Fnt/ihXV+1mTA8PvSMS9ZDhzcK5BQdr34jT0rTJFs+c0Tsi0ZBDh7Snqfr4aEOZpcjY\nLSk0otnsru26c2dISdHuuRgyRDuR2Rm7y3lzrVunTY752GPag8ta69fK7zQ5tyApNMK5uLnB8uXw\n1FPaiez997WOZmEbLl6EmTO158mkpGj3ysgju+2e9NGYIH00TiIjA6ZOBYNBeyLj9dfrHZFzO3QI\n7rsPevaElSvhd7/TOyLRRDbXR1NcXExkZCQBAQGMHj2a0tJSk9slJycTFBSEv78/8fHxjdo/NjYW\nf39/goKCSElJqfWe48ePp3///uY/KGFf+vSB3bu1PoDQUIcZAm13qqrg5ZfhllvggQfg3/+WIuNg\ndCs0cXFxREZGcvjwYSIiIoiLi6u1TVVVFbNnzyY5OZmMjAzWrVtHZmZmvftnZGSwfv16MjIySE5O\nZubMmVRXVxvf87PPPsPDw6Pe2X1F4zhE23XbtvDaa9o36OhorammuFjvqOrkEDm/UmYmDBsGycna\nYI2ZM22uqczhcq4D3QpNUlKS8aFU0dHRJCQk1NomPT0dPz8/fHx8cHNzY/LkySQmJta7f2JiIlOm\nTMHNzQ0fHx/8/PxIT08HoKysjGXLlrFo0SJpGhM1RUZqTWnu7tqVzpo10ndjSRcuaMPMR4yAmBj4\nz3+gVy+9oxIWoluhKSoqwtPTEwBPT0+KrpgM8bK8vDy6d+9uXPb29iYvL6/e/fPz8/H29q6xT35+\nPgDPPfccTz75JO3atbPMQTkZh3tOx7XXwptvas81eeMNGDVK+8ZtQ+w+50rBp59qxXzfPu0q5pFH\ntPtkbJTd59wGWHTMYGRkJIWFhbXWL1mypMayi4uLyaasq9cppercrr6mMKUU33//PT/99BPLli0j\nOzu7kUcgnNLgwZCeDn/7m/aNe8IE7fHAckd6y/zwgzZcubhYa6q89Va9IxJWYtFCs3Xr1jp/5unp\nSWFhIV5eXhQUFNClS5da23Tr1o2cnBzjcm5uLt0u/bHXtb+pfby9vUlLS+O7776jV69eVFZWcvLk\nSUaNGsW2bdtMxhcTE4OPjw8AHTt2JDQ01PjN5nKbrbMvX15nK/GYfXnOHJg2jdSZM6F3b8JnzoQF\nC0j94Qfd4rs699b+/GYtr1kDa9cSvn8/vPACqf7+4OJC+KXj0D2+BpZff/11+fuvYzk1NZVVq1YB\nGM+XJimdzJ8/X8XFxSmllIqNjVULFiyotU1FRYXy9fVVWVlZ6uLFiyokJERlZGTUu//BgwdVSEiI\nunjxovrpp5+Ur6+vqq6urvG+2dnZql+/fnXGpmNa7Mr27dv1DsF6cnKU+tOflOrcWam//EWpU6d0\nCcOucp6RodSUKVrOXnxRqdJSvSNqFrvKuc7qOnfqdkY9ffq0ioiIUP7+/ioyMlKVlJQopZTKy8tT\nY8eONW63efNmFRAQoAwGg1q6dGmD+yul1JIlS5TBYFCBgYEqOTm51mdnZWWp/v371xmbFBpRp8xM\npaZPV6pjR6Vmz1bqp5/0jsj27N6t1KRJSt1wg1JLlyp15ozeEQkrqevcKTdsmiA3bIoG5edrMwy8\n9x5ERGgP4ho2zOaG5lrNr79qk16+9RacOqXNtvzwwzI/mZOxuRs2hf27sr/A6XTtCrGxkJUFQ4fC\njBkQGKituzQy0hJsLucZGbBgAfToAR9/DM8/D0ePwpNPOkyRsbmc2yEpNEK0hIcHzJ0LBw9q995k\nZUH//jBuHHz0EZSU6B2h+f30k1ZQg4MhKgqqq+Hrr7VHK//hD/IIBlGLNJ2ZIE1nokV++QU++0yb\nSmX7dm2m6AkTtOfhXHFfmN2oroa9e7XHJ3/+uVZo7r5be7bPLbfY9D0wwrrqOndKoTFBCo0wm19+\n0WYhTkiATZu0JrcRI357eXnpHWFtSsHx47Bjh1Zctm7VHrEQFQVjx2r3v7i56R2lsEFSaJpACk3j\npKamGsfWi0aorNSuDHbu1F5ffaWdwG+5BUJCtCa3/v3hhhvqfAuz51wpOHlSiys9XbtTPz1da/66\n5RatuIwerfXBOCn5PW+8us6d+j1NSAhn07q11ow2ZIjWWV5dDQcOwDffaI+a/ve/4ccf4ZprtILj\n6wve3lpz2+V/z53TClZjHwR24QL8/LM2EuzUKSgo0DrrjxzRXkePau8VGqrF9cADsGKFNguCs46g\nE2YnVzQmyBWN0I1SkJurFaDjxyEnR3vl5mr/njypNce1bq0NROjQAdq104pWZWXN19mz2r833KBd\nOd1wA3TpAn5+4O//26tTJ72PWjgIaTprAik0wqYppd23UlamvX75ReuQb91a6ztp3Vpr+rpciOTK\nRFiJ3EcjzE7uL7C+1NRUrXC4u2tXKL16Qb9+2mzIAQHacvfu2qADDw8pMmYgv+ctJ4VGCCGERUnT\nmQnSdCaEEE0nTWdCCCF0IYVGNJu0XVuf5Nz6JOctJ4VGCCGERUkfjQnSRyOEEE0nfTRCCCF0IYVG\nNJu0XVuf5Nz6JOctJ4VGCCGERUkfjQnSRyOEEE0nfTRCCCF0IYVGNJu0XVuf5Nz6JOctJ4VGCCGE\nRUkfjQnSRyOEEE0nfTRCCCF0IYVGNJu0XVuf5Nz6JOctJ4VGCCGERUkfjQnSRyOEEE0nfTRCCCF0\noVuhKS4uJjIykoCAAEaPHk1paanJ7ZKTkwkKCsLf35/4+PhG7R8bG4u/vz9BQUGkpKQY15eXlzNj\nxgwCAwPp3bs3n332meUO0AlI27X1Sc6tT3LecroVmri4OCIjIzl8+DARERHExcXV2qaqqorZs2eT\nnJxMRkYG69atIzMzs979MzIyWL9+PRkZGSQnJzNz5kzjpdySJUvw8vLif//7H5mZmYwcOdJ6B+yA\nvv/+e71DcDqSc+uTnLecboUmKSmJ6OhoAKKjo0lISKi1TXp6On5+fvj4+ODm5sbkyZNJTEysd//E\nxESmTJmCm5sbPj4++Pn5kZ6eDsCHH37I008/bXz/66+/3qLH6OjqugoVliM5tz7JecvpVmiKiorw\n9PQEwNPTk6Kiolrb5OXl0b17d+Oyt7c3eXl59e6fn5+Pt7d3rX0u/7IsWrSIQYMGce+993Ly5EnL\nHJwQQggjixaayMhI+vfvX+uVlJRUYzsXFxdcXFxq7X/1OqVUnduZWn+lyspKcnNzGTZsGHv27GHo\n0KE8+eSTzTgqcVl2drbeITgdybn1Sc5brrUl33zr1q11/szT05PCwkK8vLwoKCigS5cutbbp1q0b\nOTk5xuXc3Fy6detW7/517XP99dfTrl07Jk6cCMDdd9/NBx98YDK2kJCQBguX0KxevVrvEJyO5Nz6\nJOeNExISYnK9bk1n48ePN/7PW716NRMmTKi1zeDBgzly5AjZ2dmUl5ezfv16xo8fX+/+48eP5+OP\nP6a8vJysrCyOHDnCkCFDcHFx4Y9//CPbt28H4Msvv6Rv374mY/v+++9RSslLXvKSl7ya8Kpz4ITS\nyenTp1VERITy9/dXkZGRqqSkRCmlVF5enho7dqxxu82bN6uAgABlMBjU0qVLG9xfKaWWLFmiDAaD\nCgwMVMnJycb1x48fVyNGjFDBwcHqtttuUzk5OVY4UiGEcG4yM4AQQgiLkpkBBKDPDbTh4eEEBQUx\nYMAABgwYwKlTpyx3gDairvxdac6cOfj7+xMSEsK+ffsa3Lc5uXc21sx7dnY27u7uxt/rmTNnWvbg\n7IHel1TCNsyfP1/Fx8crpZSKi4tTCxYsqLVNZWWlMhgMKisrS5WXl6uQkBCVkZFR7/4HDx5UISEh\nqry8XGVlZSmDwaCqq6uVUkqFh4erPXv2WOPwbEJ9+bts06ZNasyYMUoppdLS0lRYWFiD+zYl91VV\nVdY6XJth7bxnZWWpfv36Wevw7IJc0QjAujfQ7t692/ieyolabuvL32VX5jEsLIzS0lIKCwvNfvOy\nM7F23kVtUmgEYN0baPPz843L0dHRDBgwgJdeesn8B2Vj6stfQ9vk5+eb7eZlZ2PtvANkZWUxYMAA\nwsPD+eqrryxyXPbEovfRCNsSGRlJYWFhrfVLliypsWyNG2gBPvroI7p27UpZWRl33XUXa9euZdq0\naQ3uZ68ae29WY67ympt7Z7w/zNp579q1Kzk5OVx33XXs3buXCRMmcPDgQTw8PJoWuAORQuNEbOkG\nWtD+IAE6dOjA1KlTSU9Pd+hCc3UucnJyalxxmNomNzcXb29vKioqzJp7Z2LtvLdp04Y2bdoAMHDg\nQAwGA0eOHGHgwIEWO0ZbJ01nArD+DbRVVVXGUWYVFRV8/vnn9O/f3xqHqpv68nfZ+PHjWbNmDQBp\naWl07NgRT09Ps+be2Vg776dOnaKqqgqAn376iSNHjuDr62utw7VNeo5EELbD2jfQlpWVqUGDBqng\n4GDVt29fNXfuXONoNEdmKn8rVqxQK1asMG4za9YsZTAYVHBwcI1Reea8ednZWDPvn376qerbt68K\nDQ1VAwcOVBs3brTSUdouuWFTCCGERUnTmRBCCIuSQiOEEMKipNAIIYSwKCk0QgghLEoKjRBCCIuS\nQiOEEMKipNAIIYSwKCk0QgghLEoKjRBCCIuSSTWFsBMbNmwgMzOT0NBQxo4dq3c4QjSaTEEjhB04\nfPgwjzzyCNu2bdM7FCGaTJrOhLADycnJ3HjjjaxevZrjx4/rHY4QTSJNZ0LYgY4dOzJp0qRa09sL\nYQ+k6UwIO3Dx4kXeeOMNAgMD6dWrF8HBwXqHJESjSaERQghhUdJHI4QQwqKk0AghhLAoKTRCCCEs\nSgqNEEIIi5JCI4QQwqKk0AghhLAoKTRCCCEsSgqNEEIIi/p/6nl+EewyCdMAAAAASUVORK5CYII=\n",
+ "text": [
+ "<matplotlib.figure.Figure at 0xcc10a20>"
+ ]
+ }
+ ],
+ "prompt_number": 185
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 1.7, Pg. No.40"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "#variable declaration\n",
+ "epsln_a=1000*10**(-6) #readings of strain gauges \n",
+ "epsln_b=-200*10**(-6) #straing gauges 'a' and 'c' are\n",
+ "epsln_c=-300*10**(-6) #in line and perpendicular to axis of bar\n",
+ "d=50 #diameter of bar (mm)\n",
+ "E=70000 #Young's modulus (N/mm^2)\n",
+ "v=0.3 #poisson's ratio\n",
+ "\n",
+ "#principal strains\n",
+ "epsln_I=1.0/2*(epsln_a+epsln_c)+(1.0/2**0.5)*((epsln_a-epsln_b)**2+(epsln_c-epsln_b)**2)**0.5\n",
+ "epsln_II=1.0/2*(epsln_a+epsln_c)-(1.0/2**0.5)*((epsln_a-epsln_b)**2+(epsln_c-epsln_b)**2)**0.5\n",
+ "print \"\\nfirst principal strain, epsln_I = %4.3e\"%epsln_I\n",
+ "print \"\\nsecond principal strain, epsln_II = %4.3e\"%epsln_II\n",
+ "\n",
+ "#principal stresses\n",
+ "sigma_I=E/(1-v**2)*(epsln_I+v*epsln_II)\n",
+ "sigma_II=E/(1-v**2)*(v*epsln_I+epsln_II)\n",
+ "print \"\\nfirst principal stress, sigma_I= %4.1f N/mm^2\"%sigma_I #mistake in book\n",
+ "print \"\\nsecond principal stress, sigma_II= %4.1f N/mm^2\"%sigma_II\n",
+ "\n",
+ "sigma_x=sigma_I+sigma_II\n",
+ "print \"\\nstress in x direction,sigma_x = %4.1f N/mm^2\"%sigma_x\n",
+ "\n",
+ "#axial tensile load calculation\n",
+ "A=math.pi*d**2/4\n",
+ "P=sigma_x*A\n",
+ "print \"\\naxial load, P = %4.1f kN\"%(P/1000)\n",
+ "\n",
+ "tau_xy=1.0/2*((sigma_x/2-sigma_II)**2*4-sigma_x**2)**0.5\n",
+ "print \"\\nshear stress, tau_xy = %4.1f N/mm^2\"%tau_xy\n",
+ "\n",
+ "#torque calculation\n",
+ "J=math.pi*d**4/32\n",
+ "T=tau_xy*J/d*2\n",
+ "print \"\\ntorque applied on circular bar, T = %4.1f kNm\"%(T/10**6)\n",
+ "\n",
+ "sigma_x=E*epsln_a\n",
+ "print \"\\naxial stress from classical stress strain relationship, sigma_x =%4.0f N/mm^2\"%sigma_x"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "\n",
+ "first principal strain, epsln_I = 1.201e-03\n",
+ "\n",
+ "second principal strain, epsln_II = -5.015e-04\n",
+ "\n",
+ "first principal stress, sigma_I= 80.8 N/mm^2\n",
+ "\n",
+ "second principal stress, sigma_II= -10.8 N/mm^2\n",
+ "\n",
+ "stress in x direction,sigma_x = 70.0 N/mm^2\n",
+ "\n",
+ "axial load, P = 137.4 kN\n",
+ "\n",
+ "shear stress, tau_xy = 29.6 N/mm^2\n",
+ "\n",
+ "torque applied on circular bar, T = 0.7 kNm\n",
+ "\n",
+ "axial stress from classical stress strain relationship, sigma_x = 70 N/mm^2\n"
+ ]
+ }
+ ],
+ "prompt_number": 2
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [],
+ "language": "python",
+ "metadata": {},
+ "outputs": []
+ }
+ ],
+ "metadata": {}
+ }
+ ]
+} \ No newline at end of file
diff --git a/Aircraft_Structures_for_Engineering_Students/Chapter04.ipynb b/Aircraft_Structures_for_Engineering_Students/Chapter04.ipynb
new file mode 100755
index 00000000..365fa5fb
--- /dev/null
+++ b/Aircraft_Structures_for_Engineering_Students/Chapter04.ipynb
@@ -0,0 +1,95 @@
+{
+ "metadata": {
+ "name": "",
+ "signature": "sha256:6a67de7af4fe617483b9aefeefdb01f122e2016e5ab212db494104a83b9deeda"
+ },
+ "nbformat": 3,
+ "nbformat_minor": 0,
+ "worksheets": [
+ {
+ "cells": [
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 4.6 Pg.No.106"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "from __future__ import division\n",
+ "import math\n",
+ "\n",
+ "sum_FAFlBL=1263.6*10**6 # (N.mm)\n",
+ "sum_FAFlDL=880*10**6 # (N.mm)\n",
+ "E=200000 # young's modulus (N/mm^2)\n",
+ "A=1800 # area of each member (mm^2)\n",
+ "\n",
+ "#eqn 4.23 We=Wi\n",
+ "del_B=sum_FAFlBL/A/E\n",
+ "print \"\\ndeflection at point B =%2.2f mm\\n\"%(del_B)\n",
+ "\n",
+ "del_D=sum_FAFlDL/A/E\n",
+ "print \"deflection at point D =%2.2f mm\\n\"%(del_D)\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "\n",
+ "deflection at point B =3.51 mm\n",
+ "\n",
+ "deflection at point D =2.44 mm\n",
+ "\n"
+ ]
+ }
+ ],
+ "prompt_number": 19
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "from __future__ import division\n",
+ "import math\n",
+ "\n",
+ "ext_load=30 #external load(kN)\n",
+ "\n",
+ "#eqn 30*4*del_vB/3=F_BA*del_vB\n",
+ "F_BA=ext_load*4/3\n",
+ "print \"\\nforce in the struss AB is = %3.2f kN\\n\"%(F_BA)"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "\n",
+ "force in the struss AB is = 40.00 kN\n",
+ "\n"
+ ]
+ }
+ ],
+ "prompt_number": 18
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [],
+ "language": "python",
+ "metadata": {},
+ "outputs": []
+ }
+ ],
+ "metadata": {}
+ }
+ ]
+} \ No newline at end of file
diff --git a/Aircraft_Structures_for_Engineering_Students/Chapter05.ipynb b/Aircraft_Structures_for_Engineering_Students/Chapter05.ipynb
new file mode 100755
index 00000000..80ef0fbb
--- /dev/null
+++ b/Aircraft_Structures_for_Engineering_Students/Chapter05.ipynb
@@ -0,0 +1,188 @@
+{
+ "metadata": {
+ "name": "",
+ "signature": "sha256:63d249c5c7d8f61cc0f4f00c6cd8c5c2324721f135176069c7c632118f5681cc"
+ },
+ "nbformat": 3,
+ "nbformat_minor": 0,
+ "worksheets": [
+ {
+ "cells": [
+ {
+ "cell_type": "heading",
+ "level": 1,
+ "metadata": {},
+ "source": [
+ "Chapter 05: Energy methods"
+ ]
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 5.1 Pg.No.116"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "from __future__ import division\n",
+ "import math\n",
+ "\n",
+ "A=1800 # cross sectional area (mm^2)\n",
+ "E=200000 #youngs modulus (N/mm^2)\n",
+ "sum_FLdFdP_B=1268*10**6 #(N.mm^2)\n",
+ "sum_FLdFdP_D=880*10**6 #(N.mm^2)\n",
+ "\n",
+ "del_Bv=sum_FLdFdP_B/A/E\n",
+ "del_Dh=sum_FLdFdP_D/A/E\n",
+ "\n",
+ "print \"\\ndeflection at point B =%2.2f mm\\n\"%(del_Bv)\n",
+ "print \"deflection at point D =%2.2f mm\\n\"%(del_Dh)"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "\n",
+ "deflection at point B =3.52 mm\n",
+ "\n",
+ "deflection at point D =2.44 mm\n",
+ "\n"
+ ]
+ }
+ ],
+ "prompt_number": 2
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 5.9 Pg.No.142"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "from __future__ import division\n",
+ "import math\n",
+ "import numpy as np\n",
+ "\n",
+ "a=np.array([[4.32,2.7],[2.7,11.62]])\n",
+ "b=np.array([27.1,48.11])\n",
+ "x=np.linalg.solve(a,b)\n",
+ "print \"\\nX1 = %1.2f kN & R2 = %1.2f kN\\n\"%(x[0],x[1]) "
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "\n",
+ "X1 = 4.31 kN & R2 = 3.14 kN\n",
+ "\n"
+ ]
+ }
+ ],
+ "prompt_number": 8
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 5.10 Pg.No.144"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "from __future__ import division\n",
+ "import math\n",
+ "\n",
+ "E=200000 #youngs modulus (N/mm^2)\n",
+ "A=200 #cross sectional area of each member (mm^2)\n",
+ "a=7*10**-6 #linear coefficient of heating (/C)\n",
+ "L=3*10**3 #length of BC (mm)\n",
+ "T=30 #temperature of truss (C)\n",
+ "sum_f2L=48000\n",
+ "\n",
+ "expansion=L*T*a\n",
+ "a11=sum_f2L/A/E\n",
+ "X1=-0.63/a11 #compatibility condition\n",
+ "print \"\\nX1 = %5.0f N\\n\"%(X1)"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "\n",
+ "X1 = -525 N\n",
+ "\n"
+ ]
+ }
+ ],
+ "prompt_number": 14
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 5.12 Pg.No.151"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "from __future__ import division\n",
+ "import math\n",
+ "\n",
+ "def_C=-1.05-.6 #deflection at C (mm)\n",
+ "L=300 #length of cantilever (mm)\n",
+ "\n",
+ "theta_B=math.atan(def_C/L)\n",
+ "print \"\\ndeflection at C = %2.3f degree\\n\"%(theta_B*180/math.pi) "
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "\n",
+ "deflection at C = -0.315 degree\n",
+ "\n"
+ ]
+ }
+ ],
+ "prompt_number": 16
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [],
+ "language": "python",
+ "metadata": {},
+ "outputs": []
+ }
+ ],
+ "metadata": {}
+ }
+ ]
+} \ No newline at end of file
diff --git a/Aircraft_Structures_for_Engineering_Students/Chapter06.ipynb b/Aircraft_Structures_for_Engineering_Students/Chapter06.ipynb
new file mode 100755
index 00000000..5195a30b
--- /dev/null
+++ b/Aircraft_Structures_for_Engineering_Students/Chapter06.ipynb
@@ -0,0 +1,112 @@
+{
+ "metadata": {
+ "name": "",
+ "signature": "sha256:902d8cc266f9fb597a0d00273b10ab788d226cbd969bb1e960b465c84a750eef"
+ },
+ "nbformat": 3,
+ "nbformat_minor": 0,
+ "worksheets": [
+ {
+ "cells": [
+ {
+ "cell_type": "heading",
+ "level": 1,
+ "metadata": {},
+ "source": [
+ "Chapter 06: Matrix methods"
+ ]
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 6.4 Pg.No.205"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "from __future__ import division\n",
+ "import math\n",
+ "import numpy as np\n",
+ "from sympy import solve, symbols, pprint\n",
+ "from sympy import diff\n",
+ "x,y=symbols('x,y')\n",
+ "\n",
+ "E=200000 #youngs modulus (N/mm^2)\n",
+ "nu=0.3 #poissons ratio\n",
+ "u1=0.001\n",
+ "u2=0.003\n",
+ "u3=-0.003 #displacements of corners (m)\n",
+ "u4=0\n",
+ "v1=-0.004\n",
+ "v2=-0.002\n",
+ "v3=0.001\n",
+ "v4=0.001\n",
+ "\n",
+ "\n",
+ "a=np.array([[1,-2,-1,2],[1,2,-1,-2],[1,2,1,2],[1,-2,1,-2]])\n",
+ "b=np.array([u1,u2,u3,u4])\n",
+ "alpha=np.linalg.solve(a,b)\n",
+ "alpha1=alpha[0]\n",
+ "alpha2=alpha[1]\n",
+ "alpha3=alpha[2]\n",
+ "alpha4=alpha[3]\n",
+ "\n",
+ "a=np.array([[1,-2,-1,2],[1,2,-1,-2],[1,2,1,2],[1,-2,1,-2]])\n",
+ "b=np.array([v1,v2,v3,v4])\n",
+ "alpha=np.linalg.solve(a,b)\n",
+ "alpha5=alpha[0]\n",
+ "alpha6=alpha[1]\n",
+ "alpha7=alpha[2]\n",
+ "alpha8=alpha[3]\n",
+ "\n",
+ "u=alpha1+alpha2*x+alpha3*y+alpha4*x*y\n",
+ "v=alpha5+alpha6*x+alpha7*y+alpha8*x*y\n",
+ "\n",
+ "ex=diff(u,x)\n",
+ "ey=diff(v,y)\n",
+ "Yxy=diff(u,y)+diff(v,x)\n",
+ "\n",
+ "ex=-0.000125\n",
+ "ey=.002\n",
+ "Yxy=-0.0015\n",
+ "\n",
+ "sigma_x=E/(1-nu**2)*(ex+nu*ey)\n",
+ "sigma_y=E/(1-nu**2)*(ey+nu*ex)\n",
+ "print \"longitudinal stress in x direction = %3.1f N/mm^2\"%(sigma_x)\n",
+ "print \"longitudinal stress in y direction = %3.1f N/mm^2\"%(sigma_y)\n",
+ "\n",
+ "T_xy=E/2/(1+nu)*Yxy\n",
+ "print \"shear stress at the center of plate = %3.1f N/mm^2\"%(T_xy)"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "longitudinal stress in x direction = 104.4 N/mm^2\n",
+ "longitudinal stress in y direction = 431.3 N/mm^2\n",
+ "shear stress at the center of plate = -115.4 N/mm^2\n"
+ ]
+ }
+ ],
+ "prompt_number": 44
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [],
+ "language": "python",
+ "metadata": {},
+ "outputs": []
+ }
+ ],
+ "metadata": {}
+ }
+ ]
+} \ No newline at end of file
diff --git a/Aircraft_Structures_for_Engineering_Students/Chapter08.ipynb b/Aircraft_Structures_for_Engineering_Students/Chapter08.ipynb
new file mode 100755
index 00000000..65ccbf76
--- /dev/null
+++ b/Aircraft_Structures_for_Engineering_Students/Chapter08.ipynb
@@ -0,0 +1,154 @@
+{
+ "metadata": {
+ "name": "",
+ "signature": "sha256:d4ab160ecba8745ef027bb167a7abbd97977707c483b1d0a639c7f068e2016a8"
+ },
+ "nbformat": 3,
+ "nbformat_minor": 0,
+ "worksheets": [
+ {
+ "cells": [
+ {
+ "cell_type": "heading",
+ "level": 1,
+ "metadata": {},
+ "source": [
+ "Chapter 08: Columns"
+ ]
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 8.3 Pg.No.280"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "from __future__ import division\n",
+ "import math\n",
+ "\n",
+ "E=75000 #youngs modulus(N/mm^2)\n",
+ "G=21000 #shear modulus (N/mm^2)\n",
+ "L=2 #length of column (m)\n",
+ "l1=75 #flange length (mm)\n",
+ "l2=37.5 #total length(mm)\n",
+ "t=2.5 #thickness(mm)\n",
+ "\n",
+ "A=t*(2*l2+l1) #observed from Fig 8.17\n",
+ "\n",
+ "#chapter 16 Ixx=bd^3/12+Ab^2\n",
+ "Ixx=2*l2*t*l2**2+t*l1**3/12\n",
+ "Iyy=2*t*l2**3/12\n",
+ "\n",
+ "I0=Ixx+Iyy\n",
+ "\n",
+ "#eqn 18.11 J=SUM((s*t^3)/3)\n",
+ "J=2*l2*t**3/3+l1*t**3/3\n",
+ "\n",
+ "Gama=t*l2**3*l1**2/24\n",
+ "Iyy=0.22*10**5\n",
+ "L=2*10**3\n",
+ "P_CRxx=math.pi**2*E*Ixx/L**2\n",
+ "P_CRyy=math.pi**2*E*Iyy/L**2\n",
+ "P_CRo=A/I0*(G*J+math.pi**2*E*Gama/L**2)\n",
+ "\n",
+ "print \"P_CRxx = %3.2e N\\n\"%(P_CRxx)\n",
+ "print \"P_CRyy = %0.1e N\\n\"%(P_CRyy)\n",
+ "print \"P_CRO = %0.2e N\\n\"%(P_CRo)\n",
+ "\n",
+ "print \"therefore buckling in the column due to axial load=%0.1e N\\n\"%(P_CRyy)"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "P_CRxx = 6.51e+04 N\n",
+ "\n",
+ "P_CRyy = 4.1e+03 N\n",
+ "\n",
+ "P_CRO = 2.22e+04 N\n",
+ "\n",
+ "therefore buckling in the column due to axial load=4.1e+03 N\n",
+ "\n"
+ ]
+ }
+ ],
+ "prompt_number": 9
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 8.4 Pg.No.282"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "from __future__ import division\n",
+ "import math\n",
+ "import numpy as np\n",
+ "from sympy import solve, symbols, pprint\n",
+ "from sympy import diff\n",
+ "P=symbols('P')\n",
+ "\n",
+ "E=70000 #youngs modulus (N/mm^2)\n",
+ "G=30000 #shear modulus (N/mm^2)\n",
+ "x_S=-76.2 #position of shear center(mm)\n",
+ "l1=l2=100 #lengths (mm)\n",
+ "t=2 #thickness(mm)\n",
+ "\n",
+ "x_bar=2*t*l1*50/(3*l1)/2\n",
+ "\n",
+ "A=600 #area (mm^2)\n",
+ "Ixx=1.17*10**6 #second moment of area (mm^4)\n",
+ "Iyy=0.67*10**6 #second moment of area (mm^4)\n",
+ "I0=5.32*10**6 # total second moment of area (mm^4)\n",
+ "J=800 #torsion constant (mm^4)\n",
+ "Gama=2488*10**6 #(mm^6)\n",
+ "L=10**3 #(mm)\n",
+ "\n",
+ "P_CRxx=math.pi**2*E*Ixx/L**2\n",
+ "P_CRyy=math.pi**2*E*Iyy/L**2\n",
+ "P_CRo=A/I0*(G*J+math.pi**2*E*Gama/L**2)\n",
+ "\n",
+ "fun=P**2*(1-A*x_S**2/I0)-P*(P_CRxx+P_CRo)+P_CRxx*P_CRo\n",
+ "solution = solve(fun, P)\n",
+ "print \"lowest value of critical load = %1.2e N\\n\"%(min(solution))"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "lowest value of critical load = 1.68e+05 N\n",
+ "\n"
+ ]
+ }
+ ],
+ "prompt_number": 29
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [],
+ "language": "python",
+ "metadata": {},
+ "outputs": []
+ }
+ ],
+ "metadata": {}
+ }
+ ]
+} \ No newline at end of file
diff --git a/Aircraft_Structures_for_Engineering_Students/Chapter09.ipynb b/Aircraft_Structures_for_Engineering_Students/Chapter09.ipynb
new file mode 100755
index 00000000..119bd5b2
--- /dev/null
+++ b/Aircraft_Structures_for_Engineering_Students/Chapter09.ipynb
@@ -0,0 +1,97 @@
+{
+ "metadata": {
+ "name": "",
+ "signature": "sha256:47a0669d4632eab71f162a005cd6d69531f951e47ad9f34d928b679209ff2467"
+ },
+ "nbformat": 3,
+ "nbformat_minor": 0,
+ "worksheets": [
+ {
+ "cells": [
+ {
+ "cell_type": "heading",
+ "level": 1,
+ "metadata": {},
+ "source": [
+ "Chapter 09: Thin plates"
+ ]
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 9.1 Pg.No.310"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "from __future__ import division\n",
+ "import math\n",
+ "\n",
+ "h=400 #height of structure (mm)\n",
+ "l1=300 #length of small section (mm)\n",
+ "L=1200 #length of whole structure (mm)\n",
+ "E=70000 #youngs modulus (N/mm^2)\n",
+ "A_f=350 #area of flange (mm^2)\n",
+ "A_s=300 # area of stiffeners (mm^2)\n",
+ "t=2 #thickness (mm)\n",
+ "I=2000 #second moment of area (mm^4)\n",
+ "w=5\n",
+ "#eqn 9.29 tan(a)^4=(1+td/2A_F)/(1+td/2A_S)\n",
+ "alpha=math.atan(((1+t*h/2/A_f)/(1+t*l1/A_s))**0.25)\n",
+ "\n",
+ "#eqn 9.19\n",
+ "F_T=w*L/h+w/2/math.tan((alpha))\n",
+ "\n",
+ "#eqn 9.25 M_max=w*b^2*tan(a)/12/d\n",
+ "M_max=w*10**3*l1**2*math.tan(alpha)/12/h\n",
+ "print \"maximum value of bending moment = %1.1e N.mm \\n\"%(M_max)\n",
+ "\n",
+ "#eqn 9.23 P=w*b*tan(a)/d\n",
+ "P=w*l1*math.tan(alpha)/h\n",
+ "print \"compressive load in stiffener = %1.1f kN \\n\"%(P)\n",
+ "\n",
+ "#eqn 9.24 le=d/(4-2b/d)^0.5\n",
+ "le=h/(4-2*l1/h)**0.5\n",
+ "print \"equivalent length of stiffener = %3.1f mm\\n\"%(le)\n",
+ "\n",
+ "#eqn 8.7 Pcr=pi^2*E*I/le^2\n",
+ "P_CR=math.pi**2*E*I/le**2\n",
+ "print \"buckling load of a stiffener = %2.1f kN \\n\"%(P_CR) #approx. value in book"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "maximum value of bending moment = 8.6e+04 N.mm \n",
+ "\n",
+ "compressive load in stiffener = 3.4 kN \n",
+ "\n",
+ "equivalent length of stiffener = 253.0 mm\n",
+ "\n",
+ "buckling load of a stiffener = 21589.8 kN \n",
+ "\n"
+ ]
+ }
+ ],
+ "prompt_number": 13
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [],
+ "language": "python",
+ "metadata": {},
+ "outputs": []
+ }
+ ],
+ "metadata": {}
+ }
+ ]
+} \ No newline at end of file
diff --git a/Aircraft_Structures_for_Engineering_Students/Chapter12.ipynb b/Aircraft_Structures_for_Engineering_Students/Chapter12.ipynb
new file mode 100755
index 00000000..63daef6d
--- /dev/null
+++ b/Aircraft_Structures_for_Engineering_Students/Chapter12.ipynb
@@ -0,0 +1,111 @@
+{
+ "metadata": {
+ "name": "",
+ "signature": "sha256:217c546250d736c4a5ad9b469b73a9b7209b5ff1e5db79ce32388be8ee290870"
+ },
+ "nbformat": 3,
+ "nbformat_minor": 0,
+ "worksheets": [
+ {
+ "cells": [
+ {
+ "cell_type": "heading",
+ "level": 1,
+ "metadata": {},
+ "source": [
+ "Chapter 12: Structural components of aircraft"
+ ]
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 12.1 Pg.No. 390"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "from __future__ import division\n",
+ "import math\n",
+ "\n",
+ "D=4 #diameter of rivet(mm)\n",
+ "t_skin=2.5 #thickness of fuselage skin(mm)\n",
+ "t_strap=1.2 #thickness of straps (mm)\n",
+ "T=120 #shear stress (N/mm^2)\n",
+ "A=math.pi*D**2/4 #rivet area\n",
+ "Pfb=2*A*T\n",
+ "\n",
+ "b=Pfb/t_skin/12.5/10+4\n",
+ "print \"allowable rivet spacing = %2.1f mm \\n\"%(b)"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "allowable rivet spacing = 13.7 mm \n",
+ "\n"
+ ]
+ }
+ ],
+ "prompt_number": 7
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 12.2 Pg.No.392"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "from __future__ import division\n",
+ "import math\n",
+ "\n",
+ "l1=20 #distace between A&D (mm)\n",
+ "l2=25 #distace between C&D (mm)\n",
+ "l3=75 #distace between C&force location (mm)\n",
+ "P=5 #external load(kN)\n",
+ "r=(l1**2+l2**2)**0.5\n",
+ "sum_r2=2*l1**2+4*r**2\n",
+ "\n",
+ "#eqn 12.6 S=Pe*r/Sum(r2)\n",
+ "Pe=P*l3\n",
+ "S=Pe/sum_r2*r\n",
+ "print \"Resultant shear force in the A and B = %2.2f kN\\n\"%(S)\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Resultant shear force in the A and B = 2.45 kN\n",
+ "\n"
+ ]
+ }
+ ],
+ "prompt_number": 11
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [],
+ "language": "python",
+ "metadata": {},
+ "outputs": []
+ }
+ ],
+ "metadata": {}
+ }
+ ]
+} \ No newline at end of file
diff --git a/Aircraft_Structures_for_Engineering_Students/Chapter14.ipynb b/Aircraft_Structures_for_Engineering_Students/Chapter14.ipynb
new file mode 100755
index 00000000..f9eb3f9d
--- /dev/null
+++ b/Aircraft_Structures_for_Engineering_Students/Chapter14.ipynb
@@ -0,0 +1,226 @@
+{
+ "metadata": {
+ "name": "",
+ "signature": "sha256:b89c31a3eb13c71dc64b90ec9c5fad56707d91451229ae687a102dc5e6c2ee23"
+ },
+ "nbformat": 3,
+ "nbformat_minor": 0,
+ "worksheets": [
+ {
+ "cells": [
+ {
+ "cell_type": "heading",
+ "level": 1,
+ "metadata": {},
+ "source": [
+ "Chapter 14: Airframe loads"
+ ]
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 14.1 Pg.No.407"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "from __future__ import division\n",
+ "import math\n",
+ "\n",
+ "W=45 #weight of aircraft (kN)\n",
+ "m=45/9.8 #mass of aircraft(k-kg)\n",
+ "a=3*9.8 #deceleration due to cable (ms^-2)\n",
+ "m1=4.5/9.8 #weight of aircraft after AA in Diagram (k-kg)\n",
+ "v0=25 #touch down speed (m/s)\n",
+ "alpha=10 #center line angle with ground (degree)\n",
+ "\n",
+ "T=m*a/math.cos(math.radians(alpha))\n",
+ "print \"tension in cable = %3.1f kN\\n\"%(T)\n",
+ "\n",
+ "R=W+T*math.sin(math.radians(alpha))\n",
+ "print \"load on each undercarriage strut = %2.1f kN\\n\"%(R/2/math.cos(math.radians(20)))\n",
+ "\n",
+ "N=T+m1*9.8*math.sin(math.radians(alpha))-m1*a*math.cos(math.radians(alpha))\n",
+ "S=m1*a*math.sin(math.radians(alpha))+m1*9.8*math.cos(math.radians(alpha))\n",
+ "print \"N and S forces are shown in Fig 14.4 N=%2.2f kN S=%2.2f kN\\n\"%(N,S)\n",
+ "\n",
+ "s=v0**2/2/a\n",
+ "print \"length of deck covered = %2.2f m\\n\"%(s)"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "tension in cable = 137.1 kN\n",
+ "\n",
+ "load on each undercarriage strut = 36.6 kN\n",
+ "\n",
+ "N and S forces are shown in Fig 14.4 N=124.57 kN S=6.78 kN\n",
+ "\n",
+ "length of deck covered = 10.63 m\n",
+ "\n"
+ ]
+ }
+ ],
+ "prompt_number": 10
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 14.2 Pg.No.409"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "from __future__ import division\n",
+ "import math\n",
+ "\n",
+ "g=9.8\n",
+ "W=250 #weight of aircraft(kN)\n",
+ "m=250/g #mass of aircraft (K-kg)\n",
+ "I_CG=5.65*10**8 #inertia about center of mass(N.s^2.mm)\n",
+ "v0=3.7 #vertical velocity of undercarriage(m/s)\n",
+ "R_h=400 #horizontal reaction (kN)\n",
+ "R_v=1200 #vertical reaction (kN)\n",
+ "l=1 # nose wheel distance from ground (m)\n",
+ "d=2.5 # distance of CG from ground (m)\n",
+ "\n",
+ "#horizontal equilibrium\n",
+ "ax=R_h/m\n",
+ "\n",
+ "#vertical equilibrium\n",
+ "ay=(R_v-W)/m\n",
+ "\n",
+ "\n",
+ "alpha=(R_v*l+R_h*d)*10**6/I_CG\n",
+ "print \"angular acceleration of aircraft = %2.1f rad/s^2 \\n\"%(alpha)\n",
+ "\n",
+ "#v=v0+ay*t\n",
+ "t=v0/ay\n",
+ "print \"time taken for vertical velocity to become zero = %1.3f s\\n\"%(t)\n",
+ "\n",
+ "#w=w0+a*t\n",
+ "w=a*t\n",
+ "print \"angular velocity of aircraft = %1.2f rad/s \\n\"%(w)"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "angular acceleration of aircraft = 3.9 rad/s^2 \n",
+ "\n",
+ "time taken for vertical velocity to become zero = 0.099 s\n",
+ "\n",
+ "angular velocity of aircraft = 0.39 rad/s \n",
+ "\n"
+ ]
+ }
+ ],
+ "prompt_number": 20
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 14.3 Pg.No.414"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "from __future__ import division\n",
+ "import math\n",
+ "\n",
+ "W=8000 #weight of aircraft (N)\n",
+ "n=4.5 # wing loading\n",
+ "S=14.5 #wing area (m^2)\n",
+ "V=60 #speed (m/s)\n",
+ "rho=1.223 #density (kg/m^3)\n",
+ "alpha=13.75 #from Fig 14.8 (a)\n",
+ "C_Mcg=0.075 #from Fig 14.8 (a)\n",
+ "c=1.35 #mean chord (m)\n",
+ "\n",
+ "\n",
+ "L=n*W\n",
+ "C_L=L/(0.5*rho*V**2*S)\n",
+ "print \"lift coefficient of aircraft = %1.3f \\n\"%(C_L)\n",
+ "\n",
+ "#from Fig 14.8 (b)\n",
+ "l=4.18*math.cos(math.radians(alpha-2))+0.31*math.sin(math.radians(alpha-2))\n",
+ "print \"length of tail arm = %1.3f m \\n\"%(l)\n",
+ "\n",
+ "\n",
+ "C_L=C_L-c/l*C_Mcg\n",
+ "print \"lift coefficient =%1.3f \\n\"%(C_L)\n",
+ "\n",
+ "alpha=13.3\n",
+ "l=4.18*math.cos(math.radians(alpha-2))+0.31*math.sin(math.radians(alpha-2))\n",
+ "print \"Now tail arm length = %2.3f m\\n\"%(l)\n",
+ "\n",
+ "L=0.5*rho*V**2*S*C_L\n",
+ "print \"Lift = %5.1f N\\n\"%(L)\n",
+ "\n",
+ "P=n*W-35000\n",
+ "print \"Tail Load = %5.1f N\\n\"%(P)\n",
+ "\n",
+ "D=0.5*rho*V**2*S*0.0875\n",
+ "print \"Drag = %5.1f N\\n\"%(D)\n",
+ "print \"Forward inertia force = %5.1f N\\n\"%(D) #eqn 14.13"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "lift coefficient of aircraft = 1.128 \n",
+ "\n",
+ "length of tail arm = 4.156 m \n",
+ "\n",
+ "lift coefficient =1.103 \n",
+ "\n",
+ "Now tail arm length = 4.160 m\n",
+ "\n",
+ "Lift = 35222.3 N\n",
+ "\n",
+ "Tail Load = 1000.0 N\n",
+ "\n",
+ "Drag = 2793.0 N\n",
+ "\n",
+ "Forward inertia force = 2793.0 N\n",
+ "\n"
+ ]
+ }
+ ],
+ "prompt_number": 31
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [],
+ "language": "python",
+ "metadata": {},
+ "outputs": []
+ }
+ ],
+ "metadata": {}
+ }
+ ]
+} \ No newline at end of file
diff --git a/Aircraft_Structures_for_Engineering_Students/Chapter15.ipynb b/Aircraft_Structures_for_Engineering_Students/Chapter15.ipynb
new file mode 100755
index 00000000..a849c8c6
--- /dev/null
+++ b/Aircraft_Structures_for_Engineering_Students/Chapter15.ipynb
@@ -0,0 +1,76 @@
+{
+ "metadata": {
+ "name": "",
+ "signature": "sha256:1bd6512f5b9ca8155cc1e9c3b04ad8207681499e095afaf4830a217017e989ea"
+ },
+ "nbformat": 3,
+ "nbformat_minor": 0,
+ "worksheets": [
+ {
+ "cells": [
+ {
+ "cell_type": "heading",
+ "level": 1,
+ "metadata": {},
+ "source": [
+ "Chapter 15: Fatigue"
+ ]
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 15.1 Pg.No.445"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "from __future__ import division\n",
+ "from scipy import integrate\n",
+ "from sympy import symbols\n",
+ "import math\n",
+ "\n",
+ "#eqn 15.30 K=S(pi*a)^1/2*alpha\n",
+ "S=175 #stress range (N/mm^2)\n",
+ "K=1708 #fracture toughness (n/mm^3/2)\n",
+ "alpha=1 #constant\n",
+ "n=4 #constant\n",
+ "C=40*10**-15 #rate of crack growth (mm/cycle)\n",
+ "ai=0.1 #initial crack length\n",
+ "\n",
+ "alpha_f=K**2/S**2/math.pi\n",
+ "\n",
+ "\n",
+ "Nf=2/C/(n-2)/(S*math.pi**0.5)**n*(1/ai**((n-2)/2)-1/alpha_f**((n-2)/2))\n",
+ "print \"Number of cycles to failure = %5.0f cycles\\n\"%(Nf)"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Number of cycles to failure = 26919 cycles\n",
+ "\n"
+ ]
+ }
+ ],
+ "prompt_number": 4
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [],
+ "language": "python",
+ "metadata": {},
+ "outputs": []
+ }
+ ],
+ "metadata": {}
+ }
+ ]
+} \ No newline at end of file
diff --git a/Aircraft_Structures_for_Engineering_Students/Chapter16.ipynb b/Aircraft_Structures_for_Engineering_Students/Chapter16.ipynb
new file mode 100755
index 00000000..72ff7ec3
--- /dev/null
+++ b/Aircraft_Structures_for_Engineering_Students/Chapter16.ipynb
@@ -0,0 +1,280 @@
+{
+ "metadata": {
+ "name": "",
+ "signature": "sha256:c3ab3016805321c8a28748b1937c77b2125357dfc661b20013df0624feaa950e"
+ },
+ "nbformat": 3,
+ "nbformat_minor": 0,
+ "worksheets": [
+ {
+ "cells": [
+ {
+ "cell_type": "heading",
+ "level": 1,
+ "metadata": {},
+ "source": [
+ "Chapter 16: Bending of open and closed thin-walled beams \n"
+ ]
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 16.1 Pg. No.456"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "# Fig 16.6 Dimensions\n",
+ "from __future__ import division\n",
+ "import math\n",
+ "\n",
+ "#variable declaration\n",
+ "l=300 #length of I section (mm)\n",
+ "b=200 #width of I section beam (mm)\n",
+ "w1=25 #width of center section of I beam (mm)\n",
+ "w2=20 #width of upper and lower section of I beam (mm)\n",
+ "M=100*10**6 #moment applied in vertical plane (N*mm)\n",
+ "\n",
+ "#second moment of area Ixx\n",
+ "# Ixx=b*l^3/12\n",
+ "Ixx=b*l**3/12-(b-w1)*(l-w2-w2)**3/12\n",
+ "print \"\\nSecond moment of area of I section beam = %5.3e mm^4\"%(Ixx)\n",
+ "\n",
+ "#sigma_z=My/I reference 16.9\n",
+ "# @ \n",
+ "y=150\n",
+ "sigma_z=M*y/Ixx\n",
+ "print \"\\ndirect stress at the top of the I section (y=150) = %3.2f N/mm^2 (compression)\"%(sigma_z)\n",
+ "\n",
+ "# @\n",
+ "y=-150\n",
+ "sigma_z=M*y/Ixx\n",
+ "print \"\\ndirect stress at the bottom of the I section (y=-150) = %3.2f N/mm^2 (tension)\"%(sigma_z)\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "\n",
+ "Second moment of area of I section beam = 1.937e+08 mm^4\n",
+ "\n",
+ "direct stress at the top of the I section (y=150) = 77.45 N/mm^2 (compression)\n",
+ "\n",
+ "direct stress at the bottom of the I section (y=-150) = -77.45 N/mm^2 (tension)\n"
+ ]
+ }
+ ],
+ "prompt_number": 13
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 16.2 Pg. No.457"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "# Fig 16.6 reference\n",
+ "from __future__ import division\n",
+ "import math\n",
+ "\n",
+ "#variable declaration\n",
+ "l=300 #length of I section (mm)\n",
+ "b=200 #width of I section beam (mm)\n",
+ "w1=25 #width of center section of I beam (mm)\n",
+ "w2=20 #width of upper and lower section of I beam (mm)\n",
+ "M=100*10**6 #moment applied in vertical plane (N*mm)\n",
+ "\n",
+ "# second moment of area\n",
+ "# Iyy=wb^3/12\n",
+ "Iyy=2*20*200**3/12+260*25**3/12\n",
+ "print \"\\nSecond moment of area of I section beam = %5.3e mm^4\"%(Iyy)\n",
+ "\n",
+ "#sigma_z=Mx/I \n",
+ "# @ \n",
+ "x=100\n",
+ "sigma_z=M*x/Iyy\n",
+ "print \"\\ndirect stress at the top of the I section (y=150) = %3.2f N/mm^2 (compression)\"%(sigma_z)\n",
+ "\n",
+ "# @\n",
+ "x=-100\n",
+ "sigma_z=M*x/Iyy\n",
+ "print \"\\ndirect stress at the bottom of the I section (y=-150) = %3.2f N/mm^2 (tension)\"%(sigma_z)\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "\n",
+ "Second moment of area of I section beam = 2.701e+07 mm^4\n",
+ "\n",
+ "direct stress at the top of the I section (y=150) = 370.30 N/mm^2 (compression)\n",
+ "\n",
+ "direct stress at the bottom of the I section (y=-150) = -370.30 N/mm^2 (tension)\n"
+ ]
+ }
+ ],
+ "prompt_number": 17
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 16.3 Pg.No.458 "
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "from __future__ import division\n",
+ "import math\n",
+ "\n",
+ "#variable declaration\n",
+ "l=300 #length of I section (mm)\n",
+ "b=200 #width of I section beam (mm)\n",
+ "w1=25 #width of center section of I beam (mm)\n",
+ "w2=20 #width of upper and lower section of I beam (mm)\n",
+ "M=100*10**6 #moment applied in vertical plane (N*mm)\n",
+ "theta=30 #angle at which bending moment is applied(degree)\n",
+ "\n",
+ "Mx=M*math.cos(math.radians(30))\n",
+ "My=M*math.sin(math.radians(30))\n",
+ "\n",
+ "# sigma_z=Mx/Ixx*y+My/Iyy*x\n",
+ "# @top left hand corner\n",
+ "y=150\n",
+ "x=-100\n",
+ "sigma_z=Mx/Ixx*y-My/Iyy*x \n",
+ "print \"\\ndirect stress at the top left hand corner = %3.1f N/mm^2 (tension)\"%(sigma_z)\n",
+ "\n",
+ "# @ top right hand corner\n",
+ "x=100\n",
+ "y=150\n",
+ "sigma_z=Mx/Ixx*y-My/Iyy*x \n",
+ "print \"\\ndirect stress at the top right hand corner = %3.1f N/mm^2 (compression)\"%(sigma_z)\n",
+ "\n",
+ "alpha=math.atan(My*Ixx/Mx/Iyy)\n",
+ "print \"\\ninclination = %3.1f degree\\n\"%(alpha*180/math.pi)"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "\n",
+ "direct stress at the top left hand corner = 252.2 N/mm^2 (tension)\n",
+ "\n",
+ "direct stress at the top right hand corner = -118.1 N/mm^2 (compression)\n",
+ "\n",
+ "inclination = 76.4 degree\n",
+ "\n"
+ ]
+ }
+ ],
+ "prompt_number": 38
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 16.4 Pg.No.466"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "# reference Fig 16.13\n",
+ "import math\n",
+ "from __future__ import division\n",
+ "#variable declaration\n",
+ "l=80 #length of one section (mm)\n",
+ "w=8 #thickness of each section (mm)\n",
+ "b1=40 #width of one section (mm)\n",
+ "b2=80 #width of other section (mm)\n",
+ "Mx=1500*10*3 #bending moment (N.mm)\n",
+ "My=0\n",
+ "\n",
+ "#centroid\n",
+ "# in this example C is taken at top surface x axis aligned to AB and y axis is \n",
+ "# aligned to E surface \n",
+ "y_bar=((b1+b2)*w*w/2+l*w*(w+l/2))/(l*w+(b1+b2)*w)\n",
+ "print \"\\ny coordinate of centroid = %3.1f mm\"%(y_bar)\n",
+ "\n",
+ "x_bar=((b1+b2)*w*((b1+b2)/2-b1+w/2)+l*w*(w/2))/(l*w+(b1+b2)*w)\n",
+ "print \"\\nx coordinate of centroid = %3.1f mm\"%(x_bar)\n",
+ "\n",
+ "#second area of moment\n",
+ "#IB=IC+Ab^2 IB=moment about any point,IC=moment about centroid, b=distace between both points\n",
+ "Ixx=(b1+b2)*w**3/12+(b1+b2)*w*(y_bar-w/2)**2+w*l**3/12+l*w*(w+l/2-y_bar)**2\n",
+ "print \"\\nsecond moment of area about x axis = %3.2e mm^4\"%(Ixx)\n",
+ "\n",
+ "Iyy=w*(b1+b2)**3/12+(b1+b2)*w*((b1+b2)/2-b1+w/2-x_bar)**2+l*w**3/12+l*w*(x_bar-w/2)**2\n",
+ "print \"\\nsecond moment of area about y axis = %3.2e mm^4\"%(Iyy)\n",
+ "\n",
+ "Ixy=(b1+b2)*w*(y_bar-w/2)*((b1+b2)/2-b1+w/2-x_bar)+l*w*(w+l/2-y_bar)*(x_bar-w/2)\n",
+ "print \"\\nsecond moment of area about x and y axis = %3.2e mm^4\"%(Ixy)\n",
+ "\n",
+ "Mx=15*10**5\n",
+ "def f(x,y):\n",
+ " return Mx*(Iyy*y-Ixy*x)/(Ixx*Iyy-Ixy**2)\n",
+ "sigma_z_max= f(-8,-66.4)\n",
+ "print \"\\nmaximum direct shear stress = %3.0f N/mm^2 (compressive)\\n\"%(sigma_z_max)"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "\n",
+ "y coordinate of centroid = 21.6 mm\n",
+ "\n",
+ "x coordinate of centroid = 16.0 mm\n",
+ "\n",
+ "second moment of area about x axis = 1.09e+06 mm^4\n",
+ "\n",
+ "second moment of area about y axis = 1.31e+06 mm^4\n",
+ "\n",
+ "second moment of area about x and y axis = 3.38e+05 mm^4\n",
+ "\n",
+ "maximum direct shear stress = -96 N/mm^2 (compressive)\n",
+ "\n"
+ ]
+ }
+ ],
+ "prompt_number": 62
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [],
+ "language": "python",
+ "metadata": {},
+ "outputs": []
+ }
+ ],
+ "metadata": {}
+ }
+ ]
+} \ No newline at end of file
diff --git a/Aircraft_Structures_for_Engineering_Students/Chapter18.ipynb b/Aircraft_Structures_for_Engineering_Students/Chapter18.ipynb
new file mode 100755
index 00000000..b0550214
--- /dev/null
+++ b/Aircraft_Structures_for_Engineering_Students/Chapter18.ipynb
@@ -0,0 +1,155 @@
+{
+ "metadata": {
+ "name": "",
+ "signature": "sha256:a16e0822e0e7167e54e1f4ffc425aa7247562532992f7dee46fc87221365735a"
+ },
+ "nbformat": 3,
+ "nbformat_minor": 0,
+ "worksheets": [
+ {
+ "cells": [
+ {
+ "cell_type": "heading",
+ "level": 1,
+ "metadata": {},
+ "source": [
+ "Chapter 18: Torsion of Beams"
+ ]
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 18.1 Pg.No.527"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "from __future__ import division\n",
+ "import math\n",
+ "\n",
+ "#variable declaration\n",
+ "r=100 #radius of cylinder (mm)\n",
+ "l=2*10**3 #length of cylinder (mm)\n",
+ "torque=30*10**6 #torque at mid point (N.mm)\n",
+ "Tmax=15*10**6 \n",
+ "Tau_max=200 #max shear stress (N/mm^2)\n",
+ "G=25000 #shear modulus (N/mm^2)\n",
+ "theta =2 # rotation at mid point (degree)\n",
+ "\n",
+ "#ref equation 18.1 T=2Aq\n",
+ "tmin1=Tmax/(2*math.pi*r**2*Tau_max)\n",
+ "print \"\\nminimum thickness of beam due to stress limited to 200N/mm^2 = %3.1f mm\"%(tmin1)\n",
+ "\n",
+ "z=1*10**3 # twist at mid point (mm)\n",
+ "#equation 18.4 after integration\n",
+ "tmin2=Tmax*200*math.pi*z/(4*(math.pi*r**2)**2*G*theta*math.pi/180)\n",
+ "print \"\\nminimum thickness due to constraint on maximum angle twist = %3.1f mm\"%(tmin2)\n",
+ "t=max(tmin1,tmin2)\n",
+ "print \"\\nthickness which satisfies both conditions = %3.1f mm\"%(t)"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "\n",
+ "minimum thickness of beam due to stress limited to 200N/mm^2 = 1.2 mm\n",
+ "\n",
+ "minimum thickness due to constraint on maximum angle twist = 2.7 mm\n",
+ "\n",
+ "thickness which satisfies both conditions = 2.7 mm\n"
+ ]
+ }
+ ],
+ "prompt_number": 19
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 18.3 Pg.No 540"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#reference Fig 18.12\n",
+ "from __future__ import division\n",
+ "import math\n",
+ "from sympy import symbols\n",
+ "from sympy import integrate\n",
+ "\n",
+ "S1,S2,S3=symbols('S1,S2,S3')\n",
+ "\n",
+ "#variable declaration\n",
+ "s1=50 #length of channel (mm)\n",
+ "s2=25 #width of channel (mm)\n",
+ "t1=2.5 #thickness of web(mm)\n",
+ "t2=1.5 #thickness of flange(mm)\n",
+ "T=10*10**3 #torque applied (N.mm)\n",
+ "zeta_s=8.04 \n",
+ "G=25000 #shear modulus (N/mm^2)\n",
+ "\n",
+ "#J=Sum(st^3/3)\n",
+ "J=1/3*(s1*t1**3+2*s2*t2**3)\n",
+ "tau_max=t1*T/J\n",
+ "print \"maximum shear stress = %3.1f N/mm^2\"%(tau_max)\n",
+ "\n",
+ "#in region O2\n",
+ "s1=25\n",
+ "ARf=1/2*zeta_s*s1\n",
+ "ws=-2*ARf*T/(G*J)\n",
+ "print \"warping in O2 region is linear = %3.2f mm\"%(ws)\n",
+ "\n",
+ "#in the wall 21\n",
+ "AR=1/2*zeta_s*s2-0.5*25*s2\n",
+ "w21=-0.03*(zeta_s-s2)\n",
+ "s1=50\n",
+ "tds=2*s2*t2+s1*t1\n",
+ "\n",
+ "A12=25/2*S1\n",
+ "A23=312.5-4.02*S2\n",
+ "A34=111.5+25/2*S3\n",
+ "AR1=1/2*(integrate(A12,(S1,0,25))+integrate(5*(A23),(S2,0,50))+integrate(3*A34,(S3,0,25)))/200\n",
+ "\n",
+ "#equation 18.20\n",
+ "ws=-2*ARf*T/G/J\n",
+ "print \"warping distribution in flange 34 = %1.2f \\n\"%(ws)"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "maximum shear stress = 78.9 N/mm^2\n",
+ "warping in O2 region is linear = -0.25 mm\n",
+ "warping distribution in flange 34 = -0.25 \n",
+ "\n"
+ ]
+ }
+ ],
+ "prompt_number": 17
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [],
+ "language": "python",
+ "metadata": {},
+ "outputs": []
+ }
+ ],
+ "metadata": {}
+ }
+ ]
+} \ No newline at end of file
diff --git a/Aircraft_Structures_for_Engineering_Students/Chapter19.ipynb b/Aircraft_Structures_for_Engineering_Students/Chapter19.ipynb
new file mode 100755
index 00000000..c6a6c12b
--- /dev/null
+++ b/Aircraft_Structures_for_Engineering_Students/Chapter19.ipynb
@@ -0,0 +1,160 @@
+{
+ "metadata": {
+ "name": "",
+ "signature": "sha256:8abe3316b17e7378affc20eb461733ec12ced2dbb39d65e4c948dd2ef8dc33e9"
+ },
+ "nbformat": 3,
+ "nbformat_minor": 0,
+ "worksheets": [
+ {
+ "cells": [
+ {
+ "cell_type": "heading",
+ "level": 1,
+ "metadata": {},
+ "source": [
+ "Chapter 19: Combined open and closed section beams"
+ ]
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 19.1 Pg.No. 552"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "from __future__ import division\n",
+ "from scipy import integrate\n",
+ "from sympy import *\n",
+ "import math\n",
+ "\n",
+ "l1=100 #lengths shown in Fig(mm)\n",
+ "l2=200\n",
+ "F=100*10**3 #force applied (N)\n",
+ "\n",
+ "y_bar=(2*l1*2*50+2*l2*2*l1+l2*2*l2)/(4*l1*2+4*l2*2)\n",
+ "Ixx=2*(2*l1**3/12+2*l1*25**2)+400*2*75**2+l2*2*125**2+2*(2*l2**3/12+2*l2*25**2)\n",
+ "\n",
+ "s1=Symbol('s1')\n",
+ "q12=-round(10**4*F/Ixx)/10**4*(integrate(-50+2*s1,s1))\n",
+ "print \"\\nq12 = %s\"%(q12)\n",
+ "\n",
+ "s2=Symbol('s2')\n",
+ "q23=-round(10**4*F/Ixx)/10**4*(integrate(2*75,s2))-34.5\n",
+ "print \"\\nq23 = %s\"%(q23)\n",
+ "\n",
+ "s3=Symbol('s3')\n",
+ "q03=-round(10**4*F/Ixx)/10**4*(integrate(2*75,s3))\n",
+ "print \"\\nq03 = %s\"%(q03)\n",
+ "\n",
+ "s4=Symbol('s4')\n",
+ "q34=-round(10**4*F/Ixx)/10**4*(integrate(2*(75-s4),s4))-242.5\n",
+ "print \"\\nq34 = %s\"%(q34)\n",
+ "\n",
+ "s5=Symbol('s5')\n",
+ "q94=-round(10**4*F/Ixx)/10**4*(integrate(-2*125,s5))\n",
+ "print \"\\nq94 = %s\\n\"%(q94)"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "\n",
+ "q12 = -0.0069*s1**2 + 0.345*s1\n",
+ "\n",
+ "q23 = -1.035*s2 - 34.5\n",
+ "\n",
+ "q03 = -1.035*s3\n",
+ "\n",
+ "q34 = 0.0069*s4**2 - 1.035*s4 - 242.5\n",
+ "\n",
+ "q94 = 1.725*s5\n",
+ "\n"
+ ]
+ }
+ ],
+ "prompt_number": 35
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 19.2 Pg.No.555"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "from __future__ import division\n",
+ "from scipy import integrate\n",
+ "from sympy import symbols\n",
+ "import math\n",
+ "\n",
+ "A=20000 #nose cell area (mm^2)\n",
+ "L_w=900 #outer wall (mm)\n",
+ "L=300 #width of wall (mm)\n",
+ "length=600 #length of open section (mm)\n",
+ "G=25000 #shear modulus (N/mm^2)\n",
+ "T=10*10**6 #torque applied (kN.m)\n",
+ "t1=1.5 #thickness of closed section\n",
+ "t2=2 #thickness of open section\n",
+ "\n",
+ "GJ_cl=4*A**2*G/(L_w+L)*t1\n",
+ "\n",
+ "print \"torsoinal rigidity of closed section = %2.2e N.mm^2 \\n\"%(GJ_cl)\n",
+ "\n",
+ "GJ_op=G*(length+L)*t2**3/3\n",
+ "print \"torsional rigidity of open section = %2.1e N.mm^2 \\n\"%(GJ_op)\n",
+ "\n",
+ "GJ=GJ_cl+GJ_op\n",
+ "print \"total torsional rigidity = %5.3e N.mm^2\\n\"%(GJ)\n",
+ "\n",
+ "dO_by_dz=T/GJ\n",
+ "print \"angle of twist per unit length = %1.4f rad/mm\\n\"%(dO_by_dz)\n",
+ "\n",
+ "q_cl=GJ_cl/2/A*dO_by_dz\n",
+ "print \"maximum shear stress in the closed section = %3.1f N/mm^2\\n\"%(q_cl/1.5)\n",
+ "\n",
+ "#eqn 18.10 T_max=GtdO/dz\n",
+ "T_max=G*t2*dO_by_dz\n",
+ "print \"maximum shear stress in the open section = %2.0f N/mm^2\\n\"%(T_max)"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "torsoinal rigidity of closed section = 5.00e+10 N.mm^2 \n",
+ "\n",
+ "torsional rigidity of open section = 6.0e+07 N.mm^2 \n",
+ "\n",
+ "total torsional rigidity = 5.006e+10 N.mm^2\n",
+ "\n",
+ "angle of twist per unit length = 0.0002 rad/mm\n",
+ "\n",
+ "maximum shear stress in the closed section = 166.5 N/mm^2\n",
+ "\n",
+ "maximum shear stress in the open section = 10 N/mm^2\n",
+ "\n"
+ ]
+ }
+ ],
+ "prompt_number": 31
+ }
+ ],
+ "metadata": {}
+ }
+ ]
+} \ No newline at end of file
diff --git a/Aircraft_Structures_for_Engineering_Students/Chapter20.ipynb b/Aircraft_Structures_for_Engineering_Students/Chapter20.ipynb
new file mode 100755
index 00000000..4595d055
--- /dev/null
+++ b/Aircraft_Structures_for_Engineering_Students/Chapter20.ipynb
@@ -0,0 +1,286 @@
+{
+ "metadata": {
+ "name": "",
+ "signature": "sha256:bb71ed7156eb25f3e97cd3ba07ae31557b447cbcd71b351505ee32010461a02e"
+ },
+ "nbformat": 3,
+ "nbformat_minor": 0,
+ "worksheets": [
+ {
+ "cells": [
+ {
+ "cell_type": "heading",
+ "level": 1,
+ "metadata": {},
+ "source": [
+ "Chapter 20: Structural idealization"
+ ]
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 20.1 Pg.No.560"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "from __future__ import division\n",
+ "import math\n",
+ "\n",
+ "sigma6=200\n",
+ "sigma1=200\n",
+ "sigma2=sigma5=150 #these are not real shear stress but taken \n",
+ "sigma3=sigma4=100 #proportional to length because we need just ratio\n",
+ "l16=400 \n",
+ "t16=3\n",
+ "l12=l21=600\n",
+ "t12=t21=2 #thickness and lengths as shown in Fig 20.4\n",
+ "l23=600\n",
+ "t23=1.5\n",
+ "l25=300\n",
+ "t25=2.5\n",
+ "l34=200\n",
+ "t34=2\n",
+ "#eqn 20.1 B1=t_D*b/6*(2+sigma_2/sigma_1)\n",
+ "#eqn 20.2 B2=t_D*b/6*(2+sigma_1/sigma_2)\n",
+ "B1=B6=300+l16*t16/6*(2-sigma6/sigma1)+l12*t12/6*(2+sigma2/sigma1)\n",
+ "print \"B1=B6=%5.2f mm^2\\n\"%(B1)\n",
+ "\n",
+ "B2=B5=2*300+l12*t12/6*(2+sigma1/sigma2)+t25*l25/6*(2-sigma5/sigma2)+l23*t23/6*(2+sigma3/sigma2)\n",
+ "print \"B2=B5=%5.2f mm^2\\n\"%(B2)\n",
+ "\n",
+ "B3=300+l23*t23/6*(2+sigma2/sigma3)+l34*t34/6*(2-sigma4/sigma3)\n",
+ "print \"B3=B4=%5.2f mm^2\\n\"%(B3)"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "B1=B6=1050.00 mm^2\n",
+ "\n",
+ "B2=B5=1791.67 mm^2\n",
+ "\n",
+ "B3=B4=891.67 mm^2\n",
+ "\n"
+ ]
+ }
+ ],
+ "prompt_number": 10
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 20.2 Pg.No.562"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "from __future__ import division\n",
+ "import math\n",
+ "\n",
+ "Mx=100*10**6 #bending moment(N.mm)\n",
+ "y=[660,600,420,228,25,-204,-396,-502,-540]\n",
+ "B=[640,600,600,600,620,640,640,850,640]\n",
+ "\n",
+ "print \"direct stress in each boom in last column\"\n",
+ "print \"Boom\\t y(mm)\\t B(mm^2)\\t delIxx=By^2\\t sigma_z\"\n",
+ "for i in range (0,9):\n",
+ " print \"%1.0f \\t %3.0f \\t %3.0f \\t \\t%2.1e \\t %2.1f\"%(i+1,y[i],B[i],B[i]*y[i]**2,Mx*y[i]/(1854*10**6))"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "direct stress in each boom in last column\n",
+ "Boom\t y(mm)\t B(mm^2)\t delIxx=By^2\t sigma_z\n",
+ "1 \t 660 \t 640 \t \t2.8e+08 \t 35.6\n",
+ "2 \t 600 \t 600 \t \t2.2e+08 \t 32.4\n",
+ "3 \t 420 \t 600 \t \t1.1e+08 \t 22.7\n",
+ "4 \t 228 \t 600 \t \t3.1e+07 \t 12.3\n",
+ "5 \t 25 \t 620 \t \t3.9e+05 \t 1.3\n",
+ "6 \t -204 \t 640 \t \t2.7e+07 \t -11.0\n",
+ "7 \t -396 \t 640 \t \t1.0e+08 \t -21.4\n",
+ "8 \t -502 \t 850 \t \t2.1e+08 \t -27.1\n",
+ "9 \t -540 \t 640 \t \t1.9e+08 \t -29.1\n"
+ ]
+ }
+ ],
+ "prompt_number": 14
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 20.3 Pg.No.566"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "from __future__ import division\n",
+ "import math\n",
+ "\n",
+ "Ixx=48*10**6\n",
+ "Sy=4.8*10**3\n",
+ "B=300\n",
+ "\n",
+ "q12=-Sy/Ixx*B*200 #until point 2 \n",
+ "q23=q12-Sy/Ixx*B*200\n",
+ "q34=q23-Sy/Ixx*B*(-200)\n",
+ "print \"shear flow in flange 12 = %2.0f N/mm\\n\"%(q12)\n",
+ "print \"shear flow in web 23 = %2.0f N/mm\\n\"%(q23)\n",
+ "print \"shear flow in flange 34 = %2.0f N/mm\\n\"%(q34)"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "shear flow in flange 12 = -6 N/mm\n",
+ "\n",
+ "shear flow in web 23 = -12 N/mm\n",
+ "\n",
+ "shear flow in flange 34 = -6 N/mm\n",
+ "\n"
+ ]
+ }
+ ],
+ "prompt_number": 17
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 20.4 Pg.No.569"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "from __future__ import division\n",
+ "import math\n",
+ "\n",
+ "B=[200,250,400,100,100,400,250,200]\n",
+ "Ixx=13.86*10**6\n",
+ "Sy=10*10**3\n",
+ "qb23=0\n",
+ "qb34=qb23-Sy/Ixx*B[2]*100\n",
+ "qb45=qb34-Sy/Ixx*B[3]*50\n",
+ "qb56=qb34\n",
+ "qb67=qb23\n",
+ "qb21=qb67-Sy/Ixx*(B[1]*100)\n",
+ "qb18=qb21-Sy/Ixx*B[7]*30\n",
+ "qb87=qb21\n",
+ "qs0=-5.4\n",
+ "print \"Distribution of shear flow :\"\n",
+ "print \"q23 = %2.1f N/mm\"%(qb23+qs0)\n",
+ "print \"q21 = %2.1f N/mm\"%(qb21-qs0)\n",
+ "print \"q34 = %2.1f N/mm\"%(qb34-qs0)\n",
+ "print \"q45 = %2.1f N/mm\"%(qb45-qs0)\n",
+ "print \"q56 = %2.1f N/mm\"%(qb56-qs0)\n",
+ "print \"q67 = %2.1f N/mm\"%(qb67+qs0)\n",
+ "print \"q18 = %2.1f N/mm\"%(qb18-qs0)\n",
+ "print \"q87 = %2.1f N/mm\\n\"%(qb87-qs0)"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Distribution of shear flow :\n",
+ "q23 = -5.4 N/mm\n",
+ "q21 = -12.6 N/mm\n",
+ "q34 = -23.5 N/mm\n",
+ "q45 = -27.1 N/mm\n",
+ "q56 = -23.5 N/mm\n",
+ "q67 = -5.4 N/mm\n",
+ "q18 = -17.0 N/mm\n",
+ "q87 = -12.6 N/mm\n",
+ "\n"
+ ]
+ }
+ ],
+ "prompt_number": 28
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 20.5 Pg.No.575"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "from __future__ import division\n",
+ "import math\n",
+ "from sympy import symbols, integrate\n",
+ "z=symbols('z')\n",
+ "\n",
+ "E=70000 #youngs modulus (N/mm^2)\n",
+ "G=30000 #shear modulus (N/mm^2)\n",
+ "P=4.8*10**3 #applied force (N)\n",
+ "L=2000 #cantilever length(mm)\n",
+ "Sy=P\n",
+ "Ixx=48*10**6 #second moment of area \n",
+ "t=1 #actual thickness (mm)\n",
+ "\n",
+ "Mx0=-Sy*(L-z)\n",
+ "Mx1=-(L-z)\n",
+ "\n",
+ "del_M=integrate(Mx0*Mx1/E/Ixx,(z,0,L))\n",
+ "del_S=integrate((1/G/t/Sy*(6**2*200+12**2*400+6**2*200)),(z,0,L))\n",
+ "print \"total deflection in vertical direction = %1.2f mm\\n\"%(del_M+del_S)"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "total deflection in vertical direction = 4.81 mm\n",
+ "\n"
+ ]
+ }
+ ],
+ "prompt_number": 36
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [],
+ "language": "python",
+ "metadata": {},
+ "outputs": [],
+ "prompt_number": 35
+ }
+ ],
+ "metadata": {}
+ }
+ ]
+} \ No newline at end of file
diff --git a/Aircraft_Structures_for_Engineering_Students/Chapter21.ipynb b/Aircraft_Structures_for_Engineering_Students/Chapter21.ipynb
new file mode 100755
index 00000000..1195a6a9
--- /dev/null
+++ b/Aircraft_Structures_for_Engineering_Students/Chapter21.ipynb
@@ -0,0 +1,256 @@
+{
+ "metadata": {
+ "name": "",
+ "signature": "sha256:b8ffe836d5b15b63c70d69d0a02ef23ccdf3f03c0f15c98f0fa5e62d24f5d894"
+ },
+ "nbformat": 3,
+ "nbformat_minor": 0,
+ "worksheets": [
+ {
+ "cells": [
+ {
+ "cell_type": "heading",
+ "level": 1,
+ "metadata": {},
+ "source": [
+ "Chapter 21: Wing spars and box beams"
+ ]
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 21.1 Pg.No.585"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "from __future__ import division\n",
+ "from scipy import integrate\n",
+ "import math\n",
+ "\n",
+ "Mx=20*10**6 #internal bending moment (N.mm)\n",
+ "Sy=-20*10**3 #force applied(N)\n",
+ "l1=400\n",
+ "l2=300 #lengths of webs respectively from left to right in Fig 21.2\n",
+ "l3=200\n",
+ "\n",
+ "#Ixx=I_C+Ab^2\n",
+ "Ixx=2*l1*150**2+2*l2**3/12\n",
+ "y=150\n",
+ "sigma_z1=Mx*y/Ixx\n",
+ "sigma_z2=-Mx*y/Ixx\n",
+ "\n",
+ "Pz1=sigma_z1*l1\n",
+ "Pz2=sigma_z2*l1\n",
+ "\n",
+ "#from fig 21.1 and 21.2\n",
+ "del_y1_by_del_z=-0.05\n",
+ "del_y2_by_del_z=0.05\n",
+ "Syw=Sy-Pz1*del_y1_by_del_z-Pz2*del_y2_by_del_z\n",
+ "\n",
+ "# equ 21.6 qs=-Syw/Ixx*integrate(t_D*y*ds+B1*Y1) from 0 to s\n",
+ "fn=lambda s:300-2*s\n",
+ "\n",
+ "def shear(s):\n",
+ " return -Syw/Ixx*(integrate.quad(fn, 0, s)[0]+400*150)\n",
+ "print \"maximum value of shear flow @s=150mm =%2.1f N/mm\\n\"%(shear(150.0))\n",
+ "print \"value of shear @s=0mm = %2.1f N/mm\\n\"%(shear(0))\n",
+ "print \"value of shear @s=300 mm = %2.1f N/mm\\n\"%(shear(300))\n",
+ "\n",
+ "\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "maximum value of shear flow @s=150mm =53.8 N/mm\n",
+ "\n",
+ "value of shear @s=0mm = 39.1 N/mm\n",
+ "\n",
+ "value of shear @s=300 mm = 39.1 N/mm\n",
+ "\n"
+ ]
+ }
+ ],
+ "prompt_number": 8
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 21.2 Pg.No.589"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "from __future__ import division\n",
+ "from sympy import symbols\n",
+ "import math\n",
+ "\n",
+ "Sy=100*10**6 #load applied in y direction (N)\n",
+ "Sx=0 #load in x direction (N)\n",
+ "y=[0.3,0.3,0.3,-0.3,-0.3,-0.3]\n",
+ "B=[900,1200,900,900,1200,900] #boom area\n",
+ "dx_dz=[0.1,0,-0.1,-0.1,0,0.1]\n",
+ "dy_dz=[-0.05,-0.05,-0.05,0.05,0.05,0.05]\n",
+ "Er=[0.6,0,0.6,0.6,0,0.6] \n",
+ "nr=[0.3,0.3,0.3,0.3,0.3,0.3]\n",
+ "Mx=-Sy*2\n",
+ "My=-Sx*2\n",
+ "Ixy=0\n",
+ "Ixx=4*900*300**2+2*1200*300**2\n",
+ "Pzr=[0]*6\n",
+ "Pxr=[0]*6 #array initialization\n",
+ "Pyr=[0]*6\n",
+ "Pr=[0]*6\n",
+ "print \"Boom \\t Pzr(kN) \\t dx_dz \\t dy_dz \\t Pxr(kN) \\t Pyr(kN) \\t Pr(kN)\"\n",
+ "for i in range (0,6):\n",
+ " Pzr[i]=Mx*y[i]/Ixx*B[i]\n",
+ " Pxr[i]=Pzr[i]*dx_dz[i] #Pr is not correct in (7) column in book\n",
+ " Pyr[i]=Pzr[i]*dy_dz[i]\n",
+ " Pr[i]=(Pzr[i]**2+Pxr[i]**2+Pyr[i]**2)**0.5\n",
+ " if Pzr[i]>0 :\n",
+ " print \"%1.0f \\t %3.0f \\t\\t %1.1f \\t %1.2f \\t %2.0f \\t\\t %1.1f \\t\\t %3.1f\"%(i+1,Pzr[i],dx_dz[i],dy_dz[i],Pxr[i],Pyr[i],Pr[i])\n",
+ " else:\n",
+ " print \"%1.0f \\t %3.0f \\t\\t %1.1f \\t %1.2f \\t %2.0f \\t\\t %1.1f \\t\\t %3.1f\"%(i+1,Pzr[i],dx_dz[i],dy_dz[i],Pxr[i],Pyr[i],-Pr[i])\n",
+ " \n",
+ "Sxw=0\n",
+ "Syw=66.6*10**3\n",
+ "qb16=0 #open section here\n",
+ "qb12=qb16-Syw/Ixx*B[0]*300\n",
+ "qb23=qb12-Syw/Ixx*B[1]*300\n",
+ "qb34=qb23-Syw/Ixx*B[2]*300\n",
+ "qb45=qb23\n",
+ "qb56=qb12\n",
+ "qs0=-97\n",
+ "\n",
+ "\n",
+ "print \"\\n\\nqb16 = %3.1f N/mm\"%(qb16)\n",
+ "print \"qb12 = %3.1f N/mm\"%(qb12)\n",
+ "print \"qb23 = %3.1f N/mm\"%(qb23)\n",
+ "print \"qb34 = %3.1f N/mm\"%(qb34)\n",
+ "print \"qb45 = %3.1f N/mm\"%(qb45)\n",
+ "print \"qb56 = %3.1f N/mm\"%(qb56)\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Boom \t Pzr(kN) \t dx_dz \t dy_dz \t Pxr(kN) \t Pyr(kN) \t Pr(kN)\n",
+ "1 \t -100 \t\t 0.1 \t -0.05 \t -10 \t\t 5.0 \t\t -100.6\n",
+ "2 \t -133 \t\t 0.0 \t -0.05 \t -0 \t\t 6.7 \t\t -133.5\n",
+ "3 \t -100 \t\t -0.1 \t -0.05 \t 10 \t\t 5.0 \t\t -100.6\n",
+ "4 \t 100 \t\t -0.1 \t 0.05 \t -10 \t\t 5.0 \t\t 100.6\n",
+ "5 \t 133 \t\t 0.0 \t 0.05 \t 0 \t\t 6.7 \t\t 133.5\n",
+ "6 \t 100 \t\t 0.1 \t 0.05 \t 10 \t\t 5.0 \t\t 100.6\n",
+ "\n",
+ "\n",
+ "qb16 = 0.0 N/mm\n",
+ "qb12 = -33.3 N/mm\n",
+ "qb23 = -77.7 N/mm\n",
+ "qb34 = -111.0 N/mm\n",
+ "qb45 = -77.7 N/mm\n",
+ "qb56 = -33.3 N/mm\n"
+ ]
+ }
+ ],
+ "prompt_number": 6
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 21.3 Pg.No.593\n"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "from __future__ import division\n",
+ "from sympy import symbols\n",
+ "import numpy as np\n",
+ "import math\n",
+ "yr=symbols('yr')\n",
+ "\n",
+ "Mx=-100*1.9*10**6 #bending moment(N.mm)\n",
+ "Ixx=4*900*295**2+2*1200*295**2 #second moment of area (mm^4)\n",
+ "sigma_zr=Mx/Ixx*yr\n",
+ "P1_1=P3_1=-0.364*295*900\n",
+ "P4_1=P6_1=0.364*295*900\n",
+ "P2_1=-0.364*295*1200\n",
+ "P5_1=0.364*295*1200\n",
+ "\n",
+ "Mx=-100*2.1\n",
+ "Ixx=4*900*305**2+2*1200*305**2\n",
+ "sigma_zr=Mx/Ixx*yr\n",
+ "P1_2=P3_2=-0.376*305*900\n",
+ "P4_2=P6_2=0.376*305*900\n",
+ "P2_2=-0.376*305*1200\n",
+ "P5_2=0.376*305*1200\n",
+ "\n",
+ "deltaP1=deltaP3=(P1_1-P1_2)/200\n",
+ "deltaP4=deltaP6=-(P4_1-P4_2)/200\n",
+ "deltaP2=(P2_1-P2_2)/200\n",
+ "deltaP5=(P5_1-P5_2)/200\n",
+ "\n",
+ "a=np.array([[1,-1,0,0,0,0],[0,1,-1,0,0,0],[0,0,1,-1,0,0],[0,0,0,1,-1,0],[0,0,0,0,1,-1],[600*300*2,2*600*300,600*600,0,0,600*600]])\n",
+ "\n",
+ "b=np.array([43.8,32.85,-32.85,-43.8,-32.85,600*10**5])\n",
+ "q=np.linalg.solve(a,b)\n",
+ "print \"shear flow distribution :\"\n",
+ "print \"q12 = %2.1f N/mm\"%(q[0])\n",
+ "print \"q23 = %2.1f N/mm\"%(q[1])\n",
+ "print \"q34 = %2.1f N/mm\"%(q[2])\n",
+ "print \"q45 = %2.1f N/mm\"%(q[3])\n",
+ "print \"q56 = %2.1f N/mm\"%(q[4])\n",
+ "print \"q61 = %2.1f N/mm\\n\"%(q[5])"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "shear flow distribution :\n",
+ "q12 = 63.6 N/mm\n",
+ "q23 = 19.8 N/mm\n",
+ "q34 = -13.1 N/mm\n",
+ "q45 = 19.8 N/mm\n",
+ "q56 = 63.6 N/mm\n",
+ "q61 = 96.4 N/mm\n",
+ "\n"
+ ]
+ }
+ ],
+ "prompt_number": 40
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [],
+ "language": "python",
+ "metadata": {},
+ "outputs": [],
+ "prompt_number": 41
+ }
+ ],
+ "metadata": {}
+ }
+ ]
+} \ No newline at end of file
diff --git a/Aircraft_Structures_for_Engineering_Students/Chapter22.ipynb b/Aircraft_Structures_for_Engineering_Students/Chapter22.ipynb
new file mode 100755
index 00000000..15f86e3c
--- /dev/null
+++ b/Aircraft_Structures_for_Engineering_Students/Chapter22.ipynb
@@ -0,0 +1,88 @@
+{
+ "metadata": {
+ "name": "",
+ "signature": "sha256:7afcc7b44b13ea906e3e2317703c261e07426e5f23f7958a6b7966ba0274524d"
+ },
+ "nbformat": 3,
+ "nbformat_minor": 0,
+ "worksheets": [
+ {
+ "cells": [
+ {
+ "cell_type": "heading",
+ "level": 1,
+ "metadata": {},
+ "source": [
+ "Chapter 22: Fuselages"
+ ]
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 22.1 Pg.No.598"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "from __future__ import division\n",
+ "import math\n",
+ "#B1=t_D*b/6(2+sigma_2/sigma_1)\n",
+ "Mx=200*10**6 # (N*mm)\n",
+ "y=[381,352,269.5,145.8,0,-145.8,-269.5,-352,-381,-352,-269.5,-145.8,0,145.8,269.5,352]\n",
+ "sigma_2=sigma_16=352\n",
+ "sigma_1=381\n",
+ "A=100\n",
+ "B1=A+0.8*149.6/6*(2+sigma_2/sigma_1)*2\n",
+ "Ixx=2.52*10**8\n",
+ "def sigma_z(y):\n",
+ " return Mx/Ixx*y\n",
+ "print \"Stringer/Boom \\t y(mm) \\t \\tsigma_z(N/mm^2)\"\n",
+ "for i in range (0,16):\n",
+ " print \"%2.0f \\t\\t %3.1f\\t\\t\\t%3.1f \"%(i+1,y[i],sigma_z(y[i]))\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Stringer/Boom \t y(mm) \t \tsigma_z(N/mm^2)\n",
+ " 1 \t\t 381.0\t\t\t302.4 \n",
+ " 2 \t\t 352.0\t\t\t279.4 \n",
+ " 3 \t\t 269.5\t\t\t213.9 \n",
+ " 4 \t\t 145.8\t\t\t115.7 \n",
+ " 5 \t\t 0.0\t\t\t0.0 \n",
+ " 6 \t\t -145.8\t\t\t-115.7 \n",
+ " 7 \t\t -269.5\t\t\t-213.9 \n",
+ " 8 \t\t -352.0\t\t\t-279.4 \n",
+ " 9 \t\t -381.0\t\t\t-302.4 \n",
+ "10 \t\t -352.0\t\t\t-279.4 \n",
+ "11 \t\t -269.5\t\t\t-213.9 \n",
+ "12 \t\t -145.8\t\t\t-115.7 \n",
+ "13 \t\t 0.0\t\t\t0.0 \n",
+ "14 \t\t 145.8\t\t\t115.7 \n",
+ "15 \t\t 269.5\t\t\t213.9 \n",
+ "16 \t\t 352.0\t\t\t279.4 \n"
+ ]
+ }
+ ],
+ "prompt_number": 9
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [],
+ "language": "python",
+ "metadata": {},
+ "outputs": []
+ }
+ ],
+ "metadata": {}
+ }
+ ]
+} \ No newline at end of file
diff --git a/Aircraft_Structures_for_Engineering_Students/Chapter23.ipynb b/Aircraft_Structures_for_Engineering_Students/Chapter23.ipynb
new file mode 100755
index 00000000..a5e90903
--- /dev/null
+++ b/Aircraft_Structures_for_Engineering_Students/Chapter23.ipynb
@@ -0,0 +1,390 @@
+{
+ "metadata": {
+ "name": "",
+ "signature": "sha256:38d29ad436c9255138372fb573a0261c5aeb8d664f2491fbf03a71e42b1c4783"
+ },
+ "nbformat": 3,
+ "nbformat_minor": 0,
+ "worksheets": [
+ {
+ "cells": [
+ {
+ "cell_type": "heading",
+ "level": 1,
+ "metadata": {},
+ "source": [
+ "Chapter 23: Wings"
+ ]
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 23.1 Pg.No.609"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "from __future__ import division\n",
+ "from sympy import solve, symbols, pprint\n",
+ "import math\n",
+ "y=symbols('y')\n",
+ "\n",
+ "B1=B6=2580\n",
+ "B2=B5=3880 #Boom areas (mm^2)\n",
+ "B3=B4=3230\n",
+ "\n",
+ "l1=200\n",
+ "l2=230 #dimensions shown in Fig 23.3 (mm)\n",
+ "l3=165\n",
+ "\n",
+ "Mx=300*10**6 #bending moment (N.mm)\n",
+ "My=0\n",
+ "\n",
+ "Ixx=2*(B1*l3**2+B2*l2**2+B3*l1**2)\n",
+ "sigma_z=Mx/Ixx*y\n",
+ "\n",
+ "print \"direct stress in booms sigma_z = %s\" %(sigma_z)"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "direct stress in booms sigma_z = 0.370651791174781*y\n"
+ ]
+ }
+ ],
+ "prompt_number": 8
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 23.2 Pg.No.612"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "from __future__ import division\n",
+ "from sympy import solve, symbols, pprint\n",
+ "import math\n",
+ "import numpy as np\n",
+ "\n",
+ "T=11.3*10**6 # torque applied (N.mm)\n",
+ "G_REF=27600 #(N/mm^2)\n",
+ "A1=258000\n",
+ "A2=355000 #areas in table\n",
+ "A3=161000\n",
+ "\n",
+ "#t*12=G/G_REF*t\n",
+ "t12=24200/G_REF*1.22\n",
+ "t12i=27600/G_REF*2.03\n",
+ "t13=t24=24200/G_REF*1.22 #G and thickness taken from table ex23.2 Pg.No.612\n",
+ "t35=t46=t56=20700/G_REF*0.92\n",
+ "t34=27600/G_REF*1.63\n",
+ "\n",
+ "# del12=ds/t*12\n",
+ "del12=1650/t12\n",
+ "del12i=508/t12i\n",
+ "del13=del24=775/t13\n",
+ "del34=380/t34 #lengths taken from table\n",
+ "del35=del46=508/t35\n",
+ "del56=254/t56\n",
+ "\n",
+ "\n",
+ "a=np.array([[del12+del12i,-del12i,0,-2*A1*G_REF],[-del12i,del12i+del13+del24+del34,-del34,-2*A2*G_REF],[0,-del34,del35+del46+del34+del56,-2*A3*G_REF],[A1,A2,A3,0]])\n",
+ "b=np.array([0,0,0,5.65*10**6])\n",
+ "x=np.linalg.solve(a,b)\n",
+ "print \"shear stress distribution is as follows\"\n",
+ "print \"q1=%1.1f N/mm\"%(x[0])\n",
+ "print \"q2=%1.1f N/mm\"%(x[1])\n",
+ "print \"q3=%1.1f N/mm\\n\"%(x[2])\n",
+ "print \"dO_dz=%1.2e \"%(x[3])"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "shear stress distribution is as follows\n",
+ "q1=7.1 N/mm\n",
+ "q2=8.9 N/mm\n",
+ "q3=4.2 N/mm\n",
+ "\n",
+ "dO_dz=7.36e-07 \n"
+ ]
+ }
+ ],
+ "prompt_number": 27
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 23.3 Pg.No.616"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "from __future__ import division\n",
+ "from sympy import solve, symbols, pprint\n",
+ "import math\n",
+ "import numpy as np\n",
+ "\n",
+ "A1=265000\n",
+ "A2=213000\n",
+ "A3=413000\n",
+ "\n",
+ "G_REF=27600\n",
+ "Sy=86.8*10**3\n",
+ "t78=3*27600/27600*1.22\n",
+ "del78=1270/t78\n",
+ "t12=t56=1.22\n",
+ "del12=del56=1023/t12\n",
+ "t23=1.63\n",
+ "del23=1274/t23\n",
+ "t34=2.03\n",
+ "del34=2200/t34\n",
+ "del38=57\n",
+ "del84=95\n",
+ "del87=347\n",
+ "del27=68\n",
+ "del75=106\n",
+ "del16=330/1.63\n",
+ "Ixx=809*10**6 #From example 23.1\n",
+ "\n",
+ "qb27=-99.4;qb16=-45.5;qb65=0;qb57=95.5;qb38=-69.8;qb48=69\n",
+ "\n",
+ "\n",
+ "a=np.array([ [del34+del84+del38,-del38,0,-2*A1*G_REF], [-del38,del23+del38+del87+del27,-del27,-2*A2*G_REF], [0,-del27,del56+del27+del75+del12+del16,-2*A3*G_REF], [2*A1,2*A2,2*A3,0] ])\n",
+ "b=np.array([-10488,-2561,7426,19736700])\n",
+ "x=np.linalg.solve(a,b)\n",
+ "\n",
+ "qs01=5.5\n",
+ "qs02=10.2\n",
+ "qs03=16.5\n",
+ "\n",
+ "q34=qs01\n",
+ "q23=qs02\n",
+ "q12=qs03\n",
+ "q61=-qb16+qs03\n",
+ "q57=qb57-qs03\n",
+ "q72=-qb27-qs02\n",
+ "q48=qb48+qs01\n",
+ "q83=-qb38-qs01\n",
+ "\n",
+ "print \"shear flows distribution is as follows :\"\n",
+ "print \"q34=%1.2f N/mm\"%(q34)\n",
+ "print \"q23=q87=%1.2f N/mm\"%(q23)\n",
+ "print \"q12=q56=%1.2f N/mm\"%(q12)\n",
+ "print \"q61=%1.2f N/mm\"%(q61) \n",
+ "print \"q57=%1.2f N/mm\"%(q57)\n",
+ "print \"q72=%1.2f N/mm\"%(q72)\n",
+ "print \"q48=%1.2f N/mm\"%(q48)\n",
+ "print \"q83=%1.2f N/mm\\n\"%(q83)\n",
+ "\n",
+ "print \"rate of twist = %1.1e rad/mm\"%(x[3])"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "shear flows distribution is as follows :\n",
+ "q34=5.50 N/mm\n",
+ "q23=q87=10.20 N/mm\n",
+ "q12=q56=16.50 N/mm\n",
+ "q61=62.00 N/mm\n",
+ "q57=79.00 N/mm\n",
+ "q72=89.20 N/mm\n",
+ "q48=74.50 N/mm\n",
+ "q83=64.30 N/mm\n",
+ "\n",
+ "rate of twist = 1.1e-06 rad/mm\n"
+ ]
+ }
+ ],
+ "prompt_number": 8
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 23.4 Pg.No.618 "
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "from __future__ import division\n",
+ "from sympy import solve, symbols, pprint\n",
+ "import math\n",
+ "import numpy as np\n",
+ "\n",
+ "#Boom areas\n",
+ "B=[600,900,600,600,900,600]\n",
+ "Pz=[0,0,0,0,0,0]\n",
+ "y=[54.56,54.56,54.56,-54.56,-54.56,-54.56]\n",
+ "Ixx=4*600*90**2+2*900*90**2\n",
+ "Ixy=0\n",
+ "Mx=1.65*10**6\n",
+ "My=0\n",
+ "\n",
+ "a=np.array([[1700,-1520],[72000,144000]])\n",
+ "b=np.array([3942,690726])\n",
+ "x=np.linalg.solve(a,b)\n",
+ "print \"\\nqs0I = %2.1f N/mm\\n\"%(x[0])\n",
+ "print \"\\nqs0II = %2.1f N/mm\\n\"%(x[1])"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "\n",
+ "qs0I = 4.6 N/mm\n",
+ "\n",
+ "\n",
+ "qs0II = 2.5 N/mm\n",
+ "\n"
+ ]
+ }
+ ],
+ "prompt_number": 21
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 23.5 Pg.No.622"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "from __future__ import division\n",
+ "from sympy import solve, symbols, pprint\n",
+ "import math\n",
+ "import numpy as np\n",
+ "from sympy import integrate\n",
+ "z=symbols('z')\n",
+ "\n",
+ "E=69000 #youngs modulus (N/mm^2)\n",
+ "G=25900 #shear modulus (N/mm^2)\n",
+ "t=2 #thickness (mm)\n",
+ "B=[650,1300,650,650,1300,650] #boom area\n",
+ "q0=[9.6,-5.8,50.3,-5.8,9.6,54.1,73.6]\n",
+ "Sy0=44.5*10**3\n",
+ "Sy1=1\n",
+ "Mx0=-44.5*10**3*(2000-z)\n",
+ "Mx1=-(2000-z)\n",
+ "Ixx=81.3*10**6\n",
+ "int_q0q1_Gt=1/G/t/Sy0*(q0[0]**2*250*t+q0[1]**2*500*t+q0[2]**2*250+q0[5]**2*250+q0[6]**2*250)\n",
+ "\n",
+ "delta=integrate(Mx0*Mx1/E/Ixx,(z,0,2000))+integrate(int_q0q1_Gt,(z,0,2000))\n",
+ "print \"deflection at free end of the two cell = %2.2f mm\"%(delta)"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "deflection at free end of the two cell = 23.58 mm\n"
+ ]
+ }
+ ],
+ "prompt_number": 70
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 23.6 Pg.No.624"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "from sympy import solve, symbols, pprint\n",
+ "import math\n",
+ "import numpy as np\n",
+ "from sympy import integrate\n",
+ "\n",
+ "T=10*10**6 #torque subjected (N.mm)\n",
+ "l1=800 \n",
+ "l2=200 #lengths shown in Fig23.17 (mm)\n",
+ "l3=1500\n",
+ "A=l2*l1\n",
+ "\n",
+ "\n",
+ "q=T/2/A\n",
+ "S=T/l1\n",
+ "q1=S/l2\n",
+ "P=S*l3/2/l2\n",
+ "\n",
+ "a=np.array([[1,-1],[1,1]])\n",
+ "b=np.array([31.3,62.5])\n",
+ "q=np.linalg.solve(a,b)\n",
+ "\n",
+ "print \"shear flow :\"\n",
+ "print \"q1=%2.2f N/mm\"%(q1)\n",
+ "print \"q2=%2.2f N/mm\"%(q[0])\n",
+ "print \"q3=%2.2f N/mm\\n\"%(q[1])\n",
+ "\n",
+ "print \"flange loads :\"\n",
+ "print \"P(st.4500) = 0\"\n",
+ "print \"P(st.3000) = %2.2f N (compression)\"%(l3*q[0]-l3*q[1])\n",
+ "print \"P(st.2250) = %2.1f\"%(46875-l3/2*q1)"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "shear flow :\n",
+ "q1=62.50 N/mm\n",
+ "q2=46.90 N/mm\n",
+ "q3=15.60 N/mm\n",
+ "\n",
+ "flange loads :\n",
+ "P(st.4500) = 0\n",
+ "P(st.3000) = 46950.00 N (compression)\n",
+ "P(st.2250) = 0.0\n"
+ ]
+ }
+ ],
+ "prompt_number": 84
+ }
+ ],
+ "metadata": {}
+ }
+ ]
+} \ No newline at end of file
diff --git a/Aircraft_Structures_for_Engineering_Students/Chapter24.ipynb b/Aircraft_Structures_for_Engineering_Students/Chapter24.ipynb
new file mode 100755
index 00000000..b305a12a
--- /dev/null
+++ b/Aircraft_Structures_for_Engineering_Students/Chapter24.ipynb
@@ -0,0 +1,198 @@
+{
+ "metadata": {
+ "name": "",
+ "signature": "sha256:217b3507f45091d99aa496d838ab43e552e1e20629747bd44a2cad35220ffe6a"
+ },
+ "nbformat": 3,
+ "nbformat_minor": 0,
+ "worksheets": [
+ {
+ "cells": [
+ {
+ "cell_type": "heading",
+ "level": 1,
+ "metadata": {},
+ "source": [
+ "Chapter 24: Fuselage frames and wing ribs"
+ ]
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 24.1 Pg.No.638"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "from __future__ import division\n",
+ "import numpy\n",
+ "import math\n",
+ "#reference Fig 42.2\n",
+ "l1=250 #length of each section(mm)\n",
+ "l2=200 #length of DK(mm)\n",
+ "l3=100 #length of KH(mm)\n",
+ "F1=4000\n",
+ "F2=5000 #forces as shown in Fig 24.1\n",
+ "theta=60 #force angle from DH (degree)\n",
+ "\n",
+ "#solve (i) and (ii) equation\n",
+ "a=numpy.array([[1,-1],[200,100]])\n",
+ "b=numpy.array([13.8564,2000])\n",
+ "q=numpy.linalg.solve(a,b)\n",
+ "q1=q[0]\n",
+ "q2=q[1]\n",
+ "q3=F1*math.cos(math.radians(theta))/(l2+l3)\n",
+ "q4=F1*math.cos(math.radians(theta))/(l2+l3)+F2/(l2+l3)\n",
+ "P_A=l1*q1+l1*q3+l1*q4\n",
+ "P_E=-l1*q2-l1*q3-l1*q4\n",
+ "P=3464.1\n",
+ "M_AE=F2*l1+F1/2*3*l1-P*50\n",
+ "\n",
+ "P_A=M_AE/(l2+l3)+P/2\n",
+ "P_E=-M_AE/(l2+l3)+P/2\n",
+ "\n",
+ "print \"shear flow as shown in Fig 24.1\\n\"\n",
+ "print \"q1=%2.2f N/mm\\n\"%(q1)\n",
+ "print \"q2=%2.2f N/mm\\n\"%(q2)\n",
+ "print \"q3=%2.2f N/mm\\n\"%(q3)\n",
+ "print \"q4=%2.2f N/mm\\n\"%(q4)\n",
+ "\n",
+ "print \"Stiffener load at point A = %2.2f N/mm(tension)\\n\"%(P_A)\n",
+ "print \"Stiffener load at point E = %2.2f N/mm(compression)\\n\"%(P_E) #in book another method is also explained"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "shear flow as shown in Fig 24.1\n",
+ "\n",
+ "q1=11.29 N/mm\n",
+ "\n",
+ "q2=-2.57 N/mm\n",
+ "\n",
+ "q3=6.67 N/mm\n",
+ "\n",
+ "q4=23.33 N/mm\n",
+ "\n",
+ "Stiffener load at point A = 10321.37 N/mm(tension)\n",
+ "\n",
+ "Stiffener load at point E = -6857.27 N/mm(compression)\n",
+ "\n"
+ ]
+ }
+ ],
+ "prompt_number": 2
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 24.2 Pg.No.645"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "from __future__ import division\n",
+ "import numpy as np\n",
+ "import math\n",
+ "\n",
+ "A1=50000\n",
+ "A2=95000 #area shown in Fig 24.13(mm^2)\n",
+ "A3=95000\n",
+ "\n",
+ "A4=46000\n",
+ "A5=49000 #area shown in Fig 24.11 (mm^2)\n",
+ "\n",
+ "F1=12000\n",
+ "F2=15000 #forces shown in Fig 24.9 (N)\n",
+ "\n",
+ "l1=l3=300\n",
+ "l2=320 #lengths and angle shown in Fig 24.9\n",
+ "alpha=15\n",
+ "\n",
+ "#solve equation (i)&(iii)\n",
+ "a=np.array([[600,-600],[190000,290000]])\n",
+ "b=np.array([12000,440000])\n",
+ "q=np.linalg.solve(a,b)\n",
+ "q12=q[0]\n",
+ "q23=q[1]\n",
+ "q31=(F2+l1*q23)/l1\n",
+ "print \"shear flows are shown in Fig 24.9 (flanges)\"\n",
+ "print \"q12=%2.2f N/mm\"%(q12)\n",
+ "print \"q23=%2.2f N/mm\"%(q23)\n",
+ "print \"q31=%2.2f N/mm\\n\"%(q31)\n",
+ "\n",
+ "Sy_1=7*l3\n",
+ "Px4=Px2=2*A1*7/l1\n",
+ "Py2=Py4=Px4*math.tan(math.radians(alpha))\n",
+ "q1=(2100-2*625.2)/l1\n",
+ "P2=P4=(Px4**2+Py4**2)**0.5\n",
+ "P5=P6=2*((A1+A4)*7-A5*13)/l2\n",
+ "q2=(7*l1+7*10-13*10)/l2\n",
+ "q3=(6.4*l2+F2)/l2\n",
+ "\n",
+ "M3=2*((A1+A2)*7-A2*13)+F2*l1\n",
+ "Px1=Px3=M3/l1\n",
+ "Py1=Py3=3626.2\n",
+ "P1=P3=(Px1**2+Py1**2)**.5\n",
+ "q3=(17100-2*Py1)/l1\n",
+ "\n",
+ "print \"Loads in webs \"\n",
+ "print \"P4=P2=%2.2f N\"%(P2)\n",
+ "print \"P6=P5=%2.2f N\"%(P6)\n",
+ "print \"P3=P1=%2.2f N\\n\"%(P1)\n",
+ "\n",
+ "print \"shear flow in webs\"\n",
+ "print \"q1=%2.2f N/mm\"%(q1)\n",
+ "print \"q2=%2.2f N/mm\"%(q2)\n",
+ "print \"q3=%2.2f N/mm (this value is given at the end of example)\"%(q3)"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "shear flows are shown in Fig 24.9 (flanges)\n",
+ "q12=13.00 N/mm\n",
+ "q23=-7.00 N/mm\n",
+ "q31=43.00 N/mm\n",
+ "\n",
+ "Loads in webs \n",
+ "P4=P2=2415.64 N\n",
+ "P6=P5=218.75 N\n",
+ "P3=P1=14010.73 N\n",
+ "\n",
+ "shear flow in webs\n",
+ "q1=2.83 N/mm\n",
+ "q2=6.38 N/mm\n",
+ "q3=32.83 N/mm (this value is given at the end of example)\n"
+ ]
+ }
+ ],
+ "prompt_number": 4
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [],
+ "language": "python",
+ "metadata": {},
+ "outputs": []
+ }
+ ],
+ "metadata": {}
+ }
+ ]
+} \ No newline at end of file
diff --git a/Aircraft_Structures_for_Engineering_Students/Chapter25.ipynb b/Aircraft_Structures_for_Engineering_Students/Chapter25.ipynb
new file mode 100755
index 00000000..369a648f
--- /dev/null
+++ b/Aircraft_Structures_for_Engineering_Students/Chapter25.ipynb
@@ -0,0 +1,490 @@
+{
+ "metadata": {
+ "name": "",
+ "signature": "sha256:806c344ebbd66dd7398f87b7be85af8355708b04b28f0bd902647a641248feff"
+ },
+ "nbformat": 3,
+ "nbformat_minor": 0,
+ "worksheets": [
+ {
+ "cells": [
+ {
+ "cell_type": "heading",
+ "level": 1,
+ "metadata": {},
+ "source": [
+ "Chapter 25: Laminated Composite Structures"
+ ]
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 25.1 Pg.No.653"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "from __future__ import division\n",
+ "import math\n",
+ "\n",
+ "#variable declaration\n",
+ "Ee=5000 #youngs modulus of epoxy (N/mm^2)\n",
+ "Ec=200000 #youngs modulus of carbon (N/mm^2)\n",
+ "\n",
+ "# E1=Ef*Af/A+Em+Am/A equation 25.4\n",
+ "A=50*80 #total area (mm^2)\n",
+ "Ae=40*80 #area of epoxy (mm^2)\n",
+ "Ac=10*80 #area of carbon(mm^2)\n",
+ "L=500 #length of bar(mm)\n",
+ "vc=0.3 #poisson ratio\n",
+ "ve=0.2\n",
+ "\n",
+ "#effective youngs modulus\n",
+ "E1=(Ee*Ae+Ec*Ac)/A\n",
+ "\n",
+ "load=100*10**3\n",
+ "sigma1=load/A\n",
+ "epsilon1=sigma1/E1\n",
+ "\n",
+ "delta1=epsilon1*L\n",
+ "v1t=(ve*Ae+vc*Ac)/A\n",
+ "epsilon_t=-v1t*epsilon1\n",
+ "\n",
+ "thickness=L\n",
+ "delta_t=-epsilon_t*(thickness)\n",
+ "\n",
+ "\n",
+ "sigma_m=Ee*epsilon1\n",
+ "sigma_f=Ec*epsilon1\n",
+ "print \"stresses in epoxy = %2.2f N/mm^2\\n\"%(sigma_m)\n",
+ "print \"stresses in carbon = %2.2f N/mm^2\\n\"%(sigma_f)"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "stresses in epoxy = 2.84 N/mm^2\n",
+ "\n",
+ "stresses in carbon = 113.64 N/mm^2\n",
+ "\n"
+ ]
+ }
+ ],
+ "prompt_number": 10
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 25.2 Pg.No.657"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "from __future__ import division\n",
+ "import math\n",
+ "\n",
+ "tau=40 #shear stress(N/mm^2)\n",
+ "G=5000 #shear modulus(N/mm^2)\n",
+ "v1t=0.3 #poisson ratio \n",
+ "Et=80000 #youngs modulus in transverse direction(N/mm^2)\n",
+ "E1=120000 #youngs modulus in longitudinal direction(N/mm^2)\n",
+ "sigma_x=50 #direction stress in x direciton\n",
+ "sigma_y=25 #in y direction\n",
+ "\n",
+ "\n",
+ "vt1=v1t*Et/E1 #minor poisson ratio\n",
+ "\n",
+ "epsilon1=sigma_x/E1-vt1*sigma_y/Et\n",
+ "epsilont=sigma_y/Et-v1t*sigma_x/E1\n",
+ "print \"direct strain in x direction = %2.2e \\n\"%(epsilon1)\n",
+ "print \"direct strain in y direction = %2.2e \\n\"%(epsilont)\n",
+ "\n",
+ "gama1t=tau/G\n",
+ "print \"shear strain in the ply = %2.2e \\n\"%(gama1t)"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "direct strain in x direction = 3.54e-04 \n",
+ "\n",
+ "direct strain in y direction = 1.88e-04 \n",
+ "\n",
+ "shear strain in the ply = 8.00e-03 \n",
+ "\n"
+ ]
+ }
+ ],
+ "prompt_number": 12
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 25.3 Pg.No.661"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "from __future__ import division\n",
+ "import math\n",
+ "import numpy as np\n",
+ "\n",
+ "El=150000 #youngs modulus(N/mm^2)\n",
+ "Et=90000 #youngs modulus(N/mm^2)\n",
+ "Glt=5000 #shear modulus(N/mm^2)\n",
+ "vlt=0.3 #poisson ratio\n",
+ "theta=45 #longitudinal plane inclination\n",
+ "\n",
+ "s11=1/El\n",
+ "s22=1/Et\n",
+ "s12=-vlt/El\n",
+ "s33=1/Glt\n",
+ "\n",
+ "a=np.array([[53.45,-46.55,1],[-46.55,53.45,0],[-2.2,-2.2,0]])\n",
+ "b=np.array([60,40,0])\n",
+ "x=np.dot(a,b)\n",
+ "print \"strain in the x direction = %4.4e\\n\"%(x[0]*10**-6)\n",
+ "print \"strain in the y direction = %4.4e\\n\"%(x[1]*10**-6)\n",
+ "print \"shear strain in the xy plane = %4.4e\\n\"%(x[2]*10**-6)"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "strain in the x direction = 1.3450e-03\n",
+ "\n",
+ "strain in the y direction = -6.5500e-04\n",
+ "\n",
+ "shear strain in the xy plane = -2.2000e-04\n",
+ "\n"
+ ]
+ }
+ ],
+ "prompt_number": 23
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 25.4 Pg.No.664"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "from __future__ import division\n",
+ "import math\n",
+ "import numpy as np\n",
+ "\n",
+ "l1=150\n",
+ "t1=1\n",
+ "l2=100 #dimensions shown in Fig 25.10 (mm)\n",
+ "t2=2\n",
+ "Ef=60000 #youngs modulus of flanges(N/mm^2)\n",
+ "Ew=20000 #youngs modulus of web(N/mm^2)\n",
+ "P=40*10**3 #axial load(N)\n",
+ "\n",
+ "#sum of b*t*E \n",
+ "sum_btE=2*l2*t2*Ef+l1*t1*Ew\n",
+ "\n",
+ "epsilon_z=P/sum_btE #equ 25.37\n",
+ "P_flange=epsilon_z*l2*t2*Ef\n",
+ "P_web=epsilon_z*l1*t1*Ew\n",
+ "print \"axial load in flange = %2.2f kN\\n\"%(P_flange/1000)\n",
+ "print \"axial load in web = %2.2f kN\\n\"%(P_web/1000)"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "axial load in flange = 17.78 kN\n",
+ "\n",
+ "axial load in web = 4.44 kN\n",
+ "\n"
+ ]
+ }
+ ],
+ "prompt_number": 28
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 25.5 Pg.No.666"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "from __future__ import division\n",
+ "import math\n",
+ "import numpy as np\n",
+ "\n",
+ "l1=100\n",
+ "l2=50\n",
+ "t1=1 #dimension shown in Fig 25.11 (mm)\n",
+ "t2=2\n",
+ "Ef=50000 #youngs modulus of flange(N/mm^2)\n",
+ "Ew=15000 #youngs modulus of web(N/mm^2)\n",
+ "Mx=10**6 #bending moment (N.mm)\n",
+ "My=0\n",
+ "\n",
+ "Ixx=2*Ef*l2*t2*l2**2+Ew*t1*l1**3/12\n",
+ "Iyy=Ef*t2*l1**3/12\n",
+ "Ixy=Ef*l2*t2*(50)*(50)+Ef*l2*t2*(-50)*(-50)\n",
+ "\n",
+ "x=50\n",
+ "y=50 #point 1\n",
+ "Ez=50000\n",
+ "\n",
+ "sigma_z=Ez*((My*Ixx-Mx*Ixy)/(Ixx*Iyy-Ixy**2)*x + (Mx*Iyy-My*Ixy)/(Ixx*Iyy-Ixy**2)*y)\n",
+ "print \"direct stress at point 1 = %3.1f N/mm^2\\n\"%(sigma_z)\n",
+ "x=0\n",
+ "y=50\n",
+ "sigma_z=Ez*((My*Ixx-Mx*Ixy)/(Ixx*Iyy-Ixy**2)*x + (Mx*Iyy-My*Ixy)/(Ixx*Iyy-Ixy**2)*y)\n",
+ "print \"direct stress at point 2 = %3.1f N/mm^2\\n\"%(sigma_z)\n",
+ "\n",
+ "x=0\n",
+ "y=50\n",
+ "Ez=15000\n",
+ "sigma_z=Ez*((My*Ixx-Mx*Ixy)/(Ixx*Iyy-Ixy**2)*x + (Mx*Iyy-My*Ixy)/(Ixx*Iyy-Ixy**2)*y)\n",
+ "print \"direct stress at point 2 in the web = %3.1f N/mm^2\\n\"%(sigma_z)"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "direct stress at point 1 = 102.6 N/mm^2\n",
+ "\n",
+ "direct stress at point 2 = -51.3 N/mm^2\n",
+ "\n",
+ "direct stress at point 2 in the web = -15.4 N/mm^2\n",
+ "\n"
+ ]
+ }
+ ],
+ "prompt_number": 39
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 25.6 Pg.No.668"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "from __future__ import division\n",
+ "import math\n",
+ "import numpy as np\n",
+ "from sympy import symbols, integrate\n",
+ "\n",
+ "s=symbols('s')\n",
+ "\n",
+ "l12=250\n",
+ "l23=300\n",
+ "t31=t12=2 #dimensions shown in Fig 25.12 (mm)\n",
+ "t23=1.5\n",
+ "\n",
+ "P=2*10**3 #shear load(N)\n",
+ "E12=E31=45000 #youngs modulus of sides given in name(N/mm^2)\n",
+ "E23=20000\n",
+ "\n",
+ "Ixx=2*E12*t12*l12**3*(l23/2/l12)**2/12+E23*t23*l23**3/12\n",
+ "alpha=math.asin(l23/2/l12)\n",
+ "\n",
+ "Sx=0\n",
+ "Sy=2*10**3\n",
+ "q12=-E12*Sy/Ixx*integrate(-2*s,(s,0,250))*math.sin(alpha)\n",
+ "print \"shear flow at point 2 in the flange 12 = %2.2f N/mm\\n\"%(q12)\n",
+ "\n",
+ "q23=-E23*Sy/Ixx*integrate(-225+1.5*s,(s,0,300))+22.2\n",
+ "print \"shear flow at point 3 in the flange 23 = %2.2f N/mm\\n\"%(q23)\n",
+ "q0=14.2\n",
+ "\n",
+ "q12=-E12*Sy/Ixx*integrate(-2*s,s)*math.sin(alpha)-q0\n",
+ "print \"shear flow in the flange 12 and 31 \"\n",
+ "print q12\n",
+ "\n",
+ "q23=-E23*Sy/Ixx*integrate(-225+1.5*s,s,)+22.2-q0\n",
+ "print \"\\nshear flow in the web 23\"\n",
+ "print q23"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "shear flow at point 2 in the flange 12 = 22.22 N/mm\n",
+ "\n",
+ "shear flow at point 3 in the flange 23 = 22.20 N/mm\n",
+ "\n",
+ "shear flow in the flange 12 and 31 \n",
+ "0.000355555555555556*s**2 - 14.2\n",
+ "\n",
+ "shear flow in the web 23\n",
+ "-0.000197530864197531*s**2 + 0.0592592592592593*s + 8.0\n"
+ ]
+ }
+ ],
+ "prompt_number": 57
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 25.7 Pg.No.671"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "from __future__ import division\n",
+ "import math\n",
+ "import numpy as np\n",
+ "from sympy import symbols, integrate\n",
+ "\n",
+ "\n",
+ "l1=200\n",
+ "t1=2\n",
+ "l2=100 #dimensions shown in Fig 25.13 (mm)\n",
+ "t2=1\n",
+ "T=10*10**6 #torque applied (N.mm)\n",
+ "Gl=20000 #laminate shear modulus(N/mm^2)\n",
+ "Gw=35000 #web shear modulus(N/mm^2)\n",
+ "A=l1*l2\n",
+ "\n",
+ "q=T/2/A\n",
+ "\n",
+ "#from eqn 25.47\n",
+ "int_ds_by_Gt=2*l1/Gl/t1+2*l2/Gw/t2\n",
+ "\n",
+ "#Let's say we want to calculate warping at point 1\n",
+ "#warping at mid of web is zero (W0=0) integrate eqn 25.47 from\n",
+ "#mid of web to point 1\n",
+ "W0=0\n",
+ "A0s=50*100\n",
+ "W1=W0+q*(l2/2/Gw/t2-int_ds_by_Gt/A*A0s)\n",
+ "print \"warping at point 1 is = %2.2f mm\\n\"%(W1)"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "warping at point 1 is = -0.63 mm\n",
+ "\n"
+ ]
+ }
+ ],
+ "prompt_number": 66
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 25.8 Pg.No.673"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "from __future__ import division\n",
+ "import math\n",
+ "import numpy as np\n",
+ "from sympy import symbols, integrate\n",
+ "\n",
+ "l1=50\n",
+ "t1=2.5\n",
+ "l2=25 #dimension shown in Fig 18.12(mm)\n",
+ "t2=1.5\n",
+ "\n",
+ "Gl=20000\n",
+ "Gw=15000 #shear modulus (N/mm^2)\n",
+ "T=10*10**3 #torque applied (N.mm)\n",
+ "AR=25*25/2\n",
+ "GJ=2*Gl*l2*t2**3/3+Gw*l1*t1**3/3\n",
+ "#eqn 25.49\n",
+ "dO_dz=T/GJ\n",
+ "\n",
+ "t_max12=2*Gl*(t2/2)*dO_dz\n",
+ "t_max23=2*Gw*(t1/2)*dO_dz\n",
+ "print \"maximum shear stress in the web = %2.2f N/mm^2\\n\"%(t_max12)\n",
+ "print \"maximum shear stress in the laminate = %2.2f N/mm^2\\n\"%(t_max23)\n",
+ "\n",
+ "W1=-2*AR*dO_dz\n",
+ "print \"warping at point 1 = %2.2f mm\\n\"%(W1)"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "maximum shear stress in the web = 59.63 N/mm^2\n",
+ "\n",
+ "maximum shear stress in the laminate = 74.53 N/mm^2\n",
+ "\n",
+ "warping at point 1 = -1.24 mm\n",
+ "\n"
+ ]
+ }
+ ],
+ "prompt_number": 74
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [],
+ "language": "python",
+ "metadata": {},
+ "outputs": []
+ }
+ ],
+ "metadata": {}
+ }
+ ]
+} \ No newline at end of file
diff --git a/Aircraft_Structures_for_Engineering_Students/Chapter26.ipynb b/Aircraft_Structures_for_Engineering_Students/Chapter26.ipynb
new file mode 100755
index 00000000..994182d0
--- /dev/null
+++ b/Aircraft_Structures_for_Engineering_Students/Chapter26.ipynb
@@ -0,0 +1,82 @@
+{
+ "metadata": {
+ "name": "",
+ "signature": "sha256:eb3a8ca85b2b3516ec190a12a8401ddf32d140498cd023be9bda6228b1754025"
+ },
+ "nbformat": 3,
+ "nbformat_minor": 0,
+ "worksheets": [
+ {
+ "cells": [
+ {
+ "cell_type": "heading",
+ "level": 1,
+ "metadata": {},
+ "source": [
+ "Chapter 26: Closed Section Beams"
+ ]
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 26.3 Pg.No.693"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "from __future__ import division\n",
+ "from sympy import solve, symbols\n",
+ "import math\n",
+ "\n",
+ "\n",
+ "G=20000 #shear modulus (N/mm^2)\n",
+ "E=G/0.36 #young's modulus\n",
+ "tau=20 #torque (Nm/mm)\n",
+ "t=1\n",
+ "b=200\n",
+ "a=500\n",
+ "L=2500\n",
+ "A=800\n",
+ "\n",
+ "#torque at each support \n",
+ "T=20*5000/2\n",
+ "\n",
+ "mu=math.sqrt(8*G*t/(A*E*(b+a)))\n",
+ "\n",
+ "z=2500\n",
+ "F=-1.95/mu*math.cosh(mu*z)+1.75*z**2\n",
+ "\n",
+ "z=0 # at mid-span z=0\n",
+ "theta=10**(-8)*(1.95/mu*math.cosh(mu*z)-1.75*z**2+F)\n",
+ "print \"twist at mid-span = %1.3f rad = %1.2f degree\"%(theta,theta*180/math.pi)"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "twist at mid-span = 0.108 rad = 6.20 degree\n"
+ ]
+ }
+ ],
+ "prompt_number": 13
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [],
+ "language": "python",
+ "metadata": {},
+ "outputs": []
+ }
+ ],
+ "metadata": {}
+ }
+ ]
+} \ No newline at end of file
diff --git a/Aircraft_Structures_for_Engineering_Students/Chapter27.ipynb b/Aircraft_Structures_for_Engineering_Students/Chapter27.ipynb
new file mode 100755
index 00000000..bf9485c9
--- /dev/null
+++ b/Aircraft_Structures_for_Engineering_Students/Chapter27.ipynb
@@ -0,0 +1,109 @@
+{
+ "metadata": {
+ "name": "",
+ "signature": "sha256:bc596ba82da68e58c73271eb1045592b064349244b750ab69aa9f03ab4de2fbd"
+ },
+ "nbformat": 3,
+ "nbformat_minor": 0,
+ "worksheets": [
+ {
+ "cells": [
+ {
+ "cell_type": "heading",
+ "level": 1,
+ "metadata": {},
+ "source": [
+ "Chapter 27: Open Section Beams\n"
+ ]
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 27.2 Pg.No. 735"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#reference Fig 27.20\n",
+ "\n",
+ "from __future__ import division\n",
+ "import math\n",
+ "from sympy import integrate\n",
+ "from sympy import solve, symbols\n",
+ "\n",
+ "# variable declaration\n",
+ "P=100 #vertical load (kN)\n",
+ "A_R=1.25*10**3 #from previous question\n",
+ "E=200000 #young's modulus (N/mm^2)\n",
+ "Gama_R=2.08*10**10 #torsion bending constant (mm^6)\n",
+ "mu=0.54*10**-3 #from previous question\n",
+ "A=400*5 #area of beam\n",
+ "\n",
+ "#moment couple\n",
+ "M_Tau=-P*2*A_R\n",
+ "print \"\\nValue of moment couple at the top of column = %2.2e kN.mm^2\"%(M_Tau) #calculation mistake in book\n",
+ "\n",
+ "d2tdz2 = M_Tau*10**3/E/Gama_R\n",
+ "# @z=3000 mm \n",
+ "D=0.04*10**-3\n",
+ "z=symbols('z')\n",
+ "F= -0.08*math.cosh(0)\n",
+ "\n",
+ "def theta(z):\n",
+ " return 0.08*(math.cosh(0.54*10**(-3)*z))\n",
+ "\n",
+ "print \"\\ntwist at the top of the column = %2.2f rad\\n\"%(theta(3000))\n",
+ "\n",
+ "M_Tau=-E*Gama_R*0.02*10**-6\n",
+ "print \"value of moment couple at bottom of column=%2.2e N.mm^2\\n\"%(M_Tau)\n",
+ "\n",
+ "P=-100*10**3 # stress(N)\n",
+ "def sigma_z(A_R2):\n",
+ " return P/A+M_Tau*A_R2/Gama_R\n",
+ "print \"sigma_z1=sigma_z4=%2.1f N/mm^2\\n\"%(sigma_z(-7.5*10**3))\n",
+ "print \"sigma_z2=sigma_z3=%2.1f N/mm^2\\n\"%(sigma_z(2.5*10**3))\n",
+ "\n",
+ "#please put the value of 2AR from Fig 27.21 in the equation of sigma_z\n",
+ "#these values in book need correction"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "\n",
+ "Value of moment couple at the top of column = -2.50e+05 kN.mm^2\n",
+ "\n",
+ "twist at the top of the column = 0.21 rad\n",
+ "\n",
+ "value of moment couple at bottom of column=-8.32e+07 N.mm^2\n",
+ "\n",
+ "sigma_z1=sigma_z4=-20.0 N/mm^2\n",
+ "\n",
+ "sigma_z2=sigma_z3=-60.0 N/mm^2\n",
+ "\n"
+ ]
+ }
+ ],
+ "prompt_number": 26
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [],
+ "language": "python",
+ "metadata": {},
+ "outputs": [],
+ "prompt_number": 48
+ }
+ ],
+ "metadata": {}
+ }
+ ]
+} \ No newline at end of file
diff --git a/Aircraft_Structures_for_Engineering_Students/README.txt b/Aircraft_Structures_for_Engineering_Students/README.txt
new file mode 100755
index 00000000..230418be
--- /dev/null
+++ b/Aircraft_Structures_for_Engineering_Students/README.txt
@@ -0,0 +1,10 @@
+Contributed By: Prahlad Das
+Course: others
+College/Institute/Organization: Indian Institute of Technology Bombay
+Department/Designation: Aerospace
+Book Title: Aircraft Structures for Engineering Students
+Author: T. H. G. Megson
+Publisher: Linacre House, Jordan Hill, Oxford OX2 8DP, UK
+Year of publication: 2012
+Isbn: 978-0-75066-7395
+Edition: fourth edition \ No newline at end of file
diff --git a/Aircraft_Structures_for_Engineering_Students/screenshots/1.png b/Aircraft_Structures_for_Engineering_Students/screenshots/1.png
new file mode 100755
index 00000000..5a7eb163
--- /dev/null
+++ b/Aircraft_Structures_for_Engineering_Students/screenshots/1.png
Binary files differ
diff --git a/Aircraft_Structures_for_Engineering_Students/screenshots/2.png b/Aircraft_Structures_for_Engineering_Students/screenshots/2.png
new file mode 100755
index 00000000..39f6cc69
--- /dev/null
+++ b/Aircraft_Structures_for_Engineering_Students/screenshots/2.png
Binary files differ
diff --git a/Aircraft_Structures_for_Engineering_Students/screenshots/3.png b/Aircraft_Structures_for_Engineering_Students/screenshots/3.png
new file mode 100755
index 00000000..ea04181a
--- /dev/null
+++ b/Aircraft_Structures_for_Engineering_Students/screenshots/3.png
Binary files differ
diff --git a/Aircraft_Structures_for_Engineering_Students/screenshots/a.png b/Aircraft_Structures_for_Engineering_Students/screenshots/a.png
new file mode 100755
index 00000000..7aa51791
--- /dev/null
+++ b/Aircraft_Structures_for_Engineering_Students/screenshots/a.png
Binary files differ
diff --git a/Aircraft_Structures_for_Engineering_Students/screenshots/a_1.png b/Aircraft_Structures_for_Engineering_Students/screenshots/a_1.png
new file mode 100755
index 00000000..7aa51791
--- /dev/null
+++ b/Aircraft_Structures_for_Engineering_Students/screenshots/a_1.png
Binary files differ
diff --git a/Aircraft_Structures_for_Engineering_Students/screenshots/b.png b/Aircraft_Structures_for_Engineering_Students/screenshots/b.png
new file mode 100755
index 00000000..0f230abf
--- /dev/null
+++ b/Aircraft_Structures_for_Engineering_Students/screenshots/b.png
Binary files differ
diff --git a/Aircraft_Structures_for_Engineering_Students/screenshots/b_1.png b/Aircraft_Structures_for_Engineering_Students/screenshots/b_1.png
new file mode 100755
index 00000000..0f230abf
--- /dev/null
+++ b/Aircraft_Structures_for_Engineering_Students/screenshots/b_1.png
Binary files differ
diff --git a/Aircraft_Structures_for_Engineering_Students/screenshots/c.png b/Aircraft_Structures_for_Engineering_Students/screenshots/c.png
new file mode 100755
index 00000000..ae3f4f00
--- /dev/null
+++ b/Aircraft_Structures_for_Engineering_Students/screenshots/c.png
Binary files differ
diff --git a/Aircraft_Structures_for_Engineering_Students/screenshots/c_1.png b/Aircraft_Structures_for_Engineering_Students/screenshots/c_1.png
new file mode 100755
index 00000000..ae3f4f00
--- /dev/null
+++ b/Aircraft_Structures_for_Engineering_Students/screenshots/c_1.png
Binary files differ